Repository navigation
Conversation
deanq
force-pushed
the
deanq/publish-from-release-tag
branch
4 times, most recently
from
November 11, 2026 00:51
4dcb29b to
536cb5a
Compare
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues were identified for the release-tag-aware PyPI publishing change.
No open issues 🎉
What changed in this PR
Updates PyPI publishing to build from the release tag, preventing later triggering commits from producing unintended .devN package versions.
Changes:
- Uses the release-please tag as the preferred checkout reference.
- Adds an optional
taginput for manual force publishing. - Preserves the triggering commit as the fallback when neither tag is provided.
| File | Description |
|---|---|
.github/workflows/cd.yml |
Adds the manual tag input and tag-aware checkout for production PyPI publishing. |
Review effort: Balanced
deanq
force-pushed
the
deanq/publish-from-release-tag
branch
4 times, most recently
from
November 11, 2026 21:12
283a3af to
d9b51ae
Compare
The 2.0.0 release was tagged at the release PR's merge commit, but the CD run that created it was triggered by the next push (#661). The publish job checked out the triggering commit, so setuptools_scm versioned the build 2.0.1.dev1 and that went to PyPI instead of 2.0.0. Check out release-please's tag_name, or a new tag input when force publishing by hand, and fall back to the triggering commit.
deanq
force-pushed
the
deanq/publish-from-release-tag
branch
from
November 11, 2026 21:40
d9b51ae to
3489d0c
Compare
This branch was previously deployed
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.
The 2.0.0 release went to PyPI as
runpod 2.0.1.dev1, not 2.0.0.What happened
v2.0.0at chore(main): release 2.0.0 #594's merge commit (e3ad2ee).a4ba078). Before ci: run workflows on Blacksmith runners #661, CD couldn't run on ubuntu-latest.pypi-publishchecked out the triggering commit. The version comes fromsetuptools_scm, so one commit past the tag built as2.0.1.dev1(run).Checked locally:
setuptools_scmgives2.0.0atv2.0.0and2.0.1.dev1ata4ba078.Change
pypi-publishchecks outneeds.release-please.outputs.tag_name, so a release always builds from its tag.taginput onworkflow_dispatchlets a force publish build a given tag.Status
The 2.0.0 fallout has since been cleaned up by hand:
runpod 2.0.0was force-published from its tag on 2026-10-30, and2.0.1.dev1is yanked. Releases 2.1.0 through 2.2.1 published correctly because CD happened to run on each release commit.This change is still needed as a guardrail:
pypi-publishon main still checks out the triggering commit, so any release whose CD run is triggered by a later push (for example after a CD outage, as with 2.0.0) would publish a.devNversion again.Test plan
refand thetaginput are as listedsetuptools_scmversion atv2.0.0is2.0.02.0.0is published and2.0.1.dev1is yanked (done by hand, no longer needed from this PR)