Skip to content

docs(release): the index bump PR is machine-authored, and the pin waits on the pointer - #572

Merged
Sunrisepeak merged 1 commit into
mainfrom
docs/index-bump-hand-written
Sep 5, 2026
Merged

docs(release): the index bump PR is machine-authored, and the pin waits on the pointer#572
Sunrisepeak merged 1 commit into
mainfrom
docs/index-bump-hand-written

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

All nine workflows on ce7d977 failed at bootstrap with package 'mcpp@2026.9.5.4' not found. The release itself was fine; the release tail was not, in two independent ways. Both are now recorded in docs/09-release.md, its zh mirror, and the mcpp-release skill.

The duplicate ["latest"] key

xim-pkgindex#764 was hand-written (branch feat/mcpp-2026.9.5.4, +22/-0) and merged ahead of the generated #765 (branch bump/mcpp-2026.9.5.4, xlings-ci, +22/-3). The three deletions are the load-bearing part: the generator replaces each platform table's ["latest"] line. Appending instead left two ["latest"] keys per table, and a Lua table constructor takes the last assignment:

linux      latest=2026.9.5.3   2026.9.5.4=true  2026.9.5.3=true   **BAD**
macosx     latest=2026.9.5.3   2026.9.5.4=true  2026.9.5.3=true   **BAD**
windows    latest=2026.9.5.3   2026.9.5.4=true  2026.9.5.3=true   **BAD**

The exact-version entry was present and correct, so every pinned consumer stayed green — this repository's CI pins exactly and never saw it. Only a version-less xlings install mcpp served the stale binary.

Fixed by resolving #765's conflict onto the bot's shape (openxlings/xim-pkgindex@1f4b39d), which differs from the hand-written main by exactly the three stale lines. Verified on the merged index:

linux      latest=2026.9.5.4   2026.9.5.4=true  2026.9.5.3=true   OK
macosx     latest=2026.9.5.4   2026.9.5.4=true  2026.9.5.3=true   OK
windows    latest=2026.9.5.4   2026.9.5.4=true  2026.9.5.3=true   OK

The pin outran the pointer

ce7d977 reached main at 17:20:03, 19 s before #764 merged (17:20:22). The pointer asset was replaced at 17:20:32; the CI jobs resolved the index at 17:21:23 — 51 s later — and still received the previous artifact 2d2a2ee (13:02). Clients read a CDN artifact, not the git tree, so "merged into xim-pkgindex" does not release the pin.

Criteria

Both are stated as what latest resolves to rather than as the presence of a version string, and both were run verbatim against the repaired index before being written down:

54:            ["latest"] = { ref = "2026.9.5.4" },
877:            ["latest"] = { ref = "2026.9.5.4" },
1580:            ["latest"] = { ref = "2026.9.5.4" },

  "index_version": "1f4b39d",     # == xim-pkgindex main short SHA

Docs-only: three .md files, no code. check_docs_style.sh passes, including en/zh heading parity.

…ts on the pointer

Two defects on 2026-09-05 came from the same step of the release tail, and
neither was visible to this repository's CI.

A hand-written index PR (xim-pkgindex#764) landed ahead of the generated one.
It appended each platform table's new ["latest"] line instead of replacing the
existing one, so every table carried two ["latest"] keys. A Lua table
constructor takes the last assignment, which resolved "latest" back to the
previous release while the exact-version entry stayed correct — so every pinned
consumer, mcpp's own CI included, remained green, and only a version-less
`xlings install mcpp` served the stale binary. Landing first also left the
generated PR conflicting.

Separately, the bootstrap pin reached main 19 seconds before the index PR
merged. The nine workflows it triggered resolved the index 51 seconds after the
new pointer asset had been replaced and still received the previous artifact;
all nine failed at bootstrap without compiling a line. "Merged into
xim-pkgindex" is therefore necessary but not sufficient — clients read a CDN
artifact, not the git tree.

Both criteria added here are stated as what resolves, not as the presence of a
version string, and both were run verbatim against the repaired index.
@Sunrisepeak
Sunrisepeak merged commit 5922be2 into main Sep 5, 2026
26 checks passed
@Sunrisepeak
Sunrisepeak deleted the docs/index-bump-hand-written branch September 5, 2026 18:21
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.

2 participants