ci: pin the release tooling instead of rebuilding it unpinned every run - #17
Merged
Merged
Conversation
The python-semantic-release and publish-action Docker actions pip-install their dependencies at image build time, on every run, with no lockfile. GitPython 3.1.60 (published 2026-08-25 18:33 UTC) removed the Actor.name_email_regex attribute that every python-semantic-release version reads while parsing its configuration, and the develop release job died 13 minutes later with no change on our side. Both steps now run semantic-release from a venv this workflow installs itself, with python-semantic-release and gitpython pinned. The venv is seeded with pip because build_command expects one, the way the action's container provided it. Outputs are unchanged: semantic-release writes released/version/tag to GITHUB_OUTPUT itself whenever the variable is set, action or no action. The gitpython pin can be dropped once python-semantic-release stops using the removed attribute.
alexFiorenza
force-pushed
the
fix/release-gitpython-pin
branch
from
August 25, 2026 19:01
7dba03c to
d7b1213
Compare
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.
Why the develop release broke
The
Releaserun after merging #16 failed in the Python Semantic Release step with:Nothing in this repo caused it. The chain:
python-semantic-release@v9(andpublish-action@v9) are Docker actions whose image is rebuilt on every run, pip-installing their dependencies unpinned.Actor.name_email_regexclass attribute that every python-semantic-release version — v9 and current master — reads while parsing its configuration (commit_author).The fix
Run semantic-release from a venv this workflow installs itself, with both
python-semantic-release==9.21.2andgitpython==3.1.59pinned — for theversionstep and the GitHub-Releasespublishstep (publish-action has the identical unpinned install and would fail the same way).Faithful to what the actions did:
build_commandexpects one, the way the action's container provided it;GIT_COMMIT_AUTHORmatch the action's defaults;released/version/tagoutputs are written by semantic-release itself wheneverGITHUB_OUTPUTis set, so the PyPI and GitHub-Releases steps are driven exactly as before.Merging this triggers the Release workflow on develop (the workflow file is in the push path filter), so the prerelease that #16 should have cut goes out with the merge.
The gitpython pin can be dropped once upstream stops using the removed attribute.
🤖 Generated with Claude Code