conventional-changelog-unconventional
This is a fork of and drop-in replacement for
conventional-changelog-conventionalcommits.
Along with various bug fixes (regex mangling, sorting problems, etc), what
follows are the major differences:
Updated to use modern JS/TypeScript
This fork uses a modern Babel-based build chain, is written in TypeScript, is
fully typed, and supports modern debugging practices.
This will be true in the next minor version 😅
A few style tweaks
Specifically:
- The scope and the first line of the subject of breaking changes are made bold
- Scope-less subjects are made sentence case
- Reverts are italicized; malformed reverts are normalized
- Better grammar from
conventional-recommended-bump
Since this configuration is used primarily in
semantic-release
-based
flows, there is no reason to store release information in commit footers.
No longer returns Promises
Calling
conventional-changelog-conventionalcommits
emits a Promise, making the result impossible to reference in synchronized code
(babel plugins, semantic-release config files, conventional-X-cli config). This
fork avoids the pain, allowing one shared configuration to be consumed by
conventional-changelog-core
,
conventional-changelog-cli
via command line,
semantic-release
via release
configuration, projector
and
projector-pipeline
at various points in the CI/CD pipeline, and other sync and async tooling.
This also means configOverrides
cannot be a Promise.
Easier to customize
When configuring
conventional-changelog-conventionalcommits,
drilling down into the
config object
and altering something like
writerOpts.transform
is not so easy. This fork allows you to tweak and chain invocations rather than
completely overwrite these key functions via the various
config
keys.
See
the function docs
for more details.
Simpler source organization
"Simplified" the source code by concentrating default configuration to a
single file with the all the configuration knobs easily
accessible among the topmatter.
For usage examples and related documentation, see the original
conventional-changelog-conventionalcommits
package.