Skip to content

chore: xlings pin -> 2026.7.28.4, and bring the release spec up to date - #303

Merged
Sunrisepeak merged 1 commit into
mainfrom
chore/xlings-pin-2026.7.28.4
Jul 28, 2026
Merged

chore: xlings pin -> 2026.7.28.4, and bring the release spec up to date#303
Sunrisepeak merged 1 commit into
mainfrom
chore/xlings-pin-2026.7.28.4

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Pin bump

src/xlings.cppm::kXlingsVersion2026.7.28.4. That constant is the single source of truth; check_version_pins.sh then named all 15 dependent pins across 7 files — including the three hardcoded aarch64 tarball literals in release.yml that the old comment-only lock-step list had missed. All 16 now agree.

Spec/doc updates — level with what the pipeline actually does

The release skill had drifted far enough to be misleading:

was now
"包含三个平台的构建" four, plus publish-ecosystem (and a note on why aarch64 is two-stage)
artefact checklist missing linux-aarch64 + the versionless aliases complete, with a size sanity check (linux tarballs should now be ~5MB)
nothing about mirroring, the index bump PR, xlings install mcpp@<ver> verification, or the bootstrap-pin bump documented — this is the half of a release where every recent incident happened
no mention of payload slimming documented, including why it asserts
version-bump file list as one flat set split into its two real phases

The mirror section now records why it is built the way it is, from the #301 measurements: 0.012 MB/s inbound to file.gitcode.com from a US runner vs 3.87 MB/s outbound and 16 MB/s to GitHub; ~4.6× jitter (so no fixed per-asset cap can work); per-connection shaping (so concurrency scales); no multipart on the presigned PUT (so a single file cannot be split); and gtc's exit code lying in both directions via the OBS callback.

Also fixed: mcpp --version samples in getting-started (EN + ZH) still showed 0.0.1, from before the date-version scheme.

Deliberately not touched

  • .agents/docs/* design/plan docs — they record what was true when written; rewriting them would falsify the ledger.
  • mcpp 0.0.95+ markers in docs/ — those are "introduced in" markers, not stale values.

Verification

check_version_pins.sh OK · every touched YAML parses · mcpp build + mcpp test (37 binaries) green locally.

Once this lands, 2026.7.29.1 gets cut — which is also the first real exercise of the payload-strip and concurrent-mirror changes from #302.

Pin bump: `src/xlings.cppm::kXlingsVersion` is the single source of truth;
check_version_pins.sh then named all 15 dependent pins across 7 files
(including the three hardcoded aarch64 tarball literals in release.yml that a
comment-only lock-step list had missed). All 16 now agree.

Docs/spec, brought level with what the release pipeline actually does:

- `mcpp --version` samples in getting-started (both languages) still showed
  `0.0.1`, from before the date-version scheme.
- The release skill claimed THREE build platforms; there are four, plus
  `publish-ecosystem`. Its artefact checklist omitted the aarch64 tarball and
  the versionless aliases entirely.
- It documented nothing about the second half of a release — mirroring to
  xlings-res, the index bump PR, `xlings install mcpp@<ver>` verification, and
  the bootstrap-pin bump — which is where every recent incident happened. That
  is now written down, along with WHY the mirror is built the way it is:
  measured 0.012 MB/s inbound to file.gitcode.com from a US runner vs
  3.87 MB/s outbound and 16 MB/s to GitHub, ~4.6x jitter (so no fixed
  per-asset cap can work), per-connection shaping (so concurrency scales), no
  multipart on the presigned PUT (so a single file cannot be split), and gtc's
  exit code lying in both directions via the OBS callback.
- Added the payload-slimming step and, more importantly, why it ASSERTS: the
  previous `strip` silently did nothing for many releases because `mcpp pack`
  rebuilds the binary after it.
- Split the version-bump file list into the two phases it actually has —
  mcpp.toml/fingerprint.cppm BEFORE the release, .xlings.json/MCPP_PIN AFTER
  — which is what check_version_pins.sh already encodes but nobody had said.

Historical records under .agents/docs/ are left alone on purpose: they record
what was true when written, and rewriting them would falsify the ledger. Same
for the `mcpp 0.0.95+` feature markers in docs/ — those are "introduced in"
markers, not stale values.

Verified: check_version_pins.sh OK, all touched YAML parses, `mcpp build` and
`mcpp test` (37 binaries) green.
@Sunrisepeak
Sunrisepeak merged commit a510996 into main Jul 28, 2026
15 checks passed
@Sunrisepeak
Sunrisepeak deleted the chore/xlings-pin-2026.7.28.4 branch July 28, 2026 21:08
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