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

Update API version #27642

Merged
merged 1 commit into from
Nov 16, 2022
Merged

Conversation

pierrejeambrun
Copy link
Member

We might have forgotten to upgrade the API and Python client version when releasing 2.4.

The stable release of the API is currently 2.3, we also have mentions of 'new in 2.4.0' in the current version.

image
image

@boring-cyborg boring-cyborg bot added the area:API Airflow's REST/HTTP API label Nov 13, 2022
Copy link
Member

@XD-DENG XD-DENG left a comment

Choose a reason for hiding this comment

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

I only see 2.3.0 at https://github.com/apache/airflow-client-python.

Did I miss anything here?

@pierrejeambrun
Copy link
Member Author

pierrejeambrun commented Nov 13, 2022

I thought the client was auto generated. Not sure what is the realease process for it ?

@eladkal
Copy link
Contributor

eladkal commented Nov 13, 2022

I thought the client was auto generated. Not sure what is the realease process for it ?

Both python client and go client have seperated release process.

@potiuk
Copy link
Member

potiuk commented Nov 13, 2022

Why we do not make release of the Python Client, part our regular release process @jedcunningham @ephraimbuddy?

I think it is either no-op (when there is no change) , or it should be released at the same time as airflow.

We should be able to release them at the same time when needed.

WDYT?

@pierrejeambrun
Copy link
Member Author

pierrejeambrun commented Nov 13, 2022

What do you think, should I amend this PR to only change the API version so we can merge it. Then open an issue for the python/go client version ?

@csm10495
Copy link
Contributor

csm10495 commented Nov 14, 2022

I made a PR a couple weeks ago to try to update the python client to 2.4.2 (apache/airflow-client-python#51). Waiting for merge, etc. Completely agree that the clients should be part of the regular release process.

@pierrejeambrun pierrejeambrun changed the title Update API & Python Client versions Update API versions Nov 14, 2022
@pierrejeambrun
Copy link
Member Author

pierrejeambrun commented Nov 14, 2022

I have updated the PR to only work on the API version. So we can decide and handle the api clients separately, go should also be taken into consideration, there is work on different repo to make etc...

@csm10495 your comment makes me wonder if they should be released for all versions including patches. I mean, does it makes sense to patch the api spec ? 🤔 for me we either add, so it's a new feature and a minor version, or update/delete and its a breaking change.

@csm10495
Copy link
Contributor

I figure it makes easy enough sense to match client version with airflow version, regardless of if there are API changes or not. That makes it simple for users to know which version of the client they should be using to ensure compatibility.

Optimally: every new tag/release gets a corresponding client tag/release.

@pierrejeambrun
Copy link
Member Author

I agree that this is much more practical, but having a new version with literally no diff compare to the prior and an empty changelog can be confusing.

No strong opinion here I see benefits to both of them, just asking.

@pierrejeambrun pierrejeambrun changed the title Update API versions Update API version Nov 14, 2022
@csm10495
Copy link
Contributor

I think having the changelog just be: "Updating version to match airflow... no api changes" would probably make enough sense ;P

@pierrejeambrun
Copy link
Member Author

pierrejeambrun commented Nov 14, 2022

Yes this can be a solution 👍

I feel like having a dedicated place to brainstorm about this can be beneficial. I have opened a discussion for it #27670

Following @eladkal advice, started a discussion on the dev mailing list as this is more appropriate:
https://lists.apache.org/thread/phbrfg2q2lnrb9d3kfz3sxv6mzvtlwvp

@potiuk
Copy link
Member

potiuk commented Nov 14, 2022

For API clients - we actually have agreed to the versioning where MINOR.MAJOR are the same where PATCHLEVEL are separated.

For example API client Python version 2.4.1 and Go client 2.4.3 might both be "latest" versions of clients - covering all fixes (1 and 3 rounds of them) since 2.4.0 has been released. By definition all 2.4 versions of Airflow only contain bug-fixes, not features/breaking changes.

See: https://github.com/apache/airflow#semantic-versioning

Airflow API clients: SemVer MAJOR and MINOR versions follow MAJOR and MINOR versions of Airflow. The first MAJOR or MINOR X.Y.0 release of Airflow should always be followed by X.Y.0 release of all clients. The clients then can release their own PATCH releases with bugfixes, independently of Airflow PATCH releases.

Now - for API version itself, I feel we should do similar approach. - API 2.4 and any time we release any bugfix to API, we bump patchlevel

@csm10495
Copy link
Contributor

csm10495 commented Nov 14, 2022

To be clear: Does this mean that no new API features/endpoints/params until the next minor airflow release? (and i guess then no client support until after that next minor release?)... i mean that makes sense per semver.

How does it work for the time period between initial push to airflow and the new minor rev of airflow being released?

@potiuk
Copy link
Member

potiuk commented Nov 14, 2022

To be clear: Does this mean that no new API features/endpoints/params until the next minor airflow release? (and i guess then no client support until after that next minor release?)... i mean that makes sense per semver.

It means that when we release 2.4.0 Airlfow -> we should also release 2.4.0 of API. Then, when we release 2.4.1 Airflow - we might NOT release 2.4.1, depending if there are changes in the API. Theorethically there shouldn't be any "substantial" changes - but there might be some documentation changes, or fixing bugs we have not noticed that will impact API specification.

How does it work for the time period between initial push to airflow and the new minor rev of airflow being released?

I am not sure if I understand, but API 2.4.0 should contain all the 2.4 API's and they should not change in any of the 2.4.* versions. If there are any missing things in API 2.4.0 that were there in Airflow 2.4.0, they are really bugs that should be fixed in 2.4.* of the APIs. and there should never be any new features in API 2.4.

@potiuk
Copy link
Member

potiuk commented Nov 14, 2022

We can even release API 2.4.1 if Airlfow is still at 2.4.0 if we find a mistake in the API.

@potiuk potiuk merged commit 24903eb into apache:main Nov 16, 2022
@pierrejeambrun pierrejeambrun deleted the update-api-and-client-version branch November 16, 2022 23:04
@pierrejeambrun
Copy link
Member Author

pierrejeambrun commented Nov 16, 2022

@potiuk For this change to take effect on the website documentation:
image

Are there some additional steps needed ? For instance on the airflow-site repo, or will this be done for the next release ?

@potiuk
Copy link
Member

potiuk commented Nov 17, 2022

Yes. We would need to generate documentation and release it. This is part of the Release process for Airflow: https://github.com/apache/airflow/blob/main/dev/README_RELEASE_AIRFLOW.md

We have no separate "doc only" release process for Airflow (we have it for doc-only providers).

If we would like to change it in "airflow-site" it would have to be either:

a) wait for and make sure it is released as part of the next Airflow release (that's one more reason why it should be a part of the release process - so that we do not forget to upgrade and relase the Python and Go API clients as well when we are releasing 2.5.0)

b) we would have to introduce new variant of process of releasing doc-only update for airflow - this could be done by simply cherry-picking the doc changes to latest vX-Y--test and releasing documentation from that branch

@jedcunningham @ephraimbuddy -> I think this is more relevant to your side of it so I think you need to have a say here

@jedcunningham
Copy link
Member

I think we should just wait for 2.5 at this point, it's right around the corner.

@ephraimbuddy ephraimbuddy added the type:misc/internal Changelog: Misc changes that should appear in change log label Nov 23, 2022
@potiuk
Copy link
Member

potiuk commented Nov 25, 2022

Yep.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:API Airflow's REST/HTTP API type:misc/internal Changelog: Misc changes that should appear in change log
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants