Skip to main content

Generate changelog from Git commits.

Project description

Generate changelog from Git commits.

PyPI Version Supported Python versions Build Status GPL-2.0-only OR LGPL-2.1-or-later Coverage

Prerequisites

  • Python 3.6, 3.7 and 3.8

Documentation

Documentation is available on Read the Docs.

Installation

Latest stable version on PyPI:

pip install matyan

Usage

Basic usage

See Basic concepts section to get impression on possible commit methodology and assumptions taken.

Generate changelog:

generate-changelog

Generate changelog skipping orphaned commits:

In some cases you would only want to show what has been done with tickets and skip all non-ticket related commits.

generate-changelog --no-other

Generate changelog between two releases:

In other cases you would want to show what has been done since last release. The following example would generate changelog since version 0.0.1 to version 0.0.3.

generate-changelog 0.0.1..0.0.3

Generate changelog between two branches:

Sometimes you just need to show the changes made on acceptance since last production release. The following example would generate changelog with changes that are on acceptance branch and not yet in master.

generate-changelog master..acceptance

Generate changelog with releases info shown

generate-changelog --show-releases

Generate changelog between releases with releases info shown

generate-changelog 0.0.1..0.0.3 --show-releases

Generate changelog between branches with releases info shown

generate-changelog master..dev --show-releases

Generate changelog for the latest release with releases info shown

generate-changelog --latest-release --show-releases

Generate changelog with headings only (no commit messages) and releases info shown

generate-changelog --headings-only --show-releases

Generate changelog between two branches, show unreleased changes only:

generate-changelog master..acceptance --show-releases --unreleased-only

Rendering

The following renderers are implemented:

  • Markdown

  • RestructuredText

  • Historical Markdown (for compatibility with matyan versions prior to 0.4).

Markdown

generate-changelog --show-releases --renderer=markdown

RestructuredText

generate-changelog --show-releases --renderer=rest

Historical Markdown

generate-changelog --show-releases --renderer=historical-markdown

Jira integration

It’s possible to fetch ticket title and description from Jira. In order for it to work, you should provide a fetch-title and fetch-description arguments.

The following needs to be added to your .matyan.ini:

[Settings]
fetchDataFrom=Jira

In addition to that, you should put valid Jira credentials into your global .matyan.ini configuration file.

Command to run:

generate-changelog --show-releases --fetch-title --fetch-description

Examples

See the output directory for examples.

Configuration

In order to customize names and texts, add a .matyan.ini in your project directory, form which you will be running the generate-changelog command.

Sample configuration:

[BranchTypes]
feature: Feature
bugfix: Bugfix
hotfix: Hotfix
deprecation: Deprecation

[OtherBranchType]
other: Other

[Unreleased]
unreleased: Unreleased

[IgnoreCommits]
exact: more
       clean up
       code comments
       more on docs
       repo
       working
       more on
       wip
       commit
prefix: more on
        continue on

Note, that placing .matyan.ini into the home root will make that configuration global for all projects. That however could be handy, since local .matyan.ini files simply override the global ones. For example, you could use global configuration for storing Jira credentials.

[Jira]
url:https://barseghyanartur.atlassian.net/
username:user@domain.com
token:abcd1234

Tips and tricks

Write to file

generate-changelog --show-releases 2>&1 | tee changelog.md

Create initial config file

matyan-make-config

Testing

Simply type:

./runtests.py

Or use tox:

tox

Or use tox to check specific env:

tox -e py36

Writing documentation

Keep the following hierarchy.

=====
title
=====

header
======

sub-header
----------

sub-sub-header
~~~~~~~~~~~~~~

sub-sub-sub-header
^^^^^^^^^^^^^^^^^^

sub-sub-sub-sub-header
++++++++++++++++++++++

sub-sub-sub-sub-sub-header
**************************

License

GPL-2.0-only OR LGPL-2.1-or-later

Support

For any issues contact me at the e-mail given in the Author section.

Author

Artur Barseghyan <artur.barseghyan@gmail.com>

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

matyan-0.4.1.tar.gz (188.0 kB view details)

Uploaded Source

Built Distribution

matyan-0.4.1-py2.py3-none-any.whl (250.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file matyan-0.4.1.tar.gz.

File metadata

  • Download URL: matyan-0.4.1.tar.gz
  • Upload date:
  • Size: 188.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.9

File hashes

Hashes for matyan-0.4.1.tar.gz
Algorithm Hash digest
SHA256 848504ad2a1de9056e163d95c1a7fc3af7981876619d8cc05452e42710d82c10
MD5 c1ddd1ea86133f67ae7a6e825349c871
BLAKE2b-256 005f72bed4597affc81cb6e3c926ef9eff2cfa76aadb8338c00b1051becb06f6

See more details on using hashes here.

File details

Details for the file matyan-0.4.1-py2.py3-none-any.whl.

File metadata

  • Download URL: matyan-0.4.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 250.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.6.9

File hashes

Hashes for matyan-0.4.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 84d61f1cc3e9f9302a2018b0ace18f927380adb5e1302cf7896fa6905a3f30fc
MD5 265ed0f57f3ac05217f12065f9d871b8
BLAKE2b-256 e4c16ede958473dded5614de29e4f51a25341bfdb87bc5ff4f226d0619883488

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page