DevDocumentation/RELEASING.md
If you just want to use Ambassador, check out https://www.getambassador.io/! You don't need to build - much less release! - anything, and in fact you shouldn't.
If you don't work at Datawire, this document is probably not going to help you. Maybe check out the developer guide instead.
If you're still reading, you must be at Datawire. Congrats, you picked a fine place to work! To release Ambassador, you'll need credentials for our Github repos.
Note. PRs will pile up on master. Don't accept PRs for which CI doesn't show passing tests.
When we get to the stage of creating a release, all the PRs that we want to merge will have been merged
and the CI will be green.
Once master has all the release drivers, tag master with an RC tag, e.g. v0.77.0-rc.1. This version tag must start with a 'v'. For example:
git tag v0.77.0-rc.1 master
git push --tags origin master
The RC tag will trigger CI to run a new build and new tests. It had better pass: if not, figure out why. Monitor https://travis-ci.com/datawire/amabassador/ until the CI for ambassador completes and is green.
The RC build will be available as e.g. docker.io/datawire/ambassador:0.77.0-rc.1. Any other testing you want to do against this image, rock on.
When you're happy that the RC is ready for GA, first assemble the list of changes that you'll put into CHANGELOG.md: (Note: place this list in a separate file, maybe ~/temp-list.txt, but definitely not in CHANGELOG.md at this time.
git log v0.77.0..HEAD --no-merges --pretty '%h (%ai, %ae, %an): %s' -- ':(exclude)docs'
and at the list of closed PRs. This is an awkward area of the release process as there are a log commits
and PRs but we only want to include a curated subset that makes sense to the users.Once the change list is assembled, hand it to Marketing so they can either write a blog post or tell you it's not needed.
While the blog post is being written, switch to a new branch for the release.
git checkout -b rel/0.84.0 (or whatever version). Do not name this branch "release/...".Use make release-prep to update CHANGELOG.md.
~/temp-list.txt).
The release notes are pasted in at a prompt (during the make), not read from a file, so you will need them
accessible to select-and-copy (suggestion: open your previous file in another window).git push on your branch.Now for the time-critical bit.
v0.77.0 and let CI do its thing. This version tag must start with a 'v'.After the CI run finishes:
make release-prep should've output the text to paste into the release description.Note that there must be at least one RC build before a GA, since the GA tag does not rebuild the docker images -- it retags the ones built by the RC build. This is intentional, to allow for testing to happen on the actual artifacts that will be released.
Note also that even though the version tag starts with a 'v', the version number displayed by the diag UI will not start with a 'v'.**
Submit a PR into the helm/charts repo to update things in stable/ambassador:
Chart.yaml, update appVersion with the new Ambassador version, and bump version.README.md, update the default value of image.tag.values.yaml, update tag.datawire/getambassador.io repo.src/releaseInfo.js is the only file you should need to touch:
ReleaseType comes from Marketing, usually "Feature Release", "Maintenance Release", or "Security Update"CurrentVersion is e.g. "0.78.0" -- no leading 'v' hereBlogLink is the full URL of the blog post (from Marketing), or "" if there is no blog postyarn install && yarn start and point a web browser to localhost:8000Submit a PR to the Ambassador website repository to update the version on the homepage. Details can be found there on specifically how to do that.