UNPKG

2.19 kBMarkdownView Raw
1# Release Process
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## Preparation
8
9Since the majority of the actual release process is automated, the primary
10remaining task prior to releasing is confirming that all pull requests that
11have been merged since the last release have been labeled with the appropriate
12`lerna-changelog` labels and the titles have been updated to ensure they
13represent something that would make sense to our users. Some great information
14on why this is important can be found at
15[keepachangelog.com](https://keepachangelog.com/en/1.0.0/), but the overall
16guiding principle here is that changelogs are for humans, not machines.
17
18When reviewing merged PR's the labels to be used are:
19
20* breaking - Used when the PR is considered a breaking change.
21* enhancement - Used when the PR adds a new feature or enhancement.
22* bug - Used when the PR fixes a bug included in a previous release.
23* documentation - Used when the PR adds or updates documentation.
24* internal - Used for internal changes that still require a mention in the
25 changelog/release notes.
26
27## Release
28
29Once the prep work is completed, the actual release is straight forward:
30
31* First, ensure that you have installed your projects dependencies:
32
33```sh
34yarn install
35```
36
37* Second, ensure that you have obtained a
38 [GitHub personal access token][generate-token] with the `repo` scope (no
39 other permissions are needed). Make sure the token is available as the
40 `GITHUB_AUTH` environment variable.
41
42 For instance:
43
44 ```bash
45 export GITHUB_AUTH=abc123def456
46 ```
47
48[generate-token]: https://github.com/settings/tokens/new?scopes=repo&description=GITHUB_AUTH+env+variable
49
50* And last (but not least 😁) do your release.
51
52```sh
53npx release-it
54```
55
56[release-it](https://github.com/release-it/release-it/) manages the actual
57release process. It will prompt you to to choose the version number after which
58you will have the chance to hand tweak the changelog to be used (for the
59`CHANGELOG.md` and GitHub release), then `release-it` continues on to tagging,
60pushing the tag and commits, etc.