Skip to main content

Changelog generation tool

Project description

Changelog Generator - v0.6.0

changelog-gen is a CHANGELOG generator intended to be used in conjunction with bumpversion to generate changelogs and create release tags.

Installation

pip install changelog-gen

or clone this repo and install with poetry, currently depends on poetry < 1.0.0 due to other personal projects being stuck.

poetry install

Usage

changelog-gen currently only supports reading changes from a release_notes folder.

Files in the folder should use the format {issue_number}.{type}.

By default supported types are currently fix and feat. Additional types can be configured to map to these initial types.

The contents of each file is used to populate the changelog file. If the type ends with a ! it denotes a breaking change has been made, this will lead to a major release being suggested.

$ ls release_notes
  4.fix  7.fix

$ changelog-gen

## v0.2.1

### Bug fixes

- Raise errors from internal classes, don't use click.echo() [#4]
- Update changelog line format to include issue number at the end. [#7]

Write CHANGELOG for suggested version 0.2.1 [y/N]: y

Configuration

Of the command line arguments, most of them can be configured in setup.cfg to remove the need to pass them in every time.

Example setup.cfg:

[changelog_gen]
commit = true
release = true
allow_dirty = false

Configuration file -- Global configuration

General configuration is grouped in a [changelog_gen] section.

commit = (True | False)

[optional]
default: False

Commit changes to the changelog after writing.

Also available as --commit (e.g. changelog-gen --commit)

release = (True | False)

[optional]
default: False

Use bumpversion to tag the release

Also available as --release (e.g. changelog-gen --release)

allow_dirty = (True | False)

[optional]
default: False

Don't abort if the current branch contains uncommited changes

Also available as --allow-dirty (e.g. changelog-gen --allow-dirty)

issue_link =

[optional]
default: None

Create links in the CHANGELOG to the originating issue. A url that contains an {issue_ref} for formatting.

Example:

[changelog_gen]
issue_link = http://github.com/EdgyEdgemond/changelog-gen/issues/{issue_ref}

allowed_branches =

[optional]
default: None

Prevent changelog being generated if the current branch is not in the supplied list. By default all branches are allowed.

Example:

[changelog_gen]
allowed_branches = 
  master
  develop

sections =

[optional]
default: None

Define custom headers or new sections/headers, new sections will require a matching section_mapping configuration.

Example:

[changelog_gen]
sections = 
  feat=New Features
  change=Changes
  remove=Removals
  fix=Bugfixes

section_mapping =

[optional]
default: None

Configure additional supported release_note extensions to supported changelog sections.

Example:

[changelog_gen]
section_mapping = 
  test=fix
  bugfix=fix
  docs=fix
  new=feat

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

changelog_gen-0.6.0.tar.gz (12.6 kB view hashes)

Uploaded Source

Built Distribution

changelog_gen-0.6.0-py3-none-any.whl (13.9 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