Back to developer page.
Release Workflow
Let us assume that we want to create the 19.06 release. The steps we'd do are;
Update to the revision we want to release, e.g., default.
hg update default
Collect the changelog information (somehow) and add it to CHANGES.md.
- Commit the changelog.
hg commit -m "Update changelog for release 19.06."
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."
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+"
- Push all changes.
hg push
- 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
- Manually verify that the tarball contains the correct files.
- Generate the different recipe files for Docker, Singularity and Vagrant.
misc/release/create-images.py --tag 19.06
- 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 .
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
- Clean up created container and all unused docker images.
docker rmi aibasel/downward:19.06 docker image prune -f
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
Create a Wiki page for the release. We suggest copying the one from the last release.
- Update the date and release version name.
- Update the changelog.
- Upload the tarball as an attachment to the page.
Upload the Vagrant file created by the create-images.py script as an attachment to the page.
Create a link in Releases to the page of the new release.
- Send an announcement e-mail to the Fast Downward list including changelog information.