[Python-checkins] peps: Update PEP 1 to better reflect current practice

nick.coghlan python-checkins at python.org
Sat May 5 14:57:09 CEST 2012


http://hg.python.org/peps/rev/bdbbd3ce97d9
changeset:   4355:bdbbd3ce97d9
user:        Nick Coghlan <ncoghlan at gmail.com>
date:        Sat May 05 22:56:57 2012 +1000
summary:
  Update PEP 1 to better reflect current practice

files:
  pep-0001.txt |  54 +++++++++++++++++++++++++++++++--------
  1 files changed, 43 insertions(+), 11 deletions(-)


diff --git a/pep-0001.txt b/pep-0001.txt
--- a/pep-0001.txt
+++ b/pep-0001.txt
@@ -2,12 +2,12 @@
 Title: PEP Purpose and Guidelines
 Version: $Revision$
 Last-Modified: $Date$
-Author: Barry Warsaw, Jeremy Hylton, David Goodger
+Author: Barry Warsaw, Jeremy Hylton, David Goodger, Nick Coghlan
 Status: Active
 Type: Process
 Content-Type: text/x-rst
 Created: 13-Jun-2000
-Post-History: 21-Mar-2001, 29-Jul-2002, 03-May-2003
+Post-History: 21-Mar-2001, 29-Jul-2002, 03-May-2003, 05-May-2012
 
 
 What is a PEP?
@@ -60,6 +60,9 @@
 PEP Work Flow
 =============
 
+Submitting a PEP
+----------------
+
 The PEP editors assign PEP numbers and change their status.  Please send
 all PEP-related email to <peps at python.org> (no cross-posting please).
 Also see `PEP Editor Responsibilities & Workflow`_ below.
@@ -115,6 +118,11 @@
 Dictator for Life, Guido van Rossum) can be consulted during the
 approval phase, and is the final arbiter of the draft's PEP-ability.
 
+Developers with commit privileges for the `PEP repository`_ may claim
+PEP numbers directly by creating and committing a new PEP. When doing so,
+the developer must handle the tasks that would normally be taken care of by
+the PEP editors (see `PEP Editor Responsibilities & Workflow`_).
+
 As updates are necessary, the PEP author can check in new versions if
 they have hg push privileges, or can email new PEP versions to
 the PEP editor for committing.
@@ -134,6 +142,9 @@
 private comments in the early design phases, setting up a wiki page, etc.
 PEP authors should use their discretion here.
 
+PEP Review & Resolution
+-----------------------
+
 Once the authors have completed a PEP, they must inform the PEP editor
 that it is ready for review.  PEPs are reviewed by the BDFL and his
 chosen consultants, who may accept or reject a PEP or send it back to
@@ -143,6 +154,16 @@
 first notifying the PEP author(s) and giving them a chance to make
 revisions.
 
+The final authority for PEP approval is the BDFL. However, whenever a new
+PEP is put forward, any core developer that believes they are suitably
+experienced to make the final decision on that PEP may offer to serve as
+the "PEP czar" for that PEP. If their self-nomination is accepted by the
+other core developers and the BDFL, then they will have the authority to
+approve (or reject) that PEP. This process happens most frequently with PEPs
+where the BDFL has granted in principle approval for *something* to be done,
+but there are details that need to be worked out before the PEP can be
+accepted.
+
 For a PEP to be accepted it must meet certain minimum criteria.  It
 must be a clear and complete description of the proposed enhancement.
 The enhancement must represent a net improvement.  The proposed
@@ -154,8 +175,8 @@
 standard library module acceptance criteria.
 
 Once a PEP has been accepted, the reference implementation must be
-completed.  When the reference implementation is complete and accepted
-by the BDFL, the status will be changed to "Final".
+completed.  When the reference implementation is complete and incorporated
+into the main source code repository, the status will be changed to "Final".
 
 A PEP can also be assigned status "Deferred".  The PEP author or
 editor can assign the PEP this status when no progress is being made
@@ -164,7 +185,14 @@
 
 A PEP can also be "Rejected".  Perhaps after all is said and done it
 was not a good idea.  It is still important to have a record of this
-fact.
+fact. The "Withdrawn" status is similar - it means that the PEP author
+themselves has decided that the PEP is actually a bad idea, or has
+accepted that a competing proposal is a better alternative.
+
+When a PEP is Accepted, Rejected or Withdrawn, the PEP should be updated
+accordingly. In addition to updating the status field, at the very least
+the Resolution header should be added with a link to the relevant post
+in the python-dev mailing list archives.
 
 PEPs can also be superseded by a different PEP, rendering the original
 obsolete.  This is intended for Informational PEPs, where version 2 of
@@ -420,17 +448,19 @@
   Python 3 only, we're back to using numbers in the 100s again.
   Remember that numbers below 100 are meta-PEPs.)
 
-* List the PEP in PEP 0 (in two places: the categorized list, and the
-  numeric list).
-
-* Add the PEP to Mercurial.  For mercurial work flow instructions, follow
-  `The Python Developers Guide <http://docs.python.org/devguide>`_
+* Add the PEP to a local clone of the PEP repository.  For mercurial work
+  flow instructions, follow `The Python Developers Guide <http://docs.python.org/devguide>`_
 
   The mercurial repo for the peps is::
 
     http://hg.python.org/peps/
 
+* Run ``./genpepindex.py`` and ``./pep2html.py <PEP Number>`` to ensure they
+  are generated without errors. If either triggers errors, then the web site
+  will not be updated to reflect the PEP changes.
 
+* Commit and push the new (or updated) PEP
+    
 * Monitor python.org to make sure the PEP gets added to the site
   properly.
 
@@ -438,7 +468,7 @@
   python-list & -dev).
 
 Updates to existing PEPs also come in to peps at python.org.  Many PEP
-authors are not Python committers yet, so we do the commits for them.
+authors are not Python committers yet, so PEP editors do the commits for them.
 
 Many PEPs are written and maintained by developers with write access
 to the Python codebase.  The PEP editors monitor the python-checkins
@@ -492,6 +522,8 @@
 
 .. _Docutils: http://docutils.sourceforge.net/
 
+.. _PEP repository: http://hg.python.org/peps
+
 
 Copyright
 =========

-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list