Change language from BDFL-Delegate to PEP-Delegate (#1672)

This commit is contained in:
Hugo van Kemenade 2020-10-26 20:48:42 +02:00 committed by GitHub
parent 5f8209da52
commit a169cac7d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 17 deletions

View File

@ -94,11 +94,12 @@ the currently active Python core team members described in PEP 13 [5]_.
Python's BDFL Python's BDFL
------------- -------------
This PEP still uses the title "BDFL-Delegate" for PEP decision makers. This is Previous versions of this PEP used the title "BDFL-Delegate" for PEP decision makers. This was
a historical reference to Python's previous governance model, where all design a historical reference to Python's previous governance model, where all design
authority ultimately derived from Guido van Rossum, the original creator of the authority ultimately derived from Guido van Rossum, the original creator of the
Python programming language. By contrast, the Steering Council's design Python programming language. By contrast, the Steering Council's design
authority derives from their election by the currently active core developers. authority derives from their election by the currently active core developers.
Now, PEP-Delegate is used in place of BDFL-Delegate.
PEP Editors PEP Editors
@ -166,7 +167,7 @@ Ideally, a core developer sponsor is identified, but non-core sponsors may also
be selected with the approval of the Steering Council. The sponsor's job is to be selected with the approval of the Steering Council. The sponsor's job is to
provide guidance to the PEP author to help them through the logistics of the provide guidance to the PEP author to help them through the logistics of the
PEP process (somewhat acting like a mentor). Being a sponsor does **not** PEP process (somewhat acting like a mentor). Being a sponsor does **not**
disqualify that person from becoming a co-author or BDFL-Delegate later on (but disqualify that person from becoming a co-author or PEP-Delegate later on (but
not both). The sponsor of a PEP is recorded in the "Sponsor:" field of the not both). The sponsor of a PEP is recorded in the "Sponsor:" field of the
header. header.
@ -275,33 +276,33 @@ notifying the PEP author(s) and giving them a chance to make revisions.
The final authority for PEP approval is the Steering Council. However, whenever The final authority for PEP approval is the Steering Council. However, whenever
a new PEP is put forward, any core developer that believes they are suitably 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 experienced to make the final decision on that PEP may offer to serve as
the BDFL-Delegate for that PEP, and they will then have the authority to approve the PEP-Delegate for that PEP, and they will then have the authority to approve
(or reject) that PEP. Individuals taking on this responsibility are free to seek (or reject) that PEP. Individuals taking on this responsibility are free to seek
additional guidance from the Steering Council at any time, and are also expected additional guidance from the Steering Council at any time, and are also expected
to take the advice and perspectives of other core developers into account. to take the advice and perspectives of other core developers into account.
The designated decision maker for each PEP is recorded in the "BDFL-Delegate" The designated decision maker for each PEP is recorded in the "PEP-Delegate"
header in the PEP. header in the PEP.
Such self-nominations are accepted by default, but may be explicitly declined by Such self-nominations are accepted by default, but may be explicitly declined by
the Steering Council. Possible reasons for the Steering Council declining a the Steering Council. Possible reasons for the Steering Council declining a
self-nomination as BDFL-Delegate include, but are not limited to, perceptions of self-nomination as PEP-Delegate include, but are not limited to, perceptions of
a potential conflict of interest (e.g. working for the same organisation as the a potential conflict of interest (e.g. working for the same organisation as the
PEP submitter), or simply considering another potential BDFL-Delegate to be PEP submitter), or simply considering another potential PEP-Delegate to be
more appropriate. If core developers (or other community members) have concerns more appropriate. If core developers (or other community members) have concerns
regarding the suitability of a BDFL-Delegate for any given PEP, they may ask regarding the suitability of a PEP-Delegate for any given PEP, they may ask
the Steering Council to review the delegation. the Steering Council to review the delegation.
If no volunteer steps forward, then the Steering Council will approach core If no volunteer steps forward, then the Steering Council will approach core
developers (and potentially other Python community members) with relevant developers (and potentially other Python community members) with relevant
expertise, in an attempt to identify a candidate that is willing to serve as expertise, in an attempt to identify a candidate that is willing to serve as
BDFL-Delegate for that PEP. If no suitable candidate can be found, then the PEP-Delegate for that PEP. If no suitable candidate can be found, then the
PEP will be marked as Deferred until one is available. PEP will be marked as Deferred until one is available.
Previously appointed BDFL-Delegates may choose to step down, or be asked to step Previously appointed PEP-Delegates may choose to step down, or be asked to step
down by the Council, in which case a new BDFL-Delegate will be appointed in the down by the Council, in which case a new PEP-Delegate will be appointed in the
same manner as for a new PEP (including deferral of the PEP if no suitable same manner as for a new PEP (including deferral of the PEP if no suitable
replacement can be found). In the event that a BDFL-Delegate is asked to step replacement can be found). In the event that a PEP-Delegate is asked to step
down, this will overrule any prior acceptance or rejection of the PEP, and it down, this will overrule any prior acceptance or rejection of the PEP, and it
will revert to Draft status. will revert to Draft status.
@ -517,7 +518,7 @@ optional and are described below. All other headers are required. ::
Title: <pep title> Title: <pep title>
Author: <list of authors' real names and optionally, email addrs> Author: <list of authors' real names and optionally, email addrs>
* Sponsor: <real name of sponsor> * Sponsor: <real name of sponsor>
* BDFL-Delegate: <PEP czar's real name> * PEP-Delegate: <PEP delegate's real name>
* Discussions-To: <email address> * Discussions-To: <email address>
Status: <Draft | Active | Accepted | Provisional | Deferred | Rejected | Status: <Draft | Active | Accepted | Provisional | Deferred | Rejected |
Withdrawn | Final | Superseded> Withdrawn | Final | Superseded>
@ -556,7 +557,7 @@ Steering Council) is sponsoring the PEP. If one of the authors of the PEP is a
core developer then no sponsor is necessary and thus this field should be left core developer then no sponsor is necessary and thus this field should be left
out. out.
The BDFL-Delegate field is used to record the individual appointed by the The PEP-Delegate field is used to record the individual appointed by the
Steering Council to make the final decision on whether or not to approve or Steering Council to make the final decision on whether or not to approve or
reject a PEP. (The delegate's email address is currently omitted due to a reject a PEP. (The delegate's email address is currently omitted due to a
limitation in the email address masking for reStructuredText PEPs) limitation in the email address masking for reStructuredText PEPs)

