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.python.org/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`.
============
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.python.org/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`.
Release files for changelogdir 3.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| changelogdir-3.1.0.tar.gz | 29.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| changelogdir-3.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 37.4 kB
Release files / changelogdir-3.1.0.tar.gz
| Download URL | changelogdir-3.1.0.tar.gz |
|---|---|
| Size | 29.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce5b67cdb0f97013f9eed75f118009d21ec875f30c1f945a1fdcfc3d23c89872
|
|
BLAKE2b-256 checksum How to use checksums |
3c5289693e95469d9e876d7109a12027ae44708e3f519d83ed875c629a9c973d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / changelogdir-3.1.0-py3-none-any.whl
| Download URL | changelogdir-3.1.0-py3-none-any.whl |
|---|---|
| Size | 7.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7c5594fd62efbe4b6b961ff2dcc90b9e9b6819358d010bc0507754d35e71d3d6
|
|
BLAKE2b-256 checksum How to use checksums |
b34d052022e16eea46418e029a20ae2aaeafb621bf0a71bde17e8a9f9467e4cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |