UNPKG

2.27 kBMarkdownView Raw
1# Release
2
3Releases are mostly automated using
4[release-it](https://github.com/release-it/release-it/) and
5[lerna-changelog](https://github.com/lerna/lerna-changelog/).
6
7
8## Preparation
9
10Since the majority of the actual release process is automated, the primary
11remaining task prior to releasing is confirming that all pull requests that
12have been merged since the last release have been labeled with the appropriate
13`lerna-changelog` labels and the titles have been updated to ensure they
14represent something that would make sense to our users. Some great information
15on why this is important can be found at
16[keepachangelog.com](https://keepachangelog.com/en/1.0.0/), but the overall
17guiding principle here is that changelogs are for humans, not machines.
18
19When reviewing merged PR's the labels to be used are:
20
21* breaking - Used when the PR is considered a breaking change.
22* enhancement - Used when the PR adds a new feature or enhancement.
23* bug - Used when the PR fixes a bug included in a previous release.
24* documentation - Used when the PR adds or updates documentation.
25* internal - Used for internal changes that still require a mention in the
26 changelog/release notes.
27
28
29## Release
30
31Once the prep work is completed, the actual release is straight forward:
32
33* First ensure that you have `release-it` installed globally, generally done by
34 using one of the following commands:
35
36```
37# using https://volta.sh
38volta install release-it
39
40# using Yarn
41yarn global add release-it
42
43# using npm
44npm install --global release-it
45```
46
47* Second, ensure that you have installed your projects dependencies:
48
49```
50yarn install
51```
52
53* And last (but not least 😁) do your release. It requires a
54 [GitHub personal access token](https://github.com/settings/tokens) as
55 `$GITHUB_AUTH` environment variable. Only "repo" access is needed; no "admin"
56 or other scopes are required.
57
58```
59export GITHUB_AUTH="f941e0..."
60release-it
61```
62
63[release-it](https://github.com/release-it/release-it/) manages the actual
64release process. It will prompt you to to choose the version number after which
65you will have the chance to hand tweak the changelog to be used (for the
66`CHANGELOG.md` and GitHub release), then `release-it` continues on to tagging,
67pushing the tag and commits, etc.