| 179 | | |
| 180 | | ''' OLD AFTER THIS ''' |
| 181 | | |
| 182 | | == Creating a Release Candidate == |
| 183 | | |
| 184 | | 1. '''Release Candidate (RC) Cycle''' [[br]]''Let us say that for the RC in question, '''Z''' is the incremental release candidate number (starting with 1)''[[br]][[br]] |
| 185 | | 1. Compile a Release Announcement. The announcement should be located at ''Release/x.y/Announce/RCZ'' and should include one of the following: |
| 186 | | * If this is the first RC (Z is 1): A link to the ''Release/x.y/Notes'' wiki, and a brief summary of its contents. |
| 187 | | * If this is ''not'' the first RC, then: A brief summary of all of the tickets that were fixed in the last RC.[[br]] ''This should be a summary of the following trac query (where we let W be the previous RC number, i.e. Z-1):'' |
| 188 | | {{{ |
| 189 | | http://trac.openlayers.org/query?status=closed&version=x.y+RCW&milestone=x.y+Release&resolution=fixed&order=priority |
| 190 | | }}} |
| 191 | | 1. Set VERSION_NUMBER in http://svn.openlayers.org/branches/openlayers/x.y/lib/OpenLayers.js and http://svn.openlayers.org/branches/openlayers/x.y/lib/OpenLayers/SingleFile.js to "Release x.y-rcZ" and commit the change. |
| 192 | | 1. Create a release tag for the RC (off the release branch): |
| 193 | | |
| 194 | | 1. Export and Build the single file versions: |
| 195 | | {{{ |
| 196 | | $ wget -O release-x.y-rcZ.tar.gz https://github.com/openlayers/openlayers/tarball/release-x.y-rcZ |
| 197 | | $ tar xvzf release-x.y-rcZ.tar.gz |
| 198 | | $ cd openlayers-openlayers-*/tools |
| 199 | | $ VERSION=x.y-rcZ ./release.sh |
| 200 | | }}} |
| 201 | | |
| 202 | | '''UNCHANGED AFTER THIS LINE''' |
| 203 | | |
| 204 | | 1. Create a new API release directory on openlayers.org and install the build |
| 205 | | {{{ |
| 206 | | mkdir /www/openlayers/docs/api/x.y-rcZ |
| 207 | | cd .. |
| 208 | | cp build/OpenLayers.js /www/openlayers/docs/api/x.y-rcZ |
| 209 | | cp -a img/ /www/openlayers/docs/api/x.y-rcZ |
| 210 | | cp -a theme/ /www/openlayers/docs/api/x.y-rcZ |
| 211 | | }}} |
| 212 | | 1. Build the tarball and copy it up to openlayers.org |
| 213 | | {{{ |
| 214 | | # First remove all .pyc files from the directory. |
| 215 | | rm tools/*.pyc |
| 216 | | cd .. |
| 217 | | tar cvfz OpenLayers-x.y-rcZ.tar.gz OpenLayers-x.y-rcZ/ |
| 218 | | cp OpenLayers-x.y-rcZ.tar.gz /www/openlayers/docs/download |
| 219 | | }}} |
| 220 | | 1. Build a zip archive to openlayers.org |
| 221 | | {{{ |
| 222 | | zip -9r OpenLayers-x.y-rcZ.zip OpenLayers-x.y-rcZ/ |
| 223 | | cp OpenLayers-x.y-rcZ.zip /www/openlayers/docs/download |
| 224 | | }}} |
| 225 | | 1. Create a new ''Version'' entry in TRAC called "x.y RCZ" for bug tracking[[br]][[br]] |
| 226 | | 1. Email the Release Announcement to the dev list.[[br]][[br]] |
| 227 | | |
| 228 | | == The Testing Cycle == |
| 229 | | |
| 230 | | 1. '''Testing Cycle''' -- in which users and developers: |
| 231 | | * Report new tickets |
| 232 | | 1. Milestone: ''x.y Release'' |
| 233 | | 1. Version: ''x.y RCZ'' |
| 234 | | * Fix outstanding tickets: |
| 235 | | 1. Commit only to trunk |
| 236 | | 1. Set 'State' to 'Pullup' as they still need to be pulled up to the branch |
| 237 | | 1. Do not mark as ''closed'' (i.e. leave them open) |
| 238 | | * Run all tests in both Firefox 1.5 and IE 6. |
| 239 | | * If any tests fail, return to '''Testing Cycle''' and report a new ticket. |
| 240 | | * If all tests pass, a committer may send a proposal email to the dev list calling for: |
| 241 | | * A new RC: |
| 242 | | 1. The support of at least one other committer must be obtained. |
| 243 | | 1. The committer chooses which patches to include in the the new RC or Final Release. [[br]] ''These should be taken from the the results of the following trac query:'' |
| 244 | | {{{ |
| 245 | | http://trac.openlayers.org/query?milestone=x.y+Release&keywords=%7Epullup&order=priority |
| 246 | | }}} |
| 247 | | 1. Bring up each ticket's patch from trunk into the branch |
| 248 | | 1. Change each ticket's 'State' field to 'Complete' |
| 249 | | 1. Add brief summary of the change to the ''Release/x.y/Notes'' wiki |
| 250 | | 1. Mark ticket ''closed'' |
| 251 | | 1. Committer exits '''Testing Cycle''', starts new '''Release Candidate Cycle''' |
| 252 | | * The Final Release: |
| 253 | | 1. All tickets for the milestone must be closed in the previous RC and no new tickets opened in the current one. |
| 254 | | 1. A successful [wiki:SteeringCommittee#DetailedProcess voting] round must pass the SteeringCommittee. |
| 255 | | 1. SteeringCommittee member exits the '''Testing Cycle''' and '''Release Candidate Cycle''' and proceeds to the next step, '''Review the ''Release/x.y/Notes'' wiki...'''[[br]][[br]] |
| 256 | | 1. Review the ''Release/x.y/Notes'' wiki and make sure it contains important info from all the closed tickets for the ''Release x.y'' milestone: |
| 257 | | {{{ |
| 258 | | http://trac.openlayers.org/query?group=component&milestone=x.y+Release&resolution=fixed&order=priority |
| 259 | | }}} |
| 260 | | 1. Update news.txt: both in trunk and in the branch, update the /news.txt file to reflect this release. Note that you must be both tricky and quick here, as you must *predict* the correct revision number for the actual tagging of the release, which you will do in the next step. Essentially, this is current release +2 (one for the check-in of news.txt, one for the tag). It seems absurd, but it is good to make sure that no one else is checking in at the same time as this maneuver assumes a quiet wire. |
| 261 | | 1. Set VERSION_NUMBER in http://svn.openlayers.org/branches/openlayers/x.y/lib/OpenLayers.js and http://svn.openlayers.org/branches/openlayers/x.y/lib/OpenLayers/SingleFile.js to "Release x.y-rcZ" and commit the change. |
| 262 | | 1. Tag the release: |
| 263 | | {{{ |
| 264 | | export VERSION=2.7 |
| 265 | | svn copy -m "Tagging the Final x.y Release" http://svn.openlayers.org/branches/openlayers/$VERSION http://svn.openlayers.org/tags/openlayers/release-$VERSION |
| 266 | | }}} |
| 267 | | 1. Export and Build the single file version: |
| 268 | | {{{ |
| 269 | | svn export http://svn.openlayers.org/tags/openlayers/release-$VERSION OpenLayers-$VERSION |
| 270 | | cd OpenLayers-$VERSION/build |
| 271 | | ./build.py |
| 272 | | }}} |
| 273 | | 1. Create a new API release directory on openlayers.org and install the build |
| 274 | | {{{ |
| 275 | | mkdir /www/openlayers/docs/api/$VERSION |
| 276 | | cd .. |
| 277 | | cp build/OpenLayers.js /www/openlayers/docs/api/$VERSION |
| 278 | | cp -a img/ /www/openlayers/docs/api/$VERSION |
| 279 | | cp -a theme/ /www/openlayers/docs/api/$VERSION |
| 280 | | }}} |
| 281 | | 1. Build the tarball and copy it up to openlayers.org |
| 282 | | {{{ |
| 283 | | # First remove all .pyc files from the directory. |
| 284 | | rm tools/*.pyc |
| 285 | | # move single file version |
| 286 | | cp build/OpenLayers.js OpenLayers.js |
| 287 | | rm build/OpenLayers.js |
| 288 | | |
| 289 | | cd .. |
| 290 | | mkdir OpenLayers-$VERSION/doc/devdocs |
| 291 | | perl ~crschmidt/NaturalDocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/devdocs -p OpenLayers-$VERSION/doc_config -s Default OL |
| 292 | | mkdir OpenLayers-$VERSION/doc/apidocs |
| 293 | | perl ~crschmidt/NaturalDocs -i OpenLayers-$VERSION/lib -o HTML OpenLayers-$VERSION/doc/apidocs -p OpenLayers-$VERSION/apidoc_config -s Default OL |
| 294 | | |
| 295 | | tar cvfz OpenLayers-$VERSION.tar.gz OpenLayers-$VERSION/ |
| 296 | | cp OpenLayers-$VERSION.tar.gz /www/openlayers/docs/download |
| 297 | | }}} |
| 298 | | 1. Build a zip archive to openlayers.org |
| 299 | | {{{ |
| 300 | | zip -9r OpenLayers-$VERSION.zip OpenLayers-$VERSION/ |
| 301 | | cp OpenLayers-$VERSION.zip /www/openlayers/docs/download |
| 302 | | }}} |
| 303 | | 1. Install the new API code on openlayers.org |
| 304 | | {{{ |
| 305 | | export X=2 |
| 306 | | ln -sf /www/openlayers/docs/api/$VERSION/OpenLayers.js /www/openlayers/docs/api |
| 307 | | ln -sf /www/openlayers/docs/api/$VERSION/img /www/openlayers/docs/api |
| 308 | | ln -sf /www/openlayers/docs/api/$VERSION/theme /www/openlayers/docs/api |
| 309 | | rm /www/openlayers/docs/api/$VERSION && ln -sf /www/openlayers/docs/api/$VERSION /www/openlayers/docs/api/$X |
| 310 | | }}} |
| 311 | | 1. Create a new ''Version'' entry in TRAC called "x.y" for bug tracking.[[br]][[br]] |
| 312 | | 1. Update HowToDownload wiki with new latest stable api release links. [[br]][[br]] |
| 313 | | 1. Email the dev and users lists and announce the release containing: |
| 314 | | * A link to the ''Release/x.y/Notes'' wiki |
| 315 | | * A summary of the major features and bug fixes for the release |
| 316 | | 1. Write a 50 word summary of the release and send to news_item at osgeo dot org |