PEP 8015: Committee has 5 members (#837)

* PEP 8015: Committee has 5 members

* The Steering Committee is now made of 5 people instead of 3.
* There are no term limits (instead of a limit of 2 mandates:
  6 years in total).
* When a Steering Committee member moves to the same company than
  other members, they don't have to resign anymore.
* A committee member can now be a PEP delegate.

* keep constraint on employer

* Remove outdated sentence
This commit is contained in:
Victor Stinner 2018-11-15 12:12:29 +01:00 committed by Łukasz Langa
parent 47dfcc030e
commit db53747aa8
1 changed files with 56 additions and 46 deletions

View File

@ -15,11 +15,11 @@ proposes 3 main changes:
* Formalize the existing concept of "Python teams"; * Formalize the existing concept of "Python teams";
* Give more autonomy to Python teams; * Give more autonomy to Python teams;
* Replace the BDFL (Guido van Rossum) with a new "Python Steering * Replace the BDFL (Guido van Rossum) with a new "Python Steering
Committee" of 3 members which have limited roles. Their key role is Committee" of 5 members which has limited roles: basically decide how
mostly to decide how a PEP is approved (or rejected or deferred), decisions are taken, but don't take decisions.
but not to approve PEPs.
Note: the "BDFL-delegate" role is renamed to "PEP delegate". PEPs are approved by a PEP delegate or by a vote (reserved to core
developers, need ``>= 2/3`` majority).
Rationale Rationale
@ -180,9 +180,22 @@ developers since it has the most decision power. The roles of this group
are strictly limited to ensure that Python keeps its autonomy and are strictly limited to ensure that Python keeps its autonomy and
remains open. remains open.
Steering Committee members are elected for 3 years, a member is replaced The Python Steering Committee is composed of 5 members. They are elected
every year. This way, a member will stay for one full Python release and for 3 years and 1/3 is replaced every year (first year: 1, second year:
the committee composition will be updated frequently. 2, third year: 2). This way, a member will stay for one full Python
release and the committee composition will be updated frequently. A
committee member can be a candidate for the seat they are leaving.
There are no term limits.
Committee members must be Python core developers. It is important that
the members of the committee reflect the diversity of Python' users and
contributors. A small step to ensure that is to enforce that only 2
members (strictly less than 50% of the 5 members) can work for the same
employer (same company or subsidiaries of the same company).
The size of 5 members has been chosen for the members diversity and to
ensure that the committee can continue to work even if a member becomes
unavailable for an unknown duration.
Python Steering Committee Roles Python Steering Committee Roles
------------------------------- -------------------------------
@ -213,19 +226,6 @@ delegates is meant to help them to achieve that goal.
Election of Python Steering Committee Members Election of Python Steering Committee Members
--------------------------------------------- ---------------------------------------------
The Python Steering Committee is composed of 3 members. They are elected
for three year terms, and each year a member is replaced. A committee
member can be a candidate for the seat they are leaving (with a total
limit of 2 mandates, see below).
Committee members must be Python core developers. It is important that
the members of the committee reflect the diversity of Python' users and
contributors. A small step to ensure that is to enforce that two members
cannot work for the same company (or subsidiaries of the same company).
In addition, to encourage more people to get involved, a core developer
can only be a committee member twice in their whole life (up to 6 years
total), it can be two mandates in a row.
The vote is organized by the Steering Committee. It is announced 3 weeks The vote is organized by the Steering Committee. It is announced 3 weeks
in advance: candidates have to apply during this period. The vote is in advance: candidates have to apply during this period. The vote is
reserved to core developers and is open for 1 week. To avoid reserved to core developers and is open for 1 week. To avoid
@ -243,27 +243,29 @@ creation of the committee.
In case of tie, a new vote is organized immediately between candidates In case of tie, a new vote is organized immediately between candidates
involved in the tie using the same voting method and also during 1 week. involved in the tie using the same voting method and also during 1 week.
If the second vote leads to a tie again, the current Steering Committee If the second vote leads to a tie again, the current Steering Committee
is responsible to seleect the elected member. is responsible to select the elected member(s).
If a committee member steps down, a new vote is organized to replace
them.
If a committee member steps down, a new vote is organized to replace them.
If the situation of a committee member changes in a way that no longer If the situation of a committee member changes in a way that no longer
satisfies the committee constraint (eg: they move to the same company as satisfies the committee constraint (ex: they move to the same company as
another committee member), they have to resign. If the employer of a two other committee members), they have to resign. If the employer of a
member is acquired by the employer of another member, the member with member is acquired by the employer of two other members, the member with
the mandate ending earlier has to resign once the acquisition completes. the mandate ending earlier has to resign once the acquisition completes.
Election Creating the Python Steering Committee Members Election Creating the Python Steering Committee Members
------------------------------------------------------- -------------------------------------------------------
To bootstrap the process, 3 members will be elected at the committee To bootstrap the process, 5 members are elected at the committee
creation. The vote follow the same rules than regular committee votes, creation. The vote follows the same rules than regular committee votes,
except that the election needs 3 members, and the vote is organized by except that the election needs 5 members, and the vote is organized by
the PSF Board. the PSF Board.
If two candidates that should be elected are working for the same In a council election, if 3 of the top 5 vote-getters work for the
company, only the first in the vote result is elected, the second is not same employer, then whichever of them ranked lowest is disqualified
elected, but the following candidate in the order of the vote result is and the 6th-ranking candidate moves up into 5th place; this is
elected. repeated until a valid council is formed.
In case of tie, a second vote is organized immediately between In case of tie, a second vote is organized immediately between
candidates involved in the tie and following candidates to fill the candidates involved in the tie and following candidates to fill the
@ -272,34 +274,35 @@ committee vote. If the second vote still result in a tie, the PSF Board
is responsible to elect members and decide their position in the vote is responsible to elect members and decide their position in the vote
result. result.
The order in the vote result must be unique for elected members: the The order in the vote result must be unique for elected members: #1 and
first is elected for 3 years, the second for 2 years, and the third for #2 are elected for 3 years, #2 and #3 for 2 years, and #5 for 1 year.
1 year.
Example of vote result with a tie: Example of vote result with a tie:
* A * A
* B, C * B
* C
* D * D
* E * E, F
* G
* ... * ...
Candidate A is elected immediately, but a second vote is organized The first 4 candidates (A, B, C and D) are elected immediately. If E
between B and C. If A and B are working for the same company, A (1st), C works for the same employer than two other elected member, F is also
(2nd) and D (3rd) are elected, but B is not elected. elected. Otherwise, a second vote is organized for the 5th seat between
E and F.
Special Case: Steering Committee Members And PEPs Special Case: Steering Committee Members And PEPs
------------------------------------------------- -------------------------------------------------
A committee member cannot be a PEP delegate. A committee member can be a PEP delegate.
A committee member can propose a PEP, but cannot decide how their own PEP A committee member can propose a PEP, but cannot be the PEP delegate of
is approved. In this case, the two other board members decide how this their own PEP.
PEP is approved.
When the committee decides that a PEP must be voted, committee members When the committee decides that a PEP must be voted, committee members
can vote as they are also core developers, but they don't have more can vote as they are also core developers, but they don't have more
power than any other core developer. power than other core developer.
PSF Code of Conduct Workgroup PSF Code of Conduct Workgroup
@ -476,7 +479,7 @@ the stdlib diverges in newer stable branches).
Mentorship Team Mentorship Team
--------------- ---------------
Becoming a core developer is long and slow process. Mentorship an an Becoming a core developer is long and slow process. Mentorship is an
efficient way to train contributors as future core developers and build efficient way to train contributors as future core developers and build
a trust relationship. a trust relationship.
@ -579,6 +582,13 @@ Version History
History of this PEP: History of this PEP:
* Version 7: Adjust the Steering Committee
* The Steering Committee is now made of 5 people instead of 3.
* There are no term limits (instead of a limit of 2 mandates:
6 years in total).
* A committee member can now be a PEP delegate.
* Version 6: Adjust votes * Version 6: Adjust votes
* Specify the Condorcet method: use Schulze/Beatpath/CSSD variant to * Specify the Condorcet method: use Schulze/Beatpath/CSSD variant to