pact-python
pact-python copied to clipboard
Update Changelog Format
Description
I would like to see the CHANGELOG.md being generated from conventional commits. This specifically allows end-users to see, at a glance, what breaking changes there are (and how to migrate), what new features have been introduced, what bugs have been fixed, etc.
As a concrete example, the changelog for versions 2.0.0 through to 2.1.0 would look like this using commitizen's changelog function:
2.1.0 (2023-09-28)
BREAKING CHANGE
- Drop support for Python 3.6 and 3.7
Feat
- bump pact standalone to 2.0.7
- example: simplify docker-compose
Fix
- ci: pypi publish
- migrate to pyproject.toml and hatch
v2.0.1 (2023-07-26)
Feat
- update standalone to 2.0.3
v2.0.0 (2023-07-10)
Feat
- use pact-ruby-standalone 2.0.0 release
- support x86 and x86_64 windows
- support arm64 osx/linux
- add matchers for ISO 8601 date format
- test: add docker images for Python 3.9-3.11 for testing purposes
- describe classifiers and python version for pypi package
Fix
- fix cors parameter not doing anything
- remove dead code
- actualize doc on how to make contributions
While this is a good start, there are a couple of things I would like to change from commitizen's output:
- Each dot-point should give credit to the author(s)
- I would like to have an additional section called
### Contributorsin each section and (ideally) highlight new contributors.
Motivation
The existing changelog is extremely verbose, reporting every commit's headline. This is, in my opinion, not very useful for end-users and I would like to see.
For example, looking at the existing changelog for version 2.0.0 to 2.1.0 there are a lot of chore items which have no impact to the downstream users. Furthermore (and more concerning), the changelog makes no mention of dropping support for Python 3.6 and 3.7.
2.1.0
- 82df76f - feat: bump pact standalone to 2.0.7 (JP-Ellis, Mon Sep 25 11:12:45 2023 +1000)
- 9896320 - chore: address pr comments (JP-Ellis, Wed Sep 27 10:31:56 2023 +1000)
- e86b7eb - chore(example): avoid changing python path (JP-Ellis, Fri Sep 22 13:28:26 2023 +1000)
- 045083b - chore(ci): split tests examples and lints (JP-Ellis, Thu Sep 21 12:46:44 2023 +1000)
- 3a59235 - chore(example): migrate message pact example (JP-Ellis, Wed Sep 20 13:47:26 2023 +1000)
- aa0f07e - chore(example): update readme (JP-Ellis, Wed Sep 20 13:20:06 2023 +1000)
- 9488f0e - chore(example): migrate flask provider example (JP-Ellis, Mon Sep 18 15:46:38 2023 +1000)
- dd8827a - chore(example): migrate fastapi provider example (JP-Ellis, Mon Sep 18 14:20:39 2023 +1000)
- 4c47843 - chore(example): migrate consumer example (JP-Ellis, Fri Sep 15 16:30:20 2023 +1000)
- 8ee2eb0 - feat(example): simplify docker-compose (JP-Ellis, Thu Sep 14 17:00:14 2023 +1000)
- 7c60dd5 - docs: incorporate suggestions from @YOU54F (JP-Ellis, Fri Sep 22 11:37:22 2023 +1000)
- 6d223fc - docs: add issue and pr templates (JP-Ellis, Wed Sep 20 18:04:43 2023 +1000)
- 3634a5c - docs: rewrite contributing.md (JP-Ellis, Wed Sep 20 18:00:19 2023 +1000)
- 093d9b8 - chore(ci): migrate cicd to hatch (JP-Ellis, Wed Sep 13 13:21:36 2023 +1000)
- 5b19665 - chore!: migrate to pyproject.toml and hatch (JP-Ellis, Tue Sep 12 16:13:24 2023 +1000)
- 04deeec - chore: update pre-commit config (JP-Ellis, Wed Sep 13 10:57:51 2023 +1000)
- d5017f8 - style: add pre-commit hooks and editorconfig (JP-Ellis, Thu Sep 14 11:22:58 2023 +1000)
- ed5f86c - chore: add pact-foundation triage automation (Matt Fellows, Fri Aug 4 16:37:05 2023 +1000)
2.0.1
- d3397b7 - chore(examples): update docker setup for non linux os (Yousaf Nabi, Tue Jul 25 14:55:42 2023 +0100)
- ef12e56 - feat: update standalone to 2.0.3 (Yousaf Nabi, Tue Jul 25 14:00:38 2023 +0100)
- 1429d2f - chore: update MANIFEST file to note 2.0.2 standalone (Yousaf Nabi, Tue Jul 25 13:56:08 2023 +0100)
2.0.0
- 2a244ea - chore: update to 2.0.2 pact-ruby-standalone (Yousaf Nabi, Sat Jul 8 14:12:18 2023 +0100)
- 819f0a7 - test: v2.0.1 (pact-2.0.1) - pact-ruby-standalone (Yousaf Nabi, Thu May 18 23:30:30 2023 +0100)
- 9bc3e21 - chore(docs): improve table alignment and abs links (Yousaf Nabi, Thu May 4 12:10:39 2023 +0100)
- 80f06cf - chore(docs): correct table (Yousaf Nabi, Wed May 3 19:20:37 2023 +0100)
- c70573c - chore(docs): update provider verifier options table (Yousaf Nabi, Wed May 3 19:17:28 2023 +0100)
- fc6ced8 - style: add missing newline/linefeed (Serghei Iakovlev, Thu May 4 09:51:19 2023 +0200)
- 7b14aa3 - build(deps-dev): bump flask from 2.2.2 to 2.2.5 (dependabot[bot], Wed May 3 20:30:31 2023 +0000)
- a0efd69 - build(deps): bump flask from 2.2.2 to 2.2.5 in /examples/flask_provider (dependabot[bot], Wed May 3 20:30:24 2023 +0000)
- 1267d7d - build(deps): bump flask from 2.2.2 to 2.2.5 in /examples/message (dependabot[bot], Wed May 3 19:51:09 2023 +0000)
- 4e3ca38 - feat: use pact-ruby-standalone 2.0.0 release (Yousaf Nabi, Sat Apr 29 00:43:31 2023 +0100)
- 2c673ea - ci: skip 3.6 python arm64 failing in cirrus, passing locally with cirrus run (Yousaf Nabi, Fri Apr 21 15:46:22 2023 +0100)
- 7aff538 - feat: support x86 and x86_64 windows (Yousaf Nabi, Fri Apr 21 15:44:48 2023 +0100)
- 28440da - ci: test arm64 on cirrus-ci / test win/osx on gh (Yousaf Nabi, Fri Apr 21 15:37:30 2023 +0100)
- 93db8ae - feat: support arm64 osx/linux (Yousaf Nabi, Fri Apr 21 12:35:23 2023 +0100)
- 19be499 - fix: fix cors parameter not doing anything (Lukas Riedersberger, Fri Apr 14 12:22:21 2023 +0200)
- e721d81 - docs: reformat releasing documentation (Serghei Iakovlev, Wed Apr 5 12:39:35 2023 +0200)
- 71f1529 - chore: do not add merge commits to the change log (Serghei Iakovlev, Wed Apr 5 12:27:49 2023 +0200)
- 9ce2d69 - chore: Releasing version 1.7.0 (Elliott Murray, Sun Feb 19 11:28:01 2023 +0000)
- 429e171 - build: use a single Dockerfile, providing args for the Python version instead of multiple files (Mike Geeves, Mon Apr 3 09:01:37 2023 +0100)
- e99e7fb - docs: rephrase the instructions for running the tests (Serghei Iakovlev, Sun Apr 2 22:20:07 2023 +0200)
- a5d3a2e - docs: paraphrase the instructions for running the tests (Serghei Iakovlev, Sun Apr 2 22:19:37 2023 +0200)
- 24c2dbf - docs: fix instruction to build python 3.11 image (Serghei Iakovlev, Sun Apr 2 22:18:10 2023 +0200)
- 55dcaf2 - feat(test): add docker images for Python 3.9-3.11 for testing purposes (Serghei Iakovlev, Fri Mar 17 11:24:42 2023 +0100)
- 28fc7d3 - docs: fix link for GitHub badge (Serghei Iakovlev, Fri Mar 31 22:50:23 2023 +0200)
- 26eaaac - fix: remove dead code (Serghei Iakovlev, Sun Mar 5 02:05:14 2023 +0100)
- f7c5006 - docs: add Python 3.11 to CONTRIBUTING.md (Serghei Iakovlev, Thu Mar 30 23:22:22 2023 +0200)
- 348bf5e - build: use compatible dependency versions for Python 3.6 (Serghei Iakovlev, Thu Mar 30 23:18:57 2023 +0200)
- 4d9f4cd - feat: describe classifiers and python version for pypi package (Serghei Iakovlev, Sun Mar 5 09:16:29 2023 +0100)
- 7603815 - ci: add python 3.11 to test matrix (Serghei Iakovlev, Sun Mar 5 09:15:23 2023 +0100)
- bea1563 - doc: improve commit messages guide (Serghei Iakovlev, Sat Mar 4 00:30:56 2023 +0100)
- 60f2aac - doc: correct links in contributing manual (Serghei Iakovlev, Fri Mar 3 21:38:58 2023 +0100)
- a219f49 - fix: actualize doc on how to make contributions (Serghei Iakovlev, Thu Mar 2 08:56:48 2023 +0100)
- 4919772 - feat: add matchers for ISO 8601 date format (Serghei Iakovlev, Sun Mar 12 16:03:44 2023 +0100)
Have you tried building it?
Not yet; seeking community feedback first
Self-service
- [X] I'd be willing to contribute this feature to Pact Python myself.
Ha! You fixed that quick :P
Yeah, saw that as soon as I published it... PR incoming shortly :)
EDIT: Fix is at #401
Yep, this makes sense to me, we use conventional commits for changelogs across multiple pact foundation repos I believe, and agreed there is lots of noise in the release notes that may not be of relevance to users. (whats news, and whats breaking are what I really care about)
Implemented by #567