User Tools

Site Tools


This is an old revision of the document!

Rolling an Evergreen Release

¡This is a work in progress. It will grow and change!

  • Install the packager dependencies using the Evergreen installer makefile: (PENDING MERGE)
# sudo make -f Open-ILS/src/extras/Makefile.install <os>-packager
$ sudo make -f Open-ILS/src/extras/Makefile.install ubuntu-trusty-packager
  • Create a local working branch for the release:
$ git checkout -b rel_2_8_0 origin/master
  • Clone (or update) the translations repository in a new directory as a peer to Evergreen.
$ cd ../; 
# Clone the repository if necessary
$ bzr branch lp:~denials/evergreen/translation-export
# If already cloned, simply pull in the latest changes
$ cd translation-export; bzr pull; cd ../
  • Sync translated files with Evergreen
    • Update PO files in Evergreen
      $ Evergreen/build/i18n/scripts/update_pofiles -l translation-export -e Evergreen
      $ cd Evergreen
      $ git add . # pick up updates
      $ git commit -asm "Translation updates - po files"
    • Update pot in Evergreen
      $ cd build/i18n && make newpot
    • Commit any changes that do more than modify metadata. Using the script below, enter 'k' to keep and commit any non-trivial changes.
      $ cd ../../ # back to Evergreen
      $ for file in $(git diff --name-only); do git diff $file; echo -e "\n====================  K for keep ==\n"; read X; if [ "$X" = "k" -o "$X" = "K" ]; then git add $file; fi; done
      $ git checkout -- . # kill unneeded changes
      $ git commit -asm "Translation updates - newpot"
    • Or, you could download and run this.
  • Edit ./Open-ILS/src/perlmods/lib/ and set:
our $VERSION = '2.0800';
  • Commit the version change
$ git commit -asm "bumping Perl version string for 2.8"
  • Update relator codes and commit the change (if necessary)
$ perl build/tools/relator_map > Open-ILS/src/templates/opac/parts/relators.tt2
# if 'git status' shows changes, commit them.
$ git commit -sm "Updating relator codes for 2.8" Open-ILS/src/templates/opac/parts/relators.tt2
  • Create release notes (for major version bumps)
$ ./ -r 2_8
  • Remove 2.8-specific files from docs/RELEASE_NOTES_NEXT.
    • Running the following in the docs/RELEASE_NOTES_NEXT directory should work:
$ find . -name '*.txt' -mindepth 2 -exec git rm {} \;
  • Replace references to current version with new version in docs/installation/server_upgrade.txt
  • Run the release builder script
$ export PATH=$PATH:/openils/bin
$ build/tools/make_release -c -v 2.8.0 -f origin/tags/rel_2_7_3
  • Additional notes on make_release options:
    • Use the -v flag when your branch name does not match the normal pattern, otherwise auto-detect works
    • Use the -j flag to point at wherever your OpenSRF javascript lib source is, if not already installed
      • -j ~/Git/OpenSRF/src/javascript/
    • Use the -c flag to make with the web client
    • The -f flag sets the branch "from" which this release this being made from, aka what was the last version of Evergreen prior to the one you're making. This guides the make_release towards creating a version-upgrade from X to Y.
    • You can add the -r option to edit the upgrade script before it goes into the tarball. This may be necessary if tables that get altered in the upgrade scripts also have updates or inserts of new data.

Generate release docs

# copy README and docs/RELEASE_NOTE_2_8.txt to ../release/
# in ../release/
$ asciidoc -a toc -a numbered README_2_8
$ asciidoc -a toc -a numbered RELEASE_NOTES_2_8.txt
# delete the originals

Upload to web server

Move the release files into the correct download directories:

  • Previews / alphas / betas / release candidates go in /var/www/
  • Final releases go in /var/www/
  • Install docs go in /var/www/
  • Release notes go in /var/www/

"Tag" Working Branch

git push origin rel_2_8_0:tags/rel_2_8_0

Other notes

The following additional "to-do's" that need to be moved into actual procedures:

dev/release_process/evergreen/2.8.1443017724.txt.gz · Last modified: 2015/09/23 10:15 by dyrcona

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