This page consolidates the status of the official TCK runs against Mansart. Day-to-day source of truth: the BUG.md and TCK.md at the root of each sub-module.

Summary

Spec / sub-module Total Pass Notes

Jakarta Data 1.0 — EntityTests

73

73

✅ M7 delivered 2026-05-05. See PLAN.md.

Jakarta Data 1.0 — SignatureTests

1

1

✅ M7-26 delivered 2026-05-05.

Jakarta Data 1.0 — PersistenceTests

—

—

⏳ Deferred Data/JPA integration; Persistence is delivered, but Data remains frozen.

Jakarta Data 1.0 — NoSQLTests

—

—

❌ Out of scope v1 (Mansart targets SQL/JDBC).

Jakarta Transactions 2.0 — Smoke

5

5

✅ Wiring MansartTckProvider + MansartUserTransaction validated.

Jakarta Transactions 2.0 — full-tck tsharness suite

~40 (JTA EE leaves)

build SUCCESSFUL

⚠️ M6c in progress: drive ant runclient leaf-by-leaf + parse HTML report → target/tck-report-transactions.txt.

Jakarta Transactions 2.0 — Signature tests

delivered

✅

Compiled against the Mansart classpath, BUILD SUCCESSFUL.

Jakarta Persistence 3.2 — locally patched 3.2.1 suite

2135

2131

✅ P0–P12 delivered under a scope-based gate. Temurin 25.0.4+7-LTS, PostgreSQL 17; TCK-BUG-001: 2131 passes, no failures/errors, four official skips. Not an untouched official result or certification. The historical pre-P11 untouched baseline was 2096 passes, 35 errors and four skips; P11 subsequently fixed the ten cache errors. Vidocq Arquillian: 6/6 with the local Vauban snapshot used for those runs. See TCK.md.

Jakarta Persistence 3.2 — current status

