Komito
A fast, reliable release management tool with comprehensive Gitmoji support. Based on Semantic Versioning and Conventional Commits.
Features
- Three configuration presets,
conventional,gitmoji, andconventional-gitmoji - Automatically bumps version across multiple files, optionally committing, tagging, and pushing
- Validates commit messages based on configurable patterns and rules
- Automates generation and maintenance of changelog files
- Show the version of your project with current change status
Getting started
Komito is available on pypi.org and crates.io. You can install it in a variety of ways from either.
Global installation
From pypi.org
# some options
From crates.io
# source build
# binary install (needs cargo-binstall)
Project-specific installation
With pip
With uv
# on-demand
Usage
Initialize a new project
This will create a komito.toml file in your project directory with the default configuration.
Validate commit messages
This will validate the commit messages in your repository against the configured rules.
Bump version
This will bump the version of your project based on the commit messages and update the version files.
Generate changelog
This will generate a changelog file based on the commit messages.
Show version
This will show the current version of your project.
Configuration
Komito uses a komito.toml file for configuration. You can customize the behavior of Komito by editing this file.
Example configuration
# [.]komito.toml
= "gitmoji"
= "cargo"
[]
= true
= true
= false
[]
= "CHANGELOG.md"
= ["ignore", "beer", "poop", "init", "wip"]
[]
= "error"
= "error"
Presets
Komito supports three presets:
conventional: Uses conventional commit types (feat, fix, etc.)gitmoji: Uses gitmoji emojis (✨, 🐛, etc.)conventional-gitmoji: Combines both conventional commit types and gitmoji emojis
Version sources
Komito can read the version from multiple sources:
pyproject.toml: Python project file (PEP 621 or Poetry)Cargo.toml: Rust project filepackage.json: Node.js project filecomposer.json: PHP Composer file
Changelog
Komito can generate and maintain a changelog file. You can customize the path and format of the changelog file.
License
Komito is licensed under the LGPL-3.0 license. See the LICENSE file for more information.
Contributing
Contributions are welcome! Please open an issue or submit a pull request on the Codeberg repository.
Support
If you need help or have any questions, please open an issue on the Codeberg repository.
Acknowledgements
This project is heavily influenced by commitizen and would not have been born without it. It's the spiritual successor to the cz-conventional-gitmoji plugin. In addition, the codebase and structure is inspired by ruff and ty and some of the changelog functionality by rooster.