Skip to main content

Generate a changelog from a directory structure to avoid merge conflicts

Project description

changelogdir
============

Generate a changelog from a directory structure to avoid merge conflicts.

- Free software: GPLv3+

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

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

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

- Python: 3.4+

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

changelogdir is a simple utility that allows you to turn a directory structure
into a changelog file. 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>`_.

changelogdir 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.

changelogdir 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
└── .changelogdirrc

``.changelogdirrc`` contains::

[changelogdir]
directory = CHANGELOG
file_extension = md
h1 = # Changelog
h2 = ## {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 ``changelogdir``, the following is generated in alphabetical
order of the file names::

~/awesome-project$ changelogdir
# 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`.

Usage
-----

See :doc:`USAGE`.

Why doesn't changelogdir have its changelog in the Python package?
------------------------------------------------------------------

Doing this would require having changelogdir installed to be able to build
itself. There is probably a way around this (just call changelogdir.py
directly), but it'd be really ugly.

As a compromise, it does generate its own changelog when creating and uploading
the docs. See :doc:`CHANGELOG`.


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

changelogdir-3.0.1.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

changelogdir-3.0.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file changelogdir-3.0.1.tar.gz.

File metadata

File hashes

Hashes for changelogdir-3.0.1.tar.gz
Algorithm Hash digest
SHA256 81f2802073454771a6522f1974eee43923c14c6b5f96c35606ebddefd09c9c28
MD5 1b75e75c55049c80d14f7353d07e759a
BLAKE2b-256 1e2de2f938e77e8215097d7cf5cb32d8a6fa23ae3852bc24b02c84997d962b5f

See more details on using hashes here.

File details

Details for the file changelogdir-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for changelogdir-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 068c36644692279e21d69c9cee51d4f00e265e554033bb9a2697069adf1f8277
MD5 20ff2516f347e2dbc4c9efb59f2a1573
BLAKE2b-256 392958ff502fb090bc1e6afa6cb2422f74866f9abb169a977bb16128723e3f2f

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