[[!meta title="Releasing perl5lib"]]

[[!toc levels=1]]

Install build and test dependencies
===================================

In a Jessie system, as a user that has sudo credentials:

    git checkout debian && \
    sudo apt install devscripts && \
    mk-build-deps -i -r --root-cmd sudo && \
    sudo apt install \
       libdist-zilla-perl \
       libdist-zilla-plugins-cjm-perl \
       libdist-zilla-plugin-changelogfromgit-perl \
       libdist-zilla-plugin-installguide-perl \
       libdist-zilla-plugin-localemsgfmt-perl \
       libdist-zilla-plugin-test-perl-critic-perl \
       libdist-zilla-plugin-test-notabs-perl \
       libdist-zilla-plugin-git-perl \
       dh-make-perl

Update POT and PO files
=======================

    git checkout master && \
        ( cd po && make pot && make update-po ) && \
        git commit po -m 'Update POT and PO files.'

Make an upstream release
========================

    git checkout master

Enable new translations in `po/PACKAGE` and commit.

Export new upstream version number:

    export VERSION=XXX

Update version number in `lib/Tails.pm`, commit all
files that need to be, run the upstream test suite, build an upstream
tarball, tag the release, move the tarball out of the build repository
and clean it up:

    perl -pi -E 's,^Version [0-9.]+,Version $ENV{VERSION},' lib/Tails.pm && \
       perl -pi \
          -E "s,^our \\\$VERSION = '[0-9.]+';\$,our \\\$VERSION = '$VERSION';," \
          lib/Tails.pm && \
       git commit lib/Tails.pm -m "Tails-perl5lib $VERSION" && \
       RELEASE_TESTING=1 dzil test && \
       dzil build && \
       git tag -s "Tails-perl5lib_$VERSION" -m "Tails-perl5lib $VERSION" && \
       mv Tails-perl5lib-*.tar.gz .. && \
       git clean -fdx

Update the Debian package
=========================

Checkout the branch with Debian package specifics, import the new
upstream tarball, update `debian/changelog`:

    git checkout debian && \
       gbp import-orig --upstream-vcs-tag=Tails-perl5lib_$VERSION \
          ../Tails-perl5lib-$VERSION.tar.gz && \
       gbp dch --auto && \
       dch -e

(Do not forget to set the appropriate release.)

Update the packaging (e.g. look at changes in `dist.ini`),
and then update `debian/changelog` again if needed.

Commit `debian/changelog`:

        git commit debian/changelog -m "$(head -n 1 debian/changelog | sed -e 's,).*,),')

Git-Dch: Ignore
"

Build a Debian package (use a Jessie/i386 chroot):

    gbp buildpackage

If everything is fine, add a signed tag to the repository and push the
changes:

    gbp buildpackage --git-tag-only --git-sign-tags && \
    git push origin master:master \
                    debian:debian \
                    pristine-tar:pristine-tar \
                    upstream:upstream && \
    git push --tags

(Make sure `master`, `upstream`, `debian` and `pristine-tar` were all pushed.)

Add the Debian package to Tails
===============================

Sign the package:

    debsign $CHANGES_FILE

Upload:

    dupload --to tails $CHANGES_FILE
