fix: skip Form B packages in template name resolution#266
Conversation
|
Thanks — reviewed and reproduced locally. The Form B filter is worth having, but it is not what makes #265 fail, so I changed What actually flips the resolutionNot "
Reproduced with the exact binary CI installs (0.0.100) against the real index (floor 0.0.102): Same binary, same index, only the gate differs — so candidate ordering and Form A/B are not the cause. The leak also defeats the floor contract everywhere else ( With this PR applied the same CI step still exits 1 — just with On merging thisFine to merge as hardening. Verified it cannot regress anything today: Two things before merge:
|
Form B packages (mcpp = { ... }) have no physical mcpp.toml or
templates/ directory — their manifest is synthesized from the
index descriptor. The template fetch path now detects this via
extract_mcpp_field() and skips to the next namespace candidate.
Refs mcpp-community#265 (hardening)
f7afd58 to
990ba17
Compare
Summary
fetch_template_package()now skips Form B packages whose manifestis synthesized from the descriptor (
mcpp = { ... })mcpp::manifest::extract_mcpp_field()API, consistentwith
prepare.cppmForm A/B dispatchsrc/scaffold/create.cppmRefs #265 (hardening — does not close it; see review comment below for the
verified root cause, which lands in a separate PR)
Test plan
bash tests/e2e/69_package_templates.sh— new Form B filter casebash tests/e2e/02_new_build_run.sh— no regressionbash tests/e2e/12_add_command.sh— no regressionbash tests/e2e/27_namespace_dependencies.sh— no regression