NVIDIA / NVIDIA/cccl

[FEA]: Automate generating release notes structured based on required PR labels

Open
#3,191 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.5k
Forks
487
Avg merge
2d 7h
Merged PRs (30d)
296

Description

### Is this a duplicate?

- [x] I confirmed there appear to be no [duplicate issues](https://github.com/NVIDIA/cccl/issues) for this request and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)

### Area

Infrastructure

### Is your feature request related to a problem? Please describe.

As a user and consumer of CCCL, I would like CCCL's release notes to be structured to help me find updates that are relevant to me.

I would like to make it part of CCCL's release automation to auto-generate structured release notes based on labels required to be applied to PRs before they can be merged.

For example, in [RAPIDS repos their release notes](https://github.com/rapidsai/cudf/releases) are auto-generated in the following structure:

```
# Breaking Changes
// all PRs with the "breaking" label

# Bug Fixes
// all PRs with the "bug-fix" label

# Documentation
// all PRs with the "doc" label

# New Features
// All PRs with "non-breaking" label
```

Furthermore, part of their CI status check requires one of these labels be set in order to merge. This prevents accidentally merging a PR without one of these required labels and ensuring our release notes are comprehensive.

In RAPIDS they had to implement this logic themselves, but it looks like this functionality is [built directly into GitHub now](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes) which should make it even easier.

As far as I can tell, the built-in functionality only solves generating the release notes based on labels. It doesn't do anything to require PRs have a label to be merged. So we'd still need to add that as our own workflow for the CI status check.

[RAPIDS implementation of the label checker](https://github.com/rapidsai/ops-bot/tree/main/src/plugins/LabelChecker) is unique to the fact that they don't use GitHub's native UI for merging PRs and instead uses a bot with triggered by a `/merge` command. Triggering the merge command will check for the required labels and fail if not present.

I had been thinking of instead implementing this as a workflow and making it required for [the status check.](https://github.com/NVIDIA/cccl/blob/9b4125be5690a0c24d09c18d03b1af3003bc7c35/.github/workflows/ci-workflow-pull-request.yml#L214-L251)

### Describe the solution you'd like

- [ ] Determine desired structure of generated release notes and required labels
- [ ] Implement label checker as part of CI status check
- [ ] Implement[ `.github/release.yml`](https://docs.github.com/en/repositories/releasing-projects-on-github/automatically-generated-release-notes#configuring-automatically-generated-release-notes) file for auto-structured release notes

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

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.