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 aaa929b
Browse filesBrowse the repository at this point in the historyBrowse files
docs(1.0): declare the scope; rule that the RC must run against an adopter
Two maintainer decisions, recorded where the gate lives.
**G3a — DECLARED.** What Metamodel 1.0 covers is the vocabulary named by
expected-registry.json at the cut commit, plus the canonical format and the wire
contract; everything outstanding only ADDS to that set. The declaration is
deliberately the weaker claim — NOT "the vocabulary is finished", since FR-024's
declared-API tier and FR-034's ecosystem tier are both real and both unbuilt,
but that finishing them is additive, so freezing now costs an adopter nothing.
Backed by three checks: zero experimental markers in the registry, every
remaining roadmap item additive, and all three open issues CLI surfaces over
vocabulary that already exists. The bullet says to RE-RUN those at the cut
commit, because the declaration is about the manifest that ships.
**G3d — RULED: the RC must be exercised against a real adopter, and it BLOCKS.**
Publish the RC, wire it into an adopter's CI with the drift gate ENFORCED,
run gen + verify + a migration, fix what it finds, then promote.
The argument against is recorded rather than dropped, because it is a real cost
and the decision should stay legible: all six known adopters are maintainer-owned,
so this is closer to self-validation than independent evidence, and it makes the
cut wait on a repository that is not the one being frozen. It was heard and
rejected. A conformance corpus gates the five ports AGAINST EACH OTHER and never
against use — every port can agree perfectly on a contract that is wrong in
practice. 0.24.3 and 0.24.5 are the precedent: both were largely defects found by
running the documented path, which nothing in this repo was asking.
So the open path to 1.0 is now G3d, then G1/G2/G4 — all mechanics after it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01At3v6M6uqECZ2Sb5eUv6YY
the *correction bar*: the three-part test under which input that never had a valid meaning may
29
+
stop loading in a PATCH, explicitly NOT covering retirement of vocabulary that worked), **G3c**
30
+
(DONE — the migration guide and compat policy are current at the cut) and **G3d** (OPEN, and the
31
+
one gate now blocking the cut — an adopter estate must run the RELEASE CANDIDATE with the drift
32
+
gate ENFORCED before promote; ruled 2026-09-07 knowing all six adopters are maintainer-owned,
33
+
because a conformance corpus gates the ports against each other and never against use). Ruling
34
+
in ADR-0035 **Amendment 3**. Do not reintroduce a waiting gate in any form.
32
35
33
36
34
37
**TypeScript reference implementation** is **published to npm at `0.25.0`** (14 `@metaobjectsdev/*` publish candidates on the `latest` tag, full lockstep; the two `angular` packages are versioned on their own `0.6.x` line and are **NOT published to npm — source-only by decision** (ADR-0048): they build in-repo, and stay off the registry until they meet the ADR's promotion bar). C# at `0.25.0` (NuGet); Python at `0.25.0` (PyPI); Java / Kotlin at `7.25.0` (Maven Central). **The four registries no longer move in lockstep — since `0.24.5` a registry publishes only when it has a changed product file**, and when it does it adopts the shared `minor.patch` then current, skipping the numbers it sat out (ADR-0035 Amendment 1 / `docs/RELEASING.md`). Two carve-outs: the 14 npm packages still move atomically with each other, and a change to `expected-registry.json` / `metamodelVersion` still forces all four. So a lagging number is INFORMATION — PyPI at `0.25.0` while npm is at `0.25.2` says PyPI has had no product change since `0.25.0`.
0 commit comments