| Dec | JAN | Feb |
| 27 | ||
| 2021 | 2022 | 2023 |
COLLECTED BY
Collection: Save Page Now
●Getting Started
●Where to Get Help
●Lifecycle of a Pull Request
●Running & Writing Tests
●Increase Test Coverage
●Helping with Documentation
●Documenting Python
●Silence Warnings From the Test Suite
●Fixing “easy” Issues (and Beyond)
●Issue Tracking
●Triaging an Issue
●Following Python’s Development
●Porting Python to a new platform
●How to Become a Core Developer
●Developer Log
●Accepting Pull Requests
●Development Cycle
●Continuous Integration
●Adding to the Stdlib
●Changing the Python Language
●Experts Index
●gdb Support
●Exploring CPython’s Internals
●Changing CPython’s Grammar
●Guide to CPython’s Parser
●Design of CPython’s Compiler
●Design of CPython’s Garbage Collector
●Updating standard library extension modules
●Changing Python’s C API
●Coverity Scan
●Dynamic Analysis with Clang
●Running a buildbot worker
●Core Developer Motivations and Affiliations
●Git Bootcamp and Cheat Sheet
●Appendix: Topics
Toggle Light / Dark / Auto color theme
git clone https://github.com/<your_username>/cpython
cd cpython
Build Python, on UNIX and Mac OS use:
./configure --with-pydebug && make -j
and on Windows use:
PCbuild\build.bat -e -dSee also more detailed instructions, how to install and build dependencies, and the platform-specific pages for UNIX, Mac OS, and Windows. Run the tests:
./python -m test -j3
Onmost Mac OS X systems, replace ./python
with ./python.exe. On Windows, use python.bat.
Create a new branch where your work for the issue will go, e.g.:
git checkout -b fix-issue-12345 mainIf an issue does not already exist, please create it. Trivial issues (e.g. typo fixes) do not require any issue to be created. Once you fixed the issue, run the tests, run
make patchcheck, and if
everything is ok, commit.
Push the branch on your fork on GitHub and create a pull request. Include the issue number using bpo-NNNN in the
pull request description. For example:
bpo-12345: Fix some bug in spam module
Add a News entry into the Misc/NEWS.d directory as individual file. The
news entry can be created by using blurb-it,
or the blurb tool and its blurb add
command. Please read more about blurbindocumentation.
Note
First time contributors will need to sign the Contributor Licensing
Agreement (CLA) as described in the Licensing section of
this guide.
Branch |
Schedule |
Status |
First release |
End-of-life |
Release manager |
|---|---|---|---|---|---|
main |
features |
2022-10-03 |
2027-10 |
Pablo Galindo Salgado |
|
3.10 |
bugfix |
2021-10-04 |
2026-10 |
Pablo Galindo Salgado |
|
3.9 |
bugfix |
2020-10-05 |
2025-10 |
Łukasz Langa |
|
3.8 |
security |
2019-10-14 |
2024-10 |
Łukasz Langa |
|
3.7 |
security |
2018-06-27 |
2023-06-27 |
Ned Deily |
New Contributors |
Documentarians |
Triagers |
Core Developers |
|---|---|---|---|
git
●Get the source code
●Compile and build
●UNIX
●Windows
●Install dependencies
●Linux
●macOS and OS X
●Regenerate configure
●Troubleshoot the build
●Avoid recreating auto-generated files
●Editors and Tools
●Directory structure
●Where to Get Help
●Discourse
●Mailing Lists
●Ask #python-dev
●Zulip
●Core Mentorship
●Core Developers Office Hours
●File a Bug
●Lifecycle of a Pull Request
●Introduction
●Quick Guide
●Step-by-step Guide
●Resolving Merge Conflicts
●Making Good PRs
●patchcheck
●Making Good Commits
●Licensing
●Submitting
●Converting an Existing Patch from b.p.o to GitHub
●Reviewing
●How to Review a Pull Request
●Leaving a Pull Request Review on GitHub
●Dismissing Review from Another Core Developer
●Committing/Rejecting
●Crediting
●Running & Writing Tests
●Running
●Unexpected Skips
●Writing
●Benchmarks
●Increase Test Coverage
●Common Gotchas
●Measuring Coverage
●Using coverage.py
●Using test.regrtest
●Filing the Issue
●Measuring coverage of C code with gcov and lcov
●Helping with Documentation
●Python Documentation
●Helping with documentation issues
●Proofreading
●Helping with the Developer’s Guide
●Developer’s Guide workflow
●Documenting Python
●Introduction
●Style guide
●Use of whitespace
●Footnotes
●Capitalization
●Affirmative Tone
●Economy of Expression
●Security Considerations (and Other Concerns)
●Code Examples
●Code Equivalents
●Audience
●reStructuredText Primer
●Paragraphs
●Inline markup
●Lists and Quotes
●Source Code
●Hyperlinks
●Sections
●Explicit Markup
●Directives
●Footnotes
●Comments
●Source encoding
●Gotchas
●Additional Markup Constructs
●Meta-information markup
●Module-specific markup
●Information units
●Showing code examples
●Inline markup
●Cross-linking markup
●Paragraph-level markup
●Table-of-contents markup
●Index-generating markup
●Grammar production displays
●Substitutions
●Building the documentation
●Using make / make.bat
●Using sphinx-build
●Translating
●Starting a new translation
●PEP 545 summary:
●How to get help
●Translation FAQ
●Silence Warnings From the Test Suite
●Fixing “easy” Issues (and Beyond)
●Issue Tracking
●Using the Issue Tracker
●Checking if a bug already exists
●Reporting an issue
●Understanding the issue’s progress and status
●Disagreement With a Resolution on the Issue Tracker
●Helping Triage Issues
●Classifying Reports
●Reviewing Patches
●Finding an Issue You Can Help With
●Gaining the “Developer” Role on the Issue Tracker
●The Meta Tracker
●Triaging an Issue
●Python triage team
●Becoming a member of the Python triage team
●GitHub Labels for PRs
●Fields in the Issue Tracker
●Title
●Type
●Stage
●Components
●Versions
●Priority
●Keywords
●Nosy List
●Assigned To
●Dependencies
●Superseder
●Status
●Resolution
●Mercurial Repository
●GitHub PR
●Generating Special Links in a Comment
●Checklist for Triaging
●Following Python’s Development
●Mailing Lists
●Discourse
●IRC
●Blogs
●Standards of behaviour in these communication channels
●Setting Expectations for Open Source Participation
●Additional Repositories
●Porting Python to a new platform
●How to Become a Core Developer
●What it Takes
●What it Means
●Gaining Commit Privileges
●Mailing Lists
●Sign a Contributor Agreement
●Pull Request merging
●Responsibilities
●Developer Log
●Procedure for Granting or Dropping Access
●Accepting Pull Requests
●Assessing a pull request
●Updating NEWS and What’s New in Python
●Working with Git
●Seeing active branches
●Backporting changes to an older version
●Reverting a merged pull request
●Development Cycle
●Branches
●In-development (main) branch
●Maintenance branches
●Security branches
●End-of-life branches
●Stages
●Pre-alpha
●Alpha
●Beta
●Release Candidate (RC)
●Final
●Repository Administration
●Organization Repository Policy
●Organization Owner Policy
●Current Owners
●Repository Administrator Role Policy
●Current Administrators
●Repository Release Manager Role Policy
●Continuous Integration
●In case of trouble
●Buildbot failures on Pull Requests
●Checking results of automatic builds
●Stability
●Flags-dependent failures
●Ordering-dependent failures
●Transient failures
●Custom builders
●Adding to the Stdlib
●Adding to a pre-existing module
●Adding a new module
●Acceptable Types of Modules
●Requirements
●Proposal Process
●Changing the Python Language
●What Qualifies
●PEP Process
●Suggesting new features and language changes
●Experts Index
●Stdlib
●Tools
●Platforms
●Miscellaneous
●Documentation Translations
●gdb Support
●gdb 7 and later
●gdb 6 and earlier
●Updating auto-load-safe-path to allow test_gdb to run
●Exploring CPython’s Internals
●CPython Source Code Layout
●Additional References
●Changing CPython’s Grammar
●Abstract
●Checklist
●Guide to CPython’s Parser
●Abstract
●How PEG Parsers Work
●Key ideas
●Consequences or the ordered choice operator
●Syntax
●Grammar Expressions
●Left recursion
●Variables in the Grammar
●Grammar actions
●Pegen
●How to regenerate the parser
●How to regenerate the meta-parser
●Grammatical elements and rules
●Tokenization
●Memoization
●Automatic variables
●Hard and Soft keywords
●Error handling
●How Syntax errors are reported
●Generating AST objects
●Testing
●Debugging generated parsers
●Making experiments
●Verbose mode
●References
●Design of CPython’s Compiler
●Abstract
●Parsing
●Abstract Syntax Trees (AST)
●Memory Management
●Source Code to AST
●Control Flow Graphs
●AST to CFG to Bytecode
●Introducing New Bytecode
●Code Objects
●Important Files
●Known Compiler-related Experiments
●References
●Design of CPython’s Garbage Collector
●Abstract
●Memory layout and object structure
●Identifying reference cycles
●Why moving unreachable objects is better
●Destroying unreachable objects
●Optimization: generations
●Collecting the oldest generation
●Optimization: reusing fields to save memory
●Optimization: delay tracking containers
●Updating standard library extension modules
●Changing Python’s C API
●The internal API
●With PyAPI_FUNC or PyAPI_DATA
●With the extern keyword
●Private names
●Public C API
●Limited API
●Guidelines for changing the Limited API, and removing items from it
●Guidelines for adding to the Limited API
●Adding a new definition to the Limited API
●Coverity Scan
●Access to analysis reports
●Building and uploading analysis
●Known limitations
●False positives
●Intentionally
●Modeling
●Workflow
●False positive and intentional issues
●Positive issues
●Contact
●Dynamic Analysis with Clang
●What is Clang?
●What are Sanitizers?
●Clang/LLVM Setup
●Download, Build and Install
●Python Build Setup
●Building Python
●Blacklisting (Ignoring) Findings
●Running a buildbot worker
●Preparing for buildbot worker setup
●Setting up the buildbot worker
●Conventional always-on machines
●Latent workers
●Buildbot worker operation
●Required Ports
●Required Resources
●Security Considerations
●Core Developer Motivations and Affiliations
●Published entries
●Goals of this page
●Limitations on scope
●Git Bootcamp and Cheat Sheet
●Forking CPython GitHub Repository
●Cloning a Forked CPython Repository
●Listing the Remote Repositories
●Setting Up Your Name and Email Address
●Enabling autocrlf on Windows
●Creating and Switching Branches
●Deleting Branches
●Renaming Branch
●Staging and Committing Files
●Reverting Changes
●Stashing Changes
●Committing Changes
●Comparing Changes
●Pushing Changes
●Creating a Pull Request
●Updating your CPython Fork
●Applying a Patch to Git
●Downloading Other’s Patches
●Accepting and Merging a Pull Request
●Backporting Merged Changes
●Editing a Pull Request Prior to Merging
●Appendix: Topics
●Basics for contributors
●Core developers
●Development workflow for contributors
●Documenting Python and style guide
●Issue tracking and triaging
●Language development in depth
●Testing and continuous integration
Next
Getting Started
Copyright © 2011-2022, Python Software Foundation |
Last updated on Jan 27, 2022. |
Created using Sphinx and @pradyunsg's
Furo theme.
|
Show Source
Contents
●Python Developer’s Guide
●Quick Reference
●Quick Links
●Status of Python branches
●Contributing
●Proposing changes to Python itself
●Other Interpreter Implementations
●Key Resources
●Additional Resources
●Code of Conduct
●Full Table of Contents