Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# Development

pip is a volunteer maintained open source project and we welcome contributions of all forms. The sections below will help you get started with development, testing, and documentation.

You can also join `#pypa` (general packaging discussion and user support) and `#pypa-dev` (discussion about development of packaging tools) on Libera.chat, or the `#pip` channel on the PyPA Discord, to ask questions or get involved.

- Getting Started
  - Get the source code
  - Development Environment
  - Running pip From Source Tree
  - Running Tests
  - Running Linters
  - Running pip under a debugger
  - Building Documentation
  - What Next?
- Contributing
  - Pip’s internals
  - Submitting Pull Requests
  - Automated Testing
  - NEWS Entries
  - Updating your branch
  - Becoming a maintainer
- Continuous Integration
  - Supported interpreters
  - Checks
  - Services
  - Current run tests
- Issue Triage
  - Issue Tracker
  - Triage Issues
  - Common issues
  - For issues caused by changes by redistributors
- Architecture of pip’s internals
  - Broad functionality overview
  - Repository anatomy & directory structure
  - Configuration File Handling
  - Finding and choosing files (`index` and `PackageFinder`)
  - Command Line Interface
  - Options that control the installation process
- Release process
  - Release Cadence
  - Deprecation Policy
  - Supported Versions
  - Feature Flags
  - Release Process
- Vendoring Policy
  - Rationale
  - Modifications
  - Automatic Vendoring
  - Managing Local Patches
  - Debundling

Note

pip’s development documentation has been rearranged and some older references might be broken.