1PERLGOV(1) Perl Programmers Reference Guide PERLGOV(1)
2
3
4
6 perlgov - Perl Rules of Governance
7
9 We are forming a system of governance for development of the Perl
10 programming language.
11
12 The scope of governance includes the language definition, its
13 implementation, its test suite, its documentation, and the policies and
14 procedures by which it is developed and maintained.
15
16 The system of governance includes definitions of the groups that will
17 make decisions, the rules by which these groups are formed and changed,
18 and the enumerated powers and constraints on the activities of these
19 governing groups.
20
21 In forming a system of governance, we seek to achieve the following
22 goals:
23
24 • We want a system that is functional. That means the governing
25 groups may decide to undertake large changes, or they may decide to
26 act conservatively, but they will act with intent and clear
27 communication rather than fail to reach decisions when needed.
28
29 • We want a system that is trusted. That means that a reasonable
30 contributor to Perl might disagree with decisions made by the
31 governing groups, but will accept that they were made in good faith
32 in consultation with relevant communities outside the governing
33 groups.
34
35 • We want a system that is sustainable. That means it has provisions
36 to self-modify, including ways of adding new members to the
37 governing groups, ways to survive members becoming inactive, and
38 ways of amending the rules of governance themselves if needed.
39
40 • We want a system that is transparent. That means that it will
41 prefer policies that manage ordinary matters in public, and it will
42 prefer secrecy in a limited number of situations.
43
44 • We want a system that is respectful. That means that it will
45 establish standards of civil discourse that allow for healthy
46 disagreement but avoid rancor and hostility in the community for
47 which it is responsible.
48
50 Perl language governance shall work to:
51
52 • Maintain the quality, stability, and continuity of the Perl
53 language and interpreter
54
55 • Guide the evolution of the Perl language and interpreter
56
57 • Establish and oversee the policies, procedures, systems, and
58 mechanisms that enable a community of contributors to the Perl
59 language and interpreter
60
61 • Encourage discussion and consensus among contributors as
62 preferential to formal decision making by governance groups
63
64 • Facilitate communication between contributors and external
65 stakeholders in the broader Perl ecosystem
66
68 This document describes three roles involved in governance:
69
70 "Core Team"
71 "Steering Council"
72 "Vote Administrator"
73
74 A section on each follows.
75
76 The Core Team
77 The Core Team are a group of trusted volunteers involved in the ongoing
78 development of the Perl language and interpreter. They are not
79 required to be language developers or committers.
80
81 References to specific votes are explained in the "Rules for Voting"
82 section.
83
84 Powers
85
86 In addition to their contributions to the Perl language, the Core Team
87 sets the rules of Perl governance, decides who participates in what
88 role in governance, and delegates substantial decision making power to
89 the Steering Council.
90
91 Specifically:
92
93 • They elect the Steering Council and have the power to remove
94 Steering Council members.
95
96 • In concert with the Steering Council, they manage Core Team
97 membership.
98
99 • In concert with the Steering Council, they have the power to modify
100 the Perl Rules of Governance.
101
102 The Core Team do not have any authority over parts of the Perl
103 ecosystem unrelated to developing and releasing the language itself.
104 These include, but are not limited to:
105
106 • The Perl Foundation
107
108 • CPAN administration and CPAN authors
109
110 • perl.org, metacpan.org, and other community-maintained websites and
111 services
112
113 • Perl conferences and events, except those organized directly by the
114 Core Team
115
116 • Perl-related intellectual property legally owned by third-parties,
117 except as allowed by applicable licenses or agreements
118
119 Membership
120
121 The initial Core Team members will be specified when this document is
122 first ratified.
123
124 Any Core Team member may nominate someone to be added to the Core Team
125 by sending the nomination to the Steering Council. The Steering
126 Council must approve or reject the nomination. If approved, the
127 Steering Council will organize a Membership Change Vote to ratify the
128 addition.
129
130 Core Team members should demonstrate:
131
132 • A solid track record of being constructive and helpful
133
134 • Significant contributions to the project's goals, in any form
135
136 • Willingness to dedicate some time to improving Perl
137
138 Contributions are not limited to code. Here is an incomplete list of
139 areas where contributions may be considered for joining the Core Team:
140
141 • Working on community management and outreach
142
143 • Providing support on mailing lists, IRC, or other forums
144
145 • Triaging tickets
146
147 • Writing patches (code, docs, or tests)
148
149 • Reviewing patches (code, docs, or tests)
150
151 • Participating in design discussions
152
153 • Providing expertise in a particular domain (security, i18n, etc.)
154
155 • Managing Perl infrastructure (websites, CI, documentation, etc.)
156
157 • Maintaining significant projects in the Perl ecosystem
158
159 • Creating visual designs
160
161 Core Team membership acknowledges sustained and valuable efforts that
162 align well with the philosophy and the goals of the Perl project.
163
164 Core Team members are expected to act as role models for the community
165 and custodians of the project, on behalf of the community and all those
166 who rely on Perl.
167
168 Term
169
170 Core Team members serve until they are removed.
171
172 Removal
173
174 Core Team Members may resign their position at any time.
175
176 In exceptional circumstances, it may be necessary to remove someone
177 from the Core Team against their will, such as for flagrant or repeated
178 violations of a Code of Conduct. Any Core Team member may send a
179 recall request to the Steering Council naming the individual to be
180 removed. The Steering Council must approve or reject the recall
181 request. If approved, the Steering Council will organize a Membership
182 Change vote to ratify the removal.
183
184 If the removed member is also on the Steering Council, then they are
185 removed from the Steering Council as well.
186
187 Inactivity
188
189 Core Team members who have stopped contributing are encouraged to
190 declare themselves "inactive". Inactive members do not nominate or
191 vote. Inactive members may declare themselves active at any time,
192 except when a vote has been proposed and is not concluded. Eligibility
193 to nominate or vote will be determined by the Vote Administrator.
194
195 To record and honor their contributions, inactive Core Team members
196 will continue to be listed alongside active members.
197
198 No Confidence in the Steering Council
199
200 The Core Team may remove either a single Steering Council member or the
201 entire Steering Council via a No Confidence Vote.
202
203 A No Confidence Vote is triggered when a Core Team member calls for one
204 publicly on an appropriate project communication channel, and another
205 Core Team member seconds the proposal.
206
207 If a No Confidence Vote removes all Steering Council members, the Vote
208 Administrator of the No Confidence Vote will then administer an
209 election to select a new Steering Council.
210
211 Amending Perl Rules of Governance
212
213 Any Core Team member may propose amending the Perl Rules of Governance
214 by sending a proposal to the Steering Council. The Steering Council
215 must decide to approve or reject the proposal. If approved, the
216 Steering Council will organize an Amendment Vote.
217
218 Rules for Voting
219
220 Membership Change, Amendment, and No Confidence Votes require 2/3 of
221 participating votes from Core Team members to pass.
222
223 A Vote Administrator must be selected following the rules in the "Vote
224 Administrator" section.
225
226 The vote occurs in two steps:
227
228 1. The Vote Administrator describes the proposal being voted upon.
229 The Core Team then may discuss the matter in advance of voting.
230
231 2. Active Core Team members vote in favor or against the proposal.
232 Voting is performed anonymously.
233
234 For a Membership Change Vote, each phase will last one week. For
235 Amendment and No Confidence Votes, each phase will last two weeks.
236
237 The Steering Council
238 The Steering Council is a 3-person committee, elected by the Core Team.
239 Candidates are not required to be members of the Core Team. Non-member
240 candidates are added to the Core Team if elected as if by a Membership
241 Change Vote.
242
243 References to specific elections are explained in the "Rules for
244 Elections" section.
245
246 Powers
247
248 The Steering Council has broad authority to make decisions about the
249 development of the Perl language, the interpreter, and all other
250 components, systems and processes that result in new releases of the
251 language interpreter.
252
253 For example, it can:
254
255 • Manage the schedule and process for shipping new releases
256
257 • Establish procedures for proposing, discussing and deciding upon
258 changes to the language
259
260 • Delegate power to individuals on or outside the Steering Council
261
262 Decisions of the Steering Council will be made by majority vote of non-
263 vacant seats on the council.
264
265 The Steering Council should look for ways to use these powers as little
266 as possible. Instead of voting, it's better to seek consensus. Instead
267 of ruling on individual cases, it's better to define standards and
268 processes that apply to all cases.
269
270 As with the Core Team, the Steering Council does not have any authority
271 over parts of the Perl ecosystem unrelated to developing and releasing
272 the language itself.
273
274 The Steering Council does not have the power to modify the Perl Rules
275 of Governance, except as provided in the section "Amending Perl Rules
276 of Governance".
277
278 Term
279
280 A new Steering Council will be chosen by a Term Election after each
281 stable feature release (that is, change to "PERL_REVISION" or
282 "PERL_VERSION") or after two years, whichever comes first. The Term
283 Election will be organized within two weeks of the triggering event.
284 The council members will serve until the completion of the next Term
285 Election unless they are removed.
286
287 Removal
288
289 Steering Council members may resign their position at any time.
290
291 Whenever there are vacancies on the Steering Council, the council will
292 organize a Special Election within one week after the vacancy occurs.
293 If the entire Steering Council is ever vacant, a Term Election will be
294 held instead.
295
296 The Steering Council may defer the Special Election for up to twelve
297 weeks. Their intent to do so must be publicly stated to the Core Team.
298 If any active Core Team member objects within one week, the Special
299 Election must be organized within two weeks. At any time, the Steering
300 Council may choose to cancel the deferment and immediately commence
301 organizing a Special Election.
302
303 If a Steering Council member is deceased, or drops out of touch and
304 cannot be contacted for a month or longer, then the rest of the council
305 may vote to declare their seat vacant. If an absent member returns
306 after such a declaration is made, they are not reinstated
307 automatically, but may run in the Special Election to fill the vacancy.
308
309 Otherwise, Steering Council members may only be removed before the end
310 of their term through a No Confidence Vote by the Core Team.
311
312 Rules for Elections
313
314 Term and Special Election are ranked-choice votes to construct an
315 ordered list of candidates to fill vacancies in the Steering Council.
316
317 A Vote Administrator must be selected following the rules in the "Vote
318 Administrator" section.
319
320 Both Term and Special Elections occur in two stages:
321
322 1. Candidates advertise their interest in serving. Candidates must be
323 nominated by an active Core Team member. Self-nominations are
324 allowed. Nominated candidates may share a statement about their
325 candidacy with the Core Team.
326
327 2. If there are no more candidates than open seats, no vote is
328 required. The candidates will be declared to have won when the
329 nomination period ends.
330
331 Otherwise, active Core Team Members vote by ranking all candidates.
332 Voting is performed anonymously. After voting is complete,
333 candidates are ranked using the Condorcet Internet Voting Service's
334 proportional representation mode. If a tie occurs, it may be
335 resolved by mutual agreement among the tied candidates, or else the
336 tie will be resolved through random selection by the Vote
337 Administrator.
338
339 Anyone voted off the Core Team is not eligible to be a candidate for
340 Steering Council unless re-instated to the Core Team.
341
342 For a Term Election, each phase will last two weeks. At the end of the
343 second phase, the top three ranked candidates are elected as the new
344 Steering Council.
345
346 For a Special Election, each phase will last one week. At the end of
347 the second phase, vacancies are filled from the ordered list of
348 candidates until no vacancies remain.
349
350 The election of the first Steering Council will be a Term Election.
351 Ricardo Signes will be the Vote Administrator for the initial Term
352 Election unless he is a candidate, in which case he will select a non-
353 candidate administrator to replace him.
354
355 The Vote Administrator
356 Every election or vote requires a Vote Administrator who manages
357 communication, collection of secret ballots, and all other necessary
358 activities to complete the voting process.
359
360 Unless otherwise specified, the Steering Council selects the Vote
361 Administrator.
362
363 A Vote Administrator must not be a member of the Steering Council nor a
364 candidate or subject of the vote. A Vote Administrator may be a member
365 of the Core Team and, if so, may cast a vote while also serving as
366 administrator. If the Vote Administrator becomes a candidate during an
367 election vote, they will appoint a non-candidate replacement.
368
369 If the entire Steering Council is vacant or is the subject of a No
370 Confidence Vote, then the Core Team will select a Vote Administrator by
371 consensus. If consensus cannot be reached within one week, the
372 President of The Perl Foundation will select a Vote Administrator.
373
375 The list below names the members of the Steering Council and Core Team
376 responsible for creating the release of perl with which this document
377 shipped.
378
379 Remember, though that if you're reading the copy of this document that
380 was installed with perl, it's very likely out of date. Because every
381 new stable feature release triggers an election, you're better off
382 looking at the most up to date copy of this document
383 <https://github.com/Perl/perl5/blob/blead/pod/perlgov.pod>, in the
384 blead branch of Perl's git repository. Because it's git, you can also
385 see how the membership has changed over time.
386
388 • Paul Evans
389
390 • Philippe Bruhat
391
392 • Ricardo Signes
393
395 The current members of the Perl Core Team are:
396
397 Active Members
398 Chad Granum <exodist7@gmail.com>
399 Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
400 Craig Berry <craigberry@mac.com>
401 Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
402 David Mitchell <davem@iabyn.com>
403 Graham Knop <haarg@haarg.org>
404 H. Merijn Brand <perl5@tux.freedom.nl>
405 Hugo van der Sanden <hv@crypt.org>
406 James E Keenan <jkeenan@cpan.org>
407 Karen Etheridge <ether@cpan.org>
408 Karl Williamson <khw@cpan.org>
409 Leon Timmermans <fawaka@gmail.com>
410 Matthew Horsfall <wolfsage@gmail.com>
411 Max Maischein <cpan@corion.net>
412 Neil Bowers <neilb@neilb.org>
413 Nicholas Clark <nick@ccl4.org>
414 Nicolas R <atoomic@cpan.org>
415 Paul "LeoNerd" Evans <leonerd@leonerd.org.uk>
416 Philippe "BooK" Bruhat <book@cpan.org>
417 Ricardo Signes <rjbs@semiotic.systems>
418 Steve Hay <steve.m.hay@googlemail.com>
419 Stuart Mackintosh <stuart@perlfoundation.org>
420 Todd Rinaldo <toddr@cpanel.net>
421 Tony Cook <tony@develop-help.com>
422 Yves Orton <demerphq@gmail.com>
423
424 Inactive Members
425 Abhijit Menon-Sen <ams@toroid.org>
426 Andy Dougherty <doughera@lafayette.edu>
427 David Golden <xdg@xdg.me>
428 Jan Dubois <jan@jandubois.com>
429 Jason McIntosh <jmac@jmac.org>
430 Jesse Vincent <jesse@fsck.com>
431
432
433
434perl v5.38.2 2023-11-30 PERLGOV(1)