This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
More globals in $self
[perl5.git] / Porting / release_managers_guide.pod
index e6ca378..6c5f6a3 100644 (file)
@@ -242,31 +242,15 @@ smoking with the target version built into the perl executable. For
 subsequent release candidates and the final release, it it not necessary to
 bump the version further.
 
-There is a tool to semi-automate this process. It works in two stages.
-First, it generates a list of suggested changes, which you review and
-edit; then you feed this list back and it applies the edits. So, first
-scan the source directory looking for likely candidates. The command line
-arguments are the old and new version numbers, and -s means scan:
+There is a tool to semi-automate this process:
 
-    $ ./perl -Ilib Porting/bump-perl-version -s 5.10.0 5.10.1 > /tmp/scan
+     $ ./perl -Ilib Porting/bump-perl-version -i 5.10.0 5.10.1
 
-This produces a file containing a list of suggested edits, e.g.:
+Remember that this tool is largely just grepping for '5.10.0' or whatever,
+so it will generate false positives. Be careful not change text like
+"this was fixed in 5.10.0"!
 
-    NetWare/Makefile
-
-       89: -MODULE_DESC     = "Perl 5.10.0 for NetWare"
-          +MODULE_DESC     = "Perl 5.10.1 for NetWare"
-
-i.e. in the file F<NetWare/Makefile>, line 89 would be changed as shown.
-Review the file carefully, and delete any -/+ line pairs that you don't
-want changing. You can also edit just the C<+> line to change the
-suggested replacement text. Remember that this tool is largely just
-grepping for '5.10.0' or whatever, so it will generate false positives. Be
-careful not change text like "this was fixed in 5.10.0"! Then run:
-
-    $ ./perl -Ilib Porting/bump-perl-version -u < /tmp/scan
-
-which will update all the files shown.
+Use git status and git diff to select changes you want to keep.
 
 Be particularly careful with F<INSTALL>, which contains a mixture of
 C<5.10.0>-type strings, some of which need bumping on every release, and
@@ -274,12 +258,6 @@ some of which need to be left unchanged.
 The line in F<INSTALL> about "is binary incompatible with" requires a
 correct choice of earlier version to declare incompatibility with.
 
-Also note that this tool
-currently only detects a single substitution per line: so in particular,
-this line in README.vms needs special handling:
-
-    rename perl-5^.10^.1.dir perl-5_10_1.dir
-
 When doing a BLEAD-POINT or BLEAD-FINAL release, also make sure the
 C<PERL_API_*> constants in F<patchlevel.h> are in sync with the version
 you're releasing, unless you're
@@ -302,12 +280,16 @@ Test your changes:
 
 Commit your changes:
 
-    $ git st
+    $ git status
     $ git diff
     B<review the delta carefully>
 
     $ git commit -a -m 'Bump the perl version in various places for 5.x.y'
 
+At this point you may want to compare the commit with a previous bump to
+see if they look similar.  See commit 8891dd8d for an example of a
+previous version bump.
+
 When the version number is bumped, you should also update Module::CoreList
 (as described below in L<"update Module::CoreList">) to reflect the new
 version number.
@@ -329,22 +311,6 @@ 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).
 
-
-=head3 update Changes
-
-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.
-
-    git log ... perl-5.10.0..perl-5.12.0
-
-Due to warts in the perforce-to-git migration, some branches require extra
-exclusions to avoid other branches being pulled in. Make sure you have the
-correct incantation: replace the not-yet-created tag with C<HEAD> and see
-if C<git log> produces roughly the right number of commits across roughly the
-right time period (you may find C<git log --pretty=oneline | wc> useful).
-
-
 =head3 Check more build configurations
 
 Check some more build configurations. The check that setuid builds and
@@ -405,8 +371,8 @@ Look at the previous L<perldelta> for how to write the opening
 paragraph of the Acknowledgements section. To get the amount of
 changed files and number of lines use this command:
 
-  $ git diff --shortstat v5.13.${last}..HEAD | \
-    ./perl -Ilib -nE 'my ($files, $insert, $delete) = /(\d+)/ga; say "$files files and ", $insert + $delete, " lines changed"'
+  $ git diff --shortstat v5.15.0..HEAD | \
+    ./perl -Ilib -nE 'my ($files, $insert, $delete) = /(\d+)/ga; say $insert + $delete, " lines of changes across $files files"'
 
 Making sure to round off the number of lines changed.
 
@@ -620,6 +586,16 @@ and you'll need to use a new version number for your release.
 
 =head3 build the tarball
 
+Before you run the following, you might want to install 7-Zip (the
+C<p7-full> package under Debian or the C<p7zip> port on MacPorts) or
+the AdvanceCOMP suite (e.g. the C<advancecomp> package under Debian,
+or the C<advancecomp> port on macports - 7-Zip on Windows is the
+same code as AdvanceCOMP, so Windows users get the smallest files
+first time). These compress about 5% smaller than gzip and bzip2.
+Over the lifetime of your distribution this will save a lot of
+people a small amount of download time and disk space, which adds
+up.
+
 Create a tarball. Use the C<-s> option to specify a suitable suffix for
 the tarball and directory name:
 
@@ -644,20 +620,6 @@ your changes were all committed, you can override the suffix with:
 XXX if we go for extra tags and branches stuff, then add the extra details
 here
 
-Optionally, you might want to compress your tarball more. Unix F<gzip>
-doesn't actually produce the smallest possible DEFLATE output. If you have the
-AdvanceCOMP suite (e.g. the C<advancecomp> port on macports), you can run
-
-    $ advdef -z -4 ../perl-x.y.z-RC1.tar.gz
-
-which will probably shrink your tarball by about 5%. Over the lifetime of
-your distribution this will save a lot of people a small amount of download
-time and disk space, which adds up.
-
-(7-Zip on Windows is the same code as AdvanceCOMP, so Windows users get the
-smallest files first time)
-
-
 Finally, clean up the temporary directory, e.g.
 
     $ rm -rf ../perl-x.y.z-RC1
@@ -934,12 +896,8 @@ version numbers.  Then commit the move and the new file.
 Now you need to update various tables of contents related to perldelta,
 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:
-
-    -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
+Edit F<pod.lst>: add the new entry for the perlNNNdelta file for the
+current version (the file that will be symlinked to perldelta).
 
 Manually create a temporary link to the new delta file; normally this is
 done from the Makefile, but the Makefile is updated by buildtoc, and
@@ -962,8 +920,8 @@ Finally, commit:
 
     $ 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 8891dd8d for an example of a
+At this point you may want to compare the commit with a previous bump to
+see if they look similar.  See commit dd885b5 for an example of a
 previous version bump.
 
 
@@ -1052,10 +1010,9 @@ e.g.
 
 =head3 bump RT version number
 
-If necessary, send an email to C<perlbug-admin at perl.org> requesting
-that new version numbers be added to the RT fields C<Perl Version> and
-C<Fixed In>.
-
+Log into http://rt.perl.org/ and check whether the new version is
+in the RT fields C<Perl Version> and C<Fixed In>. If not, send an
+email to C<perlbug-admin at perl.org> requesting this.
 
 =head3 Relax!
 
@@ -1109,7 +1066,7 @@ It should be visible at a URL like C<http://search.cpan.org/dist/perl-5.10.1/>.
 
 I<This step ONLY for BLEAD-POINT and MAINT>
 
-Ask Rafael to update L<http://dev.perl.org/perl5/>.
+Ask Leo Lapworth to update L<http://dev.perl.org/perl5/>.
 
 
 =head1 SOURCE