perl
view release on metacpan or search on metacpan
Porting/release_managers_guide.pod view on Meta::CPAN
Review and update INSTALL to account for the change in version number.
INSTALL for a BLEAD-POINT release should already contain the expected version.
For MAINT releases, the lines in F<INSTALL> about "is not binary compatible
with" may require a correct choice of earlier version to declare
incompatibility with. These are in the "Changes and Incompatibilities" and
"Coexistence with earlier versions of perl 5" sections.
Be particularly careful with the section "Upgrading from 5.X.Y or earlier".
The "X.Y" needs to be changed to the most recent version that we are
I<not> binary compatible with.
For MAINT and BLEAD-FINAL releases, this needs to refer to the last
release in the previous development cycle (so for example, for a 5.14.x
release, this would be 5.13.11).
For BLEAD-POINT releases, it needs to refer to the previous BLEAD-POINT
release (so for 5.15.3 this would be 5.15.2). If the last release manager
followed instructions, this should have already been done after the last
blead release, so you may find nothing to do here.
=head3 Update AUTHORS
The AUTHORS file can be updated by running:
$ perl Porting/updateAUTHORS.pl
This shouldn't really be necessary anymore, and in theory nothing should
change as our CI should not pass if a commit would result in AUTHORS
needing to change, but do it anyway to be sure. Make sure all your changes
are committed first.
Review the changes to the AUTHORS file, be sure you are not adding duplicate
entries or removing any entries, then commit your changes.
$ git commit -a AUTHORS -m 'Update AUTHORS list for 5.X.Y'
=head3 Check copyright years
Check that the copyright years are up to date by running:
$ pushd t; ../perl -I../lib porting/copyright.t --now
Remedy any test failures by editing README or perl.c accordingly (search for
the "Copyright"). If updating perl.c, check if the file's own copyright date in
the C comment at the top needs updating, as well as the one printed by C<-v>.
=head3 Check more build configurations
Try running the full test suite against multiple Perl configurations. Here are
some sets of Configure flags you can try:
=over 4
=item *
C<-Duseshrplib -Dusesitecustomize>
=item *
C<-Duserelocatableinc>
=item *
C<-Dusethreads>
=back
If you have multiple compilers on your machine, you might also consider
compiling with C<-Dcc=$other_compiler>.
You can also consider pushing the repo to GitHub where GitHub Actions is enabled
which would smoke different flavors of Perl for you.
=head3 Update perlport
L<perlport> has a section currently named I<Supported Platforms> that
indicates which platforms are known to build in the current release.
If necessary update the list and the indicated version number.
=head3 Check a readonly build
Even before other prep work, follow the steps in L</"Build the tarball"> and test
it locally. Because a perl source tarballs sets many files read-only, it could
test differently than tests run from the repository. After you're sure
permissions aren't a problem, delete the generated directory and tarballs.
=head2 Building a release - on the day
This section describes the actions required to make a release
that are performed near to, or on the actual release day.
=head3 Optimize your local setup
You will be rebuilding perl quite often, so it makes sense to speed up
the building and testing by running it in parallel. For that, you can
optionally set the following environment variables to appropriate values
for your machine:
export PERL_TEST_HARNESS_ASAP=1
export HARNESS_OPTIONS=j8
export TEST_JOBS=8
export MAKEFLAGS=-j12
=head3 Re-check earlier actions
Review all the actions in the previous section,
L</"Building a release - advance actions"> to ensure they are all done and
up-to-date.
=head3 Create a release branch
For BLEAD-POINT releases, making a release from a release branch avoids the
need to freeze blead during the release. This is less important for
BLEAD-FINAL, MAINT, and RC releases, since blead will already be frozen in
those cases. Create the branch by running
$ git checkout -b release-5.X.Y
=head3 Build a clean perl
( run in 0.592 second using v1.01-cache-2.11-cpan-5511b514fd6 )