This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: clarify policy on updates to final peps
Type: enhancement Stage: resolved
Components: Devguide Versions:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: barry, berker.peksag, brett.cannon, chris.jerdonek, docs@python, eric.araujo, ezio.melotti, goodger, loewis, ncoghlan, python-dev, terry.reedy, willingc
Priority: normal Keywords: patch

Created on 2012-11-29 00:56 by chris.jerdonek, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
iss16574.patch willingc, 2015-04-18 10:43 devguide
Messages (21)
msg176598 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-11-29 00:56
This issue is to clarify the policy in PEP 1 regarding non-substantive changes to PEPs in the Final state (minor clarifications, rephrasings, etc).

Currently, PEP 1 says, "In general, Standards track PEPs are no longer modified after they have reached the Final state."

(from http://www.python.org/dev/peps/pep-0001/#pep-maintenance )

However, others have pointed out that minor clarifications and rephrasings are in fact allowed:

http://bugs.python.org/issue15990#msg176575

The updated wording should also state the policy or process regarding such changes (who is allowed to make them and whether and from whom approval is needed to make such changes, etc).
msg176603 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2012-11-29 01:49
I don't think this needs clarification. The status quo is fine.
msg176604 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-11-29 02:00
Are you saying that PEP 1 is correct and that Final PEPs should not be modified, or that the PEP isn't correct but that it shouldn't be modified?

If the latter, for someone new it's not clear whether minor clarifications are permitted and if so, how to go about making one.
msg176605 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-11-29 02:08
I think Brett edited PEP 302 a decade after its acceptance.
msg176609 - (view) Author: Barry A. Warsaw (barry) * (Python committer) Date: 2012-11-29 02:37
On Nov 29, 2012, at 12:56 AM, Chris Jerdonek wrote:

>
>Currently, PEP 1 says, "In general, Standards track PEPs are no longer
>modified after they have reached the Final state."

I agree w/mvl.  This is still true, and it doesn't mean PEPs can't be modified
after reaching Final state.
msg176611 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-11-29 02:39
Right, “in general” is good enough to capture what we do.  Chris, closing?
msg176612 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-11-29 02:46
Okay, so in a comment to issue 15990, Ezio suggested that some clarifying changes to PEP 362 might be worth making.  How would I (or someone else) go about doing that?  Where would they begin?

I think this recent e-mail from Nick applies:

http://mail.python.org/pipermail/python-dev/2012-November/122525.html
msg176614 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-11-29 02:53
By the way, I don't especially care if the clarification goes in the PEP itself or not.  What's more important is that it be documented *somewhere* (which could also be the devguide, for example).  My interest in knowing the process is genuine.
msg176618 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2012-11-29 03:19
Once PEPs reach their final status, I view them basically done if there is more official docs. For instance, I updated PEP 302 because the import and importlib docs were not as thorough as they are now thanks to Barry. But now that we have proper docs I don't plan to muck with PEP 302 anymore. That being said, I wouldn't object if someone chose to put the effort into updating PEP 302 in the future, I just won't.
msg176620 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-11-29 03:45
I think the gist here is that “in general” is good enough, given that there is unwritten consensus about what edits are possible in the developers’ heads.  Most of the time unwritten knowledge is not good, but (if I get what Martin and Barry mean correctly) for PEP rules this is fine.  We don’t want an over-detailed or inflexible process.

About the mail from Nick: it was talking about writing a new informational PEP, so I don’t see the link with final standards track PEPs.
msg176622 - (view) Author: Ezio Melotti (ezio.melotti) * (Python committer) Date: 2012-11-29 04:06
FTR the reason I suggested to modify PEP 362 is that we are linking to it from the docs.  This means that people will go and read the PEP looking for clarifications, so the PEP should be clear.  In this regard I see the PEP (or at least the relevant section) as documentation, and given that it's about an aspect of Python that is not going to change any time soon, it makes sense to get it right and keep referencing the PEP.
This doesn't normally apply to most of the other PEPs, especially if what they proposed is now documented on docs.python.org.

(On a side note, I now noticed that the parameter kinds are also documented in http://docs.python.org/dev/library/inspect.html#inspect.Parameter.kind, so we could link to that instead of linking to the PEP.)
msg176626 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-11-29 04:22
> I think the gist here is that “in general” is good enough, given that there is unwritten consensus about what edits are possible in the developers’ heads.

As I said, I'm okay with keeping the PEP as is (with "in general," etc) provided a clarification is documented elsewhere like in the devguide.  What I want to avoid are, as you say, there being "unwritten" rules about changing PEPs in the Final state.  (It was the general remarks about unwritten rules in Nick's e-mail that I felt were applicable.)

The written rules need not be overly-detailed or inflexible so long as they give newcomers without that common understanding a leg up on what to do.  It could be something as simple as "non-substantive changes to PEPs in the Final state should be treated like any other changes to the documentation" (or whatever the general process/criteria should be for such changes).
msg176632 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2012-11-29 05:49
Yeah, I agree the "in general" in PEP 1 is enough of a caveat.

The unwritten rules in this particular case are that if something in a PEP is important enough to be permanently referenced, then it's important enough to be part of the language spec (either the main language reference or the stdlib reference), or else it should be a versioned informational PEP that gets replaced when updated (e.g. the WSGI spec, DB-API, packaging metadata etc).

There have been a few PEPs, most notably the import PEPs, where that wasn't possible because such docs didn't exist, and documenting the existing system would have taken so many caveats that nobody was ever willing to do it. So PEP 302 became the de facto documentation for the modular part of the import system. Now that we have real docs in the language reference for 3.3+, PEP 302 will finally be able fade into irrelevance as a normative document.

Now that the import case is resolved, I can't think of any Final PEPs where we're likely to break the rules any more, unless it's just to update them with a link to the normative docs.
msg176640 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2012-11-29 12:16
1. I think that the PEP author has the final say as to what specific text goes into the PEP. Contributors shouldn't modify other people's PEP without consent from the author(s).

2. This holds for all stages, including the Final stage. If the PEP author wants to clarify/elaborate, they may; if they don't feel like it, they don't need to (even if the implementation later deviates from the PEP).

3. We should avoid to refer to PEPs for specification in the documentation. If there is a documentation issue proposing to update the PEP because it's referenced from the documentation, the right action should be to stop referencing it, and to incorporate the PEP text into the documentation (as needed).

4. Even without the "In general" cop-out, I think the PEP is fine as written. It doesn't say (as Chris suggested in msg176603) that Final PEPs *should not* be modified, but that they *are not* modified. PEP 1 describes an ideal process, nobody should be surprised that the real world does not always follow the ideal. My biggest complaint about PEP 1 not being followed is the "PEP authors are responsible for collecting community feedback" requirement. Editing Final PEPs is absolutely no concern to me, since the PEP has already achieved what it was written for. So even if this rule was regularly ignored, I'd still continue to be a happy contributor to Python.
msg176643 - (view) Author: Barry A. Warsaw (barry) * (Python committer) Date: 2012-11-29 12:27
On Nov 29, 2012, at 12:16 PM, Martin v. Löwis wrote:

>1. I think that the PEP author has the final say as to what specific text
>goes into the PEP. Contributors shouldn't modify other people's PEP without
>consent from the author(s).
>
>2. This holds for all stages, including the Final stage. If the PEP author
>wants to clarify/elaborate, they may; if they don't feel like it, they don't
>need to (even if the implementation later deviates from the PEP).
>
>3. We should avoid to refer to PEPs for specification in the
>documentation. If there is a documentation issue proposing to update the PEP
>because it's referenced from the documentation, the right action should be to
>stop referencing it, and to incorporate the PEP text into the documentation
>(as needed).
>
>4. Even without the "In general" cop-out, I think the PEP is fine as
>written. It doesn't say (as Chris suggested in msg176603) that Final PEPs
>*should not* be modified, but that they *are not* modified. PEP 1 describes
>an ideal process, nobody should be surprised that the real world does not
>always follow the ideal. My biggest complaint about PEP 1 not being followed
>is the "PEP authors are responsible for collecting community feedback"
>requirement. Editing Final PEPs is absolutely no concern to me, since the PEP
>has already achieved what it was written for. So even if this rule was
>regularly ignored, I'd still continue to be a happy contributor to Python.

I agree with all of this.  Occasionally PEPs themselves may leave open the
possibility for future additions or changes.  Release schedule PEPs are one
example.  PEP 425 is another example, where the PEP seems like the logical
choice for registering future tags.

All this is fine IMHO, and doesn't need any further clarification in PEP 1.
msg176675 - (view) Author: Chris Jerdonek (chris.jerdonek) * (Python committer) Date: 2012-11-29 22:57
Thanks for the feedback.  I will post here a devguide patch to include some of this information in the devguide.
msg217151 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2014-04-25 04:16
With respect to editing final peps, I think this issue should be closed. The current PEP 1 statement accurately describes what we do, which is that in general we do not edit final peps. Moreover, Chris has not submitted a patch and I doubt anyone else knows what he thought he might add or where,

The only related question I have is in relation to Martin's point 3.
https://docs.python.org/devguide/documenting.html#id3
has the following:

pep
    A reference to a Python Enhancement Proposal. This generates appropriate index entries. The text “PEP number” is generated; in the HTML output, this text is a hyperlink to an online copy of the specified PEP.

Should we add something like "Such links should not be a substitute for properly documenting the language in the manuals."
msg241408 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2015-04-18 10:43
This patch should close this languishing devguide issue. This patch adds wording suggested by Terry Reedy re: pep documentation reference to section 7.4.5 Inline markup (https://docs.python.org/devguide/documenting.html#id3).

The devguide covers the pep process and PEP 1 in section 20.1.2
(https://docs.python.org/devguide/langchanges.html?highlight=pep#pep-process).
msg241680 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2015-04-20 19:57
Patch LGTM.
msg241771 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-04-22 04:53
New changeset 0c4006b7c7ff by Berker Peksag in branch 'default':
Issue #16574: Clarify that once a PEP has implemented, it needs be
https://hg.python.org/devguide/rev/0c4006b7c7ff
msg241772 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2015-04-22 04:53
Thanks!
History
Date User Action Args
2022-04-11 14:57:38adminsetgithub: 60778
2015-04-22 04:53:32berker.peksagsetstatus: open -> closed

nosy: + berker.peksag
messages: + msg241772

resolution: fixed
stage: commit review -> resolved
2015-04-22 04:53:05python-devsetnosy: + python-dev
messages: + msg241771
2015-04-22 02:35:20willingcsetstage: patch review -> commit review
2015-04-20 19:57:55eric.araujosetmessages: + msg241680
2015-04-18 10:43:54willingcsetfiles: + iss16574.patch

nosy: + willingc
messages: + msg241408

keywords: + patch
stage: patch review
2014-04-25 04:16:56terry.reedysetnosy: + terry.reedy
messages: + msg217151
2012-11-29 22:57:05chris.jerdoneksetmessages: + msg176675
2012-11-29 12:27:04barrysetmessages: + msg176643
2012-11-29 12:16:36loewissetmessages: + msg176640
2012-11-29 05:49:02ncoghlansetmessages: + msg176632
components: + Devguide, - Documentation
2012-11-29 04:22:21chris.jerdoneksetmessages: + msg176626
2012-11-29 04:06:11ezio.melottisetmessages: + msg176622
2012-11-29 03:45:47eric.araujosetmessages: + msg176620
2012-11-29 03:19:49brett.cannonsetmessages: + msg176618
2012-11-29 02:53:08chris.jerdoneksetmessages: + msg176614
2012-11-29 02:46:21chris.jerdoneksetmessages: + msg176612
2012-11-29 02:39:46eric.araujosetmessages: + msg176611
2012-11-29 02:37:48barrysetmessages: + msg176609
2012-11-29 02:08:12eric.araujosetnosy: + brett.cannon
messages: + msg176605
2012-11-29 02:00:54chris.jerdoneksetmessages: + msg176604
2012-11-29 01:49:19loewissetnosy: + loewis
messages: + msg176603
2012-11-29 00:56:55chris.jerdonekcreate