Runner: mansart-persistence/mansart-jpa-tck, out of the reactor, using the official 3.2.1 suite and PostgreSQL 17 DDL. By default it runs a derived copy of the spec-tests jar carrying the local fixture patch TCK-BUG-001: the byte-exact backport of upstream commit 1fea05e (jakartaee/persistence#1175), which removes the <delimited-identifiers/> unit default from two orm.xml fixtures. Official artifacts are never modified and TCK_FIXTURES=official runs the untouched jar. The P8 full run passed 2013 tests; compared test by test with the preserved P7 baseline (1063 passes), 950 tests newly pass, with no regression or added/missing tests. This includes one earlier converted-literal query defect exposed and fixed during attribution, not later-milestone implementation. Required SINGLE_TABLE and JOINED, polymorphic loading and JPQL TYPE are delivered. At P7, the focused gates totalled 307 / 312 passed, four XML-mapping-dependent errors and one skipped. The XML-dependent errors were resolved in P10. The initial P10 baseline passed 2121 tests but ignored <delimited-identifiers/>. The pre-P11 untouched run with correct quotation reported 2096 passes, 35 errors, four skips / 2135, with no added/missing tests: 25 regressions are confined to core.annotations.nativequery (1 / 12) and core.entitytest.apitests (7 / 21), whose delimited-default mappings conflict with the unquoted PostgreSQL DDL. core.override 26 / 26, core.callback 66 / 66, core.relationship.descriptors 8 / 8, se.descriptor 1 / 1 and core.StoredProcedureQuery 40 / 40 retain their results. That historical run also contained ten second-level cache errors, subsequently fixed in P11. With TCK-BUG-001 (2026-10-10, provider unchanged) the P10 full run reported 2121 passes, 10 errors, four skips / 2135; the 25 fixture errors passed with zero regressions and the same test identities. P11 subsequently fixed the cache assertions. The latest local patched full run reports 2131 passes, 0 failures/errors, four skips / 2135, unchanged against the previous P11 run. These patched scores are local development results, not official results or formal certification. The P8 gate totals 925 tests: 924 passed, no failures/errors, one upstream skip: metamodel 258 / 259, Criteria 650 / 650, entity graphs 13 / 13 and repeatable named graphs 3 / 3. The P8 runtime/processor/module-path reactor reported 470 passing tests, including populated canonical fields in entity packages neither exported nor opened to the provider. Optional TABLE_PER_CLASS remains explicitly refused; decision D5 stays open. Schema/container contracts, XML, and caching/validation are delivered. Data’s incompatible canonical plural field kinds need a maintainer-approved producer reconciliation; Data is unchanged. No formal certification or Web Profile is sought.

cd mansart/main/mansart-persistence/mansart-jpa-tck
./run-official-tck-persistence-3.2.sh

The script exits zero after a reported run even if tests failed, but nonzero on setup or fixture-provenance failures; inspect target/tck-report-persistence.txt and the failsafe XML counters.

Jakarta Data 1.0 — detail

Runner: mansart-jakarta-data/mansart-data-tck, out of reactor (standalone POM Model 4.0.0, no <parent>). This decouples the implementation and official TCK release cycles. The historical Maven Model 4.1.0 parsing constraint no longer applies since the move to Maven 3.9.x and Model 4.0.0.

Harness architecture:

  • Arquillian + ShrinkWrap for the official TCK fixtures.

  • Mansart adapter: MansartRuntimeProducer injects a RepositoryRuntime from a test H2 in-memory DataSource.

  • MansartTckArchiveAppender + VaubanArquillianExtension enrich TCK archives with the Mansart implementations generated by APT.

Local reproduction:

cd mansart/mansart-jakarta-data/mansart-data-tck
./run-official-tck-data-1.0.sh all

Major historical bug: BUG-20260505-01 (TCK entities not metamodelled because compiled without the processor in the APT classpath). Resolved by the M7 runtime runner (MansartRuntimeRepoCreator). See BUG.md.

Jakarta Transactions 2.0 — detail

Runner: mansart-transactions/, see TCK.md.

The official TCK distributed by Eclipse is a historical Sun tsharness harness:

  • bin/build.xml Apache Ant.

  • bin/ts.jte ~80 properties (JAVA_HOME, SUT classpath, hostnames, ports).

  • Tests under src/com/sun/ts/tests/jta/ee/ compiled in place by ant build then executed via ant runclient.

No Surefire-scannable jar exists — dependenciesToScan against jtatck.jar only finds support classes, not tests.

Status:

  • ✅ M6 smoke wiring 5/5 (./run-official-tck-transactions-2.0.sh smoke).

  • ✅ M6b profile full-tck: ant build.all.tests BUILD SUCCESSFUL on the ~7 JTA EE directories + signature tests.

  • ⏳ M6c leaf-by-leaf driving + tsharness HTML report parsing.

Manual reproduction:

cd mansart/mansart-transactions
./install-tck.sh                           # download + unpack
cd .tck-cache/transactions-tck/bin
$EDITOR ts.jte                             # JAVA_HOME, jta.classes, Mansart provider
ant build && ant runclient
xdg-open ../dist/index.html

Tests intentionally skipped

Test Reason

PersistenceTests.* (Jakarta Data)

Data/JPA integration is deferred; Persistence is implemented, but Data remains frozen.

NoSQLTests.* (Jakarta Data)

Mansart targets SQL/JDBC exclusively in v1.

Tests skipped due to environment

None to date. The Jakarta Data and Jakarta Transactions TCKs run in CI on H2 in-memory, with no external dependency.

Reproduce locally

# Jakarta Data 1.0
cd mansart/mansart-jakarta-data/mansart-data-tck
./run-official-tck-data-1.0.sh all

# Jakarta Transactions 2.0 (smoke)
cd mansart/mansart-transactions/mansart-transactions-tck
./run-official-tck-transactions-2.0.sh smoke

Prerequisites: non-public official Jakarta artefacts installed in the local M2 — procedure documented in each runner’s README.