¡This is a work in progress. It will grow and change!
These recordings show various release building activities.
Make sure you are in an environment with your git ssh keys, since you will need to be pushing commits to the git server.
To upload translations to Launchpad, you will also need to register an ssh key with Launchpad. See the 3.13 translation page for an example.
See Versioning for notes on the numbering scheme.
# 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]
$ 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
See also: Release Notes Process for DIG Release Coordinator
Cut a new release branch (such as rel_3_13):
git checkout -b rel_3_13 main
Create release notes:
First, the RELEASE_NOTE_NEXT piece.
$ cd docs/RELEASE_NOTES_NEXT $ ./create_release_notes.sh -r 3.13
After that script runs, you can remove 3.13-specific files from docs/RELEASE_NOTES_NEXT. Running the following in the docs/RELEASE_NOTES_NEXT directory should work:
$ find . -mindepth 2 -name '*.txt' -exec git rm {} \; $ find . -mindepth 2 -name '*.adoc' -exec git rm {} \; $ echo "" > miscellaneous.adoc
Then, the extract release notes from the commit piece.
Next, use the `extract_release_notes_from_commits.pl` script to get the rest of the release notes.
$ ../tools/extract_release_notes_from_commits.pl --help $ ../tools/extract_release_notes_from_commits.pl --current-branch=rel_3_13_beta --prev-release-branch=main
git commit -sm "3.13 release notes"
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.
Once you are at the .0 release, update line 3 of the antora.yml configuration file in your release branch so it reads 'version: 3.13' instead of 'version: latest'.
$ vi docs/antora.yml
Then, update the version in the site.yml file on main branch to include rel_3_13 on line 9.
$ vi docs/site.yml
This needs to be done once during the release cycle, typically at alpha or beta
Set up the new series branch using the instructions here: Setting Up a New Series Translation
During each release starting with beta, get the latest template changes and apply them to the main branch you are working from in origin (main/rel_3_13/etc.). It is important to merge any new pot changes to origin so that Launchpad translations will get the latest strings that require translation.
$ cd build/i18n && make newpot
python3 build/i18n/scripts/add_translations.py -c # use -h option for help
Export strings for the Angular staff client and import them into POEditor, following the POEditor instructions. You will need to be a poeditor.com admin to do this.
Create a local working branch for the release. This will contain changes applicable to only this release, and become the release "tag":
$ git checkout -b tags/rel_3_13_1 rel_3_13
$ 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"
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"
:%s/3.X.X/3.13.0/
will do the trick:%s/3.X.W/3.13.0/
will do the trickRun the release builder script:
$ export PATH=$PATH:/openils/bin $ build/tools/make_release -v 3.13-beta -f origin/tags/rel_3_12_3
Additional notes on make_release options:
$ build/tools/make_release -v 3.13-beta -f origin/tags/rel_3_12_3
$ build/tools/make_release -v 3.13.0 -f origin/tags/rel_3_12_3
$ build/tools/make_release -v 3.13.1 -f origin/tags/rel_3_13_0
Note that you will get a lot of warnings related to the po translation files. These can be safely ignored.
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
Move the release files into the correct download directories on the evergreen-ils.org web server (which is also known as lupin):
/var/www/open-ils.org/downloads/previews/
/var/www/open-ils.org/downloads/
/var/www/open-ils.org/documentation/install/
/var/www/open-ils.org/documentation/release/
Because the release notes document is cumulative for each release series, a symbolic link exists for each release series so that (e.g.) RELEASE_NOTES_3_666.html
points to the latest release in the series (e.g., RELEASE_NOTES_3_666.html
→ RELEASE_NOTES_3_666_7.html
). Therefore, when uploading the release notes, update that symbolic link. When uploading the first alpha or beta for a series, it will be necessary to create the symbolic link.
When updating the downloads page to the website, the URL should use the symbolic link, not the release notes for the specific release, e.g., https://evergreen-ils.org/documentation/release/RELEASE_NOTES_3_666.html
, not https://evergreen-ils.org/documentation/release/RELEASE_NOTES_3_666_7.html
.
git push origin tags/rel_3_13_0:tags/rel_3_13_0
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!
For example, if you just created a release 3.12.6 and were on the branch tags/rel_3_12_6:
git checkout rel_3_12 git checkout tags/rel_3_12_6 -- Open-ILS/src/sql/Pg/version-upgrade/3.12.5-3.12.6-upgrade-db.sql git commit -sm "Forward-port 3.12.5-3.12.6 upgrade script" git checkout main git cherry-pick rel_3_12