Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 206 lines (127 sloc) 7.293 kB
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
1 =======================
2 PHP Release Process
3 =======================
4
5 Rolling a release candidate
6 ---------------------------
7
8 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
9
04aaae3 typo fix (thx chris)
Lukas Smith authored
10 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
11
12 3. Commit those changes
13
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
14 4. tag the repository with "``cvs tag php_4_4_1RC1``" (of course, you need to
15 change that to the version you're rolling an RC for). When making 5.X release,
16 you need to tag the Zend directory separately!!
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
17
04aaae3 typo fix (thx chris)
Lukas Smith authored
18 5. 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
19 and possibly ``NEWS`` again, to the **next** version. F.e. if the release
20 candidate was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless
21 if we get a new RC or not. This is to make sure ``version_compare()`` can
22 correctly work.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
23
24 6. Commit those changes
25
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
26 7. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
27 branch if you're rolling 4.4.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
28
29 8. You do not have to update the tree, but ofcourse you can with "``cvs up -dP``".
30
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
31 9. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
32 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
33
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
34 10. Copy those two tarballs to www.php.net, in your homedir their should be a
35 directory "downloads/". Copy them into there, so that the system can generate
36 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
37
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
38 11. Now the RC can be found on http://downloads.php.net/yourname,
39 f.e. http://downloads.php.net/derick/
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
40
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
41 12. Once the release has been tagged, contact Edin Kadribasic (edink @ usual
42 php e-mail) so that Windows binaries can be created. Once those are made, they
43 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
44
45 Getting the Release Candidate out there
46 ---------------------------------------
47
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
48 1. Send an email (see example here: http://news.php.net/php.internals/19486)
49 **To** ``internals@lists.php.net`` and ``php-general@lists.php.net`` lists
50 pointing out "the location of the release" and "the possible release date of
51 either the next RC, or the final release".
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
52
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
53 2. Send an email (see example here http://news.php.net/php.qa/26069) **To**
54 ``php-qa@lists.php.net`` and **Bcc** everybody on the
55 `PhP4yz<http://wiki.pooteeweet.org/PhP4yz>`_,
56 `PhP5yz<http://wiki.pooteeweet.org/PhP5yz>`_ or
57 `PhP6yz<http://wiki.pooteeweet.org/PhP6yz>`_ list (depending on the PHP version).
58 This email is to notify the selected projects about a new RC so that they can
59 make sure their projects keep working.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
60
61 3. Update the MD5 sums in ``qaweb/include/rc-md5sums.txt``.
62
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
63 4. Update in ``qaweb/include/release-qa.php`` constants with the new RC and
64 commit this.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
65
66 a. ``$BUILD_TEST_RELEASES`` = array("4.4.7RC1", "5.2.2RC1")
67
68 b. ``$CURRENT_QA_RELEASE_4`` = "4.4.7RC1" (``$CURRENT_QA_RELEASE_5`` for PHP5)
69
70 c. ``$RELEASE_PROCESS`` = array(4 => true, 5 => true)
71
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
72 1. Update in ``php-bugs-web/include/functions.inc`` the ``show_version_option``
73 function to include the new RC and commit.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
74
75 2. Run the bumpRelease script for phpweb
76
77 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
78
79 3. Update ``phpweb/include/version.inc`` (x=major version number)
80
81 a. ``$PHP_x_RC`` = "5.3.0RC1"
82
83 b. ``$PHP_x_RC_DATE`` = "06 September 2007"
84
85 4. Commit those changes:
86
87 a. ``cvs commit include/version.inc include/releases.inc``
88
89 Rolling a release
90 -----------------
91
92 1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
93
04aaae3 typo fix (thx chris)
Lukas Smith authored
94 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
95
96 3. **Merge** all related sections in NEWS (f.e. merge the 4.4.1RC1 and 4.4.0 sections)
97
98 4. Commit those changes
99
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
100 5. tag the repository with "``cvs tag php_4_4_1``" (of course, you need to
101 change that to the version you're rolling an RC for). When making 5.X release,
102 you need to tag the Zend directory separately!!
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
103
04aaae3 typo fix (thx chris)
Lukas Smith authored
104 6. 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
105 possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
106 was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless if we get
107 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
108
109 7. Commit those changes
110
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
111 8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
112 branch if you're rolling 4.4.x releases).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
113
114 9. You do not have to update the tree, but ofcourse you can with "``cvs up -dP``".
115
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
116 10. run: ``./makedist php 4.4.1``, this will export the tree, create configure
117 and build two tarballs (one gz and one bz2).
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
118
119 11. Commit those two tarballs to CVS (phpweb/distributions)
120
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
121 12. Once the release has been tagged, contact Edin Kadribasic (edink @ usual
122 php e-mail) so that Windows binaries can be created. Once those are made, they
123 should be committed to CVS too.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
124
125 13. Check if the pear files are updated (phar for 5.1+ or run pear/make-pear-bundle.php with 4.4)
126
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
127 14. When making a final release, also remind Edin to ask John to prepare the
128 installer packages for Win32.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
129
130 Getting the Release out there
131 -----------------------------
132
133 1. Run the bumpRelease script for phpweb
134
135 a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
136
137 2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
138
139 a. ``$PHP_X_VERSION`` to the correct version
140
141 b. ``$PHP_X_DATE`` to the release date
142
143 c. ``$PHP_X_MD5`` array and update all the md5 sums
144
145 d. set ``$PHP_X_RC`` to false!
146
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
147 e. Make sure there are no outdated "notes" or edited "date" keys in the
148 ``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
149
150 f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
151
152 3. Update the ChangeLog file ``ChangeLog-4.php`` from the NEWS file
153
154 a. go over the list and put every element on one line
155
156 b. check for &, < and > and escape them if necessary
157
158 c. remove all the names at the ends of lines
159
160 d. for marking up, you can do the following (with VI):
161
162 I. ``s/^- /<li>/``
163
164 II. ``s/$/<\/li>/``
165
166 III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
167
168 4. ``cp releases/4_4_0.php releases/4_4_1.php``
169
170 5. ``cvs add releases/4_4_1.php``
171
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
172 6. Update the ``releases/*.php`` file with relevant data. The release
173 announcement file should list in detail:
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
174
175 a. security fixes,
176
177 b. changes in behaviour (whether due to a bug fix or not)
178
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
179 7. Add a short notice to phpweb stating that there is a new release, and
180 highlight the major important things (security fixes) and when it is important
181 to upgrade.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
182
183 a. php bin/createNewsEntry
184
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
185 8. Commit all the changes, do not release on Fridays, Saturdays or Sundays
186 because the sysadmins can not upgrade stuff then.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
187
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
188 9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
189 php-general@lists.php.net and internals@lists.php.net with a text similar to
190 http://news.php.net/php.internals/17222.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
191
89950cc link primary tester URLs and tried to limit lines to 80 chars
Lukas Smith authored
192 10. Update ``php-bugs-web/include/functions.php`` to include the new version
193 number, and remove the RC from there.
193b11c - port from todo wiki to reST (http://wiki.pooteeweet.org/ReleaseChec…
Lukas Smith authored
194
195 11. Update ``qaweb/include/release-qa.php``
196
197 a. Update the $BUILD_TEST_RELEASES array with the release name
198
199 b. Update $RELEASE_PROCESS array (set to false)
200
201 I. For PHP4: Set $CURRENT_QA_RELEASE_4 to false
202
203 II. For PHP5: Set $CURRENT_QA_RELEASE_5 to false
204
205 12. Rebuild the English and Japanese docs (ask Derick)
Something went wrong with that request. Please try again.