The main branch uses release-please to prepare current stable releases.
Merging its release pull request creates the version tag and GitHub release.
The GitHub release then triggers the existing trusted npm publish workflow for the latest tag.
- Squash pull requests with Conventional Commit titles.
fixproduces a patch release.featproduces a minor release.- A type followed by
!, or aBREAKING CHANGE:footer, produces a major release.
- Review the release pull request maintained by release-please.
- Confirm the proposed version in
package.jsonand.release-please-manifest.json. - Confirm the generated CHANGELOG.md entry is complete.
- Add a
Release-As: x.y.zfooter to a merged conventional commit when a specific version is required.
- Confirm the proposed version in
- Merge the release pull request when ready to publish.
- Confirm release-please created the expected
vX.Y.Ztag and published GitHub release. - Confirm the
publishworkflow passed and npm lists the version under taglatest. The release pull request should have theautorelease: publishedlabel instead ofautorelease: tagged.
Do not manually edit the package version, create the tag, or publish the GitHub release.
Rerun the release-please workflow if automation needs to be retried.
Switch to the appropriate maintenance branch and follow that branch's RELEASE.md.
Release-please uses a GitHub App token instead of GITHUB_TOKEN so that its pull requests run CI and its GitHub releases trigger the publish workflow.
- Create a private GitHub App owned by the repository owner.
- Use the repository URL as its homepage.
- Disable webhooks.
- Grant read and write access to Contents, Issues, and Pull requests.
- Limit installation to this account.
- Generate a private key for the App.
- Install the App for this repository only.
- Add the App's client ID as the repository Actions variable
RELEASE_PLEASE_APP_CLIENT_ID. - Add the complete PEM private key as the repository Actions secret
RELEASE_PLEASE_APP_PRIVATE_KEY. - Create the
autorelease: pending,autorelease: tagged, andautorelease: publishedrepository labels. - Merge the release-please configuration into
main. - Run the
release-pleaseworkflow manually if the initial push did not run it.
The manifest starts after the prior release tag.