cz-cc
v1.0.1
Published
Commitizen adaptor that follows the Conventional Commits specification (with support for semantic emoji ✨)
Downloads
157
Maintainers
Readme
cz-cc
A commitizen adaptor that follows the Conventional Commits specification.
✨ 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)
- Install commitizen
# npm
npm install -g commitizen
# yarn
yarn global add commitizen
- Initialize cz-cc adaptor
# npm
commitizen init cz-cc --save-dev --save-exact
# yarn
commitizen init cz-cc --yarn --dev --exact
- Start commitizen CLI
cz
🔨 Usage (locally installed commitizen)
- Install commitizen & cz-cc
# npm
npm install -D commitizen cz-cc
# yarn
yarn add commitizen cz-cc
- Add following config to
package.json
{
// ...
"config": {
"commitizen": {
"path": "cz-cc"
}
},
"scripts": {
// ...
"commit": "cz"
}
}
- 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"
}
// ...
}
}
}
}