Skip to main content
2025 Python Packaging Survey is now live!  Take the survey now

Commitizen plugin for PyData-style commits

Project description

cz-pydata

PyPI - Version PyPI - Python Versions


Commitizen is command-line utility that helps you create your own set of rules for generating consistent commits, bumping your project's version, or generating a change log automatically.

PyData is an umbrella of projects from the scientific Python community, including NumPy, SciPy and Pandas. Some of these projects are using a commit message convention derived from the NumPy development guide, which will be referred to as the PyData convention.

Keep a Changelog is a specification for writing structured and human-readable changelogs. To my knowledge, there is currently no tooling available to turn PyData-style commit messages into a structured changelog automatically.

This plugin extends Commitizen to:

  • Understand or generate commit messages following the PyData convention.
  • Bump semantic versioning of a project based on those commit messages.
  • Generate a structured changelog automatically following the KaC spec.

Table of Contents

Installation

Using pip

pip install cz-pydata

Using pipx

pipx install commitizen
pipx inject commitizen cz-pydata

Using pre-commit

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/commitizen-tools/commitizen
    rev: master  # TODO: Replace by latest version
    hooks:
      - id: commitizen
        additional_dependencies: [ cz-pydata ]

Usage

To use this plugin with the Commitizen CLI:

cz --name cz_pydata <command>

Configuration

You can configure your project to use these commit rules by adding the following settings in your pyproject.toml:

[tool.commitizen]
name = "cz_pydata"

In addition, you may want to customize the commit message on version bumps to support the REL change type marker using:

bump_message = "REL: Release version $new_version"

Other configuration options are explained in the Commitizen documentation. Feel free to have a look at this project Commitizen configuration and adapt it to your needs.

License

cz-pydata is distributed under the terms of the MIT license.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page