4 release_managers_guide - Releasing a new version of perl 5.x
8 The release process is primarily executed by the current pumpking.
10 This document both helps as a check-list for the pumpking and is
11 a base for ideas on how the various tasks could be automated or
14 The process has two major parts. In the first part
15 the pumpking needs to determine if the current head revision in Git
16 is ready for shipment. The second part is the actual release
17 and packaging process.
23 In this step we need to make sure that:
29 perl passes its own test suite and
38 for each module that fails its regression tests on $current
39 did it fail identically on $previous?
40 if yes, "SEP" (Somebody Else's Problem)
41 else work out why it failed (a bisect is useful for this)
43 attempt to group failure causes
45 for each failure cause
47 if yes, figure out how to fix it
48 (more code? revert the code that broke it)
50 (presumably) it's relying on something un-or-under-documented
51 should the existing behaviour stay?
52 yes - goto "regression"
53 no - note it in perldelta as a significant bugfix
54 (also, try to inform the module's author)
56 ( TBD based on http://www.nntp.perl.org/group/perl.perl5.porters/2009/05/msg146680.html )
61 =head2 The Actual release process
63 The set of tasks that can be "scripted" for Perl 5
69 so you think you have a source control in a state that won't break CPAN,
70 at least not in "surprising" ways.
74 As there are no regular smokes (yet - please fix?) find out about the state
75 of VMS. If it's bad, think again.
79 Re-read the perldelta to try to find any embarrassing typos
87 [used to be run autodoc.pl, but I eliminated that]
91 [used to be run pod/buildtoc, but I eliminated that]
95 update module corelist, but we need to fix that
97 [it has been holding perforce revisions for releases, but we can't know
98 hashes in advance for git. We need to agree a plan to move to git tags]
102 [update changes, but Dave has eliminated that]
106 update patchlevel.h to remove all local patches
110 make tarball with Porting/makerel
114 copy tarball to some other machine x 2 [or more - IRC is good for this]
118 check that ./Configure -des && make all test works in one place
122 check that ./Configure ... && make all test_harness install works
127 bootstrap the CPAN client on the clean install
135 bootstrap the CPANPLUS client
143 if this is good, commit this.
148 do the smoke tests pass (particularly Win32)
152 if yes, upload it to PAUSE. This is the point of no return
156 mail p5p to announce it, with a quote I prepared earlier
164 post the announcement to use.perl.org
170 Based on http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-05/msg00608.html