tools/src/sn_tools/check_workspace.py check (2) says, when a member under packages/* is missing from the root's [tool.uv.sources], that "uv 0.12.9 refuses to resolve at all in this state β uv lock exits 1". Measured on uv 0.12.9 during the sphinx-codelinks import: with the member present in the tree, discovered by the packages/* glob, and not yet in the root's dependencies or sources, uv lock exits 0. The message is right for the case it was written for (a member that something depends on by name) and overstated as a general claim.
The fence behaves correctly β it fails, which is the point β but its explanation should say what uv actually does: a member nothing depends on locks fine and is simply not installed by uv sync, which is the quieter failure this check exists to catch. Reword the message and, if cheap, add the measured case to the tooling tests.
Recorded in the import's build report; not fixed there because it is another check's prose.
tools/src/sn_tools/check_workspace.pycheck (2) says, when a member underpackages/*is missing from the root's[tool.uv.sources], that "uv 0.12.9 refuses to resolve at all in this state βuv lockexits 1". Measured on uv 0.12.9 during the sphinx-codelinks import: with the member present in the tree, discovered by thepackages/*glob, and not yet in the root'sdependenciesorsources,uv lockexits 0. The message is right for the case it was written for (a member that something depends on by name) and overstated as a general claim.The fence behaves correctly β it fails, which is the point β but its explanation should say what uv actually does: a member nothing depends on locks fine and is simply not installed by
uv sync, which is the quieter failure this check exists to catch. Reword the message and, if cheap, add the measured case to the tooling tests.Recorded in the import's build report; not fixed there because it is another check's prose.