Skip to main content

Simple tool to generate nice, formatted changelogs from vcs

Project description

Github Actions Gitlab CI PyPI PyPI - Python Version PyPI - License Code style - Black

A quick script that will generate a changelog for any git repository using conventional style commit messages.

Installation

Install and update using pip:

pip install auto-changelog

or directly from source(via Poetry):

poetry install
poetry build
pip install dist/*.whl

Usage

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

Usage: auto-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.

A simple example

Example usage of auto-changelog

Contributing

To setup development environment, you may use Poetry. These instructions will assume that you have already Poetry as well as GNU make locally installed on your development computer.

These instructions will assume that you have already poetry (https://python-poetry.org/) locally installed on your development computer.

  1. Fork the auto-changelog repo on GitHub.

  2. Clone your fork locally:

    $ git clone git@github.com:your_name_here/auto-changelog.git
  3. Initialize your local development environment of auto-changelog. This will include creating a virtualenv using poetry, installing dependencies and registering git hooks using pre-commit:

    $ cd auto-changelog/
    $ make init-dev
  4. Create a branch for local development:

    $ git checkout -b name-of-your-bugfix-or-feature

    Now you can make your changes locally.

  5. When you’re done making changes, check that your changes pass linting, formating, and the tests, including testing other Python versions with tox:

    $ make lint         # check style with flake8
    $ make format       # run autoformat with isort and black
    $ make test         # run tests quickly with the default Python
    $ make test-all     # run tests on every Python version with tox
  6. Commit your changes and push your branch to GitHub. Upon commit pre-commit will automatically run flake8 and black and report if changes have been made or need to be fixed by you:

    $ git add .
    $ git commit -m "Your detailed description of your changes."
    $ git push origin name-of-your-bugfix-or-feature
  7. Submit a pull request through the GitHub website.

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

auto_changelog-0.6.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

auto_changelog-0.6.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file auto_changelog-0.6.0.tar.gz.

File metadata

  • Download URL: auto_changelog-0.6.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.15 Linux/5.4.109+

File hashes

Hashes for auto_changelog-0.6.0.tar.gz
Algorithm Hash digest
SHA256 ae930fd187d32df92a0e63b96a710a954cd387fcb4a592492abfcd0d3cfbd6fa
MD5 6b3a1c1d92f711b5cea2e385b9084045
BLAKE2b-256 46554879daf7317e566b73fd79320bbeb01b74c42d7e54f137eec2ac1b73b7a1

See more details on using hashes here.

File details

Details for the file auto_changelog-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: auto_changelog-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.15 Linux/5.4.109+

File hashes

Hashes for auto_changelog-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c14e647b767758f483a7567d7be5a0c79b8ecbd52b4bdc6fed2a98aba9ed86d8
MD5 79ee27da4e647f1260a7eb7a56cf1bae
BLAKE2b-256 c5033229ee43b8c92abeb1cd4bc600104b5cbe8c42a1e9bb2d847abe9c5a8706

See more details on using hashes here.

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