question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Proposal] Automatic changelog generation

See original GitHub issue

The last needed step to put together a fully-automated release process for this project is to handle CHANGELOG generation.

This is a discussion issue designed to start a conversation on this topic.

Refs elastic/apm-agent-java#991

Proposal

Instead of manually writing and publishing a log of changes on each release, a CHANGELOG.md file would be automatically generated using the GitHub Changelog Generator.

Details

The way the automatic process works is by examining labels and attempting to slot closed issues and merged PRs between given tags into release entries in the CHANGELOG.md file.

Obviously, this means that the project must become very diligent about using labels to correctly identify issues which are bugs and enhancements. It seems that this is mostly the case already, but there is some divergence between what appears in the release notes and what appears when the script is run against the repo as it sits today.

An additional caveat is that when issues are closed without being resolved, labels would need to be updated so that the script does not get confused and think that it means that the issue in question was resolved.

Any label can be excluded, so it should be no problem to exclude meta-issues, if desired.

Handling historical entries

We should likely not disturb the already published CHANGELOG entries, but this should be no problem and we can easily preserve the previous changelog while also switching to automatic generation for future releases.

Putting in custom entries

Of course, not all features or bugs fit correspond directly to an issue. For these, we can create summary issues which the changelog generator will know to look for. This is explained here.

Ensuring things look right

We can make it easy to run the script locally to preview changes before the release process is kicked off or we could include a pause in the automated Jenkins job to inspect the CHANGELOG. (I prefer the first option, for the record.)

Discussion

If this sounds like a reasonable course of action, go ahead and give this a thumbs-up.

Please feel free to inspect the sample output I prepared and compare it to the (actual CHANGELOG)[https://www.elastic.co/guide/en/apm/agent/java/current/release-notes-1.x.html] so you can get a sense of how we would need to label issues and PRs going forward.

If you have questions or concerns, please leave them in comments below. Thanks.

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:6 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
cachedoutcommented, Apr 27, 2020

I think we’ve landed on manually updating the CHANGELOG. This decision is reflected in the way that the release pipeline is currently written.

Therefore, I am going to go ahead and close this issue. Thank you to everybody for a productive discussion.

1reaction
cachedoutcommented, Feb 12, 2020

That means that when we want to release, the release notes are already ready to be published so it does not slow down the release process.

Sounds good. The automated process is easy to put in place if you ever decide that you want it, but from an automated-release perspective, if we can consider the CHANGELOG already complete by the time we kick off the release process, that’s even easier. 😉

Read more comments on GitHub >

github_iconTop Results From Across the Web

cookpete/auto-changelog: Command line tool for ... - GitHub
Command line tool for generating a changelog from git tags and commit history. Used by Modernizr, Netlify, Neutrino and Velocity.js. Latest npm version...
Read more >
Automatic CHANGELOG with commit and version ...
How to automatically create a CHANGELOG and set commit and version standardization ... Conventional Commits;; Automatic Changelog Generator;; Conclusion.
Read more >
Automate changelog generation for this project - release-cli
Automate changelog generation using the release-cli The following ... This way you can mirror data from A to B, generate changelogs for B, ......
Read more >
How to generate your project's changelog from commit ...
What if the changelog's generation could be automated? ReadmeGen is a tool (written in PHP) that allows you to generate the changelog automatically....
Read more >
How To Automatically Generate A Helpful Changelog From ...
This article describes some tools that can help to automate the changelog creation based on the Git history. Let's start with some basics....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found