From 37dc06f049a179f88d9a0fac7ded53751f17cea0 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Jul 2026 14:30:19 +0000 Subject: [PATCH 1/5] Post-release: bump to 5.0.5-SNAPSHOT 5.0.4 is released on Maven Central. Open the next development cycle: bump all three reactor poms (llama-parent + llama + llama-langchain4j ) to 5.0.5-SNAPSHOT and point the README snapshot dependency examples at 5.0.5-SNAPSHOT. The release dependency examples stay at the just-released 5.0.4. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01QEgh6vtcPWAgQ6scK8pJk7 --- README.md | 4 ++-- llama-langchain4j/pom.xml | 2 +- llama/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1f25f35a..55300aae 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ To use the latest snapshot, add the repository and dependency to your `pom.xml`: net.ladenthin llama - 5.0.4-SNAPSHOT + 5.0.5-SNAPSHOT ``` @@ -719,7 +719,7 @@ forcing that floor on every core consumer. It ships and versions in lockstep wit net.ladenthin llama-langchain4j - 5.0.4-SNAPSHOT + 5.0.5-SNAPSHOT ``` diff --git a/llama-langchain4j/pom.xml b/llama-langchain4j/pom.xml index 734ae30d..3e3d0e0c 100644 --- a/llama-langchain4j/pom.xml +++ b/llama-langchain4j/pom.xml @@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT net.ladenthin llama-parent - 5.0.4 + 5.0.5-SNAPSHOT ../pom.xml diff --git a/llama/pom.xml b/llama/pom.xml index afa7be38..67e6e563 100644 --- a/llama/pom.xml +++ b/llama/pom.xml @@ -13,7 +13,7 @@ SPDX-License-Identifier: MIT net.ladenthin llama-parent - 5.0.4 + 5.0.5-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index 9a3d646c..1b4c6f45 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ SPDX-License-Identifier: MIT --> net.ladenthin llama-parent - 5.0.4 + 5.0.5-SNAPSHOT pom ${project.groupId}:${project.artifactId} From 37af17609fc766a7dee227b474bb25bcddf176c3 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Jul 2026 14:33:30 +0000 Subject: [PATCH 2/5] docs: langchain4j dependency example is a release snippet (5.0.4, not -SNAPSHOT) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The llama-langchain4j section shows a single "how to depend on it" snippet, the analogue of the core's Quick Start release example (5.0.4) — not a snapshot example (the core has a separate Snapshot-builds snippet for that). It was mistakenly carrying -SNAPSHOT, and the post-release snapshot bump then propagated it to 5.0.5-SNAPSHOT. Pin it to the released 5.0.4, matching the core release example; the only -SNAPSHOT in the README is now the core snapshot snippet. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01QEgh6vtcPWAgQ6scK8pJk7 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 55300aae..ec6f5e75 100644 --- a/README.md +++ b/README.md @@ -719,7 +719,7 @@ forcing that floor on every core consumer. It ships and versions in lockstep wit net.ladenthin llama-langchain4j - 5.0.5-SNAPSHOT + 5.0.4 ``` From 80b53b4cc223a08df8fe1e2293fbe2d343dbb43f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Jul 2026 14:49:03 +0000 Subject: [PATCH 3/5] docs: pin llama-langchain4j module README dependency snippet to 5.0.4 The module README's "## Dependency" section is its primary usage snippet (no separate snapshot snippet), so it should show the released version like the root README's core Quick Start. It was carrying -SNAPSHOT and shipped that way in 5.0.4. Unlike the root README it is not touched by the release/snapshot version bumps, so it had drifted silently. Pin to 5.0.4. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01QEgh6vtcPWAgQ6scK8pJk7 --- llama-langchain4j/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llama-langchain4j/README.md b/llama-langchain4j/README.md index f4449369..6b672aa8 100644 --- a/llama-langchain4j/README.md +++ b/llama-langchain4j/README.md @@ -62,7 +62,7 @@ ScoringModel reranker = new JllamaScoringModel(rerankLlama); net.ladenthin llama-langchain4j - 5.0.4-SNAPSHOT + 5.0.4 ``` From faa898ef862c6c82a5ff9a264787a224f9d101d6 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Jul 2026 14:52:34 +0000 Subject: [PATCH 4/5] docs: update RELEASE.md for the Maven reactor + branch/PR flow The maintainer release procedure predated the llama/ reactor split and was stale in four ways, each of which just bit this 5.0.4 release: - "Strip -SNAPSHOT from pom.xml" (singular) -> the version now lives in all three reactor poms (root + both ); use `mvn versions:set` so they move in lockstep or the reactor build fails. - No CHANGELOG step -> add finalizing [Unreleased] -> [VERSION] + compare links. - No mention of llama-langchain4j/README.md's release dependency snippet, which is not covered by the root-README edits and drifted silently. - "commit directly to main (no PR)" -> use a branch + PR, and spell out the actual deploy trigger (workflow_dispatch + publish_to_central=true on a v* tag). Add a {PREV} placeholder for the CHANGELOG compare link. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01QEgh6vtcPWAgQ6scK8pJk7 --- docs/RELEASE.md | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index b8289acb..cfe9164d 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -2,30 +2,49 @@ This document is the maintainer-facing release procedure. End users should consult [CHANGELOG.md](../CHANGELOG.md). -> Paste this prompt into a new Claude Code session, fill in the three placeholders, and send it to perform a release. +> **This repo is a Maven reactor.** The root `pom.xml` is the parent (`net.ladenthin:llama-parent`); +> the two modules (`llama/`, `llama-langchain4j/`) inherit its version **but hardcode it in their +> ``** — there is no `${revision}` single-sourcing, so a version change must touch +> **all three poms in lockstep** or the reactor build fails with +> `Could not find artifact net.ladenthin:llama-parent:pom:{VERSION}`. `mvn versions:set` does all +> three in one command. See the "Version bump" note in [CLAUDE.md](../CLAUDE.md) for the rationale. + +> Paste this prompt into a new Claude Code session, fill in the four placeholders, and send it to perform a release. ``` Release `{PROJECT}` to Maven Central. **Step 1 — Prepare the release (do immediately):** -1. Read the current version from `pom.xml` on `main` — it will be `{VERSION}-SNAPSHOT` -2. Strip `-SNAPSHOT` from `pom.xml` (→ `{VERSION}`) -3. In `README.md`, update **both**: - - The release dependency example to `{VERSION}` - - The snapshot dependency example to `{VERSION}-SNAPSHOT` (it should already match, but verify) -4. Commit both files directly to `main` (no pull request) +1. Read the current version from the root `pom.xml` on `main` — it will be `{VERSION}-SNAPSHOT`. +2. Set the release version across **all three reactor poms** in lockstep (root `` + + `llama/pom.xml` and `llama-langchain4j/pom.xml` ``): + `mvn -q versions:set -DnewVersion={VERSION} -DgenerateBackupPoms=false` + Changing only the root pom leaves the children pointing at a non-existent parent and fails the build. +3. In `README.md`, set **every release** dependency example (core Quick Start, the classifier + table, and the LangChain4j section) to `{VERSION}`, and verify the single **snapshot** example + (under "Snapshot builds") stays `{VERSION}-SNAPSHOT`. +4. In `llama-langchain4j/README.md`, set the `## Dependency` snippet to `{VERSION}` — it is a + release snippet and is NOT covered by the root-README edits (it drifts silently otherwise). +5. Finalize `CHANGELOG.md`: rename the `[Unreleased]` heading to `[{VERSION}] - {DATE}`, add a fresh + empty `[Unreleased]` above it, and update the compare-link footer — add + `[{VERSION}]: .../compare/v{PREV}...v{VERSION}` and repoint + `[Unreleased]: .../compare/v{VERSION}...HEAD`. +6. Commit the changes on a branch and open a PR; merge/fast-forward it into `main`. **Step 2 — Wait for manual confirmation:** -I will create the `v{VERSION}` tag and GitHub release manually — wait for me to confirm -the release is published on Maven Central before proceeding. +I will (a) create the `v{VERSION}` tag + GitHub release on the merged commit and (b) run the +**Publish** workflow via `workflow_dispatch` with `publish_to_central=true` (the `publish-release` +job is gated on that input **and** the `v*` tag; one reactor `mvn -P release deploy` signs and +publishes the parent pom, `llama`, and `llama-langchain4j` together). Wait for me to confirm the +release is live on Maven Central before proceeding. **Step 3 — Post-release snapshot bump (after my confirmation):** -Bump **both** files on `main`: -- `pom.xml` → `{NEXT_VERSION}-SNAPSHOT` +On a fresh branch off the updated `main`: +- Bump all three poms to `{NEXT_VERSION}-SNAPSHOT`: + `mvn -q versions:set -DnewVersion={NEXT_VERSION}-SNAPSHOT -DgenerateBackupPoms=false` - `README.md` snapshot dependency example → `{NEXT_VERSION}-SNAPSHOT` - (the release dependency examples stay at the just-released `{VERSION}`) - -Commit both changes together directly to `main`. + (the release examples — including `llama-langchain4j/README.md` — stay at `{VERSION}`). +Commit and open a PR. **Placeholders:** @@ -33,5 +52,6 @@ Commit both changes together directly to `main`. |------------------|----------------------------------------------| | `{PROJECT}` | *(project name)* | | `{VERSION}` | *(release version, e.g. `1.3.0`)* | +| `{PREV}` | *(previous release, e.g. `1.2.0`)* | | `{NEXT_VERSION}` | *(next snapshot base, e.g. `1.3.1`)* | ``` From 49d5c7c738351bb037b2b2bf97a03850e19a662f Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 2 Jul 2026 15:12:31 +0000 Subject: [PATCH 5/5] docs: point RELEASE.md at centralized workspace procedure + reactor supplement The maintainer release procedure is now centralized in workspace/workflows/release-process.md. Replace this repo's standalone copy with a pointer to it plus the two java-llama.cpp-specific supplements: the reactor all-three-poms version bump (via mvn versions:set) and the extra llama-langchain4j/README.md release dependency snippet. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01QEgh6vtcPWAgQ6scK8pJk7 --- docs/RELEASE.md | 76 ++++++++++++++++--------------------------------- 1 file changed, 25 insertions(+), 51 deletions(-) diff --git a/docs/RELEASE.md b/docs/RELEASE.md index cfe9164d..3eb5b4fe 100644 --- a/docs/RELEASE.md +++ b/docs/RELEASE.md @@ -1,57 +1,31 @@ # Release Process -This document is the maintainer-facing release procedure. End users should consult [CHANGELOG.md](../CHANGELOG.md). +The maintainer-facing release procedure is **centralized in the workspace repo**: +[`../workspace/workflows/release-process.md`](../workspace/workflows/release-process.md). -> **This repo is a Maven reactor.** The root `pom.xml` is the parent (`net.ladenthin:llama-parent`); -> the two modules (`llama/`, `llama-langchain4j/`) inherit its version **but hardcode it in their -> ``** — there is no `${revision}` single-sourcing, so a version change must touch -> **all three poms in lockstep** or the reactor build fails with -> `Could not find artifact net.ladenthin:llama-parent:pom:{VERSION}`. `mvn versions:set` does all -> three in one command. See the "Version bump" note in [CLAUDE.md](../CLAUDE.md) for the rationale. +java-llama.cpp is a **Maven reactor**, so two repo-specific points extend the canonical procedure. -> Paste this prompt into a new Claude Code session, fill in the four placeholders, and send it to perform a release. +## Reactor version bump (all three poms) +The root `pom.xml` is the parent (`net.ladenthin:llama-parent`); the `llama/` and +`llama-langchain4j/` modules inherit its version **but hardcode it in their ``** +(there is no `${revision}` single-sourcing). A version change — the release strip in Step 1 and the +post-release bump in Step 3 — must touch **all three poms in lockstep**, or the reactor build fails +with `Could not find artifact net.ladenthin:llama-parent:pom:{VERSION}`. Use: + +```bash +mvn -q versions:set -DnewVersion={VERSION} -DgenerateBackupPoms=false ``` -Release `{PROJECT}` to Maven Central. - -**Step 1 — Prepare the release (do immediately):** -1. Read the current version from the root `pom.xml` on `main` — it will be `{VERSION}-SNAPSHOT`. -2. Set the release version across **all three reactor poms** in lockstep (root `` + - `llama/pom.xml` and `llama-langchain4j/pom.xml` ``): - `mvn -q versions:set -DnewVersion={VERSION} -DgenerateBackupPoms=false` - Changing only the root pom leaves the children pointing at a non-existent parent and fails the build. -3. In `README.md`, set **every release** dependency example (core Quick Start, the classifier - table, and the LangChain4j section) to `{VERSION}`, and verify the single **snapshot** example - (under "Snapshot builds") stays `{VERSION}-SNAPSHOT`. -4. In `llama-langchain4j/README.md`, set the `## Dependency` snippet to `{VERSION}` — it is a - release snippet and is NOT covered by the root-README edits (it drifts silently otherwise). -5. Finalize `CHANGELOG.md`: rename the `[Unreleased]` heading to `[{VERSION}] - {DATE}`, add a fresh - empty `[Unreleased]` above it, and update the compare-link footer — add - `[{VERSION}]: .../compare/v{PREV}...v{VERSION}` and repoint - `[Unreleased]: .../compare/v{VERSION}...HEAD`. -6. Commit the changes on a branch and open a PR; merge/fast-forward it into `main`. - -**Step 2 — Wait for manual confirmation:** -I will (a) create the `v{VERSION}` tag + GitHub release on the merged commit and (b) run the -**Publish** workflow via `workflow_dispatch` with `publish_to_central=true` (the `publish-release` -job is gated on that input **and** the `v*` tag; one reactor `mvn -P release deploy` signs and -publishes the parent pom, `llama`, and `llama-langchain4j` together). Wait for me to confirm the -release is live on Maven Central before proceeding. - -**Step 3 — Post-release snapshot bump (after my confirmation):** -On a fresh branch off the updated `main`: -- Bump all three poms to `{NEXT_VERSION}-SNAPSHOT`: - `mvn -q versions:set -DnewVersion={NEXT_VERSION}-SNAPSHOT -DgenerateBackupPoms=false` -- `README.md` snapshot dependency example → `{NEXT_VERSION}-SNAPSHOT` - (the release examples — including `llama-langchain4j/README.md` — stay at `{VERSION}`). -Commit and open a PR. - -**Placeholders:** - -| Placeholder | Value | -|------------------|----------------------------------------------| -| `{PROJECT}` | *(project name)* | -| `{VERSION}` | *(release version, e.g. `1.3.0`)* | -| `{PREV}` | *(previous release, e.g. `1.2.0`)* | -| `{NEXT_VERSION}` | *(next snapshot base, e.g. `1.3.1`)* | -``` + +from the repo root — it updates the root `` plus both children's `` at +once. See the "Version bump" note in [CLAUDE.md](../CLAUDE.md) for the rationale. + +## Extra README dependency snippet + +Besides the root `README.md`, the `llama-langchain4j/README.md` `## Dependency` section carries a +**release** dependency snippet that must also be set to `{VERSION}` in Step 1 — it is not covered by +the root-README edits and drifts silently otherwise (the release examples stay at `{VERSION}` on the +Step 3 snapshot bump). + +One reactor `mvn -P release deploy` signs and publishes the parent pom, `llama`, and +`llama-langchain4j` together at the same version.