Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 279 lines (179 sloc) 10.981 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 @dsp mention git
dsp authored
107 3. Update ``qa.git/include/release-qa.php`` with the appropriate information.
b7eefa0 @philip 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 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 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 @dsp 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 @dsp 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 @dsp 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 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
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
138 3. **Merge** all related sections in NEWS (f.e. merge the 5.4.1RC1 and 5.4.0 sections)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
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
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
145 6. tag the repository with the version f.e. "``git tag -s php-5.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
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
151 was "5.4.1RC1" then the new one should be "5.4.1RC2-dev" - regardless if we get
6a1d20a MFH
Lukas Smith authored
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
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
156 9. Log in onto the snaps box and go into the correct tree (f.e. the PHP-5.4
157 branch if you're rolling 5.5.x releases).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
158
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
159 10. You do not have to update the tree, but of course you can with "``git pull
160 origin <branch>``".
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
161
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
162 11. run: ``./makedist php 5.4.1``, this will export the tree, create configure
6a1d20a MFH
Lukas Smith authored
163 and build two tarballs (one gz and one bz2).
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
164
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
165 12. Commit those two tarballs to Git (php-distributions.git)
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
166
53827be MFH
Lukas Smith authored
167 13. Once the release has been tagged, contact the PHP Windows development team
08748aa MFH
Lukas Smith authored
168 (internals-win@lists.php.net) so that Windows binaries can be created. Once
8384105 @pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
169 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
170
53827be MFH
Lukas Smith authored
171 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
172
53827be MFH
Lukas Smith authored
173 15. When making a final release, also remind the PHP Windows development team
08748aa MFH
Lukas Smith authored
174 (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
175
08748aa MFH
Lukas Smith authored
176 Getting the stable release announced
471c480 MFH
Lukas Smith authored
177 ------------------------------------
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
178
08748aa MFH
Lukas Smith authored
179 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
180
181 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
182
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
183 b. In case multiple PHP minor versions are in active development you have
184 to manually copy the old information to include/releases.inc
185
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
186 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
187
188 a. ``$PHP_X_VERSION`` to the correct version
189
190 b. ``$PHP_X_DATE`` to the release date
191
192 c. ``$PHP_X_MD5`` array and update all the md5 sums
193
194 d. set ``$PHP_X_RC`` to false!
195
6a1d20a MFH
Lukas Smith authored
196 e. Make sure there are no outdated "notes" or edited "date" keys in the
197 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
198
199 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
200
08748aa MFH
Lukas Smith authored
201 3. Update the ChangeLog file for the given major version
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
202 f.e. ``ChangeLog-5.php`` from the NEWS file
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
203
204 a. go over the list and put every element on one line
205
206 b. check for &, < and > and escape them if necessary
207
208 c. remove all the names at the ends of lines
209
210 d. for marking up, you can do the following (with VI):
211
212 I. ``s/^- /<li>/``
213
214 II. ``s/$/<\/li>/``
215
216 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
217
74b8bc2 MFH: expanded the section about how to create the changelog
Lukas Smith authored
218 IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
219
220 V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
221
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
222 4. ``cp releases/5_4_0.php releases/5_4_1.php``
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
223
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
224 5. ``git add releases/5_4_1.php``
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
225
6a1d20a MFH
Lukas Smith authored
226 6. Update the ``releases/*.php`` file with relevant data. The release
227 announcement file should list in detail:
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
228
229 a. security fixes,
230
1e050b0 MFH
Lukas Smith authored
231 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
232
6a1d20a MFH
Lukas Smith authored
233 7. Add a short notice to phpweb stating that there is a new release, and
234 highlight the major important things (security fixes) and when it is important
235 to upgrade.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
236
08748aa MFH
Lukas Smith authored
237 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
238
08748aa MFH
Lukas Smith authored
239 b. Add the content for the news entry
240
241 8. Commit all the changes.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
242
6a1d20a MFH
Lukas Smith authored
243 9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
244 php-general@lists.php.net and internals@lists.php.net with a text similar to
245 http://news.php.net/php.internals/17222.
5d37d09 - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
246
42b3bf9 @bjori MFH: Add guidelines for re-releasing
bjori authored
247 Re-releasing the same version (or -pl)
f0a55e2 MFH: formatting fix for the re-releasing section
Lukas Smith authored
248 --------------------------------------
42b3bf9 @bjori MFH: Add guidelines for re-releasing
bjori authored
249
250 1. Commit the new binaries to ``phpweb/distributions/``
251
252 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
253
254 a. If only releasing for one OS, make sure you edit only those variables
255
256 b. ``$PHP_X_VERSION`` to the correct version
257
258 c. ``$PHP_X_DATE`` to the release date
259
260 d. ``$PHP_X_MD5`` array and update all the md5 sums
261
262 e. Make sure there are no outdated "notes" or edited "date" keys in the
263 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
264
265 3. Add a short notice to phpweb stating that there is a new release, and
266 highlight the major important things (security fixes) and when it is important
267 to upgrade.
268
269 a. Call php bin/createNewsEntry in your local phpweb checkout
270
271 b. Add the content for the news entry
272
273 4. Commit all the changes (``include/version.inc``, ``archive/archive.xml``,
274 ``archive/entries/YYYY-MM-DD-N.xml``)
275
276 5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
277 php-general@lists.php.net and internals@lists.php.net with a text similar to
278 the news entry.
Something went wrong with that request. Please try again.