===== Rolling an OpenSRF release =====
//Version 2.0 of OpenSRF is deprecated.//
- Create a local working branch for the release: $ git checkout -b tmp_rel_2_1.0 origin/rel_2_1
. This can be thrown away after you finish the release.
- Create the Changelog containing the changes for this release only. Since 1.6.0 we have been creating ChangeLogs that show the cumulative changes for a given release in reverse chronological order, distinguishing between alphas, betas, and point releases, with a header distinguishing each block of changes. That way we will not have to link to ten different ChangeLogs if we reach 1.6.10 for example:
$ # get the date of the last commit to the previous release
$ git log osrf_rel_2_0_1 # last commit was 2011-08-19
$ # this is not perfect, but it's close enough...
$ git log --pretty --numstat --summary --since 2011-08-19 > ChangeLog.2.1.0
- Bump version numbers in the temporary working branch:
* Update the AC_INIT() version number in the tagged release in ''version.m4''
* Update the ChangeLog in the tagged release
* Update the version stamp in the tagged release (edit src/perl/lib/OpenSRF.pm)
* README
- Follow the steps to build and test the release (see below) and ensure that all tests pass.
- Push the temporary release branch to origin: git push origin tmp_rel_2_1_0:rel_2_1
- Create a clean export of the files in a working directory (''/tmp'' in the following example) and generate a tarball that contains the autotools-ized files:
git archive --prefix=opensrf-/ tmp_rel_2_1_0 | (cd /tmp/ && tar xvf -)
cd /tmp/opensrf-/
autoreconf -i
cd ..
tar zcvf opensrf-2.1.0.tar.gz opensrf-2.1.0/
- //Bonus hygiene step:// Take the tarball you just created and test installing OpenSRF from it; at the very least, ensure that ''make check'' passes.
- If all is well, tag the branch (-s requires having a GPG public key installed) and push the new tag to the public repository:
git tag -s osrf_rel_2_1_0
git push --tags
- md5sum opensrf-2.1.0.tar.gz > opensrf-2.1.0.tar.gz.md5
cp opensrf-2.1.0/ChangeLog OpenSRF-ChangeLog-2.1.0
scp OpenSRF-ChangeLog-2.1.0 opensrf-2.1.0.tar.gz* open-ils.org:~/
- Create HTML versions of the install instructions and release notes for the web site:
asciidoc -a toc -a numbered opensrf-2.1.0/INSTALL
asciidoc -a toc -a numbered opensrf-2.1.0/doc/RELEASE_NOTES.txt
- Move the release files into the correct download directories:
* Previews / alphas / betas / release candidates go in ''/var/www/open-ils.org/downloads/previews/''
* Final releases go in ''/var/www/open-ils.org/downloads/''
* Install docs go in ''/var/www/open-ils.org/documentation/install/OpenSRF/''
* Release notes go in ''/var/www/open-ils.org/documentation/release/OpenSRF/''