CodeVetter · Repo Unpack · Contributor handoff
pypa/pip
Tests and CI were inspected, not executed, and this handoff makes no passing-result claim. Begin edits by reading the command and shared infrastructure that own the requested behavior. Use existing Nox sessions only when execution is authorized, selecting unit checks before relevant functional checks. Preserve interpreter compatibility, installation records, configuration precedence, and vendoring boundaries; historical architecture prose needs verification against source.
- For dispatch changes, read __main__.py, cli/main.py, main_parser.py, and commands/__init__.py first; public console scripts and module invocation converge on this path, while direct in-process main() use is explicitly discouraged.
- For install changes, inspect InstallCommand.run(), RequirementCommand.make_resolver(), Resolver.resolve(), and install_given_reqs(); reporting, dry runs, preparation completion, building, and environment mutation occur at distinct stages.
- For configuration edits, read the action command, Configuration, and ConfigOptionParser together; explicit scope selection, site/user defaults, PIP_CONFIG_FILE behavior, and command-section precedence are separate mechanisms.
- Keep Python minimum changes synchronized between pyproject.toml and __pip-runner__.py; the runner's compatibility check must remain parseable by Python 2 so unsupported interpreters receive the intended error.
- Treat _vendor updates as vendoring work: its configuration names vendor.txt, patches, protected files, and the SBOM. Formatting hooks exclude the vendor tree, and user-facing changes have configured Towncrier fragment categories.
- When execution is authorized, use existing targeted sessions such as nox -s test-3.10 -- tests/unit/test_wheel.py or tests/functional/test_configuration.py; Nox provisions an sdist and dependencies before pytest. Those sessions and CI were inspected, not executed here.
- Use the stricter Nox typecheck session and repository formatting checks for relevant changes; its typing config excludes fixture data and ignores vendor errors. Unit tests cannot use the functional script fixture, and network-marked tests receive special socket/retry handling.
- Verify architecture prose against current code: anatomy describes argparse and a build_env.py module, while the implementation uses optparse-based ConfigOptionParser and build_env package interfaces. The architecture index itself says documentation is incomplete.