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

build: automate Github release notes #848

Merged
merged 2 commits into from
Apr 17, 2020

Conversation

nsakaimbo
Copy link
Contributor

@nsakaimbo nsakaimbo commented Apr 17, 2020

Description

This PR adds a script that gathers changes since the last stable release of the application and formats them using markdown. This markdown-formatted changelog is published with every release to provide a baseline, readily-available view of changes.

In addition, the script is designed such that it can also be executed locally on any branch, and will output the set of changes since the last stable release through the current branch's HEAD.

automated-release-notes-example

There are a number of frameworks out there that help parse and format changes in the conventional commit format. Inspired by this blog post, I chose to go with a relatively lightweight approach and use a custom bash script instead (that ends up being ~100 LOC). Without the overhead of an entire framework, using bash is also more portable between environments. If we find this concept useful after trialing it out, we can always use a more fully-fleshed framework if we want any additional functionality.

To Test

  • Release Notes on Publish: Tag this branch with a temporary, dummy tag (greater than the current stable release version) to create a release draft in Github. Note that the release notes section of the draft will be pre-populated.

  • Using the Script Locally: Check out this branch and run ./make-changelog.sh from the root of the repo.

Copy link

@belcherj belcherj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ship it. We can improve on this in the future. It works as-is.

@nsakaimbo nsakaimbo merged commit d353819 into develop Apr 17, 2020
@nsakaimbo nsakaimbo deleted the add-github-release-notes-script branch April 17, 2020 16:17
@designsimply
Copy link
Contributor

This is very cool.

@nsakaimbo
Copy link
Contributor Author

This is very cool.

Thanks, @designsimply.

We're trying this out to see if it ultimately provides value. The hope is this strategy can provide a baseline summary to stakeholders of what's changed between releases, with little-to-no manual intervention (i.e. a release can be created at any time and will have a changelog in Github). This can also be helpful in focusing efforts when deciding "what to test" when gearing up for a new release.

We'll see how it goes - any and all feedback is welcome!

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

Successfully merging this pull request may close these issues.

4 participants