Revision 1 as of 2019-06-06 17:57:24

Clear message

Back to developer page.

Release Workflow

Let us assume that we want to create the 19.06 release. The steps we'd do are;

  1. Update to the revision we want to release, e.g., default.

    • hg update default
  2. Collect the changelog information (somehow) and add it to CHANGES.md.

  3. Commit the changelog.
    • hg commit -m "Update changelog for release 19.06."
  4. Create a branch named release-19.06, update the version number, and create a tag named release-19.06.0.

    • hg branch release-19.06
      hg commit -m "Create branch for release 19.06."
      misc/set-version.py 19.06.0
      hg commit -m "Update version number to 19.06.0"
      hg tag release-19.06.0 -m "Create release 19.06."
  5. Back on the default branch, update version number to 19.06.0+.

    • hg update default
      misc/set-version.py 19.06.0+
      hg commit -m "Update version number to 19.06.0+"
  6. Push all changes.
    • hg push
  7. Create the tarball
    • hg archive -r release-19.06.0 -X .hg_archival.txt -X .hgignore \
      -X .hgtags -X .uncrustify.cfg -X bitbucket-pipelines.yml \
      -X experiments/ -X misc/ --type tgz fast-downward-19.06.tar.gz
  8. Manually verify that the tarball contains the correct files.
  9. Generate the different recipe files for Docker, Singularity and Vagrant.
    • misc/release/create-images.py --tag 19.06
  10. Take the generated Dockerfile, put it into a temporary empty directory, and build it. You can remove the directory immediately afterwards as the docker image is stored in your local registry.
    • # Assuming you are in a temporary directory containing Dockerfile.19.06 only
      docker build -t aibasel/downward:19.06 -f Dockerfile.19.06 .
  11. Login into the Docker Hub with your credentials (you must be part of the aibasel organization!), push the image that we just generated and label it as latest.

    • docker login --username=gfrancesm
      docker push aibasel/downward:19.06
      docker tag aibasel/downward:19.06 aibasel/downward:latest
      docker push aibasel/downward:latest
  12. Clean up created container and all unused docker images.
    • docker rmi aibasel/downward:19.06
      docker image prune -f
  13. Once the Docker image is in the Hub, the Singularity image can be built on the Singularity Hub servers. Add all newly-generated recipe files to your local copy of the Fast Downward containers repository.

    • git add 19.06/Dockerfile.19.06
      git add 19.06/Singularity.19.06
      git add 19.06/Vagrantfile.19.06
      ln -fs 19.06/Dockerfile.19.06 latest/Dockerfile
      ln -fs 19.06/Singularity.19.06 latest/Singularity
      ln -fs 19.06/Vagrantfile.19.06 latest/Vagrantfile
      git add latest
      git commit -m "Add recipe files for release 19.06."
      git push
  14. Create a Wiki page for the release. We suggest copying the one from the last release.

    1. Update the date and release version name.
    2. Update the changelog.
    3. Upload the tarball as an attachment to the page.
    4. Upload the Vagrant file created by the create-images.py script as an attachment to the page.

    5. Create a link in Releases to the page of the new release.

  15. Send an announcement e-mail to the Fast Downward list including changelog information.