|
17 | 17 | # stay routed here as directories: the driver still owns a same-category |
18 | 18 | # collision, which is the residue sharding cannot remove. |
19 | 19 | # |
20 | | -# One entry below is still a SINGLE file — spec-changes.json — and #8344 asked |
21 | | -# what the driver-less queue does to it. MEASURED (2026-08-13, the real in-flight |
22 | | -# case plus four synthetic pairs, each merged in a clone with no |
23 | | -# merge.os-regen.driver, over it and the protocol upgrade guide, then a second |
24 | | -# committed single file): the queue leaves neither stale-but-clean. Both were sorted |
25 | | -# unions and an ADR-0087 registration is insertion-only, so the queue's text merge |
26 | | -# either takes both sides — byte-identical to the regeneration, gates green — or |
27 | | -# conflicts outright. It conflicts only when the two in-flight entries are ADJACENT |
28 | | -# in registry sort order; one existing entry between them is already enough to |
29 | | -# merge clean AND current. |
30 | | -# |
31 | | -# Sharding it would not buy back an ejection, which is why it is still a single |
32 | | -# file: every conflicting case also conflicts in |
33 | | -# packages/spec/src/migrations/registry.ts — generated, committed, unsharded, |
34 | | -# NOT_DRIVER_MANAGED — and every registration touches it by construction. The table |
35 | | -# and the reproduction are in packages/spec/src/migrations/entries/README.md. |
| 20 | +# packages/spec/spec-changes.json LEFT this list at #22485, because it left git: the |
| 21 | +# #22449 B′ ruling generates it at publish (`scripts/release-spec-changes.sh` writes |
| 22 | +# it into the package before the tarball is packed), the pull request generates it |
| 23 | +# in memory, and the file is gitignored. NOT_DRIVER_MANAGED records `gen:spec-changes` |
| 24 | +# as untracked output. A branch that still carries a regenerated copy meets a |
| 25 | +# modify/delete conflict when it merges main, and the deletion is the resolution: |
| 26 | +# `git rm packages/spec/spec-changes.json`, then commit — git runs no merge driver on |
| 27 | +# a modify/delete, so nothing is deferred and no marker is left. |
36 | 28 | # |
37 | 29 | # docs/protocol-upgrade-guide.md LEFT this list at #22483 because nothing generates |
38 | 30 | # it any more. It is a hand-written pointer stub naming the guide's public address, |
|
46 | 38 | # forked before #22483 still defers the guide on its first merge of main; the merged |
47 | 39 | # tree has no row to discharge it against, so the next commit and the push are |
48 | 40 | # refused instead of passed (measured on PR #22556 with the previous head as the |
49 | | -# control, both merge directions). |
| 41 | +# control, both merge directions). Since #22485 that refusal names the path as |
| 42 | +# UNROUTED and prints the remedy that settles it — compare it with the merged-in |
| 43 | +# side, keep the right bytes, `node scripts/check-regen-pending.mjs --release PATH`. |
50 | 44 | # |
51 | 45 | # `merge=os-regen` hands those paths to `scripts/git-merge-regen.mjs`, which does |
52 | 46 | # NOT text-merge them. See that file for why it also does not regenerate them |
|
177 | 171 | # case where two branches' rows do not overlap and the text merge exits 0 describing |
178 | 172 | # neither side. |
179 | 173 |
|
180 | | -packages/spec/spec-changes.json merge=os-regen |
181 | 174 | packages/spec/liveness/state-counts/** merge=os-regen |
182 | 175 | packages/spec/authorable-surface/** merge=os-regen |
183 | 176 | packages/spec/authorable-surface.base.json merge=os-regen |
|
0 commit comments