Checks whether a semantic release should be run for a repository. ๐
npm install should-semantic-release
Checks whether a semantic release should be run for a repository.
๐
This function determines whether a semantic release should occur for a package based on Git history.
It returns true if a "meaningful" commit has come since the most recent release commit.
``shell`
if npx should-semantic-release; then npx release-it; fi
This can be useful, for example, to prevent a release-it release.
should-semantic-release accepts the following CLI flag:
- -v/--verbose _(default: false)_: Whether to log debug information to the console
`plaintext
$ npx should-semantic-release --verbose
Checking up to 123 commits for release readiness...
Checking commit: chore: an example chore (#101)
Found type chore.
Checking commit: chore: another example chore (#100)
Found type chore.
Checking commit: chore: release v1.27.31
This is a release commit. Returning false.
`
Based on a commit's conventional commit message type:
1. If the type is feat fix, or perf, it's considered "meaningful"BREAKING CHANGE:
1. If the commit is marked as being a breaking change, either via a at the start of any commit message lines or via an ! appended to the type, it's considered "meaningful"docs
1. If the type is , refactor, style, or test, it's ignoredv1.2.3
1. If the message looks like , chore: release 1.2.3, or similar, it's considered a "release"
See getCommitMeaning for the exact logic used.
Alternately, you can call this import asynchronous shouldSemanticRelease function into Node scripts:
`ts
import { shouldSemanticRelease } from "should-semantic-release";
if (await shouldSemanticRelease()) {
console.log("Let's release! ๐");
}
`
shouldSemanticRelease accepts an optional options object with the following parameter:
- verbose _(default: false)_
`ts
import { shouldSemanticRelease } from "should-semantic-release";
await shouldSemanticRelease({ verbose: true });
`
See .github/CONTRIBUTING.md, then .github/DEVELOPMENT.md.
Thanks! ๐
John Reilly ๐ ๐ป | Josh Goldberg ๐ป ๐ง ๐ ๐ค โ ๏ธ ๐ ๐ ๐ ๐ง | Katya Pavlenko ๐ป | Stephen Zhou ๐ป | Steven Luscher ๐ค | gvdp ๐ | michael faith ๐ป |
> ๐ This package was templated with create-typescript-app` using the Bingo framework.