Skip to content

Commit

Permalink
Add simplified release setup.
Browse files Browse the repository at this point in the history
  • Loading branch information
rwjblue committed Jun 17, 2019
1 parent d4c3a6d commit 140e864
Show file tree
Hide file tree
Showing 4 changed files with 755 additions and 73 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

- stage: additional tests
env: NAME=floating dependencies
install: yarn install --no-lockfile --non-interactive
install: yarn install --no-lockfile --non-interactive --ignore-engines
script: yarn test

- env: NAME=Node_6
Expand All @@ -48,7 +48,7 @@ before_install:
- export PATH=$HOME/.yarn/bin:$PATH

install:
- yarn install
- yarn install --ignore-engines

script:
- yarn test
41 changes: 41 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Release

Releases are mostly automated using
[release-it](https://github.com/release-it/release-it/) and
[lerna-changelog](https://github.com/lerna/lerna-changelog/).


## Preparation

Since the majority of the actual release process is automated, the primary
remaining task prior to releasing is confirming that all pull requests that
have been merged since the last release have been labeled with the appropriate
`lerna-changelog` labels and the titles have been updated to ensure they
represent something that would make sense to our users. Some great information
on why this is important can be found at
[keepachangelog.com](https://keepachangelog.com/en/1.0.0/), but the overall
guiding principles here is that changelogs are for humans, not machines.

When reviewing merged PR's the labels to be used are:

* breaking - Used when the PR is considered a breaking change.
* enhancement - Used when the PR adds a new feature or enhancement.
* bug - Used when the PR fixes a bug included in a previous release.
* documentation - Used when the PR adds or updates documentation.
* internal - Used for internal changes that still require a mention in the
changelog/release notes.


## Release

Once the prep work is completed, the actual release is straight forward:

```
yarn install
yarn release
```

The `release` script leverages
[release-it](https://github.com/release-it/release-it/) to do the mechanical
release process. It will prompt you through the process of choosing the version
number, tagging, pushing the tag and commits, etc.
21 changes: 19 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
"test": "tests"
},
"scripts": {
"changelog": "lerna-changelog",
"lint:js": "eslint .",
"release": "release-it",
"test": "qunit tests/**/*-test.js"
},
"dependencies": {
Expand All @@ -56,13 +56,30 @@
"eslint-plugin-node": "^8.0.1",
"eslint-plugin-prettier": "^3.0.1",
"jest": "^24.1.0",
"lerna-changelog": "^0.8.2",
"prettier": "^1.16.4",
"qunit": "^2.9.1",
"release-it": "^12.2.1",
"release-it-lerna-changelog": "^1.0.3",
"require-so-slow": "^1.2.0",
"walk-sync": "^1.1.3"
},
"engines": {
"node": "6.* || 8.* || >= 10"
},
"publishConfig": {
"registry": "https://registry.npmjs.org"
},
"release-it": {
"plugins": {
"release-it-lerna-changelog": {
"infile": "CHANGELOG.md"
}
},
"git": {
"tagName": "v${version}"
},
"github": {
"release": true
}
}
}
Loading

0 comments on commit 140e864

Please sign in to comment.