You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Normalize release tags to vX.X.X format for python-semantic-release #569
Normalize the release/version tag format to vX.X.X (with the v prefix) across the repos listed below.
Why this is needed
As we convert repos to python-semantic-release (PSR), PSR looks at existing tags to determine the current version and compute the next one. PSR expects tags in the form v#.#.#, but several repos currently tag versions without the v prefix (e.g. 4.0.0 instead of v4.0.0).
When the v prefix is missing, PSR fails to recognize the latest version and wrongly starts a fresh 0.1.0 release instead of bumping from the real current version. Re-tagging these repos to the vX.X.X format ensures PSR picks up the correct history and versions the next release accurately.
Original context from the Feanil:
Something to watch out for as we convert things to python semantic release — to find old versions to figure out what the next version should be. PSR looks for tags like v#.#.#, but in many of our repos we don't currently have the v prefix on version tags, so in those cases it wrongly tags a new 0.1.0 version.
Tagged the 14 repos that have a real version history. Each new tag points at the same commit as the existing unprefixed tag, so PSR resolves to the version that is actually on PyPI.
Repo
New tag
Commit
acid-block
v0.4.1
ad2eb138
opaque-keys
v4.0.0
ae7f1353
ccx-keys
v2.0.2
c3fe0b8c
edx-enterprise-data
v10.22.14
b1bb7477
openedx-chem
v2.0.0
15489246
enmerkar-underscore
v2.4.1
d220b9e1
pytest-repo-health
v4.0.0
d219ba93
taxonomy-connector
v4.0.0
e23cc187
olxcleaner
v0.3.0
ad7bfd47
codejail-includes
v2.0.0
1615d644
xblock-skill-tagging
v1.0.0
827ff4af
openedx-ledger
v2.0.0
a458d661
edx-enterprise-subsidy-client
v2.2.2
430228bb
enterprise-integrated-channels
v0.1.70
7bbc52f8
Four repos are dropped from the list.web-fragments and xblock-free-text-response are archived, so they cannot be pushed to and are not PSR conversion candidates. license-manager and openedx-webhooks have no version tags at all; theirs are deployment markers like release/verawood.1 and release-2023-11-27, and both declare version = "0.1.0" in pyproject.toml. There is no earlier version for PSR to miss in those two, so starting at 0.1.0 is the right answer rather than a bug.
Two corrections to the list.enterprise-integrated-channels is at 0.1.70, not 0.1.69; 0.1.70 went out 2026-09-11. acid-block got v0.4.1 rather than v0.4.0, because acid/__init__.py at ad2eb138, the commit the 0.4.0 tag points at, reads __version__ = '0.4.1' and PyPI has acid-xblock 0.4.1 from 2024-10-01 with no matching tag. Tagging v0.4.0 there would have let PSR compute 0.4.1 next and collide with what is already published.
Five publish workflows fired and failed, which is expected. ccx-keys, edx-enterprise-data, openedx-chem, enmerkar-underscore and pytest-repo-health run pypi-publish.yml on push: tags: - '*', so each tag built the already-released version and got 400 File already exists back from PyPI. Nothing was published, and every dist still shows its original version and upload date. Those workflows get replaced by release.yml as each repo converts.
One thing to watch at conversion time: openedx-chem declares 2.0.1 in chem/__init__.py and codejail-includes hardcodes 3.0.0 in setup.py, but the last release of each is 2.0.0. PSR computes the next version from commit messages off v2.0.0, so those hand-written numbers will be ignored.
Activity
feanil commentedon Sep 23, 2026
Tagged the 14 repos that have a real version history. Each new tag points at the same commit as the existing unprefixed tag, so PSR resolves to the version that is actually on PyPI.
v0.4.1ad2eb138v4.0.0ae7f1353v2.0.2c3fe0b8cv10.22.14b1bb7477v2.0.015489246v2.4.1d220b9e1v4.0.0d219ba93v4.0.0e23cc187v0.3.0ad7bfd47v2.0.01615d644v1.0.0827ff4afv2.0.0a458d661v2.2.2430228bbv0.1.707bbc52f8Four repos are dropped from the list.
web-fragmentsandxblock-free-text-responseare archived, so they cannot be pushed to and are not PSR conversion candidates.license-managerandopenedx-webhookshave no version tags at all; theirs are deployment markers likerelease/verawood.1andrelease-2023-11-27, and both declareversion = "0.1.0"inpyproject.toml. There is no earlier version for PSR to miss in those two, so starting at 0.1.0 is the right answer rather than a bug.Two corrections to the list.
enterprise-integrated-channelsis at 0.1.70, not 0.1.69; 0.1.70 went out 2026-09-11.acid-blockgotv0.4.1rather thanv0.4.0, becauseacid/__init__.pyatad2eb138, the commit the0.4.0tag points at, reads__version__ = '0.4.1'and PyPI hasacid-xblock 0.4.1from 2024-10-01 with no matching tag. Taggingv0.4.0there would have let PSR compute 0.4.1 next and collide with what is already published.Five publish workflows fired and failed, which is expected. ccx-keys, edx-enterprise-data, openedx-chem, enmerkar-underscore and pytest-repo-health run
pypi-publish.ymlonpush: tags: - '*', so each tag built the already-released version and got400 File already existsback from PyPI. Nothing was published, and every dist still shows its original version and upload date. Those workflows get replaced byrelease.ymlas each repo converts.One thing to watch at conversion time:
openedx-chemdeclares 2.0.1 inchem/__init__.pyandcodejail-includeshardcodes 3.0.0 insetup.py, but the last release of each is 2.0.0. PSR computes the next version from commit messages offv2.0.0, so those hand-written numbers will be ignored.Verified 2026-09-23.