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`).