init
The cz init
command helps you set up Commitizen in your project by creating a configuration file with your preferred settings.
Usage¶
Command¶
cz init
Interactive Configuration¶
When you run cz init
, Commitizen will guide you through an interactive setup process:
Configuration File¶
The initialization process will create a configuration file in your project root.
Choose the configuration file format based on your project type:
- Use
pyproject.toml
for Python projects - Use
.cz.toml
,.cz.yaml
,.cz.json
, etc. for other projects.
Configuration Options¶
During the initialization process, you'll be prompted to configure the following settings:
- Convention Rules: Select the commit message convention to follow (e.g., conventional commits)
- Version Provider: Choose how to manage versioning in your project. Commitizen supports multiple version management systems:
commitizen
: Uses Commitizen's built-in version management systemnpm
: Manages version inpackage.json
for Node.js projectscargo
: Manages version inCargo.toml
for Rust projectscomposer
: Manages version incomposer.json
for PHP projectspep621
: Usespyproject.toml
with PEP 621 standardpoetry
: Usespyproject.toml
with Poetry configurationuv
: Usespyproject.toml
anduv.lock
for Python projectsscm
: Reads version directly from git tags without modifying files
- Project Version: The current version of your project will be detected automatically
- Tag Format: The format used for version tags in your repository
- Version Type: Choose between:
semver
orsemver2
: Semantic Versioning (MAJOR.MINOR.PATCH)pep440
: Python Package Versioning
- Changelog Generation: Configure whether to automatically generate changelog during version bumps
- Alpha Versioning: Option to keep major version at 0 for alpha/beta software
- Pre-commit Hooks: Set up Git pre-commit hooks for automated commit message validation
Example¶
# Start the initialization process
cz init
# Follow the interactive prompts to configure your project
Next Steps¶
After initialization, you can:
- Start using
cz commit
to create conventional commits - Use
cz bump
to manage versioning - Configure additional settings in your project's configuration file