From 62e1da8d973b5b55b3f4012bc36b3218dc385de5 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 27 Jul 2026 09:04:01 +0000 Subject: [PATCH] chore(release)!: enter RC pre-mode and anchor the train as the v17 major MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enter Changesets pre-mode (tag: rc) and add a v17 anchor changeset declaring the sole `major` bump. The lockstep group applies the highest bump to every package, so the accumulated launch-window train — highest breaking density since the policy was adopted (ApiMethod enum shrink #3543, GraphQL surface removal, ADR-0104 value-shape write cutover, dead-cluster prunes) — computes to 17.0.0-rc.0 instead of a bare 16.2.0 minor that every ^16.x consumer would auto-ingest. Nothing reaches the latest tag until `changeset pre exit`; weekly cuts inside the window publish rc.N pre-releases for downstream validation (cloud/objectui/examples, dogfood gate, #2035 third-party gate). The no-major guard stands aside in pre-mode by design and prints the pending major informationally (verified locally). The ApiMethod changeset's "ships as minor" wording is amended to point at the anchor. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_018V7nzG1x7nuqkwZQTowtBo --- .changeset/apimethod-enum-shrink.md | 5 +- .changeset/pre.json | 84 +++++++++++++++++++++++++++++ .changeset/v17-rc-anchor.md | 30 +++++++++++ 3 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 .changeset/pre.json create mode 100644 .changeset/v17-rc-anchor.md diff --git a/.changeset/apimethod-enum-shrink.md b/.changeset/apimethod-enum-shrink.md index 847e35104..a3dc84cf8 100644 --- a/.changeset/apimethod-enum-shrink.md +++ b/.changeset/apimethod-enum-shrink.md @@ -6,9 +6,8 @@ feat(spec)!: shrink the `ApiMethod` enum to the six primitives — legacy values are stripped at parse, never honored (#3543, P2 of #3391) -**BREAKING** (ships as `minor` per the lockstep launch-window policy — every -package versions together, so a `major` here would promote the entire -monorepo; the `!` marker and this changeset are the breaking-change record): +**BREAKING** (the `!` marker and this changeset are the breaking-change +record; the train ships as the v17 major — see the `v17-rc-anchor` changeset): the authored `enable.apiMethods` enum is now exactly the six primitives (`get`, `list`, `create`, `update`, `delete`, `bulk`). The eight legacy values (`upsert`, `aggregate`, `history`, `search`, `restore`, `purge`, diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 000000000..1e94c0e53 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,84 @@ +{ + "mode": "pre", + "tag": "rc", + "initialVersions": { + "@objectstack/docs": "4.2.1", + "@objectstack/example-crm": "4.0.91", + "@objectstack/example-showcase": "0.3.13", + "@objectstack/example-todo": "4.0.91", + "@objectstack/example-embed-objectql": "0.0.31", + "@objectstack/hono": "16.1.0", + "@objectstack/account": "16.1.0", + "@objectstack/setup": "16.1.0", + "@objectstack/studio": "16.1.0", + "@objectstack/cli": "16.1.0", + "@objectstack/client": "16.1.0", + "@objectstack/client-react": "16.1.0", + "@objectstack/cloud-connection": "16.1.0", + "@objectstack/connector-mcp": "16.1.0", + "@objectstack/connector-openapi": "16.1.0", + "@objectstack/connector-rest": "16.1.0", + "@objectstack/connector-slack": "16.1.0", + "@objectstack/console": "16.1.0", + "@objectstack/core": "16.1.0", + "create-objectstack": "16.1.0", + "@objectstack/formula": "16.1.0", + "@objectstack/lint": "16.1.0", + "@objectstack/mcp": "16.1.0", + "@objectstack/metadata": "16.1.0", + "@objectstack/metadata-core": "16.1.0", + "@objectstack/metadata-fs": "16.1.0", + "@objectstack/metadata-protocol": "16.1.0", + "@objectstack/objectql": "16.1.0", + "@objectstack/observability": "16.1.0", + "@objectstack/platform-objects": "16.1.0", + "@objectstack/driver-memory": "16.1.0", + "@objectstack/driver-mongodb": "16.1.0", + "@objectstack/driver-sql": "16.1.0", + "@objectstack/driver-sqlite-wasm": "16.1.0", + "@objectstack/embedder-openai": "16.1.0", + "@objectstack/knowledge-memory": "16.1.0", + "@objectstack/knowledge-ragflow": "16.1.0", + "@objectstack/plugin-approvals": "16.1.0", + "@objectstack/plugin-audit": "16.1.0", + "@objectstack/plugin-auth": "16.1.0", + "@objectstack/plugin-dev": "16.1.0", + "@objectstack/plugin-email": "16.1.0", + "@objectstack/plugin-hono-server": "16.1.0", + "@objectstack/plugin-pinyin-search": "16.1.0", + "@objectstack/plugin-reports": "16.1.0", + "@objectstack/plugin-security": "16.1.0", + "@objectstack/plugin-sharing": "16.1.0", + "@objectstack/plugin-webhooks": "16.1.0", + "@objectstack/dogfood": "0.0.39", + "@objectstack/downstream-contract": "0.0.37", + "@objectstack/http-conformance": "0.0.5", + "@objectstack/rest": "16.1.0", + "@objectstack/runtime": "16.1.0", + "@objectstack/sdui-parser": "16.1.0", + "@objectstack/service-analytics": "16.1.0", + "@objectstack/service-automation": "16.1.0", + "@objectstack/service-cache": "16.1.0", + "@objectstack/service-cluster": "16.1.0", + "@objectstack/service-cluster-redis": "16.1.0", + "@objectstack/service-datasource": "16.1.0", + "@objectstack/service-i18n": "16.1.0", + "@objectstack/service-job": "16.1.0", + "@objectstack/service-knowledge": "16.1.0", + "@objectstack/service-messaging": "16.1.0", + "@objectstack/service-package": "16.1.0", + "@objectstack/service-queue": "16.1.0", + "@objectstack/service-realtime": "16.1.0", + "@objectstack/service-settings": "16.1.0", + "@objectstack/service-sms": "16.1.0", + "@objectstack/service-storage": "16.1.0", + "@objectstack/spec": "16.1.0", + "@objectstack/trigger-api": "16.1.0", + "@objectstack/trigger-record-change": "16.1.0", + "@objectstack/trigger-schedule": "16.1.0", + "@objectstack/types": "16.1.0", + "@objectstack/verify": "16.1.0", + "objectstack-vscode": "16.1.0" + }, + "changesets": [] +} diff --git a/.changeset/v17-rc-anchor.md b/.changeset/v17-rc-anchor.md new file mode 100644 index 000000000..44ebe9339 --- /dev/null +++ b/.changeset/v17-rc-anchor.md @@ -0,0 +1,30 @@ +--- +"@objectstack/spec": major +--- + +release!: promote the accumulated launch-window train to v17.0.0 (RC cycle) + +Anchor changeset for the v17 major. The lockstep group applies the highest +bump across all pending changesets to every package, so this single `major` +promotes the whole train — every other pending changeset keeps its own +`minor`/`patch` declaration and its own narrative. + +**Why a major, when the launch-window policy ships breaking changes as +`minor`:** this train's breaking density is the highest since the policy was +adopted — the `ApiMethod` enum shrink (#3543, compile-time breaking for TS +authors), the GraphQL surface removal, the ADR-0104 field value-shape write +cutover, and the retirement of several dead spec clusters all ride together. +Publishing that set as a bare minor would auto-upgrade every `^16.x` consumer +into it on their next install. A major puts the version-number signal back: +caret ranges hold at 16.x until a consumer opts in. + +**RC cycle:** this lands inside Changesets pre-mode (`rc` tag), so the train +publishes as `17.0.0-rc.N` — nothing reaches `latest` until `changeset pre +exit`. Downstream validation during the RC window: cloud / objectui / +examples upgrade against the RC, the dogfood gate and the third-party +consumer gate (#2035) run against it, and legacy `apiMethods` strip warnings +are watched for the deny-all cliff. + +Migration: each breaking change's own changeset carries its FROM → TO guide +(grep the CHANGELOG for `!:` entries); the ApiMethod shrink additionally +ships a reporter codemod (`scripts/codemod/apimethods-legacy-to-primitives.mjs`).