GeoExt Release Procedure
Let us say that for the release in question, x is the API Version and y the incremental release number, e.g. 0.5.
- Push all remaining open tickets out of the current release's milestone. A Release procedure must be started with all the milestone's tickets closed.
- A vote must be passed by the Steering Committee to start a new release procedure.
- Make a Trac query to see a list of all the tickets that were closed for this release's milestone.
http://www.geoext.org/trac/geoext/query?milestone=x.y&resolution=fixed&order=component
- Based on the list from the previous step, create a wiki page for the new release. The page should be named Release/x.y/Notes. The release notes should contain a short description of added and modified features, with links to the respective documentation and tickets. Target audience is a GeoExt user.
- Create a new branch
svn copy -m "Branching for the x.y Release" http://svn.geoext.org/core/trunk http://svn.geoext.org/core/branches/x.y
- If this branch of GeoExt depends on something other than an OpenLayers tag, modify the svn:externals property for the branch to peg it to a specific OpenLayers revision (and commit the change to the branch). E.g.:
openlayers -r9737 http://svn.openlayers.org/trunk/openlayers
- Add the text from the release notes to the geoext directory in the branch (e.g. geoext/release-notes.txt).
- Release Candidate (RC) Cycle
Let us say that for the RC in question, Z is the incremental release candidate number (starting with 1)
- Compile a Release Announcement. The announcement should be located at Release/x.y/Announce/RCZ and should include one of the following:
- 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.
- If this is not the first RC, then: A brief summary of all of the tickets that were fixed in the last RC.
This should be a summary of the following trac query (where we let W be the previous RC number, i.e. Z-1):http://geoext.org/trac/geoext/query?status=closed&version=x.y+RCW&milestone=0.5&resolution=fixed&order=priority
- Tag the release:
svn copy -m "Tagging the x.y rcZ Release" http://svn.geoext.org/core/branches/x.y http://svn.geoext.org/core/tags/release-x.y-rcZ
- Export and build the single file version (assuming you have jstools installed, otherwise follow the [instructions http://svn.geoext.org/core/trunk/geoext/build/readme.txt]:
svn export http://svn.geoext.org/core/tags/release-x.y-rcZ GeoExt-x.y-rcZ cd GeoExt-x.y-rcZ/geoext/build make dist VERSION=release-x.y-rcZ
TODO: do we want a hosted version of the release candidate on geoext.org?
- Compile a Release Announcement. The announcement should be located at Release/x.y/Announce/RCZ and should include one of the following:
- Upload the zip to http://geoext.org/trac/geoext/wiki/Download
- Create a new Version entry in TRAC called "x.y RCZ" for bug tracking
- Add a link to the download and the release notes in http://svn.geoext.org/core/trunk/docsrc/downloads.rst and commit the change
- Set the release (also version when doing the 1st RC) in http://svn.geoext.org/core/trunk/docsrc/conf.py and commit the change
- Email the Release Announcement to the dev list, for the first release candidate also to the users list.
- Testing Cycle -- in which users and developers:
- Report new tickets
- Milestone: x.y
- Version: x.y RCZ
- Fix outstanding tickets:
- Commit only to trunk
- Set 'State' to 'Pullup' as they still need to be pulled up to the branch
- Do not mark as closed (i.e. leave them open)
- Run all tests in both Firefox 3 and IE 7.
- If any tests fail, return to Testing Cycle and report a new ticket.
- If all tests pass, a committer may send a proposal email to the dev list calling for:
- A new RC:
- The support of at least one other committer must be obtained.
- The committer chooses which patches to include in the the new RC or Final Release.
These should be taken from the the results of the following trac query:http://geoext.org/trac/geoext/query?milestone=x.y&state=%7EPullup&order=priority
- Bring up each ticket's patch from trunk into the branch
- Change each ticket's 'State' field to 'Complete'
- Add brief summary of the change to the Release/x.y/Notes wiki
- Mark ticket closed
- Committer exits Testing Cycle, starts new Release Candidate Cycle
- The Final Release:
- All tickets for the milestone must be closed in the previous RC and no new tickets opened in the current one.
- A successful voting round must pass the SteeringCommittee.
- Steering Committee member exits the Testing Cycle and Release Candidate Cycle and proceeds to the next step, Review the Release/x.y/Notes wiki...
- A new RC:
- Report new tickets
- 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:
http://geoext.org/trac/geoext/query?group=component&milestone=x.y&resolution=fixed&order=priority
- Tag the release:
export VERSION=x.y svn copy -m "Tagging the Final $VERSION Release" http://svn.geoext.org/core/branches/$VERSION http://svn.geoext.org/core/tags/release-$VERSION
- Export and build the single file version:
svn export http://svn.geoext.org/core/tags/release-$VERSION GeoExt-$VERSION cd GeoExt-$VERSION/geoext/build make dist VERSION=release-$VERSION
- Upload the zip to http://geoext.org/trac/geoext/wiki/Download
- Add a new hosted version on http://api.geoext.org:
ssh admin@www.geoext.org sudo su - www-data cd /var/www/api.geoext.org/htdocs/ curl "http://trac.geoext.org/attachment/wiki/Download/GeoExt-release-x.y.zip?format=raw" > GeoExt.zip unzip GeoExt.zip mv GeoExt x.y rm GeoExt.zip
- Create a new Version entry in TRAC called "x.y" for bug tracking.
- Add a link to the download and the release notes in http://svn.geoext.org/core/trunk/docsrc/downloads.rst and commit the change
- Set the release (also version when doing the 1st RC) in http://svn.geoext.org/core/trunk/docsrc/conf.py and commit the change
- Email the dev and users lists and announce the release containing:
- A link to the Release/x.y/Notes wiki
- A summary of the major features and bug fixes for the release
- Write a 50 word summary of the release and send to news_item at osgeo dot org (see http://www.osgeo.org/content/news/submit_news.html)