backupninja/RELEASE.md
Jerome Charaoui 3a0b694d6e update release process notes
* drop the detached gpg signature as this doesn't seem required anymore by
anything; the signed git tag is sufficient to auth the released source

* exclude vagrant data from git clean, otherwise this destroys the test
environment which is useful during the release process; this does not
cause any vagrant artifacts to become part of the release source

* drop attaching release artifacts to milestones, as GitLab Releases
have made this practice deprecated

* add diffoscope command for easier tarball comparison
2021-01-25 10:11:07 -05:00

2.4 KiB

Upstream

  • run the full testsuite

      vagrant rsync local && \
      vagrant ssh -c "build-backupninja.sh && sudo /vagrant/test/test.sh"
    
  • prepare the environment:

      export VERSION=x.y.z
    
  • update configure.ac and CHANGELOG.md

      perl -pi -E \
         "s{^AC_INIT\(\[backupninja\],\[[0-9.\-rc]+\],}{AC_INIT([backupninja],[$VERSION],}" \
         configure.ac
    
      RELEASE_DATE=$(LC_ALL=C date '+%Y-%m-%d'); perl -pi -E \
         "s{^## \[Unreleased\].*}{## [$VERSION] - $RELEASE_DATE}" \
         CHANGELOG.md
    
  • commit and created signed tag

      git commit configure.ac CHANGELOG.md \
          -m "Releasing backupninja $VERSION" && \
      git clean -fdx -e .vagrant && \
      git tag -s "backupninja-$VERSION" \
          -m "Releasing backupninja $VERSION" && \
      ./autogen.sh && \
      ./configure && \
      make dist
    
  • compare the content of the generated tarball with the content of the previous one

      diffoscope --text-color=always ../tarballs/backupninja-x.y.z.tar.gz \
          backupninja-$VERSION.tar.gz | less -R
    
  • move the tarball outside of the Git working copy and clean up

      mkdir -p ../tarballs && \
      mv backupninja-$VERSION.tar.gz ../tarballs/ && \
      make distclean && \
      git clean -fdx -e .vagrant
    

Debian

Prepare a new package:

    git checkout debian && \
    gbp import-orig --upstream-vcs-tag="backupninja-$VERSION" \
        ../tarballs/backupninja-$VERSION.tar.gz && \
    gbp dch --auto && \
    dch -e && \
    export DEBIAN_VERSION=$(dpkg-parsechangelog -SVersion) && \
    git commit debian/changelog \
       -m "Releasing backupninja ($DEBIAN_VERSION) to Debian unstable" && \
    gbp buildpackage

Install the .deb and test.

Release

  • push the release to GitLab

      git checkout debian && \
      gbp buildpackage --git-tag-only --git-sign-tags && \
      git push --follow-tags origin \
          master:master \
          debian:debian \
          pristine-tar:pristine-tar \
          upstream:upstream
    
  • create a new GitLab release

  • announce the release on the backupninja mailing-list, pointing to the milestone web page

  • upload to Debian or ask someone listed in the Uploaders control field to review and upload

Open the next development cycle

  • git checkout master

  • Add an empty new section in CHANGELOG.md, commit and push.