kubernetes / kubernetes/release

krel release-notes skips PRs under RC fast-forward sync merges (v1.34/v1.35/v1.36-rc.1 regression)

Open
#4,381 3 comments 0 reactions 0 assignees View on GitHub
area/release-eng kind/bug needs-priority sig/release
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.