|
| 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