komito-derive 1.1.1

Internal proc-macros for komito
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented0 out of 1 items with examples
  • Size
  • Source code size: 9.64 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 271.51 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 5s Average build duration of successful builds.
  • all releases: 5s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ljnsn

Komito

License: LGPL v3 Rust Build Status

A fast, reliable release management tool with comprehensive Gitmoji support. Based on Semantic Versioning and Conventional Commits.

Features

  • Three configuration presets, conventional, gitmoji, and conventional-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
uv tool install komito
pipx install komito

From crates.io

# source build
cargo install komito

# binary install (needs cargo-binstall)
cargo binstall komito

Project-specific installation

With pip

pip install komito

With uv

uv add komito

# on-demand
uvx --from komito ko ...

Usage

Initialize a new project

ko init

This will create a komito.toml file in your project directory with the default configuration.

Validate commit messages

ko check

This will validate the commit messages in your repository against the configured rules.

Bump version

ko bump

This will bump the version of your project based on the commit messages and update the version files.

Generate changelog

ko changelog

This will generate a changelog file based on the commit messages.

Show version

ko 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
preset = "gitmoji"
version-source = "cargo"

[bump]
tag = true
changelog = true
push = false

[changelog]
path = "CHANGELOG.md"
ignore-types = ["ignore", "beer", "poop", "init", "wip"]

[validation]
must-match-pattern = "error"
unknown-commit-type = "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 file
  • package.json: Node.js project file
  • composer.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.