Release all reactor libraries from the tag-driven release - #166
Conversation
The release workflow deployed on JDK 21, so the jtd-codegen profile ([24,)) never activated and json-java21-jtd-codegen plus jtd2jar were silently absent from Central publishes. The deploy step now runs on JDK 25 (matching the daily CI matrix), the GitHub Release body lists every Maven coordinate, and README gains a Published Artifacts section mapping each coordinate to its purpose and runtime.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8189253cf6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # JDK 25 activates the jtd-codegen profile ([24,)) so the | ||
| # json-java21-jtd-codegen and jtd2jar modules join the reactor | ||
| # and are published too (issue #165). | ||
| java-version: '25' |
There was a problem hiding this comment.
Verify newly activated artifacts in the retry guard
When a version already has only the parent/core artifacts published—for example, after rerunning a tag first released by the former JDK 21 workflow—any failure from the newly activated codegen or jtd2jar modules reaches the existing fallback, which checks only parent and java.util.json and then reports success. The job can therefore complete while the two modules this change intends to publish remain absent; extend the idempotency check to cover every newly activated artifact before accepting the failed deploy.
Useful? React with 👍 / 👎.
| ## Maven Central Artifacts | ||
|
|
||
| All reactor modules are published under `io.github.simbo1905.json` at version `${{ steps.version.outputs.version }}`: [`java.util.json`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json), [`java.util.json.jsonpath`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json.jsonpath), [`java.util.json.jtd`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json.jtd), [`java.util.json.jtd.codegen`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json.jtd.codegen), [`jtd2jar`](https://central.sonatype.com/artifact/io.github.simbo1905.json/jtd2jar), [`json-compatibility-suite`](https://central.sonatype.com/artifact/io.github.simbo1905.json/json-compatibility-suite), [`json-java21-api-tracker`](https://central.sonatype.com/artifact/io.github.simbo1905.json/json-java21-api-tracker). |
There was a problem hiding this comment.
Publish artifact claims only after Central deployment
If the later Build and Deploy to Central step fails for a fresh version, this earlier step has already created a public GitHub Release whose body says every reactor module is published. GitHub does not roll that release back when the job stops, so users receive links and release notes for artifacts that may not exist; create or update these notes only after the deployment succeeds.
Useful? React with 👍 / 👎.
| | [`java.util.json.jsonpath`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json.jsonpath) | JsonPath query engine over `JsonValue` | JDK 21+ | | ||
| | [`java.util.json.jtd`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json.jtd) | JSON Type Definition validator (RFC 8927) | JDK 21+ | | ||
| | [`java.util.json.jtd.codegen`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json.jtd.codegen) | Codegen validators (~9x faster than the interpreter) | JDK 25+ | | ||
| | [`jtd2jar`](https://central.sonatype.com/artifact/io.github.simbo1905.json/jtd2jar) | Compiles a JTD schema into a standalone validator JAR | JDK 21+ | |
There was a problem hiding this comment.
Advertise the jtd2jar CLI as requiring JDK 24
Consumers running the published jtd2jar artifact itself on JDK 21 will get an unsupported class-version error: jtd2jar/pom.xml compiles the CLI with release 24, and the existing module table below already identifies it as JDK 24+. Only validator JARs generated by the tool target Java 21, so this artifact runtime entry should say JDK 24+ rather than JDK 21+.
Useful? React with 👍 / 👎.
Closes #165
Makes the tag-driven release deliver every reactor module:
jtd-codegenprofile sojson-java21-jtd-codegenandjtd2jarjoin the reactor and are published to Maven Central (they were 404 at 2026.08.30)jtd2jarimage