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