Repository navigation
Push only the release tag in make release; check release packages - #1780
Merged
Merged
Conversation
push-release used `git push --tags`, sending every local tag upstream. GitHub fires no tag events when more than three tags are pushed at once, so for 0.75.48 the Deploy workflow never ran. Push master and the release tag atomically, freezing VERSION so new-version's bump doesn't change it. check-dist ran after new-version, so twine checked the next .dev0 packages; run it right after commit-version. Run check-release first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
add-history now appends link targets for first-time contributors, which otherwise break the RST. Document GH_TOKEN for add-history, merging duplicate entries, and catching up if upstream moves before release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Compute VERSION on first use instead of at parse time, so targets that don't need it no longer run print_version_for_release.py (which printed a traceback when system python3 lacks packaging). Run it in the venv. - check-release: require master, require it to contain UPSTREAM master, and run check-dist so README/HISTORY RST errors fail before the tag. - .NOTPARALLEL so make -j can't tag or push before check-release finishes. - Document recovery when make release fails after tagging. - bootstrap_history.py prNNNN also adds contributor link targets.
mvdbeek
approved these changes
Nov 7, 2026
mvdbeek
left a comment
Member
There was a problem hiding this comment.
Thank you! Added a minor enhancement, hope that's ok
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes two problems hit while releasing 0.75.48, plus small changelog-step polish.
push-releaserangit push --tags, sending every local tag upstream. GitHub fires no tag events when more than three tags are pushed at once, so the 0.75.48 Deploy workflow never ran (the tag had to be re-pushed alone). It now runsgit push --atomic $(UPSTREAM) master refs/tags/$(VERSION).VERSIONis evaluated once so the bump fromnew-versiondoesn't change the tag pushed.check-distran afternew-version, so it built and checked the next.dev0. It now runs betweencommit-versionandnew-version.make releasenow runscheck-releasefirst.make add-historyappends link targets for first-time contributors; missing targets break the HISTORY RST andtwine check.ready-releaseskill: setGH_TOKENforadd-history, merge generated entries that duplicate hand-written ones, catch up if upstream master moves before release.Testing
make releasein scratch clones against a local bare upstream, with four extra local tags. With the old Makefile, every local tag was pushed andtwine checkran on0.75.50.dev0. With the new one, onlymasterand0.75.49were pushed andtwine checkran on0.75.49.add_contributor_targetsthroughmainwith a stubbedgenerate_acknowledgements: a new login gets one target, an existing one isn't duplicated, and the result parses cleanly with docutils. The same check fails against master's script.make lintpasses.🤖 Generated with Claude Code