From 7979ccd48377a23d166075fe6cc531ca9b147586 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Mon, 13 Jul 2026 11:02:54 +0100 Subject: [PATCH] docs(adr): correct ADR 0016 to the shipped 2.0 module layout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two statements in the multi-module packaging ADR described a superseded draft rather than what shipped: - Engine sources are in the `core/` module (coordinate `graph-compose-core`), not "at the repository root" — the root is the `graph-compose-build` aggregator pom that binds the reactor. - The dormant Entity-Component-System internals (EntityManager / SystemECS runtime, the Entity model, the ECS render pipeline) were removed in 2.0.0, not moved into a module with removal deferred. They were unreachable from the live render path, so layout, PDF output, and guideLines(...) are unchanged. Documentation guards (CanonicalSurface, DocumentationCoverage, PackageMap, VersionConsistency) stay green. --- docs/adr/0016-multi-module-packaging.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/adr/0016-multi-module-packaging.md b/docs/adr/0016-multi-module-packaging.md index 61d735aa..c49408bf 100644 --- a/docs/adr/0016-multi-module-packaging.md +++ b/docs/adr/0016-multi-module-packaging.md @@ -60,9 +60,10 @@ render backends discovered at runtime through a `ServiceLoader` SPI. (via the wrapper) + templates + the independently-versioned `graph-compose-fonts` and `graph-compose-emoji` companions. Office backends are not bundled. -The engine sources stay at the repository root and only the **root coordinate** is -renamed `graph-compose` → `graph-compose-core`; the new wrapper is a small module. The -default coordinate `graph-compose` therefore continues to mean "PDF out of the box". +The engine sources live in the `core/` module under the coordinate `graph-compose-core`; +the repository root is the `graph-compose-build` aggregator pom that binds the modules +into one lockstep reactor, and `graph-compose` is the small jar-wrapper. The default +coordinate `graph-compose` therefore continues to mean "PDF out of the box". No JPMS: modules carry an `Automatic-Module-Name` only, so a split package across test-scope jars stays legal on the classpath. @@ -82,6 +83,8 @@ test-scope jars stays legal on the classpath. `graph-compose-emoji` keep their own lines (they change rarely). - **A `MissingBackendException` is now the "why won't it render" signal** for a lean `graph-compose-core`, replacing the pre-split assumption that the backend is always present. -- The legacy `Entity`-Component-System render pipeline moves into `graph-compose-render-pdf` - rather than being deleted; it is dead on the canonical path but still exercised by - test scaffolding, so its removal is deferred beyond 2.0. +- The dormant `Entity`-Component-System engine internals — the `EntityManager` / + `SystemECS` runtime, the `Entity` component model, and the ECS render pipeline — + were removed in 2.0.0 rather than carried into a module. They were unreachable from + the live `DocumentSession` → layout compiler → fixed-layout backend path, so document + layout, PDF output, and the public `guideLines(...)` overlay are unchanged.