Repository navigation
Release day: preflight, engine bump, native after-tag verification, checklist - #209
Merged
Merged
Conversation
…fication, checklist scripts/release_preflight.py VERSION checks upstream release, Maven Central, Docker Hub, the version rule for both packages, CI on main, the version and engine the workflows derive from the tag (by running the real step code), and the native readiness variable. scripts/bump_engine.py moves the six dev-engine pins (found two beyond the three that were known: the manual-run version default in test-native.yml and the --version default of build_wheel.py) and reports the notices drift. after_tag_verify.sh gets PACKAGE=native. release.adoc gets the monthly Release day section, the issue template is the checklist, README and ci.adoc say where each build gets its engine. Closes #208 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g guard bans 'repo-root') Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…heck (f) is a SKIP on Windows Windows run 41634526979: (1) bump_engine printed native\pom.xml, so its test on the message failed; the pins are now PurePosixPath, so messages read the same on every OS. (2) check (f) runs the workflows' bash step code, which exits 1 on the Windows runner; the preflight now reports SKIP with a reason when os.name is nt or bash is missing. The tests that run bash are skipped on Windows (skipif), and two new tests cover the SKIP for no bash and for Windows without running any bash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… there The repo allows no skips (scripts/check_test_skips.py, ALLOWED_SKIPS pinned empty by its test); a test that cannot run on a platform is left out of collection in tests/conftest.py. test_release_preflight.py joins WINDOWS_NOT_APPLICABLE (check (f) runs the workflows' bash step code; the Windows SKIP path stays covered by two tests on Linux and macOS), and the needs_bash skip markers go, so a POSIX runner without bash fails loudly instead of skipping. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #208
Release day of
arcadedb-jvmand nativearcadedbbecomes a monthly routine in which only the owner's tag push is not a script run or CI. Every script and document takes the version as an argument (<VERSION>,<PREVIOUS>,<NEXT_DEV>); nothing is hard-coded to one release.What is in it:
scripts/release_preflight.py VERSION: read-only, printsPASS,FAILorSKIPwith the evidence, exit code is the number of FAILs, a network or tool error is a FAIL. Checks: (a) the upstream GitHub release exists and is not a draft; (b) Maven Central hasarcadedb-engineandarcadedb-server; (c) Docker Hub has the image forlinux/amd64andlinux/arm64; (d)check_version.pyaccepts the version for both packages; (e) the latest conclusiveTest native,Test JVMandTest Python Examplesruns onmainare green on every job; (f) the version and engine thatrelease-jvm.yml,release-native.ymlandtest-native.ymlderive from the tag, by running the realrun:code of those steps withTAG=<VERSION>(a renamed step is a FAIL, no bash is a SKIP); (g) the native readiness variable for a final or post tag (SKIP when the login cannot read it). ForA.B.C.postNthe upstream checks look atA.B.C; fordevNthey are SKIPped.scripts/bump_engine.py --engine NEW --dev-version NEXT [--check]: exact-anchor edit of the pins that dev, PR and nightly builds link,--checkreports drift and writes nothing, a missing or repeated anchor stops it before any write, and it refuses aNEXTthatcheck_version.pywould refuse (it must also be adevNof a base aboveNEW). There are six pins, two more than were known: besidesDEV_ENGINE,DEFAULT_VERSION,arcadedb.versionand thebuild-image.shdefault, the manual-runversiondefault intest-native.ymland the--versiondefault ofnative/wheel/build_wheel.pycarry the dev version too. It reportsnative/wheel/THIRD_PARTY_NOTICES.mdasTODO(generated, not edited), and--checkstays at exit 1 until the notices name the new engine.scripts/after_tag_verify.shcovers the native release withPACKAGE=native: artifactnative-release-dist,windows-x64optional for adevNand required for a final release, and a smoke run that asserts the native backend andENGINE_VERSION. The default stays the JVM package.release.adoc: a numbered "Release day" section (script, CI or owner for each step, the commands, how to pick<NEXT_DEV>from upstreammain, the notices regeneration from the CI build record), and the statement that the JVM wheels read the Docker Hub image, the native build reads Maven Central, both carry the same upstream release and can appear hours apart..github/ISSUE_TEMPLATE/release.mdis the checklist issue to open once per release.README.mdandci.adocsay where each build gets its engine and which engine each workflow tests.The local branch
chore/engine-26.11.1is superseded bybump_engine.pyand is not part of this PR.Tests:
tests/test_release_preflight.pyandtests/test_bump_engine.py, with mocked HTTP and subprocess (bash runs the real workflow step code), cover each FAIL path. Locally with--noconftest:Real run of the preflight against the existing release 26.10.2 (read-only, from the branch; the two FAILs are real findings on
maintoday: the Windows legs of the latestTest nativerun fail, andARCADEDB_NATIVE_READINESS_BAR_METis not set):🤖 Generated with Claude Code