pact-python icon indicating copy to clipboard operation
pact-python copied to clipboard

Update Changelog Format

Open JP-Ellis opened this issue 2 years ago • 3 comments

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 ### Contributors in 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.

JP-Ellis avatar Sep 28 '23 01:09 JP-Ellis

Ha! You fixed that quick :P

Screenshot 2023-09-28 at 11 25 03 am

mefellows avatar Sep 28 '23 01:09 mefellows

Yeah, saw that as soon as I published it... PR incoming shortly :)

EDIT: Fix is at #401

JP-Ellis avatar Sep 28 '23 01:09 JP-Ellis

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)

YOU54F avatar Oct 03 '23 10:10 YOU54F

Implemented by #567

JP-Ellis avatar May 01 '24 22:05 JP-Ellis