User Tools

Site Tools


dev:release_process:opensrf:2.0

Rolling an OpenSRF release

  1. 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.

  2. 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
  3. 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
  4. Follow the steps to build and test the release (see below) and ensure that all tests pass.
  5. Push the temporary release branch to origin:
    git push origin tmp_rel_2_1_0:rel_2_1
  6. 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-<version>/ tmp_rel_2_1_0 | (cd /tmp/ && tar xvf -)
    cd /tmp/opensrf-<version>/
    autoreconf -i
    cd ..
    tar zcvf opensrf-2.1.0.tar.gz opensrf-2.1.0/
  7. Bonus hygiene step: Take the tarball you just created and test installing OpenSRF from it; at the very least, ensure that make check passes.
  8. 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
  9. 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:~/
  10. 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
  11. 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/
dev/release_process/opensrf/2.0.txt · Last modified: 2012/10/30 23:42 by dbs

© 2008-2017 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a member of Software Freedom Conservancy.