===== 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.
- Ensure that the necessary packages are installed. On a Debian-derived system (including Ubuntu), you will need the following:
- git
- build-essential
- autoconf
- automake
- libtool
- pkg-config
- tar
- asciidoc
- source-highlight
- Create a local working branch for the release: $ git checkout -b rel_3_3 origin/rel_3_3
- Add release notes for the latest release at the top of ''doc/RELEASE_NOTES.txt''
- 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
- Commit the changes:
$ git commit -as -m 'Bump up version numbers for 3.3.2'
- 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'
- Follow the steps to build and test the release and ensure that all tests pass.
- Push the working branch to origin: git push origin rel_3_3
- 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
- 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:~/
- //Bonus hygiene step:// Take the tarball you just created and test installing OpenSRF from it; at the very least, ensure that ''make check'' passes.
- 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/''