Observed
mcpp records a provisioned [xlings.workspace] list as a stamp, <mcpp home>/provisioned/xlings-deps-<hash>. It skips provisioning whenever the stamp matches the declaration, and does not check that the payloads still exist (src/build/prepare.cppm, needProvision = (have != want)).
After xlings remove qt-base 6.11.1 --force in mcpp's registry, the next build does not provision the payload again. It fails later, far from the cause:
warning: qt-consumer: mcpp.rules.qt: no Qt SDK. …
fatal error: QtCore/QtGlobal: No such file or directory
Deleting the stamp restores the build. Removing a payload is the documented way to replace a bad one (openxlings/xlings#620), so the case is expected in practice.
Request
A stamp counts as provisioned only while each payload it lists still resolves. Alternatively, when a listed payload is missing, the build says so and names the stamp.
Observed
mcpp records a provisioned
[xlings.workspace]list as a stamp,<mcpp home>/provisioned/xlings-deps-<hash>. It skips provisioning whenever the stamp matches the declaration, and does not check that the payloads still exist (src/build/prepare.cppm,needProvision = (have != want)).After
xlings remove qt-base 6.11.1 --forcein mcpp's registry, the next build does not provision the payload again. It fails later, far from the cause:Deleting the stamp restores the build. Removing a payload is the documented way to replace a bad one (openxlings/xlings#620), so the case is expected in practice.
Request
A stamp counts as provisioned only while each payload it lists still resolves. Alternatively, when a listed payload is missing, the build says so and names the stamp.