NOTE: Don't do any of this before validating with a test service. Check the internal release doc (ask someone about it) for more information.
This document outlines how to create a release of yarpc-go.
Make sure you have hub
installed.
brew install hub
-
Set up some environment variables for use later.
# This is the version being released. VERSION=1.21.0 # This is the branch from which $VERSION will be released. # This is almost always dev. BRANCH=dev
If you are copying/pasting commands, make sure you actually set the right value for VERSION above.
-
Make sure you have the latest master and create a new release branch off of it.
git fetch origin master git checkout origin/master git checkout -B $(whoami)/release
-
Merge the branch with the changes being released into the newly created release branch.
git merge $BRANCH
-
Alter the Unreleased entry in CHANGELOG.md to point to
$VERSION
and update the link at the bottom of the file. Use the formatYYYY-MM-DD
for the year.-## [Unreleased] +## [1.21.0] - 2017-10-23
-[Unreleased]: https://github.com/yarpc/yarpc-go/compare/v1.20.1...HEAD +[1.21.0]: https://github.com/yarpc/yarpc-go/compare/v1.20.1...v1.21.0
-
Update the version number in version.go and verify that it matches what is in the changelog.
sed -i '' -e "s/^const Version =.*/const Version = \"$VERSION\"/" version.go make verifyversion SUPPRESS_DOCKER=1
-
Create a commit for the release.
git add version.go CHANGELOG.md git commit -m "Preparing release v$VERSION"
-
Make a pull request with these changes against
master
.hub pull-request -b master --push
-
Land the pull request after approval as a merge commit. To do this, select Create a merge commit from the pull-down next to the merge button and click Merge pull request. Make sure you delete that branch after it has been merged with Delete Branch.
-
Once the change has been landed, pull it locally.
git checkout master git pull
-
Tag a release.
hub release create -o -m v$VERSION -t master v$VERSION
-
Copy the changelog entries for this release into the release description in the newly opened browser window.
-
Go to https://buildkite.com/uberopensource/yarpc-go/builds and cancel the build for
v$VERSION
. If that Codecov build completes before the Codecov build for master, the code coverage for master will not get updated because only one branch gets updated per commit; this was verified with Codecov support. This will get tested by the build for master anyways. -
Switch back to development.
git checkout $BRANCH git merge master
-
Add a placeholder for the next version to CHANGELOG.md and a new link at the bottom.
+## [Unreleased] +- No changes yet. + ## [1.21.0] - 2017-10-23
+[Unreleased]: https://github.com/yarpc/yarpc-go/compare/v1.21.0...HEAD [1.21.0]: https://github.com/yarpc/yarpc-go/compare/v1.20.1...v1.21.0
-
Update the version number in version.go to the same version.
-const Version = "1.21.0" +const Version = "1.22.0-dev"
-
Verify the version number matches.
make verifyversion SUPPRESS_DOCKER=1
-
Commit and push your changes.
git add CHANGELOG.md version.go git commit -m 'Back to development' git push origin $BRANCH