Skip to main content

Generate curated changelogs into various formats.

Project description

clproc helps to provide human-readable and user-friendly change-logs for projects without compromise on git-commit quality.

It uses a separate source for log-entries and is also usable for projects that don’t use git.

Why clproc?

clproc does not depend on specially formatted git commit messages. This has several very important consequences:

  • It clearly separates developers from end-users

    • Developers don’t need to worry about commit-message content leaking into end-user visible change-logs

    • End-Users will only see well-crafted, curated content for changes

  • Changelogs are “just content” and they can be easily modified as time goes on.

  • It is easy to modify old entries in the change-log witout rewriting the git history (f.ex. for clarifications and/or typos).

Example alternatives to clproc that rely on git log-messages:

Release Information

clproc also separates normal “change-log” entries from “release notes” where “release notes” is prose aimed to explain details of a specific release. Relase notes are optional and can be added on an “as-needed” basis.

Example Input File

# -*- changelog-version: 2.0 -*-
1.1         ; added   ; Added a new feature
1.0.0       ; support ; Mark as final release
1.0.0a2     ; fixed   ; Fixed something
1.0.0a1     ; support ; Initial Development Release

pre-commit integration

As of version 1.2.0, clproc can be integrated with pre-commit. The pre-commit hook will ensure that the current project-version also has a matching entry in the changelog

The expected version will be auto-detected. At the time of this writing, clproc supports only two metadata sources:

  • A pyproject.toml file using setuptools as build-backend

  • A package.json file for NPM packages

  • A cargo.toml file for rust crates

The arguments --exact and --release-only are of primary interest. Using “exact” checking, the changelog must contain an entry matching the version number in the metadata file exactly. When using --release-only, only the “release-nodes” (“nodes” with a “d”. Not a “t”. See the docs for details) are checked, providing a more lenient check.

Example pre-commit config:

---
repos:
  - repo: https://github.com/post-luxembourg/clproc.git
    rev: v1.2.0
    hooks:
      - id: clproc
        args: ["--release-only"]

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

clproc-2024.8.12.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

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

clproc-2024.8.12-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file clproc-2024.8.12.tar.gz.

File metadata

  • Download URL: clproc-2024.8.12.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for clproc-2024.8.12.tar.gz
Algorithm Hash digest
SHA256 8f740279e78aa2c3b56ab6e65c8fdab1c23e5a9c49c4c869e0b1f496ca50c973
MD5 1ecd007769ab9dc50de2c0bfe2753dc3
BLAKE2b-256 03d96a3e216fd7c8bab812afab324321d8b7e5694c918450171a9699545764d2

See more details on using hashes here.

File details

Details for the file clproc-2024.8.12-py3-none-any.whl.

File metadata

  • Download URL: clproc-2024.8.12-py3-none-any.whl
  • Upload date:
  • Size: 25.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for clproc-2024.8.12-py3-none-any.whl
Algorithm Hash digest
SHA256 3303c02cdf42b9eb59878713f981f1d21fed5d93bc0461ac4f39440c4e6925c9
MD5 dcf3483de104ed96151d810eff766eae
BLAKE2b-256 1e8862a083ce7b7e3b8158bde4ae81fa0aa63696e6875e5f6c14685e0514b560

See more details on using hashes here.

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