Visitar URL original
make_2611_stages: ArcadeDB pair guards only where an ArcadeDB arm runs, and every ABORT hands on by tae898 · Pull Request #440 · humemai/arcadedb-embedded-python · GitHub
Skip to content

make_2611_stages: ArcadeDB pair guards only where an ArcadeDB arm runs, and every ABORT hands on - #440

Merged
tae898 merged 2 commits into
mainfrom
stage-guard-arcadedb-only
Oct 21, 2026
Merged

tae898 merged 2 commits into
mainfrom
stage-guard-arcadedb-only

Conversation

@tae898

@tae898 tae898 commented Oct 21, 2026 •

Copy link
Copy Markdown

Closes #439

Comparator stages of make_2611_stages.py no longer guard on what concerns the ArcadeDB arms they do not run, and a stage that aborts before its START line now hands on.

ABORT rule, quoted from the template: "AN ABORT MUST NOT STRAND THE CHAIN ... the marker is written by a trap whatever happens: the ABORT is already in STATUS.txt and loud, and the rest of the campaign is worth more than making a human notice sooner", and from mini-ab-prep/DESIGN.md: "an EXIT trap set after the wait writes its own marker, so ABORT/SKIP still hand on". The template set the trap after the guards, so the rule did not hold for them. The trap now comes right after the wait, before git pull and every guard. A killed waiter still does not hand on. The ABORT line is written to STATUS.txt by say, where mini_watch.sh reports it; resuming is "fix the cause, run the aborted stage's script by hand after the chain" (CAMPAIGN.md).

Guards, split by what the stage runs. Every stage exports ARCADEDB_WHEEL (the pinned path), ARCADEDB_SERVER_IMAGE and ARCADEDB_ENGINE_COMMIT before build_images.sh, exactly as before, because the build bakes the wheel into every generic image (client, duckdb, dense) and comparator and ArcadeDB stages must build identical images. So every stage keeps the guard that the file exists at the pinned path with the pinned sha256 (build_images.sh copies it from that path; nothing in it or the Dockerfiles reads dist/). Only stages with an ArcadeDB arm (has_arcadedb_arm, in practice the --arcadedb-release pass) keep the rest: exactly one wheel in dist/ (it protects verify_pair_c25.sh, which takes the newest wheel there), the server image check, the wheel and JPype read-back out of dbbench:arcadedb, and verify_pair_c25.sh. The row stamps are unchanged: land_stage.py keeps only rows whose engine_commit starts with the pin.

build_images.sh no longer falls back to arcadedb-embedded==26.8.1 from PyPI. The generic images never took ARCADE_PKGS (only [arcadedb] does), so they carried either the wheel or nothing, never a PyPI engine. The silent stale pin was in the arcadedb image only: it now refuses to build that image (named, or by the default target list) without ARCADEDB_WHEEL, and refuses a wheel that is not a file. Images that take no wheel build alone by naming them. The one caller without a wheel was the walkthrough in bindings/python/docs/benchmarks/running.md (bash build_images.sh); it now sets ARCADEDB_WHEEL. All stage builds already export it.

Drafts, regenerated into a temp dir with the commands of the readiness README (pins from a stub wheel with the committed sha patched in); with the unchanged generator this reproduces the 12 committed drafts byte for byte, so the diff is only this PR's. All 12 change. Every stage: the trap block moves from after BACKENDS= to after the wait, and a header comment about the PyPI fallback is reworded. The 12 comparator stages also lose the one-wheel-in-dist rule, the server image check, the dbbench:arcadedb wheel/JPype read-back and verify_pair_c25.sh (replaced by one comment line); the wheel exists and sha256 guards and the export before the build are untouched. For the --arcadedb-release stages only the trap move and the comment differ, and the qT00 pair install is byte-identical. In the stored sha list 31 of 32 lines change, only the pair install does not.

Tests: a comparator-only draft keeps the wheel exists and sha guards with the export before the build and has none of the ArcadeDB-arm guards; a release stage keeps all of them in order; the trap precedes the first $ID ABORT in every draft; a stage run with no repo aborts on pull and its last STATUS line is qS01 ALL-DONE; the lint refuses a missing guard in an ArcadeDB stage and a surplus one in a comparator stage; build_images.sh refuses without a wheel for the arcadedb target (named or default), refuses a non-file wheel, and builds the generic images without a wheel carrying none. test_jpype_pin.py asserted the JPype read-back in every stage, so it now takes the release-pass stages and asserts a comparator stage has none. Benchmark suite on main 913 passed, 25 skipped, 0 failed; here 922 passed, 25 skipped, 0 failed. pre-commit clean on the seven files.

🤖 Generated with Claude Code

tae898 and others added 2 commits October 22, 2026 08:05
…s, and every ABORT hands on

A comparator stage guarded on the pinned wheel in dist/ and on dbbench:arcadedb although none of its arms uses either, and the ALL-DONE trap was set after those guards, so a guard failing before the START line stranded the rest of the chain. The pair's guards now belong to the stages that run an ArcadeDB arm (the --arcadedb-release pass), the trap is set right after the wait, --check --drafts lints both rules, and the stored draft sha list is rewritten.

Closes #439

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…d_images.sh has no PyPI fallback

Every stage exports the pinned wheel before build_images.sh (which bakes it into every generic image) and guards that it exists with the pinned sha256. Comparator stages drop only what concerns the ArcadeDB arms: the one-wheel-in-dist rule, the server image check, the dbbench:arcadedb read-back and verify_pair_c25.sh. build_images.sh refuses to build the arcadedb image without ARCADEDB_WHEEL instead of falling back to a stale PyPI pin.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@tae898
tae898 merged commit 516cac5 into main Oct 21, 2026
4 checks passed
@tae898
tae898 deleted the stage-guard-arcadedb-only branch October 21, 2026 23:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

make_2611_stages: comparator stages guard on the ArcadeDB wheel and image they do not use, and a pre-START abort strands the chain

1 participant