Running the test suite, debug builds, GDB and LLDB, sanitizers, tracing memory bugs, writing core tests, documentation, making patches, reading PEPs, and the release process.
| Chapter | Title |
|---|---|
| 82 | Running the Test Suite |
| 83 | Debug Builds |
| 84 | GDB and LLDB |
| 85 | Sanitizers |
| 86 | Tracing Memory Bugs |
| 87 | Writing Core Tests |
| 88 | Documentation Workflow |
| 89 | Making a CPython Patch |
| 90 | Reading PEPs |
| 91 | Release Process |
82. Running the Test Suitepython -m test flags, regrtest test selection, parallel execution (-j), and interpreting test output.
83. Debug BuildsPy_DEBUG compile flag, assertion macros, the --with-pydebug configure option, and debugging allocator.
84. GDB and LLDBCPython-aware GDB and LLDB scripts in Tools/gdb/, py-bt, py-list, and inspecting live interpreter frames.
85. SanitizersBuilding CPython with AddressSanitizer, UBSan, and ThreadSanitizer to catch memory and concurrency bugs.
86. Tracing Memory BugsValgrind suppression files, tracemalloc snapshot diffing, and libasan leak detection in CPython builds.
87. Writing Core Teststest_* module conventions, unittest patterns, support helpers in Lib/test/support/, and writing C-level tests.
88. Documentation WorkflowDoc/ Sphinx source layout, building docs with make html, and the process for submitting documentation fixes.
89. Making a CPython PatchGitHub workflow: forking, branching, opening a PR, responding to review, and the CLA requirement.
90. Reading PEPsPEP document structure, the steering council review process, and tracking PEP status on peps.python.org.
91. Release ProcessCPython version numbering, alpha/beta/RC schedule, branch management, and the role of the release manager.