This is a list of the things that need to happen during a release.
- Go through the PR history since the last release. You can use this to show all the PRs that are merged on or after
YYY-MM-DD:
https://github.com/issues?q=repo%3Acloudflare%2Fworkers-types+merged%3A%3E%3DYYYY-MM-DD
- Add this release to
CHANGELOG.md
. Use the structure of previous entries.
- Create a new branch "#.#.#" where "#.#.#" is this release's version (release) or "#.#.#-rc.#" (release candidate)
- Update the version number in
package.json
. - Push up a commit with the
CHANGELOG.md
changes. The commit message can just be "#.#.#" (release) or "#.#.#-rc.#" (release candidate) - Request review from maintainers.
Most of your comments will be about the changelog. Once the PR is finalized and approved...
- If you made changes, squash or fixup all changes into a single commit.
- Run
git push
and wait for CI to pass.
- Once ready to merge, tag the commit by running
git tag -a v#.#.# -m #.#.#
- Run
git push --tags
. - Wait for CI to pass.
Draft a new release on the releases page and update release notes.
Full releases are tagged latest
. If for some reason you mix up the commands below, follow the troubleshooting guide.
npm publish
.- Tweet.
Mistakes happen. Most of these release steps are recoverable if you mess up. The goal is not to, but if you find yourself cursing a fat fingered command, here are some troubleshooting tips. Please feel free to add to this guide.
Tags and releases can be removed in GitHub. First, remove the remote tag:
$ git push --delete origin tagname
This will turn the release into a draft
and you can delete it from the edit page.
Make sure you also delete the local tag:
$ git tag --delete vX.X.X