1.0.1 โ€ข Published 3 years ago

cz-cc v1.0.1

Weekly downloads
9
License
Apache-2.0
Repository
github
Last release
3 years ago

cz-cc

build NPM semantic-release Commitizen friendly Conventional Changelog

A commitizen adaptor that follows the Conventional Commits specification.

DEMO

โœจ Features

  • Supports semantic emoji in commit subject message
  • Customizable questions (disable any question)
  • Searchable choices for type & scope
  • Customizable type values, descriptions and associated emojis
  • Customizable scope values
  • Better CLI prompts
  • 0 modification required when migrating from cz-conventional-changelog

๐ŸŽจ Default Commit Types

typeemojidescription
featโœจA new feature
fix๐Ÿ›A bug fix
chore๐Ÿ”งChanges that do not modify src or test files
refactor๐ŸงนChanges that neither fix a bug nor add a feature (renaming variable, file structure changes...)
style๐Ÿ’„Changes that do not affect the meaning of the code (white-space, formatting, semi-colons...)
testโœ…Adding missing tests or correcting existing tests
perfโšก๏ธChanges that improves performance
docs๐Ÿ“Documentation only changes
ci๐Ÿ‘ทChanges to CI config files and scripts
revertโชReverts a previous commit
break๐Ÿ’ฅA breaking change (alias to feat)
init๐ŸŽ‰Initial commit (alias to feat)

๐Ÿ”จ Usage (globally installed commitizen)

  1. Install commitizen
# npm
npm install -g commitizen
# yarn
yarn global add commitizen
  1. Initialize cz-cc adaptor
# npm
commitizen init cz-cc --save-dev --save-exact
# yarn
commitizen init cz-cc --yarn --dev --exact
  1. Start commitizen CLI
cz

๐Ÿ”จ Usage (locally installed commitizen)

  1. Install commitizen & cz-cc
# npm
npm install -D commitizen cz-cc
# yarn
yarn add commitizen cz-cc
  1. Add following config to package.json
{
  // ...
  "config": {
    "commitizen": {
      "path": "cz-cc"
    }
  },
  "scripts": {
    // ...
    "commit": "cz"
  }
}
  1. Start commitizen CLI
# npm
npm run commit
# yarn
yarn run commit

โš™๏ธ Configuration

cz-cc fully supports the configurations of cz-conventional-changelog.

Additionally, the native configuration options of cz-zz are as follows:

{
  // ... package.json
  "config": {
    // Default configurations:
    "commitizen": {
      // ...
      // Set to `false` to disable emoji.
      "useEmoji": true,
      // If `true`, whenever commit includes a breaking change, an exclamation mark will be inserted before the colon in commit header.
      // @example feat(core)!: replace algorithm entirely
      "useExclamationMark": false,
      // Maximum amount of characters allowed in the commit header.
      // @note Default to 50/72 formatting style.
      "maxHeaderLength": 50,
      // Maximum amount of characters per line in the commit body and commit footer(s).
      // @note Default to 50/72 formatting style.
      "maxLineLength": 72,
      // Minimal amount of characters allowed for the commit subject.
      "minSubjectLength": 4,
      // Questions to be prompted, remove key to disable that question.
      "questions": ["type", "scope", "subject", "body", "breaking", "issues"],
      // Types to be presented in the default selection list (the list before user enters any search input).
      "defaultTypes": ["feat", "fix", "chore", "refactor", "style", "test", "perf", "docs", "ci", "build", "break"],
      // Scopes to be presented in the selection list.
      // @note Empty array will prompts an input, allows user to enter any string as value of the scope.
      "scopes": [],
      // All available types for user selection.
      // @note The entries that are not part of the `defaultTypes` will be presented when user searches for the entry key.
      "types": {
        // ...
        "init": {
          "emoji": "๐ŸŽ‰",
          "value": "feat",
          "description": "Initial commit (alias to feat)"
        },
        "fix": {
          "emoji": "๐Ÿ›",
          "value": "fix",
          "description": "A bug fix"
        }
        // ...
      }
    }
  }
}

๐Ÿ“œ License

Apache License 2.0