ci: introduce release branch model

未关闭
#718 2 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 4 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
python
领域
devops, release

调研方向

首先阅读 scripts/README.md 和 apache_release.py,以了解当前的发布流程及其对 main 的假设。定义创建分支对的命令,并更新 vX.Y-test 和 vX.Y-stable 的发布工作流。当模型已有文档说明、可以创建分支对,并且 apache_release.py 按照所列工作流支持发布分支时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

area/ci kind/feature priority/medium

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`
主要语言
Python
星标
2.6k
派生
212
平均合并
5 天 14 小时
30 天内合并 PR
39

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

apache/burr 的其他 Issue

查看 apache/burr 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。