Skip to content

ghisvail/cz-pydata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.