diff options
Diffstat (limited to 'pod/perlgov.pod')
-rw-r--r-- | pod/perlgov.pod | 531 |
1 files changed, 531 insertions, 0 deletions
diff --git a/pod/perlgov.pod b/pod/perlgov.pod new file mode 100644 index 0000000000..2a500def45 --- /dev/null +++ b/pod/perlgov.pod @@ -0,0 +1,531 @@ +=encoding utf-8 + +=head1 NAME + +perlgov - Perl Rules of Governance + +=head2 PREAMBLE + +We are forming a system of governance for development of the Perl programming +language. + +The scope of governance includes the language definition, its +implementation, its test suite, its documentation, and the policies and +procedures by which it is developed and maintained. + +The system of governance includes definitions of the groups that will make +decisions, the rules by which these groups are formed and changed, and the +enumerated powers and constraints on the activities of these governing +groups. + +In forming a system of governance, we seek to achieve the following goals: + +=over + +=item * + +We want a system that is functional. That means the governing groups may +decide to undertake large changes, or they may decide to act conservatively, +but they will act with intent and clear communication rather than fail to reach +decisions when needed. + +=item * + +We want a system that is trusted. That means that a reasonable contributor to +Perl might disagree with decisions made by the governing groups, but will +accept that they were made in good faith in consultation with relevant +communities outside the governing groups. + +=item * + +We want a system that is sustainable. That means it has provisions to +self-modify, including ways of adding new members to the governing groups, ways +to survive members becoming inactive, and ways of amending the rules of +governance themselves if needed. + +=item * + +We want a system that is transparent. That means that it will prefer policies +that manage ordinary matters in public, and it will prefer secrecy in a limited +number of situations. + +=item * + +We want a system that is respectful. That means that it will establish +standards of civil discourse that allow for healthy disagreement but avoid +rancor and hostility in the community for which it is responsible. + +=back + +=head1 Mandate + +Perl language governance shall work to: + +=over + +=item * + +Maintain the quality, stability, and continuity of the Perl language and +interpreter + +=item * + +Guide the evolution of the Perl language and interpreter + +=item * + +Establish and oversee the policies, procedures, systems, and mechanisms that +enable a community of contributors to the Perl language and interpreter + +=item * + +Encourage discussion and consensus among contributors as preferential to formal +decision making by governance groups + +=item * + +Facilitate communication between contributors and external stakeholders in the +broader Perl ecosystem + +=back + +=head1 Definitions + +This document describes three roles involved in governance: + +=over + +=item "Core Team" + +=item "Steering Council" + +=item "Vote Administrator" + +=back + +A section on each follows. + +=head2 The Core Team + +The Core Team are a group of trusted volunteers involved in the ongoing +development of the Perl language and interpreter. They are not required to be +language developers or committers. + +References to specific votes are explained in the "Rules for Voting" section. + +=head3 Powers + +In addition to their contributions to the Perl language, the Core Team sets +the rules of Perl governance, decides who participates in what role in +governance, and delegates substantial decision making power to the Steering +Council. + +Specifically: + +=over + +=item * + +They elect the Steering Council and have the power to remove Steering +Council members. + +=item * + +In concert with the Steering Council, they manage Core Team membership. + +=item * + +In concert with the Steering Council, they have the power to modify the Perl +Rules of Governance. + +=back + +The Core Team do not have any authority over parts of the Perl ecosystem +unrelated to developing and releasing the language itself. These include, but +are not limited to: + +=over + +=item * + +The Perl Foundation + +=item * + +CPAN administration and CPAN authors + +=item * + +perl.org, metacpan.org, and other community-maintained websites and services + +=item * + +Perl conferences and events, except those organized directly by Core Team + +=item * + +Perl-related intellectual property legally owned by third-parties, except as +allowed by applicable licenses or agreements. + +=back + +=head3 Membership + +The initial Core Team members will be specified when this document is +first ratified. + +Any Core Team member may nominate someone to be added to the Core Team by +sending the nomination to the Steering Council. The Steering Council must +approve or reject the nomination. If approved, the Steering Council will +organize a Membership Change Vote to ratify the addition. + +Core Team members should demonstrate: + +=over + +=item * + +A solid track record of being constructive and helpful + +=item * + +Significant contributions to the project's goals, in any form + +=item * + +Willingness to dedicate some time to improving Perl + +=back + +Contributions are not limited to code. Here is an incomplete list of areas +where contributions may be considered for joining the Core Team: + +=over + +=item * + +Working on community management and outreach + +=item * + +Providing support on mailing lists, IRC, or other forums + +=item * + +Triaging tickets + +=item * + +Writing patches (code, docs, or tests) + +=item * + +Reviewing patches (code, docs, or tests) + +=item * + +Participating in design discussions + +=item * + +Providing expertise in a particular domain (security, i18n, etc.) + +=item * + +Managing Perl infrastructure (websites, CI, documentation, etc.) + +=item * + +Maintaining significant projects in the Perl ecosystem + +=item * + +Creating visual designs + +=back + +Core Team membership acknowledges sustained and valuable efforts that align +well with the philosophy and the goals of the Perl project. + +Core Team members are expected to act as role models for the community and +custodians of the project, on behalf of the community and all those who rely +on Perl. + +=head3 Term + +Core Team members serve until they are removed. + +=head3 Removal + +Core Team Members may resign their position at any time. + +In exceptional circumstances, it may be necessary to remove someone from the +Core Team against their will, such as for flagrant or repeated violations of a +Code of Conduct. Any Core Team member may send a recall request to the +Steering Council naming the individual to be removed. The Steering Council +must approve or reject the recall request. If approved, the Steering Council +will organize a Membership Change vote to ratify the removal. + +If the removed member is also on the Steering Council, then they are removed +from the Steering Council as well. + +=head3 Inactivity + +Core Team members who have stopped contributing are encouraged to declare +themselves "inactive". Inactive members do not nominate or vote. Inactive +members may declare themselves active at any time, except when a vote has been +proposed and is not concluded. Eligibility to nominate or vote will be +determined by the Vote Administrator. + +To record and honor their contributions, inactive Core Team members will +continue to be listed alongside active members. + +=head3 No Confidence in the Steering Council + +The Core Team may remove either a single Steering Council member or the entire +Steering Council via a No Confidence Vote. + +A No Confidence Vote is triggered when a Core Team member calls for one +publicly on an appropriate project communication channel, and another Core +Team member seconds the proposal. + +If a No Confidence Vote removes all Steering Council members, the Vote +Administrator of the No Confidence Vote will then administer an election +to select a new Steering Council. + +=head3 Amending Perl Rules of Governance + +Any Core Team member may propose amending the Perl Rules of Governance by +sending a proposal to the Steering Council. The Steering Council must decide +to approve or reject the proposal. If approved, the Steering Council will +administer an Amendment Vote. + +=head3 Rules for Voting + +Membership Change, Amendment, and No Confidence Votes require 2/3 of +participating votes from Core Team members to pass. + +A Vote Administrator must be selected following the rules in the "Vote +Administrator" section. + +The vote occurs in two steps: + +=over + +=item 1 + +The Vote Administrator describes the proposal being voted upon. The Core Team +then may discuss the matter in advance of voting. + +=item 2 + +Active Core Team members vote in favor or against the proposal. Voting is +performed anonymously. + +=back + +For a Membership Change Vote, each phase will last one week. For Amendment and +No Confidence Votes, each phase will last two weeks. + +=head2 The Steering Council + +The Steering Council is a 3-person committee, elected by the Core +Team. Candidates are not required to be members of the Core Team. Non-member +candidates are added to the Core Team if elected as if by a Membership Change +Vote. + +References to specific elections are explained in the "Rules for Elections" section. + +=head3 Powers + +The Steering Council has broad authority to make decisions about the +development of the Perl language, the interpreter, and all other components, +systems and processes that result in new releases of the language interpreter. + +For example, it can: + +=over + +=item * + +Manage the schedule and process for shipping new releases + +=item * + +Establish procedures for proposing, discussing and deciding upon changes to the +language + +=item * + +Delegate power to individuals on or outside the Steering Council + +=back + +Decisions of the Steering Council will be made by majority vote of non-vacant +seats on the council. + +The Steering Council should look for ways to use these powers as little as +possible. Instead of voting, it's better to seek consensus. Instead of ruling +on individual cases, it's better to define standards and processes that apply +to all cases. + +As with the Core Team, the Steering Council does not have any authority over +parts of the Perl ecosystem unrelated to developing and releasing the language +itself. + +The Steering Council does not have the power to modify the Perl Rules of +Governance, except as provided in the section "Amending Perl Rules of +Governance". + +=head3 Term + +A new Steering Council will be chosen by a Term Election within two weeks after +each stable feature release (that is, change to C<PERL_REVISION> or +C<PERL_VERSION>) or after two years, whichever comes first. The council members +will serve until the completion of the next Term Election unless they are +removed. + +=head3 Removal + +Steering Council members may resign their position at any time. + +Whenever there are vacancies on the Steering Council, the council will +organize a Special Election within one week after the vacancy occurs. If the +entire Steering Council is ever vacant, a Term Election will be held instead. + +If a Steering Council member is deceased, or drops out of touch and cannot be +contacted for a month or longer, then the rest of the council may vote to +declare their seat vacant. If an absent member returns after such a +declaration is made, they are not reinstated automatically, but may run in the +Special Election to fill the vacancy. + +Otherwise, Steering Council members may only be removed before the end of +their term through a No Confidence Vote by the Core Team. + +=head3 Rules for Elections + +Term and Special Election are ranked-choice votes to construct an ordered list +of candidates to fill vacancies in the Steering Council. + +A Vote Administrator must be selected following the rules in the "Vote +Administrator" section. + +Both Term and Special Elections occur in two stages: + +=over + +=item 1 + +Candidates advertise their interest in serving. Candidates must be nominated by +an active Core Team member. Self-nominations are allowed. Nominated candidates +may share a statement about their candidacy with the Core Team. + +=item 2 + +Active Core Team Members vote by ranking all candidates. Voting is performed +anonymously. After voting is complete, candidates are ranked using the +Condorcet Internet Voting Service's proportional representation mode. If a tie +occurs, it may be resolved by mutual agreement among the tied candidates, or +else the tie will be resolved through random selection by the Vote +Administrator. + +=back + +Anyone voted off the Core Team is not eligible to be a candidate for Steering +Council unless re-instated to the Core Team. + +For a Term Election, each phase will last two weeks. At the end of the second +phase, the top three ranked candidates are elected as the new Steering Council. + +For a Special Election, each phase will last one week. At the end of the +second phase, vacancies are filled from the ordered list of candidates until +no vacancies remain. + +The election of the first Steering Council will be a Term Election. Ricardo +Signes will be the Vote Administrator for the initial Term Election unless he +is a candidate, in which case he will select a non-candidate administrator to +replace him. + +=head2 The Vote Administrator + +Every election or vote requires a Vote Administrator who manages +communication, collection of secret ballots, and all other necessary +activities to complete the voting process. + +Unless otherwise specified, the Steering Council selects the Vote +Administrator. + +A Vote Administrator must not be a member of the Steering Council nor a +candidate or subject of the vote. A Vote Administrator may be a member of the +Core Team and, if so, may cast a vote while also serving as administrator. If +the Vote Administrator becomes a candidate during an election vote, they will +appoint a non-candidate replacement. + +If the entire Steering Council is vacant or is the subject of a No Confidence +Vote, then the Core Team will select a Vote Administrator by consensus. If +consensus cannot be reached within one week, the President of The Perl +Foundation will select a Vote Administrator. + +=head1 Core Team Members + +The current members of the Perl Core Team are: + +=over + +=item * Abhijit Menon-Sen (inactive) + +=item * Andy Dougherty + +=item * Chad Granum + +=item * Chris 'BinGOs' Williams + +=item * Craig Berry + +=item * Dagfinn Ilmari Mannsåker + +=item * Dave Mitchell + +=item * David Golden + +=item * H. Merijn Brand + +=item * Hugo van der Sanden + +=item * James E Keenan + +=item * Jan Dubois (inactive) + +=item * Jesse Vincent (inactive) + +=item * Karen Etheridge + +=item * Karl Williamson + +=item * Leon Timmermans + +=item * Matthew Horsfall + +=item * Max Maischein + +=item * Nicholas Clark + +=item * Nicolas R. + +=item * Paul "LeoNerd" Evans + +=item * Philippe "BooK" Bruhat + +=item * Ricardo Signes + +=item * Sawyer X + +=item * Steve Hay + +=item * Stuart Mackintosh + +=item * Todd Rinaldo + +=item * Tony Cook + +=back |