Repository navigation
Remove the release scan and orchestrator; release by manual stage dispatch - #209
Merged
Merged
Conversation
…patch Bridge releases are now three owner dispatches: Build Exact Bridge Candidate, Qualify Exact Bridge Candidate, then Publish Exact Qualified Bridge Assets. Each stage already verifies every input it consumes, so the scan workflow, the orchestrator, its tests and the helpers only it used are deleted. The CI reliability contract now allows the publication PAT only in publish_assets.yml, and CONTRIBUTING documents the exact dispatch inputs.
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.
Outcome
Bridge releases are fully manual. The owner dispatches three workflows in order: Build Exact Bridge Candidate, then Qualify Exact Bridge Candidate, then Publish Exact Qualified Bridge Assets. The release scan workflow and the orchestrator behind it are deleted.
Why
Every llama.cpp or native bump needs manual work first, so automatic upstream release pipelines are unwanted. llamadart-native#178 made the same decision. The orchestrator existed only to run the three stages unattended. Every stage already verifies all of its inputs itself, so the orchestrator added no safety of its own.
Removed
.github/workflows/auto_llama_cpp_update.ymlscripts/release/orchestrator/(11 modules) andtests/release/orchestrator/(19 files)python_compat.mjsre/split/tuple/datetime helpers,json.mjspyStrptimeUtcOrRaise,qualification.mjsloadPublishedCandidate,publication_state.mjsvalidatePublishedCandidatecontract.mjssubcommandsvalidate-native,scan-native,compare-upstream,select-stable-native-release, andselectStableNativeReleaseverify_ci_reliability.mjscheckOrchestration, the orchestrator import walk, and the literal-dispatch-boolean scan.mjsand deleted.py) in theci_scope.mjsTOOLINGallowlistKept, and why
All three stage workflows and all of their checks are unchanged:
assets.jsondigest and inventory;gh release verify;publication_state.mjsvalidateTransition).Only comments and input descriptions changed. No safety check had to move, because no stage relied on the orchestrator to verify anything.
The
orchestrator_correlation_idinput and manifest field keep their name. Published manifests and release notes record it, and publication recovery compares it.The CI reliability contract now allows
WEBGPU_BRIDGE_ASSETS_PATonly inpublish_assets.yml. Before, it also allowed the scan workflow. A new test case covers this.Candidate and publish reject non-stable (
bNNNN) native tags viavalidate-native-request(the one check only the orchestrator enforced); the CI contract now requires it in both workflows.Manual release
The full steps, with the input-gathering commands, are in CONTRIBUTING.md, "Publish Process". Run everything from
mainas the owner, and use one correlation ID for all three stages (for examplemanual-v0.1.83).bridge_candidate.ymlwith:orchestrator_correlation_id;bridge_source_sha: themainSHA;upstream_tagandupstream_commit: from the nativeassets.jsonfieldsllama_cpp_tagandllama_cpp_commit;native_release_tag, andnative_manifest_sha256(the SHA-256 ofassets.json);release_tag: the next patch above the newest published tag;release_rebuild=0andassets_immutable_releases_enabled=true.bridge_qualification.ymlwithorchestrator_correlation_idandcandidate_run_id.publish_assets.ymlwith the step 1 inputs exceptassets_immutable_releases_enabled, pluscandidate_run_id,qualification_run_idandpublish_approved=true.Secrets and settings
ORCHESTRATOR_DISPATCH_TOKENwas never created. The only secret is the environment-scopedWEBGPU_BRIDGE_ASSETS_PAT, and publication still needs it.leehack/llama-web-bridge, which only the orchestrator's dispatch used. It still needs:leehack/llama-web-bridge-assets;leehack/llama-web-bridge-assets, for theimmutable-releasescheck.Validation
npm run check:js: 603 tests, 599 pass, 0 fail, 4 skipped. The test count is lower than before because the orchestrator suites were removed.node scripts/ci/verify_ci_reliability.mjspasses.I added a probe workflow that references the PAT, and the contract rejected it.
An independent auditor reviewed this exact diff and found no blocking findings. It covered:
v0.8.0-1.I addressed its three non-blocking doc notes:
Size
Against
main: 48 files, +153 / -11,691 lines.