This document describes the process for cutting and publishing a new version of Determined. Please read this document carefully before proceeding with a release.
- Terraform 0.12+
- For prerequisites to build cloud images, see build cloud images for details.
- Push/pull access to determined-ai/determined-examples
For Mac OS X, Terraform is available on homebrew:
brew install terraform
For Linux, Terraform is available through a direct download:
sudo apt-get install unzip wget
wget https://releases.hashicorp.com/terraform/0.12.9/terraform_0.12.9_linux_amd64.zip
unzip terraform_0.12.9_linux_amd64.zip
sudo mv terraform /usr/local/bin/
Two methods are available for supplying AWS credentials: environment variables and a credentials file.
For environment variables:
export AWS_ACCESS_KEY_ID="anaccesskey"
export AWS_SECRET_ACCESS_KEY="asecretkey"
For credential files:
mkdir -p $HOME/.aws/
cat > $HOME/.aws/credentials << EOF
[default]
aws_access_key_id = anaccesskey
aws_secret_access_key = asecretkey
EOF
See AWS Authentication for more help.
- Switch to the master branch:
git checkout master
-
Ensure that the master branch is in a good state (e.g., passes CI).
-
Ensure the release notes cover all significant changes in this release, and update to the correct release date.
-
Commit and push the updated release notes to the main Determined repo.
git add <RELEASE-NOTES>
git commit -m "Update release notes."
- Tag the release and push the tag to the main Determined repo:
git tag v0.12.3.dev0
git push upstream v0.12.3.dev0
- Build Determined, publish the tarball, and publish the Determined images (cloud and docker):
make publish
NOTE: This assumes you have logged in to an authorized Docker Hub
account via docker login
.
- Update the version number to the next working version (this automatically commits the change but does not push it). This defaults to a patch semantic version update (e.g. 0.4.9->0.4.10). If you want to do a minor or major version update, set the PART environment variable to
minor
ormajor
respectively.
make bump-version
- Push the changes.
git push