Table of Contents

Rolling an Evergreen Release

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

Helpful videos

These recordings show various release building activities.

Prerequisites

Make sure you are in an environment with your git ssh keys, since you will need to be pushing commits to the git server.

See Versioning for notes on the numbering scheme.

Install packager dependencies

# sudo make -f Open-ILS/src/extras/Makefile.install <os>-packager
$ sudo make -f Open-ILS/src/extras/Makefile.install ubuntu-focal-packager

[Note that your Ubuntu version may be something other than 'focal'; substitute the appropriate version keyword]

Update relator codes (requires commit bit)

$ perl build/tools/relator_map > Open-ILS/src/templates/opac/parts/relators.tt2
$ cp Open-ILS/src/templates/opac/parts/relators.tt2 Open-ILS/src/templates-bootstrap/opac/parts/relators.tt2
# if 'git status' shows changes, commit them.
$ git commit -sm "Updating relator codes for XXX" Open-ILS/src/templates/opac/parts/relators.tt2 Open-ILS/src/templates-bootstrap/opac/parts/relators.tt2

Prepare release notes (for major version bumps only)

=> See also the Release Notes Process for DIG Release Coordinator

git checkout -b rel_3_7 main
$ vi docs/antora.yml

edit 'latest' -> '3.7'

$ cd docs/RELEASE_NOTES_NEXT
$ ./create_release_notes.sh -r 2_8
$ find . -mindepth 2 -name '*.txt' -exec git rm {} \;
$ find . -mindepth 2 -name '*.adoc' -exec git rm {} \;
$ ../tools/extract_release_notes_from_commits.pl --help
$ ../tools/extract_release_notes_from_commits.pl --current-branch=rel_3_7_1 --prev-release-branch=rel_3_7_0

For an alpha or beta release, this rough process is probably enough. For a real #.0 release, the resulting compiled release notes will need some TLC/cleanup.

Translations, Part 1: newpot (requires commit bit)

Translations, Part 1a: Angular Staff Client Updates (requires a POEditor account)

Setting up your git branch

$ git checkout -b tags/rel_3_13_1 rel_3_13

Translations, Part 2: update_pofiles

$ cd ../; 
# Clone the repository if necessary
$ bzr branch lp:~evergreen-bugs/evergreen/translation-export-main # for main branch
$ bzr branch lp:~evergreen-bugs/evergreen/translation-export-3.12 # for 3.12.x, e.g.
# If already cloned, simply pull in the latest changes
$ cd translation-export-SERIES; bzr pull; cd ../
# series here is "main" or "3.10" or whatever corresponding to the release
# that you are building
$ Evergreen/build/i18n/scripts/update_pofiles -l translation-export-SERIES -e Evergreen
$ cd Evergreen
$ git add -A build # pick up updates
$ git commit -sm "Translation updates - po files"

Translations, Part 2a: Update Angular Staff Client Translations (requires a POEditor account)

  1. Export (as xtb) any translations from the POEditor site that have over 50% translations available.
  2. Save them to Open-ILS/src/eg2/src/locale/ and commit using the following steps:
$ cp ~/download/path/messages.*.xtb ./Open-ILS/src/eg2/src/locale/
$ git add -A Open-ILS/src/eg2/src/locale/
$ git commit -asm "Translation updates - xtb files"

Other version number changes

our $VERSION = '3.0101';
$ git commit -asm "bumping Perl version string for 2.8"

Update server upgrade documentation

Run the release builder script

$ export PATH=$PATH:/openils/bin
$ build/tools/make_release -v 2.8.0 -f origin/tags/rel_2_7_3

Note that you will get a lot of warnings related to the po translation files. These can be safely ignored.

Generate release docs

From the Evergreen directory:

# copy README and release notes to ../release/
$ export RELEASE=3_12
$ cp README ../release/README_$RELEASE
$ cp docs/RELEASE_NOTES_$RELEASE.adoc ../release/
$ cd ../release/
# in ../release/
$ asciidoc -a toc -a numbered README_$RELEASE
$ asciidoc -a toc -a numbered RELEASE_NOTES_$RELEASE.adoc
# delete the originals
$ rm README_$RELEASE RELEASE_NOTES_$RELEASE.adoc

Upload to web server (requires access to the evergreen-ils.org web server)

Move the release files into the correct download directories on the evergreen-ils.org web server (which is also known as lupin):

"Tag" Working Branch (requires commit bit)

git push origin tags/rel_3_12_1:tags/rel_3_12_1

"Forward-port" Version Upgrade Script (and, optionally, po files updates) (requires commit bit)

If doing a final release, you will need to copy the upgrade script you created to main and your current rel_x_y branch. If you skip copying to the rel_x_y branch in particular, your next point release will be missing an upgrade script in the middle of the chain!

Announcing and recording the release