Skip to content

Commit fc986ac

Browse files
committed
chore: correct the affirmed consequent in this changeset's semver note (#14683)
I wrote that `minor` "means breaking" here, and that claiming it would signal an incompatibility. That affirms the consequent: breaking => minor holds, minor => breaking does not. check-changeset-no-major.mjs says so in the header I cited — during the window the bump level "tells a consumer nothing about whether the release breaks them", and the carriers are the banner and the ADR-0087 disposition, "the only signal there is". The landed record carries the other half: 87ad30c ('@objectstack/types': minor) and 3c1bbd2 ("@objectstack/metadata": minor) are new-export bumps with zero banner tokens. So `minor` is the union, not a breaking marker. Corrected to what the gate actually says: the level carries nothing either way, this change owes neither carrier, and `patch` follows from the lineage and from no export being added. Lines 54-58 unchanged. ⛔ No code, test or pin changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0112hMx9hjJ9BgB28X97DS68
1 parent 000a986 commit fc986ac

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

.changeset/getmetaitems-org-read-gate.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,20 @@ choice. `scripts/check-changeset-no-major.mjs` refuses `major` outright, so
5656
during the launch window a genuinely breaking change ships as `minor` (pre-1.0,
5757
whole-stack lockstep) — #13925 is exactly that, `"@objectstack/core": minor`
5858
carrying a bolded incompatibility banner and an `adr-0087:` marker for a
59-
narrowed published accept set. `minor` therefore *means* "breaking" here, and
60-
claiming it for this change would signal an incompatibility that does not exist.
59+
narrowed published accept set. But the implication runs ONE WAY ONLY, and the
60+
gate's own header is explicit that it does: during the window `minor` is the
61+
union of ordinary new-functionality bumps and banner-marked breaking ones
62+
(`87ad30c10`, `3c1bbd2a8` are new-export `minor`s carrying no banner at all),
63+
so the bump level "tells a consumer nothing about whether the release breaks
64+
them". The carriers of breaking-ness are the bolded banner in the body and the
65+
ADR-0087 disposition — "during the window they are the only signal there is".
66+
67+
⇒ So `minor` here would not claim an incompatibility; it would claim NOTHING
68+
about compatibility, which is precisely the cost the header names. This change
69+
carries neither carrier because it owes neither — nothing is retired, no accept
70+
set narrows, and `check-adr-0087-registration` reads it as non-breaking. The
71+
level is `patch` because the lineage above is `patch` and no export is added,
72+
not because `patch` rebuts something `minor` would have asserted.
6173

6274
**Nothing here is incompatible, and the reason is what the withheld rows are.**
6375
They are the #6190 phantoms: org-scoped rows of types with no per-org read

0 commit comments

Comments
 (0)