skillfed

antsibull-changelog

Changelog tool for Ansible-core and Ansible collections

antsibull-changelog v0.35.1 320.9K downloads/30d#7,629 on PyPI45
Copyleft license GPL-3.0-or-later Active released

What it is and what it does

antsibull-changelog is a changelog generator purpose-built for Ansible collections and other projects. It reads YAML fragment files from a `changelogs/fragments/` directory and synthesizes them into structured release notes following Ansible conventions. The tool is actively maintained by the Ansible community and supports modern Python versions (3.9–3.14).

The package provides both a Python API and a CLI tool (`antsibull-changelog`) for operations like generating releases, linting changelog fragments, and validating configuration. It depends on a suite of Ansible-specific utilities (antsibull-docs-parser, antsibull-docutils, antsibull-fileutils) plus standard tools like pydantic for validation and docutils for markup handling. It is licensed under GPLv3, which carries copyleft obligations for derivative works.

Use it for:

  • Generate release notes for Ansible collections from fragment files during the release process
  • Validate changelog fragment format and structure in CI/CD pipelines before merging
  • Automate changelog generation for Python projects that adopt the Ansible fragment-based workflow
  • Lint and audit existing changelog entries for consistency and correctness
  • Extract and format version information from pyproject.toml during release automation

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

antsibull-changelog is a CLI tool that generates structured changelogs for Ansible collections and other Python projects from YAML fragment files.

Yes, if you are maintaining an Ansible collection or have adopted the Ansible changelog fragment workflow. The tool is production-stable, actively maintained, and has low install friction. No, if you need a general-purpose changelog generator for non-Ansible projects—it is tightly coupled to Ansible conventions and the GPLv3 license may conflict with proprietary use. Yes-with-conditions for other Python projects: only if you are willing to adopt the Ansible fragment structure and accept GPLv3 licensing terms.

Install

antsibull-changelog on PyPI

pip

pip install antsibull-changelog

uv

uv add antsibull-changelog

poetry

poetry add antsibull-changelog

Installing antsibull-changelog

Before you install

Low install friction with a pure-Python wheel distribution. Active maintenance with a recent release (88 days ago) and ongoing commits. Supports Python 3.9 through 3.14, indicating current language support.

License in practice

Licensed under GPL-3.0-or-later (copyleft). Any derivative work or distribution must comply with GPLv3 terms, which may restrict use in proprietary projects without careful licensing review.

Quickstart

pip install antsibull-changelog

from antsibull_changelog.cli import main

# Or use the CLI directly:
# antsibull-changelog release

Requires Python 3.9 or later. The optional [toml] extra is needed to read version from pyproject.toml on Python < 3.11.

Verify before relying

  • Whether the package works with projects outside the Ansible ecosystem without modification
  • Performance characteristics when processing large numbers of changelog fragments
  • Whether all 9 runtime dependencies are required for basic changelog generation or if some are optional

Package facts

License GPL-3.0-or-later (copyleft)
Python support supports the current Python release (>=3.9.0)
Install friction low — pure-Python wheel
Runtime dependencies 9 — annotated-types, antsibull-docs-parser, antsibull-docutils, antsibull-fileutils, docutils, packaging, pydantic, rstcheck, semantic-version
Maintenance actively maintained — 88 days since the last release
Last repo commit
First released
Downloads 320,890/month — #7,629 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: antsibull_changelog-0.35.1-py3-none-any.whl

Development Status :: 5 - Production/StableFramework :: AnsibleIntended Audience :: DevelopersProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Typing :: Typed

Tags

ansible changelog generatorchangelog from yaml fragmentsrelease notes automationansible collection changelogchangelog management toolstructured changelog builderansible release documentation
ansible-ecosystemrelease-automationchangelog-generation

More Documentation packages