-
Notifications
You must be signed in to change notification settings - Fork 376
Make the releases automatic #5269
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
base: master
Are you sure you want to change the base?
Make the releases automatic #5269
Conversation
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.
Pull request overview
Automates the PyCBC release workflow by rewriting version/release metadata during tagged builds and then bumping the repository back to a dev version after publishing.
Changes:
- Add tag-triggered steps to set a release version and rewrite
setup.pyduring wheel/sdist builds. - Add a
bump_versionjob that updatessetup.pyback to a dev version and pushes the change tomaster. - Introduce a composite GitHub Action to perform the
setup.pyversion/release rewrite.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| .github/workflows/distribution.yml | Adds tag-gated release version rewriting and a post-publish dev version bump/push job. |
| .github/actions/update-version/action.yml | New composite action to rewrite setup.py version/release lines via regex. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
…rsion number if it is
…gotimegps (gwastro#5237) * add constants module to fall back on astropy/numpy values if lal is not installed * Update timeseries to use a float64 rather than ligotimegps * inject constants * Use import_optional to avoid repeating try/excepts * unused imports * More removal of LAL constants/routines * More movement away from LAL * Need a couple more checks in timeseries * removing lal from tests * Use astropy rather than lal gpstime in live plotting * Move gaussian noise module away from lal, add test coverage for that module * psd reading, results/versioning shouldnt require lal * More work * copilot review suggestions * Unused imports * Add some logic to allow LIGOTimeGPS to be passed into frequencyseries or timeseries * testing print * Allow wider variation in psd * Fix to eventmgr which assumes a ligotimegps * epoch_float64: use LIGOTimeGPS for epoch (switch epoch handling to float64) * epoch_float64: move epoch debug instrumentation and tracing helpers here (origins buffer, trace helpers, test instrumentation) * re moving unrelated changes * Removing unrelated changes * more unrelated stuff * Set coinc, stat and test live coinc back to master * Cleanup of this branch * Cleanup of this branch * I think this is the right stuff to make a start again * Fix stable sort problem with test_live_coinc_compare * Dont know where this change came from., but its wrong * Apply suggestion from @GarethCabournDavies * I cant remember why this change was made - lets revert it and run the tests * Handle slicing with None epochs for timeseries * Move epoch logic to a shared function, in-depth explanation logic of how epochs are input/converted
… buils, but lets test it
Making the release strategy more automatic should make things a bit nicer for developers, and mean that the releases don't require us to set aside a few hours of our time waiting to set back to development (also not waiting on others' approval for PRs)
This patch updates the release strategy, and automates the steps in https://pycbc.org/pycbc/latest/html/release.html (though this page should be updated here, so the link won't work if this is merged, see #4778)
The current status of that page is:
The way this is done after this change is through the
distribution.ymlworkflow.setup.pyis altered for the 'release = True' and 'version = vX.Y.Z' (version number from the tag) - note that this only changes for the version that is being used in this runner. This change is never actually pushed to masterbump_version. This only runs when a tag is pushed, and takes the version, vX.Y.Z, and updated the number insetup.pytovX.Y.dev(Z+1), and then pushes that change to master.deploy_pypijob, which I think would make it waitTesting performed
I'm not sure how to test this without actually doing a release