Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 271 lines (173 sloc) 10.082 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
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
f536be8 @johannes - Fix svn command
johannes authored
28 svn co --depth=empty https://svn.php.net/repository/pecl
17c6188 @johannes - cvs2svn changes for the RELEASE_PROCESS
johannes authored
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 ti...
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 forma...
Lukas Smith authored
46 --------------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
47
4faab88 @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)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
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/ReleaseCheckli...
Lukas Smith authored
52
ee755fa @smalyshev update for git
smalyshev authored
53 3. Checkout the release branch for this release (e.g., PHP-5.4.2).
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
54
ee755fa @smalyshev update for git
smalyshev authored
55 4. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
56 Do not use abbreviations for alpha and beta.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
57
ee755fa @smalyshev update for git
smalyshev authored
58 5. Commit these changes to the branch with ``git commit -a``.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
59
ee755fa @smalyshev update for git
smalyshev authored
60 6. Tag the repository with the version, e.g.:
2b8e943 @smalyshev fix RCs
smalyshev authored
61 ``git tag -u YOURKEYID php-5.4.2RC2``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
62
ee755fa @smalyshev update for git
smalyshev authored
63 7. Push the changes to the main repo:
64 ``git push --tags origin HEAD``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
65
2b8e943 @smalyshev fix RCs
smalyshev authored
66 8. run: ``./makedist 5.4.2RC2``, this will export the tree, create configure
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
67 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
68
ee755fa @smalyshev update for git
smalyshev authored
69 9. 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
70 directory "downloads/". Copy them into there, so that the system can generate
71 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
72
ee755fa @smalyshev update for git
smalyshev authored
73 10. 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
74 f.e. http://downloads.php.net/derick/
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
75
ee755fa @smalyshev update for git
smalyshev authored
76 11. 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
77 (internals-win@lists.php.net) so that Windows binaries can be created. Once
78 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
79
0909b1b - made it clear which steps are relevant for RCs only
Lukas Smith authored
80 Getting the non stable release (alpha/beta/RC) announced
81 --------------------------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
82
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
83 1. Send an email (see example here: http://news.php.net/php.internals/19486)
84 **To** ``internals@lists.php.net`` and ``php-general@lists.php.net`` lists
85 pointing out "the location of the release" and "the possible release date of
86 either the next RC, or the final release".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
87
c98e92f primary tester ml needs to be in the TO not CC
Lukas Smith authored
88 2. Send an email (see example here http://news.php.net/php.pear.qa/5201) **To**
89 ``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
90 This email is to notify the selected projects about a new release so that they
91 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
92 as a moderator for ``primary-qa-tests@lists.php.net`` by having someone (Wez,
93 Derick) run the following commands for you:
94
95 ``ssh lists.php.net``
96
97 ``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
98
cb6655c @dsp mention git
dsp authored
99 3. Update ``qa.git/include/release-qa.php`` with the appropriate information.
c76af7c @philip Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
100 See the documentation within release-qa.php for more information, but all releases
101 and RCs are configured here. Only $QA_RELEASES needs to be edited.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
102
c76af7c @philip Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
103 Example: When rolling an RC, set the 'rc' with appropriate information for the
104 given version.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
105
c76af7c @philip Updated qa-release.php notes as per the new qa-release.php syntax
philip authored
106 Note: Remember to update the MD5 checksum information.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
107
cb6655c @dsp mention git
dsp authored
108 4. Update ``php.git/include/version.inc`` (x=major version number)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
109
4faab88 @pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
110 a. ``$PHP_x_RC`` = "5.4.0RC1"
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
111
112 b. ``$PHP_x_RC_DATE`` = "06 September 2007"
113
cb6655c @dsp mention git
dsp authored
114 5. Commit and push those changes:
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
115
cb6655c @dsp mention git
dsp authored
116 a. ``git commit -a && git push origin master``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
117
0dfd985 @dsp It is not longer required to update php_version.php in php-bugs/
dsp authored
118 6. 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
119 INSTALL and win32/install.txt files which are generated from the PHP manual sources.
120
4faab88 @pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
121 7. Publish the announce on www.php.net as well (for all releases, alpha, RCs or other)
122
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
123 Rolling a stable release
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
124 ------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
125
126 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
127
04aaae3 typo fix (thx chris)
Lukas Smith authored
128 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
129
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
130 3. **Merge** all related sections in NEWS (f.e. merge the 5.4.1RC1 and 5.4.0 sections)
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
131
132 4. Commit those changes
133
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
134 5. run the "scripts/dev/credits" script in php-src and commit the changes in the
135 credits files in ext/standard.
136
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
137 6. tag the repository with the version f.e. "``git tag -s php-5.4.1``"
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
138 (of course, you need to change that to the version you're rolling an RC for).
139 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
140
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
141 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
142 possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
143 was "5.4.1RC1" then the new one should be "5.4.1RC2-dev" - regardless if we get
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
144 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
145
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
146 8. Commit those changes
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
147
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
148 9. Log in onto the snaps box and go into the correct tree (f.e. the PHP-5.4
149 branch if you're rolling 5.5.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
150
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
151 10. You do not have to update the tree, but of course you can with "``git pull
152 origin <branch>``".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
153
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
154 11. run: ``./makedist php 5.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
155 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
156
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
157 12. Commit those two tarballs to Git (php-distributions.git)
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 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
160 (internals-win@lists.php.net) so that Windows binaries can be created. Once
4faab88 @pierrejoye - add announce steps, s,cvs,svn, MFH
pierrejoye authored
161 those are made, they should be committed to SVN too.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
162
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
163 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
164
f948c2c added note about running scripts/dev/credits
Lukas Smith authored
165 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
166 (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
167
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
168 Getting the stable release announced
13b5ad4 separate tagging of the zend dir should not be necessary, fix reST forma...
Lukas Smith authored
169 ------------------------------------
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
170
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
171 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
172
173 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
174
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
175 b. In case multiple PHP minor versions are in active development you have
176 to manually copy the old information to include/releases.inc
177
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
178 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
179
180 a. ``$PHP_X_VERSION`` to the correct version
181
182 b. ``$PHP_X_DATE`` to the release date
183
184 c. ``$PHP_X_MD5`` array and update all the md5 sums
185
186 d. set ``$PHP_X_RC`` to false!
187
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
188 e. Make sure there are no outdated "notes" or edited "date" keys in the
189 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
190
191 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
192
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
193 3. Update the ChangeLog file for the given major version
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
194 f.e. ``ChangeLog-5.php`` from the NEWS file
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
195
196 a. go over the list and put every element on one line
197
198 b. check for &, < and > and escape them if necessary
199
200 c. remove all the names at the ends of lines
201
202 d. for marking up, you can do the following (with VI):
203
204 I. ``s/^- /<li>/``
205
206 II. ``s/$/<\/li>/``
207
208 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
209
e15522c expanded the section about how to create the changelog
Lukas Smith authored
210 IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
211
212 V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
213
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
214 4. ``cp releases/5_4_0.php releases/5_4_1.php``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
215
33fcec5 @dsp Update RELEASE PROCESS
dsp authored
216 5. ``git add releases/5_4_1.php``
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
217
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
218 6. Update the ``releases/*.php`` file with relevant data. The release
219 announcement file should list in detail:
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
220
221 a. security fixes,
222
7ca6f66 lets me all american :)
Lukas Smith authored
223 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
224
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
225 7. Add a short notice to phpweb stating that there is a new release, and
226 highlight the major important things (security fixes) and when it is important
227 to upgrade.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
228
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
229 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
230
f453f56 updated in regards to windows, added some clarifications and addition ti...
Lukas Smith authored
231 b. Add the content for the news entry
232
233 8. Commit all the changes.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
234
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
235 9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
236 php-general@lists.php.net and internals@lists.php.net with a text similar to
237 http://news.php.net/php.internals/17222.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseCheckli...
Lukas Smith authored
238
6b8c88e @bjori Add guidelines for re-releasing
bjori authored
239 Re-releasing the same version (or -pl)
6a941c6 formatting fix for the re-releasing section
Lukas Smith authored
240 --------------------------------------
6b8c88e @bjori Add guidelines for re-releasing
bjori authored
241
242 1. Commit the new binaries to ``phpweb/distributions/``
243
244 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
245
246 a. If only releasing for one OS, make sure you edit only those variables
247
248 b. ``$PHP_X_VERSION`` to the correct version
249
250 c. ``$PHP_X_DATE`` to the release date
251
252 d. ``$PHP_X_MD5`` array and update all the md5 sums
253
254 e. Make sure there are no outdated "notes" or edited "date" keys in the
255 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
256
257 3. Add a short notice to phpweb stating that there is a new release, and
258 highlight the major important things (security fixes) and when it is important
259 to upgrade.
260
261 a. Call php bin/createNewsEntry in your local phpweb checkout
262
263 b. Add the content for the news entry
264
265 4. Commit all the changes (``include/version.inc``, ``archive/archive.xml``,
266 ``archive/entries/YYYY-MM-DD-N.xml``)
267
268 5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
269 php-general@lists.php.net and internals@lists.php.net with a text similar to
270 the news entry.
Something went wrong with that request. Please try again.