diff --git a/.changeset/22080-v18-line-opens.md b/.changeset/22080-v18-line-opens.md new file mode 100644 index 00000000000..91b1263e9b6 --- /dev/null +++ b/.changeset/22080-v18-line-opens.md @@ -0,0 +1,14 @@ +--- +"@objectstack/spec": major +--- + +The v18 line opens (ADR-0131; #22050). Every release from here is an `18.0.0-next.N` prerelease on the npm dist-tag `next`, until 18.0 GA. + +Clause-②: no + +- **What this marks.** Changesets is in pre mode with the tag `next`. Every `@objectstack/*` package versions together, so this one `major` takes all of them to 18, and the first version cut is `18.0.0-next.0`. `PROTOCOL_VERSION` follows `@objectstack/spec`'s major at version time, so it reads `18.0.0` from that prerelease on. The marker itself changes no code, key, export or stored shape. +- **What the line carries.** ADR-0131 (organization ownership is total: no NULL `organization_id`) lands on this line in stages. Each stage that breaks something says so in its own changeset, with its own migration. +- **Who receives it.** A plain install still resolves the dist-tag `latest`, which stays on 17.x until 18.0 GA. A prerelease is installed only on request: `@objectstack/spec@next`, or an exact `18.0.0-next.N`. +- **What ends it.** 18.0 GA exits pre mode and publishes to `latest`. + + diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000000..d20efa9e7db --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,4 @@ +{ + "mode": "pre", + "tag": "next" +} diff --git a/scripts/check-adr-0087-registration.mjs b/scripts/check-adr-0087-registration.mjs index 7362b91033f..c961391c805 100644 --- a/scripts/check-adr-0087-registration.mjs +++ b/scripts/check-adr-0087-registration.mjs @@ -533,7 +533,8 @@ const isChangesetFile = (p) => p.startsWith('.changeset/') && p.endsWith('.md') * audit surfaces is a readability fix; filtering the verdict would be a bypass, * and `PRE2` in the self-test pins the difference. */ -const isConsumedPrerelease = (p) => p.startsWith('.changeset/pre/'); +const CONSUMED_PRERELEASE_EXCLUDED = '.changeset/pre/'; +const isConsumedPrerelease = (p) => p.startsWith(CONSUMED_PRERELEASE_EXCLUDED); /** * Split a changeset into its frontmatter bump entries and its body.