Skip to main content

Simple tool to generate nice, formatted changelogs from vcs

Reason this release was yanked:

foxy-changelog has been rename foxy-project which provides more features to manage your project. Please use it instead.

Project description

🦊 Foxy changelog

[!IMPORTANT] This repository is a fork of auto-changelog. I decided to do it because auto-changelog is not maintained anymore and I need some changes for my personal usage. I will publish these changes for everyone to use but I do not promise to answer to feature request and bug fixes.

Sadly I do not have time to provide steps to contribute and not everything will be tested.

A tool which generates a changelog and manage version for any git repository using conventional style commit messages.

Installation

It is recommanded to install this tool with pipx to install it in a isolated environments:

pipx install foxy-changelog

Command line interface

You can list the command line options by running foxy-changelog --help:

Usage: foxy-changelog [OPTIONS]

Options:
-p, --path-repo PATH       Path to the repository's root directory
                           [Default: .]

-t, --title TEXT           The changelog's title [Default: Changelog]
-d, --description TEXT     Your project's description
-o, --output FILENAME      The place to save the generated changelog
                           [Default: CHANGELOG.md]

-r, --remote TEXT          Specify git remote to use for links
-v, --latest-version TEXT  use specified version as latest release
-u, --unreleased           Include section for unreleased changes
--template TEXT            specify template to use [compact] or a path to a
                           custom template, default: compact

--diff-url TEXT            override url for compares, use {current} and
                           {previous} for tags

--issue-url TEXT           Override url for issues, use {id} for issue id
--issue-pattern TEXT       Override regex pattern for issues in commit
                           messages. Should contain two groups, original
                           match and ID used by issue-url.

--tag-pattern TEXT         override regex pattern for release tags. By
                           default use semver tag names semantic. tag should
                           be contain in one group named 'version'.

--tag-prefix TEXT          prefix used in version tags, default: ""
--stdout
--tag-pattern TEXT         Override regex pattern for release tags
--starting-commit TEXT     Starting commit to use for changelog generation
--stopping-commit TEXT     Stopping commit to use for changelog generation
--debug                    set logging level to DEBUG
--help                     Show this message and exit.

Version management

foxy-changelog is providing support to automatically generate the version of your python project according their commit history.

The management is based on setuptools_scm and conventional commit.

As defined in the conventional commit specification:

  • The type feat MUST be used when a commit adds a new feature to your application or library.
  • The type fix MUST be used when a commit represents a bug fix for your application.

foxy-changelog is providing two entry points for setuptools_scm.version_scheme configuration.

semver-conventional-commit-foxy

Based on semver.

Rules:

  • A commit with type feat activates an increment of the minor.
  • All other types will activate an increment of the patch.

[!NOTE] Breaking changes is not supported yet.

calendar-conventional-commit-foxy

To manage version based on the calendar. The supported convention is YYYY.MM.Patch with Patch a number not 0-padded starting to 1. (example: 2024.01.1).

Rules:

  • A commit with type feat activates an increment of the month.
  • All other types will activate an increment of the patch version.
  • The year is automatically incremented at the end a year.

Hatch

Hatch is supporting out of the box thanks to hatch-vcs. Python projet using other project management tool can use setuptools_scm directly.

Ensure hatch-vcs and foxy-changelog is defined within the build-system.requires field in your pyproject.toml file.

All other options supported by hatch-vcs and setuptools_scm can be used. More information can be found in their documentation.

[build-system]
requires = ["hatchling", "hatch-vcs", "foxy-changelog"]
build-backend = "hatchling.build"

[tool.hatch.version]
source = "vcs"

[tool.hatch.version.raw-options]
version_scheme = "semver-conventional-commit-foxy"

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

foxy_changelog-1.1.0.tar.gz (28.2 kB view hashes)

Uploaded Source

Built Distribution

foxy_changelog-1.1.0-py3-none-any.whl (16.5 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