Skip to content

Build classifier fat jars for GitHub releases, exclude fat jar from Central - #159

Merged
bernardladenthin merged 1 commit into
mainfrom
claude/bitcoinaddressfinder-jar-upload-k0tkj7
Jul 24, 2026
Merged

Build classifier fat jars for GitHub releases, exclude fat jar from Central#159
bernardladenthin merged 1 commit into
mainfrom
claude/bitcoinaddressfinder-jar-upload-k0tkj7

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • srcmorph-cli fat jar handling: Set <attach>false</attach> on the maven-assembly-plugin to prevent the fat jar from being deployed to Maven Central. The fat jar bundles platform-specific net.ladenthin:llama native binaries and is redundant on Central (consumers depend on the plain jar + resolved dependency graph).
  • Classifier fat jars for GitHub: Added new CI steps in both publish-snapshot and publish-release jobs to build and GPG-sign one fat jar per net.ladenthin:llama GPU classifier (cuda13, vulkan, opencl, rocm, sycl, openvino, msvc variants) plus the default CPU-only variant. These are GitHub-Release-only assets, never deployed to Central.
  • Artifact collection refactor: Replaced repetitive cp commands with a loop that explicitly excludes *-jar-with-dependencies.jar files, since those are now handled by the new classifier-fat-jar build step that runs after.
  • Documentation: Updated srcmorph-cli/README.md to explain where to download the fat jars (GitHub Releases, not Central) and clarify the classifier variants for GPU acceleration.

Test plan

  • CI is green on this branch (both snapshot and release workflows execute the new classifier-fat-jar steps and produce signed artifacts)
  • Existing unit/integration tests pass (no changes to core library or plugin logic)
  • Manual verification: fat jar is produced in target/ by mvn package but not installed/deployed when <attach>false</attach> is set

Related issues / PRs

N/A

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

https://claude.ai/code/session_01TJzCezSnQ8FxpFdeVxYxQY

…m Central

The srcmorph-cli fat jar (jar-with-dependencies) was attached and deployed to
Maven Central on every release (a 74 MB artifact bundling the net.ladenthin:llama
native). A jar-with-dependencies on Central is redundant — consumers depend on the
plain jar + its resolved graph — and it only ever carried the default CPU native,
so there was no GPU-accelerated variant anywhere.

- srcmorph-cli/pom.xml: set <attach>false</attach> on the assembly execution, so
  the fat jar is still built into target/ but is neither installed to ~/.m2 nor
  deployed to Central.
- publish.yml (publish-release + publish-snapshot): collect the deploy-signed
  plain/sources/javadoc jars first (excluding the now-unsigned fat jar), then build
  one srcmorph-cli fat jar per net.ladenthin:llama native classifier (the full
  <classifier> set from java-llama.cpp, all published on Central) plus the default
  all-platform CPU fat jar, GPG-sign each, and attach them to the GitHub Release.
  The default CPU build runs last so the unsuffixed jar is the run-anywhere CPU
  variant; each classifier variant is named
  srcmorph-cli-<version>-jar-with-dependencies-<classifier>.jar and runs only on its
  own OS/arch/backend.
- srcmorph-cli/README.md: document that the fat jars live on GitHub Releases (with
  .asc), the CPU default vs the per-backend GPU classifier variants.

Verified locally: attach=false still produces the fat jar; the default build is
74 MB (all CPU natives) and a vulkan-linux-x86-64 build is 25 MB (single backend),
confirming the classifier override bundles the right native.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJzCezSnQ8FxpFdeVxYxQY
@bernardladenthin
bernardladenthin merged commit 4eb48a1 into main Jul 24, 2026
12 of 18 checks passed
@bernardladenthin
bernardladenthin deleted the claude/bitcoinaddressfinder-jar-upload-k0tkj7 branch July 24, 2026 04:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants