Check Perl's Governance Rules with perlgov
The perlgov manual is Perl's rulebook for who can vote, who holds authority, and how long an election takes. You will use the installed perlgov page as a local, versioned copy of the Rules of Governance, then pick out the parts that matter when you are contributing, voting or checking who has authority over a decision. This is a document, not a program that changes Perl. Allow about ten minutes for a first reading. You need a shell and the perl-doc package; no elevated privileges are normally required.
The route
Jump straight to the step you need, or tick off Done means at the end.
1. Confirm the installed document
Check that the manual is present and note the documentation package version before you read a word of policy. These commands only read package metadata and the manual path:
$ command -v man
$ man -w perlgov
$ dpkg-query -W -f='${Package} ${Version}\n' perl-doc
On the machine used for this guide, the package reports perl-doc 5.38.2-3.2ubuntu0.6, and the manual resolves to /usr/share/man/man1/perlgov.1.gz. Your package revision may differ. That matters because the installed document is a snapshot: it lists the people responsible for the Perl release it shipped with, and that list moves on.
Checkpoint
Write down the version before comparing this copy with anything online. A later copy may have different council or Core Team membership even when the governance rules themselves have not changed.
2. Open the rules as a document
Read the formatted manual from the terminal:
$ man perlgov
- Search with the pager. Use
/for headings such asDefinitions,Rules for VotingandRules for Elections, andqto leave. - Do not expect an executable. The name looks like a command, but
perlgovis a section 1 manual page of policy prose. There is nothing to run, enable or configure.
Fall back to zcat if man is unavailable. Inspect the file without editing or decompressing it in place:
$ zcat /usr/share/man/man1/perlgov.1.gz | less
Install perl-doc if both checks fail. That is a system change and may need elevated privileges, so do not reach for sudo on a read-only check just because the page describes governance.
3. Understand what the governance covers
The mandate is developing and releasing the Perl language and interpreter: the language definition, implementation, test suite, documentation and the processes that maintain them. It does not hand the Perl governance groups control over every Perl-related service.
The document splits authority three ways. The Core Team sets governance rules, manages membership with the council, and elects or removes council members, but it has no authority over CPAN administration, Perl-related websites, conferences outside its direct organisation, or third-party intellectual property. That boundary is worth remembering: a Perl language decision is not automatically an instruction to a separate service or community.
The Steering Council is a three-person committee elected by the Core Team. It decides on the language, the interpreter and the systems that produce releases, using a majority of non-vacant seats. It should prefer consensus and general process, and it cannot change the governance rules except through the amendment process the document describes.
4. Apply the voting rules to a real proposal
Before you assume a poll has settled anything, classify it. Membership changes, amendments and no-confidence votes all need two-thirds of participating Core Team votes. Voting is anonymous and runs in two phases: the Vote Administrator describes the proposal and allows discussion, then active Core Team members vote for or against it.
- Membership Change Vote. Each phase lasts one week.
- Amendment or No Confidence Vote. Each phase lasts two weeks, and the council must approve organising an Amendment Vote before a Core Team member's proposal can go ahead.
- No-confidence vote. Starts when one Core Team member calls for it publicly in an appropriate project channel and another seconds it.
Checkpoint
For a proposal you are tracking, record its type, its current phase, the administrator and the phase deadline. Do not infer any of this from a general community discussion: the rules make the administrator responsible for communication, secret ballots and the activities needed to complete the vote.
5. Read election and membership details carefully
Term and Special Elections use ranked-choice voting to produce an ordered candidate list. Candidates need a nomination from an active Core Team member, although self-nomination is allowed. If there are no more candidates than open seats, no vote is required. Otherwise the rules use the Condorcet Internet Voting Service's proportional representation mode; a tie can be settled by agreement between the tied candidates or by random selection from the Vote Administrator.
A new council is selected after each stable feature release (a change to PERL_REVISION or PERL_VERSION) or after two years, whichever comes first. A vacant seat normally triggers a Special Election within one week, though the council can publicly defer it for up to twelve weeks subject to the document's objection process.
Core Team membership is not limited to committers or language developers: support, triage, documentation, tests, design, infrastructure and community work all count. Members who stop contributing may declare themselves inactive. Inactive members stay listed but cannot nominate or vote until active again, subject to the rule about an undecided vote.
6. Check the online copy when currency matters
The installed page is the right starting point for anything you can reproduce on this machine, but its member list is release-specific. For current upstream wording, compare it with the perlgov.pod file in Perl's blead source. Treat that online copy as the current development branch, not as proof that your installed package has already adopted every change.
Do not copy names or election outcomes from an old local page into a current announcement without checking the date and branch. Equally, do not describe a local installation as having rules that only exist in blead. Keep the package version, the document date and the source revision together in any operational record.
Done means
- You confirmed the manual.
perlgovis an installed document and you recorded theperl-docversion. - You know the three roles. Core Team, Steering Council and Vote Administrator each do different things.
- You know the scope. The rules govern Perl language development and releases, not the whole Perl ecosystem.
- You can read the voting timetable. Two-phase votes, two-thirds threshold for the votes that need it.
- You will check blead before relying on names. Membership and other time-sensitive details move.