Repository navigation
Commit 7288d30
committed
cut-release: regenerate candidate before freezing it, not after
script/cut-release.sh is what rainix-tag-release runs as its snapshot-generate-cmd,
so this is the code that will cut this repo's first real release (rain.factory#46
step 3). It froze the numbered snapshot from the committed candidate and only
then re-ran BuildPointers.
That order is silently wrong whenever the committed candidate has drifted from
the source. The copy freezes the stale bytes into src/generated/<tag>/, which the
frozen-snapshots-append-only gate then protects forever, and the regeneration
immediately moves candidate on to the real ones. The release publishes a
LibCloneFactoryDeploy aliasing the new address while permanently recording the
old one as what that version shipped.
Nothing downstream catches it. testCandidateSelfConsistent compares the
REGENERATED candidate to the source, so it is green either way, and no test
compares a numbered dir to candidate. The append-only gate only sees an added
dir. The failure is invisible until someone tries to reproduce the release.
Reordered so the frozen dir is a copy of a candidate already known to match the
source, with forge fmt also moved ahead of the copy so the two are byte-identical
rather than differing by formatting. Added a diff -r assertion after the copy so
the property is checked, not assumed.
No behaviour change when candidate is already fresh, which is the normal case CI
enforces on main. This is the abnormal case: tagging while main is red.
Docs corrected to match — CLAUDE.md stated the old order in two places.1 parent 5640894 commit 7288d30
2 files changed
Lines changed: 36 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
85 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
86 | 88 | | |
87 | 89 | | |
88 | 90 | | |
| |||
125 | 127 | | |
126 | 128 | | |
127 | 129 | | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
132 | 134 | | |
133 | 135 | | |
134 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
| 4 | + | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | | - | |
| 16 | + | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
46 | 64 | | |
47 | 65 | | |
48 | 66 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
0 commit comments