Noticeably Playful Monkeys

    cz-cc
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.1 • Public • Published

    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

    type emoji description
    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

    Install

    npm i cz-cc

    DownloadsWeekly Downloads

    37

    Version

    1.0.1

    License

    Apache-2.0

    Unpacked Size

    43.2 kB

    Total Files

    10

    Last publish

    Collaborators

    • lchemist