release: prepare v0.8.0 - #57
Conversation
Bumps pom.xml/Version.java to 0.8.0 and adds release notes covering the four additive feature PRs (#53-#56): search, Nsql/NsqlGenerateSql, active-query management, and async queries. japicmp.oldVersion stays at 0.6.0 rather than bumping to 0.7.0: v0.7.0 was tagged and GitHub-released but its Maven Central publish never completed, so it isn't a resolvable dependency. See the pom.xml comment for detail.
There was a problem hiding this comment.
Pull request overview
Prepares the Java SDK v0.8.0 release and documents four pending additive API features.
Changes:
- Bumps the SDK version to 0.8.0.
- Documents release features and compatibility.
- Explains retaining the 0.6.0
japicmpbaseline.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
pom.xml |
Updates artifact version and compatibility baseline rationale. |
src/main/java/ai/spice/Version.java |
Updates the runtime SDK version constant. |
docs/release_notes/v0.8.0.md |
Adds v0.8.0 release notes and examples. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (5)
pom.xml:7
- The release version is now 0.8.0, but both installation snippets still point users to 0.7.0 (
README.md:15andREADME.md:25). Update those snippets as part of this release bump so the primary installation instructions select the release being prepared.
<version>0.8.0</version>
docs/release_notes/v0.8.0.md:61
- This sample retains the
ArrowReaderwithout closing it, and then demonstrates polling/cancellation only afterresults()has already waited for completion. Use try-with-resources and place polling or cancellation before result retrieval so the example does not teach a native-resource leak or a no-op cancellation sequence.
AsyncQuery job = client.queryAsync("SELECT * FROM large_table");
ArrowReader results = job.results(); // waits for completion, then streams results
// Or poll manually:
QueryStatus status = job.status();
docs/release_notes/v0.8.0.md:50
- The first sentence promises credential scoping unconditionally, while the next says all runtime versions through v2.1.5 provide no credential scoping. State that scoping is runtime-version dependent; otherwise users on those versions may incorrectly assume other credentials cannot view or cancel their queries.
Both calls are scoped to the authenticated API key or client certificate, not to the `SpiceClient` instance, and reach only the one runtime process behind the client's HTTP endpoint. Runtime releases up to and including v2.1.5 don't scope either endpoint by credential at all.
docs/release_notes/v0.8.0.md:73
- Adding four public methods does change the public API, even though it is source- and binary-compatible. Calling the API “unchanged” contradicts the rest of this sentence; describe the release as having no breaking API changes instead.
- Public API unchanged: all four features are new methods; nothing existing was renamed, removed, or retyped.
docs/release_notes/v0.8.0.md:81
- This pre-release status is guaranteed to be stale in the published notes: #53 and #56 must merge before v0.8.0 can contain the features documented above, so they will no longer be open when this release is cut. After updating this branch with those dependencies, replace the transient status with permanent feature provenance.
`search()` ([#54](https://github.com/spiceai/spice-java/pull/54)) and `nsql()`/`nsqlGenerateSql()` ([#55](https://github.com/spiceai/spice-java/pull/55)) have merged to trunk. This release still depends on two open PRs:
- [#53](https://github.com/spiceai/spice-java/pull/53) — `listActiveQueries()`/`cancelActiveQuery()`
- [#56](https://github.com/spiceai/spice-java/pull/56) — `queryAsync()`/`queryAsyncWithParams()`
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (2)
pom.xml:7
- The release version is updated here, but both installation snippets still direct users to
0.7.0(README.md:15andREADME.md:25). Since this PR also documents that0.7.0was never published, those instructions point to an unresolvable artifact; update both snippets to0.8.0as part of this release.
<version>0.8.0</version>
docs/release_notes/v0.8.0.md:44
- Calling the public API “unchanged” contradicts the new public methods and request/response types described by this release. Describe this as backward-compatible API additions so consumers are not told that the API surface is identical.
- Public API unchanged: both features are new methods; nothing existing was renamed, removed, or retyped.
Removed release status section and notes on features not included in v0.8.0.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (3)
docs/release_notes/v0.8.0.md:7
- The referenced “Release status” section does not exist in this document, leaving readers with a dangling pointer. Remove this sentence or add the promised section.
Active-query management and asynchronous queries were also implemented for this cycle ([#53](https://github.com/spiceai/spice-java/pull/53), [#56](https://github.com/spiceai/spice-java/pull/56)) but are **not included in v0.8.0** — those PRs will not be merged for this release. See "Release status" below.
pom.xml:7
- The Maven and Gradle installation snippets in
README.md:15andREADME.md:25still advertise v0.7.0. Since that artifact was never published and this PR prepares v0.8.0, publishing this version would leave users copying stale/unavailable coordinates; update both README snippets to v0.8.0 as part of this release bump.
<version>0.8.0</version>
docs/release_notes/v0.8.0.md:5
- Because v0.7.0 was never published to Maven Central and the compatibility baseline remains v0.6.0, v0.8.0 is the next installable release for Maven users. Those users will also receive v0.7.0's dependency and behavior changes (including the dependency removals and pins documented in
v0.7.0.md), so describing v0.8.0 as only these two features with “no dependency changes” is misleading. Either publish v0.7.0 first or make these notes cover/clearly link the cumulative v0.6.0-to-v0.8.0 changes.
This issue also appears on line 7 of the same file.
v0.8.0 is a **feature-parity release**, closing two of the four gaps between this SDK and its siblings (gospice, spice-rs, spicepy, spice.js): search and natural-language-to-SQL. Both are purely additive — no existing public API changes shape or behavior, and no dependency changes.
Removed testing section from release notes for v0.8.0.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (2)
pom.xml:7
- The artifact is being released as 0.8.0, but the Maven and Gradle installation snippets remain pinned to 0.7.0 (
README.md:15andREADME.md:25). Since the PR notes that 0.7.0 was never published to Maven Central, users following the README will still receive an unresolvable dependency after this release. Update both snippets to 0.8.0 as part of the release bump.
<version>0.8.0</version>
docs/release_notes/v0.8.0.md:7
- This points readers to a “Release status” section that does not exist in this document. Remove the dangling pointer (or add the referenced section) so the published notes do not contain a broken internal reference.
Active-query management and asynchronous queries were also implemented for this cycle ([#53](https://github.com/spiceai/spice-java/pull/53), [#56](https://github.com/spiceai/spice-java/pull/56)) but are **not included in v0.8.0** — those PRs will not be merged for this release. See "Release status" below.
Removed highlights section from release notes for v0.8.0.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (2)
pom.xml:7
- The release bump leaves the primary installation snippets at
README.md:15andREADME.md:25on0.7.0. Since this release notes that 0.7.0 was never published, users following those instructions will request an unavailable artifact after 0.8.0 is released. Update both snippets to 0.8.0 as part of this release.
<version>0.8.0</version>
docs/release_notes/v0.8.0.md:34
- Calling the public API “unchanged” contradicts the same sentence and the release itself:
search,nsql, their request/response types, and their public members are additions to the public API. Describe this as backward-compatible/additive instead so consumers are not told there was no API change.
- Public API unchanged: both features are new methods; nothing existing was renamed, removed, or retyped.
Updated the old version for japicmp to 0.7.0.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
Suppressed comments (2)
pom.xml:7
- The release version is now
0.8.0, but the Maven and Gradle installation snippets still advertise0.7.0atREADME.md:15andREADME.md:25. Update those snippets as part of this release so users are not directed to the old, unpublished artifact.
<version>0.8.0</version>
docs/release_notes/v0.8.0.md:34
- “Public API unchanged” contradicts the addition of new public methods and types. The compatibility claim is that there are no breaking changes, not that the API is unchanged; wording it that way avoids misleading API consumers.
- Public API unchanged: both features are new methods; nothing existing was renamed, removed, or retyped.
Summary
pom.xml/Version.javato0.8.0and addsdocs/release_notes/v0.8.0.mdcoveringsearch()andnsql()/nsqlGenerateSql()— both merged to trunk.#53(listActiveQueries/cancelActiveQuery) and#56(queryAsync/queryAsyncWithParams) are implemented and reviewed but will not be merged for this release — v0.8.0 ships search + nsql only.Test plan
mvn install -DskipTeststhenmvn checkstyle:check japicmp:cmpboth pass locally — japicmp cleanly compares0.8.0(search + nsql) against the real0.6.0baseline with no compatibility violations.