Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 290 lines (183 sloc) 11.14 kB
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
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 fo…
Lukas Smith authored
6 ----------------------
f453f56 updated in regards to windows, added some clarifications and addition…
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 fo…
Lukas Smith authored
21 5. Verify the tags to be extra sure everything was tagged properly.
22
17c6188 @johannes - cvs2svn changes for the RELEASE_PROCESS
johannes authored
23 6. Moving extensions from/to PECL requires write acces to the destination.
24 Most developers should have this.
62604ba - added further details on the steps necessary to move ext from/to pecl
Lukas Smith authored
25
26 Moving extensions from php-src to PECL
17c6188 @johannes - cvs2svn changes for the RELEASE_PROCESS
johannes authored
27 - Checkout the pecl directory, most likely you want a sparse-root checkout
28 svn co --set-depth=empoty https://svn.php.net/repository/pecl
29 - Create an directory for the extension incl. branch and tag structure,
30 no trunk at this point and commit this to svn
31 cd pecl; mkdir foo foo/tags foo/branches; svn add foo; svn commit
32 - Move the extension from php-src to the new location
33 svn mv https://svn.php.net/repository/php/php-src/trunk/ext/foo \
34 https://svn.php.net/repository/pecl/foo/trunk
62604ba - added further details on the steps necessary to move ext from/to pecl
Lukas Smith authored
35
36 If the extension is still usable or not dead, in cooperation with the extension
37 maintainers if any:
38 - create the pecl.php.net/foo package and its content, license, maintainer
39 - create the package.xml, commit
40 - release the package
41
17c6188 @johannes - cvs2svn changes for the RELEASE_PROCESS
johannes authored
42 For Moving extensions from PECL to php-src the svn mv has to be tone the other
43 way round.
1c48a42 added note about how to move extensions from/to pecl
Lukas Smith authored
44
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
45 Rolling a non stable release (alpha/beta/RC)
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST fo…
Lukas Smith authored
46 --------------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
47
48 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
49
9cd4eb3 @johannes Some updates for the release process, mostly cvs->svn things
johannes authored
50 2. run the "scripts/dev/credits" script in php-src and commit the changes in the
51 credits files in ext/standard.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
52
9cd4eb3 @johannes Some updates for the release process, mostly cvs->svn things
johannes authored
53 3. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
54 Do not use abbreviations for alpha and beta.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
55
9cd4eb3 @johannes Some updates for the release process, mostly cvs->svn things
johannes authored
56 4. Commit those changes and note the revision id.
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
57
9cd4eb3 @johannes Some updates for the release process, mostly cvs->svn things
johannes authored
58 5. tag the repository with the version. To do the tag in a fast way do a svn copy on the server using full URLs. You should use the revision id from the above commit to prevent mistakes in case there was a commit in between. f.e. "``svn cp https://svn.php.net/repository/php/php-src/branches/PHP_5_3@308399 https://svn.php.net/repository/php/php-src/tags/php_5_3_6RC1``"
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
59 (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/ReleaseChec…
Lukas Smith authored
60
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
61 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
62 and possibly ``NEWS`` again, to the **next** version. F.e. if the release
63 candidate was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless
64 if we get a new RC or not. This is to make sure ``version_compare()`` can
65 correctly work.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
66
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
67 7. Commit those changes
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
68
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
69 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
70 branch if you're rolling 4.4.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
71
9cd4eb3 @johannes Some updates for the release process, mostly cvs->svn things
johannes authored
72 9. You do not have to update the tree, but of course you can with "``svn up``".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
73
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
74 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
75 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
76
73c9f1f typo fix (thx chris jones for spotting)
Lukas Smith authored
77 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
78 directory "downloads/". Copy them into there, so that the system can generate
79 MD5 sums. If you do not have this directory, talk to Derick.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
80
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
81 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
82 f.e. http://downloads.php.net/derick/
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
83
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
84 13. Once the release has been tagged, contact the PHP Windows development team
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
85 (internals-win@lists.php.net) so that Windows binaries can be created. Once
86 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/ReleaseChec…
Lukas Smith authored
87
0909b1b - made it clear which steps are relevant for RCs only
Lukas Smith authored
88 Getting the non stable release (alpha/beta/RC) announced
89 --------------------------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
90
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
91 1. Send an email (see example here: http://news.php.net/php.internals/19486)
92 **To** ``internals@lists.php.net`` and ``php-general@lists.php.net`` lists
93 pointing out "the location of the release" and "the possible release date of
94 either the next RC, or the final release".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
95
c98e92f primary tester ml needs to be in the TO not CC
Lukas Smith authored
96 2. Send an email (see example here http://news.php.net/php.pear.qa/5201) **To**
97 ``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
98 This email is to notify the selected projects about a new release so that they
99 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
100 as a moderator for ``primary-qa-tests@lists.php.net`` by having someone (Wez,
101 Derick) run the following commands for you:
102
103 ``ssh lists.php.net``
104
105 ``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
106
9cd4eb3 @johannes Some updates for the release process, mostly cvs->svn things
johannes authored
107 3. Update the MD5 sums in ``web/qa/trunk/include/rc-md5sums.txt`` (no empty lines, ordered by filename, odler version number first, .bz2 before .gz).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
108
bddb822 @johannes Where using svn now, use svn paths
johannes authored
109 4. Update in ``web/qa/trunk/include/release-qa.php`` constants with the new RC and
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
110 commit this.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
111
112 a. ``$BUILD_TEST_RELEASES`` = array("4.4.7RC1", "5.2.2RC1")
113
114 b. ``$CURRENT_QA_RELEASE_4`` = "4.4.7RC1" (``$CURRENT_QA_RELEASE_5`` for PHP5)
115
116 c. ``$RELEASE_PROCESS`` = array(4 => true, 5 => true)
117
50c2dff @johannes - Be more consistent in these instructions
johannes authored
118 1. Update in ``web/php-bugs/trunk/include/php_versions.php`` to include the new RC and commit.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
119
50c2dff @johannes - Be more consistent in these instructions
johannes authored
120 2. Update ``web/php/trunk/include/version.inc`` (x=major version number)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
121
122 a. ``$PHP_x_RC`` = "5.3.0RC1"
123
124 b. ``$PHP_x_RC_DATE`` = "06 September 2007"
125
a5db6a2 @johannes Hannes said this shall not be run for RCs
johannes authored
126 3. Commit those changes:
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
127
50c2dff @johannes - Be more consistent in these instructions
johannes authored
128 a. ``svn commit web/qa/trunk web/php-bugs/trunk web/php/trunk``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
129
a5db6a2 @johannes Hannes said this shall not be run for RCs
johannes authored
130 4. 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
131 INSTALL and win32/install.txt files which are generated from the PHP manual sources.
132
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
133 Rolling a stable release
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST fo…
Lukas Smith authored
134 ------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
135
136 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
137
04aaae3 typo fix (thx chris)
Lukas Smith authored
138 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/ReleaseChec…
Lukas Smith authored
139
140 3. **Merge** all related sections in NEWS (f.e. merge the 4.4.1RC1 and 4.4.0 sections)
141
142 4. Commit those changes
143
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
144 5. run the "scripts/dev/credits" script in php-src and commit the changes in the
145 credits files in ext/standard.
146
147 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…
Lukas Smith authored
148 (of course, you need to change that to the version you're rolling an RC for).
149 When making 5.X release, you need to tag the Zend directory separately!!
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
150
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
151 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
152 possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
153 was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless if we get
154 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/ReleaseChec…
Lukas Smith authored
155
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
156 8. Commit those changes
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
157
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
158 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
159 branch if you're rolling 4.4.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
160
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
161 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/ReleaseChec…
Lukas Smith authored
162
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
163 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
164 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
165
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
166 12. Commit those two tarballs to CVS (phpweb/distributions)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
167
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
168 13. Once the release has been tagged, contact the PHP Windows development team
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
169 (internals-win@lists.php.net) so that Windows binaries can be created. Once
170 those are made, they should be committed to CVS too.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
171
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
172 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/ReleaseChec…
Lukas Smith authored
173
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
174 15. When making a final release, also remind the PHP Windows development team
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
175 (internals-win@lists.php.net) to prepare the installer packages for Win32.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
176
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
177 Getting the stable release announced
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST fo…
Lukas Smith authored
178 ------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
179
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
180 1. Run the bumpRelease script for phpweb on your local checkout
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
181
182 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
183
184 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
185
186 a. ``$PHP_X_VERSION`` to the correct version
187
188 b. ``$PHP_X_DATE`` to the release date
189
190 c. ``$PHP_X_MD5`` array and update all the md5 sums
191
192 d. set ``$PHP_X_RC`` to false!
193
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
194 e. Make sure there are no outdated "notes" or edited "date" keys in the
195 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
196
197 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
198
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
199 3. Update the ChangeLog file for the given major version
200 f.e. ``ChangeLog-4.php`` from the NEWS file
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
201
202 a. go over the list and put every element on one line
203
204 b. check for &, < and > and escape them if necessary
205
206 c. remove all the names at the ends of lines
207
208 d. for marking up, you can do the following (with VI):
209
210 I. ``s/^- /<li>/``
211
212 II. ``s/$/<\/li>/``
213
214 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
215
e15522c expanded the section about how to create the changelog
Lukas Smith authored
216 IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
217
218 V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
219
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
220 4. ``cp releases/4_4_0.php releases/4_4_1.php``
221
222 5. ``cvs add releases/4_4_1.php``
223
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
224 6. Update the ``releases/*.php`` file with relevant data. The release
225 announcement file should list in detail:
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
226
227 a. security fixes,
228
7ca6f66 lets me all american :)
Lukas Smith authored
229 b. changes in behavior (whether due to a bug fix or not)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
230
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
231 7. Add a short notice to phpweb stating that there is a new release, and
232 highlight the major important things (security fixes) and when it is important
233 to upgrade.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
234
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
235 a. Call php bin/createNewsEntry in your local phpweb checkout
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
236
f453f56 updated in regards to windows, added some clarifications and addition…
Lukas Smith authored
237 b. Add the content for the news entry
238
239 8. Commit all the changes.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
240
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
241 9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
242 php-general@lists.php.net and internals@lists.php.net with a text similar to
243 http://news.php.net/php.internals/17222.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
244
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
245 10. Update ``php-bugs-web/include/functions.php`` to include the new version
246 number, and remove the RC from there.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
247
248 11. Update ``qaweb/include/release-qa.php``
249
250 a. Update the $BUILD_TEST_RELEASES array with the release name
251
252 b. Update $RELEASE_PROCESS array (set to false)
253
254 I. For PHP4: Set $CURRENT_QA_RELEASE_4 to false
255
256 II. For PHP5: Set $CURRENT_QA_RELEASE_5 to false
257
6b8c88e @bjori Add guidelines for re-releasing
bjori authored
258 Re-releasing the same version (or -pl)
6a941c6 formatting fix for the re-releasing section
Lukas Smith authored
259 --------------------------------------
6b8c88e @bjori Add guidelines for re-releasing
bjori authored
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.
Something went wrong with that request. Please try again.