Skip to content

feat(release): G5 — binary-release ships every [[bin]] (#4189), rebuilt on main via #4588 - #4589

Closed
noahgift wants to merge 4 commits into
split/ont10-rest-0.70from
1c/g5-release-all-bins-v2
Closed

noahgift wants to merge 4 commits into
split/ont10-rest-0.70from
1c/g5-release-all-bins-v2

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

Rebuild of #4580 (G5, #4189) on #4588, which is based on main. #4580 targeted batch/ont-10, so ci.yml (runs only on PRs into main) never ran on it.

This PR changes the same 4 files as #4580, cherry-picked with 0 conflicts (ae34ee7, e97655a, f42ae35):

  • .github/workflows/binary-release.yml: new build-all-bins job. It publishes every workspace [[bin]], taken from nightly_manifest.py bins (the nightly's own derivation, not a second list). apr and pv are left out because their own lanes already ship them.
  • scripts/release/asset_version_check.sh: new 4th arg BIN, so each bin's version line is checked under its own name. The self-test passes.
  • crates/aprender-cgp/src/cli.rs: the clap name is now aprender-cgp.
  • docs/audits/impl-GH-4189-receipt.md

#4580's review receipt is dropped because it is bound to that PR. This PR gets its own quorum.

Base: split/ont10-rest-0.70 (#4588), because the two scripts this depends on (asset_version_check.sh, stamp_rc_version.sh) arrive with it. When #4588 merges, this PR is retargeted to main and CI runs then. rc.1 is tagged after it merges (REL_PR=4588, BINS_PR=this).

Smoke (#4580 content on main c115c5e): 29 of 29 bins built, answered --help and passed the version check.

Supersedes #4580.

🤖 Generated with Claude Code

noahgift and others added 4 commits September 28, 2026 10:55
…under its own name (#4189)

binary-release.yml shipped apr and pv only; 27 workspace bins were built by the
nightly and never attached to a tag. New `build-all-bins` lane (x86_64 on yoga,
aarch64 on gx10, gnu in rust:1.93.0-bullseye): the bin set and the cargo
selection are `nightly_manifest.py bins` of the tag tree, verbatim, never a hand
list. apr/pv keep their dedicated lanes (a second pv-<tag>-<target> would clobber
the pv asset). Before upload every bin must pass asset_version_check.sh under its
own name, --help, the 2.31 glibc floor and `nightly_manifest.py smoke`; after
upload every asset is read back.

asset_version_check.sh accepted only `apr X.Y.Z (<sha>)`, so 28 of 29 real rc.1
lines were refused. It now takes an optional BIN (default apr, 3-arg callers
unchanged), compares the name as a literal prefix, and accepts pv/pv-sat's
trailing ` (<description>)`. Measured on the 29 --version lines of a stamped
v0.70.0-rc.1 build at 9f56095: 29/29 ok once aprender-cgp prints its own
[[bin]] name (clap name was "cgp"). 12 new case rows; two mutants (ignore the
bin name; greedy sha field) each turn the table red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… the nightly half is on base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t-5, DEGRADED: cuda/mutation/agy unreachable)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… its own quorum

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

quorum-review (AD-04): three PASS — agreed (auto_merge: checked=true was_armed=false disarmed=false)

{
 "ticket": "GH-4189",
 "head": "d1c9f5884ed704f44b07ee519648ee32a1e82931",
 "width": 3,
 "executor": "agy",
 "agreed": true,
 "auto_merge": {
  "checked": true,
  "was_armed": false,
  "disarmed": false,
  "note": "auto-merge not armed"
 },
 "lanes": [
  {
   "lane": 1,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 2,
   "verdict": "PASS",
   "findings": 0
  },
  {
   "lane": 3,
   "verdict": "PASS",
   "findings": 0
  }
 ]
}

noahgift added a commit that referenced this pull request Oct 3, 2026
…rename release:ModelCell

Re-ran the hotspot check that §4 requires before B2 and OBS-05, git only,
against origin/main 316dee2. Trial merges used the old git merge-tree,
with one positive and two negative controls. Every conflict in B2 (6 code
files) and OBS-05 (ontology/shapes.rs) comes from one commit, 989cb01
(fold(0.70) #4655). Of the added lines in the ONT-10 PR heads,
#4587/#4588/#4589/#4611 have 99-100% on main and #4615 has 93%; the
not-on-main controls score 2.6% and 11.2%. So the "after ONT-10" condition
is met in content.

B2 duplicates nothing on main, but the class release:ModelCell now means
two things. On main, v1 (since 989cb01) uses it for a non-generating
model-command cell whose shape requires release:row. Seg 7's v2 uses it for
a cell derived from kernel cells whose shape requires release:usesKernel.
B2 renames its class before the PR. This is a static reading; no cargo
was run (C277).

Agent: la-0.71
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@noahgift

noahgift commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

Closed with a pointer (0.70.2 backlog, aprender-78): G5 (#4189) is already on main. It landed in #4655 (989cb01) together with the #4587/#4588 stack this branch carried, and main has since hardened binary-release.yml further (d8c0039, 316dee2). Measured against origin/main 316dee2: crates/aprender-cgp/src/cli.rs and scripts/release/asset_version_check.sh are identical to facbc8d, and binary-release.yml differs only by main's later fixes. A merge of main into this branch produces main's tree plus one audit receipt doc (docs/audits/impl-GH-4189-receipt.md). Branch 1c/g5-release-all-bins-v2 is kept.

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.

1 participant