v18
The v18 line, in prerelease on npm's `next` tag. It carries ADR-0131 (organization ownership is total, with no NULL `organization_id`) and lands its breaking changes in stages, each with its own migration. `latest` stays on 17.x until the line reaches GA.
Release status: v18 has no GA release yet. The line publishes as
18.0.0-next.Nprereleases on npm'snextdist-tag. Thelatesttag stays on the 17.x line, so a plain install keeps resolving 17.x, and a^17dependency range never moves to 18. You get a v18 prerelease only by asking for one:@nexton every@objectstack/*dependency together, or an exact18.0.0-next.N. There is no GA date.
The v18 line exists for one decision whose changes do not fit in a 17.x
minor: ADR-0131,
organization ownership is total — no NULL organization_id; declared metadata
stays in code; a row exists only when an organization authored it. Its changes
reshape stored data and narrow what the runtime accepts, so the ADR stages them
in one major (its D14) instead of spreading them across 17.x minors. While the
line is open, every other breaking change that lands on main ships on it too,
under the same rules.
How a breaking stage lands on this line
- Through
nextbeforelatest. Every major is published to thenextdist-tag for at least one RC cycle beforelatest(ADR-0087 D6). Changesets is in pre mode with the tagnext, so every release cut frommainis the next18.0.0-next.N, carrying everything merged since the cut before it. - One stage, one changeset, one migration. ADR-0131 lands in stages, in the
order the ADR records, and each stage that breaks something says so in its
own changeset: what breaks, and how to move from the old shape to the new
one. Those changesets become the
CHANGELOG.mdentries shipped inside each18.0.0-next.Npackage, so read the CHANGELOG of every prerelease you move to — moving from one18.0.0-next.Nto the next can break you. - Protocol 18 comes with it.
PROTOCOL_VERSIONis18.0.0onmain, so a v18 prerelease's handshake admitsengines.protocol: '^18'and refuses'^17'. Read Upgrading before you move an app's declared range. - GA ends the prerelease. Reaching GA exits pre mode and publishes the line
to
latest. Curated notes for the line's releases are compiled at release time and are not written yet; until then, the changesets are the record.