1.0.0-rc.7 — the candidate the estates run before promote
Pre-release1.0.0-rc.7 — the candidate the estates run before promote
Cut from d1a8d40. The tree at this commit reads 0.25.0 / 7.25.0: a pre-release
version is never committed (scripts/check-no-prerelease-versions.sh), so this
annotation is the only record of what shipped.
npm 1.0.0-rc.7 (14 packages, dist-tag next)
PyPI — sat this one out (still 1.0.0rc6)
NuGet — sat this one out (still 1.0.0-rc.6)
Maven Central — sat this one out (still 8.0.0-rc.6)
metamodelVersion 1.0 — unchanged from rc.6; no registered vocabulary moved.
Why three registries sat it out. Every commit since v1.0.0-rc.6 is confined to
@metaobjectsdev/cli: no metamodel, no expected-registry.json, no Java, Python,
Kotlin or C# file. docs/RELEASING.md's convergent-publishing rule is that a port
with no changed product file keeps its current version and adopts the shared
minor.patch the next time it actually ships — and the rule that would override it
(a change to expected-registry.json or metamodelVersion forces all four) does not
fire here. Publishing byte-identical content to three registries to align a number
is the thing that rule retired. The JVM and Python estates keep their rc.6
evidence, which is evidence about code that did not change.
Why this RC exists. Five defects landed on main after rc.6, every one of them
found by an estate USING rc.6 rather than by rc.6 failing a gate. The maintainer
ruled (2026-09-08) that the estates should run the exact bits that become 1.0, so
the candidate moves to carry them:
- ADR-0034's removal diagnostic had one door and adopters arrive through two —
a polyglot estate's config imported an OWNED generator, and THAT file held the
stale import, so the source scan saw a clean config and the adopter got
(0 , _generators.entityFile) is not a functionwith no file, symbol or remedy. - Both advisory scanners reported findings inside BUILD OUTPUT. The estate that
found it builds topublic/, which no ignore list named; the fix is a property
of the artifact (looksBundled()) applied at both doors, not a sixth name. meta upgradeprinted one retirement's rationale once per OCCURRENCE — ~96
lines for 24@forge*attributes, burying the instruction in its own repetition.- A failed D1 introspection named a WARNING as its cause.
- (rc.6 already carried
gen --baseline=adopt; this candidate carries the four above.)