This documents the process for issuing and deploying a new release for CALC.
It assumes you want to create release 0.0.4
.
If this isn't the case, simply replace this value for your own. Or
alternatively, run docker-compose run app python manage.py releasehelp
to generate a
customized version of these instructions just for you.
Note: When following these instructions, ensure that no one else is
merging any PRs into develop
; at the time of this writing, cloud.gov will
run out of memory quota if multiple branches of CALC are deployed
simultaneously!
To release version 0.0.4 of CALC:
-
Verify that the "Unreleased" section of
CHANGELOG.md
is up-to-date by comparing it against GitHub's commit list (you can see that by clicking on the "Unreleased" section heading), and then describe the changes in a human-meaningful form (see previous release entries for the appropriate level of human-friendliness).Feel free to move more important, less technical entries to the top of the list. Remember, it will be read by both developers and users, so avoid the use of jargon where possible.
-
Create a branch off
develop
calledv0.0.4-rc
and push it to GitHub:git checkout -b v0.0.4-rc develop git push -u https://github.com/18F/calc.git v0.0.4-rc
-
Issue a PR to merge your branch into
master
titled "Tag and release v0.0.4 to production". Paste in the latest changes from the topmost "Unreleased" section ofCHANGELOG.md
into the description of the PR so stakeholders know what's changed. If you're on OS X, you can easily copy this to your clipboard with the following command:docker-compose run app python manage.py unreleased_changelog | pbcopy
-
Make sure that all automated QA services (CircleCI, etc) think the PR looks good.
-
Wait for the stakeholders to sign-off on the release if there are functional or product changes.
-
Update the version number in
calc/version.py
to0.0.4
and then run:docker-compose run app python manage.py bump_changelog
This will create a new entry for the new version in
CHANGELOG.md
, and it will also output your new version's release notes totag-message-v0.0.4.txt
. -
Commit the changes to git, tag the release, and push everything:
git commit -a -m "Release v0.0.4." git tag -a v0.0.4 -F tag-message-v0.0.4.txt git push
-
Merge the PR into
master
via the Create a merge commit merge strategy (i.e., do not squash or rebase). Once CircleCI is finished, the site will be deployed to production. -
Visit the production instance and make sure all is functioning as expected.
-
Merge
v0.0.4-rc
back intodevelop
on the remote repository:git checkout develop git pull https://github.com/18F/calc.git develop git merge v0.0.4-rc git push https://github.com/18F/calc.git develop
Hooray, you're done!