Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 291 lines (181 sloc) 10.516 kb
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
1 =======================
2 PHP Release Process
3 =======================
4
7ca6f66 lets me all american :)
Lukas Smith authored
5 General notes and tips
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
6 ----------------------
f453f56 updated in regards to windows, added some clarifications and addition ti...
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
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
21 5. Verify the tags to be extra sure everything was tagged properly.
22
1c48a42 added note about how to move extensions from/to pecl
Lukas Smith authored
23 6. Moving extensions from/to PECL requires root level access to the CVS server.
62604ba - added further details on the steps necessary to move ext from/to pecl
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
1c48a42 added note about how to move extensions from/to pecl
Lukas Smith authored
40
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
41 Rolling a non stable release (alpha/beta/RC)
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
42 --------------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
43
44 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
45
04aaae3 typo fix (thx chris)
Lukas Smith authored
46 2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
47 Do not use abbreviations for alpha and beta.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
48
49 3. Commit those changes
50
f948c2c added note about running scripts/dev/credits
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``"
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
55 (of course, you need to change that to the version you're rolling an RC for).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
56
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
57 6. Bump up the version numbers in ``main/php_version.h``, ``configure.in``
89950cc link primary tester URLs and tried to limit lines to 80 chars
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.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
62
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
63 7. Commit those changes
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
64
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
65 8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
66 branch if you're rolling 4.4.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
67
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
68 9. You do not have to update the tree, but of course you can with "``cvs up -dP``".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
69
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
70 10. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
71 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
72
73c9f1f typo fix (thx chris jones for spotting)
Lukas Smith authored
73 11. Copy those two tarballs to www.php.net, in your homedir there should be a
89950cc link primary tester URLs and tried to limit lines to 80 chars
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.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
76
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
77 12. Now the RC can be found on http://downloads.php.net/yourname,
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
78 f.e. http://downloads.php.net/derick/
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
79
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
80 13. Once the release has been tagged, contact the PHP Windows development team
f453f56 updated in regards to windows, added some clarifications and addition ti...
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.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
83
0909b1b - made it clear which steps are relevant for RCs only
Lukas Smith authored
84 Getting the non stable release (alpha/beta/RC) announced
85 --------------------------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
86
89950cc link primary tester URLs and tried to limit lines to 80 chars
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".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
91
c98e92f 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``.
c2f8ae6 MFB 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
ad97f0b updated due to the creation of the primary testers mailinglist
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:
98
99 ``ssh lists.php.net``
100
101 ``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
102
0909b1b - made it clear which steps are relevant for RCs only
Lukas Smith authored
103 3. Update the MD5 sums in ``qaweb/include/rc-md5sums.txt`` (no empty lines).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
104
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
105 4. Update in ``qaweb/include/release-qa.php`` constants with the new RC and
106 commit this.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
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
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
114 1. Update in ``php-bugs-web/include/functions.inc`` the ``show_version_option``
115 function to include the new RC and commit.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
116
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
117 2. Run the bumpRelease script for phpweb in your local checkout
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
118
119 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
120
121 3. Update ``phpweb/include/version.inc`` (x=major version number)
122
123 a. ``$PHP_x_RC`` = "5.3.0RC1"
124
125 b. ``$PHP_x_RC_DATE`` = "06 September 2007"
126
127 4. Commit those changes:
128
129 a. ``cvs commit include/version.inc include/releases.inc``
130
c2f8ae6 MFB primary testers list is now mailed for every release
Lukas Smith authored
131 5. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
398e735 @philip MFB: Added the "update INSTALL and win32/install.txt" tasks
philip authored
132 INSTALL and win32/install.txt files which are generated from the PHP manual sources.
133
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
134 Rolling a stable release
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
135 ------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
136
137 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
138
04aaae3 typo fix (thx chris)
Lukas Smith authored
139 2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
140
141 3. **Merge** all related sections in NEWS (f.e. merge the 4.4.1RC1 and 4.4.0 sections)
142
143 4. Commit those changes
144
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
145 5. run the "scripts/dev/credits" script in php-src and commit the changes in the
146 credits files in ext/standard.
147
148 6. tag the repository with the version f.e. "``cvs tag php_4_4_1``"
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
149 (of course, you need to change that to the version you're rolling an RC for).
150 When making 5.X release, you need to tag the Zend directory separately!!
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
151
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
152 7. Bump up the version numbers in ``main/php_version.h``, ``configure.in`` and
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
153 possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
154 was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless if we get
155 a new RC or not. This is to make sure ``version_compare()`` can correctly work.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
156
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
157 8. Commit those changes
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
158
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
159 9. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
160 branch if you're rolling 4.4.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
161
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
162 10. You do not have to update the tree, but of course you can with "``cvs up -dP``".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
163
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
164 11. run: ``./makedist php 4.4.1``, this will export the tree, create configure
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
165 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
166
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
167 12. Commit those two tarballs to CVS (phpweb/distributions)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
168
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
169 13. Once the release has been tagged, contact the PHP Windows development team
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
170 (internals-win@lists.php.net) so that Windows binaries can be created. Once
171 those are made, they should be committed to CVS too.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
172
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
173 14. Check if the pear files are updated (phar for 5.1+ or run pear/make-pear-bundle.php with 4.4)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
174
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
175 15. When making a final release, also remind the PHP Windows development team
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
176 (internals-win@lists.php.net) to prepare the installer packages for Win32.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
177
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
178 Getting the stable release announced
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
179 ------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
180
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
181 1. Run the bumpRelease script for phpweb on your local checkout
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
182
183 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
184
185 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
186
187 a. ``$PHP_X_VERSION`` to the correct version
188
189 b. ``$PHP_X_DATE`` to the release date
190
191 c. ``$PHP_X_MD5`` array and update all the md5 sums
192
193 d. set ``$PHP_X_RC`` to false!
194
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
195 e. Make sure there are no outdated "notes" or edited "date" keys in the
196 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
197
198 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
199
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
200 3. Update the ChangeLog file for the given major version
201 f.e. ``ChangeLog-4.php`` from the NEWS file
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
202
203 a. go over the list and put every element on one line
204
205 b. check for &, < and > and escape them if necessary
206
207 c. remove all the names at the ends of lines
208
209 d. for marking up, you can do the following (with VI):
210
211 I. ``s/^- /<li>/``
212
213 II. ``s/$/<\/li>/``
214
215 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
216
217 4. ``cp releases/4_4_0.php releases/4_4_1.php``
218
219 5. ``cvs add releases/4_4_1.php``
220
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
221 6. Update the ``releases/*.php`` file with relevant data. The release
222 announcement file should list in detail:
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
223
224 a. security fixes,
225
7ca6f66 lets me all american :)
Lukas Smith authored
226 b. changes in behavior (whether due to a bug fix or not)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
227
89950cc link primary tester URLs and tried to limit lines to 80 chars
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.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
231
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
232 a. Call php bin/createNewsEntry in your local phpweb checkout
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
233
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
234 b. Add the content for the news entry
235
236 8. Commit all the changes.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
237
89950cc link primary tester URLs and tried to limit lines to 80 chars
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.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
241
89950cc link primary tester URLs and tried to limit lines to 80 chars
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.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
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
255 12. Rebuild the English and Japanese docs (ask Derick)
6b8c88e @bjori Add guidelines for re-releasing
bjori authored
256
257
258 Re-releasing the same version (or -pl)
259 ------------------------------------
260
261 1. Commit the new binaries to ``phpweb/distributions/``
262
263 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
264
265 a. If only releasing for one OS, make sure you edit only those variables
266
267 b. ``$PHP_X_VERSION`` to the correct version
268
269 c. ``$PHP_X_DATE`` to the release date
270
271 d. ``$PHP_X_MD5`` array and update all the md5 sums
272
273 e. Make sure there are no outdated "notes" or edited "date" keys in the
274 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
275
276 3. Add a short notice to phpweb stating that there is a new release, and
277 highlight the major important things (security fixes) and when it is important
278 to upgrade.
279
280 a. Call php bin/createNewsEntry in your local phpweb checkout
281
282 b. Add the content for the news entry
283
284 4. Commit all the changes (``include/version.inc``, ``archive/archive.xml``,
285 ``archive/entries/YYYY-MM-DD-N.xml``)
286
287 5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
288 php-general@lists.php.net and internals@lists.php.net with a text similar to
289 the news entry.
290
Something went wrong with that request. Please try again.