Repository navigation
Release scripts: check_version.py before publish, after_tag_verify.sh, Release page - #43
Merged
Merged
Conversation
…erify.sh Port of humemai/arcadedb-embedded-python#501 and #479 (tracker #19). - scripts/check_version.py and tests/test_check_version.py: the devN/postN counting rule (devN from 0 and restarting on a new base A.B.C, postN from 1, never aN/bN/rcN, no reuse, no skipping). Checks only, exit 2 when a published-versions source cannot be read. The git-remote test asserts that git exists instead of skipping, because of the no-skips policy. - release.yml: the first job (validate-version) checks out the code and runs the script against the git tags and PyPI (`--pypi "$DIST_NAME"`, DIST_NAME is arcadedb), so a tag that breaks the rule builds and publishes nothing. A test pins that wiring. - scripts/after_tag_verify.sh: adapted to ArcadeData/arcadedb-python and the release.yml artifacts (release-dist), distribution arcadedb, import name arcadedb. `-` as the previous version checks the PyPI file set against the pyproject.toml classifiers (one wheel per Python version and platform), for the first release. A .devN wheel ships the X.Y.Z-SNAPSHOT engine jar, so the smoke test expects that name. The docs step is dropped: the Antora component is unversioned and builds elsewhere. - docs: a Release page in the Antora component states the version rule once. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 26, 2026
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.
Part of #19 (release scripts, item 2 of the latest status comment). Ported from humemai/arcadedb-embedded-python#501 (
check_version.py) and humemai/arcadedb-embedded-python#479 (after_tag_verify.sh), adapted to thearcadedbnames and to this repository'srelease.yml. No wheel content changes.scripts/check_version.pyandtests/test_check_version.py: the counting rule.devNstarts at 0 and restarts at 0 when the baseA.B.Cchanges,postNstarts at 1,aN/bN/rcNare never used, a number is never reused or skipped, adevNof a released base and apostNof an unreleased base are refused. It only checks. Exit 0 is the correct next version, 1 is not, 2 is a source (git tags, PyPI) that could not be read. The test for the git-remote source asserts thatgitexists instead of callingpytest.skip, because of the no-skips policy..github/workflows/release.yml: the first job (validate-version) now checks out the code and runspython3 -I scripts/check_version.py "$TAG" --git-remote origin --pypi "$DIST_NAME"after the existing tag-form regex.DIST_NAMEisarcadedb. It fails closed, and every other job needs this one, so a tag that breaks the rule builds and publishes nothing. A test pins the wiring. A later native job passes--tag-prefix native-v. Re-running the whole workflow for a version that is already on PyPI now fails this check on purpose; the release page says to re-run only the publish job.scripts/after_tag_verify.sh: this applies to the flow here, so it is ported with changes. It targetsArcadeData/arcadedb-pythonand the distributionarcadedb(import namearcadedb), compares the sha256 of the PyPI files with therelease-distartifact that the publish job uploaded, and takes-as the previous version for the first release: the PyPI file set is then checked against thepyproject.tomlclassifiers (one wheel per Python version and platform, 20 files at the moment) instead of the previous release. A.devNwheel ships theX.Y.Z-SNAPSHOTengine jar, so the smoke test expects that jar name (the humemai script only handledX.Y.Zand.postN). The docs step is dropped: the Antora component is unversioned and builds in another repository.development/release.adoc, in the nav) states the version rule once and describes the check and the after-tag script.CLAUDE.mdgets a short pointer.Checked locally: pre-commit on the changed files (black, isort, shfmt, actionlint, the name check), Bandit as CI runs it on
srcandtests(clean),tests/test_check_version.pypinned to cores 0-3 (43 passed; run without the wheel-dependentconftest.py, the file needs no wheel),bash -non the script, and the file-set step ofafter_tag_verify.shagainst synthetic PyPI data (complete set passes, a missing wheel and an extra file fail). The PyPI-facing steps of the script need a real release and were not run.🤖 Generated with Claude Code