Skip to main content

Commitizen changelog format plugin with YAML frontmatter awareness for REUSE/SPDX-compliant changelogs

Project description

๐—ฐ๐—ผ๐—บ๐—บ๐—ถ๐˜๐—ถ๐˜‡๐—ฒ๐—ป-๐šœ๐š™๐š๐šก-๐“ฌ๐“ฑ๐“ช๐“ท๐“ฐ๐“ฎ๐“ต๐“ธ๐“ฐ

Typing SVG

License PyPI Python CI Release

A commitizen changelog format plugin with YAML frontmatter awareness โ€” designed for REUSE/SPDX-compliant changelogs. No more false version detection from license headers like Apache-2.0.

[!WARNING] This project is in early development.

Features

  • SPDX-aware โ€” strips ----delimited YAML frontmatter before parsing
  • Correct version detection โ€” no false positives from Apache-2.0 style headers
  • Drop-in replacement โ€” extends commitizen's built-in Markdown format
  • Zero extra config โ€” just set changelog_format = "spdx-markdown"

Why do I need this?

If you keep your changelog in docs/changelog.md instead of the project root, placing it alongside your documentation lets readers of your published site who might not directly browse the git repository stay informed about recent changes.

Documentation generators like Zensical, Docusaurus, and tools using Google's Open Knowledge Format (OKF) require a YAML front matter for meta data.

When you apply a REUSE/SPDX license header with reuse annotate, the header lands as a YAML comment inside the front matter, not as an HTML comment:

  • # SPDX-License-Identifier: Apache-2.0

The catch: commitizen's built-in Markdown format does not understand YAML front matter. It reads Apache-2.0 as a version number, causing cz bump --changelog to fail silently or produce wrong results.

[!NOTE] This plugin strips the front matter before parsing, so your changelog stays compliant, doc-generator-friendly, and commitizen-compatible โ€” all at once.

Getting started

Installation

uv add commitizen-spdx-changelog
# or: pip install commitizen-spdx-changelog

[!TIP] See the docs landing page for a full overview, and the usage guide for furher setup and workflow instructions.

Configuration

In pyproject.toml:

[tool.commitizen]
changelog_format = "spdx-markdown"

Usage

cz bump --changelog

The plugin handles changelogs with SPDX frontmatter like:

---
# SPDX-FileCopyrightText: 2026 Pablo Hรถrtner <redtux@pm.me>
#
# SPDX-License-Identifier: Apache-2.0

icon: lucide/git-commit-vertical
---

# Changelog

## 0.4.0 (2026-06-08)
...

Development

direnv allow
uv sync --group dev

[!TIP] Running direnv allow will activate the devbox environment automatically. See the Devbox guide for all available commands and tools.

Contributing

[!NOTE] Bug reports, feature requests, and pull requests are welcome.

For documentation contributions, please follow these principles:

Write for humans, keep it minimal, update docs with code, delete dead content. Every page in docs/ and the project README.md are held to these standards.

License

Distributed under the terms of the Apache License 2.0.

  • Copyright ยฉ 2026 Pablo Hรถrtner

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

commitizen_spdx_changelog-0.1.2.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

commitizen_spdx_changelog-0.1.2-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file commitizen_spdx_changelog-0.1.2.tar.gz.

File metadata

File hashes

Hashes for commitizen_spdx_changelog-0.1.2.tar.gz
Algorithm Hash digest
SHA256 d3ffbfaec02c1b2246bc0bbb6e07df0aed4af2383d5c926a1e6cc08d2ec9d74b
MD5 89c08c8969df2fe4b90f904bd9ee3d03
BLAKE2b-256 9f54dfd2cc3216d03814343da6c4c2434323b0b0aa063e8f4cf8118348f1e4a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for commitizen_spdx_changelog-0.1.2.tar.gz:

Publisher: publish.yaml on redtux/commitizen-spdx-changelog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file commitizen_spdx_changelog-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for commitizen_spdx_changelog-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f4eba62e99ac33ef716d46c11045266bd9f48fe18b8ee22e512b33d0dd6b2d5b
MD5 fd48d022d9e9693e1416e7c14aa797c0
BLAKE2b-256 56cd8cb3babeb9f369db9648da05b30812a970fb2504066845eed2a48d38ebc1

See more details on using hashes here.

Provenance

The following attestation bundles were made for commitizen_spdx_changelog-0.1.2-py3-none-any.whl:

Publisher: publish.yaml on redtux/commitizen-spdx-changelog

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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