Skip to main content

Generate changelogs from a directory structure to avoid merge conflicts

Project description

changelogtxt
============

Generate changelogs from a directory structure to avoid merge conflicts.

- Free software: GPLv3+

- Documentation: https://carmenbianca.gitlab.io/changelogtxt

- Source code: https://gitlab.com/carmenbianca/changelogtxt

- PyPI: https://pypi-hypernode.com/pypi/changelogtxt

- Python: 3.4+

- Author: Carmen Bianca Bakker <carmen@carmenbianca.eu>

changelogtxt is a simple utility that allows you to turn directory structures
into changelog files. Every feature/bugfix/whatever gets its own file to list
changes in, thereby avoiding merge conflict crises such as described
`here <https://gitlab.com/gitlab-org/gitlab-ce/issues/17826>`_.

changelogtxt is partially inspired by
`Keep a Changelog <http://keepachangelog.com>`_.

A simple example
----------------

Say we have a `CHANGELOG.md` in our master branch that looks like this::

# Changelog

## 1.0.0

- Added support for TempleOS.

And Developer A comes along and does the following in their branch::

# Changelog

## 1.0.0

- Added support for TempleOS.

- Deprecated support for Windows.

And Developer B has this in their branch::

# Changelog

## 1.0.0

- Added support for TempleOS.

- Added support for Android.

Then merging the two branches into master causes a merge conflict, and it's just
a needless headache.

changelogtxt fixes this by putting those entries into individual files. Thus,
you'd end up with something looking like this::

awesome-project
├── CHANGELOG
│   └── 1.0.0
│   ├── android.md
│   ├── templeos.md
│   └── windows.md
└── .changelogtxtrc

`.changelogtxtrc` contains::

[changelogtxt]
directory = CHANGELOG
file_extension = md
header = # Changelog
section_header = ## {section_name}

`android.md` contains::

- Added support for Android.

`templeos.md` contains::

- Added support for TempleOS.

`windows.md` contains::

- Deprecated support for Windows.

And when running `changelogtxt`, the following is generated in alphabetical
order of the file names::

~/awesome-project$ changelogtxt
# Changelog

## 1.0.0

- Added support for Android.

- Added support for TempleOS.

- Deprecated support for Windows.

Of course, it might make more sense to put those three changes into a single
file called `platform-changes.md`, but this is merely for demonstration.

Installation
------------

See :doc:`Installation <INSTALLATION>`.

Usage
-----

See :doc:`Usage <USAGE>`.

Project details


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