Skip to content

Commit 0f2affc

Browse files
committed
Release VGI 0.43.0 with published RPC dependencies
1 parent dd916f0 commit 0f2affc

7 files changed

Lines changed: 16 additions & 84 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
# ever compiles the example worker -- vgi/src/test carried 278 JUnit tests that
66
# nothing in CI ran. This workflow is that gate.
77
#
8-
# vgi-rpc-java is built from source here for the same reason integration.yml
9-
# does it (see the pin's comment there); keep VGI_RPC_JAVA_REF in step with it.
8+
# Resolve the same Maven Central RPC dependencies as published SDK consumers.
109
name: CI
1110

1211
on:
@@ -22,43 +21,8 @@ concurrency:
2221
cancel-in-progress: true
2322

2423
env:
25-
# The vgi-rpc-java revision built from source via the composite include. The
26-
# composite substitutes the `farm.query:vgirpc` coordinate declared in
27-
# vgi/build.gradle.kts, so this ref -- not the declared version -- is what
28-
# :vgi:compileJava actually compiles and runs against here. A stale pin fails
29-
# as `cannot find symbol` on whatever the newer vgirpc added, or as a runtime
30-
# marshalling error. Because CI builds this ref from source while the
31-
# published artifact resolves the declared version, the two can silently
32-
# disagree: keep this tag and `farm.query:vgirpc` in vgi/build.gradle.kts
33-
# pointing at the same release, and move them in the same commit.
34-
#
35-
# v0.25.1 is what carries `@ProtocolName`, without which this repo cannot
36-
# declare the `vgi.v2` wire name at all: the name would fall back to the
37-
# VgiService interface's simple name, and no Java identifier contains a dot.
38-
# A stale pin here fails as `cannot find symbol: class ProtocolName`.
39-
#
40-
# v0.27.0 moves to Apache Arrow 19 (Netty 4.2), so arrow-c-data in
41-
# vgi-example-worker/build.gradle.kts moves with this pin.
42-
#
43-
# (It had earlier been an untagged SHA, 920dc42, because no release yet
44-
# carried the `writeListElement` LargeBinary case; v0.25.0 contains it.)
45-
#
46-
# v0.28.0 adds RpcServer.addProtocol, the error model and the Identity
47-
# translation that Worker.hostedProtocols / resolveToken build on; a stale
48-
# pin fails as `cannot find symbol: method addProtocol`, and the
49-
# hosted-protocols job below cannot pass without it.
50-
#
51-
# v0.29.0 adds sealed grants and resolveToken-backed bearer authentication
52-
# (GrantKeys, IdentityBearer) that Worker.grantKeys builds on.
53-
#
54-
# v0.30.0 adds the public reflection client (Introspect.listProtocols /
55-
# describeProtocol).
56-
#
57-
# v0.31.0 makes identity.XChaCha20Poly1305 public; AttachTickets uses it
58-
# instead of a copy.
59-
# Keep in step with the identical pin in integration.yml.
60-
# Source revision for 0.33.1; replace with v0.33.1 after the package release.
61-
VGI_RPC_JAVA_REF: 3a8a300a10226be1b56e0458e81ffa3212b73f1d
24+
# Disable local sibling substitution: validate the released Maven dependency.
25+
VGI_RPC_JAVA_DIR: /nonexistent
6226

6327
jobs:
6428
test:
@@ -68,13 +32,6 @@ jobs:
6832
- name: Checkout vgi-java
6933
uses: actions/checkout@v4
7034

71-
- name: Checkout pinned vgi-rpc-java
72-
uses: actions/checkout@v4
73-
with:
74-
repository: Query-farm/vgi-rpc-java
75-
ref: ${{ env.VGI_RPC_JAVA_REF }}
76-
path: vgi-rpc-java
77-
7835
- name: Set up JDK 25
7936
uses: actions/setup-java@v4
8037
with:
@@ -92,15 +49,11 @@ jobs:
9249

