-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
switch versioning to setuptools_scm #11355
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
Conversation
Helper Script Tests26 tests 26 ✅ 0s ⏱️ Results for commit 4614aad. ♻️ This comment has been updated with latest results. |
5344d9d
to
c8cc693
Compare
56ca27f
to
16060fe
Compare
S3 Image Test Results (AMD64 / ARM64) 2 files 2 suites 3m 35s ⏱️ Results for commit 4614aad. ♻️ This comment has been updated with latest results. |
70348f5
to
cfde3e5
Compare
39bbe67
to
120e4b5
Compare
e1078f0
to
9f0936b
Compare
9f0936b
to
68b259c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is quite an awesome iteration, @silv-io! We're nearly there! Just found a few nitpicks and leftovers we need to tackle before merging ;) 🚀
6a2bcd7
to
6104e2f
Compare
6104e2f
to
27a953b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thanks, @silv-io for addressing the comments and questions! I think this is good to get looked at by another set of eyes, get a bit more testing, and then get merged! 🥳 💯
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, great push forward! I just had some minor nits regarding regexes and so on, but nothing major!
# setuptools_scm will be installed transparently if not available, Python3 is expected to be present | ||
if ! python3 -m pip -qqq list | grep -F "setuptools_scm"; then | ||
python3 -m pip install -qqq setuptools_scm > /dev/null 2>&1 | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand the reasoning for this, but I would like to discuss if this is something we can somehow avoid? Especially since developers might use make docker-build
and use this script, and might not have the venv activated - it might lead to some modifications to the global / pyenv install users did not assume.
Same for the release-helper.sh
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can avoid this specific issue by depending on the venv
make target in the docker-build
make targets and activating the venv before using the helper.
/cc @alexrashed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should couple the docker-helper or the release-helper to the Makefile
, that's even tighter than this coupling with setuptools_scm
.
I would propose to keep track of this and tackle this in the coming days (in the next iteration), after some discussion and playing around with possible ways to circumvent this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Motivation
With #10497 we changed the single-sourcing of the version to prepare for namespace packages.
With #11190 we switched to namespace packages.
We are soon going to start with separating the single namespace package into multiple namespace packages.
In addition, we also want to refactor our release processes such that we do not block the default branch anymore during releases.
This PR moves away from the
VERSION
files and introducessetuptools_scm
as a preparation for both initiatives:VERSION
file handling is cumbersome since it has to be done for each package.Changes
version.py
,setup.py
, andVERSION
files and usessetuptools_scm
instead.docker-helper.sh
and therelease-helper.sh
to work withsetuptools_scm
.release-helper.sh
.Testing
To test the functionality we can build the docker images and see that they pass our test suite still after the change.
For testing the release process we have the tests here, but also the manual test of the release workflow in the sister PR of a dependent repository.
TODO
release-helper.sh
.setuptools_scm
) for the helper scripts.make publish
in CircleCI on multiple builds of the same commit. Edit: fixed by introducing amake dev-publish
which stops publishing should the current commit carry a tag.release-helper
ordocker-helper
or implement backwards-compatibility.