Repository navigation
Description
Context
mxdev 5.3.1 (PR #88) fixed a long-standing bug where hook namespaces silently swallowed any package whose name merely started with them (e.g. a uv hook claiming uvst.addon). The fix anchored section matching: hook sections must now be named exactly [namespace] or [namespace:subsection] — a colon, because colons cannot appear in Python distribution names.
That broke mxmake. Under 5.3.1, [mxmake-env], [mxmake-mxenv], and every [mxmake-{template}] section is reclassified as a package, then trips ValueError(\"Section mxmake-env has no URL set!\") on the first run.
mxdev 5.3.2 (in PR #89) restores the hyphen form with a deprecation warning, so mxmake keeps working without changes. This issue tracks the eventual migration to the canonical colon syntax.
What's affected in mxmake
src/mxmake/utils.py:6—NAMESPACE = \"mxmake-\"(trailing hyphen baked into the namespace)src/mxmake/hook.py:25—namespace: str = NAMESPACEsrc/mxmake/templates/mx.ini— emits[mxmake-env],[mxmake-{{ template[\"name\"] }}]src/mxmake/templates.py:123—self.config.hooks.get(ns_name(self.name), {})- Every existing mxmake user's generated
mx.ini
With mxdev 5.3.2, all of the above logs a deprecation warning but continues to work.
Suggested migration path
NAMESPACE = \"mxmake-\"→NAMESPACE = \"mxmake\"ns_name(name)→f\"mxmake:{name}\"for section names- Settings keys inside
[settings](e.g.mxmake-templates,mxmake-test-runner) are unaffected by mxdev's change — they are keys, not section names. Renaming them tomxmake:templatesetc. for consistency is optional and would itself need its own deprecation cycle.
- Settings keys inside
- Update
src/mxmake/templates/mx.ini→[mxmake:env],[mxmake:{{ template[\"name\"] }}] - Adjust template generation so both old
[mxmake-*]and new[mxmake:*]keys are recognized during the transition (or accept that users must regenerate) - Pin
mxdev>=5.3.2inpyproject.toml(currently>=4.0.2) once mxdev 5.3.2 is released - Add a release-note section documenting the rename for end users — they'll need to either regenerate from a new mxmake or rename
[mxmake-*]→[mxmake:*]in theirmx.ini
Severity / urgency
Not urgent: mxdev 5.3.2 keeps everything working with a warning. Migration can be planned for the next mxmake feature release.
Refs
- mxdev fix PR: Fix hook namespace swallowing packages with a matching name prefix mxdev#88
- mxdev deprecation-restore PR: Re-accept hyphen-delimited hook sections with deprecation warning mxdev#89
Activity