Commit | Line | Data |
7277a900 |
1 | |
2 | =head1 NAME |
3 | |
4 | release_managers_guide - Releasing a new version of perl 5.x |
5 | |
6 | =head1 SYNOPSIS |
7 | |
8 | The release process is primarily executed by the current pumpking. |
9 | |
1aff5354 |
10 | This document both helps as a check-list for the pumpking and is |
7277a900 |
11 | a base for ideas on how the various tasks could be automated or |
12 | distributed. |
13 | |
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. |
18 | |
19 | =head1 DETAILS |
20 | |
21 | =head2 Is it ready? |
22 | |
1aff5354 |
23 | In this step we need to make sure that: |
7277a900 |
24 | |
25 | =over 4 |
26 | |
27 | =item 1 |
28 | |
29 | perl passes its own test suite and |
30 | |
31 | =item 2 |
32 | |
33 | CPAN works |
34 | |
35 | |
36 | which comes down to: |
37 | |
38 | for each module that fails its regression tests on $current |
39 | did it fail identically on $previous? |
1aff5354 |
40 | if yes, "SEP" (Somebody Else's Problem) |
7277a900 |
41 | else work out why it failed (a bisect is useful for this) |
42 | |
43 | attempt to group failure causes |
44 | |
45 | for each failure cause |
46 | is that a regression? |
47 | if yes, figure out how to fix it |
48 | (more code? revert the code that broke it) |
49 | else |
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) |
55 | |
1aff5354 |
56 | ( TBD based on http://www.nntp.perl.org/group/perl.perl5.porters/2009/05/msg146680.html ) |
57 | |
7277a900 |
58 | =back |
59 | |
60 | |
61 | =head2 The Actual release process |
62 | |
63 | The set of tasks that can be "scripted" for Perl 5 |
64 | |
65 | =over 4 |
66 | |
67 | =item 0 |
68 | |
69 | so you think you have a source control in a state that won't break CPAN, |
70 | at least not in "surprising" ways. |
71 | |
72 | =item 1 |
73 | |
74 | As there are no regular smokes (yet - please fix?) find out about the state |
75 | of VMS. If it's bad, think again. |
76 | |
77 | =item 2 |
78 | |
79 | Re-read the perldelta to try to find any embarrassing typos |
80 | |
81 | =item 3 |
82 | |
83 | Run Porting/makemeta |
84 | |
85 | =item 4 |
86 | |
87 | [used to be run autodoc.pl, but I eliminated that] |
88 | |
89 | =item 5 |
90 | |
91 | [used to be run pod/buildtoc, but I eliminated that] |
92 | |
93 | =item 6 |
94 | |
95 | update module corelist, but we need to fix that |
96 | |
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] |
99 | |
100 | =item 7 |
101 | |
102 | [update changes, but Dave has eliminated that] |
103 | |
104 | =item 8 |
105 | |
106 | update patchlevel.h to remove all local patches |
107 | |
108 | =item 9 |
109 | |
110 | make tarball with Porting/makerel |
111 | |
112 | =item 10 |
113 | |
114 | copy tarball to some other machine x 2 [or more - IRC is good for this] |
115 | |
116 | =item 11 |
117 | |
118 | check that ./Configure -des && make all test works in one place |
119 | |
120 | =item 12 |
121 | |
122 | check that ./Configure ... && make all test_harness install works |
123 | |
124 | |
125 | =item 13 |
126 | |
127 | bootstrap the CPAN client on the clean install |
128 | |
129 | =item 14 |
130 | |
131 | install CPANPLUS |
132 | |
133 | =item 15 |
134 | |
135 | bootstrap the CPANPLUS client |
136 | |
137 | =item 16 |
138 | |
139 | install an XS module |
140 | |
141 | =item 17 |
142 | |
143 | if this is good, commit this. |
144 | sit, and wait. |
145 | |
146 | =item 18 |
147 | |
148 | do the smoke tests pass (particularly Win32) |
149 | |
150 | =item 19 |
151 | |
152 | if yes, upload it to PAUSE. This is the point of no return |
153 | |
154 | =item 20 |
155 | |
156 | mail p5p to announce it, with a quote I prepared earlier |
157 | |
158 | =item 21 |
159 | |
160 | wait 24 hours or so |
161 | |
162 | =item 22 |
163 | |
164 | post the announcement to use.perl.org |
165 | |
166 | =back |
167 | |
168 | =head1 SOURCE |
169 | |
170 | Based on http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-05/msg00608.html |
171 | |
172 | =cut |
173 | |