@cenk1cenk2/cz-cc

Commitizen adapter following the conventional-changelog format.

Usage no npm install needed!

<script type="module">
  import cenk1cenk2CzCc from 'https://cdn.skypack.dev/@cenk1cenk2/cz-cc';
</script>

README

@cenk1cenk2/cz-cc

Build Status Version Downloads/week Dependencies semantic-release

Demo

Description

This is a direct fork of cz-conventional-changelog, while it swaps inquirer for enquirer for speed and adds auto compelete to commit types as well as reducing overal questions and making many optional.

Usage

  • Install commitizen. Either globally or in the project.
# yarn
yarn global add commitizen
# npm
npm install -g commitizen
  • Initiate this adapter in a project. If already initiated you can add --force flag to swap this adapter with the older one.
    • Currently has a bit of problems with yarn workspaces do to commitizen.
# yarn
commitizen init @cenk1cenk2/cz-cc --yarn --dev
# npm
commitizen init @cenk1cenk2/cz-cc --dev
  • Add husky hooks for convienence and quality assurance.
{
  "husky": {
    "hooks": {
      "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true"
    }
  }
}

Configuration

Install the adapter by utilizing global commitizen installation.

Configuration settings are down below.

package.json

Like commitizen, you specify the configuration of cz-conventional-changelog through the package.json's config.commitizen key.

{
// ...  default values
    "config": {
        "commitizen": {
            "path": "./node_modules/@cenk1cenk2/cz-cc",
            "maxHeaderWidth": 100,
            "maxLineWidth": 100,
            "defaultType": "",
            "defaultScope": "",
            "defaultSubject": "",
            "defaultBody": "",
            "defaultIssues": "",
            "types": {
              ...
              "feat": {
                "description": "A new feature",
                "title": "Features"
              },
              ...
            }
        }
    }
// ...
}

Environment variables

The following environment varibles can be used to override any default configuration or package.json based configuration.

  • CZ_TYPE = defaultType
  • CZ_SCOPE = defaultScope
  • CZ_SUBJECT = defaultSubject
  • CZ_BODY = defaultBody
  • CZ_MAX_HEADER_WIDTH = maxHeaderWidth
  • CZ_MAX_LINE_WIDTH = maxLineWidth

Commitlint

If using the commitlint js library, the "maxHeaderWidth" configuration property will default to the configuration of the "header-max-length" rule instead of the hard coded value of 100. This can be ovewritten by setting the 'maxHeaderWidth' configuration in package.json or the CZ_MAX_HEADER_WIDTH environment variable.