knative / knative/community

PROCESS CHANGE: use GitHub native release notes generator

Open
#1,499 4 comments 1 reaction 1 assignee Claimed by @dsimansk View on GitHub
Dominant language
Go
Stars
292
Forks
254
Avg merge
18h 11m
Merged PRs (30d)
1

Description

### Expected benefits

Currently we use Kubernetes `release-notes` tool to generate release notes markdown files.
The flow of updating release note:
1. Run GH action
2. Take generated markdown
3. Update particular release with markdown

There's an issue with current default PR template. Whenever there are multiple code blocks, it's parsed as code block until the last closing element. Hence that's producing very poorly formatted outputs.

Examples and discussion per Slack threads:
https://cloud-native.slack.com/archives/C04LKEZUXEE/p1706185040469779
https://cloud-native.slack.com/archives/C04LY4Y3EHF/p1706177567962819

With GH action we can keep very similar format, being sorted with existing labels already. We might drop dependency bumps from the notes. I'm not sure if there is a lot value in it, since mostly they are hidden as being too long.

It's possible to publish release with generated notes included. Either with `gh` cli or API call.
```
Use automatically generated release notes
$ gh release create v1.2.3 --generate-notes
```
https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#create-a-release

In this flow we could drop manual trigger of release notes and iterate on the included one:

1. Release is published with generated markdown
2. Update particular release markdown as needed in release view

### Expected costs

Changing to GH generated release notes should be quicker and less demanding on release leads. The cost of introducing the change are approax. a few days/week to introduce the template, implement changes on `release.sh` script and test it.

Example config:
https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuration-options
```
# .github/release.yml

changelog:
exclude:
labels:
- ignore-for-release
authors:
- octocat
categories:
- title: Breaking Changes 🛠
labels:
- Semver-Major
- breaking-change
- title: Exciting New Features 🎉
labels:
- Semver-Minor
- enhancement
- title: Other Changes
labels:
- "*"

```
### Timeframe

Next release - April '24 very likely.

I'm willing to drive the process.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.