What is conventional-recommended-bump?
The conventional-recommended-bump npm package is a tool that analyzes conventional-style commit messages (like those used by AngularJS) to determine the type of version bump (major, minor, or patch) that should be recommended based on the changes made. It is often used in automated versioning and release workflows to ensure semantic versioning practices are followed.
What are conventional-recommended-bump's main functionalities?
Determining the type of version bump
This feature allows you to determine whether your next release should be a major, minor, or patch version. The code sample shows how to use the package with the Angular preset to get a recommendation.
const conventionalRecommendedBump = require('conventional-recommended-bump');
conventionalRecommendedBump({
preset: 'angular'
}, (error, recommendation) => {
console.log(recommendation.releaseType);
});
Customizable preset options
This feature allows you to customize the preset options for analyzing commit messages. The code sample demonstrates how to specify a custom header pattern and correspondence for the Angular preset.
const conventionalRecommendedBump = require('conventional-recommended-bump');
conventionalRecommendedBump({
preset: 'angular',
config: {
headerPattern: /^\[(.*)\] (.*)$/,
headerCorrespondence: ['type', 'subject']
}
}, (error, recommendation) => {
console.log(recommendation.releaseType);
});
Using a custom parser
This feature allows you to use a custom parser for commit messages. The code sample shows how to pass custom parser options to the package.
const conventionalRecommendedBump = require('conventional-recommended-bump');
const customParserOpts = require('./custom-parser-opts');
conventionalRecommendedBump({
parserOpts: customParserOpts
}, (error, recommendation) => {
console.log(recommendation.releaseType);
});
Other packages similar to conventional-recommended-bump
semantic-release
semantic-release is an npm package that automates the versioning and package publishing process based on semantic versioning and conventional commit messages. It is more comprehensive than conventional-recommended-bump as it includes the entire release workflow, not just the recommendation for version bumps.
standard-version
standard-version is an automated versioning tool that adheres to Semantic Versioning and uses conventional commit messages to determine version bumps. It is similar to conventional-recommended-bump but also handles the generation of changelogs and tagging of releases.
release-it
release-it is a generic CLI tool for automating versioning and package publishing. It supports conventional commits and can determine version bumps, but it also includes a wide range of release-related tasks, making it more versatile than conventional-recommended-bump.
Get a recommended version bump based on conventional commits.
Got the idea from https://github.com/conventional-changelog/conventional-changelog/pull/29
Install
npm install conventional-recommended-bump
Usage
const conventionalRecommendedBump = require(`conventional-recommended-bump`);
conventionalRecommendedBump({
preset: `angular`
}, (error, recommendation) => {
console.log(recommendation.releaseType);
});
npm install --global conventional-recommended-bump
conventional-recommended-bump --help
API
conventionalRecommendedBump(options, [parserOpts,] callback);
parserOpts
is optional.
In the case you don't want to provide parserOpts
, then callback
must be provided as the second argument.
options
options
is an object with the following properties:
- ignoreReverted
- preset
- config
- whatBump
ignoreReverted
Type: boolean
Default: true
If true
, reverted commits will be ignored.
preset
Type: string
It's recommended to use a preset so you don't have to define everything yourself.
The value is passed to conventional-changelog-preset-loader
.
config
Type: object
This should serve as default values for other arguments of conventional-recommended-bump
so you don't need to rewrite the same or similar config across your projects.
NOTE: config
option will be overwritten by the value loaded by conventional-changelog-preset-loader
if the preset
options is set.
whatBump
Type: function
A function that takes parsed commits as an argument.
whatBump(commits) {};
commits
is an array of all commits from last semver tag to HEAD
as parsed by conventional-commits-parser
This should return an object including but not limited to level
and reason
. level
is a number
indicating what bump it should be and reason
is the reason of such release.
tagPrefix
Type: string
Specify a prefix for the git tag that will be taken into account during the comparison.
For instance if your version tag is prefixed by version/
instead of v
you would specifying --tagPrefix=version/
using the CLI, or version/
as the value of the tagPrefix
option.
lernaPackage
Type: string
Specify the name of a package in a Lerna-managed repository. The package name will be used when fetching all changes to a package since the last time that package was released.
For instance if your project contained a package named conventional-changelog
, you could have only commits that have happened since the last release of conventional-changelog
was tagged by specifying --lernaPackage=conventional-changelog
using the CLI, or conventional-changelog
as the value of the lernaPackage
option.
parserOpts
Type: object
See the conventional-commits-parser documentation for available options.
callback
Type: function
callback(error, recommendation) {};
recommendation
is an object
with a single property, releaseType
.
releaseType
is a string
: Possible values: major
, minor
and patch
, or undefined
if whatBump
does not return sa valid level
property, or the level
property is not set by whatBump
.
License
MIT © Steve Mao