:locked is deprecated, so use :lvalue instead.
[p5sagit/p5-mst-13.2.git] / Porting / release_managers_guide.pod
index 86e8fe1..daa4fcc 100644 (file)
@@ -14,7 +14,9 @@ manual - to produce a perl release of some description, be that a snaphot,
 release candidate, or final, numbered release of maint or blead.
 
 The release process has traditionally been executed by the current
-pumpking.
+pumpking. Blead releases from 5.11.0 forward are made each month on the
+20th by a non-pumpking release engineer.  The release engineer roster
+and schedule can be found in Porting/release_schedule.pod.
 
 This document both helps as a check-list for the release engineer 
 and is a base for ideas on how the various tasks could be automated 
@@ -577,6 +579,21 @@ Push all your recent commits:
 
     $ git push origin ....
 
+
+=item *
+
+I<You MUST SKIP this step for SNAPSHOT>
+
+Tag the release:
+
+    $ git tag v5.11.0 -m'First release of the v5.11 series!'
+
+It is VERY important that from this point forward, you not push
+your git changes to the Perl master repository.  If anything goes
+wrong before you publish your newly-created tag, you can delete
+and recreate it.  Once you push your tag, we're stuck with it
+and you'll need to use a new version number for your release.
+
 =item *
 
 Create a tarball. Use the C<-s> option to specify a suitable suffix for
@@ -596,6 +613,7 @@ the MANIFEST files into it, sets the correct permissions on them,
 adds DOS line endings to some, then tars it up as
 F<../perl-x.y.z-RC1.tar.gz>. With C<-b>, it also creates a C<tar.bz2> file.
 
+
 XXX if we go for extra tags and branches stuff, then add the extra details
 here
 
@@ -701,7 +719,9 @@ Install an XS module, for example:
 
 =item *
 
-I<You MAY SKIP this step for SNAPSHOT>
+I<If you're building a SNAPSHOT, you should STOP HERE>
+
+=item *
 
 Check that the C<perlbug> utility works. Try the following:
 
@@ -725,8 +745,6 @@ report. Check that it shows up, then remember to close it!
 
 =item *
 
-I<You MAY SKIP this step for SNAPSHOT>
-
 Wait for the smoke tests to catch up with the commit which this release is
 based on (or at least the last commit of any consequence).
 
@@ -736,8 +754,6 @@ back and fix things.
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT>
-
 Once smoking is okay, upload it to PAUSE. This is the point of no return.
 If anything goes wrong after this point, you will need to re-prepare
 a new release with a new minor version or RC number.
@@ -750,20 +766,13 @@ Upload both the .gz and .bz2 versions of the tarball.
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT>
-
-Create a tag for the exact git revision you built the release from.
-C<commit> below is the commit corresponding to the tarball. It can be
-omitted if there have been no further commits since the tarball was
-created, for example:
+Now that you've shipped the new perl release to PAUSE, it's
+time to publish the tag you created earlier to the public git repo:
 
-    $ git tag perl-5.10.1-RC1 -m'Release Candidate 1 of Perl 5.10.1' <commit>
-    $ git push origin tag perl-5.10.1-RC1
+    $ git push origin tag v5.11.0
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT>
-
 Disarm the F<patchlevel.h> change; for example,
 
      static const char * const local_patches[] = {
@@ -783,21 +792,17 @@ Mail p5p to announce your new release, with a quote you prepared earlier.
 
 =item *
 
-I<You MAY SKIP this step for SNAPSHOT>
-
 Wait 24 hours or so, then post the announcement to use.perl.org.
 (if you don't have access rights to post news, ask someone like Rafael to
 do it for you.)
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT>
-
 Ask Jarkko to add the tarball to http://www.cpan.org/src/
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT, RC, BLEAD>
+I<You MUST SKIP this step for RC, BLEAD>
 
 Ask Jarkko to update the descriptions of which tarballs are current in
 http://www.cpan.org/src/README.html, and Rafael to update
@@ -805,14 +810,14 @@ http://dev.perl.org/perl5/
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT, RC>
+I<You MUST SKIP this step for RC>
 
 Remind the current maintainer of C<Module::CoreList> to push a new release
 to CPAN.
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT, RC>
+I<You MUST SKIP this step for RC>
 
 Bump the perlXYZ version number.
 
@@ -874,14 +879,14 @@ previous version bump.
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT, RC, BLEAD>
+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).
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT, RC, BLEAD>
+I<You MUST SKIP this step for RC, BLEAD>
 
 If this was a major release (5.x.0), then create a new maint branch 
 based on the commit tagged as the current release and bump the version 
@@ -894,7 +899,7 @@ XXX need a git recipe
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT, RC, BLEAD>
+I<You MUST SKIP this step for RC, BLEAD>
 
 Copy the perlNNNdelta.pod for this release into the other branches; for
 example:
@@ -905,7 +910,7 @@ example:
 Edit F<pod.lst> to add an entry for the file, e.g.:
 
     perl5101delta              Perl changes in version 5.10.1
-    
+
 Then rebuild various files:
 
     $ perl pod/buildtoc --build-all
@@ -916,8 +921,6 @@ Finally, commit:
 
 =item *
 
-I<You MUST SKIP this step for SNAPSHOT>
-
 Make sure any recent F<pod/perlhist.pod> entries are copied to
 F<perlhist.pod> on other branches; typically the RC* and final entries,
 e.g.
@@ -928,8 +931,8 @@ e.g.
 
 =item *
 
-I<You MUST RETIRE to your preferred PUB, CAFE or SEASIDE VILLA for some much-needed
-rest and relaxation>. 
+I<You MUST RETIRE to your preferred PUB, CAFE or SEASIDE VILLA for some
+much-needed rest and relaxation>.
 
 Thanks for releasing perl!