diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ecd777..bc95f09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- `make setup` now ends with a `pytest --collect-only` pass so a broken environment + (missing or mismatched dependency) fails the target itself instead of exiting 0 + and surfacing later as a confusing test failure (T-47) + ## [2.4.3] - 2026-08-08 ### Fixed diff --git a/Makefile b/Makefile index 829cd50..7429b40 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,17 @@ setup: ## Create venv and install all dependencies python3 -m venv $(VENV) $(PIP) install --upgrade pip $(PIP) install -e ".[dev]" + # Exit 0 from pip install is not evidence the environment works (D-24) - the + # 2026-08-09 core-api incident was exactly this: a venv that "installed fine" + # but was missing a declared dependency, surfacing as 11 collection errors + # that read like broken imports rather than an environment problem. Collection + # is the right cheap check here for that same reason: it imports every test + # module (and everything they import) without running the suite, so a missing + # or mismatched dependency fails setup itself instead of showing up later as a + # mysterious test failure. Scoped like `make test` (excludes e2e/integration/ + # contracts, which need external services) and --no-cov since coverage + # instrumentation is irrelevant to "does this collect". + $(PYTEST) --collect-only -q --ignore=tests/e2e --ignore=tests/integration --ignore=tests/contracts --no-cov run: ## Start the development server on port 8777 @mkdir -p build/logs