This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Document PL_opfreehook
[perl5.git] / Porting / release_managers_guide.pod
CommitLineData
7277a900
GS
1
2=head1 NAME
3
4release_managers_guide - Releasing a new version of perl 5.x
5
6=head1 SYNOPSIS
7
8The release process is primarily executed by the current pumpking.
9
1aff5354 10This document both helps as a check-list for the pumpking and is
7277a900
GS
11a base for ideas on how the various tasks could be automated or
12distributed.
13
14The process has two major parts. In the first part
15the pumpking needs to determine if the current head revision in Git
16is ready for shipment. The second part is the actual release
17and packaging process.
18
19=head1 DETAILS
20
21=head2 Is it ready?
22
1aff5354 23In this step we need to make sure that:
7277a900
GS
24
25=over 4
26
27=item 1
28
29perl passes its own test suite and
30
31=item 2
32
33CPAN works
34
35
36which 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
GS
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
GS
56( TBD based on http://www.nntp.perl.org/group/perl.perl5.porters/2009/05/msg146680.html )
57
7277a900
GS
58=back
59
60
61=head2 The Actual release process
62
63The set of tasks that can be "scripted" for Perl 5
64
65=over 4
66
67=item 0
68
69so you think you have a source control in a state that won't break CPAN,
70at least not in "surprising" ways.
71
72=item 1
73
74As there are no regular smokes (yet - please fix?) find out about the state
75of VMS. If it's bad, think again.
76
77=item 2
78
79Re-read the perldelta to try to find any embarrassing typos
80
81=item 3
82
83Run 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
95update module corelist, but we need to fix that
96
97[it has been holding perforce revisions for releases, but we can't know
98hashes 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
106update patchlevel.h to remove all local patches
107
108=item 9
109
110make tarball with Porting/makerel
111
112=item 10
113
114copy tarball to some other machine x 2 [or more - IRC is good for this]
115
116=item 11
117
118check that ./Configure -des && make all test works in one place
119
120=item 12
121
122check that ./Configure ... && make all test_harness install works
123
124
125=item 13
126
127bootstrap the CPAN client on the clean install
128
129=item 14
130
131install CPANPLUS
132
133=item 15
134
135bootstrap the CPANPLUS client
136
137=item 16
138
139install an XS module
140
141=item 17
142
143if this is good, commit this.
144sit, and wait.
145
146=item 18
147
148do the smoke tests pass (particularly Win32)
149
150=item 19
151
152if yes, upload it to PAUSE. This is the point of no return
153
154=item 20
155
156mail p5p to announce it, with a quote I prepared earlier
157
158=item 21
159
160wait 24 hours or so
161
162=item 22
163
164post the announcement to use.perl.org
165
166=back
167
168=head1 SOURCE
169
170Based on http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-05/msg00608.html
171
172=cut
173