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 )