Skip to content

Commit 7983275

Browse files
rustyconoverclaude
andcommitted
docs: release runbook for the describe.json retirement
Ordering, per-repo publish trigger, and the dependency pins that cannot be resolved until the transports publish. Versions are deliberately left blank: three transports drop DescribeProvider from their public API, so major-vs-minor is a compatibility-policy call. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 667ed51 commit 7983275

1 file changed

Lines changed: 69 additions & 0 deletions

File tree

‎RELEASE-RUNBOOK.md‎

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Release runbook — describe.json retirement + attach-option `required`
2+
3+
All code is committed on `main` in each repo and green. Nothing is pushed.
4+
This is the ordering and the per-repo trigger; fill in `X.Y.Z` per package.
5+
6+
**Version decision needed first.** Three transports drop `DescribeProvider`
7+
from their public API (breaking): `@query-farm/vgi-rpc`, `vgi-rpc` (Rust),
8+
`farm.query:vgirpc`. Choose major or minor per your compatibility policy — it
9+
cascades into the implementation pins below.
10+
11+
## 1. Transports (must publish first)
12+
13+
| Repo | Trigger | Version lives in |
14+
|---|---|---|
15+
| vgi-rpc-typescript | `gh release create vX.Y.Z` (release: published) | `package.json` (+ `bun install` to sync `bun.lock`) |
16+
| vgi-rpc-rust | tag push — `gh release create vX.Y.Z` | `[workspace.package] version`; `cargo update -w` |
17+
| vgi-rpc-java | `gh release create vX.Y.Z` (release: published) | `build.gradle.kts` |
18+
| vgi-rpc-go | tag push — `gh release create vX.Y.Z` | none (module proxy reads the tag) |
19+
20+
Then wait for index propagation: npm, `https://index.crates.io/3/v/vgi-rpc`,
21+
Maven Central, Go proxy.
22+
23+
## 2. Implementation dependency pins
24+
25+
These currently cannot build against published transports:
26+
27+
- **vgi-typescript** — peer range is `>=0.18.1 <0.19.0`; widen to the new
28+
transport version. `LandingInfo` resolves only once the transport publishes.
29+
- **vgi-rust** — workspace dep already bumped to `vgi-rpc 0.20.0`; adjust if you
30+
pick a different number. The `[patch.crates-io]` block stays uncommitted (it
31+
is documented in `Cargo.toml` for local co-development only).
32+
- **vgi-java** — bump `api("farm.query:vgirpc:X")` and the `VGI_RPC_JAVA_REF`
33+
pin in `.github/workflows/integration.yml`. (`landing.yml` was deleted with
34+
the contract it checked.)
35+
- **vgi-go** — self-contained; no pin, but it needs the new vgi-rpc-go tag.
36+
37+
## 3. Implementations
38+
39+
| Repo | Trigger | Version lives in |
40+
|---|---|---|
41+
| vgi-python | `gh release create vX.Y.Z --target main` (PyPI on release) | root `pyproject.toml`; `uv lock` |
42+
| vgi-go | `gh release create vX.Y.Z` (tag → module proxy) | none |
43+
| vgi-rust | `gh release create vX.Y.Z` (tag → crates.io) | `[workspace.package] version` |
44+
| vgi-typescript | **`git tag vX.Y.Z && git push origin vX.Y.Z`** — pushing the bump to main does NOT publish and fails silently | `package.json`; `bun install` |
45+
| vgi-java | `gh release create vX.Y.Z` (Maven Central on release) | `build.gradle.kts` |
46+
47+
## 4. Frontend
48+
49+
- **vgi-web-frontend** — auto-deploys on push to `main`. Push last, so no worker
50+
is serving a page newer than its vendored bundle.
51+
52+
## Verified before release
53+
54+
- vgi-python 2175 pass / 99 skip; ruff + mypy clean
55+
- vgi-go `go test ./...` clean; vet + gofmt clean
56+
- vgi-rust tests pass; clippy `-D warnings` clean
57+
- vgi-java `:vgi:test` passes
58+
- vgi-rpc-typescript 715 pass / 26 fail — exactly the pre-change baseline
59+
(confirmed by running the suite at the parent commit in a worktree)
60+
- Landing page verified in a browser against all four language workers:
61+
Python 221 functions, Go 221, Rust 654, Java 219 — each 2 schemas, 59 tables,
62+
3 views, with lazy columns loading.
63+
64+
## Not done, tracked
65+
66+
- `vgi-rpc-typescript` has 26 pre-existing test failures (integration/streaming;
67+
unrelated to this work, present before it).
68+
- `~/vgi-java/CLAUDE.md` still references the landing-conformance workflow in
69+
its historical notes; the workflow itself is deleted.

0 commit comments

Comments
 (0)