Skip to content

v0.20.11 — shared-enum cross-package + migrate PK-refuse (coordinated)

Choose a tag to compare

@dmealing dmealing released this 02 Aug 16:25
· 1317 commits to main since this release

Coordinated PATCH — npm `0.20.11` · PyPI `0.20.11` · NuGet `0.20.11` · Maven Central `7.20.11`.

This cut also re-baselines the version numbers: the three semver-`0.x` registries (npm/PyPI/NuGet) now share one number (`0.20.11`), and Maven aligns its `minor.patch` to match (`7.20.11`, keeping its historical major `7`), so "the 20.11 release" maps across every registry. Going forward, coordinated releases keep the shared minor in lockstep; npm may run a patch ahead between cuts.

Shipped

  • #246 — a `field.enum` may now be shared across packages (Kotlin table generator emits the cross-package shared-enum import), and a conflicting redeclaration is rejected instead of silently dropped: new cross-port loader error `ERR_ENUM_EXTENDS_VALUES_CONFLICT` (a `field.enum` that both `extends` a shared package-level abstract enum and declares its own `@values`). Loader change in all five ports; Kotlin codegen on Maven.
  • #259 (sibling of #246, Kotlin codegen) — a `field.enum` inheriting `@values` through two `extends` hops (projection → entity → shared abstract) now materializes its own per-projection enum instead of generating nothing.
  • #258 (npm-only, `migrate-ts` + `cli`) — `meta migrate` now refuses a primary-key move with a clear error (detect-and-refuse) instead of silently emitting an un-appliable migration that drops the PK and breaks referencing foreign keys.

No metadata vocabulary changes; byte-identical output for any model that doesn't hit the specific cross-package/two-hop enum shapes (and, for #258, any migration that isn't a primary-key move).

See CHANGELOG.md for full detail.