Releasing

Workflow for releasing a new version:

  1. Checkout to a new release branch based on the commit that the release needs to be based on
  2. Change the VERSION file by removing -dev from the version and possibly changing the name
  3. Run the bumpversion.py script, which adds the right licensing to the files, based on the version provided in the VERSION file. Make this a seperate commit. If anything goes wrong, it is easy to revert this.
  4. Commit and push release branch to github
  5. Submit a pull request on GitHub and discuss
  6. Create a new release using GitHub (marks the commit as release)
  7. On the dev branch, make sure to change the version to <target version>-dev

Possibly, a lot of this can be automated. Since this is not that much work, this is not done at the moment, but would be not that difficult to do.

Hotfixing

When a hotfix needs to be made, make sure to checkout to the commit before the bumpversion has run. Based on that commit

  1. Create a new hotfix branch
  2. Make your changes and commit (only the neccessary changes)
  3. Follow the release step 2-6 to publish this hotfix immediately