View File

@ -162,7 +162,7 @@ your PEP)::
Title: [...] Title: [...]
Author: [Full Name <email at example.com>] Author: [Full Name <email at example.com>]
Sponsor: *[Full Name <email at example.com>] Sponsor: *[Full Name <email at example.com>]
BDFL-Delegate: PEP-Delegate:
Discussions-To: *[...] Discussions-To: *[...]
Status: Draft Status: Draft
Type: [Standards Track | Informational | Process] Type: [Standards Track | Informational | Process]

View File

@ -162,6 +162,7 @@ class PEP(object):
headers = (('PEP', True), ('Title', True), ('Version', False), headers = (('PEP', True), ('Title', True), ('Version', False),
('Last-Modified', False), ('Author', True), ('Last-Modified', False), ('Author', True),
('Sponsor', False), ('BDFL-Delegate', False), ('Sponsor', False), ('BDFL-Delegate', False),
('PEP-Delegate', False),
('Discussions-To', False), ('Status', True), ('Type', True), ('Discussions-To', False), ('Status', True), ('Type', True),
('Content-Type', False), ('Requires', False), ('Content-Type', False), ('Requires', False),
('Created', True), ('Python-Version', False), ('Created', True), ('Python-Version', False),

View File

@ -219,7 +219,8 @@ def fixfile(inpath, input_lines, outfile):
print('</td></tr></table>', file=outfile) print('</td></tr></table>', file=outfile)
print('<div class="header">\n<table border="0">', file=outfile) print('<div class="header">\n<table border="0">', file=outfile)
for k, v in header: for k, v in header:
if k.lower() in ('author', 'bdfl-delegate', 'discussions-to', 'sponsor'): if k.lower() in ('author', 'pep-delegate', 'bdfl-delegate', 'discussions-to',
'sponsor'):
mailtos = [] mailtos = []
for part in re.split(r',\s*', v): for part in re.split(r',\s*', v):
if '@' in part: if '@' in part:
@ -401,7 +402,7 @@ class PEPHeaders(Transform):
# empty # empty
continue continue
para = body[0] para = body[0]
if name in ('author', 'bdfl-delegate', 'sponsor'): if name in ('author', 'bdfl-delegate', 'pep-delegate', 'sponsor'):
for node in para: for node in para:
if isinstance(node, nodes.reference): if isinstance(node, nodes.reference):
node.replace_self(peps.mask_email(node)) node.replace_self(peps.mask_email(node))

View File

@ -208,7 +208,7 @@ def fixfile(inpath, input_lines, outfile):
print >> outfile, COMMENT print >> outfile, COMMENT
print >> outfile, '<div class="header">\n<table border="0" class="rfc2822">' print >> outfile, '<div class="header">\n<table border="0" class="rfc2822">'
for k, v in header: for k, v in header:
if k.lower() in ('author', 'bdfl-delegate', 'discussions-to'): if k.lower() in ('author', 'bdfl-delegate', 'pep-delegate', 'discussions-to'):
mailtos = [] mailtos = []
for part in re.split(',\s*', v): for part in re.split(',\s*', v):
if '@' in part: if '@' in part: