Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .github/workflows/release-on-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
# 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'
Comment on lines +30 to +33

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

cache: maven
server-id: central
# setup-java expects ENVIRONMENT VARIABLE NAMES here, not values;
Expand All @@ -51,6 +54,10 @@ jobs:
tag_name: ${{ github.ref_name }}
generate_release_notes: true
body: |
## 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).
Comment on lines +57 to +59

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.


## Docker Image

Pre-built distroless container image available on GitHub Container Registry:
Expand Down
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,22 @@ References:
This project is not an official release; APIs and behaviour may change as upstream evolves.
You can find this code on [Maven Central](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json).

## Published Artifacts

Every tagged release publishes all reactor modules to Maven Central under `io.github.simbo1905.json` (version = release date, e.g. `2026.08.30`):

| Artifact | Purpose | Runtime |
|---|---|---|
| [`java.util.json`](https://central.sonatype.com/artifact/io.github.simbo1905.json/java.util.json) | Core JSON API (incubator backport) | JDK 21+ |
| [`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+ |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

| [`json-compatibility-suite`](https://central.sonatype.com/artifact/io.github.simbo1905.json/json-compatibility-suite) | JSON Test Suite compatibility validation | JDK 21+ |
| [`json-java21-api-tracker`](https://central.sonatype.com/artifact/io.github.simbo1905.json/json-java21-api-tracker) | Upstream API drift tracking | JDK 21+ |

The `jtd2jar` distroless container image is additionally published to GHCR: `ghcr.io/simbo1905/java.util.json.java21/jtd2jar:<version>`.

This repo is organized into the following modules:

| Module | What it is | JDK |
Expand Down
Loading