You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 62ea5c0
Browse filesBrowse the repository at this point in the historyBrowse files
no-mistakes(document): Doc pass for report export. Fixed stale corpus and generator counts. Export contract, ports, ADR-0031 Amendment 1, roadmap and changelog already match code at target. Edited four files: docs/CONFORMANCE.md, docs/features/api-contract.md, docs/ports/kotlin.md, README.md. No code or tests touched.
| Java |**Maven Central `8.1.4`** (`com.metaobjects:*` — the JVM major is npm major + 7) — loader + OMDB + render + Maven plugin all shipped; full conformance green |[`docs/ports/java.md`](docs/ports/java.md)|[`server/java/`](server/java/)|
151
-
| Kotlin |**Maven Central `8.1.4`** — codegen tier on top of Java: 16 generators (entity, Exposed table, names, relations, repository, output-parser, output-prompt, render-helper, extractor, filter-allowlist, validator, Spring config, storedProc, Spring controller, requirement-tests, api-docs); 24 / 24 persistence-conformance |[`docs/ports/kotlin.md`](docs/ports/kotlin.md)|[`server/java/codegen-kotlin/`](server/java/codegen-kotlin/) · [`server/java/metadata-ktx/`](server/java/metadata-ktx/)|
151
+
| Kotlin |**Maven Central `8.1.4`** — codegen tier on top of Java: 17 generators (entity, Exposed table, names, relations, repository, output-parser, output-prompt, render-helper, extractor, filter-allowlist, validator, Spring config, storedProc, Spring controller, requirement-tests, api-docs, report-export); 24 / 24 persistence-conformance |[`docs/ports/kotlin.md`](docs/ports/kotlin.md)|[`server/java/codegen-kotlin/`](server/java/codegen-kotlin/) · [`server/java/metadata-ktx/`](server/java/metadata-ktx/)|
|[`fixtures/persistence-conformance/`](../fixtures/persistence-conformance/)| 59 (53 query + 6 migration) | all 59; the 24 `report-*` and the `-15` decimal scenarios also on SQLite, MySQL and D1, `decimal-exact` also on MySQL (a scenario's `engines:` key is exact) | 53 query (migrations TS-only, ADR-0015); the `report-*` and `engines:` scenarios also on SQLite and MySQL | 53 query (via Exposed); the `report-*` and `engines:` scenarios also on SQLite and MySQL | 53 query; the `report-*` and `engines:` scenarios also on SQLite and MySQL | 53 query (pg8000); the `report-*` and `engines:` scenarios also on SQLite (`sqlite3`) and MySQL (PyMySQL) |
37
-
|[`fixtures/api-contract-conformance/`](../fixtures/api-contract-conformance/)|112 (31 core + 10 tph + 9 m2m + 4 jsonb + 2 write-through + 12 projection + 33 report + 11 decimal) | ✓ (Fastify reference + generated lane); `report/` and `decimal/` also on SQLite, MySQL and D1 | ✓ (embedded HTTP + JDBC); `report/` and `decimal/` generated controllers over OMDB on Postgres, SQLite and MySQL | ✓ (embedded HTTP + Exposed); `report/` and `decimal/` also on SQLite and MySQL | ✓ (Kestrel + Npgsql); `report/` and `decimal/` also on SQLite and MySQL | ✓ (FastAPI + pg8000); `report/` and `decimal/` also on SQLite and MySQL |
37
+
|[`fixtures/api-contract-conformance/`](../fixtures/api-contract-conformance/)|117 (31 core + 10 tph + 9 m2m + 5 jsonb + 2 write-through + 12 projection + 37 report + 11 decimal) | ✓ (Fastify reference + generated lane); `report/` and `decimal/` also on SQLite, MySQL and D1 | ✓ (embedded HTTP + JDBC); `report/` and `decimal/` generated controllers over OMDB on Postgres, SQLite and MySQL | ✓ (embedded HTTP + Exposed); `report/` and `decimal/` also on SQLite and MySQL | ✓ (Kestrel + Npgsql); `report/` and `decimal/` also on SQLite and MySQL | ✓ (FastAPI + pg8000); `report/` and `decimal/` also on SQLite and MySQL |
@@ -348,9 +348,9 @@ REAL, a MySQL `DECIMAL` keeps its scale, a MySQL `DATETIME` is the UTC wall cloc
348
348
`report-relative-date` carries a per-engine seed (`seed-data-engine`). `op: relate` and the
349
349
write ops stay Postgres-only. See [features/reporting.md](features/reporting.md#what-the-corpus-gates).
350
350
351
-
### `fixtures/api-contract-conformance/` (112)
351
+
### `fixtures/api-contract-conformance/` (117)
352
352
353
-
All 106 scenarios → [features/api-contract.md](features/api-contract.md) (cross-port
353
+
All 117 scenarios → [features/api-contract.md](features/api-contract.md) (cross-port
354
354
REST API URL grammar + JSON wire format). Verifies every backend's emitted CRUD
355
355
routes answer identically over HTTP — list / get / create / patch+put / delete,
356
356
plus pagination (`limit`/`offset`), sort (`sort=field:dir`), the `withCount=1`
@@ -364,12 +364,12 @@ URL grammar `?filter[<field>][<op>]=<value>` (FR-009). On top of the 31 core
364
364
scenarios the corpus carries seven sub-corpora — `tph/` (10, single-table
365
365
inheritance; a subtype decimal filters and refuses extra digits), `m2m/` (9 — 3 plain, 5 gating TPH x M:N together, the combination
366
366
each corpus alone could not reach, and 1 pinning the collection-URL spelling),
367
-
`jsonb/` (4, typed value-object columns; numbers inside them: a double stays a JSON number, a decimal is the canonical string),
367
+
`jsonb/` (5, typed value-object columns; numbers inside them: a double stays a JSON number, a decimal is the canonical string),
368
368
`write-through/` (2, table-write + view-read entities), `projection/` (12, a
369
369
read-only view answers reads and refuses writes with 405; a projection with no declared
370
370
identity has no item route; a projection keyed on a field not named `id` is addressed by
371
371
it, whether its identity names `@fields` or derives them; decimal and float fields filter), `decimal/` (11, ADR-0019 Amendment 1: a decimal, array element and undeclared-precision column included, is one
372
-
canonical string, read exactly, filtered exactly and refused past its declared digits) and `report/` (33,
372
+
canonical string, read exactly, filtered exactly and refused past its declared digits) and `report/` (37,
373
373
FR-044: a view-backed `object.report` is listed, filtered, sorted and paged on
374
374
its derived fields, answers `POST` with 405 and mounts no `/{id}`; a `@spine` report keeps
375
375
a row with no facts, and a measure with `@default` filters and sorts as its default). All 5 ports — TS, Java,
@@ -555,7 +555,7 @@ files into a real Cube.
555
555
## Orphaned fixtures (tested but not yet documented)
556
556
557
557
The fixtures in the nine corpora mapped above (metamodel 413 + yaml 16 + verify 37
0 commit comments