@@ -199,9 +199,12 @@ Release branches **must** follow the format `release/vX.Y.Z` where:
199199**Invalid examples:**
200200
201201- `release/1.5.0` ❌ (missing ' v' prefix)
202- - `release/v1.5` ❌ (missing patch version)
203202- `release/V1.5.0` ❌ (uppercase ' V' )
204203
204+ Note: `release/vX.Y` (e.g., `release/v1.5`) is valid for minor release branches
205+ that track the latest patch version. See the
206+ [minor release branch](#5-create-and-push-git-tag) section.
207+
205208This naming convention is enforced by CI checks. Any push to a branch starting
206209with `release/` that doesn't follow this format will fail validation.
207210
@@ -287,6 +290,28 @@ make release-create-tag TAG=v1.5.0 MESSAGE="Release v1.5.0. See CHANGELOG.md for
287290
288291<!-- prettier-ignore-start -->
289292
293+ :::info Minor release branch
294+
295+ For an initial minor release (x.y.0), you must also create a minor release
296+ branch `release/vX.Y` pointing to the same commit. This branch will be used to
297+ track the latest patch version and receive hotfix updates.
298+
299+ ```bash
300+ # After creating the tag, also create the minor release branch
301+ git checkout main
302+ git checkout -b release/v1.5
303+ git push -u origin release/v1.5
304+ ```
305+
306+ This ensures that the `release/vX.Y` branch always points to the latest `vX.Y.Z`
307+ release, making it easy to find the most recent patch for any minor version.
308+
309+ :::
310+
311+ <!-- prettier-ignore-stop -->
312+
313+ <!-- prettier-ignore-start -->
314+
290315<details>
291316<summary>Script contents (click to expand)</summary>
292317
@@ -427,7 +452,7 @@ For urgent patches to released versions:
427452
428453 ```bash
429454 git checkout v1.5.0
430- git checkout -b hotfix /v1.5.1
455+ git checkout -b release /v1.5.1
431456 ```
432457
4334582. **Apply minimal fix**
@@ -440,12 +465,49 @@ For urgent patches to released versions:
440465 - Verify Docker builds
441466 - Create GitHub release
442467
468+ 4. **Update the minor release branch**
469+
470+ After the hotfix is released, update the minor release branch
471+ (`release/vX.Y`) to include the hotfix changes. This ensures the branch
472+ always points to the latest patch version.
473+
474+ ```bash
475+ # Create a PR from the hotfix branch to the minor release branch
476+ gh pr create --base release/v1.5 --head release/v1.5.1 \
477+ --title " Update release/v1.5 branch with v1.5.1 hotfix" \
478+ --body " Updates the release/v1.5 branch to include the v1.5.1 hotfix."
479+ ```
480+
481+ After the PR is reviewed and merged, the `release/v1.5` branch will reflect
482+ the latest `v1.5.1` release.
483+
484+ <!-- prettier-ignore-start -->
485+
486+ :::important Keep minor release branches current
487+
488+ The minor release branch (`release/vX.Y`) must always point to the latest patch
489+ release in that series. After every hotfix release (`vX.Y.Z` where `Z > 0`),
490+ create a PR to merge the hotfix branch into the corresponding ` release/vX.Y `
491+ branch.
492+
493+ For example:
494+
495+ - After releasing ` v1.5.1 ` , merge ` release/v1.5.1 ` into ` release/v1.5 `
496+ - After releasing ` v1.5.2 ` , merge ` release/v1.5.2 ` into ` release/v1.5 `
497+
498+ This allows users to track the ` release/vX.Y ` branch to always get the latest
499+ stable patch version.
500+
501+ :::
502+
503+ <!-- prettier-ignore-stop -->
504+
443505## Addressing Release problems
444506
445507If issues are discovered after release:
446508
4475091. **Immediate mitigation**
448- - Remove problematic Docker tags if possible
510+ - Yank problematic Docker tags if the issue is critical.
449511 - Update release notes with known issues
450512
4515132. **Create hotfix release**
0 commit comments