@@ -92,15 +92,14 @@ details. The current editors are:
92
92
* Guido van Rossum
93
93
* Barry Warsaw
94
94
95
- PEP editorship is by invitation of the current editors. The address
96
- <peps@python.org> is a mailing list for contacting the PEP editors. All
97
- email related to PEP administration (such as requesting a PEP number
98
- or providing an updated version of a PEP for posting) should be sent to
99
- this address (no cross-posting please).
95
+ PEP editorship is by invitation of the current editors, and they can be
96
+ contacted via the address <peps@python.org>, but you may only need to use this
97
+ to contact the editors semi-privately. All of the PEP workflow can be
98
+ conducted via the GitHub `PEP repository`_ issues and pull requests.
100
99
101
100
102
- Submitting a PEP
103
- ----------------
101
+ Start with an idea for Python
102
+ -----------------------------
104
103
105
10000
104
The PEP process begins with a new idea for Python. It is highly
106
105
recommended that a single PEP contain a single key proposal or new
@@ -111,13 +110,13 @@ PEP, the more successful it tends to be. The PEP editors reserve the
111
110
right to reject PEP proposals if they appear too unfocused or too
112
111
broad. If in doubt, split your PEP into several well-focused ones.
113
112
114
- Each PEP must have a champion -- someone who writes the PEP using the
115
- style and format described below, shepherds the discussions in the
116
- appropriate forums, and attempts to build community consensus around
117
- the idea. The PEP champion (a.k.a. Author) should first attempt to
118
- ascertain whether the idea is PEP-able. Posting to the
119
- comp.lang.python newsgroup (a.k.a. python-list@python.org mailing
120
- list) or the python-ideas mailing list is the best way to go about this.
113
+ Each PEP must have a champion -- someone who writes the PEP using the style
114
+ and format described below, shepherds the discussions in the appropriate
115
+ forums, and attempts to build community consensus around the idea. The PEP
116
+ champion (a.k.a. Author) should first attempt to ascertain whether the idea is
117
+ PEP-able. Posting to the comp.lang.python newsgroup
118
+ (a.k.a. python-list@python.org mailing list) or the python-ideas@python.org
119
+ mailing list is the best way to go about this.
121
120
122
121
Vetting an idea publicly before going as far as writing a PEP is meant
123
122
to save the potential author time. Many ideas have been brought
@@ -136,35 +135,46 @@ python-ideas. This gives the author a chance to flesh out the draft
136
135
PEP to make properly formatted, of high quality, and to address
137
136
initial concerns about the proposal.
138
137
139
- Following a discussion on python-ideas, the proposal should be sent as a
140
- draft PEP to the PEP editors <peps@python.org>. The draft must be written
141
- in PEP style as described below, else it will be sent back without further
142
- regard until proper formatting rules are followed (although minor errors
143
- will be corrected by the editors).
144
-
145
- If the PEP editors approve, they will assign the PEP a number, label it
146
- as Standards Track, Informational, or Process, give it status "Draft",
147
- and create and check-in the initial draft of the PEP. The PEP editors
148
- will not unreasonably deny a PEP. Reasons for denying PEP status
149
- include duplication of effort, being technically unsound, not
150
- providing proper motivation or addressing backwards compatibility, or
151
- not in keeping with the Python philosophy. The BDFL can be consulted
152
- during the approval phase, and is the final arbiter of the draft's
153
- PEP-ability.
154
-
155
- Developers with git push privileges for the `PEP repository`_ may claim
156
- PEP numbers directly by creating and committing a new PEP. When doing so,
157
<
8000
code class="diff-text syntax-highlighted-line deletion">- the developer must handle the tasks that would normally be taken care of by
158
- the PEP editors (see `PEP Editor Responsibilities & Workflow`_). This
159
- includes ensuring the initial version meets the expected standards for
160
- submitting a PEP. Alternately, even developers may choose to submit PEPs
161
- through the PEP editors. When doing so, let the PEP editors know you have
162
- git push privileges and they can guide you through the process of updating
163
- the PEP repository directly.
138
+
139
+ Submitting a PEP
140
+ ----------------
141
+
142
+ Following a discussion on python-ideas, the proposal should be submitted as a
143
+ draft PEP via a `GitHub pull request`_. The draft must be written in PEP
144
+ style as described below, else it will fail review immediately (although minor
145
+ errors may be corrected by the editors).
146
+
147
+ The standard PEP workflow is:
148
+
149
+ * You, the PEP author, fork the `PEP repository`_, and create a file named
150
+ ``pep-0xxx.rst`` that contains your new PEP. Use "XXX" as your draft PEP
151
+ number.
152
+ * Push this to your GitHub fork and submit a pull request.
153
+ * The PEP editors review your PR for structure, formatting, and other errors.
154
+ * Once approved, they will assign your PEP a number, and label it as Standards
155
+ Track, Informational, or Process, and give it the status "Draft"
156
+
157
+ Once the review process is complete, and the PEP editors approve it (note that
158
+ this is *not* the same as accepting your PEP!), they will squash commit your
159
+ pull request onto master.
160
+
161
+ The PEP editors will not unreasonably deny a PEP. Reasons for denying PEP
162
+ status include duplication of effort, being technically unsound, not providing
163
+ proper motivation or addressing backwards compatibility, or not in keeping
164
+ with the Python philosophy. The BDFL can be consulted during the approval
165
+ phase, and is the final arbiter of the draft's PEP-ability.
166
+
167
+ Developers with git push privileges for the `PEP repository`_ may claim PEP
168
+ numbers directly by creating and committing a new PEP. When doing so, the
169
+ developer must handle the tasks that would normally be taken care of by the
170
+ PEP editors (see `PEP Editor Responsibilities & Workflow`_). This includes
171
+ ensuring the initial version meets the expected standards for submitting a
172
+ PEP. Alternately, even developers may choose to submit PEPs via pull request.
173
+ When doing so, let the PEP editors know you have git push privileges and they
174
+ can guide you through the process of updating the PEP repository directly.
164
175
165
176
As updates are necessary, the PEP author can check in new versions if they
166
- (or a collaborating developer) have git push privileges, or else they can
167
- email new PEP versions to the PEP editors for publication.
177
+ (or a collaborating developer) have git push privileges.
168
178
169
179
After a PEP number has been assigned, a draft PEP may be discussed further on
170
180
python-ideas (getting a PEP number assigned early can be useful for ease of
@@ -491,19 +501,22 @@ direction of the PEP. One aim of the PEP process is to try to build
491
501
consensus around a PEP, but if that's not possible, an author can always
492
502
submit a competing PEP.
493
503
494
- If you are interested in assuming ownership of a PEP, send a message
495
- asking to take over, addressed to both the original author and the PEP
496
- editors <peps@python.org>. If the original author doesn't respond to
497
- email in a timely manner, the PEP editors will make a unilateral
498
- decision (it's not like such decisions can't be reversed :).
504
+ If you are interested in assuming ownership of a PEP, you can also do this via
505
+ pull request. Fork the `PEP repository`_, make your ownership modification,
506
+ and submit a pull request. You should also send a message asking to take
507
+ over, addressed to both the original author and the PEP editors
508
+ <peps@python.org>. If the original author doesn't respond to email in a
509
+ timely manner, the PEP editors will make a unilateral decision (it's not like
510
+ such decisions can't be reversed :).
499
511
500
512
501
513
PEP Editor Responsibilities & Workflow
502
514
======================================
503
515
504
- A PEP editor must subscribe to the <peps@python.org> list. All
505
- correspondence related to PEP administration should be sent (or forwarded) to
506
- <peps@python.org> (but please do not cross-post!).
516
+ A PEP editor must subscribe to the <peps@python.org> list and must watch the
517
+ `PEP repository`_. Most correspondence regarding PEP administration can be
518
+ handled through GitHub issues and pull requests, but you may also use
519
+ <peps@python.org> for semi-private discussions. Please do not cross-post!
507
520
508
521
For each new PEP that comes in an editor does the following:
509
522
@@ -529,7 +542,7 @@ Once the PEP is ready for the repository, a PEP editor will:
529
542
Python 3 only, the process is back to using numbers in the 100s again.
530
543
Remember that numbers below 100 are meta-PEPs.)
531
544
532
- * Add the PEP to a local clone of the PEP repository. For workflow
545
+ * Add the PEP to a local fork of the PEP repository. For workflow
533
546
instructions, follow `The Python Developers Guide <http://docs.python.org/devguide>`_
534
547
535
548
The git repo for the peps is::
@@ -550,8 +563,8 @@ Once the PEP is ready for the repository, a PEP editor will:
550
563
* Send email back to the PEP author with next steps (post to
551
564
python-list & -dev).
552
565
553
- Updates to existing PEPs also come in to peps@python.org. Many PEP
554
- authors are not Python committers yet, so PEP editors do the commits for them .
566
+ Updates to existing PEPs should be submitted as a `GitHub pull request`_.
567
+ Questions may of course still be sent to <peps@python.org> .
555
568
556
569
Many PEPs are written and maintained by developers with write access
557
570
to the Python codebase. The PEP editors monitor the python-checkins
@@ -573,6 +586,7 @@ Resources:
573
586
* `Frequently Asked Questions for Developers
574
587
<http://docs.python.org/devguide/faq.html>`_
575
588
589
+
576
590
References and Footnotes
577
591
========================
578
592
@@ -606,6 +620,8 @@ References and Footnotes
606
620
607
621
.. _PEP repository: https://github.com/python/peps
608
622
623
+ .. _`GitHub pull request`: https://github.com/python/peps/pulls
624
+
609
625
610
626
Copyright
611
627
=========
0 commit comments