代码流转与分支

简介

Zephyr Git 仓库有三种类型的分支:

main

包含最新的开发状态

collab-\*

协作分支用于共同开发新功能,待功能准备就绪后将其引入 main 分支。创建新的协作分支需要说明理由并获得 TSC 批准。协作分支必须基于 main 分支创建,在协作分支中开发的所有更改都必须以主开发分支为目标。对于已发布的 Zephyr 版本,经 TSC 批准引入的修复和新功能必须通过向后移植拉取请求完成。

vx.y-branch

用于跟踪基于某个主要版本的维护版本的分支

在功能进入主线之前,先在协作分支中进行开发,可以让团队独立开展子系统或功能的开发工作,提高效率并缩短周转时间,同时促进协作,简化开发者之间的沟通。

提交到协作分支的更改可以先在分支中逐步演进和完善,再提交到主线代码树进行最终集成。

为复杂功能设立独立分支,可以在将新增内容集成到正式项目之前,围绕这些内容展开深入讨论。

协作分支是临时性的,协作工作完成后必须将其删除。申请创建分支时,提案应包含以下内容:

  • 明确将协作分支中的更改合并回 main 分支所需满足的退出条件。

  • 为分支的预期生命周期制定时间表。建议选择一个 Zephyr 发布版本作为时间节点。延长此时间表需要获得 TSC 批准。

角色与职责

协作分支负责人承担以下职责:

  • 使用项目提供的基础设施和工具(GitHub、Git)

  • 对协作分支的所有更改都必须通过 GitHub 拉取请求提交。

  • 仅在基于 main 分支进行变基时,才允许强制推送协作分支。

  • 审查团队成员提交的更改,并在提交更改时请求分支负责人进行审查。

  • 保持分支与上游同步,并定期更新。

  • 使用以下方式频繁向上游推送更改:

    • GitHub 拉取请求:例如,本地分支(单人开发分支)中的更改尚未经过审查时。

    • 合并请求:在本地分支中完成一组更改,并已在协作分支中完成审查和测试时。