Skip to content

build(templates): extract built-in templates into graph-compose-templates#304

Merged
DemchaAV merged 2 commits into
2.0-devfrom
build/2.0-extract-templates
Jul 5, 2026
Merged

build(templates): extract built-in templates into graph-compose-templates#304
DemchaAV merged 2 commits into
2.0-devfrom
build/2.0-extract-templates

Conversation

@DemchaAV

@DemchaAV DemchaAV commented Jul 5, 2026

Copy link
Copy Markdown
Owner

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-core ship without them while the presets stay a
single opt-in dependency away.

What

  • New standalone module graph-compose-templates holding
    com.demcha.compose.document.templates.**. The templates are pure
    authoring code over the canonical DSL — no engine internals, no PDFBox —
    so the module depends only on graph-compose-core. The packages are
    unchanged.
  • Templates are opt-in: the graph-compose compat wrapper (core +
    render-pdf) does not bundle them. 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.
  • Consumers wired: examples and benchmarks gain a compile dependency,
    qa a test dependency. aggregator, the publish workflow, cut-release,
    and VersionConsistencyGuardTest track the new lockstep module; the
    CHANGELOG packaging notes record the opt-in coordinate.

Tests

  • Full reactor clean verify (aggregator): all 14 modules green, 0 failures.
  • Standalone clean verify -pl . (the publish-workflow gate): BUILD SUCCESS,
    386 tests, VersionConsistencyGuardTest including the new
    templates == root lockstep assertion.

DemchaAV added 2 commits July 6, 2026 00:00
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.
@DemchaAV DemchaAV merged commit 297f079 into 2.0-dev Jul 5, 2026
10 checks passed
@DemchaAV DemchaAV deleted the build/2.0-extract-templates branch July 5, 2026 23:21
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.

1 participant