Proposal in one sentence
Enable the automation of release notes generations for OpenSearch-Dashboards repo
What problem are you trying to solve?
Currently, both Release Notes and CHANGELOG are updated mainly by manual efforts.
-
For the Release Notes, each release would required a PR to add respective markdown notes file to release-notes folder :
-
For the CHANGELOG, even worse, it requires a direct update in the CHANGELOG file literally in every single PR :
These manual updates are introducing in unnecessary burdens into each and every single release and PR, which is not serving the best interest of the OSD project and the whole community.
We need to improve our current process and make the sharing of release/change information smoother and less-painful for both our consumers and contributors.
Why should we solve it?
Release Notes / CHANGELOG are important, we definitely need to have a clear and concise way of telling people what has changed, when the changes happened and more details (like PR link) whenever needed. Yet the collection of these information should be in a much smarter, or in another word, automatic way. The current manual process should be revised ASAP, given some specific reasons including :
How do you propose to solve it?
One word - Automation
Specifically, enable the automation of release notes generations, which is a native github offering (ref doc : https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
Kudos to @seraphjiang as first proposed and implemented this feature in the dashboards-anywhere repo : opensearch-project/dashboards-anywhere#90
Here is proposed improvement steps in detail :
- Create a new file
.github/release.yml to enable the automation for release notes generation
- Define and update the label template in
.github/release.yml (we can reuse the format in our current CHANGELOG file)
- Create / update label suites if needed
- Test the updates (in a fork), by creating testing releases and make sure release notes are generated as expected
Once the automation is tuned as expected, next step is proposed :
- Remove the
CHANGELOG update requirement in each individual PR
- Update the
CHANGELOG based on the automatically generated release notes
- Release Notes preparation is still a mandatory step in the release process, yet this time it would fully depend on the automation process instead of manual efforts.
Proposal in one sentence
Enable the automation of release notes generations for
OpenSearch-DashboardsrepoWhat problem are you trying to solve?
Currently, both
Release NotesandCHANGELOGare updated mainly by manual efforts.For the Release Notes, each release would required a PR to add respective markdown notes file to
release-notesfolder :For the
CHANGELOG, even worse, it requires a direct update in theCHANGELOGfile literally in every single PR :These manual updates are introducing in unnecessary burdens into each and every single release and PR, which is not serving the best interest of the OSD project and the whole community.
We need to improve our current process and make the sharing of release/change information smoother and less-painful for both our consumers and contributors.
Why should we solve it?
Release Notes/CHANGELOGare important, we definitely need to have a clear and concise way of telling people what has changed, when the changes happened and more details (like PR link) whenever needed. Yet the collection of these information should be in a much smarter, or in another word, automatic way. The current manual process should be revised ASAP, given some specific reasons including :The current manual way is Time-consuming
For
Release Notes, each release manager will need to spend a significant time preparing the release notes file, by either comparing commits or retrieving the data fromCHANGELOG. Comparing commits definitely sounds horrible, and getting data from theCHANGELOGmay sound straightforward, but in real we are just shifting the burden from release managers to each individual PR contributors (by asking them to update theCHANGELOGin every PR). Based on the previously generated release notes it may take at least 30min ~ 1hour just to put the information together in one PR (tagging each release manager just to get more accurate data)For
CHANGELOG, the content update itself may be not intense but process-wise it's taking more efforts since the PR number is required in each changed items as a reference, and usually the PR number won't be secured until the PR is created (next PR number can be retrieved through github API call, but still, extra work). Given this there are lots of forced commits after the PR generation which is just to get theCHANGELOGfile updated, for example :The current manual way is prone to Human Errors
CHANGELOGis required, the contributor made the change yet didn't sign off the very commit (cause usually we ask all commits to be signed). We made decisions as this is OK since the squash commit would have the signoff.How do you propose to solve it?
One word - Automation
Specifically, enable the automation of release notes generations, which is a native github offering (ref doc : https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes
Kudos to @seraphjiang as first proposed and implemented this feature in the dashboards-anywhere repo : opensearch-project/dashboards-anywhere#90
Here is proposed improvement steps in detail :
.github/release.ymlto enable the automation for release notes generation.github/release.yml(we can reuse the format in our currentCHANGELOGfile)Once the automation is tuned as expected, next step is proposed :
CHANGELOGupdate requirement in each individual PRCHANGELOGbased on the automatically generated release notes