This is a list of the things that need to happen during a release.
- Open the associated milestone. All issues and PRs should be closed. If they are not you should reassign all open issues and PRs to future milestones.
- Go through the PR history since the last release. Ensure that all PRs
that have landed are marked with the milestone. 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. - Go through the closed PRs in the milestone. For each, add an entry to
CHANGELOG.md
.
- 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.
cd npm && 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