...time passes...
- an occasional snapshot is released, that still identifies itself as
- 5.10.1
-
- ...time passes...
-
a few weeks before the release, a number of steps are performed,
including bumping the version to 5.10.2
=head1 DETAILS
-Some of the tasks described below apply to all four types of
-release of Perl. (snapshot, RC, final release of maint, final
+Some of the tasks described below apply to all three types of
+release of Perl. (RC, final release of maint, final
release of blead). Some of these tasks apply only to a subset
of these release types. If a step does not apply to a given
type of release, you will see a notation to that effect at
=over 4
-=item Snapshot
-
-A snapshot is intended to encourage in-depth testing from time-to-time,
-for example after a key point in the stabilisation of a branch. It
-requires fewer steps than a full release, and the version number of perl in
-the tarball will usually be the same as that of the previous release.
-
=item Release Candidate (RC)
A release candidate is an attempt to produce a tarball that is a close as
=item PAUSE account
-I<SKIP this step for SNAPSHOT>
-
Make sure you have a PAUSE account suitable for uploading a perl release.
If you don't have a PAUSE account, then request one:
=item Quotation for release announcement epigraph
-I<SKIP this step for SNAPSHOT and RC>
+I<SKIP this step for RC>
For a numbered blead or maint release of perl, you will need a quotation
-to use as an epigraph to your release announcement. (There's no harm
-in having one for a snapshot, but it's not required).
+to use as an epigraph to your release announcement.
=back
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
Ensure that dual-life CPAN modules are synchronised with CPAN. Basically,
run the following:
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
Ensure dual-life CPAN modules are stable, which comes down to:
for each module that fails its regression tests on $current
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
Similarly, monitor the smoking of core tests, and try to fix. See
L<http://doc.procura.nl/smoke/index.html> for a summary. See also
L<http://www.nntp.perl.org/group/perl.daily-build.reports/> which has
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
Similarly, monitor the smoking of perl for compiler warnings, and try to
fix.
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
Get perldelta in a mostly finished state.
Read F<Porting/how_to_write_a_perldelta.pod>, and try to make sure that
=item *
-I<You MUST SKIP this step for SNAPSHOT>
-
Bump the version number (e.g. from 5.12.0 to 5.12.1).
For a blead release, this can happen on the day of the release. For a
=item *
-I<You MUST SKIP this step for SNAPSHOT>
-
Review and update INSTALL to account for the change in version number;
in particular, the "Coexistence with earlier versions of perl 5" section.
=item *
-I<You MUST SKIP this step for SNAPSHOT>
-
Update the F<Changes> file to contain the git log command which would show
all the changes in this release. You will need assume the existence of a
not-yet created tag for the forthcoming release; e.g.
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
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.
=head2 Building a release - on the day
-This section describes the actions required to make a release (or snapshot
-etc) that are performed on the actual day.
+This section describes the actions required to make a release
+that are performed on the actual day.
=over 4
=item *
-I<You MAY SKIP this step for SNAPSHOT>
-
Finalize the perldelta. In particular, fill in the Acknowledgements
section. You can generate a list of contributors with checkAUTHORS.pl.
For example:
=item *
-I<You MUST SKIP this step for SNAPSHOT>
-
Update C<Module::CoreList> with module version data for the new release.
Note that if this is a maint release, you should run the following actions
=item *
-I<You MUST SKIP this step for SNAPSHOT>
-
Add an entry to F<pod/perlhist.pod> with the current date, e.g.:
David 5.10.1-RC1 2009-Aug-06
=item *
-I<You MUST SKIP this step for SNAPSHOT or BLEAD release>
+I<You MUST SKIP this step for a BLEAD release>
Update F<patchlevel.h> to add a C<-RC1>-or-whatever string; or, if this is
a final release, remove it. For example:
=item *
-I<You MUST SKIP this step for SNAPSHOT>
-
Tag the release (e.g.):
$ git tag v5.11.0 -m "First release of the v5.11 series!"
$ git clean -xdf # make sure perl and git agree on files
$ git status # and there's nothing lying around
- $ perl Porting/makerel -b -s `git describe` # for a snapshot
$ perl Porting/makerel -b -s RC1 # for a release candidate
$ perl Porting/makerel -b # for a final release
=item *
-I<If you're building a SNAPSHOT, you should STOP HERE>
-
-=item *
-
Check that the L<perlbug> utility works. Try the following:
$ bin/perlbug
=item *
-I<You MUST SKIP this step for SNAPSHOT or BLEAD release>
+I<You MUST SKIP this step for BLEAD release>
Disarm the F<patchlevel.h> change; for example,