Repository navigation
Fix the fat-jar no-natives check and three stale statements - #234
Merged
Merged
Conversation
The item still named 5.2.0; the pin has been 6.0.0 since b710796 and that release is not on Central either (llama-6.0.0.pom 404, newest 5.1.0). The substance stands: the item closes with the jllama release, nothing to change in this repository. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VBFFnrhtvXiUeyxjmUc4R2
- TODO "main does not build": the reason it gave for not reverting to 5.1.0 was attributed to the pom comment, which names a different one. Both are stated now: the binding removed enableFlashAttn()/FLASH_ATTN and renamed setTensorReadLazy to setLazyMode (the pom comment), and the reactor also depends on 6.0.0's natives-jar split. - TODO "@VisibleForTesting audit": the four members and lazyMode/cacheType live in LlamaCppJniProviderSupport since the PIT split, and tensorReadLazyMode is lazyMode. - verify-classifier-fatjars.sh: natives jars "(6.0.0 on)", a comment only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VBFFnrhtvXiUeyxjmUc4R2
verify-classifier-fatjars.sh runs under set -euo pipefail, and natives_of piped unzip -Z1 through grep. For a jar with no native entry grep exits 1, the assignment of the helper's output fails and set -e ends the script there: the job went red with no ::error:: line and no jar name, and the two "carries no native library at all" checks (default jar, classifier jar) were unreachable. The helper now tolerates only grep's "no match" (`|| [ "$?" -eq 1 ]`); an unzip failure or a grep error (exit 2) still fails the pipeline, so a corrupt jar is not accepted. The script had no test. The srcmorph-local .github/buildcheck/tests/test_verify_classifier_fatjars.py (stdlib only, not a shared file) builds fixture jars and asserts exit code and ::error:: message for every check: a matching classifier jar passes; a CPU-only jar under a GPU name, a lost default native, an unmapped classifier shape, a classifier or default jar without natives, a single-OS default jar and a corrupt jar fail. Red/green: before the fix both no-natives cases failed with "AssertionError: '::error::' not found in ''" (exit 1, empty stderr); with it all 8 cases pass, and the buildcheck suite is 67/67. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VBFFnrhtvXiUeyxjmUc4R2
The Javadoc of AiGenerationConfig.DEFAULT_FLASH_ATTN still credited ModelParameters.setFlashAttn(FlashAttn) to net.ladenthin:llama 5.2.0. jllama never published that number and renumbered the release to 6.0.0, which is what the pom pins and what CHANGELOG.md already says. It was the last forward-looking 5.2.0 reference in the sources; the remaining ones are deliberate history notes and a test fixture. Documentation only, so no test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VBFFnrhtvXiUeyxjmUc4R2
bernardladenthin
had a problem deploying
to
maven-central
October 21, 2026 21:15 — with
GitHub Actions
Failure
bernardladenthin
had a problem deploying
to
maven-central
October 21, 2026 21:15 — with
GitHub Actions
Failure
…ements of the branch The fat-jar check's corrupt-jar case asserted only a non-zero exit, which a helper whose failure is masked (`|| true` on its call, a lost pipefail) would pass as well: the script would then report the file as a jar without natives, with exit code 1 and an ::error:: line. The case now pins unzip's exit code 9 and the absence of the script's diagnosis (red with the helper's call masked, green as the script is). A `|| true` on the grep branch alone is not observable through a corrupt jar, pipefail carries unzip's status either way; the docstring and the CHANGELOG say what the test proves and what it cannot. The TODO's @VisibleForTesting inventory now separates the package-private production API of the provider support (called by the provider) from the documented test seams (the codec's line and string overloads, trimSourceAtLineBreak, the mojos' build*Configuration()). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VBFFnrhtvXiUeyxjmUc4R2
bernardladenthin
had a problem deploying
to
maven-central
October 22, 2026 00:54 — with
GitHub Actions
Failure
bernardladenthin
had a problem deploying
to
maven-central
October 22, 2026 00:54 — with
GitHub Actions
Failure
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.github/verify-classifier-fatjars.shruns underset -euo pipefail, and itsnatives_ofhelper pipedunzip -Z1throughgrep: for a jar with no native entrygrepexits 1, the assignment failed and the script ended red without an::error::line or a jar name, so the two "carries no native library at all" checks could never run. The helper now tolerates only grep's "no match"; anunzipfailure or a grep error still fails it..github/buildcheck/tests/test_verify_classifier_fatjars.pybuilds fixture jars and asserts exit code and::error::message for every check (a matching classifier jar passes; CPU-only under a GPU name, a lost default native, an unmapped classifier shape, a jar without natives, a single-OS default jar and a corrupt jar fail). The two no-natives cases were red before the fix.TODO.md's "main does not build" item names both reasons the reactor cannot go back to llama 5.1.0 (the removedenableFlashAttn()/ renamedsetLazyMode, and the 6.0.0 natives-jar split), its@VisibleForTestingaudit item names where the members live since the PIT split, a comment inverify-classifier-fatjars.shdates the natives jars to 6.0.0, andAiGenerationConfig's Javadoc names llama 6.0.0 (not 5.2.0) as the release that addedsetFlashAttn.Test plan
python3 -m unittest discover -s .github/buildcheck/tests -t .github(the new test red before the fix, green after),check-shared-files.py,check-release-gate.py,check-run-scripts.py.CHANGELOG.md,TODO.md.Related issues / PRs
Checklist
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdtype(scope):prefixed.Generated by Claude Code