The following steps should be performed before releasing a new storm version. Note that in most cases a simultaneous release of [carl](https://github.com/smtrat/carl), [storm](https://github.com/moves-rwth/storm), [pycarl](https://github.com/moves-rwth/pycarl/) and [stormpy](https://github.com/moves-rwth/stormpy/) is preferred. 1. Update `CHANGELOG.md`: * To get all the commits from an author since the last tag execute: ```console git log last_tag..HEAD --author "author_name" ``` * Set release month 2. Update used carl version: * Update `GIT_TAG` in `resources/3rdparty/carl/CMakeLists.txt` * Maybe update `CARL_MINVERSION` in `resources/3rdparty/CMakeLists.txt` 3. Check that storm builds without errors and all tests are successful: * [Travis](https://travis-ci.org/moves-rwth/storm) should run successfully. * Invoke the script `doc/scripts/test_build_configurations.py` to build and check different CMake configurations. 4. Set new storm version: * Set new storm version in `version.cmake` 5. Set new tag in Git: ```console git tag -a new_version git push origin new_version ``` Next we push the tag to GitHub. This step requires the GitHub repo to to be configured as a remote. ```console git remote add github https://github.com/moves-rwth/storm.git git push github new_version ``` The new tag should now be visible on [GitHub](https://github.com/moves-rwth/storm/tags). 6. [Add new release](https://github.com/moves-rwth/storm/releases/new) in GitHub. 7. Update `stable` branch: ```console git checkout stable git rebase master git push origin stable ``` Note: Rebasing might fail if `stable` is ahead of `master` (e.g. because of merge commits). In this case we can do: ```console git checkout stable git reset --hard master git push --force origin stable ``` 8. Update [Homebrew formula](https://github.com/moves-rwth/homebrew-storm). 9. Announce new storm version on [website](http://www.stormchecker.org/news.html). 10. Create [Docker containers](https://hub.docker.com/r/movesrwth/storm) for new version.