Repository navigation
ci(release): publish tagged releases from triggering ref - #249
Conversation
[Medium impact] The PR appears safe to merge; no actionable issues remain. SummaryThis PR makes
|
cfe2ec2 to
734d776
Compare
3cea487 to
85357f2
Compare
734d776 to
d64940d
Compare
85357f2 to
34c87ac
Compare
d64940d to
83e7ab3
Compare
|
|
||
| Release tags use `vMAJOR.MINOR.PATCH` for stable releases and `vMAJOR.MINOR.PATCHrcN` for release candidates, while the Python package version is the unprefixed version. | ||
|
|
||
| Release publishing is handled by `.github/workflows/release.yml`. |
There was a problem hiding this comment.
Could we document the new release sequence here? Pushing a v* tag now publishes to production PyPI, creates the GitHub release, and deploys docs. It would help to explain how maintainers should use the manual dry-run before pushing the release tag, since that push starts publishing immediately.
There was a problem hiding this comment.
You are right, and this was missed: #249 merged into #211 (head 6e7a216e) with DEVELOPMENT.md still saying only that release.yml handles publishing. The Releases section in #211 now documents the sequence (commit 5ebd2f1): a pushed v* tag builds the wheel, checks the tag against the package version, publishes to Test PyPI, then PyPI, creates the GitHub release, and deploys docs. Test PyPI runs first, so a failure there stops the run before PyPI.
Checking the dry run turned up two limits that the section states plainly:
- There is no rehearsal before the tag exists. The version comes from Git tags (
uv-dynamic-versioning), so an untagged commit builds a+<hash>version that PyPI and Test PyPI do not accept, and creating the tag starts the real release. The manual dry run works only on an existing release tag. create-gh-releasedefaults to true and is not gated ondry-run, so a dry run left at the default still creates the GitHub release and deploys docs.
I did not change the workflow. If you want a rehearsal that works before tagging, that needs a version override for dry runs in build:wheel; tell me if you want it in this PR or a follow-up.
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
73bf8cf to
8e06f96
Compare
83e7ab3 to
6e7a216
Compare
Summary
v*tag is pushedworkflow_dispatchwithdry-runandcreate-gh-release, without a separaterelease-refrelease-targetcheckout and project-directory task arguments added in build: migrate developer tasks to mise #211build:wheel,docs:build, anddocs:deploygithub.shaContext
This is stacked on #211. The separate
release-refcame from the generic FW-CI release template in #54 and remained when #93 moved the release workflow into this repository. Safe Synthesizer later moved to tag-push releases in Safe-Synthesizer #361. This follow-up adopts that single-revision strategy while preserving manual dispatch for dry runs and controlled release testing.Validation
mise tasks validate: all 26 tasks passedmise run test -- tests/tools/test_mise_configuration.py -q: 22 focused workflow and tooling tests passedmise run check ::: test: 1,213 tests passed; format, lint, type, lock, SPDX, and benchmark shell checks passedmise run docs:build: strict documentation build passedCommits
5f3cb9cand734d776are signed and DCO-signed.