[P1][phase:b] Dependency-manifest classification: requirements*.txt is not runtime; local/stub modules are not third-party #117
Labels
No labels
area:ci
area:docs
area:engineering
area:framework-fp
area:test-coverage
dogfood:fn
dogfood:fp
dogfood:friction
dogfood:tp
phase:b
phase:c
severity:critical
severity:high
severity:low
severity:medium
source:deepseek-v4-pro
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/fallow-py#117
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: evidence-derived from the 2026-06-15 real-world precision audit (
docs/dogfood/real-world-precision-2026-06-15.md).Problem
The dependency-hygiene rules misclassify two kinds of input:
requirements*.txtread as runtime-dependency manifests.runtime-dependency-used-only-in-testsmeasured 0% precision (7/7 FP) — every finding came from treating a dev/test/docs pin file as a runtime declaration.from settings import *,import apps,from _typeshed import ...are flagged as missing third-party packages.Evidence (real repos)
httpx/requirements.txt(header literally: "Used in our test cases") →chardet,cryptography,trustme,uvicornflagged as "runtime dependency used only in tests"celery/requirements/test.txt,celery/requirements/docs.txt→moto,sphinx-testingflagged the same waydjango-oscar/sandbox/settings_postgres.py:from settings import *→settingsflagged as a missing third-party package (it is the local sandboxsettings.py)django-oscar/sandbox/urls.py:from apps.sitemaps import ...→appsflagged as third-party (it is a local package)flask,pydantic,httpx:from _typeshed import ...→typeshedflagged as a missing dependency (_typeshedis a typeshed-internal stub namespace, never an installable package)Proposed fix
[project.dependencies](PEP 621) /install_requiresas runtime declarations. Do not readrequirements*.txt,requirements/*.txt, or test/docs extras as the runtime manifest.settings/appsin the same tree), it is not a missing third-party dependency._typeshed, and anything only reachable underTYPE_CHECKING) from dependency rules — analogous to the stdlib exclusion.Acceptance criteria
requirements*.txtentry is reported as a runtime dependency.settings,apps, relative imports) are never flaggedmissing-runtime-dependency._typeshedis never flagged as a missing dependency.benchmarks/fp-cases/requirements-txt-not-runtime/and.../local-module-not-dist/fixtures added and pass.Priority
P1. Systematic and fully deterministic to fix; removes an entire class of confident-but-wrong findings on the dependency rules.
Opened by
claude(Opus 4.8) from the 2026-06-15 precision audit. Audit PR: #113.