Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,10 @@ because a conformance corpus gates the ports against each other and never agains
in ADR-0035 **Amendment 3**. Do not reintroduce a waiting gate in any form.


**Where the versions are.** `latest` is **`1.0.13`** on npm, **`8.0.13`** on Maven Central,
**`1.0.13`** on PyPI and **`1.0.13`** on NuGet (the Maven major is always **npm major + 7**, so
1.1.0 will be 8.1.0). **1.1.0 is not released yet**: the `CHANGELOG.md` section headed
`[1.1.0]` is the release being prepared, not a published one. 1.0.13 is the last 1.0.x release; the four registries moved together on 1.0.13, 1.0.12, 1.0.11, 1.0.10 and 1.0.9 (Maven skipped 8.0.8), and earlier Maven alone took 1.0.6 (8.0.6) while the other three skipped that
number. Both patterns are the convergent-publishing rule working as intended. **1.0 is CUT** and **1.1 is in preparation**: the 1.0.0-rc candidates through 1.0.13 are superseded, and npm's `next` tag is REPOINTED onto each release — not deleted, because
**Where the versions are.** `latest` is **`1.1.2`** on npm, **`8.1.2`** on Maven Central,
**`1.1.2`** on PyPI and **`1.1.2`** on NuGet (the Maven major is always **npm major + 7**, so
1.1.2 is 8.1.2). **1.1.0, 1.1.1 and 1.1.2 are released.** 1.0.13 is the last 1.0.x release; the four registries moved together on 1.0.13, 1.0.12, 1.0.11, 1.0.10 and 1.0.9 (Maven skipped 8.0.8), and earlier Maven alone took 1.0.6 (8.0.6) while the other three skipped that
number. Both patterns are the convergent-publishing rule working as intended. **1.0 is CUT** and **1.1 is released**: the 1.0.0-rc candidates through 1.0.13 are superseded, and npm's `next` tag is REPOINTED onto each release — not deleted, because
`dist-tag rm` 403s for every token we hold (`docs/RELEASING.md` §4).
`metamodelVersion` read **`1.0`** through 1.0.13 — C4 landed and G4 shipped it, and no 1.0.x patch
moved it (1.0.4 relaxed `@sourceRefField` onto `@cardinality: one` with a prose-only
Expand Down Expand Up @@ -81,7 +80,7 @@ PyPI has had no product change since `0.25.0` — nothing is broken.

**Key cross-language features shipped:** FR5 family (a/b/c/d/e + WARN envelope-shape — actionable loader errors per ADR-0009); FR-003 (Java RDB runtime persistence + projections; schema migrations are TS-only — the Java migration engine was removed); FR-006 (template.output parser-on-receipt codegen per ADR-0010 in all 5 ports); FR-008 + FR-009 (cross-port REST API contract + the nine filter operators); FR-018 (M:N relationship codegen in all 5 ports — entity navigation + idiomatic ORM wiring [Drizzle m2m / EF Core `UsingEntity` / Spring repo+JPA / Exposed / Pydantic+route as the SQLAlchemy-secondary equivalent] + REST traversal `GET /<source-plural>/{id}/<relation>` + Tier-2 docs, gated by the shared api-contract m2m corpus in both lanes + persistence-conformance; the TanStack M:N client hook is a deferred client-ergonomics follow-up); SP-H (field-subtype end-to-end hardening: every concrete `field.*` subtype write+read round-trips cross-port via the persistence `op: roundtrip` gate; cut `field.byte`/`field.short`/`field.class` non-functional stubs; cross-port filter-op reconciliation for uuid/currency); source v2 paradigm (ADR-0007); metadata-ktx Kotlin facade; per-target output directories (TS codegen); FR-044 (the reporting vocabulary — `dimension.attribute`/`dimension.time`, `measure.aggregate`/`measure.ratio`, `segment.filter`, `object.report`, `@spine` on a report to take rows from a to-one dimension entity, `@default` on a measure for empty aggregates, plus the relative-date filter value — registered and loader-validated in all five ports; a report that declares a read-only `source.rdb @kind: view` is lowered to a SQL view by `meta migrate` and read by every port, and served by a generated read-only list route in every port, gated by the api-contract `report/` sub-corpus; the TypeScript `cube-model` reference generator writes the vocabulary as Cube data-model files, gated by the `fixtures/cube-model/` corpus and a `cube` lane that loads the output into a real Cube; a served report gets the generated TanStack list hook (`use<R>List`) but no grid or form, see [docs/features/reporting.md](docs/features/reporting.md) and [docs/features/cube-export.md](docs/features/cube-export.md)).

**Next release: 1.1.0** (in preparation; npm `1.1.0`, PyPI `1.1.0`, NuGet `1.1.0` and Maven Central `8.1.0` when cut). The reporting release (FR-044): declare dimensions, measures, segments and an `object.report`, and get a SQL view, a served read-only list route in every port, a generated TanStack list hook, and a Cube data model, with `@spine` for rows that have no facts and `@default` for an empty measure. Also carries the first slice of requirements (the gate in every port's `verify`), the derived-key parity fix across the ports, and the list-hook and nested-average fixes found by the first adopter. See the `CHANGELOG.md` 1.1.0 section for the full scope, pre-release RC history, and the diffs to expect when you upgrade (ejected generators and keyless projections). It also makes documentation a set of generators in every port (ADR-0034 Amendment 9): the docs commands are removed, and `docs/features/migrations/docs-are-generators.md` is the upgrade path. The latest release, 1.0.13 (2026-10-03), was a PATCH on 1.0.x.
**Release 1.1.0** (released; npm `1.1.0`, PyPI `1.1.0`, NuGet `1.1.0` and Maven Central `8.1.0`; the latest is 1.1.2 / 8.1.2). The reporting release (FR-044): declare dimensions, measures, segments and an `object.report`, and get a SQL view, a served read-only list route in every port, a generated TanStack list hook, and a Cube data model, with `@spine` for rows that have no facts and `@default` for an empty measure. Also carries the first slice of requirements (the gate in every port's `verify`), the derived-key parity fix across the ports, and the list-hook and nested-average fixes found by the first adopter. See the `CHANGELOG.md` 1.1.0 section for the full scope, pre-release RC history, and the diffs to expect when you upgrade (ejected generators and keyless projections). It also makes documentation a set of generators in every port (ADR-0034 Amendment 9): the docs commands are removed, and `docs/features/migrations/docs-are-generators.md` is the upgrade path. The last 1.0.x release, 1.0.13 (2026-10-03), was a PATCH on 1.0.x.

Active and planned work lives in GitHub: issues labelled `FR`, milestones for releases, and the MetaObjects Roadmap project board. `spec/roadmap.md` keeps the release direction and the FR → issue → spec index. Process: `docs/ROADMAP-PROCESS.md`.

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,11 @@ first-week wedge plan — and `meta init` picks up from there.

| Language | Status | Quickstart | Source |
|---|---|---|---|
| TypeScript | **npm `1.1.0`** — the `@metaobjectsdev/*` packages | [`docs/ports/typescript.md`](docs/ports/typescript.md) | [`server/typescript/`](server/typescript/) · [`client/web/`](client/web/) |
| Java | **Maven Central `8.1.0`** (`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/) |
| Kotlin | **Maven Central `8.1.0`** — 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/) |
| C# | **NuGet `1.1.0`** — loader + conformance + EF Core codegen + render engine + `dotnet meta` CLI all shipped | [`docs/ports/csharp.md`](docs/ports/csharp.md) | [`server/csharp/`](server/csharp/) |
| Python | **PyPI `1.1.0`** — loader + conformance + render + entity-model codegen + ObjectManager runtime shipped; schema migrations are TS-owned (ADR-0015) | [`docs/ports/python.md`](docs/ports/python.md) | [`server/python/`](server/python/) |
| TypeScript | **npm `1.1.2`** — the `@metaobjectsdev/*` packages | [`docs/ports/typescript.md`](docs/ports/typescript.md) | [`server/typescript/`](server/typescript/) · [`client/web/`](client/web/) |
| Java | **Maven Central `8.1.2`** (`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/) |
| Kotlin | **Maven Central `8.1.2`** — 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/) |
| C# | **NuGet `1.1.2`** — loader + conformance + EF Core codegen + render engine + `dotnet meta` CLI all shipped | [`docs/ports/csharp.md`](docs/ports/csharp.md) | [`server/csharp/`](server/csharp/) |
| Python | **PyPI `1.1.2`** — loader + conformance + render + entity-model codegen + ObjectManager runtime shipped; schema migrations are TS-owned (ADR-0015) | [`docs/ports/python.md`](docs/ports/python.md) | [`server/python/`](server/python/) |

## Capability matrix

Expand Down
4 changes: 2 additions & 2 deletions docs/ports/csharp.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Postgres + Npgsql.

## Install

Published to [NuGet](https://www.nuget.org/packages/MetaObjects) at `1.1.0` — four
Published to [NuGet](https://www.nuget.org/packages/MetaObjects) at `1.1.2` — four
packages, version-locked to the C# port version: `MetaObjects` (loader), `MetaObjects.Codegen`,
`MetaObjects.Render` and the `MetaObjects.Cli` tool.

Expand All @@ -33,7 +33,7 @@ SQLite so it runs with nothing else installed; the same generated code runs on P
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="MetaObjects.Codegen" Version="1.1.0" />
<PackageReference Include="MetaObjects.Codegen" Version="1.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.11" />
</ItemGroup>
<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions docs/ports/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ Prompt / template drift is still checked via the `metaobjects-render` `Verify` A

## Install

Set `${metaobjects.version}` to the current Maven Central release (`8.1.0`) — both
Set `${metaobjects.version}` to the current Maven Central release (`8.1.2`) — both
the dependency and plugin blocks below resolve it from one `<properties>` entry. The
generated records need Java 17 or newer, so set the compiler level here too (Maven
defaults to Java 8, where `mvn compile` fails with "records are not supported in -source 8"):

```xml
<!-- pom.xml -->
<properties>
<metaobjects.version>8.1.0</metaobjects.version>
<metaobjects.version>8.1.2</metaobjects.version>
<spring-boot.version>3.3.5</spring-boot.version>
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down
2 changes: 1 addition & 1 deletion docs/ports/kotlin.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ your own `<groupId>`, `<artifactId>` and `<version>`:
```xml
<!-- pom.xml -->
<properties>
<metaobjects.version>8.1.0</metaobjects.version>
<metaobjects.version>8.1.2</metaobjects.version>
<kotlin.version>2.0.21</kotlin.version>
<spring-boot.version>3.3.5</spring-boot.version>
<exposed.version>0.55.0</exposed.version>
Expand Down
2 changes: 1 addition & 1 deletion docs/ports/typescript.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# TypeScript port

The reference implementation. Published to npm at `1.1.0` as 14
The reference implementation. Published to npm at `1.1.2` as 14
`@metaobjectsdev/*` packages on the `latest` tag. Targets Node-compatible
runtimes; Bun-first dev workflow.

Expand Down
Loading