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
chore: migrate descriptors to SPEC-001 short-name identity (mcpp 0.0.106)
mcpp 0.0.106 restores the canonical identity form: `namespace` carries the
hierarchy, `name` is a single atomic segment. 0.0.105 briefly required the
opposite (name spelled as the fully-qualified `<namespace>.<name>`), which was
an encoding constraint rather than a design rule — it existed only because mcpp
re-derived the wire name instead of using the literal it had already read.
namespace = "compat", name = "compat.zlib" -> name = "zlib"
45 descriptors migrated; the 3 namespace-less public module packages
(imgui/ffmpeg/opencv) are unchanged — a bare name IS their full identity.
Three short names now repeat across namespaces: `imgui`, `ffmpeg` and `lua`
(compat's versus the default namespace's, and compat's `lua` versus
mcpplibs.capi's). That is legal — identity is the PAIR, and only the pair has
to be unique. It needs xlings >= 0.4.69 (openxlings/xlings#381), which keys the
index by (namespace, name); 0.0.106 bundles it. Verified against a local path
index: bare `imgui` resolves to `mcpplibs:imgui` and `[dependencies.compat]
imgui` resolves to `compat:imgui`, each installing to its own store dir.
check_package_name.lua is inverted to match: `name` must be atomic, hierarchy
belongs in `namespace`, and the legacy fully-qualified spelling stays accepted
(the prefix is stripped before judging) so nothing published before this is
invalidated. No filename lint — the filename is not part of identity.
min_mcpp/latest_mcpp move to 0.0.106 in lock-step with the CI pin. This one is
NOT optional: a client older than 0.0.106 re-derives `<ns>.<short>`, misses the
short-name key, and reports a bare E_NOT_FOUND with nothing pointing at the
cause.
Verified locally: all 48 descriptors pass the inverted lint; identity pairs are
unique; no `name` still carries a dot; the three counterexamples (non-atomic
short name, dotted name without a namespace, legacy FQN) each behave as
specified.
0 commit comments