9350
- name: Unit tests
9451
run: ./gradlew --no-daemon :vgi:test
95-
env:
96-
VGI_RPC_JAVA_DIR: ${{ github.workspace }}/vgi-rpc-java
9752

9853
# The published artifact carries javadoc, so a doc comment that does not
9954
# build is a broken release, not a warning.
10055
- name: Javadoc
10156
run: ./gradlew --no-daemon :vgi:javadoc
102-
env:
103-
VGI_RPC_JAVA_DIR: ${{ github.workspace }}/vgi-rpc-java
10457

10558
- name: Upload test report on failure
10659
if: failure()
@@ -124,13 +77,6 @@ jobs:
12477
- name: Checkout vgi-java
12578
uses: actions/checkout@v4
12679

127-
- name: Checkout pinned vgi-rpc-java
128-
uses: actions/checkout@v4
129-
with:
130-
repository: Query-farm/vgi-rpc-java
131-
ref: ${{ env.VGI_RPC_JAVA_REF }}
132-
path: vgi-rpc-java
133-
13480
- name: Set up JDK 25
13581
uses: actions/setup-java@v4
13682
with:
@@ -161,8 +107,6 @@ jobs:
161107
162108
- name: Build example worker
163109
run: ./gradlew --no-daemon :vgi-example-worker:installDist
164-
env:
165-
VGI_RPC_JAVA_DIR: ${{ github.workspace }}/vgi-rpc-java
166110

167111
- name: Run hosted-protocols group
168112
run: ci/run-hosted-protocols.sh

‎.github/workflows/integration.yml‎

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,8 @@ concurrency:
2121
env:
2222
# Match the test suite to the native runner built from this exact revision.
2323
VGI_REF: 3a2249f815ff6e2a8b5289a3e6284326084e3630
24-
# The vgi-rpc-java revision built from source (composite include) for the
25-
# worker's HTTP features. The composite substitutes the `farm.query:vgirpc`
26-
# coordinate declared in vgi/build.gradle.kts, so this ref, not the declared
27-
# version, is what the worker actually compiles against: see the pin's full
28-
# comment in ci.yml, and keep the two in step.
29-
# Source revision for 0.33.1; replace with v0.33.1 after the package release.
30-
VGI_RPC_JAVA_REF: 3a8a300a10226be1b56e0458e81ffa3212b73f1d
24+
# Disable local sibling substitution: validate the released Maven dependency.
25+
VGI_RPC_JAVA_DIR: /nonexistent
3126

3227
jobs:
3328
build-worker:
@@ -37,13 +32,6 @@ jobs:
3732
- name: Checkout vgi-java
3833
uses: actions/checkout@v4
3934

40-
- name: Checkout pinned vgi-rpc-java
41-
uses: actions/checkout@v4
42-
with:
43-
repository: Query-farm/vgi-rpc-java
44-
ref: ${{ env.VGI_RPC_JAVA_REF }}
45-
path: vgi-rpc-java
46-
4735
- name: Set up JDK 25
4836
uses: actions/setup-java@v4
4937
with:
@@ -61,8 +49,6 @@ jobs:
6149

6250
- name: Build example worker
6351
run: ./gradlew --no-daemon :vgi-example-worker:installDist
64-
env:
65-
VGI_RPC_JAVA_DIR: ${{ github.workspace }}/vgi-rpc-java
6652

6753
# Archive before upload because upload-artifact does not preserve the
6854
# executable bit on the generated launcher script.

‎CLAUDE.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ change to `~/Development/vgi-rpc-java/` doesn't show up, run
188188
## Releasing (Maven Central)
189189

