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:
parent
47dfcc030e
commit
db53747aa8
102
pep-8015.rst
102
pep-8015.rst
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue