@xunnamius/conventional-changelog-projector
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

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!

@xunnamius/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

If you're using lernaPackage or tagPrefix configuration options, consider installing the fixed version of conventional-changelog (see also). For example:

npm install --save-dev https://xunn.at/conventional-changelog-cli

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 is bolded
  • Scope-less subjects are made sentence case
  • The first line of the subject of breaking changes are bolded and sentence cased (scope is excluded)
  • 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/.

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.

Package Sidebar

Install

npm i @xunnamius/conventional-changelog-projector

Weekly Downloads

21

Version

1.2.1

License

MIT

Unpacked Size

33.5 kB

Total Files

10

Last publish

Collaborators

  • xunnamius