Repository navigation
release: 2.0.0, one major with the client SDKs - #245
Conversation
|
The code change is fine; the requested changes are to the release docs and the merge order.
There are four issues to fix. They are about the release docs and merge order, which are what operators read for a major release. 1. Merge order and red CIProblem. Repro. gh pr checks 245
gh run view 37622204939 --log-failed | grep -A8 "failing tests"Solution. Merge in this order:
#233 (arm64) is independent. Land it first only if the 2.0.0 images should be multi-arch. Acceptance criteria.
2. The migration section is stale: npm users go from 0.0.6 straight to 2.0.0Problem. "Migrating from npm Nothing in the repo lists what changed for operators between
Repro. npm view @o1-labs/mina-archive-node-graphql versions # ["0.0.6"] or "0.0.6"
git diff v1.0.0..HEAD --stat -- src Dockerfile package.json .githubSolution. -## Migrating from npm `0.0.6`
+## Upgrading to 2.0.0
-Tags `0.0.7` through `0.0.9` existed in git but were not published to npm, so
-npm consumers should treat `1.0.0` as an upgrade from `0.0.6`. Review these
-operator-visible changes before rolling out:
+npm never received 1.0.x (only `0.0.6` is published), so npm consumers go
+straight from `0.0.6` to `2.0.0`: apply both lists below. Container users on
+1.0.0 need only the second.
+
+### From `0.0.6` (changes that shipped in git tag 1.0.0)
- Browser deployments must set `CORS_ORIGIN` deliberately.
- Rate limiting is enabled and depends on the correct `TRUST_PROXY` hop count.
-- The supported Node.js runtime moves to Node 22.12 (`engines`); the 1.0.x
- container image runs Node 22.
+- The supported Node.js runtime moves to Node 22.12 (`engines`).
- Boolean environment variables reject junk values instead of relying on
JavaScript truthiness.
- `actions` result semantics include correctness fixes called out in the release
notes.
+
+### From 1.0.0
+
+No query that worked against 1.0.0 changes its result shape. Review:
+
+- The container image runs Node 24 (LTS). `engines` is unchanged (`>=22.12.0`).
+- License: Apache-2.0 (was ISC).
+- New query `schemaVersion`, always served, even when `ENABLED_QUERIES`
+ restricts the data queries.
+- New query `zkappCommands`, off unless `ENABLE_ZKAPP_COMMANDS_QUERY=true`;
+ bounded by `ZKAPP_COMMAND_RANGE_SIZE` (1000) and
+ `ZKAPP_COMMAND_ACCOUNT_UPDATE_LIMIT` (5000).
+- `ENABLED_QUERIES` now accepts `verificationKeyUpdates` and `zkappCommands`.
+- Eight list positions declare non-null elements (`[T]` → `[T!]`). Responses
+ are unchanged; codegen'd clients see stricter element types.Also, in Acceptance criteria.
3. Following the documented release steps would tag
|
Schema 2.0 has no breaking change against 1.0; the major aligns this server with the SDKs, which need one for their own API.
dc7facb to
592f6e1
Compare
|
Re-review at The push rebased the branch onto What I verified
2. "Migrating from npm
|
|
Fixed in d233bff. Thanks for the detailed review.
All your acceptance greps return nothing, except the amended MAJOR bullet. The PR description now explains why this is 2.0.0 and includes draft release notes that link to the upgrade section. I did not reformat the table in |
|
Re-review at What I verified
1.
|
|
Fixed in 07f1786.
Validation
|
SanabriaRusso
left a comment
There was a problem hiding this comment.
Approved at 07f1786. All four issues from the earlier rounds are resolved.
What I verified
- README.md "Releasing" no longer repeats the steps. It links to
docs/versioning.md#releasing, and the stale "initial1.0.0tag" pointer is gone. git grep -n "npm version" -- '*.md'now matches only the "Do not runnpm versiononmain" sentences (README.md:107,docs/versioning.md:143-144).- Release dry run in a scratch clone at
07f1786, without pushing. Followingdocs/versioning.mdstep 2:node -p "require('./package.json').version"prints2.0.0, andgit tag --points-at HEADprintsv2.0.0. Before this PR, the README steps gavev3.0.0. - Step 2 now runs
git checkout <merge-sha>first, so the tag and the push both read thepackage.jsonat the merge commit. - CI is all green at
07f1786.
Before merging and tagging
- Update the branch. GitHub reports it as
BEHIND:maingained #246 (d53dfbf).git merge-treeshows no conflict, and the two PRs touch different files. Use "Update branch", wait for CI to go green, then squash-merge. - Wait to tag
v2.0.0. As the description says, tag only after the npmENEEDAUTHpublish failure is fixed. Then tag the squash merge commit as indocs/versioning.md#releasing, and use the draft notes from the description for the GitHub release.
Release 2.0.0: an alignment major. No breaking change against 1.0.0.
Why 2.0.0 and not 1.1.0
By the rules in
docs/versioning.md, the changes sincev1.0.0would be a minor. We take a major anyway, for these reasons:#[non_exhaustive]on all output structs, newErrorvariants andi32builders; GoDateTimeGte/DateTimeLtas*time.Time. These changes are what make future server minors non-breaking for SDK users, so we do not revert them.0.0.6), so npm users see0.0.6→2.0.0.schemaVersionnever shipped in a tag. The Go SDK module path is already/v2.Changes
package.json2.0.0,SCHEMA_VERSION"2.0".docs/versioning.md:0.0.6and from 1.0.0);npm versiononmain).docs/runbook.md: you can roll back to any image from 1.0.0 or later.Compatibility checked
v1.0.0: graphql-inspector reports only safe changes (additive, plus output-only[T]→[T!]from schema: declare non-null elements on eight list positions #244).v1.0.0, JSv1.0.1, Rustv1.0.1) and of the SDK 2.0 branches (js#30, go#30, rust#29) pass 5/5 against a build of this branch.Before tagging
v2.0.0v1.0.0publish failed withENEEDAUTH(run 33921445418).tests/resolvers.test.ts).v2.0.0.Draft release notes
🤖 Generated with Claude Code
https://claude.ai/code/session_01StPY7C6STPhukrgZvVhqZX