conventional-changelog-unconventionaldeprecated

Custom CHANGELOG generation and semantic release settings based on conventional-changelog-conventionalcommits

Usage no npm install needed!

<script type="module">
  import conventionalChangelogUnconventional from 'https://cdn.skypack.dev/conventional-changelog-unconventional';
</script>

README

Black Lives Matter! Maintenance status Last commit timestamp Open issues Pull requests Codecov Source license Tree shaking support Compressed package size NPM version Uses Semantic Release!

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

Removed release-as footer line support

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.