
conventional-changelog core
You are probably looking for the cli module. Or use one of the plugins if you are already using the tool: grunt/gulp/atom.
Usage
$ npm install --save conventional-changelog-core
var conventionalChangelogCore = require('conventional-changelog-core');
conventionalChangelogCore()
.pipe(process.stdout);
API
conventionalChangelogCore([options, [context, [gitRawCommitsOpts, [parserOpts, [writerOpts]]]]])
Returns a readable stream.
Note: options.transform
, options.pkg.transform
and writerOpts.transform
are different. If you have a better naming suggestion, please send a PR.
options
config
Type: promise
, function
or object
This should serve as a default value for other arguments of conventionalChangelogCore
so it could be overwritten.
If this is a promise (recommended if async), it should resolve with the config.
If this is a function, it expects a node style callback with the config object.
If this is an object, it is the config object. The config object should include context, gitRawCommitsOpts, parserOpts and writerOpts.
pkg
Type: object
path
Type: string
Default: closest package.json.
The location of your "package.json".
transform
Type: function
Default: pass through.
A function that takes package.json
data as the argument and returns the modified data. Note this is performed before normalizing package.json data. Useful when you need to add a leading 'v' to your version or modify your repository url, etc.
append
Type: boolean
Default: false
Should the log be appended to existing data.
releaseCount
Type: number
Default: 1
How many releases of changelog you want to generate. It counts from the upcoming release. Useful when you forgot to generate any previous changelog. Set to 0
to regenerate all.
warn
Type: function
Default: function() {}
A warn function. EG: grunt.verbose.writeln
transform
Type: function
Default: get the version (without leading 'v') from tag and format date.
function(commit, cb)
A transform function that applies after the parser and before the writer.
This is the place to modify the parsed commits.
####### commit
The commit from conventional-commits-parser.
####### cb
Callback when you are done.
####### this
this
arg of through2.
outputUnreleased
Type: boolean
Default: true
if a different version than last release is given. Otherwise false
.
If this value is true
and context.version
equals last release then context.version
will be changed to 'Unreleased'
.
context
See the conventional-changelog-writer docs. There are some defaults or changes:
host
Default: normalized host found in package.json
.
version
Default: version found in package.json
.
owner
Default: extracted from normalized package.json
repository.url
field.
repository
Default: extracted from normalized package.json
repository.url
field.
gitSemverTags
Type: array
All git semver tags found in the repository. You can't overwrite this value.
previousTag
Type: string
Default: previous tag or the first commit hash if no previous tag.
currentTag
Type: string
Default: current tag or 'v'
+ version if no current tag.
packageData
Type: object
Your package.json
data. You can't overwrite this value.
linkCompare
Type: boolean
Default: true
if previousTag
and currentTag
are truthy.
Should link to the page that compares current tag with previous tag?
gitRawCommitsOpts
See the git-raw-commits docs. There are some defaults:
format
Default: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci'
from
Default: based on options.releaseCount
.
reverse
Default: true
if options.append
is truthy.
parserOpts
See the conventional-commits-parser docs.
warn
Default: options.warn
writerOpts
See the conventional-changelog-writer docs. There are some defaults:
reverse
Default: options.append
doFlush
Default: options.outputUnreleased
Notes for parent modules
This module has options append
and releaseCount
. However, it doesn't read your previous changelog. Reasons being:
- The old logs is just to be appended or prepended to the newly generated logs, which is a very simple thing that could be done in the parent module.
- We want it to be very flexible for the parent module. You could create a readable stream from the file or you could just read the file.
- We want the duty of this module to be very minimum.
So, when you build a parent module, you need to read the old logs and append or prepend to them based on options.append
. However, if options.releaseCount
is 0
you need to ignore any previous logs. Please see conventional-github-releaser as an example.
Arguments passed to conventionalChangelogCore
will be mutated.
License
MIT