OpenSearch icon indicating copy to clipboard operation
OpenSearch copied to clipboard

Add release notes drafter for OpenSearch

Open saratvemulapalli opened this issue 4 years ago • 9 comments

Is your feature request related to a problem? Please describe. Add release notes drafter for OpenSearch which compiles all the commits made into a release.

Describe the solution you'd like Github actions support this via https://github.com/release-drafter/release-drafter.

saratvemulapalli avatar May 27 '21 18:05 saratvemulapalli

Does this Github action have the provision to separate out the commits into different sections like Feature, Bugs, Enhancement, Documentation etc? I would like to have something like this https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.13.0.0

abbashus avatar May 27 '21 18:05 abbashus

Does this Github action have the provision to separate out the commits into different sections like Feature, Bugs, Enhancement, Documentation etc? I would like to have something like this https://github.com/opendistro-for-elasticsearch/sql/releases/tag/v1.13.0.0

Yes it does. It depends on how we label them, and for our project looks like we are diligently labeling them which should take care of that. It would be very similar to the plugin release notes.

saratvemulapalli avatar May 27 '21 18:05 saratvemulapalli

Looks like the release drafter doesn't support multiple release branches i.e we cannot have different release notes for each of the release branch. Ref: https://github.com/release-drafter/release-drafter/issues/844

saratvemulapalli avatar May 27 '21 21:05 saratvemulapalli

Created notes for RC1 using https://github.com/ariatemplates/git-release-notes. It doesnt automate the drafter, doesn't categorize labels but atleast an easier way to generate them once per release. We can continue to scout for better solutions.

saratvemulapalli avatar May 28 '21 16:05 saratvemulapalli

Posting comments from the PR to here:

"I would ideally love something like: Category: PR title (#number) PR description Authored by abc@

Lets work on this for the next release. As we have discussed we have to diligent in our back port PRs so that authors are given the credit."

saratvemulapalli avatar May 28 '21 19:05 saratvemulapalli

Have we considered creating a changelog as well? As a customer of other repositories, changelogs are so much easier to parse/search when dealing with version bumps/upgrades than individual release notes. Having a full summary of breaking changes, new features, etc. between all previous versions is incredibly useful.

We could use something like this to aid in the generation: https://github.com/github-changelog-generator/github-changelog-generator

A great example is mocha, where they include the version number, date, sections in each release, and emojis (a fun bonus feature): https://github.com/mochajs/mocha/blob/master/CHANGELOG.md

tmarkley avatar Jun 30 '21 19:06 tmarkley

Have we considered creating a changelog as well? As a maintainer of other repositories, changelogs are so much easier to parse/search when dealing with version bumps/upgrades than individual release notes. Having a full summary of breaking changes, new features, etc. between all previous versions is incredibly useful.

We could use something like this to aid in the generation: https://github.com/github-changelog-generator/github-changelog-generator

This is nice!

saratvemulapalli avatar Jul 02 '21 17:07 saratvemulapalli

Is this a meta issue? Is it done? Can this be closed? Or is there a backport needed somewhere?

nknize avatar Jul 06 '21 17:07 nknize

Just wanted to document how I generated 2.1.0 release notes, so that this process might help in automation or for next release. Steps:

* `git checkout origin/2.1`
* `git log --pretty=format:"* %s" --since=3-23-2022 > release-notes/opensearch.release-notes-2.1.0.md`
* Manually organize file sections
  * Add Date / Version section (copy + modify from previous release)
  * Enhancements/Bug fixes/Maintenance
* Replace pull request ids with full urls via regex
  * Find: `\(#(\d+)\)$`
  * Replace: `([#$1]([https://github.com/opensearch-project/opensearch/pull/$1))`](https://github.com/opensearch-project/opensearch/pull/$1))%60)
* Commit with these steps / modified with additional details

-> In second line of above command block, when using --since the date should be selected carefully. You should select the date when opensearch version bumped from MajorVersion.x to new version, example (2.x version bump to 2.1)

-> I had to manually go through each commit and sort it out to one of the sections mentioned here.

-> Next I had to check which commits are already present in previous release version notes and remove them from current release notes manually. This step can be done before sorting out each commit to appropriate section.

->Make sure no breaking changes are included if it is a minor release versions.

Rishikesh1159 avatar Jul 09 '22 00:07 Rishikesh1159