190190
Published: **`farm.query:vgi`** (this repo) and **`farm.query:vgirpc`** /
191-
`vgirpc-oauth` (the sibling). Latest as of 2026-10-20: **vgi 0.42.0 → vgirpc
192-
0.33.0**. To cut a release: bump `version` in `build.gradle.kts`, push, then
191+
`vgirpc-oauth` (the sibling). Latest as of 2026-10-21: **vgi 0.43.0 → vgirpc
192+
0.33.1**. To cut a release: bump `version` in `build.gradle.kts`, push, then
193193
create a GitHub Release whose tag is the version (`v0.2.0` for `0.2.0`). The
194194
`release.yml` workflow (trigger: `release: published`) verifies tag == version,
195195
runs tests, and publishes. Both repos now set
@@ -201,8 +201,8 @@ Maven Central with no manual Portal click** once it passes validation (changed
201201
`farm.query:vgirpc` from **Maven Central** (the composite is absent on CI —
202202
`VGI_RPC_JAVA_DIR` unset), *not* from source. So **`:vgi` cannot release until
203203
the `vgirpc` version it pins in `vgi/build.gradle.kts` is already published to
204-
Maven Central.** Integration CI hides this (it builds vgirpc from source via the
205-
composite), so green integration ≠ releasable. Before tagging a `:vgi` release,
204+
Maven Central.** CI now resolves the same published Maven dependency; local sibling builds
205+
can still substitute source. Before tagging a `:vgi` release,
206206
prove it builds against the *published* vgirpc with the composite disabled:
207207

208208
```bash

‎README.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ VGI lets [Haybarn](https://github.com/Query-farm-haybarn/haybarn) — Query Farm
1919

2020
Wire-compatible with the [Python reference implementation](https://github.com/Query-farm/vgi-python) and the [Go port](https://github.com/Query-farm/vgi-go): all three serve the same integration suite against the same C++ extension.
2121

22+
Version 0.43.0 uses VGI wire 2.2.0 under `vgi.v2` and requires a native VGI client speaking wire 2.2.x. Upgrade clients and workers together; wire 2.1 clients are incompatible. See [catalog metadata and publication](docs/catalog_publication.md).
23+
2224
## What you can serve
2325

2426
- **Catalog tables** — named tables with inline schemas, comments, tags, constraints, foreign keys, and per-column statistics that feed the engine's optimizer.
@@ -43,7 +45,7 @@ Artifacts are published to Maven Central under the `farm.query` group.
4345

4446
```kotlin
4547
dependencies {
46-
implementation("farm.query:vgi:0.42.0")
48+
implementation("farm.query:vgi:0.43.0")
4749
}
4850
```
4951

@@ -53,7 +55,7 @@ dependencies {
5355
<dependency>
5456
<groupId>farm.query</groupId>
5557
<artifactId>vgi</artifactId>
56-
<version>0.42.0</version>
58+
<version>0.43.0</version>
5759
</dependency>
5860
```
5961

‎build.gradle.kts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88

99
allprojects {
1010
group = "farm.query"
11-
version = "0.42.0"
11+
version = "0.43.0"
1212

1313
repositories {
1414
mavenCentral()

‎docs/catalog_publication.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@ The manager exposes startup warming, trusted manifest import, and conditional in
1717

1818
Java: call `Worker.catalogSnapshot(policy)`. Use `policy.manager.warm`, `importPublication`, and `invalidate`. This implementation requires `farm.query:vgirpc:0.33.1`, including its collection row codec and idempotent IPC stream termination.
1919

20-
CI pins the matching RPC source commit while the separate 0.33.1 Maven release is pending. Publish that RPC release before publishing this SDK.
20+
Version 0.43.0 requires native clients and workers on wire 2.2.x; wire 2.1 is incompatible. The protocol route remains `vgi.v2`. CI and release builds resolve RPC 0.33.1 from Maven Central.

‎examples/docs/build.gradle.kts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// the SDK at HEAD and a breaking change shows up here rather than in a reader's
1111
// editor. A reader does the same thing with one line instead:
1212
//
13-
// implementation("farm.query:vgi:0.41.1")
13+
// implementation("farm.query:vgi:0.43.0")
1414
//
1515
// which is what the documentation shows. The toolchain, `-parameters` and the
1616
// JVM opens all come from the root build, so nothing else is repeated here.

0 commit comments

Comments
 (0)