This package was originally developed to help release Embroider and was extracted so everyone can use it 🎉
npm i --save-dev release-plan
To use release-plan
you need to have a valid GITHUB_AUTH
environment variable that has the repo
permission. This allows release-plan
to check what PRs have been merged since the last release and plan the release accordingly.
-
Run
npx release-plan explain-plan
. If there are unlabeled PRs that need to be released it will complain and show you a list of them. Each PR needs to be labeled with one of:- breaking
- enhancement
- bug
- documentation
- internal
-
Once all the PRs are labeled,
release-plan
will instead show you the release plan, explaining which packages are getting released, at which versions, and why. -
If you disagree with the plan, you can modify the list of changes before using it to
explain-plan
orprepare
a release:npx release-plan gather-changes > /tmp/changelog
- edit
/tmp/changelog
npx release-plan --from-stdin < /tmp/changelog
For example, this can be necessary if a PR that's labeled
breaking
touches multiple packages and only one of those packages is actually a breaking change. In that case you can take the other package names out of the description of the PR. -
Once you're happy with the plan, run
npx release-plan prepare
. This will edit CHANGELOG.md, bump the version numbers in package.json files, and create a file named.release-plan.json
. Make a PR with these changes. -
Once the PR is merged, in a clean local repo at the merge commit, run
npx release-plan publish
. if you need anotp
for your release you can provide that to thepublish
command like thisnpx release-plan publish --otp=123456