User Tools

Site Tools


dev:release_process:opensrf:how_to_build

Rolling an OpenSRF release

NB: The following example prepares a release for OpenSRF version 3.3.2. Be sure to adjust version numbers as appropriate for whatever release number you are building.

  1. Ensure that the necessary packages are installed. On a Debian-derived system (including Ubuntu), you will need the following:
    1. git
    2. build-essential
    3. autoconf
    4. automake
    5. libtool
    6. pkg-config
    7. tar
    8. asciidoc
    9. source-highlight
  2. Create a local working branch for the release:
    $ git checkout -b rel_3_3 origin/rel_3_3
  3. Add release notes for the latest release at the top of doc/RELEASE_NOTES.txt
  4. Bump version numbers in the working branch:
    • Update the AC_INIT() version number in the tagged release in version.m4
    • Update the version stamp in the tagged release (edit src/perl/lib/OpenSRF.pm)
    • README
  5. Commit the changes:
    $ git commit -as -m 'Bump up version numbers for 3.3.2'
  6. Update the ChangeLog in the tagged release:
    $ # get the date of the last commit to the previous release
    $ git show osrf_rel_3_3_1 # last commit was 2024-06-25
    $ # this is not perfect, but it's close enough...
    $ git log --numstat --since 2024-06-26 > ChangeLog
    $ git add ChangeLog
    $ git commit -sm 'Update ChangeLog for 3.3.2'
  7. Follow the steps to build and test the release and ensure that all tests pass.
  8. Push the working branch to origin:
    git push origin rel_3_3
  9. Tag the branch and push the new tag to the public repository:
    $ git tag -a osrf_rel_3_3_2 -m 'OpenSRF release 3.3.2'
    $ git push --tags
  10. 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-3.3.2/ rel_3_3 | tar -C /tmp -xv
    $ cd /tmp/opensrf-3.3.2/
    $ autoreconf -i
    $ cd ..
    $ tar zcvf opensrf-3.3.2.tar.gz opensrf-3.3.2/
    $ md5sum opensrf-3.3.2.tar.gz > opensrf-3.3.2.tar.gz.md5
    $ cp opensrf-3.3.2/ChangeLog OpenSRF-ChangeLog-3.3.2
    $ cp opensrf-3.3.2/README README_3_3_2.adoc
    $ cp opensrf-3.3.2/doc/RELEASE_NOTES.txt RELEASE_NOTES_3_3_2.adoc
    $ asciidoc -a toc -a numbered README_3_3_2.adoc
    $ asciidoc -a toc -a numbered RELEASE_NOTES_3_3_2.adoc
    # Copy the bundle to the community server
    $ scp -P 3399 OpenSRF-ChangeLog-3.3.2 opensrf-3.3.2.tar.gz* *.html evergreen-ils.org:~/
  11. Bonus hygiene step: Take the tarball you just created and test installing OpenSRF from it; at the very least, ensure that make check passes.
  12. 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/how_to_build.txt · Last modified: 2024/06/27 11:59 by dyrcona

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.