This document describes the process to follow when releasing a stable or unstable version of Connect.
Stable releases are published under the @latest
tag on npm, which is the default.
Create a new draft release and write the complete changelog for this version. Ideally this should be done before publishing on npm, so that there is no delay between the release on npm and the announcement.
yarn oao status
Here you want to verify the current versions, and that private packages are marked as such so they don’t get published by mistake (especially for the examples).
yarn publish-version
This script will:
- Build Connect.
- Run the tests.
- Generate the README files.
- Publish the packages on npm.
- Generate a branch corresponding to the version tag.
- Push
master
, the version branch and the version tag to GitHub.
GitBook doesn’t support git tags, this is why a branch corresponding to the version tag gets created by the publish-version
script. We now need to do two things: protect the branch on GitHub, and reorder the versions menu on GitBook.
Protect the branch on GitHub:
- Open the branch settings on GitHub.
- Click on the “Add rule” button.
- Put the exact branch name in “Branch name pattern”.
- Click on the “Create” button.
Reorder the menu in GitBook:
- Go to the GitBook admin page.
- Open the versions menu (it should be on “latest” by default).
- Drag and drop the new version so that it is right below “latest”.
- Click on the “Save” button, then “Merge”.
Open the draft release, and assign the version tag to it (e.g. v0.5.0
). Publish!
Announce the release on our usual channels: Discord, Keybase, Twitter, etc.
Unstable releases (release candidates, beta versions, or feature-specific releases) can be published using other npm tags than @latest
. For beta or release candidates, use the @next
tag. This process can be much more direct than the one we use for stable releases.
It follows the steps described in the previous section with some notable differences:
- Release notes they are optional in non-stable releases.
yarn publish-version
should be prefixed with theNPM_TAG
environment variable set to the tag you want to use, without the@
(e.g.NPM_TAG=next yarn publish-version
). Because you might want to use a non-incremental version number, you generally also have to specify the exact version using theNEW_VERSION
environment variable (e.g.NEW_VERSION=0.7.0-beta.2 NPM_TAG=next yarn publish-version
).- Publishing the release on GitHub is optional. If you do so, remember to check the “This is a pre-release” checkbox before doing so.
- Announcing the version is optional too, and depends entirely on the context of the release.