Skip to content

Commit b6ec343

Browse files
committed
ci: declare build-system so uv installs shapepipe
The fast-tests workflow runs 'uv sync --frozen --extra test' then pytest on the GitHub runner (outside the dev image). Without a [build-system] table, uv resolved shapepipe as a virtual project (uv.lock recorded source = { virtual = "." }), so 'uv sync' installed only the dependencies and not shapepipe itself — every test module failed collection with 'No module named shapepipe'. Declare the setuptools build backend (already the de-facto backend via [tool.setuptools]); uv.lock now records source = { editable = "." } and 'uv sync' puts shapepipe on the path. Verified: 'uv sync --dry-run' now plans the editable install, and the package builds cleanly with setuptools.build_meta (wheel contains shapepipe/ + entry points).
1 parent f90082b commit b6ec343

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

pyproject.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,13 @@ environments = ["sys_platform == 'linux'"]
9191
[tool.uv.sources]
9292
ngmix = { git = "https://github.com/esheldon/ngmix", tag = "v2.4.0" }
9393

94+
[build-system]
95+
# Declaring a build backend makes shapepipe an installed package (not a uv
96+
# "virtual" project), so `uv sync` puts it on the path — required for the
97+
# fast-tests CI job to import shapepipe.
98+
requires = ["setuptools>=61"]
99+
build-backend = "setuptools.build_meta"
100+
94101
[tool.setuptools]
95102
script-files = [
96103
"scripts/python/update_runs_log_file.py",

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)