Skip to main content

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cz_pydata-0.2.0.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

cz_pydata-0.2.0-py3-none-any.whl (6.0 kB view hashes)

Uploaded Python 3

Supported by

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