# git-changelog
[![ci](https://github.com/pawamoy/git-changelog/workflows/ci/badge.svg)](https://github.com/pawamoy/git-changelog/actions?query=workflow%3Aci)
[![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://pawamoy.github.io/git-changelog/)
[![pypi version](https://img.shields.io/pypi/v/git-changelog.svg)](https://pypi.org/project/git-changelog/)
[![gitter](https://badges.gitter.im/join%20chat.svg)](https://app.gitter.im/#/room/#git-changelog:gitter.im)
Automatic Changelog generator using Jinja2 templates. From git logs to change logs.
## Features
- [Jinja2][jinja2] templates!
You get full control over the rendering.
Built-in [Keep a Changelog][keep-a-changelog] and [Angular][angular] templates
(also see [Conventional Changelog][conventional-changelog]).
- Commit styles/conventions parsing.
Built-in [Angular][angular-convention], [Conventional Commit][conventional-commit] and basic conventions.
- Git service/provider agnostic,
plus references parsing (issues, commits, etc.).
Built-in [GitHub][github-refs], [Gitlab][gitlab-refs] and [Bitbucket][bitbucket-refs] support.
- Understands [SemVer][semver] and [PEP 440][pep-440] versioning schemes.
Guesses next version based on last commits.
- Parses [Git trailers][git-trailers], allowing to reference
issues, PRs, etc., in your commit messages
in a clean, provider-agnostic way.
- Template context injection,
to furthermore customize how your changelog will be rendered.
- Todo:
- [Plugin architecture][issue-19],
to support more commit conventions and git services.
- [Easy access to "Breaking Changes"][issue-14] in the templates.
[jinja2]: http://jinja.pocoo.org/
[keep-a-changelog]: http://keepachangelog.com/en/1.0.0/
[angular]: https://github.com/angular/angular/blob/master/CHANGELOG.md
[conventional-changelog]: https://github.com/conventional-changelog/conventional-changelog
[semver]: http://semver.org/spec/v2.0.0.html
[angular-convention]: https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit
[conventional-commit]: https://www.conventionalcommits.org/en/v1.0.0/
[github-refs]: https://help.github.com/articles/autolinked-references-and-urls/
[gitlab-refs]: https://docs.gitlab.com/ce/user/markdown.html#special-gitlab-references
[bitbucket-refs]: https://support.atlassian.com/bitbucket-cloud/docs/markup-comments
[git-trailers]: https://git-scm.com/docs/git-interpret-trailers
[pep-440]: https://peps.python.org/pep-0440/
[issue-14]: https://github.com/pawamoy/git-changelog/issues/14
[issue-19]: https://github.com/pawamoy/git-changelog/issues/19
## Installation
```bash
pip install git-changelog
```
With [`uv`](https://docs.astral.sh/uv/):
```bash
uv tool install git-changelog
```
## Usage
Simply run `git-changelog` in your repository to output a changelog on standard output.
To show the different options and their descriptions, use `git-changelog -h`.
- See [Quick usage](http://pawamoy.github.io/git-changelog/usage/#quick-usage)
for some command line examples.
- See [Configuration](https://pawamoy.github.io/git-changelog/usage/#configuration-files)
to learn how to configure *git-changelog* for your project.
- See the [CLI reference](https://pawamoy.github.io/git-changelog/cli)
and the [API reference](https://pawamoy.github.io/git-changelog/reference) for more information.
## Alternatives
- [git-cliff](https://github.com/orhun/git-cliff): A highly customizable Changelog Generator that follows Conventional Commit specifications.
Raw data
{
"_id": null,
"home_page": null,
"name": "git-changelog",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "git, changelog, changelog-generator, commit-style, commit-convention",
"author": null,
"author_email": "=?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>",
"download_url": "https://files.pythonhosted.org/packages/ba/e0/82cc28b538b3a2f952d52fa512b59f0c8f6e6b0125ac3ffef34ffed9b50c/git_changelog-2.5.3.tar.gz",
"platform": null,
"description": "# git-changelog\n\n[![ci](https://github.com/pawamoy/git-changelog/workflows/ci/badge.svg)](https://github.com/pawamoy/git-changelog/actions?query=workflow%3Aci)\n[![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://pawamoy.github.io/git-changelog/)\n[![pypi version](https://img.shields.io/pypi/v/git-changelog.svg)](https://pypi.org/project/git-changelog/)\n[![gitter](https://badges.gitter.im/join%20chat.svg)](https://app.gitter.im/#/room/#git-changelog:gitter.im)\n\nAutomatic Changelog generator using Jinja2 templates. From git logs to change logs.\n\n## Features\n\n- [Jinja2][jinja2] templates!\n You get full control over the rendering.\n Built-in [Keep a Changelog][keep-a-changelog] and [Angular][angular] templates\n (also see [Conventional Changelog][conventional-changelog]).\n- Commit styles/conventions parsing.\n Built-in [Angular][angular-convention], [Conventional Commit][conventional-commit] and basic conventions.\n- Git service/provider agnostic,\n plus references parsing (issues, commits, etc.).\n Built-in [GitHub][github-refs], [Gitlab][gitlab-refs] and [Bitbucket][bitbucket-refs] support.\n- Understands [SemVer][semver] and [PEP 440][pep-440] versioning schemes.\n Guesses next version based on last commits.\n- Parses [Git trailers][git-trailers], allowing to reference\n issues, PRs, etc., in your commit messages\n in a clean, provider-agnostic way.\n- Template context injection,\n to furthermore customize how your changelog will be rendered.\n\n- Todo:\n - [Plugin architecture][issue-19],\n to support more commit conventions and git services.\n - [Easy access to \"Breaking Changes\"][issue-14] in the templates.\n\n[jinja2]: http://jinja.pocoo.org/\n[keep-a-changelog]: http://keepachangelog.com/en/1.0.0/\n[angular]: https://github.com/angular/angular/blob/master/CHANGELOG.md\n[conventional-changelog]: https://github.com/conventional-changelog/conventional-changelog\n[semver]: http://semver.org/spec/v2.0.0.html\n[angular-convention]: https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit\n[conventional-commit]: https://www.conventionalcommits.org/en/v1.0.0/\n[github-refs]: https://help.github.com/articles/autolinked-references-and-urls/\n[gitlab-refs]: https://docs.gitlab.com/ce/user/markdown.html#special-gitlab-references\n[bitbucket-refs]: https://support.atlassian.com/bitbucket-cloud/docs/markup-comments\n[git-trailers]: https://git-scm.com/docs/git-interpret-trailers\n[pep-440]: https://peps.python.org/pep-0440/\n\n[issue-14]: https://github.com/pawamoy/git-changelog/issues/14\n[issue-19]: https://github.com/pawamoy/git-changelog/issues/19\n\n## Installation\n\n```bash\npip install git-changelog\n```\n\nWith [`uv`](https://docs.astral.sh/uv/):\n\n```bash\nuv tool install git-changelog\n```\n\n## Usage\n\nSimply run `git-changelog` in your repository to output a changelog on standard output.\nTo show the different options and their descriptions, use `git-changelog -h`.\n\n- See [Quick usage](http://pawamoy.github.io/git-changelog/usage/#quick-usage)\n for some command line examples.\n- See [Configuration](https://pawamoy.github.io/git-changelog/usage/#configuration-files)\n to learn how to configure *git-changelog* for your project.\n- See the [CLI reference](https://pawamoy.github.io/git-changelog/cli)\n and the [API reference](https://pawamoy.github.io/git-changelog/reference) for more information.\n\n## Alternatives\n\n- [git-cliff](https://github.com/orhun/git-cliff): A highly customizable Changelog Generator that follows Conventional Commit specifications.\n",
"bugtrack_url": null,
"license": "ISC",
"summary": "Automatic Changelog generator using Jinja2 templates.",
"version": "2.5.3",
"project_urls": {
"Changelog": "https://pawamoy.github.io/git-changelog/changelog",
"Discussions": "https://github.com/pawamoy/git-changelog/discussions",
"Documentation": "https://pawamoy.github.io/git-changelog",
"Funding": "https://github.com/sponsors/pawamoy",
"Gitter": "https://gitter.im/git-changelog/community",
"Homepage": "https://pawamoy.github.io/git-changelog",
"Issues": "https://github.com/pawamoy/git-changelog/issues",
"Repository": "https://github.com/pawamoy/git-changelog"
},
"split_keywords": [
"git",
" changelog",
" changelog-generator",
" commit-style",
" commit-convention"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "777c701dc05657d7a9310b8376585de3bf21df12ae317ab672b18428919c2c1b",
"md5": "ebdb17266a6c9a0fe87dd92676392b29",
"sha256": "11c12715a6f41dc36aa3219976492ef905b45a2fc39ad75e98be2895fd750440"
},
"downloads": -1,
"filename": "git_changelog-2.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ebdb17266a6c9a0fe87dd92676392b29",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 32847,
"upload_time": "2024-11-26T00:14:15",
"upload_time_iso_8601": "2024-11-26T00:14:15.953727Z",
"url": "https://files.pythonhosted.org/packages/77/7c/701dc05657d7a9310b8376585de3bf21df12ae317ab672b18428919c2c1b/git_changelog-2.5.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bae082cc28b538b3a2f952d52fa512b59f0c8f6e6b0125ac3ffef34ffed9b50c",
"md5": "75343749af28ee1f8a1dba5d5995177d",
"sha256": "2d211a58213eaa97c73be895821c9d4c9242748eb56753f4759c0d24fe493b77"
},
"downloads": -1,
"filename": "git_changelog-2.5.3.tar.gz",
"has_sig": false,
"md5_digest": "75343749af28ee1f8a1dba5d5995177d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 75083,
"upload_time": "2024-11-26T00:14:17",
"upload_time_iso_8601": "2024-11-26T00:14:17.549270Z",
"url": "https://files.pythonhosted.org/packages/ba/e0/82cc28b538b3a2f952d52fa512b59f0c8f6e6b0125ac3ffef34ffed9b50c/git_changelog-2.5.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-26 00:14:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pawamoy",
"github_project": "git-changelog",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "git-changelog"
}