版本开发基本流程——TBD Workflow(四)
前言
由于我们使用Gitlab代码托管平台,以feature branch的形式进行提交,所以准确的说我们用的是Scaled Trunk Based Development。
TBD准确的说不是一种"分支策略模型",它更像是一种"分支策略模型"的规范。因此对它的使用不像是Gitflow那样有一套标准的workflow进行参考。我们在执行TBD到我们的项目中的时候,应该结合规范,参考其它TBD的应用结合我们自己的使用场景来执行。
一般而言我们只有一个分支----trunk分支(master分支),所有的开发和release工作都是在这个分支上进行。我们可以在trunk分支上以tag的形式进行release版本。如果有需要的话我们可以从相应的tag处检出release分支。通过从trunk分支上cherry-pick bug fix patch的形式,对release分支的维护。release分支和master分支之间不存在merge操作。
版本开发基本流程
遵循TBD进行项目版本开发过程中最关键的几部分就是:
- 代码提交
- 代码评审
- 待发布版本测试
- 版本发布
- 发布版本热修复
代码提交
为了Gitlab代码评审的需要,我们使用Feature Branch进行提交:
- Developer本地同步master分支
- Developer本地从master分支上检出feature branch
- Developer完成开发提交到feature branch
- Developer检查本地master是否最新,如果不是的话同步master分支,然后快进feature branch
- Developer push feature branch到Gitlab仓库
代码评审
我们使用Gitlab进行代码评审:
- Developer在Gitlab上发起merge request,请求将feature branch合并入master分支
- Reviewer收到请求后,进行代码评审,fetch feature branch到本地进行测试
- 测试通过后通知Maintainer合并请求,删除掉feature branch
- 测试不通过,close掉merge request,删除feature branch后通知Developer进行修改并重新提交
待发布版本测试(rc测试)
当前版本规划的feature全都开发完后,进入到“待发布版本测试”阶段。此阶段不再允许合入新的特性。测试人员对项目进行测试(功能测试,压力测试),反馈Bug给开发人员进行Bug修复。
- Maintainer从dev分支上检出release,更新版本信息(记录当前版本引入了哪些feature),打tag:sdk_vx.y
- Tester对项目进行测试,反馈Bug给Developer
- Developer在master上复现问题
- Developer在master上解决问题,并提交到master上(如果master上不存在这个问题,直接往release上提交)
- Developer在本地cherry-pick bugfix到release分支(我们的gitlab目前还不支持cherry-pick,所以只能在本地操作)
- 在release分支上进行“代码提交”“代码评审”
- Maintainer合并时根据需要打tag:sdk_vx.y-rcx
版本发布
版本测试通过后进入到“版本发布”阶段
- 采用release分支制作tar包
- 对tar包进行测试
- 测试通过后上传NAS,供FAE使用
发布版本热修复
发布出去的版本发现了严重Bug需要立即修复后进行发布,此时需要用到“发布后热修复”:
- Developer在release分支上复现问题
- Developer在master分支在上面复现问题
- Developer在master上解决问题,并提交到master上(如果master上不存在这个问题,直接往release上提交)
- 在master分支上进行“代码评审”“合并”
- Developer在本地cherry-pick bugfix到release分支(我们的gitlab目前还不支持cherry-pick)
- 在release分支上进行“代码提交”“代码评审”“合并”
- Maintainer合并时根据需要打tag:sdk_vx.y.z
此阶段也需要在合适的时候进行rc测试
补充
在使用TBD进行团队协作时,存在以下几种提交行为:
- 往master分支上提交feature
- 往master分支提交某一release分支的bugfix,然后cherry-pick到release分支
- 往master分支上提交feature,然后cherry-pick到release分支
为了减小维护已经发布版本的压力,发布出去的版本尽量集中(最好是一个分支),这样可以减小我们维护的工作量这样可以减少我们在不同release分支和master分支之间的bugfix的cherry-pick,feature的cherry-pick。
版本开发基本流程——TBD Workflow(四)相关推荐
- SDK项目开发基本流程——TBD Workflow(二)
项目规划:制定下一个版本应该合入哪些特性,制定项目schedule,项目分工 版本新特性开发:开发下一个版本的特性,每周同步进度,及时修改schedule 版本测试:所有特性开发完成后,不再合入新特性 ...
- Design Development Workflow with Framer X 使用Framer X进行设计和开发工作流程 Lynda课程中文字幕
Design & Development Workflow with Framer X 中文字幕 使用Framer X进行设计和开发工作流程 中文字幕Design & Developm ...
- travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
- githooks_使用Githooks改善团队的开发工作流程
githooks by Daniel Deutsch 由Daniel Deutsch 使用Githooks改善团队的开发工作流程 (Improve your team's development wo ...
- 我的软件测试之旅:(10)贡献——开发项流程
开发项流程(Development Item Process) 当时的这个Scrum试点项目身负重任,其中之一就是要探索出在新型的敏捷模式下该使用何种的开 发流程,负责人就是当时的Linux部门经理, ...
- centos 开发套件_替代的Laravel套件开发工作流程
centos 开发套件 This article was peer reviewed by Francesco Malatesta. Thanks to all of SitePoint's peer ...
- 开发工作流程_您应该了解的9个开发工作流程升级
开发工作流程 Every once in a while I run into a tool or plugin so useful I can't not add it to my arsenal. ...
- SAP UI5 应用开发教程之一百零四 - SAP UI5 表格控件的支持复选(Multi-Select)以及如何用代码一次选中多个表格行项目
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- App项目设计开发完整流程
App项目设计开发完整流程 1. idea形成--APP项目雏形 一个APP项目的最初首先要确定项目整体方案,整个项目的规划,大体框架,做成文档展现出来,以便大家提意见和更好的改进.也就是说首先要确立 ...
最新文章
- php在线炒河粉,在线炒河粉表情包
- php 变更 obj,php怎么将object转为string
- RSA, ACS5.X 集成配置
- VC MFC界面上显示BMP图片
- 【C语言】有3个数a,b,c,要求按大小顺序把它们输出(基础法)
- 信息学奥赛一本通 2067:【例2.5】圆
- mysql中like与rlike_MySQL中RLIKE运算符的使用详解-mysql教程-
- windows下mysql+apache+php配置
- 试验设计——均匀试验设计·好格子点法
- 大学一级计算机字处理模拟题,大学计算机一级模拟操作题2
- cosx等价无穷小_第一章 函数与极限 第七节 无穷小的比较
- Arouter 跳转失败activityResumeTrigger: not whiteListed
- 什么软件可以测试提速,谁是手机加速神器?三款常用加速软件横评
- 对「曲线拟合」和「最小二乘法」的个人理解
- electron打开文件的几种实现方式
- [游戏]近期期待作品一览
- centos7 网桥桥接、网卡绑定终极实战
- 美通企业日报 | 万豪将在全球取消一次性小瓶洗漱用品;保乐力加在中国建首家麦芽威士忌酒厂...
- linux下fdisk命令实战案例之详解
- 在 vs code 中使用 go 插件时相关工具的正确安装方式
热门文章
- 如何查看oracle数据库的端口号,如何查找Oracle数据库的URL和端口?
- 华为认证的考试预约和续证
- properties语言包字数统计
- c++ 求解球面距离
- oracle数据库郭斌_上上签电子签约亮相Oracle NetSuite中国峰会,战略携手共赢To B生...
- 浙江财经计算机学院,浙江财经大学信息学院导师介绍:王继林
- long long类型上限_【oracle】long类型使用方法
- 关于微信跳转,这里有你想知道的一切weixin://dl/business/?ticket=td9cd0bf056c561fe9f56e33c61df61bf...
- 计算机模拟在铸造领域的应用,铸造过程计算机模拟研究应用现状与发展
- Word 2007教程:使用多级编号列表