A collection of release tools used for Koha
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Martin Renvoize 29142aaaac
Add new sponsor
1 month ago
bin Add koha-release tarball option 2 months ago
etc Add new sponsor 1 month ago
lib/Koha Fix 'Versions release in' for RMaint 2 months ago
.gitignore Ignore etc/user.yaml 8 months ago
.gitlab-ci.yml Issue #22: Use CI_COMMIT_SHA for images versions 2 years ago
Dockerfile PERL5LIB needs to include /koha 2 months ago
README.md Mention the new alias on the README 2 months ago
cpanfile Have an honest cpanfile 8 months ago


Koha release tools

The release tools repository contains a collection of scripts to aid release mantainers and release managers in their tasks during their tenure in their respective roles.



Simply clone this repository on your development environment and copy the etc/user.example file to etc/user.yaml and update it to reflect your own details.


You will also need to install its dependencies:

sudo apt install \
      bugz \
      cpanminus \
      git \
      gnupg \
      locales \
      make \
      tar \
      libencode-perl \
      libfile-slurp-perl \
      libhtml-tableextract-perl \
      libio-prompt-tiny-perl \
      libjson-perl \
      liblingua-en-numbers-ordinate-perl \
      liblist-moreutils-perl \
      libmodern-perl-perl \
      libmoose-perl \
      librest-client-perl \
      libtemplate-perl \
      libtext-multimarkdown-perl \
      libtime-moment-perl \
      liburi-perl \
      libutf8-all-perl \
      libwww-perl \
      libwww-mechanize-perl \
      libyaml-perl \
cpanm --installdeps ./


The release-tools can be run in a pre-built container.

On the manual install you are told to create a user.yaml file. We need to point a variable to it

export RELEASE_TOOLS_USER_CONFIG=/absolute/path/to/user.yaml;
echo "alias release-tools='docker run -v \${SYNC_REPO}:/koha -v \${RELEASE_TOOLS_USER_CONFIG}:/release-tools/etc/user.yaml --workdir /koha -ti registry.gitlab.com/koha-community/release-tools bash'" >> ~/.bashrc

After that setup, you should launch a new shell (e.g. by running bash on the current one). And then you can run the container like this:


If you prefer to run it manually, you can just use:

docker run \
    -v ${SYNC_REPO}:/koha \
    -v ${RELEASE_TOOLS_USER_CONFIG}:/release-tools/etc/user.yaml \
    --workdir /koha
    -ti \
    registry.gitlab.com/koha-community/release-tools \


The most commonly used scripts can be found within the bin/ directory, but they are generally written to be run from within your koha source clone repository.


Used to check for new authors and update bugzilla prior to pushing your branch.

The script should be run from within your koha source directory.

~/release-tools/bin/koha-push updatebz
~/release-tools/bin/koha-push updatebz --range HASH..HEAD
~/release-tools/bin/koha-push updatebz --range HASH..HEAD

Upon execution it will walk through all commits that appear in your local branch but do not yet appear upstream. It will update etc/sponsor_map.yaml (from release_tools repo) and docs/contributors.yaml (from Koha repo). The script will then mark the relevant bugs as 'Pushed to X', add the relevant version to the versions released box and add your configured thankyou comment to the bug.


Used to build the release notes and report release information.

The script should be called from within your koha source directory.

~/release-tools/bin/koha-release v19.11.00..HEAD info
~/release-tools/bin/koha-release v19.11.00..HEAD notes
~/release-tools/bin/koha-release v19.11.00..HEAD notes --silent
~/release-tools/bin/koha-release v19.11.00..HEAD html misc/release_notes/release_notes_19_11_01.html

Upon execution it will walk through all commits in your given range and generate a set of release notes from their content sourcing data from the commits, bugzilla and the translation site. It will interactively ask you about author details should it find a commit with an unrecognised author, unless the --silent parameter is passed.

  • The notes command will output a markdown file.
  • The html command will read in the aforementioned markdown file and general an html file.

Koha Logo