Skip to content

Commit 1f711cc

Browse files
authored
chore(release): bootstrap pin -> 2026.8.5.2,并纠正上一条注释里的错误机制 (#358)
发布收尾:2026.8.5.2 已发布并进入 xim-pkgindex(#506 已合),按不变式把 `.xlings.json` 的 bootstrap pin 设成刚发布的这一版。 同时**纠正我在 PR#357 里写进 check_version_pins.sh 的解释**。那条注释断言 「xim-pkgindex 只保留一个 mcpp 版本,所以旧 pin 会失效」—— **这是错的**。直接查过 `pkgs/m/mcpp.lua`:它保留着 17 个版本,包括出问题的 2026.8.4.1 与 2026.8.3.2,而且 每个都带 aarch64 资产。 已确证的只是**现象**,不是机制: pin 2026.8.3.2 -> not found,available: 2026.8.4.1 pin 2026.8.4.1 -> not found,available: 2026.8.5.1 两次相隔一个发布,而 `available:` 每次只列**一个**版本 —— 恰好是当时最新的那个。 所以那个 job 里的解析器没有看到完整索引,真正的机制尚未查清。注释改为只陈述现象、 明说机制未知,并保留可操作的规则:**发布 N 之后,收尾 commit 把 pin 设成 N**。 写一条自己没验证过的机制进注释,比不写更糟 —— 它会把下一个人引到错误的方向。
1 parent 172408a commit 1f711cc

2 files changed

Lines changed: 20 additions & 11 deletions

File tree

.github/tools/check_version_pins.sh

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -141,18 +141,27 @@ fi
141141
# version that did not exist yet, and every job died with
142142
# `package 'mcpp@<unreleased>' not found`.
143143
#
144-
# But it may lag by exactly ONE release, no more. xim-pkgindex carries a
145-
# SINGLE mcpp version — the newest — so the moment a release lands, every
146-
# older pin names something that is no longer installable:
144+
# In practice it must equal the NEWEST published release, not merely some
145+
# released version. Observed twice, one release apart, in the aarch64
146+
# fresh-install job:
147147
#
148-
# [error] xlings: version '2026.8.4.1' not found for 'mcpp'
149-
# [error] available: 2026.8.5.1
148+
# pin 2026.8.3.2 -> [error] xlings: version '2026.8.3.2' not found for 'mcpp'
149+
# [error] available: 2026.8.4.1
150+
# pin 2026.8.4.1 -> [error] xlings: version '2026.8.4.1' not found for 'mcpp'
151+
# [error] available: 2026.8.5.1
150152
#
151-
# which is how the aarch64 fresh-install job died after 2026.8.5.1 shipped.
152-
# The rule that satisfies both directions: after publishing release N, the
153-
# post-release commit sets this pin to N. Never ahead (check (c)), never
154-
# more than one behind (not checkable here — it needs the index — so it
155-
# surfaces as the error above, and this note is where to look when it does).
153+
# Note what `available:` lists: exactly ONE version, the newest release at
154+
# that moment. That is NOT because the index dropped the others — checked
155+
# directly, pkgs/m/mcpp.lua carries 17 versions including both pins above,
156+
# each with aarch64 assets. So the resolver in that job is not seeing the
157+
# full index, and the mechanism is not yet understood; what is established
158+
# is the pattern and its fix.
159+
#
160+
# The operational rule that satisfies both directions: after publishing
161+
# release N, the post-release commit sets this pin to N. Never ahead
162+
# (check (c) enforces that), and in practice never behind either. This is
163+
# not checkable here — it needs the index — so it surfaces as the error
164+
# above, and this note is where to look when it does.
156165

157166
# (c) …and the bootstrap pin must never run AHEAD of the version being built.
158167
# Four-key numeric sort, so the date scheme orders correctly (a plain

.xlings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"workspace": {
3-
"mcpp": "2026.8.5.1"
3+
"mcpp": "2026.8.5.2"
44
}
55
}

0 commit comments

Comments
 (0)