Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 286 lines (183 sloc) 11.244 kb
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
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
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
23 6. Moving extensions from/to PECL requires write acces to the destination.
24 Most developers should have this.
043ae9e MFH
Lukas Smith authored
25
26 Moving extensions from php-src to PECL
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
27 - Checkout the pecl directory, most likely you want a sparse-root checkout
28 svn co --depth=empty 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
043ae9e MFH
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
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
42 For Moving extensions from PECL to php-src the svn mv has to be tone the other
43 way round.
824eea6 MFH
Lukas Smith authored
44
08748aa MFH
Lukas Smith authored
45 Rolling a non stable release (alpha/beta/RC)
471c480 MFH
Lukas Smith authored
46 --------------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
47
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
48 1. Check windows snapshot builder logs (http://windows.php.net/downloads/snaps/ the last revision)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
49
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
50 2. run the "scripts/dev/credits" script in php-src and commit the changes in the
51 credits files in ext/standard.
52
53 3. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
08748aa MFH
Lukas Smith authored
54 Do not use abbreviations for alpha and beta.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
55
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
56 4. Commit those changes and note the revision id.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
57
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye 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``"
59 (of course, you need to change that to the version you're rolling an RC for). Mail php-internals to announce the tag so tests/validation/check can be done prior to package it. It is especially important for RCs.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
60
53827be MFH
Lukas Smith authored
61 6. Bump up the version numbers in ``main/php_version.h``, ``configure.in``
6a1d20a MFH
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.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
66
53827be MFH
Lukas Smith authored
67 7. Commit those changes
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
68
53827be MFH
Lukas Smith authored
69 8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
6a1d20a MFH
Lukas Smith authored
70 branch if you're rolling 4.4.x releases).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
71
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
72 9. You do not have to update the tree, but of course you can with "``svn up``".
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
73
53827be MFH
Lukas Smith authored
74 10. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
6a1d20a MFH
Lukas Smith authored
75 and build two tarballs (one gz and one bz2).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
76
c172547 MFH
Lukas Smith authored
77 11. Copy those two tarballs to www.php.net, in your homedir there should be a
6a1d20a MFH
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.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
80
53827be MFH
Lukas Smith authored
81 12. Now the RC can be found on http://downloads.php.net/yourname,
6a1d20a MFH
Lukas Smith authored
82 f.e. http://downloads.php.net/derick/
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
83
53827be MFH
Lukas Smith authored
84 13. Once the release has been tagged, contact the PHP Windows development team
08748aa MFH
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.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
87
97eb2d3 MFH
Lukas Smith authored
88 Getting the non stable release (alpha/beta/RC) announced
89 --------------------------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
90
6a1d20a MFH
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".
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
95
bf87bfb MFH 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``.
ca01eab 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
08748aa MFH
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:
72ae8cd MFH
Lukas Smith authored
102
103 ``ssh lists.php.net``
104
105 ``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
106
fa579f2 David Soria Parra mention git
dsp authored
107 3. Update ``qa.git/include/release-qa.php`` with the appropriate information.
b7eefa0 Philip Olson Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
108 See the documentation within release-qa.php for more information, but all releases
109 and RCs are configured here. Only $QA_RELEASES needs to be edited.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
110
b7eefa0 Philip Olson Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
111 Example: When rolling an RC, set the 'rc' with appropriate information for the
112 given version.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
113
b7eefa0 Philip Olson Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
114 Note: Remember to update the MD5 checksum information.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
115
fa579f2 David Soria Parra mention git
dsp authored
116 4. Update ``php.git/include/version.inc`` (x=major version number)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
117
118 a. ``$PHP_x_RC`` = "5.3.0RC1"
119
120 b. ``$PHP_x_RC_DATE`` = "06 September 2007"
121
fa579f2 David Soria Parra mention git
dsp authored
122 5. Commit and push those changes:
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
123
fa579f2 David Soria Parra mention git
dsp authored
124 a. ``git commit -a && git push origin master``
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
125
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
126 6. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
453a17a Philip Olson Added the "update INSTALL and win32/install.txt" tasks
philip authored
127 INSTALL and win32/install.txt files which are generated from the PHP manual sources.
128
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
129 7. Publish the announce on www.php.net as well (for all releases, alpha, RCs or other)
130
08748aa MFH
Lukas Smith authored
131 Rolling a stable release
471c480 MFH
Lukas Smith authored
132 ------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
133
134 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
135
375b4c0 MFH
Lukas Smith authored
136 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/ReleaseCheckli...
Lukas Smith authored
137
138 3. **Merge** all related sections in NEWS (f.e. merge the 4.4.1RC1 and 4.4.0 sections)
139
140 4. Commit those changes
141
53827be MFH
Lukas Smith authored
142 5. run the "scripts/dev/credits" script in php-src and commit the changes in the
143 credits files in ext/standard.
144
145 6. tag the repository with the version f.e. "``cvs tag php_4_4_1``"
08748aa MFH
Lukas Smith authored
146 (of course, you need to change that to the version you're rolling an RC for).
147 When making 5.X release, you need to tag the Zend directory separately!!
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
148
53827be MFH
Lukas Smith authored
149 7. Bump up the version numbers in ``main/php_version.h``, ``configure.in`` and
6a1d20a MFH
Lukas Smith authored
150 possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
151 was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless if we get
152 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/ReleaseCheckli...
Lukas Smith authored
153
53827be MFH
Lukas Smith authored
154 8. Commit those changes
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
155
53827be MFH
Lukas Smith authored
156 9. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
6a1d20a MFH
Lukas Smith authored
157 branch if you're rolling 4.4.x releases).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
158
53827be MFH
Lukas Smith authored
159 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/ReleaseCheckli...
Lukas Smith authored
160
53827be MFH
Lukas Smith authored
161 11. run: ``./makedist php 4.4.1``, this will export the tree, create configure
6a1d20a MFH
Lukas Smith authored
162 and build two tarballs (one gz and one bz2).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
163
53827be MFH
Lukas Smith authored
164 12. Commit those two tarballs to CVS (phpweb/distributions)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
165
53827be MFH
Lukas Smith authored
166 13. Once the release has been tagged, contact the PHP Windows development team
08748aa MFH
Lukas Smith authored
167 (internals-win@lists.php.net) so that Windows binaries can be created. Once
8384105 pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
168 those are made, they should be committed to SVN too.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
169
53827be MFH
Lukas Smith authored
170 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/ReleaseCheckli...
Lukas Smith authored
171
53827be MFH
Lukas Smith authored
172 15. When making a final release, also remind the PHP Windows development team
08748aa MFH
Lukas Smith authored
173 (internals-win@lists.php.net) to prepare the installer packages for Win32.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
174
08748aa MFH
Lukas Smith authored
175 Getting the stable release announced
471c480 MFH
Lukas Smith authored
176 ------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
177
08748aa MFH
Lukas Smith authored
178 1. Run the bumpRelease script for phpweb on your local checkout
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
179
180 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
181
182 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
183
184 a. ``$PHP_X_VERSION`` to the correct version
185
186 b. ``$PHP_X_DATE`` to the release date
187
188 c. ``$PHP_X_MD5`` array and update all the md5 sums
189
190 d. set ``$PHP_X_RC`` to false!
191
6a1d20a MFH
Lukas Smith authored
192 e. Make sure there are no outdated "notes" or edited "date" keys in the
193 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
194
195 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
196
08748aa MFH
Lukas Smith authored
197 3. Update the ChangeLog file for the given major version
198 f.e. ``ChangeLog-4.php`` from the NEWS file
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
199
200 a. go over the list and put every element on one line
201
202 b. check for &, < and > and escape them if necessary
203
204 c. remove all the names at the ends of lines
205
206 d. for marking up, you can do the following (with VI):
207
208 I. ``s/^- /<li>/``
209
210 II. ``s/$/<\/li>/``
211
212 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
213
74b8bc2 MFH: expanded the section about how to create the changelog
Lukas Smith authored
214 IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
215
216 V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
217
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
218 4. ``cp releases/4_4_0.php releases/4_4_1.php``
219
220 5. ``cvs add releases/4_4_1.php``
221
6a1d20a MFH
Lukas Smith authored
222 6. Update the ``releases/*.php`` file with relevant data. The release
223 announcement file should list in detail:
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
224
225 a. security fixes,
226
1e050b0 MFH
Lukas Smith authored
227 b. changes in behavior (whether due to a bug fix or not)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
228
6a1d20a MFH
Lukas Smith authored
229 7. Add a short notice to phpweb stating that there is a new release, and
230 highlight the major important things (security fixes) and when it is important
231 to upgrade.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
232
08748aa MFH
Lukas Smith authored
233 a. Call php bin/createNewsEntry in your local phpweb checkout
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
234
08748aa MFH
Lukas Smith authored
235 b. Add the content for the news entry
236
237 8. Commit all the changes.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
238
6a1d20a MFH
Lukas Smith authored
239 9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
240 php-general@lists.php.net and internals@lists.php.net with a text similar to
241 http://news.php.net/php.internals/17222.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
242
6a1d20a MFH
Lukas Smith authored
243 10. Update ``php-bugs-web/include/functions.php`` to include the new version
244 number, and remove the RC from there.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
245
246 11. Update ``qaweb/include/release-qa.php``
247
b7eefa0 Philip Olson Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
248 - Update $QA_RELEASES with the appropriate information, which means bumping
249 the version number to an upcoming version.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
250
b7eefa0 Philip Olson Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
251 Example: If PHP 5.3.7 is being released, then PHP 5.3.8 is the next QA version,
252 so replace 5.3.7 with 5.3.8 within $QA_RELEASES.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
253
42b3bf9 Hannes Magnusson MFH: Add guidelines for re-releasing
bjori authored
254 Re-releasing the same version (or -pl)
f0a55e2 MFH: formatting fix for the re-releasing section
Lukas Smith authored
255 --------------------------------------
42b3bf9 Hannes Magnusson MFH: Add guidelines for re-releasing
bjori authored
256
257 1. Commit the new binaries to ``phpweb/distributions/``
258
259 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
260
261 a. If only releasing for one OS, make sure you edit only those variables
262
263 b. ``$PHP_X_VERSION`` to the correct version
264
265 c. ``$PHP_X_DATE`` to the release date
266
267 d. ``$PHP_X_MD5`` array and update all the md5 sums
268
269 e. Make sure there are no outdated "notes" or edited "date" keys in the
270 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
271
272 3. Add a short notice to phpweb stating that there is a new release, and
273 highlight the major important things (security fixes) and when it is important
274 to upgrade.
275
276 a. Call php bin/createNewsEntry in your local phpweb checkout
277
278 b. Add the content for the news entry
279
280 4. Commit all the changes (``include/version.inc``, ``archive/archive.xml``,
281 ``archive/entries/YYYY-MM-DD-N.xml``)
282
283 5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
284 php-general@lists.php.net and internals@lists.php.net with a text similar to
285 the news entry.
Something went wrong with that request. Please try again.