Repository navigation
Python release: check every version and the CHANGELOG on the tag - #21
Open
facontidavide wants to merge 1 commit into
Open
facontidavide wants to merge 1 commit into
facontidavide wants to merge 1 commit into
Conversation
Problem: on a release tag the python workflow only compared the tag with data_tamer_parser.__version__. A tag could publish to PyPI while CMake, package.xml or conan carried another version, or before the release commit renamed the CHANGELOG head from "Unreleased". The PyPI page linked the wire format on the V2 branch, so a release would document whatever V2 holds later. The first upload needs a pending trusted publisher on pypi.org, which nothing described. Change: - tools/check_versions.py --tag X.Y.Z: the version must equal the tag and the CHANGELOG head must be that release. Without --tag (ctest version_consistency, abi workflow) nothing changes. - The release step of python.yml runs it and checks that the built sdist and wheel carry the tag's version. - python/README.md and pyproject.toml link the wire format of the tag (blob/2.0.0/...); check_versions.py checks that the link follows the version. - CLAUDE.md: a Releasing section (release commit, tag, one-time PyPI pending publisher and GitHub environment pypi). CHANGELOG updated. Tested: check_versions.py passes on V2, fails with --tag 2.0.0 while the CHANGELOG says Unreleased, with a wrong tag and with a stale link, passes with --tag 2.0.0 after a simulated release commit; python -m build and twine check --strict pass; Python tests pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wnt4wFr4Cz9BZjp1C6VRGk
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.
Summary
On a release tag the
pythonworkflow only compared the tag withdata_tamer_parser.__version__. A tag could publishdata-tamer-parserto PyPI while CMake,package.xmlor conan carried another version, or before the release commit renamed the CHANGELOG head from "Unreleased". The PyPI page linked the wire format on theV2branch, so a release would document whateverV2holds later. And the first upload needs a pending trusted publisher on pypi.org (the project does not exist yet), which nothing described.Changes
tools/check_versions.py --tag X.Y.Z: the version must equal the tag and the CHANGELOG head section must be that release. Without--tag(ctestversion_consistency,abiworkflow) behaviour is unchanged..github/workflows/python.yml: the tag step runs that check and verifies the built sdist and wheel carry the tag's version.python/README.md,python/pyproject.toml: the wire-format link points at the tag (blob/2.0.0/docs/wire_format.md);check_versions.pychecks that the link follows the version.CLAUDE.md: new "Releasing" section — release commit, tag, and the one-time setup (PyPI pending publisher fordata-tamer-parser: ownerPlotJuggler, repodata_tamer, workflowpython.yml, environmentpypi; GitHub environmentpypi, optionally with required reviewers). CHANGELOG entry updated.Testing
check_versions.pypasses on V2; fails with--tag 2.0.0while the CHANGELOG says Unreleased, with a wrong tag (2.0.1) and with a staleblob/V2link; passes with--tag 2.0.0after a simulated release commit.python -m build pythonandtwine check --strictpass; the wheel contains only the module and the license.🤖 Generated with Claude Code
https://claude.ai/code/session_01Wnt4wFr4Cz9BZjp1C6VRGk
Generated by Claude Code