perl distros. Contact Graham Barr to make sure that you're on the right
list.
+=head3 rt.perl.org update access
+
+Make sure you have permission to close tickets on L<http://rt.perl.org/>
+so you can respond to bug report as necessary during your stint. If you
+don't, make an account (if you don't have one) and contact the pumpking
+with your username to get ticket-closing permission.
+
=head3 git checkout and commit bit
You will need a working C<git> installation, checkout of the perl
you into the idea in the first place to figure out the best way to
resolve the issue.
+=head3 git clone of https://github.com/perlorg/perlweb
+
+For updating the L<http://dev.perl.org> web pages, either a Github account or
+sweet-talking somebody with a Github account into obedience is needed. This
+is only needed on the day of the release or shortly afterwards.
+
=for checklist skip RC
=head3 Quotation for release announcement epigraph
=head2 Building a release - advance actions
-The work of building a release candidate for a numbered release of
-perl generally starts several weeks before the first release candidate.
-Some of the following steps should be done regularly, but all I<must> be
-done in the run up to a release.
-
+The work of building a release candidate for an even numbered release
+(BLEAD-FINAL) of perl generally starts several weeks before the first
+release candidate. Some of the following steps should be done regularly,
+but all I<must> be done in the run up to a release.
=head3 dual-life CPAN module synchronisation
and maint are synchronised with a particular CPAN module, but one might
have some extra changes.
+=head3 How to sync a CPAN module with a cpan/ distro
+
+=over 4
+
+=item *
+
+Fetch the most recent version from CPAN.
+
+=item *
+
+Unpack the retrieved tarball. Rename the old directory; rename the new
+directory to the original name.
+
+=item *
+
+Restore any F<.gitignore> file. This can be done by issueing
+C<git checkout .gitignore> in the F<cpan/Distro> directory.
+
+=item *
+
+Remove files we do not need. That is, remove any files that match the
+entries in C<@IGNORE> in F<Porting/Maintainer.pl>, and anything that
+matches the C<EXCLUDED> section of the distro's entry in the C<%Modules>
+hash.
+
+=item *
+
+Restore any files mentioned in the C<CUSTOMIZED> section, using
+C<git checkout>. Make any new customizations if necessary. Also,
+restore any files that are mentioned in C<@IGNORE>, but were checked
+in in the repository anyway.
+
+=item *
+
+For any new files in the distro, determine whether they are needed.
+If not, delete them, and list them in either C<EXCLUDED> or C<@INGORE>.
+Otherwise, add them to C<MANIFEST>, and run C<git add> to add the files
+to the repository.
+
+=item *
+
+For any files that are gone, remove them from C<MANIFEST>, and use
+C<git rm> to tell git the files will be gone.
+
+=item *
+
+If the C<MANIFEST> file was changed in any of the previous steps, run
+C<perl Porting/manisort --output MANIFEST.sort; mv MANIFEST.sort MANIFEST>.
+
+=item *
+
+For any files that have an execute bit set, either remove the execute
+bit, or edit F<Porting/exec-bit.txt>
+
+=item *
+
+Run C<make>, see if C<perl> compiles.
+
+=item *
+
+Run the tests for the package.
+
+=item *
+
+Run the tests in F<t/porting>.
+
+=item *
+
+Update the C<DISTRIBUTION> entry in F<Porting/Maintainers.pl>.
+
+=item *
+
+Run a full configure/build/test cycle.
+
+=item *
+
+If everything is ok, commit the changes.
+
+=back
+
+For entries with a non-simple C<FILES> section, or with a C<MAP>, you
+may have to take more steps than listed above.
+
+F<Porting/sync-with-cpan> is a script that automates most of the steps
+above; but see the comments at the beginning of the file.
+
=head3 dual-life CPAN module stability
=head3 Check more build configurations
-Check some more build configurations. The check that setuid builds and
-installs is for < 5.11.0 only.
+Check some more build configurations.
$ sh Configure -Dprefix=/tmp/perl-5.x.y -Uinstallusrbinperl \
- -Duseshrplib -Dd_dosuid
+ -Duseshrplib -Dusesitecustomize
$ make
- $ LD_LIBRARY_PATH=`pwd` make test # or similar for useshrplib
-
- $ make suidperl
- $ su -c 'make install'
- $ ls -l .../bin/sperl
- -rws--x--x 1 root root 69974 2009-08-22 21:55 .../bin/sperl
-
-(Then delete the installation directory.)
+ $ make test
XXX think of other configurations that need testing.
=for checklist skip RC
-=head4 Update C<%Module::CoreList::release> and C<CAVEATS>
+=head4 Update C<%Module::CoreList::released> and C<CAVEATS>
In addition, if this is a final release (rather than a release candidate):
=item *
Make sure that the script has correctly updated the C<CAVEATS> section
+(Note, the C<CAVEATS> section is in
+F<dist/Module-CoreList/lib/Module/CoreList.pod>)
=back
(unless this is for MAINT; in which case commit it to blead first, then
cherry-pick it back).
- $ git commit -m 'Update Module::CoreList for 5.x.y' dist/Module-CoreList/lib/Module/CoreList.pm
+ $ git commit -m 'Update Module::CoreList for 5.x.y' dist/Module-CoreList/lib/Module/CoreList.pm dist/Module-CoreList/lib/Module/CoreList.pod
=for checklist skip RC
especially as regards version numbers, patch and/or RC levels, and @INC
paths. Note that as they have been been built from a git working
directory, they will still identify themselves using git tags and
-commits.
+commits. (Note that for an odd-numbered version, perl will install
+itself as C<perl5.x.y>). C<perl -v> will identify itself as:
+
+ This is perl 5, version X, subversion Y (v5.X.Y (v5.X.Z-NNN-deadbeef))
+
+where 5.X.Z is the latest tag, Z the number of commits since this tag,
+and C<< deadbeef >> commit of that tag.
Then delete the temporary installation.
series, 5.x.0 where x is even), then bump the version in the blead branch
in git, e.g. 5.12.0 to 5.13.0.
-First, add a new feature bundle to F<lib/feature.pm>, initially by just
-copying the exiting entry, and bump the file's $VERSION; e.g.
+First, add a new feature bundle to F<regen/feature.pl>, initially by just
+copying the exiting entry, and bump the file's $VERSION (after the __END__
+marker); e.g.
"5.14" => [qw(switch say state unicode_strings)],
+ "5.15" => [qw(switch say state unicode_strings)],
+Run F<regen/feature.pl> to propagate the changes to F<lib/feature.pm>.
+
Then follow the section L<"Bump the version number"> to bump the version
in the remaining files and test and commit.
=back
+=for checklist skip RC
=head3 update dev.perl.org
-I<This step ONLY for BLEAD-FINAL and MAINT>
+I<You MUST SKIP this step for a RC release>
+
+In the C<perlorg> repository, edit F<docs/dev/perl5/index.html>
+to link to this new release. Then make a pull request to Leo Lapworth.
+If this fails for some reason and you cannot cajole anybody else into
+submitting that change, you can mail Leo as last resort.
-Ask Leo Lapworth to update the front page of L<http://dev.perl.org/perl5/> to
-link to this new release. If you're feeling ambitious, you can fork
-L<https://github.com/perlorg/perlweb> and edit the
-F<docs/dev/perl5/index.html> file, then make a pull request.
+This repository can be found on L<github|https://github.com/perlorg/perlweb>.
=for checklist end