fix(bundle): package graph-compose-bundle as a jar, not pom - #371
Merged
Conversation
A pom-packaged aggregate forces consumers to add <type>pom</type> to the dependency; a plain <dependency>graph-compose-bundle</dependency> (the form the README shows) fails to resolve a jar and breaks the build. Package it as an empty jar carrying only <dependencies> — mirroring the graph-compose wrapper, which already made exactly this choice for the same reason — so a plain dependency resolves and pulls the batteries-included stack transitively. Adds the compiler + jar plugins and the empty source/javadoc jars to the release profile, matching the wrapper's Maven Central setup.
DemchaAV
force-pushed
the
fix/bundle-jar-packaging
branch
from
July 12, 2026 13:15
bcd4193 to
16b7e8c
Compare
This was referenced Jul 12, 2026
DemchaAV
added a commit
that referenced
this pull request
Jul 12, 2026
A 2.0 tag ships eight modules (core, render-pdf/docx/pptx, templates, testing, the graph-compose wrapper, bundle), but the release gate only verified core — a broken bundle or render-docx could ship on a green core. Widen the pre-tag / pre-publish verify to the whole reactor: - release.yml + publish.yml run `./mvnw -B -ntp clean verify` (all modules). - cut-release.ps1 Step 5 runs the full reactor, detecting the layout by core/pom.xml so the same script still scopes to -pl . on the 1.x line. - the CI reactor gate adds :graph-compose and :graph-compose-bundle so the wrapper and bundle are covered on every push, not only via examples/#371. Also refresh the stale publish.yml comment describing the bundle as pom-packaged (it is an empty jar since the packaging fix).
DemchaAV
added a commit
that referenced
this pull request
Jul 12, 2026
A 2.0 tag ships eight modules (core, render-pdf/docx/pptx, templates, testing, the graph-compose wrapper, bundle), but the release gate only verified core — a broken bundle or render-docx could ship on a green core. Widen the pre-tag / pre-publish verify to the whole reactor: - release.yml + publish.yml run `./mvnw -B -ntp clean verify` (all modules). - cut-release.ps1 Step 5 runs the full reactor, detecting the layout by core/pom.xml so the same script still scopes to -pl . on the 1.x line. - the CI reactor gate adds :graph-compose and :graph-compose-bundle so the wrapper and bundle are covered on every push, not only via examples/#371. Also refresh the stale publish.yml comment describing the bundle as pom-packaged (it is an empty jar since the packaging fix).
DemchaAV
added a commit
that referenced
this pull request
Jul 12, 2026
…ain (#381) A 2.0 tag ships eight modules (core, render-pdf/docx/pptx, templates, testing, the graph-compose wrapper, bundle), but the release gate only verified core — a broken bundle or render-docx could ship on a green core. Widen the pre-tag / pre-publish verify to the whole reactor: - release.yml + publish.yml run `./mvnw -B -ntp clean verify` (all modules). - cut-release.ps1 Step 5 runs the full reactor, detecting the layout by core/pom.xml so the same script still scopes to -pl . on the 1.x line. - the CI reactor gate adds :graph-compose and :graph-compose-bundle so the wrapper and bundle are covered on every push, not only via examples/#371. Also refresh the stale publish.yml comment describing the bundle as pom-packaged (it is an empty jar since the packaging fix).
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.
Why
A Phase-8 consumer-dependency check (five minimal projects built against local
2.0.0-SNAPSHOT)found that
graph-compose-bundlewas<packaging>pom</packaging>, so a plain<dependency>graph-compose-bundle</dependency>— the exact form the README's "batteries-included"row shows — fails to resolve a jar and breaks the consumer's build. It works only if the consumer
adds
<type>pom</type>, which the README doesn't mention. Thegraph-composewrapper already madethe opposite choice for exactly this reason (its pom comment: "Packaging is
jar… NOTpom: apomwould force every consumer to add<type>pom</type>and break their build") — the bundle wassimply left inconsistent.
What
Package
graph-compose-bundleas an empty jar carrying only<dependencies>, mirroring thegraph-composewrapper:<packaging>pom</packaging>→jar; added themaven-compiler+maven-jarplugins and theversion properties they need.
maven-source(jar-no-fork) +maven-javadoc(failOnError=false) jars to thereleaseprofile — the same Maven Central setup the wrapper uses (both modules carry no sources,so the wrapper and the bundle produce the same artifact set, and the wrapper publishes to Central
today).
No README change needed: the existing plain-dependency snippet is now correct.
Tests
graph-compose-bundle) re-run with a plain<dependency>(no<type>pom>):compiles + renders a PDF (853 bytes). Before: fails to resolve.
MissingBackendException;wrapper → PDF; core+templates+render-pdf → PDF; wrapper+render-docx → PDF + DOCX).
-P release -pl :graph-compose-bundle packageexits 0 and produces the bundle jar (same output asthe wrapper's release package).
VersionConsistencyGuardTestgreen (bundle version still tracks the engine).Build/packaging only; no runtime or API change.