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 481cf99
Browse filesBrowse the repository at this point in the historyBrowse files
fix(release): the tag gate matched a version prefix, so it stopped checking at 1.0
`finish-release.mjs` gate 6 refuses to cut a tag the site deploy would not resolve. It
found the deploy's answer with `git tag -l 'v0.*'`. That was true until the 1.0 cut and
then quietly stopped being true: it resolves `v0.25.0` now and will forever, because the
0.x line is frozen. A prefix match does not fail when it goes stale — it selects the newest
tag of a dead line and passes — so the gate would have gone green at every future release
while checking nothing. This is the same defect that kept metaobjects.dev serving 0.25.0
after the 1.0 cut with every deploy step green; it was fixed in the site repo and survived
here, in the script that cuts the tag the site resolves.
It now mirrors what deploy.yml actually does: walk `v*` newest-first and take the first tag
whose `cli/package.json` is versioned AS the tag. That is the property that DEFINES the npm
line (v1.0.0 ships cli 1.0.0; the JVM-only v7.20.12 ships cli 0.20.11), it is what keeps the
v7.x line out without naming a digit, and there is nothing to maintain at the next major.
**The tests could not have caught this, and that is the more useful finding.** Every gate-6
fixture tagged its versions on the 0.x line, where the prefix and the intrinsic property
agree — so both selectors passed all four cases and the suite was blind to the bug it
shipped with. Worse, `makeRepo` cut every requested tag at the single fixture commit, so no
tag agreed with its own tree; under a faithful selector nothing resolved and two "is
refused" cases would have wrongly passed.
So the fixture is now faithful: each tag gets its own commit stamping `cli/package.json` at
that tag's version, with a `tagCli` override for a tag that must NOT read as the npm line —
which lets the JVM-line test assert the real reason v7.20.12 is skipped (its tree disagrees)
instead of the reason that expired. Two cases are added on the 1.x line, and they are the
ones that discriminate: reverting the selector to `v0.*` turns
`cutting v1.0.1 over v0.25.0,v1.1.0 is refused` red and leaves the other 39 green, which is
the proof that the gate now covers the defect rather than merely passing. The fixture's
hardcoded `maven: 7.<minor>.<patch>` is derived too — it is correct only on the 0.x line and
would have failed the 1.x cases for a reason that is not gate 6's.
Alongside: the README's language rows named a registry version for TypeScript only, so a
reader learned where to get one port of five; all of them now carry their registry and
version. The release-docs checklist pointed at a "parity status as of <ver>" marker that no
longer exists in `extending-with-providers.md`, and says so rather than sending the next cut
looking for it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NTcEKXTQMYt84fAjuw5A2M
Copy file name to clipboardExpand all lines: README.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -93,11 +93,11 @@ first-week wedge plan — and `meta init` picks up from there.
93
93
94
94
| Language | Status | Quickstart | Source |
95
95
|---|---|---|---|
96
-
| TypeScript |Published to npm at `1.0.0` (the `@metaobjectsdev/*` packages)|[`docs/ports/typescript.md`](docs/ports/typescript.md)|[`server/typescript/`](server/typescript/) · [`client/web/`](client/web/)|
97
-
| Java |Loader + OMDB + render + Maven plugin all shipped; full conformance green |[`docs/ports/java.md`](docs/ports/java.md)|[`server/java/`](server/java/)|
98
-
| Kotlin |Codegen tier on top of Java — 14 generators (entity, Exposed table, relations, repository, payload, output-parser, output-prompt, render-helper, extractor, filter-allowlist, validator, Spring config, storedProc, Spring controller); 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/)|
99
-
| C# |Loader + conformance + EF Core codegen + render engine + `dotnet meta` CLI all shipped |[`docs/ports/csharp.md`](docs/ports/csharp.md)|[`server/csharp/`](server/csharp/)|
| Java |**Maven Central `8.0.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/)|
98
+
| Kotlin |**Maven Central `8.0.0`** — codegen tier on top of Java: 14 generators (entity, Exposed table, relations, repository, payload, output-parser, output-prompt, render-helper, extractor, filter-allowlist, validator, Spring config, storedProc, Spring controller); 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/)|
0 commit comments