perl-5.10.2 is released
post-release actions are performed, including creating new
- perl5103delta.pod
+ perldelta.pod
... the cycle continues ...
rename perl-5^.10^.1.dir perl-5_10_1.dir
-Also be careful of F<Porting/epigraphs.pod>, which has legacy version
-numbers that should not get changed.
+When doing a blead release, also make sure the C<PERL_API_*> constants in
+F<patchlevel.h> are in sync with the with the version you're releasing, unless
+you're absolutely sure the release you're about to make is 100% binary
+compatible to an earlier release. When releasing a stable perl version, the
+C<PERL_API_*> constants C<MUST NOT> be changed as we aim to guarantee binary
+compatibility in maint branches.
Commit your changes:
Review and update INSTALL to account for the change in version number;
in particular, the "Coexistence with earlier versions of perl 5" section.
+Be particularly careful with the section "Upgrading from 5.X.Y or earlier". For
+stable releases, this needs to refer to the last release in the previous
+development cycle. For blead releases, it needs to refer to the previous blead
+release.
+
=item *
I<You MUST SKIP this step for SNAPSHOT>
I<You MAY SKIP this step for SNAPSHOT>
Finalize the perldelta. In particular, fill in the Acknowledgements
-section.
+section. You can generate a list of contributors with checkAUTHORS.pl.
+For example:
+
+ $ git log --pretty=fuller v5.13.2..HEAD | \
+ perl Porting/checkAUTHORS.pl --who -
Re-read the perldelta to try to find any embarrassing typos and thinkos;
remove any C<TODO> or C<XXX> flags; update the "Known Problems" section
with any serious issues for which fixes are not going to happen now; and
run through pod and spell checkers, e.g.
- $ podchecker -warnings -warnings pod/perl5101delta.pod
- $ spell pod/perl5101delta.pod
+ $ podchecker -warnings -warnings pod/perldelta.pod
+ $ spell pod/perldelta.pod
Also, you may want to generate and view an HTML version of it to check
formatting, e.g.
- $ perl pod/pod2html pod/perl5101delta.pod > /tmp/perl5101delta.html
+ $ perl pod/pod2html pod/perldelta.pod > /tmp/perldelta.html
+
+Another good HTML preview option is http://search.cpan.org/pod2html
+
+If you make changes, be sure to commit them.
=item *
Make sure you have a gitwise-clean perl directory (no modified files,
unpushed commits etc):
+ $ git clean -dxf
$ git status
=item *
$ git commit -a -m 'make regen; make regen_perly'
+(XXX regen might be a problem depending on the bison version available.
+We need to get a wizard to give better instructions on what to do or not do.)
+
=item *
I<You MUST SKIP this step for SNAPSHOT>
-Update C<Module::Corelist> with module version data for the new release.
+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
-from the maint directory, but commit the C<Corelist.pm> changes in
-I<blead> and subsequently cherry-pick it.
+from the maint branch, but commit the C<CoreList.pm> changes in
+I<blead> and subsequently cherry-pick it. XXX need a better example
F<corelist.pl> uses ftp.funet.fi to verify information about dual-lived
modules on CPAN. It can use a full, local CPAN mirror or fall back
Then change to your perl checkout, and if necessary,
- $ make perl
+ $ make
If this not the first update for this version (e.g. if it was updated
when the version number was originally bumped), first edit
=item *
-I<You MUST SKIP this step for SNAPSHOT>
+I<You MUST SKIP this step for SNAPSHOT or 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 *
-If this is maint release, make sure F<Porting/mergelog> is saved and
-committed.
-
-=item *
-
Push all your recent commits:
$ git push origin ....
Upload both the .gz and .bz2 versions of the tarball.
Wait until you receive notification emails from the PAUSE indexer
-confirming that your uploads have been successfully indexed. Do not
-proceed any further until you are sure that the indexing of your uploads
-has been successful.
+confirming that your uploads have been received. IMPORTANT -- you will
+probably get an email that indexing has failed (due to dual-life modules,
+apparently). This is considered normal.
+
+Do not proceed any further until you are sure that your tarballs are on
+CPAN. Check your authors directory on one of the "fast" CPAN mirrors
+(e.g. cpan.shadowcatprojects.net, cpan.dagolden.com, cpan.hexten.net
+or cpan.cpantesters.org) to confirm that your uploads have been successful.
=item *
I<You MUST SKIP this step for RC>
-Bump the perlXYZdelta version number.
+Create a new perldelta.
-First, create a new empty perlNNNdelta.pod file for the current release + 1;
-see F<Porting/how_to_write_a_perldelta.pod>.
+First, move the existing F<pod/perldelta.pod> to F<pod/perlNNNdelta.pod> (where
+NNN is the perl version number without the dots. i.e. 5134 for 5.13.4).
-You should be able to do this by just copying in a skeleton template and
-then doing a quick fix up of the version numbers, e.g.
+Now edit the moved delta file to change the C<NAME> from C<perldelta> to
+C<perlNNNdelta>.
-Then commit this file. (If this new perldelta needs to get cherrypicked
-anywhere, this provides a clean base to merge from.)
+Then create a new empty perldelta.pod file for the new release; see
+F<Porting/how_to_write_a_perldelta.pod>.
-For example, assuming 5.10.2:
+You should be able to do this by just copying in a skeleton template and
+then doing a quick fix up of the version numbers, e.g.
- $ cp -i Porting/perldelta_template.pod pod/perl5102delta.pod
- $ (edit it)
- $ git add pod/perl5102delta.pod
- $ git commit -m 'create perl5102delta'
+Then commit the move and the new file.
-Edit the previous delta file to change the C<NAME> from C<perldelta>
-to C<perlNNNdelta> and commit it. For example:
+For example, assuming you just released 5.10.1:
+ $ git mv pod/perldelta.pod pod/perl5101delta.pod
+ $ (edit pod/perl5101delta.pod to retitle)
$ git add pod/perl5101delta.pod
- $ git commit -m 'retitle perl5101delta'
+
+ $ cp -i Porting/perldelta_template.pod pod/perldelta.pod
+ $ (edit pod/perldelta.pod)
+ $ git add pod/perldelta.pod
+ $ git commit -m 'create perldelta for 5.10.2'
Now you need to update various tables of contents, most of which can be
generated automatically.
-Edit F<pod.lst>: add the new entry, flagged as 'D', and unflag the previous
-entry from being 'D'; for example:
+Edit F<pod.lst>: add the new entry, flagged as 'd', and unflag the previous
+entry from being 'd'; for example:
- -D perl5101delta Perl changes in version 5.10.1
- +D perl5102delta Perl changes in version 5.10.2
+ -d perl5101delta Perl changes in version 5.10.1
+ +d perl5102delta Perl changes in version 5.10.2
+ perl5101delta Perl changes in version 5.10.1
Run C<perl pod/buildtoc --build-all> to update the F<perldelta> version in
Then manually edit (F<vms/descrip_mms.template> to bump the version
in the following entry:
- [.pod]perldelta.pod : [.pod]perl5101delta.pod
+ [.pod]perl5101delta.pod : [.pod]perldelta.pod
XXX this previous step needs to fixed to automate it in pod/buildtoc.
-Manually update references to the perlNNNdelta version in these files:
-
- INSTALL
- README
-
-These two lists of files probably aren't exhaustive; do a recursive grep
-on the previous filename to look for suitable candidates that may have
-been missed.
-
Finally, commit:
- $ git commit -a -m 'update TOC and perldelta references'
+ $ git commit -a -m 'update TOC for perlNNNdelta'
At this point you may want to compare the commit with a previous bump to
see if they look similar. See commit ca8de22071 for an example of a
previous version bump.
-=item *
-
-I<You MUST SKIP this step for RC, BLEAD>
-
-If this was a maint release, then edit F<Porting/mergelog> to change
-all the C<d> (deferred) flags to C<.> (needs review).
+XXX the commit uses the old perldelta naming scheme and we need to reference
+another one once this has been done with the scheme.
=item *
I<You MUST SKIP this step for RC, BLEAD>
-Copy the perlNNNdelta.pod for this release into the other branches; for
+Copy the perldelta.pod for this release into the other branches; for
example:
- $ cp -i ../5.10.x/pod/perl5101delta.pod pod/ # for example
+ $ cp -i ../5.10.x/pod/perldelta.pod pod/perl5101delta.pod # for example
$ git add pod/perl5101delta.pod
Edit F<pod.lst> to add an entry for the file, e.g.: