Skip to content

Commit 5dbbb92

Browse files
os-zhuangclaude
andauthored
chore(release)!: enter RC pre-mode and anchor the train as the v17 major (#3600)
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. Claude-Session: https://claude.ai/code/session_018V7nzG1x7nuqkwZQTowtBo Co-authored-by: Claude <noreply@anthropic.com>
1 parent 0024abf commit 5dbbb92

3 files changed

Lines changed: 116 additions & 3 deletions

File tree

.changeset/apimethod-enum-shrink.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66

77
feat(spec)!: shrink the `ApiMethod` enum to the six primitives — legacy values are stripped at parse, never honored (#3543, P2 of #3391)
88

9-
**BREAKING** (ships as `minor` per the lockstep launch-window policy — every
10-
package versions together, so a `major` here would promote the entire
11-
monorepo; the `!` marker and this changeset are the breaking-change record):
9+
**BREAKING** (the `!` marker and this changeset are the breaking-change
10+
record; the train ships as the v17 major — see the `v17-rc-anchor` changeset):
1211
the authored `enable.apiMethods` enum is now exactly the six
1312
primitives (`get`, `list`, `create`, `update`, `delete`, `bulk`). The eight
1413
legacy values (`upsert`, `aggregate`, `history`, `search`, `restore`, `purge`,

.changeset/pre.json

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
{
2+
"mode": "pre",
3+
"tag": "rc",
4+
"initialVersions": {
5+
"@objectstack/docs": "4.2.1",
6+
"@objectstack/example-crm": "4.0.91",
7+
"@objectstack/example-showcase": "0.3.13",
8+
"@objectstack/example-todo": "4.0.91",
9+
"@objectstack/example-embed-objectql": "0.0.31",
10+
"@objectstack/hono": "16.1.0",
11+
"@objectstack/account": "16.1.0",
12+
"@objectstack/setup": "16.1.0",
13+
"@objectstack/studio": "16.1.0",
14+
"@objectstack/cli": "16.1.0",
15+
"@objectstack/client": "16.1.0",
16+
"@objectstack/client-react": "16.1.0",
17+
"@objectstack/cloud-connection": "16.1.0",
18+
"@objectstack/connector-mcp": "16.1.0",
19+
"@objectstack/connector-openapi": "16.1.0",
20+
"@objectstack/connector-rest": "16.1.0",
21+
"@objectstack/connector-slack": "16.1.0",
22+
"@objectstack/console": "16.1.0",
23+
"@objectstack/core": "16.1.0",
24+
"create-objectstack": "16.1.0",
25+
"@objectstack/formula": "16.1.0",
26+
"@objectstack/lint": "16.1.0",
27+
"@objectstack/mcp": "16.1.0",
28+
"@objectstack/metadata": "16.1.0",
29+
"@objectstack/metadata-core": "16.1.0",
30+
"@objectstack/metadata-fs": "16.1.0",
31+
"@objectstack/metadata-protocol": "16.1.0",
32+
"@objectstack/objectql": "16.1.0",
33+
"@objectstack/observability": "16.1.0",
34+
"@objectstack/platform-objects": "16.1.0",
35+
"@objectstack/driver-memory": "16.1.0",
36+
"@objectstack/driver-mongodb": "16.1.0",
37+
"@objectstack/driver-sql": "16.1.0",
38+
"@objectstack/driver-sqlite-wasm": "16.1.0",
39+
"@objectstack/embedder-openai": "16.1.0",
40+
"@objectstack/knowledge-memory": "16.1.0",
41+
"@objectstack/knowledge-ragflow": "16.1.0",
42+
"@objectstack/plugin-approvals": "16.1.0",
43+
"@objectstack/plugin-audit": "16.1.0",
44+
"@objectstack/plugin-auth": "16.1.0",
45+
"@objectstack/plugin-dev": "16.1.0",
46+
"@objectstack/plugin-email": "16.1.0",
47+
"@objectstack/plugin-hono-server": "16.1.0",
48+
"@objectstack/plugin-pinyin-search": "16.1.0",
49+
"@objectstack/plugin-reports": "16.1.0",
50+
"@objectstack/plugin-security": "16.1.0",
51+
"@objectstack/plugin-sharing": "16.1.0",
52+
"@objectstack/plugin-webhooks": "16.1.0",
53+
"@objectstack/dogfood": "0.0.39",
54+
"@objectstack/downstream-contract": "0.0.37",
55+
"@objectstack/http-conformance": "0.0.5",
56+
"@objectstack/rest": "16.1.0",
57+
"@objectstack/runtime": "16.1.0",
58+
"@objectstack/sdui-parser": "16.1.0",
59+
"@objectstack/service-analytics": "16.1.0",
60+
"@objectstack/service-automation": "16.1.0",
61+
"@objectstack/service-cache": "16.1.0",
62+
"@objectstack/service-cluster": "16.1.0",
63+
"@objectstack/service-cluster-redis": "16.1.0",
64+
"@objectstack/service-datasource": "16.1.0",
65+
"@objectstack/service-i18n": "16.1.0",
66+
"@objectstack/service-job": "16.1.0",
67+
"@objectstack/service-knowledge": "16.1.0",
68+
"@objectstack/service-messaging": "16.1.0",
69+
"@objectstack/service-package": "16.1.0",
70+
"@objectstack/service-queue": "16.1.0",
71+
"@objectstack/service-realtime": "16.1.0",
72+
"@objectstack/service-settings": "16.1.0",
73+
"@objectstack/service-sms": "16.1.0",
74+
"@objectstack/service-storage": "16.1.0",
75+
"@objectstack/spec": "16.1.0",
76+
"@objectstack/trigger-api": "16.1.0",
77+
"@objectstack/trigger-record-change": "16.1.0",
78+
"@objectstack/trigger-schedule": "16.1.0",
79+
"@objectstack/types": "16.1.0",
80+
"@objectstack/verify": "16.1.0",
81+
"objectstack-vscode": "16.1.0"
82+
},
83+
"changesets": []
84+
}

.changeset/v17-rc-anchor.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
"@objectstack/spec": major
3+
---
4+
5+
release!: promote the accumulated launch-window train to v17.0.0 (RC cycle)
6+
7+
Anchor changeset for the v17 major. The lockstep group applies the highest
8+
bump across all pending changesets to every package, so this single `major`
9+
promotes the whole train — every other pending changeset keeps its own
10+
`minor`/`patch` declaration and its own narrative.
11+
12+
**Why a major, when the launch-window policy ships breaking changes as
13+
`minor`:** this train's breaking density is the highest since the policy was
14+
adopted — the `ApiMethod` enum shrink (#3543, compile-time breaking for TS
15+
authors), the GraphQL surface removal, the ADR-0104 field value-shape write
16+
cutover, and the retirement of several dead spec clusters all ride together.
17+
Publishing that set as a bare minor would auto-upgrade every `^16.x` consumer
18+
into it on their next install. A major puts the version-number signal back:
19+
caret ranges hold at 16.x until a consumer opts in.
20+
21+
**RC cycle:** this lands inside Changesets pre-mode (`rc` tag), so the train
22+
publishes as `17.0.0-rc.N` — nothing reaches `latest` until `changeset pre
23+
exit`. Downstream validation during the RC window: cloud / objectui /
24+
examples upgrade against the RC, the dogfood gate and the third-party
25+
consumer gate (#2035) run against it, and legacy `apiMethods` strip warnings
26+
are watched for the deny-all cliff.
27+
28+
Migration: each breaking change's own changeset carries its FROM → TO guide
29+
(grep the CHANGELOG for `!:` entries); the ApiMethod shrink additionally
30+
ships a reporter codemod (`scripts/codemod/apimethods-legacy-to-primitives.mjs`).

0 commit comments

Comments
 (0)