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.
============
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)
Built Distribution
File details
Details for the file changelogdir-2.0.0.tar.gz
.
File metadata
- Download URL: changelogdir-2.0.0.tar.gz
- Upload date:
- Size: 25.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2538f0a2b20a9acf61eb2f79b577aaad81ac66fcb03707c467cc15e277097607 |
|
MD5 | 68bf5d8eb51a71c2bc2b916a920ad2f5 |
|
BLAKE2b-256 | a7b045855c44c6150cced1086d670979c47ab04f74f1c28d36c6c899608cc1a6 |
File details
Details for the file changelogdir-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: changelogdir-2.0.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1156bedfc10dc1f574bbef8c7b1434b38fe502df0957dca3ef1f539949b7a041 |
|
MD5 | 1cb8da70448f44b2ca8050744d9c315b |
|
BLAKE2b-256 | dbcfdefc5c7fa7433d75ef000cc015a5540981e389124b7e3c5e0a923fdb6816 |