===== 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/''