Skip to main content

Generate changelogs from a directory structure to avoid merge conflicts

Project description

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

Generate changelogs 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 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>`_.

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
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 ``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 <INSTALLATION>`.

Usage
-----

See :doc:`Usage <USAGE>`.

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

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

As a compromise, it does generate its own changelog when creating and uploading
the docs. See https://carmenbianca.gitlab.io/changelogdir/CHANGELOG.html.


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-2.0.0.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

changelogdir-2.0.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for changelogdir-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2538f0a2b20a9acf61eb2f79b577aaad81ac66fcb03707c467cc15e277097607
MD5 68bf5d8eb51a71c2bc2b916a920ad2f5
BLAKE2b-256 a7b045855c44c6150cced1086d670979c47ab04f74f1c28d36c6c899608cc1a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for changelogdir-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1156bedfc10dc1f574bbef8c7b1434b38fe502df0957dca3ef1f539949b7a041
MD5 1cb8da70448f44b2ca8050744d9c315b
BLAKE2b-256 dbcfdefc5c7fa7433d75ef000cc015a5540981e389124b7e3c5e0a923fdb6816

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