Skip to content

Commit 140f42d

Browse files
authored
Merge pull request #1685 from o1-labs/dw/doc-update-branch-name-hotfix
Website: update release branch name for hotfix
2 parents b7be0be + 14f169c commit 140f42d

File tree

1 file changed

+65
-3
lines changed

1 file changed

+65
-3
lines changed

website/docs/appendix/release-process.mdx

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
205208
This naming convention is enforced by CI checks. Any push to a branch starting
206209
with `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

433458
2. **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

445507
If issues are discovered after release:
446508

447509
1. **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

451513
2. **Create hotfix release**

0 commit comments

Comments
 (0)