build(templates): extract built-in templates into graph-compose-templates#304
Merged
Conversation
The CV, cover-letter, invoice, and proposal templates (com.demcha.compose.document.templates.**) leave the core jar for a new standalone graph-compose-templates module. They are pure authoring code over the canonical DSL — no engine internals, no PDFBox — so the module depends only on graph-compose-core. A lean graph-compose-core carries none of it; consumers that want the ready-made presets add the one artifact. The packages are unchanged. Templates are opt-in: the graph-compose compat wrapper (core + render-pdf) does not bundle them, so code that reached the presets through graph-compose adds graph-compose-templates explicitly. The template data fixtures (com.demcha.mock.*DataFixtures) move to the module's test scope and ship in a tests-classifier jar (unbound in the release profile, never deployed) so graph-compose-qa and the benchmarks module reuse them. Examples, benchmarks, and qa gain the dependency; aggregator, publish, cut-release, and the version-consistency guard track the new lockstep module.
…pendency CanonicalBenchmarkSupport pulled the CV/invoice/proposal data fixtures (com.demcha.mock.*DataFixtures) from the core tests-classifier jar. Those fixtures now ship in the graph-compose-templates test-jar, which the benchmarks module already depends on, and benchmarks references nothing else from the core test-jar. Remove the redundant dependency so it stops adding a second com.demcha.mock jar to the classpath.
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
The built-in CV, cover-letter, invoice, and proposal templates were baked
into the core jar, so every consumer — including those that only want the
raw engine — carried the preset code and its data model. Splitting them out
lets a lean
graph-compose-coreship without them while the presets stay asingle opt-in dependency away.
What
graph-compose-templatesholdingcom.demcha.compose.document.templates.**. The templates are pureauthoring code over the canonical DSL — no engine internals, no PDFBox —
so the module depends only on
graph-compose-core. The packages areunchanged.
graph-composecompat wrapper (core +render-pdf) does not bundle them. Code that reached the presets through
graph-composeaddsgraph-compose-templatesexplicitly.com.demcha.mock.*DataFixtures) move to themodule's test scope and ship in a tests-classifier jar (unbound in the
release profile, never deployed) so
graph-compose-qaand the benchmarksmodule reuse them.
examplesandbenchmarksgain a compile dependency,qaa test dependency.aggregator, the publish workflow,cut-release,and
VersionConsistencyGuardTesttrack the new lockstep module; theCHANGELOG packaging notes record the opt-in coordinate.
Tests
clean verify(aggregator): all 14 modules green, 0 failures.clean verify -pl .(the publish-workflow gate): BUILD SUCCESS,386 tests,
VersionConsistencyGuardTestincluding the newtemplates == rootlockstep assertion.