Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve changelog #622

Open
beatngu13 opened this issue Apr 11, 2022 · 9 comments
Open

Improve changelog #622

beatngu13 opened this issue Apr 11, 2022 · 9 comments

Comments

@beatngu13
Copy link
Member

We currently use the shipkit-changelog Gradle plugin to generate changelogs for releases. For example, this is the generated changelog for v1.7.0:

1.7.0

As can be seen, and as described in the plugin's readme, the generated "[…] changelog [is] based on commit history and Github pull requests/issues".

In contrast to other changelog generators such as release-drafter or GitHub native, there seem to be little to no configuration options? Something I consider a problem is, e.g., the missing ability to filter tags like theme: build, as this can be confusing to users. For example, the changelog entry "Update to JDK 11 (#608)" let this user think v1.7.0 can only be used with Java 11+.

We should (i) discuss how we can improve our changelog and (ii) if such improvements can be done with shipkit-changelog, or if we require other tooling.

@beatngu13
Copy link
Member Author

Here's an example for GitHub's native generator, which I set up for the gluonfx-maven-plugin:

@Bukama
Copy link
Member

Bukama commented Apr 21, 2022

I like customizeable changelogs :)

@nipafx nipafx added this to the Busy Pioneers - V2.0 milestone Apr 28, 2022
@nipafx
Copy link
Member

nipafx commented May 14, 2022

I think this is a good idea, go for it!

@Michael1993
Copy link
Member

I had a lame idea that I think is worth considering: keeping a manual changelog.

I can already hear the masses gasping in terror, "manually doing a task that could be automated?!", but yes, I've seen projects do this and it always makes for a nice, clean and easy-to-digest changelog. It adds a little bit of work for each PR author (or maintainer) but it's fairly minimal and it provides a degree of control that no other solution can offer.

@beatngu13
Copy link
Member Author

beatngu13 commented May 19, 2022

I did use "Keep a Changelog" in some other projects and we (me and my teammates) often forgot to update the CHANGELOG.md. It also caused merge conflicts sometimes.

I believe it is easier for us to leverage our already nice PR titles/descriptions and labels, and generate the changelog. We already have type: new feature and type: bug for categorizing the changelog entries, but we would need at least one more label to opt-out a change from the changelog.

PS: GitHub can now render mathematical expressions, so I do this (because I can):

$e^{\pi i} + 1 = 0$

See also: Euler's identity

@nipafx
Copy link
Member

nipafx commented May 25, 2022

I agree with both of you. 😁 It seems overkill to try and automate this in detail (which label combinations, exactly?) but a manual log is error-prone as well.

What if we try better automation as @beatngu13 proposes, but don't try to hit the nail right on the head with what exact issues are included (because I assume that'll be complex and also prone to then-automated errors). Instead, following a release, we go over the release notes manually and kick out what doesn't belong there?

@nipafx
Copy link
Member

nipafx commented Sep 14, 2022

@beatngu13 : Please let me know if you will work on this in the near future. If not, I might kick it out of the 2.0 milestone to get that one closer to the finishing line.

@beatngu13
Copy link
Member Author

@nipafx I don't think I will find time soon. I will remove it from the milestone, so it doesn't block our progress towards 2.0.

@beatngu13 beatngu13 removed this from the Busy Pioneers - V2.0 milestone Sep 18, 2022
@nipafx
Copy link
Member

nipafx commented Nov 10, 2022

Just for fun, after releasing 1.7.2, I went into the generated changelog and filtered out the more user-facing issues/PRs (it's a bit weird that we include both) and placed them on top under the heading "Prominent changes". That was pretty quick, so I think it's doable.

We should really look into including issues and PRs, though - feels to me that just one (probably issues?) would suffice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants