apache / apache/burr

ci: introduce release branch model

Open
#718 2 comments 1 reaction 0 assignees View on GitHub
area/ci kind/feature priority/medium
Dominant language
Python
Stars
2.5k
Forks
195
Avg merge
6d 10h
Merged PRs (30d)
17

Description

Part of #715

### Problem

Currently all release work happens on \`main\`. During the RC voting period (72+ hours), any commit merged to \`main\` is not included in the release, and there is no safe place to cherry-pick critical fixes without risking the RC.

### Solution

Adopt a two-branch model per release series (similar to Airflow):

- **\`vX.Y-test\`**: working branch where cherry-picks land while an RC is being voted on
- **\`vX.Y-stable\`**: clean branch, only updated when an RC is cut. Tags are created from here.

### Workflow

1. When preparing a release, create \`vX.Y-test\` and \`vX.Y-stable\` from \`main\`
2. Cherry-picks go to \`vX.Y-test\`
3. When cutting an RC, fast-forward merge \`vX.Y-test\` into \`vX.Y-stable\`, tag from there
4. If the RC fails vote, fix on \`vX.Y-test\`, cut new RC
5. After release, delete \`vX.Y-test\` (keep \`vX.Y-stable\` for future patches)

### Acceptance criteria

- [ ] Document the branch model in \`scripts/README.md\`
- [ ] Add a script/command to create the branch pair
- [ ] Update \`apache_release.py\` to work with release branches instead of \`main\`

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.