@xunnamius/conventional-changelog-projectordeprecated

conventional-changelog @xunnamius/projector preset originally forked from conventional-changelog-conventionalcommits

Usage no npm install needed!

<script type="module">
  import xunnamiusConventionalChangelogProjector from 'https://cdn.skypack.dev/@xunnamius/conventional-changelog-projector';
</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-projector

This preset is a fork of conventional-changelog-conventionalcommits built to work within the projector ecosystem.

For now, see the original conventional-changelog-conventionalcommits package for usage examples and related documentation.

Install

npm install --save-dev @xunnamius/conventional-changelog-projector

Differences from upstream

Along with several bug fixes (regex mangling, sorting problems, etc), what follows are the major differences versus upstream.

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, some cli consumers, npm scripts, etc).

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.

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 😅

Documentation

Further documentation can be found under docs/.

License

FOSSA analysis

Contributing and Support

New issues and pull requests are always welcome and greatly appreciated! 🤩 Just as well, you can star 🌟 this project to let me know you found it useful! ✊🏿 Thank you!

See CONTRIBUTING.md and SUPPORT.md for more information.