.forgejo/workflows | ||
modif | ||
.gitignore | ||
.pre-commit-config.yaml | ||
bootstrap.sh | ||
LICENSE | ||
pyproject.toml | ||
README.md | ||
uv.lock |
Modif
Forgejo unfortunately doesn't support autogenerating release changelogs, and while a lot of tooling already exists out here to tackle that sort of problem, it often does far too much extra for my taste. Thus, modif
seeks to do one thing and do it well: generate simple markdown changelogs from commit history data (and later, validate that commits comply with a desired format for those logs).
Install
This isn't published anywhere, but can be installed directly from source control via pipx
or pip
:
# With pipx
pipx install git+https://forge.karnov.club/marc/modif.git
# With pip
pip install git+https://forge.karnov.club/marc/modif.git
The repository can also be pulled down to put it together yourself.
Usage
Generating changelogs from commit ranges
Changelogs can be generated based on a start and end reference:
modif log --from=<reference> --to=<reference>
Using the --raw
flag will output the changelog markdown without any colours or headers - the output otherwise has
extra messaging that isn't part of the changelog itself.
Commit format
Some assumptions are made about commit message formatting that will later be made more configurable. It is expected that commits conforms to the Conventional Commit scheme.
Configuration
The groupings can be configured using a YAML file formatted as follows:
groups:
- label: <Heading to identify the group with in the generated log>
prefixes: [<prefix1>, <prefix2, ...]
- label: ...
prefixes: ...
Each group is headed by its label
value and contains a list of all the commits matching the prefix selection for that group.
If not supplied, a default configuration (see modif.configuration.get_default_config
) is substituted in.