Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch Google Ads API version from v13 to v14 #32028

Merged
merged 1 commit into from
Jun 21, 2023

Conversation

ahidalgob
Copy link
Contributor

@ahidalgob ahidalgob commented Jun 20, 2023

New API version v14 was released on 2023-06-07.

https://developers.google.com/google-ads/api/docs/release-notes#v14

New API version was release in June.
@boring-cyborg boring-cyborg bot added area:providers provider:google Google (including GCP) related issues labels Jun 20, 2023
@potiuk potiuk requested a review from eladkal June 20, 2023 12:18
@potiuk
Copy link
Member

potiuk commented Jun 20, 2023

Probably a bit late for this release @eladkal -> but in case we got RC2 or smth, we might want this one in.

@@ -73,7 +73,7 @@ class GoogleAdsHook(BaseHook):
:return: list of Google Ads Row object(s)
"""

default_api_version = "v13"
default_api_version = "v14"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking change. does it not?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This version change doesn't break anything in the methods we use in operators.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know GoogleAds but this is what I have in mind:

Users who use the hook may be relaying on the default value.

GoogleAdsHook(..).search(...)

Before this change it will use v13 after this change it will use v14.
Thus this is a breaking change.

Am I missing something?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, you are right but in this case we rely on only two methods from Google Ads API:

  • GoogleAdsServiceClient.search used by Hook.search and Hook.search_proto_plus

  • CustomerServiceClient.list_accessible_customers used in Hook.list_accessible_customers

And in this case behaviour is unchanged from v13 to v14 for those methods. search method wasn't changed and list_accessible_customers only added one output-only field to Customer (so not breaking), but this is not even visible from the user's side as we only return another field, not the whole Customer object.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. Totally agree with @ahidalgob -> there are many libraries that have braking changes on their own but they are not breaking the API we are exposing to our users. Surely the users could use some stuff from the google ads client, but technically speaking this is completely outside of our control or influence.

We cannot break something that we are unaware of. If we take it to extreme, then every single change in every single dependency or line of code would be a breaking change (the usual reference to https://www.hyrumslaw.com/.

We will always break something with any change, this is clear, so it really depends on us what we see as "enough breaking" to make it a "Major" bump. What would qualify as a breaking change is changing a promise "our" code malks when publishing what user is supposed to use (i.e. Hooks, Operators, etc. etc. ). We cannot be responsible for "other's" code - as long as other code does not impact "our" code, the change is not really breaking.

Similarly to https://airflow.apache.org/docs/apache-airflow/stable/public-airflow-interface.html - we have https://airflow.apache.org/docs/apache-airflow-providers-google/stable/_api/airflow/providers/google/index.html# - and we do not break any of the API's there.

This one is technically equivalent to a chaning version of external dependency - which we previously agreed to that it is not a breaking chnage on its own.

@potiuk potiuk merged commit fe7a1aa into apache:main Jun 21, 2023
ferruzzi pushed a commit to aws-mwaa/upstream-to-airflow that referenced this pull request Jun 27, 2023
New API version was release in June.

Co-authored-by: Cloud Composer Team <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:providers provider:google Google (including GCP) related issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants