Skip to content

feat: chain the Java pipeline from the documents to the rendered tree - #220

Merged
ExtraToast merged 2 commits into
mainfrom
feat/96-chain-java-pipeline
Oct 1, 2026
Merged

ExtraToast merged 2 commits into
mainfrom
feat/96-chain-java-pipeline

Conversation

@ExtraToast

Copy link
Copy Markdown
Contributor

Closes #96.

Chains the Java pipeline end to end. One entry, Pipeline.render, runs parse, check, lowering, resolution and the Acceleo templates in one pass. The parity suite then holds every rendered oracle through that entry.

What it proves

  • Rendered oracles in parity. A new ParityTest, the composed union renders to the committed trees byte for byte, compares the rendered trees through the CLI file interface like every other oracle kind:
    • the build renders the union of minimal and data to bundles/cli/target/parity/rendered/;
    • that tree must equal the committed minimal/rendered/, data/rendered/ and _estate/rendered/ taken together, file for file.
  • Determinism. Two runs over the same inputs write byte-identical trees (RenderedTreeTest).
  • Refusal. A set the checks refuse writes no tree. The pipeline returns the diagnostics, and the parity output writes them where the tree would have gone.
  • No hand-written input. No stage test feeds a hand-written target model to a stage any more:
    • the render bundle's own test now builds a one-Deliverable model in code;
    • models/minimal.resolveddeployment is read only as the expected output of the resolution.
  • Eclipse. render.launch now reads the Resolved Deployment the build leaves in the parity output, as resolution.launch already reads its extents there.

REQ-033 witnessed (as agreed)

  • What is checked. The new ResolvedDeploymentTest#theResolvedModelNamesNoKubernetesOrTraefikField checks the shared part of REQ-033: no feature of the resolved model is named for a Kubernetes or Traefik field. The list of forbidden names is the production check's.
  • What is left out. The Deliverable plan is excluded on purpose, because it spells the target formats by design and the production model has no such plan. The test computes the plan reflectively and asserts which classes fall inside it.
  • Production-only parts. The worked-projection validation and the four reintroduced defects stay with the production side.
  • Ledger. minimal's model validating was already tested. The witness list is now 13 witnessed and 1 pending (REQ-035, on Slice 4: model and render the knowledge platform #201).

Checks

  • ./mvnw -B -ntp clean verify in emf/ is green, with coverage and mutation at 100%.
  • npm run verify is green.

@ExtraToast ExtraToast added type: feature New user-facing or operator-facing capability. area: deploy homelab-deploy, deploy-v2, manifests, and rollout flow. labels Oct 1, 2026
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Shape

bucket files additions deletions
production code 2 +59 -0
tests 5 +208 -65
documentation 3 +18 -12
tooling 2 +8 -8

Coverage

Baseline: main @ 537682f.

metric this branch main diff
statements 99.51% 99.51% 0.00
branches 97.95% 97.95% 0.00
functions 100.00% 100.00% 0.00
lines 99.46% 99.46% 0.00

This pull request changed no covered line.

@ExtraToast
ExtraToast enabled auto-merge (squash) October 1, 2026 20:30
@ExtraToast
ExtraToast merged commit 4a42771 into main Oct 1, 2026
21 checks passed
@ExtraToast
ExtraToast deleted the feat/96-chain-java-pipeline branch October 1, 2026 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: deploy homelab-deploy, deploy-v2, manifests, and rollout flow. type: feature New user-facing or operator-facing capability.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Chain the Java pipeline end to end

2 participants