@@ -15,16 +15,53 @@ Python Developer's Guide
1515.. highlight :: bash
1616
1717This guide is a comprehensive resource for :ref: `contributing <contributing >`
18- to Python _ -- for both new and experienced contributors. It is
18+ to various areas of Python _ -- for both new and experienced contributors. It is
1919:ref: `maintained <devguide >` by the same
20- community that maintains Python. We welcome your contributions to Python!
20+ community that maintains Python. We welcome your contributions!
21+
22+
23+ .. _contributing :
24+
25+ Contributing
26+ ------------
27+
28+ We encourage everyone to contribute to Python and that's why we have put up this
29+ developer's guide. If you still have questions after reviewing the material in
30+ this guide, then the `Core Python Mentorship `_ group is available to help guide new
31+ contributors through the process.
32+
33+ Guide for contributing to Python:
34+
35+ ======================== ===================
36+ Code Documentation
37+ ======================== ===================
38+ :ref: `setup ` :ref: `docquality `
39+ :ref: `help ` :ref: `documenting `
40+ :ref: `pullrequest ` :ref: `style-guide `
41+ :ref: `runtests ` :ref: `rst-primer `
42+ :ref: `fixingissues ` :ref: `translating `
43+ :ref: `communication ` :ref: `devguide `
44+ :ref: `gitbootcamp `
45+ :ref: `devcycle `
46+ ======================== ===================
47+
48+ We **recommend ** that the documents in this guide be read as needed. You
49+ can stop where you feel comfortable and begin contributing immediately without
50+ reading and understanding these documents all at once. If you do choose to skip
51+ around within the documentation, be aware that it is written assuming preceding
52+ documentation has been read so you may find it necessary to backtrack to fill in
53+ missing concepts and terminology.
54+
55+ A number of individuals from the Python community have contributed to a series
56+ of excellent guides at `Open Source Guides <https://opensource.guide/ >`__.
57+
2158
2259.. _quick-reference :
2360
24- Quick reference
25- ---------------
61+ CPython contribution quick reference
62+ ------------------------------------
2663
27- Here are the basic steps needed to get set up and contribute a pull request.
64+ Here are the basic steps needed to get set up and open a pull request.
2865This is meant as a checklist, once you know the basics. For complete
2966instructions please see the :ref: `setup guide <setup >`.
3067
@@ -76,9 +113,10 @@ instructions please see the :ref:`setup guide <setup>`.
76113
77114 ./python.exe -m test -j8
78115
79- Note: :ref: `Most <mac-python.exe >` macOS systems use
80- :file: `./python.exe ` in order to avoid filename conflicts with
81- the ``Python `` directory.
116+ .. note ::
117+ :ref: `Most <mac-python.exe >` macOS systems use
118+ :file: `./python.exe ` in order to avoid filename conflicts with
119+ the ``Python `` directory.
82120
83121 .. tab :: Windows
84122
@@ -91,40 +129,27 @@ instructions please see the :ref:`setup guide <setup>`.
91129 git checkout -b fix-issue-12345 main
92130
93131 If an issue does not already exist, please `create it
94- <https://github.com/python/cpython/issues>`__. Trivial issues (for example, typo fixes) do
95- not require any issue to be created.
96-
97- 6. Once you fixed the issue, run the tests, and the patchcheck:
98-
99- .. tab :: Unix
100-
101- .. code-block :: shell
102-
103- make patchcheck
132+ <https://github.com/python/cpython/issues>`__. Trivial issues (for example, typos) do
133+ not require an issue.
104134
105- .. tab :: macOS
135+ 6. Once you fix the issue, run the tests and ` pre-commit < https://pre-commit.com/ >`__:
106136
107- .. code-block :: shell
137+ .. code-block :: shell
108138
109- make patchcheck
139+ pre-commit install
140+ pre-commit run
110141
111- .. tab :: Windows
112-
113- .. code-block :: dosbatch
114-
115- .\python.bat Tools\patchcheck\patchcheck.py
116-
117- If everything is ok, commit.
142+ See :ref: `install-pre-commit ` for more details. If everything is ok, commit.
118143
1191447. Push the branch on your fork on GitHub and :ref: `create a pull request
120- <pullrequest>`. Include the issue number using ``gh-NNNN `` in the
121- pull request description . For example:
145+ <pullrequest>`. Include the issue number using ``gh-NNNNNN `` in the
146+ pull request title . For example:
122147
123148 .. code-block :: text
124149
125150 gh-12345: Fix some bug in spam module
126151
127- 8. Add a News entry into the ``Misc/NEWS.d `` directory as individual file. The
152+ 8. Add a News entry into the ``Misc/NEWS.d/ `` directory as individual file. The
128153 news entry can be created by using `blurb-it <https://blurb-it.herokuapp.com/ >`__,
129154 or the :pypi: `blurb ` tool and its ``blurb add ``
130155 command. Please read more about ``blurb `` in its
@@ -136,58 +161,6 @@ instructions please see the :ref:`setup guide <setup>`.
136161 Agreement (CLA) as described in the :ref: `Licensing <cla >` section of
137162 this guide.
138163
139- Quick links
140- -----------
141-
142- Here are some links that you probably will reference frequently while
143- contributing to Python:
144-
145- * `Issue tracker `_
146- * `Buildbot status `_
147- * :ref: `help `
148- * PEPs _ (Python Enhancement Proposals)
149- * :ref: `gitbootcamp `
150-
151- .. _contributing :
152-
153- Contributing
154- ------------
155-
156- We encourage everyone to contribute to Python and that's why we have put up this
157- developer's guide. If you still have questions after reviewing the material in
158- this guide, then the `Core Python Mentorship `_ group is available to help guide new
159- contributors through the process.
160-
161- A number of individuals from the Python community have contributed to a series
162- of excellent guides at `Open Source Guides <https://opensource.guide/ >`__.
163-
164- Core developers and contributors alike will find the following guides useful:
165-
166- * `How to Contribute to Open Source <https://opensource.guide/how-to-contribute/ >`__
167- * `Building Welcoming Communities <https://opensource.guide/building-community/ >`__
168-
169- Guide for contributing to Python:
170-
171- ======================== =================== ======================= =======================
172- Contributors Documentarians Triagers Core team
173- ======================== =================== ======================= =======================
174- :ref: `setup ` :ref: `docquality ` :ref: `tracker ` :ref: `responsibilities `
175- :ref: `help ` :ref: `documenting ` :ref: `triaging ` :ref: `developers `
176- :ref: `pullrequest ` :ref: `style-guide ` :ref: `helptriage ` :ref: `committing `
177- :ref: `runtests ` :ref: `rst-primer ` :ref: `experts ` :ref: `devcycle `
178- :ref: `fixingissues ` :ref: `translating ` :ref: `labels ` :ref: `motivations `
179- :ref: `communication ` :ref: `devguide ` :ref: `gh-faq ` :ref: `experts `
180- :ref: `gitbootcamp ` :ref: `triage-team `
181- :ref: `devcycle `
182- ======================== =================== ======================= =======================
183-
184- We **recommend ** that the documents in this guide be read as needed. You
185- can stop where you feel comfortable and begin contributing immediately without
186- reading and understanding these documents all at once. If you do choose to skip
187- around within the documentation, be aware that it is written assuming preceding
188- documentation has been read so you may find it necessary to backtrack to fill in
189- missing concepts and terminology.
190-
191164
192165Proposing changes to Python itself
193166----------------------------------
@@ -206,36 +179,6 @@ happen and that process is also described as part of this guide:
206179* :ref: `langchanges `
207180
208181
209- Other interpreter implementations
210- ---------------------------------
211-
212- This guide is specifically for contributing to the Python reference interpreter,
213- also known as CPython (while most of the standard library is written in Python,
214- the interpreter core is written in C and integrates most easily with the C and
215- C++ ecosystems).
216-
217- There are other Python implementations, each with a different focus. Like
218- CPython, they always have more things they would like to do than they have
219- developers to work on them. Some major examples that may be of interest are:
220-
221- * PyPy _: A Python interpreter focused on high speed (JIT-compiled) operation
222- on major platforms.
223- * GraalPy _: A Python interpreter which has first-class support for
224- embedding in Java, built on GraalVM.
225- * Jython _: A Python interpreter focused on good integration with the Java
226- Virtual Machine (JVM) environment.
227- * IronPython _: A Python interpreter focused on good integration with the
228- Common Language Runtime (CLR) provided by .NET and Mono.
229- * Stackless _: A Python interpreter focused on providing lightweight
230- microthreads while remaining largely compatible with CPython specific
231- extension modules.
232- * MicroPython _: A tiny Python interpreter with small subset of the Python
233- standard library that is optimised to run on microcontrollers and in
234- constrained environments.
235- * CircuitPython _: A fork of MicroPython designed to simplify experimenting
236- and learning to code on low-cost microcontroller boards.
237-
238-
239182Key resources
240183-------------
241184
@@ -252,11 +195,12 @@ Key resources
252195* Source code
253196
254197 * `Browse online <https://github.com/python/cpython/ >`__
255- * `Snapshot of the * main* branch <https://github.com/python/cpython/archive/main.zip >`__
198+ * `Download a snapshot of the ' main' branch <https://github.com/python/cpython/archive/main.zip >`__
256199
257- * PEPs _ (Python Enhancement Proposals)
200+ * :pep: ` PEPs < 0 >` (Python Enhancement Proposals)
258201* :ref: `help `
259202* :ref: `developers `
203+ * :ref: `gitbootcamp `
260204
261205
262206.. _resources :
@@ -270,16 +214,14 @@ Additional resources
270214 * :ref: `internals `
271215 * :ref: `grammar `
272216
273- * Tool support
217+ * Tool support:
274218
275219 * :ref: `gdb `
276220 * :ref: `clang `
277- * Various tools with configuration files as found in the `Misc directory `_
278- * Information about editors and their configurations can be found in the
279- `wiki <https://wiki.python.org/moin/PythonEditors >`__
221+ * Various tools with configuration files as found in the
222+ :cpy-file: `Misc/ ` directory
280223
281224* `python.org maintenance `_
282- * :ref: `Search this guide <search >`
283225
284226
285227Code of conduct
@@ -290,21 +232,13 @@ infrastructure is `covered
290232<https://www.python.org/psf/records/board/minutes/2014-01-06/#management-of-the-psfs-web-properties> `__
291233by the `PSF Code of Conduct <https://policies.python.org/python.org/code-of-conduct/ >`__,
292234which includes all infrastructure used in the development of Python itself
293- (for example, mailing lists , issue trackers, GitHub, etc. ).
235+ (for example, Discourse , issue trackers, GitHub, and so on ).
294236In general this means everyone is expected to be open, considerate, and
295237respectful of others no matter what their position is within the project.
296238
297- Status of Python branches
298- -------------------------
299-
300- Moved to :ref: `versions `
301-
302- .. _contents :
303-
304- Full table of contents
305- ----------------------
306239
307240.. toctree ::
241+ :hidden:
308242 :maxdepth: 3
309243
310244 getting-started/index
@@ -318,17 +252,42 @@ Full table of contents
318252 versions
319253 contrib/index
320254
321- .. _Buildbot status : https://www.python.org/dev/buildbot/
322- .. _Misc directory : https://github.com/python/cpython/tree/main/Misc
323- .. _PEPs : https://peps.python.org/
255+
256+ Other interpreter implementations
257+ ---------------------------------
258+
259+ This guide is specifically for contributing to the Python reference interpreter,
260+ also known as CPython (while most of the standard library is written in Python,
261+ the interpreter core is written in C and integrates most easily with the C and
262+ C++ ecosystems).
263+
264+ There are other Python implementations, each with a different focus. Like
265+ CPython, they always have more things they would like to do than they have
266+ developers to work on them. Some major examples that may be of interest are:
267+
268+ * PyPy _: A Python interpreter focused on high speed (JIT-compiled) operation
269+ on major platforms.
270+ * GraalPy _: A Python interpreter which has first-class support for
271+ embedding in Java, built on GraalVM.
272+ * Jython _: A Python interpreter focused on good integration with the Java
273+ Virtual Machine (JVM) environment.
274+ * IronPython _: A Python interpreter focused on good integration with the
275+ Common Language Runtime (CLR) provided by .NET and Mono.
276+ * MicroPython _: A tiny Python interpreter with small subset of the Python
277+ standard library that is optimised to run on microcontrollers and in
278+ constrained environments.
279+ * CircuitPython _: A fork of MicroPython designed to simplify experimenting
280+ and learning to code on low-cost microcontroller boards.
281+
282+
283+ .. _Buildbot status : https://buildbot.python.org/#/
324284.. _python.org maintenance : https://pythondotorg.readthedocs.io/
325285.. _Python : https://www.python.org/
326286.. _Core Python Mentorship : https://www.python.org/dev/core-mentorship/
327287.. _PyPy : https://pypy.org
328288.. _GraalPy : https://www.graalvm.org/python/
329289.. _Jython : https://www.jython.org/
330290.. _IronPython : https://ironpython.net/
331- .. _Stackless : https://github.com/stackless-dev/stackless/wiki/
332291.. _MicroPython : https://micropython.org/
333292.. _CircuitPython : https://circuitpython.org/
334293.. _Issue tracker : https://github.com/python/cpython/issues
0 commit comments