Package: matyan
Generate changelog from Git commits.PrerequisitesPython 3.6, 3.7 and 3.8DocumentationDocumentation is available onRead the Docs.InstallationLatest stable version on PyPI:pipinstallmatyanUsageBasic usageSeeBasic conceptssection to get impression on possible commit methodology and assumptions taken.Generate changelog:generate-changelogGenerate 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-otherGenerate 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-changelog0.0.1..0.0.3Generate 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-changelogmaster..acceptanceGenerate changelog with releases info showngenerate-changelog--show-releasesGenerate changelog between releases with releases info showngenerate-changelog0.0.1..0.0.3--show-releasesGenerate changelog between branches with releases info showngenerate-changelogmaster..dev--show-releasesGenerate changelog for the latest release with releases info showngenerate-changelog--latest-release--show-releasesGenerate changelog with headings only (no commit messages) and releases info showngenerate-changelog--headings-only--show-releasesGenerate changelog between two branches, show unreleased changes only:generate-changelogmaster..acceptance--show-releases--unreleased-onlyRenderingThe following renderers are implemented:MarkdownRestructuredTextHistorical Markdown (for compatibility withmatyanversions prior to
0.4).Markdowngenerate-changelog--show-releases--renderer=markdownRestructuredTextgenerate-changelog--show-releases--renderer=restHistorical Markdowngenerate-changelog--show-releases--renderer=historical-markdownJira integrationIt’s possible to fetch ticket title and description from Jira. In order for it
to work, you should provide afetch-titleandfetch-descriptionarguments.The following needs to be added to your.matyan.ini:[Settings]
fetchDataFrom=JiraIn addition to that, you should put valid Jira credentials into your
global.matyan.iniconfiguration file.Command to run:generate-changelog--show-releases--fetch-title--fetch-descriptionHave in mind, thatmatyanshall be installed withjiraoption.pipinstallmatyan[jira]Alternatively, make sureatlassian-python-apiis installed.pipinstallatlassian-python-apiExamplesSee theoutputdirectory for examples.Additionally see theJupyter notebook examples.ConfigurationIn order to customize names and texts, add a.matyan.iniin your
project directory, from which you will be running thegenerate-changelogcommand.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 onNote, that placing.matyan.iniinto the home root will make that
configuration global for all projects. That however could be handy, since local.matyan.inifiles simply extend 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:abcd1234Note, however, that sections are copied over entirely.Tips and tricksWrite to filegenerate-changelog--show-releases2>&1|teechangelog.mdCreate initial config filematyan-make-configTestingSimply type:./runtests.pyOr use tox:toxOr use tox to check specific env:tox-epy38DebuggingSometimes checking logs could be handy.Matyanlogs are stored in the
directory, from which you are running thegenerate-changelog(or any
otherMatyan) command.Update your.matyan.iniconfiguration in the following way:[Settings]
debug=truetail-f/path/to/your/project/matyan.logIf you want to modify current logging, useMATYAN_LOGGING_CONFIGenvironment variable.Default configuration:DEFAULT_LOGGING_CONFIG={'version':1,'disable_existing_loggers':False,'root':{'level':'WARNING','handlers':['file'],},'formatters':{'verbose':{'format':'{levelname}{asctime}{module}{process:d}{thread:d}''{message}','style':'{',},'simple':{'format':'{levelname}{message}','style':'{',},},'handlers':{'console':{'level':'WARNING','class':'logging.StreamHandler','formatter':'simple'},'file':{'level':'WARNING','class':'logging.handlers.RotatingFileHandler','filename':os.path.join(os.getcwd(),"matyan.log"),'maxBytes':1048576,'backupCount':99,'formatter':'verbose',},},'loggers':{'matyan':{'handlers':['file'],'propagate':True,},},}Writing documentationKeep 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
**************************LicenseGPL-2.0-only OR LGPL-2.1-or-laterSupportFor any issues contact me at the e-mail given in theAuthorsection.AuthorArtur Barseghyan <artur.barseghyan@gmail.com>