summaryrefslogtreecommitdiffstats
path: root/upstream/fedora-40/man1/perlpolicy.1
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/fedora-40/man1/perlpolicy.1')
-rw-r--r--upstream/fedora-40/man1/perlpolicy.1573
1 files changed, 573 insertions, 0 deletions
diff --git a/upstream/fedora-40/man1/perlpolicy.1 b/upstream/fedora-40/man1/perlpolicy.1
new file mode 100644
index 00000000..7143adc5
--- /dev/null
+++ b/upstream/fedora-40/man1/perlpolicy.1
@@ -0,0 +1,573 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "PERLPOLICY 1"
+.TH PERLPOLICY 1 2024-01-25 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+perlpolicy \- Various and sundry policies and commitments related to the Perl core
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This document is the master document which records all written
+policies about how the Perl 5 Porters collectively develop and maintain
+the Perl core.
+.SH GOVERNANCE
+.IX Header "GOVERNANCE"
+.SS "Perl 5 Porters"
+.IX Subsection "Perl 5 Porters"
+Subscribers to perl5\-porters (the porters themselves) come in several flavours.
+Some are quiet curious lurkers, who rarely pitch in and instead watch
+the ongoing development to ensure they're forewarned of new changes or
+features in Perl. Some are representatives of vendors, who are there
+to make sure that Perl continues to compile and work on their
+platforms. Some patch any reported bug that they know how to fix,
+some are actively patching their pet area (threads, Win32, the regexp
+\&\-engine), while others seem to do nothing but complain. In other
+words, it's your usual mix of technical people.
+.PP
+Among these people are the core Perl team. These are trusted volunteers
+involved in the ongoing development of the Perl language and interpreter.
+They are not required to be language developers or committers.
+.PP
+Over this group of porters presides Larry Wall. He has the final word
+in what does and does not change in any of the Perl programming languages.
+These days, Larry spends most of his time on Raku, while Perl 5 is
+shepherded by a steering council of porters responsible for deciding what
+goes into each release and ensuring that releases happen on a regular
+basis.
+.PP
+Larry sees Perl development along the lines of the US government:
+there's the Legislature (the porters, represented by the core team), the
+Executive branch (the steering council), and the Supreme Court (Larry).
+The legislature can discuss and submit patches to the executive branch
+all they like, but the executive branch is free to veto them. Rarely,
+the Supreme Court will side with the executive branch over the
+legislature, or the legislature over the executive branch. Mostly,
+however, the legislature and the executive branch are supposed to get
+along and work out their differences without impeachment or court cases.
+.PP
+You might sometimes see reference to Rule 1 and Rule 2. Larry's power
+as Supreme Court is expressed in The Rules:
+.IP 1. 4
+Larry is always by definition right about how Perl should behave.
+This means he has final veto power on the core functionality.
+.IP 2. 4
+Larry is allowed to change his mind about any matter at a later date,
+regardless of whether he previously invoked Rule 1.
+.PP
+Got that? Larry is always right, even when he was wrong. It's rare
+to see either Rule exercised, but they are often alluded to.
+.PP
+For the specifics on how the members of the core team and steering
+council are elected or rotated, consult perlgov, which spells it all
+out in detail.
+.SH "MAINTENANCE AND SUPPORT"
+.IX Header "MAINTENANCE AND SUPPORT"
+Perl 5 is developed by a community, not a corporate entity. Every change
+contributed to the Perl core is the result of a donation. Typically, these
+donations are contributions of code or time by individual members of our
+community. On occasion, these donations come in the form of corporate
+or organizational sponsorship of a particular individual or project.
+.PP
+As a volunteer organization, the commitments we make are heavily dependent
+on the goodwill and hard work of individuals who have no obligation to
+contribute to Perl.
+.PP
+That being said, we value Perl's stability and security and have long
+had an unwritten covenant with the broader Perl community to support
+and maintain releases of Perl.
+.PP
+This document codifies the support and maintenance commitments that
+the Perl community should expect from Perl's developers:
+.IP \(bu 4
+We "officially" support the two most recent stable release series. 5.30.x
+and earlier are now out of support. As of the release of 5.36.0, we will
+"officially" end support for Perl 5.32.x, other than providing security
+updates as described below.
+.IP \(bu 4
+To the best of our ability, we will attempt to fix critical issues
+in the two most recent stable 5.x release series. Fixes for the
+current release series take precedence over fixes for the previous
+release series.
+.IP \(bu 4
+To the best of our ability, we will provide "critical" security patches
+/ releases for any major version of Perl whose 5.x.0 release was within
+the past three years. We can only commit to providing these for the
+most recent .y release in any 5.x.y series.
+.IP \(bu 4
+We will not provide security updates or bug fixes for development
+releases of Perl.
+.IP \(bu 4
+We encourage vendors to ship the most recent supported release of
+Perl at the time of their code freeze.
+.IP \(bu 4
+As a vendor, you may have a requirement to backport security fixes
+beyond our 3 year support commitment. We can provide limited support and
+advice to you as you do so and, where possible will try to apply
+those patches to the relevant \-maint branches in git, though we may or
+may not choose to make numbered releases or "official" patches
+available. See "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec
+for details on how to begin that process.
+.SH "BACKWARD COMPATIBILITY AND DEPRECATION"
+.IX Header "BACKWARD COMPATIBILITY AND DEPRECATION"
+Our community has a long-held belief that backward-compatibility is a
+virtue, even when the functionality in question is a design flaw.
+.PP
+We would all love to unmake some mistakes we've made over the past
+decades. Living with every design error we've ever made can lead
+to painful stagnation. Unwinding our mistakes is very, very
+difficult. Doing so without actively harming our users is
+nearly impossible.
+.PP
+Lately, ignoring or actively opposing compatibility with earlier versions
+of Perl has come into vogue. Sometimes, a change is proposed which
+wants to usurp syntax which previously had another meaning. Sometimes,
+a change wants to improve previously-crazy semantics.
+.PP
+Down this road lies madness.
+.PP
+Requiring end-user programmers to change just a few language constructs,
+even language constructs which no well-educated developer would ever
+intentionally use is tantamount to saying "you should not upgrade to
+a new release of Perl unless you have 100% test coverage and can do a
+full manual audit of your codebase." If we were to have tools capable of
+reliably upgrading Perl source code from one version of Perl to another,
+this concern could be significantly mitigated.
+.PP
+We want to ensure that Perl continues to grow and flourish in the coming
+years and decades, but not at the expense of our user community.
+.PP
+Existing syntax and semantics should only be marked for destruction in
+very limited circumstances. If they are believed to be very rarely used,
+stand in the way of actual improvement to the Perl language or perl
+interpreter, and if affected code can be easily updated to continue
+working, they may be considered for removal. When in doubt, caution
+dictates that we will favor backward compatibility. When a feature is
+deprecated, a statement of reasoning describing the decision process
+will be posted, and a link to it will be provided in the relevant
+perldelta documents.
+.PP
+Using a lexical pragma to enable or disable legacy behavior should be
+considered when appropriate, and in the absence of any pragma legacy
+behavior should be enabled. Which backward-incompatible changes are
+controlled implicitly by a 'use v5.x.y' is a decision which should be
+made by the steering council in consultation with the community.
+.PP
+Historically, we've held ourselves to a far higher standard than
+backward-compatibility \-\- bugward-compatibility. Any accident of
+implementation or unintentional side-effect of running some bit of code
+has been considered to be a feature of the language to be defended with
+the same zeal as any other feature or functionality. No matter how
+frustrating these unintentional features may be to us as we continue
+to improve Perl, these unintentional features often deserve our
+protection. It is very important that existing software written in
+Perl continue to work correctly. If end-user developers have adopted a
+bug as a feature, we need to treat it as such.
+.PP
+New syntax and semantics which don't break existing language constructs
+and syntax have a much lower bar. They merely need to prove themselves
+to be useful, elegant, well designed, and well tested. In most cases,
+these additions will be marked as \fIexperimental\fR for some time. See
+below for more on that.
+.SS Terminology
+.IX Subsection "Terminology"
+To make sure we're talking about the same thing when we discuss the removal
+of features or functionality from the Perl core, we have specific definitions
+for a few words and phrases.
+.IP experimental 4
+.IX Item "experimental"
+If something in the Perl core is marked as \fBexperimental\fR, we may change
+its behaviour, deprecate or remove it without notice. While we'll always
+do our best to smooth the transition path for users of experimental
+features, you should contact the perl5\-porters mailinglist if you find
+an experimental feature useful and want to help shape its future.
+.Sp
+Experimental features must be experimental in two stable releases before being
+marked non-experimental. Experimental features will only have their
+experimental status revoked when they no longer have any design-changing bugs
+open against them and when they have remained unchanged in behavior for the
+entire length of a development cycle. In other words, a feature present in
+v5.20.0 may be marked no longer experimental in v5.22.0 if and only if its
+behavior is unchanged throughout all of v5.21.
+.IP deprecated 4
+.IX Item "deprecated"
+If something in the Perl core is marked as \fBdeprecated\fR, we may remove it
+from the core in the future, though we might not. Generally, backward
+incompatible changes will have deprecation warnings for two release
+cycles before being removed, but may be removed after just one cycle if
+the risk seems quite low or the benefits quite high.
+.Sp
+As of
+Perl 5.12, deprecated features and modules warn the user as they're used.
+When a module is deprecated, it will also be made available on CPAN.
+Installing it from CPAN will silence deprecation warnings for that module.
+.Sp
+If you use a deprecated feature or module and believe that its removal from
+the Perl core would be a mistake, please contact the perl5\-porters
+mailinglist and plead your case. We don't deprecate things without a good
+reason, but sometimes there's a counterargument we haven't considered.
+Historically, we did not distinguish between "deprecated" and "discouraged"
+features.
+.IP discouraged 4
+.IX Item "discouraged"
+From time to time, we may mark language constructs and features which we
+consider to have been mistakes as \fBdiscouraged\fR. Discouraged features
+aren't currently candidates for removal, but
+we may later deprecate them if they're found to stand in the way of a
+significant improvement to the Perl core.
+.IP removed 4
+.IX Item "removed"
+Once a feature, construct or module has been marked as deprecated, we
+may remove it from the Perl core. Unsurprisingly,
+we say we've \fBremoved\fR these things. When a module is removed, it will
+no longer ship with Perl, but will continue to be available on CPAN.
+.SH "MAINTENANCE BRANCHES"
+.IX Header "MAINTENANCE BRANCHES"
+New releases of maintenance branches should only contain changes that fall into
+one of the "acceptable" categories set out below, but must not contain any
+changes that fall into one of the "unacceptable" categories. (For example, a
+fix for a crashing bug must not be included if it breaks binary compatibility.)
+.PP
+It is not necessary to include every change meeting these criteria, and in
+general the focus should be on addressing security issues, crashing bugs,
+regressions and serious installation issues. The temptation to include a
+plethora of minor changes that don't affect the installation or execution of
+perl (e.g. spelling corrections in documentation) should be resisted in order
+to reduce the overall risk of overlooking something. The intention is to
+create maintenance releases which are both worthwhile and which users can have
+full confidence in the stability of. (A secondary concern is to avoid burning
+out the maint-release manager or overwhelming other committers voting on
+changes to be included (see "Getting changes into a maint branch"
+below).)
+.PP
+The following types of change may be considered acceptable, as long as they do
+not also fall into any of the "unacceptable" categories set out below:
+.IP \(bu 4
+Patches that fix CVEs or security issues. These changes should
+be passed using the security reporting mechanism rather than applied
+directly; see "SECURITY VULNERABILITY CONTACT INFORMATION" in perlsec.
+.IP \(bu 4
+Patches that fix crashing bugs, assertion failures and
+memory corruption but which do not otherwise change perl's
+functionality or negatively impact performance.
+.IP \(bu 4
+Patches that fix regressions in perl's behavior relative to previous
+releases, no matter how old the regression, since some people may
+upgrade from very old versions of perl to the latest version.
+.IP \(bu 4
+Patches that fix bugs in features that were new in the corresponding 5.x.0
+stable release.
+.IP \(bu 4
+Patches that fix anything which prevents or seriously impacts the build
+or installation of perl.
+.IP \(bu 4
+Portability fixes, such as changes to Configure and the files in
+the hints/ folder.
+.IP \(bu 4
+Minimal patches that fix platform-specific test failures.
+.IP \(bu 4
+Documentation updates that correct factual errors, explain significant
+bugs or deficiencies in the current implementation, or fix broken markup.
+.IP \(bu 4
+Updates to dual-life modules should consist of minimal patches to
+fix crashing bugs or security issues (as above). Any changes made to
+dual-life modules for which CPAN is canonical should be coordinated with
+the upstream author.
+.PP
+The following types of change are NOT acceptable:
+.IP \(bu 4
+Patches that break binary compatibility. (Please talk to the steering
+council.)
+.IP \(bu 4
+Patches that add or remove features.
+.IP \(bu 4
+Patches that add new warnings or errors or deprecate features.
+.IP \(bu 4
+Ports of Perl to a new platform, architecture or OS release that
+involve changes to the implementation.
+.IP \(bu 4
+New versions of dual-life modules should NOT be imported into maint.
+Those belong in the next stable series.
+.PP
+If there is any question about whether a given patch might merit
+inclusion in a maint release, then it almost certainly should not
+be included.
+.SS "Getting changes into a maint branch"
+.IX Subsection "Getting changes into a maint branch"
+Historically, only the single-person project manager cherry-picked
+changes from bleadperl into maintperl. This has scaling problems. At
+the same time, maintenance branches of stable versions of Perl need to
+be treated with great care. To that end, as of Perl 5.12, we have a new
+process for maint branches.
+.PP
+Any committer may cherry-pick any commit from blead to a maint branch by
+first adding an entry to the relevant voting file in the maint-votes branch
+announcing the commit as a candidate for back-porting, and then waiting for
+at least two other committers to add their votes in support of this (i.e. a
+total of at least three votes is required before a commit may be back-ported).
+.PP
+Most of the work involved in both rounding up a suitable set of candidate
+commits and cherry-picking those for which three votes have been cast will
+be done by the maint branch release manager, but anyone else is free to add
+other proposals if they're keen to ensure certain fixes don't get overlooked
+or fear they already have been.
+.PP
+Other voting mechanisms may also be used instead (e.g. sending mail to
+perl5\-porters and at least two other committers responding to the list
+giving their assent), as long as the same number of votes is gathered in a
+transparent manner. Specifically, proposals of which changes to cherry-pick
+must be visible to everyone on perl5\-porters so that the views of everyone
+interested may be heard.
+.PP
+It is not necessary for voting to be held on cherry-picking perldelta
+entries associated with changes that have already been cherry-picked, nor
+for the maint-release manager to obtain votes on changes required by the
+\&\fIPorting/release_managers_guide.pod\fR where such changes can be applied by
+the means of cherry-picking from blead.
+.SH "CONTRIBUTED MODULES"
+.IX Header "CONTRIBUTED MODULES"
+.SS "A Social Contract about Artistic Control"
+.IX Subsection "A Social Contract about Artistic Control"
+What follows is a statement about artistic control, defined as the ability
+of authors of packages to guide the future of their code and maintain
+control over their work. It is a recognition that authors should have
+control over their work, and that it is a responsibility of the rest of
+the Perl community to ensure that they retain this control. It is an
+attempt to document the standards to which we, as Perl developers, intend
+to hold ourselves. It is an attempt to write down rough guidelines about
+the respect we owe each other as Perl developers.
+.PP
+This statement is not a legal contract. This statement is not a legal
+document in any way, shape, or form. Perl is distributed under the GNU
+Public License and under the Artistic License; those are the precise legal
+terms. This statement isn't about the law or licenses. It's about
+community, mutual respect, trust, and good-faith cooperation.
+.PP
+We recognize that the Perl core, defined as the software distributed with
+the heart of Perl itself, is a joint project on the part of all of us.
+From time to time, a script, module, or set of modules (hereafter referred
+to simply as a "module") will prove so widely useful and/or so integral to
+the correct functioning of Perl itself that it should be distributed with
+the Perl core. This should never be done without the author's explicit
+consent, and a clear recognition on all parts that this means the module
+is being distributed under the same terms as Perl itself. A module author
+should realize that inclusion of a module into the Perl core will
+necessarily mean some loss of control over it, since changes may
+occasionally have to be made on short notice or for consistency with the
+rest of Perl.
+.PP
+Once a module has been included in the Perl core, however, everyone
+involved in maintaining Perl should be aware that the module is still the
+property of the original author unless the original author explicitly
+gives up their ownership of it. In particular:
+.IP \(bu 4
+The version of the module in the Perl core should still be considered the
+work of the original author. All patches, bug reports, and so
+forth should be fed back to them. Their development directions
+should be respected whenever possible.
+.IP \(bu 4
+Patches may be applied by the steering council without the explicit
+cooperation of the module author if and only if they are very minor,
+time-critical in some fashion (such as urgent security fixes), or if
+the module author cannot be reached. Those patches must still be
+given back to the author when possible, and if the author decides on
+an alternate fix in their version, that fix should be strongly
+preferred unless there is a serious problem with it. Any changes not
+endorsed by the author should be marked as such, and the contributor
+of the change acknowledged.
+.IP \(bu 4
+The version of the module distributed with Perl should, whenever
+possible, be the latest version of the module as distributed by the
+author (the latest non-beta version in the case of public Perl
+releases), although the steering council may hold off on upgrading the
+version of the module distributed with Perl to the latest version
+until the latest version has had sufficient testing.
+.PP
+In other words, the author of a module should be considered to have final
+say on modifications to their module whenever possible (bearing in mind
+that it's expected that everyone involved will work together and arrive at
+reasonable compromises when there are disagreements).
+.PP
+As a last resort, however:
+.PP
+If the author's vision of the future of their module is sufficiently
+different from the vision of the steering council and perl5\-porters as a
+whole so as to cause serious problems for Perl, the steering council may
+choose to formally fork the version of the module in the Perl core from the
+one maintained by the author. This should not be done lightly and
+should \fBalways\fR if at all possible be done only after direct input
+from Larry. If this is done, it must then be made explicit in the
+module as distributed with the Perl core that it is a forked version and
+that while it is based on the original author's work, it is no longer
+maintained by them. This must be noted in both the documentation and
+in the comments in the source of the module.
+.PP
+Again, this should be a last resort only. Ideally, this should never
+happen, and every possible effort at cooperation and compromise should be
+made before doing this. If it does prove necessary to fork a module for
+the overall health of Perl, proper credit must be given to the original
+author in perpetuity and the decision should be constantly re-evaluated to
+see if a remerging of the two branches is possible down the road.
+.PP
+In all dealings with contributed modules, everyone maintaining Perl should
+keep in mind that the code belongs to the original author, that they may
+not be on perl5\-porters at any given time, and that a patch is not
+official unless it has been integrated into the author's copy of the
+module. To aid with this, and with points #1, #2, and #3 above, contact
+information for the authors of all contributed modules should be kept with
+the Perl distribution.
+.PP
+Finally, the Perl community as a whole recognizes that respect for
+ownership of code, respect for artistic control, proper credit, and active
+effort to prevent unintentional code skew or communication gaps is vital
+to the health of the community and Perl itself. Members of a community
+should not normally have to resort to rules and laws to deal with each
+other, and this document, although it contains rules so as to be clear, is
+about an attitude and general approach. The first step in any dispute
+should be open communication, respect for opposing views, and an attempt
+at a compromise. In nearly every circumstance nothing more will be
+necessary, and certainly no more drastic measure should be used until
+every avenue of communication and discussion has failed.
+.SH DOCUMENTATION
+.IX Header "DOCUMENTATION"
+Perl's documentation is an important resource for our users. It's
+incredibly important for Perl's documentation to be reasonably coherent
+and to accurately reflect the current implementation.
+.PP
+Just as P5P collectively maintains the codebase, we collectively
+maintain the documentation. Writing a particular bit of documentation
+doesn't give an author control of the future of that documentation.
+At the same time, just as source code changes should match the style
+of their surrounding blocks, so should documentation changes.
+.PP
+Examples in documentation should be illustrative of the concept
+they're explaining. Sometimes, the best way to show how a
+language feature works is with a small program the reader can
+run without modification. More often, examples will consist
+of a snippet of code containing only the "important" bits.
+The definition of "important" varies from snippet to snippet.
+Sometimes it's important to declare \f(CW\*(C`use strict\*(C'\fR and \f(CW\*(C`use warnings\*(C'\fR,
+initialize all variables and fully catch every error condition.
+More often than not, though, those things obscure the lesson
+the example was intended to teach.
+.PP
+As Perl is developed by a global team of volunteers, our
+documentation often contains spellings which look funny
+to \fIsomebody\fR. Choice of American/British/Other spellings
+is left as an exercise for the author of each bit of
+documentation. When patching documentation, try to emulate
+the documentation around you, rather than changing the existing
+prose.
+.PP
+In general, documentation should describe what Perl does "now" rather
+than what it used to do. It's perfectly reasonable to include notes
+in documentation about how behaviour has changed from previous releases,
+but, with very few exceptions, documentation isn't "dual-life" \-\-
+it doesn't need to fully describe how all old versions used to work.
+.SH "STANDARDS OF CONDUCT"
+.IX Header "STANDARDS OF CONDUCT"
+The official forum for the development of perl is the perl5\-porters mailing
+list, mentioned above, and its bugtracker at GitHub. Posting to the
+list and the bugtracker is not a right: all participants in discussion are
+expected to adhere to a standard of conduct.
+.IP \(bu 4
+Always be civil.
+.IP \(bu 4
+Heed the moderators.
+.PP
+Civility is simple: stick to the facts while avoiding demeaning remarks,
+belittling other individuals, sarcasm, or a presumption of bad faith. It is
+not enough to be factual. You must also be civil. Responding in kind to
+incivility is not acceptable. If you relay otherwise-unposted comments to
+the list from a third party, you take responsibility for the content of
+those comments, and you must therefore ensure that they are civil.
+.PP
+While civility is required, kindness is encouraged; if you have any doubt about
+whether you are being civil, simply ask yourself, "Am I being kind?" and aspire
+to that.
+.PP
+If the list moderators tell you that you are not being civil, carefully
+consider how your words have appeared before responding in any way. Were they
+kind? You may protest, but repeated protest in the face of a repeatedly
+reaffirmed decision is not acceptable. Repeatedly protesting about the
+moderators' decisions regarding a third party is also unacceptable, as is
+continuing to initiate off-list contact with the moderators about their
+decisions.
+.PP
+Unacceptable behavior will result in a public and clearly identified
+warning. A second instance of unacceptable behavior from the same
+individual will result in removal from the mailing list and GitHub issue
+tracker, for a period of one calendar month. The rationale for this is to
+provide an opportunity for the person to change the way they act.
+.PP
+After the time-limited ban has been lifted, a third instance of
+unacceptable behavior will result in a further public warning. A fourth
+or subsequent instance will result in an indefinite ban. The rationale
+is that, in the face of an apparent refusal to change behavior, we must
+protect other community members from future unacceptable actions. The
+moderators may choose to lift an indefinite ban if the person in
+question affirms they will not transgress again.
+.PP
+Removals, like warnings, are public.
+.PP
+The list of moderators will be public knowledge. At present, it is:
+Karen Etheridge, Neil Bowers, Nicholas Clark, Ricardo Signes, Todd Rinaldo.
+.SH CREDITS
+.IX Header "CREDITS"
+"Social Contract about Contributed Modules" originally by Russ Allbery <rra@stanford.edu> and the perl5\-porters.