提交 Commit 填写规范
- 填写描述的格式如下
1 | <type>:<subject> |
【 type说明 】如下:
| type 名称 | type 说明 |
|---|---|
| 新增特性 | 新的功能点、新的需求 |
| Bug 修复 | 修复的 Bug:现场的 Bug、测试阶段的 Bug,线上环节的 BUG |
| 文档修改 | 只是修改了文档:注释,接口、README.md 等 |
| 样式修改 | 不影响代码功能的修改:CSS 样式、代码格式化等 |
| 代码重构 | 代码更改既不修复错误也不添加功能 |
| 性能优化 | 代码更改可以提高性能 |
| 测试代码 | 添加缺失测试或更正现有测试 |
| 编译代码 | 影响构建系统或外部依赖项的更改:pom,dockerfile 等 |
| 持续集成 | 我们的CI配置文件和脚本的更改:Jenkinsfile 等 |
| 回退更改 | 代码回退提交更改 |
| 其他提交 | 除以上所有类型之外的提交更改 |
【 subject 说明 】如下:
如果提交类型是【Bug 修复】,则简要描述直接填写 Bug 的 JIRA 单或者 DTS 单链接 + 问题描述
如果提交类型是【新增特性】,则简要描述填写对应需求的 JIRA 单 + 需求描述,如需求过于庞大,则应拆分成小的功能点提交代码,便于 Review 人员审核,也有利于 Bug 的回溯
如果提交类型是【代码重构】,则简要描述直接填写对应的 JIRA 单+简要描述
如果提交类型是【性能优化】,则简要描述直接填写对应的 JIRA 单+简要描述
其他不做强制要求,如果有对应的 JIRA 单,则附上 JIRA 单,后面再附上简要描述
**【 body 说明 】如下: **
详细描述,力争语句表达清晰此次提交的代码具体涉及的原因分析和修改方法,如功能点很多则应使用序号列出代码所涉及的功能点。对于 Bug 修复,代码重构,性能优化必须有原因分析,其他可以为空,如下所示
1 | 1.原因分析:后台代码对于地址进行强 IP 校验 |
举例说明如下:
1 | 新增特性:DCP-175 数据开发-解决方案/业务流程支持操作记录 |
1 | Bug 修复:DTS001771957 多次导入实时任务业务流,第一次导入的实时任务业务流的信息未清空 |
1 | 文档修改:DCP-101 取消离线开发业务流函数 |
1 | 样式修改:统一各模块首页样式,各模块首页展示框部分存在阴影,部分不存在 |
1 | 代码重构:DCP-XXX 数据集成支持不同数据源接口抽象不合理 |
1 | 性能优化:DCP-XXX 离线开发长时间允许回调速度显著降低 |
1 | 编译代码:统一 hadoop 版本 |
1 | 回退更改:提交 xxx 代码导致 xxx 模块代码被覆盖 |
提交 Merge 请求规范
- 前提:分支可正常构建,特性分支经过验证,其他分支经过充分自验。
- 标题(Title)填写说明(必选):
1)填写本次请求的概述,要求简短且可以看得懂。
举例说明如下:
1 | 下载中心特性合入 |
对于 Merge 这块的 Title 说明会弱化,不需要强制大家附上相关的 JIRA 或者 WeTrack 单号
- Description 填写说明(必选):
1)填写本次 Merger 的涉及的范围,从大的方面上讲,以 1,2,3 来标识
举例说明如下:
1 | 1.数据接入模块支持下载中心相关代码开发 |
- Assignee 填写说明(必选):
1)评审人员选择顺序:小组内部成员–模块负责人–系分/开发主管。可以通过 @ 工号或姓名邀请多人评审
2)版本邻近发布阶段(如最后一轮系统测试转测阶段、临时修改内容提供现场时),需要邀请系分、开发主管评审
- milestone 填写说明(可选):
1)里程碑暂时不使用
- Labels 填写说明(可选):
1)保持和 Commit 时候的类型说明一致
- 选择是否合入后删除源分支、是否合并提交
1)若 Merge 不需要保留源分支,则勾选:Delete source branch when merge request is accepted
2)若 Merge 时可以合并 commit,则勾选:Squash commits when merge request is accepted
- 若主审人没有 Merger 权限,待代码评审完成后,可 @ 如下有权限的人进行 Merge
1)开发主管
2)系分
3)开发部负责人
审批 Merge 请求规范
- 同意 Merge 请求时候最后一次填写的评估规范
1)确认合规同意合入备注:必须填写以上 8 个字,防止啥也不看直接点击 Merge ,后续会慢慢放看 Merge 权限,本质上是引导大家需要去做 check
- Merge 时需要审核的内容
1)符合 Merge 条件,如已测试通过、已充分自验、可以正常构建
2)请求的填写格式符合规范
3)已经完成代码评审并按规范填写了评审内容
拉分支 / tag 规范
- 命名规范:版本号-类别-关键 ID-概述,总计由 4 部分组成,下方会对每部分内容做详细说明
示例:V1.1.6.0-Feature-DCP-198-开源漏洞修复及开源协议合规
- 版本号说明 VMP 系统标准版本号:V1.001.0000006.0、V1.001.0000006.1,由项目经理在 VMP 系统建立,走发布流程及公司级流程时必须使用标准写法,其他时间使用缩写
· 缩写版本号:V1.1.6.0、v1.1.6.0,即保留四位,每位去掉所有可以去掉的 0
如:V1.1.10.0,这两个 0 都要保留,前面 10 代表第 10 个版本,后面的 0 代表修订版本
- 类别说明
1)新增特性:Feature
2)问题修复:Bug
3)文档修改:Docs
4)样式修改:Style
5)代码重构:Refactor
6)性能优化:Perf
7)测试代码:Test
8)编译代码:Chore
9)持续集成:CI
10)项目定制:Custome
11)发布版本:Gdp
12)其他:Other
- 关键 ID 说明
1)针对新增特性类型:必填,关键 ID 为 JIRA 的关键字(单号、特性ID),如 DCP-198
2)针对问题修复类型:必填,关键 ID 为 问题单号。若有多个,仅填写一个重要的即可
3)针对文档修改类型:选填,关键 ID 可以为空,或者是 JIRA 单号
4)针对样式修改类型:选填,关键 ID 可以为空,或者是 JIRA 单号
5)针对代码重构类型:必填,关键 ID 是 JIRA 单号
6)针对性能优化类型:必填,关键 ID 是 JIRA 单号
7)针对测试代码类型:选填,关键 ID 可以为空,或者是 JIRA 单号
8)针对编译代码类型:选填,关键 ID 可以为空,或者是 JIRA 单号
9)针对持续集成类型:选填,关键 ID 可以为空,或者是 JIRA 单号
10)针对项目定制类型:必填,关键 ID 是 JIRA 单号或者 需求单号
11)针对发布版本类型:不需要填写,关键 ID 为空
12)针对其他类型:选填,关键ID可以为空,或者是JIRA单号
- 概述说明
1)针对此分支做简洁、清楚的描述,可以是中文也可以是英文
2)对于发布分支,概述填写为:Release
分支保护与清理
- 需要保护的分支,提供充分理由后,请有权限的人进行保护
- 谁创建谁清理。版本发布后,各小组对不必要保留的分支再次进行审查清理(提交 Merge 时可先做一次筛选)
关于冲突解决
- flyway 文件冲突的时候,需要新建一个文件,不允许合并内容。
- 特性开发过程中定期执行代码反合的动作,尽量保持和主干代码一致,防止最后一次提交时冲突过于严重。
关于 JIRA 填写规范
- JIRA 主要用于流程记录,记录你整个特性开发过程中的主心骨
- 每个环节只填写每个环节该输出的东西,养成及时记录的开发习惯
- 串讲环节主要填写需求背景,需求的主要实现点,可以附带一些针对 DFX 的考虑
- 反串讲环节主要填写串讲环节会后确认的内容和遗漏的内容
- 方案设计环节主要填写整个特性实现的关键路径,例如模块图,时序图,流程图等,并且做简要描述,指导整个代码开发
- 方案评审环节主要填写对于方案设计环节的补充
- 代码开发环节主要填写代码开发过程中遇到的困难(包括联调),这里不需要很细,主要指的那些耗时 0.5 天以上的困难
- 代码评审环节主要填写代码评审的相关内容
- 转测自验环节主要填写自验的情况,总共多少用例,通过多少用例,需要附上测试用例的清单,防止随意填写