@@ -11,14 +11,72 @@ Python Developer's Guide
1111This guide is a comprehensive resource for :ref: `contributing <contributing >`
1212to Python _ -- for both new and experienced contributors. It is
1313:ref: `maintained <devguide >` by the same
14- community that maintains Python. We welcome your contributions to Python!
14+ community that maintains Python. We welcome your contributions!
15+
16+
17+ .. _contributing :
18+
19+ Contributing
20+ ------------
21+
22+ We encourage everyone to contribute to Python. To help you, we have put up this
23+ developer's guide. If you still have questions after reviewing the material in
24+ this guide, then the `Core Python Mentorship `_ group is available to help guide new
25+ contributors through the process.
26+
27+ Guide for contributing to Python:
28+
29+ .. list-table ::
30+ :widths: 10 10 10
31+ :header-rows: 1
32+
33+ * - Documentation
34+ - Code
35+ - Triage
36+ * -
37+ * :ref: `docquality `
38+ * :ref: `documenting `
39+ * :ref: `style-guide `
40+ * :ref: `rst-primer `
41+ * :ref: `translating `
42+ * :ref: `devguide `
43+ -
44+ * :ref: `setup `
45+ * :ref: `help `
46+ * :ref: `pullrequest `
47+ * :ref: `runtests `
48+ * :ref: `fixingissues `
49+ * :ref: `communication `
50+ * :ref: `gitbootcamp `
51+ * :ref: `devcycle `
52+ -
53+ * :ref: `tracker `
54+ * :ref: `triaging `
55+ * :ref: `helptriage `
56+ * :ref: `experts `
57+ * :ref: `labels `
58+ * :ref: `gh-faq `
59+ * :ref: `triage-team `
60+
61+ We **recommend ** that sections of this guide be read as needed. You
62+ can stop where you feel comfortable and begin contributing immediately without
63+ reading and understanding everything. If you do choose to skip
64+ around within the guide, be aware that sections build on each other,
65+ so you may find it necessary to backtrack to fill in
66+ missing concepts and terminology.
67+
68+ A number of individuals from the Python community have contributed to a series
69+ of excellent guides at `Open Source Guides <https://opensource.guide/ >`__.
70+ For example,
71+ `How to Contribute to Open Source <https://opensource.guide/how-to-contribute/ >`__.
72+
1573
1674.. _quick-reference :
1775
1876Quick reference
1977---------------
2078
21- Here are the basic steps needed to get set up and contribute a pull request.
79+ Here are the basic steps needed to get set up and open a pull request.
2280This is meant as a checklist, once you know the basics. For complete
2381instructions please see the :ref: `setup guide <setup >`.
2482
@@ -70,9 +128,10 @@ instructions please see the :ref:`setup guide <setup>`.
70128
71129 ./python.exe -m test -j8
72130
73- Note: :ref: `Most <mac-python.exe >` macOS systems use
74- :file: `./python.exe ` in order to avoid filename conflicts with
75- the ``Python `` directory.
131+ .. note ::
132+ :ref: `Most <mac-python.exe >` macOS systems use
133+ :file: `./python.exe ` in order to avoid filename conflicts with
134+ the ``Python `` directory.
76135
77136 .. tab :: Windows
78137
@@ -85,40 +144,18 @@ instructions please see the :ref:`setup guide <setup>`.
85144 git checkout -b fix-issue-12345 main
86145
87146 If an issue does not already exist, please `create it
88- <https://github.com/python/cpython/issues>`__. Trivial issues (for example, typo fixes) do
89- not require any issue to be created.
90-
91- 6. Once you fixed the issue, run the tests, and the patchcheck:
92-
93- .. tab :: Unix
94-
95- .. code-block :: shell
96-
97- make patchcheck
98-
99- .. tab :: macOS
100-
101- .. code-block :: shell
102-
103- make patchcheck
147+ <https://github.com/python/cpython/issues>`__. Trivial issues (for example, typos) do
148+ not require an issue.
104149
105- .. tab :: Windows
106-
107- .. code-block :: dosbatch
108-
109- .\python.bat Tools\patchcheck\patchcheck.py
110-
111- If everything is ok, commit.
112-
113- 7. Push the branch on your fork on GitHub and :ref: `create a pull request
114- <pullrequest>`. Include the issue number using ``gh-NNNN `` in the
115- pull request description. For example:
150+ 6. Push the branch on your fork on GitHub and :ref: `create a pull request
151+ <pullrequest>`. Include the issue number using ``gh-NNNNNN `` in the
152+ pull request title. For example:
116153
117154 .. code-block :: text
118155
119156 gh-12345: Fix some bug in spam module
120157
121- 8 . Add a News entry into the ``Misc/NEWS.d `` directory as individual file. The
158+ 7 . Add a News entry into the ``Misc/NEWS.d/ `` directory as individual file. The
122159 news entry can be created by using `blurb-it <https://blurb-it.herokuapp.com/ >`__,
123160 or the :pypi: `blurb ` tool and its ``blurb add ``
124161 command. Please read more about ``blurb `` in its
@@ -130,58 +167,6 @@ instructions please see the :ref:`setup guide <setup>`.
130167 Agreement (CLA) as described in the :ref: `Licensing <cla >` section of
131168 this guide.
132169
133- Quick links
134- -----------
135-
136- Here are some links that you probably will reference frequently while
137- contributing to Python:
138-
139- * `Issue tracker `_
140- * `Buildbot status `_
141- * :ref: `help `
142- * PEPs _ (Python Enhancement Proposals)
143- * :ref: `gitbootcamp `
144-
145- .. _contributing :
146-
147- Contributing
148- ------------
149-
150- We encourage everyone to contribute to Python and that's why we have put up this
151- developer's guide. If you still have questions after reviewing the material in
152- this guide, then the `Core Python Mentorship `_ group is available to help guide new
153- contributors through the process.
154-
155- A number of individuals from the Python community have contributed to a series
156- of excellent guides at `Open Source Guides <https://opensource.guide/ >`__.
157-
158- Core developers and contributors alike will find the following guides useful:
159-
160- * `How to Contribute to Open Source <https://opensource.guide/how-to-contribute/ >`__
161- * `Building Welcoming Communities <https://opensource.guide/building-community/ >`__
162-
163- Guide for contributing to Python:
164-
165- ======================== =================== ======================= =======================
166- Contributors Documentarians Triagers Core team
167- ======================== =================== ======================= =======================
168- :ref: `setup ` :ref: `docquality ` :ref: `tracker ` :ref: `responsibilities `
169- :ref: `help ` :ref: `documenting ` :ref: `triaging ` :ref: `developers `
170- :ref: `pullrequest ` :ref: `style-guide ` :ref: `helptriage ` :ref: `committing `
171- :ref: `runtests ` :ref: `rst-primer ` :ref: `experts ` :ref: `devcycle `
172- :ref: `fixingissues ` :ref: `translating ` :ref: `labels ` :ref: `motivations `
173- :ref: `communication ` :ref: `devguide ` :ref: `gh-faq ` :ref: `experts `
174- :ref: `gitbootcamp ` :ref: `triage-team `
175- :ref: `devcycle `
176- ======================== =================== ======================= =======================
177-
178- We **recommend ** that the documents in this guide be read as needed. You
179- can stop where you feel comfortable and begin contributing immediately without
180- reading and understanding these documents all at once. If you do choose to skip
181- around within the documentation, be aware that it is written assuming preceding
182- documentation has been read so you may find it necessary to backtrack to fill in
183- missing concepts and terminology.
184-
185170
186171Proposing changes to Python itself
187172----------------------------------
@@ -200,36 +185,6 @@ happen and that process is also described as part of this guide:
200185* :ref: `langchanges `
201186
202187
203- Other interpreter implementations
204- ---------------------------------
205-
206- This guide is specifically for contributing to the Python reference interpreter,
207- also known as CPython (while most of the standard library is written in Python,
208- the interpreter core is written in C and integrates most easily with the C and
209- C++ ecosystems).
210-
211- There are other Python implementations, each with a different focus. Like
212- CPython, they always have more things they would like to do than they have
213- developers to work on them. Some major examples that may be of interest are:
214-
215- * PyPy _: A Python interpreter focused on high speed (JIT-compiled) operation
216- on major platforms.
217- * GraalPy _: A Python interpreter which has first-class support for
218- embedding in Java, built on GraalVM.
219- * Jython _: A Python interpreter focused on good integration with the Java
220- Virtual Machine (JVM) environment.
221- * IronPython _: A Python interpreter focused on good integration with the
222- Common Language Runtime (CLR) provided by .NET and Mono.
223- * Stackless _: A Python interpreter focused on providing lightweight
224- microthreads while remaining largely compatible with CPython specific
225- extension modules.
226- * MicroPython _: A tiny Python interpreter with small subset of the Python
227- standard library that is optimised to run on microcontrollers and in
228- constrained environments.
229- * CircuitPython _: A fork of MicroPython designed to simplify experimenting
230- and learning to code on low-cost microcontroller boards.
231-
232-
233188Key resources
234189-------------
235190
@@ -246,11 +201,14 @@ Key resources
246201* Source code
247202
248203 * `Browse online <https://github.com/python/cpython/ >`__
249- * `Snapshot of the *main* branch <https://github.com/python/cpython/archive/main.zip >`__
204+ * `Download a snapshot <https://github.com/python/cpython/archive/main.zip >`__
205+ of the ``main `` branch
250206
251207* PEPs _ (Python Enhancement Proposals)
208+ * `The Python Discourse <https://discuss.python.org/ >`__
252209* :ref: `help `
253210* :ref: `developers `
211+ * :ref: `gitbootcamp `
254212
255213
256214.. _resources :
@@ -268,30 +226,52 @@ Additional resources
268226
269227 * :ref: `gdb `
270228 * :ref: `clang `
271- * Various tools with configuration files as found in the `Misc directory `_
272- * Information about editors and their configurations can be found in the
273- `wiki <https://wiki.python.org/moin/PythonEditors >`__
229+ * Various tools with configuration files as found in the
230+ :cpy-file: `Misc/ ` directory
274231
275232* `python.org maintenance `_
276- * :ref: `Search this guide <search >`
277233
278234
279235Code of conduct
280236---------------
237+
281238Please note that all interactions on
282239`Python Software Foundation <https://www.python.org/psf-landing/ >`__-supported
283240infrastructure is `covered
284241<https://www.python.org/psf/records/board/minutes/2014-01-06/#management-of-the-psfs-web-properties> `__
285242by the `PSF Code of Conduct <https://policies.python.org/python.org/code-of-conduct/ >`__,
286243which includes all infrastructure used in the development of Python itself
287- (for example, mailing lists , issue trackers, GitHub, etc. ).
244+ (for example, Discourse , issue trackers, GitHub, and so on ).
288245In general this means everyone is expected to be open, considerate, and
289246respectful of others no matter what their position is within the project.
290247
291- Status of Python branches
292- -------------------------
293248
294- Moved to :ref: `versions `
249+ Other interpreter implementations
250+ ---------------------------------
251+
252+ This guide is specifically for contributing to the Python reference interpreter,
253+ also known as CPython (while most of the standard library is written in Python,
254+ the interpreter core is written in C and integrates most easily with the C and
255+ C++ ecosystems).
256+
257+ There are other Python implementations, each with a different focus. Like
258+ CPython, they always have more things they would like to do than they have
259+ developers to work on them. Some major examples that may be of interest are:
260+
261+ * PyPy _: A Python interpreter focused on high speed (JIT-compiled) operation
262+ on major platforms.
263+ * GraalPy _: A Python interpreter which has first-class support for
264+ embedding in Java, built on GraalVM.
265+ * Jython _: A Python interpreter focused on good integration with the Java
266+ Virtual Machine (JVM) environment.
267+ * IronPython _: A Python interpreter focused on good integration with the
268+ Common Language Runtime (CLR) provided by .NET and Mono.
269+ * MicroPython _: A tiny Python interpreter with small subset of the Python
270+ standard library that is optimised to run on microcontrollers and in
271+ constrained environments.
272+ * CircuitPython _: A fork of MicroPython designed to simplify experimenting
273+ and learning to code on low-cost microcontroller boards.
274+
295275
296276.. _contents :
297277
@@ -312,8 +292,8 @@ Full table of contents
312292 versions
313293 contrib/index
314294
315- .. _ Buildbot status : https://www.python.org/dev/buildbot/
316- .. _ Misc directory : https://github.com/ python/cpython/tree/main/Misc
295+
296+ .. _ Buildbot status : https://buildbot. python.org/
317297.. _PEPs : https://peps.python.org/
318298.. _python.org maintenance : https://pythondotorg.readthedocs.io/
319299.. _Python : https://www.python.org/
@@ -322,7 +302,6 @@ Full table of contents
322302.. _GraalPy : https://www.graalvm.org/python/
323303.. _Jython : https://www.jython.org/
324304.. _IronPython : https://ironpython.net/
325- .. _Stackless : https://github.com/stackless-dev/stackless/wiki/
326305.. _MicroPython : https://micropython.org/
327306.. _CircuitPython : https://circuitpython.org/
328307.. _Issue tracker : https://github.com/python/cpython/issues
0 commit comments