kubernetes / kubernetes/release
krel release-notes skips PRs under RC fast-forward sync merges (v1.34/v1.35/v1.36-rc.1 regression)
- Dominant language
- Go
- Stars
- 504
- Forks
- 556
- Avg merge
- 18h 43m
- Merged PRs (30d)
- 33
Description
#### What happened:
`krel release-notes` misses PRs when generating RC release notes because it only follows **first-parent commits**. RC branches get fast-forwarded from master via `git-repo-kubernetes-fast-forward`, making sync merges the first parent and burying actual feature PRs as side parents.
#### Impact:
Manual note hunting was required for every RC.1 draft PR.
Affected releases:
v1.34-rc.1: https://github.com/kubernetes/sig-release/pull/2842#issuecomment-3217996504
v1.35-rc.1: https://github.com/kubernetes/sig-release/pull/2925#pullrequestreview-3564097249
v1.36.0-rc.1: Confirmed during generation (10 baseline PRs → 0 found)
```
git log --merges --oneline --grep="Merge pull request #" v1.36.0-rc.0..v1.36.0-rc.1
eb51fbf7c6d Merge pull request #138346 from dashpole/update_otel_prop
02b97921369 Merge pull request #138354 from dims/update-moby-spdystream-v0.5.1
462e759d199 Merge pull request #138318 from jsafrane/fix-dra-mirroring
a3895062546 Merge pull request #138303 from richabanker/mvp-error-log
0275382260b Merge pull request #138244 from fanzhangio/device-manager-numa-fix
550504bb257 Merge pull request #138300 from michaelasp/svmOverload
f5c7b422749 Merge pull request #138299 from xmudrii/update-go
40007b64522 Merge pull request #138210 from Mujib-Ahasan/featuregate-WorkloadWithJob
0f7926ebf67 Merge pull request #138277 from BenTheElder/publishing-1.36
f330d3b75f7 Merge pull request #138281 from Jefftree/fix-map-sv
```
#### What you expected to happen:
Krel finds all PRs in vX.Y.0-rc.0 to vX.Y.0-rc.1, regardless of merge topology.
#### How to reproduce it (as minimally and precisely as possible):
#### Anything else we need to know?
While generating the release notes for vX.Y.0-rc.1, try to have a number of actual PRs merged between vX.Y.0-rc.0 and vX.Y.0-rc.1 by executing cmd (for example) in **kubernetes/kubernetes**:
_Ground truth PRs in rc.0→rc.1_
`git log --merges --oneline --grep="Merge pull request #" v1.36.0-rc.0..v1.36.0-rc.1 `
This will show the number of PRs to be reviewed during krel release notes generation, and if you get fewer, confirm that their release notes section for `NONE`.
#### Environment:
```
__ __ ____ ______ __
/ //_/ / __ \ / ____/ / /
/ ,< / /_/ / / __/ / /
/ /| | / _, _/ / /___ / /___
/_/ |_| /_/ |_| /_____/ /_____/
krel: The Kubernetes Release toolbox
GitVersion: v0.21.1
GitCommit: unknown
GitTreeState: unknown
BuildDate: unknown
GoVersion: go1.26.2
Compiler: gc
```
Repo: kubernetes/kubernetes @ v1.36.0-rc.1
Branch: `release-1.36`
- OS (e.g: `cat /etc/os-release`): linux/amd64
- Kernel (e.g. `uname -a`): `6.19.12-200.fc43.x86_64`
Contributor guide
Research direction
Start at the krel release-notes generation path and reproduce the regression using the git log command in the issue between v1.36.0-rc.0 and v1.36.0-rc.1. Trace how merge topology is traversed, then verify that all ground-truth PRs appear in the generated release notes rather than being assigned to NONE.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, go
- Domain
- devops, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100