Creating new Karaage release

This section talks about the steps involved in creating a new official release of Karaage.

It is assumed the system is running Debian Jessie; other build systems may be possible, but will require variations.

Preparing system

These steps only need to be done once for a system.

Follow the instructions under Setting up Development Environment.

Make upstream release

This needs to happen first before building the Debian packages. You will need to have write access to the github repository for Karaage and PyPI.

  1. Check all changes pushed to github and [travis tests](https://travis-ci.org/Karaage-Cluster/karaage/builds) for the appropriate branch pass.

  2. Check CHANGES.rst has entry for new release.

  3. Create a tag for the new release.

    git tag --sign x.y.z
    
  4. Check version is correct.

    ./setup.py --version
    
  5. Push and upload.

    python ./setup.py sdist upload -s -i 0xGPGKEY
    git push
    git push --tags
    

Make Debian release

This needs to happen after the upstream release. You will need to have write access to the github repository for Karaage Debian and somewhere to upload the changes to.

Warning

Current versions of Karaage use git-dpm for the git work flow. This is a good solution and is the solution used by the Debian Python Modules team, Unfortunately it is no longer actively developed and can be quirky at times. As such it is difficult to document all the quirks here.

  1. Ensure schroot are up to date:

    sudo ~/tree/bampkgbuild/update_schroot
    
  2. Ensure we are in the karaage-debian tree on the master branch.

    cd tree/karaage/karaage-debian
    
  3. Ensure there are no git uncommited git changes or staged changes.

    git status
    
  4. Ensure all branches are up to date.

    git pull --ff-only --all
    
  5. Copy the new upstream source from the upstream repository.

    cp ../karaage/dist/karaage-X.Y.Z.tar.gz ../karaage3_X.Y.Z.orig.tar.gz
    
  6. Merge the new upstream source.

    git checkout master
    git-dpm import-new-upstream --ptc --rebase-patched ../karaage3_X.Y.Z.orig.tar.gz
    
  7. It is possible conflicts may occur in the previous step, when it rebases the Debian changes. If so, fix them and complete the rebase before continuing.

  8. Sometimes git-dpm will leave you in the patches directory, you need to be in the Master directory.

    git-dpm update-patches
    
  9. Update debian/changelog command.

    dch -v "X.Y.Z-1" "New upstream version."
    git commit debian/changelog -m "Version X.Y.Z-1"
    git push --all
    
  10. Check Debian package builds.

  11. Make changelog for release.

    dch --release
    git commit debian/changelog -m "Release version X.Y.Z"
    
  12. Build and upload package.

  13. When sure everything is ok, push changes to github:

    git-dpm tag
    git push origin
    git push origin --tags
    
  14. Merge changes into karaage4 branch:

    git checkout karaage4
    git merge origin
    
  15. When sure everything is ok, push changes to github:

    git push origin
    git checkout master