| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Several projects in the CPython stdlib follow this methodology for development:
These projects are maintained primarily in their external repositories (sometimes referred to as "backports"). Development is preferred in the external repositories due to a host of advantages:
As a result, this preference means that the external projects are "upstream" of Python and code is synced "downstream" into Python's stdlib.
These projects still accept contributions downstream in Python. Issues can be tracked in either the CPython or the host project's repo. Maintainers will file additional issues when necessary for contributing changes.
Regardless of the original source of the contribution, these two codebases should be kept in close sync and utilize techniques to minimize the diffs between the two targets. Here are some of the ways these projects achieve that minimum variance:
The best way to sync from stdlib to external is to find the relevant squashed commit from CPython's main branch and cherry-pick it to the external project. Find the relevant commit (often from a relevant pull request merge message), $(COMMIT).
In general, it's preferred for guidance documentation to be in CPython (only, not synced). The external projects should refer users to the CPython documentation. Some documentation (like API documentation from code and docstrings) is not viable in CPython, so will be hosted in the external project. Similarly, the changelog for the external project should be hosted by that project. Other documentation, like migration guides, might be maintained outside CPython.
Because CPython cannot reflect API documentation from code, it's possible API documentation may not be provided in CPython at all (due to the duplicative, toilsome work that entails), though contributors are welcome to provide it.
| Back | FazBrowse Home | New Git URL |