Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 287 lines (180 sloc) 10.458 kb
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
1 =======================
2 PHP Release Process
3 =======================
4
1e050b0 MFH
Lukas Smith authored
5 General notes and tips
471c480 MFH
Lukas Smith authored
6 ----------------------
08748aa MFH
Lukas Smith authored
7
8 1. Do not release on Fridays, Saturdays or Sundays
9 because the sysadmins can not upgrade stuff then.
10
11 2. Package the day before a release. So if the release is to be on Thursday,
12 package on Wednesday.
13
14 3. Ensure that Windows builds will work before packaging
15
16 4. Follow all steps to the letter. When unclear ask previous RM's (Derick/Ilia)
17 before proceeding. Ideally make sure that for the first releases one of the
18 previous RM's is around to answer questions. For the steps related to the
19 php/QA/bug websites try to have someone from the webmaster team (Bjori) on hand.
20
471c480 MFH
Lukas Smith authored
21 5. Verify the tags to be extra sure everything was tagged properly.
22
824eea6 MFH
Lukas Smith authored
23 6. Moving extensions from/to PECL requires root level access to the CVS server.
043ae9e MFH
Lukas Smith authored
24 Contact systems@php.net to get this taken care of.
25
26 Moving extensions from php-src to PECL
27 - Filesystem: cp -r php-src/ext/foo pecl/foo
28 - cvs rm php-src/ext/foo
29
30 If the extension is still usable or not dead, in cooperation with the extension
31 maintainers if any:
32 - create the pecl.php.net/foo package and its content, license, maintainer
33 - create the package.xml, commit
34 - release the package
35
36 Moving extensions from PECL to php-src
37 - Filesystem: cp -r pecl/foo php-src/ext/foo
38 OR depending on the wishes from the PECL extension maintainer.
39 - Filesystem: ln -s pecl/foo php-src/ext/foo
824eea6 MFH
Lukas Smith authored
40
08748aa MFH
Lukas Smith authored
41 Rolling a non stable release (alpha/beta/RC)
471c480 MFH
Lukas Smith authored
42 --------------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
43
44 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
45
375b4c0 MFH
Lukas Smith authored
46 2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
08748aa MFH
Lukas Smith authored
47 Do not use abbreviations for alpha and beta.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
48
49 3. Commit those changes
50
53827be MFH
Lukas Smith authored
51 4. run the "scripts/dev/credits" script in php-src and commit the changes in the
52 credits files in ext/standard.
53
54 5. tag the repository with the version f.e. "``cvs tag php_4_4_1RC1``"
08748aa MFH
Lukas Smith authored
55 (of course, you need to change that to the version you're rolling an RC for).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
56
53827be MFH
Lukas Smith authored
57 6. Bump up the version numbers in ``main/php_version.h``, ``configure.in``
6a1d20a MFH
Lukas Smith authored
58 and possibly ``NEWS`` again, to the **next** version. F.e. if the release
59 candidate was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless
60 if we get a new RC or not. This is to make sure ``version_compare()`` can
61 correctly work.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
62
53827be MFH
Lukas Smith authored
63 7. Commit those changes
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
64
53827be MFH
Lukas Smith authored
65 8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
6a1d20a MFH
Lukas Smith authored
66 branch if you're rolling 4.4.x releases).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
67
53827be MFH
Lukas Smith authored
68 9. You do not have to update the tree, but of course you can with "``cvs up -dP``".
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
69
53827be MFH
Lukas Smith authored
70 10. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
6a1d20a MFH
Lukas Smith authored
71 and build two tarballs (one gz and one bz2).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
72
c172547 MFH
Lukas Smith authored
73 11. Copy those two tarballs to www.php.net, in your homedir there should be a
6a1d20a MFH
Lukas Smith authored
74 directory "downloads/". Copy them into there, so that the system can generate
75 MD5 sums. If you do not have this directory, talk to Derick.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
76
53827be MFH
Lukas Smith authored
77 12. Now the RC can be found on http://downloads.php.net/yourname,
6a1d20a MFH
Lukas Smith authored
78 f.e. http://downloads.php.net/derick/
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
79
53827be MFH
Lukas Smith authored
80 13. Once the release has been tagged, contact the PHP Windows development team
08748aa MFH
Lukas Smith authored
81 (internals-win@lists.php.net) so that Windows binaries can be created. Once
82 those are made, they should be placed into the same directory as the source snapshots.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
83
97eb2d3 MFH
Lukas Smith authored
84 Getting the non stable release (alpha/beta/RC) announced
85 --------------------------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
86
6a1d20a MFH
Lukas Smith authored
87 1. Send an email (see example here: http://news.php.net/php.internals/19486)
88 **To** ``internals@lists.php.net`` and ``php-general@lists.php.net`` lists
89 pointing out "the location of the release" and "the possible release date of
90 either the next RC, or the final release".
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
91
bf87bfb MFH primary tester ml needs to be in the TO not CC
Lukas Smith authored
92 2. Send an email (see example here http://news.php.net/php.pear.qa/5201) **To**
93 ``php-qa@lists.php.net`` and ``primary-qa-tests@lists.php.net``.
ca01eab primary testers list is now mailed for every release
Lukas Smith authored
94 This email is to notify the selected projects about a new release so that they
95 can make sure their projects keep working. Make sure that you have been setup
08748aa MFH
Lukas Smith authored
96 as a moderator for ``primary-qa-tests@lists.php.net`` by having someone (Wez,
97 Derick) run the following commands for you:
72ae8cd MFH
Lukas Smith authored
98
99 ``ssh lists.php.net``
100
101 ``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
102
31deb65 @johannes Where using svn now, use svn paths
johannes authored
103 3. Update the MD5 sums in ``web/qa/trunk/include/rc-md5sums.txt`` (no empty lines).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
104
31deb65 @johannes Where using svn now, use svn paths
johannes authored
105 4. Update in ``web/qa/trunk/include/release-qa.php`` constants with the new RC and
6a1d20a MFH
Lukas Smith authored
106 commit this.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
107
108 a. ``$BUILD_TEST_RELEASES`` = array("4.4.7RC1", "5.2.2RC1")
109
110 b. ``$CURRENT_QA_RELEASE_4`` = "4.4.7RC1" (``$CURRENT_QA_RELEASE_5`` for PHP5)
111
112 c. ``$RELEASE_PROCESS`` = array(4 => true, 5 => true)
113
31deb65 @johannes Where using svn now, use svn paths
johannes authored
114 1. Update in ``php-bugs/trunk/include/functions.inc`` the ``show_version_option``
6a1d20a MFH
Lukas Smith authored
115 function to include the new RC and commit.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
116
32f91ba @johannes MFH Hannes said this shall not be run for RCs
johannes authored
117 2. Update ``phpweb/include/version.inc`` (x=major version number)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
118
119 a. ``$PHP_x_RC`` = "5.3.0RC1"
120
121 b. ``$PHP_x_RC_DATE`` = "06 September 2007"
122
32f91ba @johannes MFH Hannes said this shall not be run for RCs
johannes authored
123 3. Commit those changes:
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
124
125 a. ``cvs commit include/version.inc include/releases.inc``
126
32f91ba @johannes MFH Hannes said this shall not be run for RCs
johannes authored
127 4. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
453a17a @philip Added the "update INSTALL and win32/install.txt" tasks
philip authored
128 INSTALL and win32/install.txt files which are generated from the PHP manual sources.
129
08748aa MFH
Lukas Smith authored
130 Rolling a stable release
471c480 MFH
Lukas Smith authored
131 ------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
132
133 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
134
375b4c0 MFH
Lukas Smith authored
135 2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
136
137 3. **Merge** all related sections in NEWS (f.e. merge the 4.4.1RC1 and 4.4.0 sections)
138
139 4. Commit those changes
140
53827be MFH
Lukas Smith authored
141 5. run the "scripts/dev/credits" script in php-src and commit the changes in the
142 credits files in ext/standard.
143
144 6. tag the repository with the version f.e. "``cvs tag php_4_4_1``"
08748aa MFH
Lukas Smith authored
145 (of course, you need to change that to the version you're rolling an RC for).
146 When making 5.X release, you need to tag the Zend directory separately!!
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
147
53827be MFH
Lukas Smith authored
148 7. Bump up the version numbers in ``main/php_version.h``, ``configure.in`` and
6a1d20a MFH
Lukas Smith authored
149 possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
150 was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless if we get
151 a new RC or not. This is to make sure ``version_compare()`` can correctly work.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
152
53827be MFH
Lukas Smith authored
153 8. Commit those changes
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
154
53827be MFH
Lukas Smith authored
155 9. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
6a1d20a MFH
Lukas Smith authored
156 branch if you're rolling 4.4.x releases).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
157
53827be MFH
Lukas Smith authored
158 10. You do not have to update the tree, but of course you can with "``cvs up -dP``".
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
159
53827be MFH
Lukas Smith authored
160 11. run: ``./makedist php 4.4.1``, this will export the tree, create configure
6a1d20a MFH
Lukas Smith authored
161 and build two tarballs (one gz and one bz2).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
162
53827be MFH
Lukas Smith authored
163 12. Commit those two tarballs to CVS (phpweb/distributions)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
164
53827be MFH
Lukas Smith authored
165 13. Once the release has been tagged, contact the PHP Windows development team
08748aa MFH
Lukas Smith authored
166 (internals-win@lists.php.net) so that Windows binaries can be created. Once
167 those are made, they should be committed to CVS too.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
168
53827be MFH
Lukas Smith authored
169 14. Check if the pear files are updated (phar for 5.1+ or run pear/make-pear-bundle.php with 4.4)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
170
53827be MFH
Lukas Smith authored
171 15. When making a final release, also remind the PHP Windows development team
08748aa MFH
Lukas Smith authored
172 (internals-win@lists.php.net) to prepare the installer packages for Win32.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
173
08748aa MFH
Lukas Smith authored
174 Getting the stable release announced
471c480 MFH
Lukas Smith authored
175 ------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
176
08748aa MFH
Lukas Smith authored
177 1. Run the bumpRelease script for phpweb on your local checkout
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
178
179 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
180
181 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
182
183 a. ``$PHP_X_VERSION`` to the correct version
184
185 b. ``$PHP_X_DATE`` to the release date
186
187 c. ``$PHP_X_MD5`` array and update all the md5 sums
188
189 d. set ``$PHP_X_RC`` to false!
190
6a1d20a MFH
Lukas Smith authored
191 e. Make sure there are no outdated "notes" or edited "date" keys in the
192 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
193
194 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
195
08748aa MFH
Lukas Smith authored
196 3. Update the ChangeLog file for the given major version
197 f.e. ``ChangeLog-4.php`` from the NEWS file
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
198
199 a. go over the list and put every element on one line
200
201 b. check for &, < and > and escape them if necessary
202
203 c. remove all the names at the ends of lines
204
205 d. for marking up, you can do the following (with VI):
206
207 I. ``s/^- /<li>/``
208
209 II. ``s/$/<\/li>/``
210
211 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
212
74b8bc2 MFH: expanded the section about how to create the changelog
Lukas Smith authored
213 IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
214
215 V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
216
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
217 4. ``cp releases/4_4_0.php releases/4_4_1.php``
218
219 5. ``cvs add releases/4_4_1.php``
220
6a1d20a MFH
Lukas Smith authored
221 6. Update the ``releases/*.php`` file with relevant data. The release
222 announcement file should list in detail:
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
223
224 a. security fixes,
225
1e050b0 MFH
Lukas Smith authored
226 b. changes in behavior (whether due to a bug fix or not)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
227
6a1d20a MFH
Lukas Smith authored
228 7. Add a short notice to phpweb stating that there is a new release, and
229 highlight the major important things (security fixes) and when it is important
230 to upgrade.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
231
08748aa MFH
Lukas Smith authored
232 a. Call php bin/createNewsEntry in your local phpweb checkout
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
233
08748aa MFH
Lukas Smith authored
234 b. Add the content for the news entry
235
236 8. Commit all the changes.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
237
6a1d20a MFH
Lukas Smith authored
238 9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
239 php-general@lists.php.net and internals@lists.php.net with a text similar to
240 http://news.php.net/php.internals/17222.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
241
6a1d20a MFH
Lukas Smith authored
242 10. Update ``php-bugs-web/include/functions.php`` to include the new version
243 number, and remove the RC from there.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
244
245 11. Update ``qaweb/include/release-qa.php``
246
247 a. Update the $BUILD_TEST_RELEASES array with the release name
248
249 b. Update $RELEASE_PROCESS array (set to false)
250
251 I. For PHP4: Set $CURRENT_QA_RELEASE_4 to false
252
253 II. For PHP5: Set $CURRENT_QA_RELEASE_5 to false
254
42b3bf9 @bjori MFH: Add guidelines for re-releasing
bjori authored
255 Re-releasing the same version (or -pl)
f0a55e2 MFH: formatting fix for the re-releasing section
Lukas Smith authored
256 --------------------------------------
42b3bf9 @bjori MFH: Add guidelines for re-releasing
bjori authored
257
258 1. Commit the new binaries to ``phpweb/distributions/``
259
260 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
261
262 a. If only releasing for one OS, make sure you edit only those variables
263
264 b. ``$PHP_X_VERSION`` to the correct version
265
266 c. ``$PHP_X_DATE`` to the release date
267
268 d. ``$PHP_X_MD5`` array and update all the md5 sums
269
270 e. Make sure there are no outdated "notes" or edited "date" keys in the
271 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
272
273 3. Add a short notice to phpweb stating that there is a new release, and
274 highlight the major important things (security fixes) and when it is important
275 to upgrade.
276
277 a. Call php bin/createNewsEntry in your local phpweb checkout
278
279 b. Add the content for the news entry
280
281 4. Commit all the changes (``include/version.inc``, ``archive/archive.xml``,
282 ``archive/entries/YYYY-MM-DD-N.xml``)
283
284 5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
285 php-general@lists.php.net and internals@lists.php.net with a text similar to
286 the news entry.
Something went wrong with that request. Please try again.