Release Process
Preparation
The following process uses various release version numbers throughout. Modify this according to the current release.
- Clear all release-blocker bugs (or downgrade and carry forward), as reflected in the issue tracking system.
- For major releases, announce a code freeze date to the developer mailing list. Wait until the code freeze occurs. Minor releases are typically about minor new features and bug fixes, so we are not worrying about a freeze (release early, release often).
- Test EVERYTHING and make sure all tests pass. Seriously.
- Validate that all the third-party code (in .../lib) has appropriate entries in the file LEGAL.txt. Ensure that the URLs to each are current. Ensure that the licenses for each are compatible with the project license and each other. Update LEGAL.txt accordingly.
- Verify that the file LICENSE.txt still applies (e.g. check for new versions). Update that file.
- Ensure that the version number is up to date in:
- common.properties
- Generate an SVN log file. To do this use:
svn log -r HEAD:561 -v > mods-mulgara-1.2.txt
Replace the number shown (561) with the previous release point. This will be 1 larger than the first line in the most recent mods-mulgara- file found in KOWARI-MODIFICATIONS, or the last number in the comments section of this page. (Please keep these comments up to date with the release). - Rename svn_log to KOWARI-MODIFICATIONS/mods-mulgara-version.txt, and commit.
- Create a checkpoint:
Use an appropriate release name/version. Subversion will then prompt for a message on the tag. (We used to use https here and not http. Both still work, but http is faster)
svn cp http://mulgara.org/svn/mulgara/trunk http://mulgara.org/svn/mulgara/tags/release-1.1.0-final
Release script
The following steps are all run automatically by the create_release_file.sh script. The steps are described here (using a version number of 1.1.0):
- Export the release. This can be done on a developer machine, but is more efficient on the server. This means that the server needs to get its own checkout first. The script puts this checkout into ~/src/mulgara:
cd ~/src/mulgara svn co http://mulgara.org/svn/mulgara/tags/release-1.1.0-final release-1.1.0-final mkdir ~/src/mulgara/release svn export release-1.1.0-final ~/src/mulgara/release/mulgara-1.1.0
- Create a temporary release directory:
mkdir /tmp/v1.1.0
- Create the source archive from the new export, and copy to the release directory:
cd ~/src/mulgara/release tar czf mulgara-1.1.0-src.tar.gz mulgara-1.1.0 zip -r mulgara-1.1.0-src.zip mulgara-1.1.0 cp mulgara-1.1.0-src.tar.gz mulgara-1.1.0-src.zip /tmp/v1.1.0 - Build a distribution in a checkout:
cd ~/src/mulgara/release/mulgara-1.1.0/ ./build.sh dist cd ~/src/mulgara/release
- Create a temporary distribution directory, and copy the mulgara and querylang jars there (note that querylang was itql until v2.0.4):
mkdir -p ~/src/mulgara/release/tmp/mulgara-1.1.0/dist cp mulgara-1.1.0/dist/mulgara-1.1.0.jar tmp/mulgara-1.1.0/dist cp mulgara-1.1.0/dist/querylang-1.1.0.jar tmp/mulgara-1.1.0/dist
- Create the binary archive from these two jar files:
cd ~/src/mulgara/release/tmp tar czf mulgara-1.1.0-bin.tar.gz mulgara-1.1.0 zip -r mulgara-1.1.0-bin.zip mulgara-1.1.0 - Copy the remaining distribution jars to the distribution directory. Then repeat the last step to create the -bin-all archives:
cp ../mulgara-1.1.0/dist/*.[jw]ar mulgara-1.1.0/dist tar czf mulgara-1.1.0-bin-all.tar.gz mulgara-1.1.0 zip -r mulgara-1.1.0-bin-all.zip mulgara-1.1.0
- Copy all the binary archives to the release directory:
cp *.tar.gz *.zip /tmp/v1.1.0
- Change to the release directory, and generate the MD5 sums:
cd /tmp/v1.1.0 for i in *; do md5sum $i > $i.md5; done
Site Update
Once all the files are generated, they can be moved into place:
- Move the temporary release directory into place on the web server:
# presume that the web SVN is in ~/www cd ~/www/mulgara-web svn update mv /tmp/v1.1.0 files svn add files/v1.1.0 svn commit -m "New release" # or a better comment if you prefer
- Update the Web site via your subversion checkout (add a release notes page, update the downloads page, update news, and the main page).
- Download page needs search/replace on version number: :%s/x\.y\.z/x.y.v/g
- Also update Download with the new MD5 sums. You can get this as a formatted block with:
cat *.md5 > tmpfile vi tmpfile :%s#^\([^ ]*\) \(.*\)#<tr><td>\2</td><td>\1</td></tr># - The images/downloadNow.png file needs to be updated to reflect the version number. This requires Photoshop (maybe we should go with an unchanging image to avoid the need for Photoshop?). The photoshop file is in files/misc/downloadNow.psd.
- Go through the modifications file (in KOWARI-MODIFICATIONS) to list all the updates, fixes, etc, present in this release. Try to maintain consistency with previous releases.
- Commit all these changes to the site:
svn commit -m "Updated pages for new release" - Checkout locally and play with the new pages. Try to make sure it all looks good, and that the links work. If you don't have a checkout, then you can get it with:
svn co http://mulgara.org/svn/mulgara-web mulgara-web
- Back on the server, place updates on the web site:
cd /var/www/mulgara-web svn update - Announce the release to the mailing lists (mulgara-general@mulgara.org and mulgara-dev@mulgara.org)
Comments
The revision number for release 1.0.0 was 80.
Posted by Paul Gearon at Jul 16, 2007
The revision number for release 1.1.0 was 306.
Posted by Paul Gearon at Jul 16, 2007
Remember to make sure that http://docs.mulgara.org/index.htmlhas been updated to reflect the latest version number.
Posted by Paul Gearon at Jul 24, 2007
release 1.1.0 was actually revision 324
Posted by Paul Gearon at Nov 15, 2007
release 1.1.1 was revision 560
Posted by Paul Gearon at Apr 02, 2008
release 1.2 was revision 730
Posted by Paul Gearon at Apr 04, 2008
release 1.2.1 was revision 739
Posted by Paul Gearon at Apr 04, 2008
release 2.0-alpha was revision 948
Posted by Paul Gearon at May 15, 2008
release 2.0-beta was revision 1051
Posted by Paul Gearon at July 21, 2008
release 2.0.0 was revision 1106
Posted by Paul Gearon at July 23, 2008
release 2.0.1 was revision 1139
Posted by Paul Gearon at August 9, 2008
release 2.0.2 was revision 1151
Posted by Paul Gearon at August 22, 2008
release 2.0.3 was revision 1206
Posted by Paul Gearon at August 29, 2008
release 2.0.4 was revision 1235
Posted by Paul Gearon at September 4, 2008
release 2.0.5 was revision 1247
Posted by Paul Gearon at September 5, 2008
release 2.0.6 was revision 1338
Posted by Paul Gearon at October 16, 2008
Attachments
- create_release_file.sh (1.6 kB) -
This script implements the release process, starting by checking out the project, then proceeding from step 11 (export) onwards. The $VER variable must be set to the release version label (e.g. 2.0.1)
, added by pag on 05/16/08 15:19:13.
