fix(seed): correct 7.1 pin prose, stop bump-seed.sh de-aligning it #28
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/seed-pin-prose-and-alignment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
configs/seeds/7.1.tomlclaimed:…and told the reader to bump to a real 7.1 config "as soon as anthraxx ships one". He shipped one. The pin has been
7.1.4.hardened1-1since the seed-bump merged inb958c42, so theNOTEdescribed the opposite of reality to anyone reading the file to understand the current seed.The three keys
bump-seed.shrewrites had also drifted one column left of the three it doesn't (commit/tag/sha256at 11 chars vsurl/config_path/signer_fprat 12).Prose
Rewritten to describe the same-line 7.1 seed, keeping the pinning-model and signature-verification explanation intact. Two claims needed rewording rather than deleting:
config.x86_64in ~1 in 4–5 tags. That's the ordinary case7.0.tomlalready documents ("The seed routinely LAGS the kernel version — that is expected, handled by olddefconfig + the drift guard, not by a version-match gate"), so the two files now agree.releases/carries v7.1.1 through v7.1.4, so the guard is live for this line.The cross-series fallback rationale is kept as history, since it applies to any future line stood up before anthraxx packages a config for it.
Root cause —
tools/bump-seed.shThis is what would have done it again:
De-alignment. Its
sedreplaced whole lines with hardcoded padding (commit =), one space short of the files'config_path =column — so every bump silently skewed the three keys it rewrites. Now value-anchored with a\1backreference, preserving whatever alignment the file has rather than imposing a width.Silent no-op risk introduced by (1). A value-anchored substitution does nothing if a value isn't double-quoted, which would leave the pin unchanged while the script reports success and
seed-bump.ymlopens an empty PR. The rewrite is now verified and hard-fails if it didn't land.Prose is never rewritten — the actual cause of the stale
NOTE. The script now warns when a bump crosses a series boundary, and says so specifically when a line gains its first same-line seed.seed-bump.ymlalready embeds the script's whole summary in the PR body, so this reaches a human at review time with no workflow change. Rendered against the historical7.0.12 → 7.1.4bump:Verification
Pin values are byte-identical to
main— confirmed key by key; only prose and whitespace changed.The two changed blocks were tested by extracting them from the real script rather than re-typing them, so the tests can't drift from the implementation. 15/15 pass:
7.0.tomlcolumns exactly), leaves prose untouchedseddoes de-align, confirming the diagnosis7.0-line bump silent; still-cross-series bump emits the softer note; commit-only pin (no tag) silent; non-series pin filename emits no bogus mismatchConsumers re-checked against the rewritten file:
python3 tomllibparses all six keys, andbuild/fetch-seed.sh's owntoml_getreturns the correct value for every key it reads.Repo validators:
shellcheck build/*.sh tools/*.shclean,bash -nclean,yamllint -d relaxed .forgejo/workflows/exit 0,workflow-expressionsgreps clean,py_compile tools/*.pyclean,intent-matches-policy→ "intent.config and POLICY.md agree".🤖 Generated with Claude Code