diff --git a/img/佛山许可登记代码与版本发布管理规范.png b/img/佛山许可登记代码与版本发布管理规范.png index b27c70a..cb06647 100644 Binary files a/img/佛山许可登记代码与版本发布管理规范.png and b/img/佛山许可登记代码与版本发布管理规范.png differ diff --git a/技术规范/佛山许可登记代码与版本发布管理规范.md b/技术规范/佛山许可登记代码与版本发布管理规范.md index b9756ae..4b3e705 100644 --- a/技术规范/佛山许可登记代码与版本发布管理规范.md +++ b/技术规范/佛山许可登记代码与版本发布管理规范.md @@ -3,8 +3,8 @@ # 佛山许可登记代码与版本发布管理规范 >
拟稿:研发中心
->
版本号:0.0.5
->
发布时间:2022.02.28
+>
版本号:0.0.6
+>
发布时间:2022.03.9
**目录** @@ -13,23 +13,24 @@ - [一、 代码管理](#%E4%B8%80-%E4%BB%A3%E7%A0%81%E7%AE%A1%E7%90%86) - - [1. 代码仓库组织](#1-%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%E7%BB%84%E7%BB%87) - - [2. 代码分支管理](#2-%E4%BB%A3%E7%A0%81%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86) - - [3. 分支负责人职责](#3-%E5%88%86%E6%94%AF%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3) - - [4. 开发人员管理](#4-%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86) + - [代码仓库组织](#%E4%BB%A3%E7%A0%81%E4%BB%93%E5%BA%93%E7%BB%84%E7%BB%87) + - [分支生命周期](#%E5%88%86%E6%94%AF%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F) + - [分支管理](#%E5%88%86%E6%94%AF%E7%AE%A1%E7%90%86) + - [分支负责人职责](#%E5%88%86%E6%94%AF%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3) + - [开发人员管理](#%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86) - [二、 版本发布管理](#%E4%BA%8C-%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E7%AE%A1%E7%90%86) - - [1. 版本发布工具](#1-%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E5%B7%A5%E5%85%B7) - - [2. 版本发布时间](#2-%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E6%97%B6%E9%97%B4) - - [3. 发布流程管理](#3-%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%E7%AE%A1%E7%90%86) - - [4. 升级负责人职责](#4-%E5%8D%87%E7%BA%A7%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3) - - [5. 开发人员管理](#5-%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86) -- [三、 流程图](#%E4%B8%89-%E6%B5%81%E7%A8%8B%E5%9B%BE) + - [版本发布工具](#%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E5%B7%A5%E5%85%B7) + - [版本发布时间](#%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E6%97%B6%E9%97%B4) + - [发布流程管理](#%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%E7%AE%A1%E7%90%86) + - [升级负责人职责](#%E5%8D%87%E7%BA%A7%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3) + - [开发人员管理](#%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98%E7%AE%A1%E7%90%86-1) +- [三、 代码分支与版本发布流程图](#%E4%B8%89-%E4%BB%A3%E7%A0%81%E5%88%86%E6%94%AF%E4%B8%8E%E7%89%88%E6%9C%AC%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%E5%9B%BE) ## 一、 代码管理 -### 1. 代码仓库组织 +### 代码仓库组织 建立Git组织团队名为`fsrl`,专门托管佛山许可登记系统的项目代码,并把开发人员权限统一管理起来。 @@ -45,36 +46,46 @@ | fsrl-approve | 许可登记大前端 | | fsrl-biz-speq-web | 质监网办PC前端 | -**master分支** +### 分支生命周期 -master分支始终代表生产环境的状态,不能直接在上面提交代码。Master分支上的Commit应该Tag,存储正式发布的历史。 +工程的分支主要两种,一种是基础分支,一种是功能开发的分支。其中`master`,`test`是基础分支。 -**test分支** +**master主线** -test 分支作为功能的集成分支,包含所有的代码提交记录。test 分支代表针对下一版本的最新交付的代码。开发人员从 test 分支创建新分支,并开发新功能。功能开发完毕后,将对其进行测试,与 test 分支合并,在合并了其他功能分支的情况下使用 test 分支的代码进行测试,然后与 master 分支合并。 +master分支始终代表生产环境的状态,不能直接在上面提交代码。并大版本的发布,应该进行打标签Tag,存储正式发布的历史。 -### 2. 代码分支管理 +**test预发布** + +test 分支作为功能的预发布集成分支,包含所有的代码提交记录。test 分支代表针对下一版本的最新交付的代码。开发人员从 test 分支创建新分支,并开发新功能。功能开发完毕后,将对其进行测试,与 test 分支合并,在合并了其他功能分支的情况下使用 test 分支的代码进行测试,然后与 master 分支合并。 + +**开发分支** + +根据系统功能需求划分,创建对应的开发分支,负责存储相应的开发功能代码。当功能正式上线稳定一定的周期,并取得项目经理允许,即可摧毁删除分支。 + +例如: + +| 涉及工程 | 功能模块 | 开发分支 | +| ----------------------------------------------------------- | -------- | ---------- | +| `fsrl-scr`,`fsrl-server`,`fsrl-approve` | 商事登记 | shangshi | +| `fsrl-scr`,`fsrl-server`,`fsrl-approve` | 一照通行 | yizhaotong | +| `fsrl-scr`,`fsrl-server`,`fsrl-approve` | 食药许可 | shiyao | +| `fsrl-scr`,`fsrl-server`,`fsrl-approve`,`fsrl-biz-speq-web` | 质监许可 | zhijian | + +### 分支管理 1. 工程代码与分支需要严格规范管理起来,划分清楚工程与分支的边界 2. 针对同个事项模块开发,涉及多个子工程,要统一分支命名 -3. 设立模块分支代码管理负责人,负责日常合并、与其他模块相关协同等操作 +3. 设立开发分支代码管理负责人,负责日常合并、与其他开发模块代码协同等操作 -| 涉及工程 | 功能模块 | 分支名称 | 分支负责人 | -| ----------------------------------------------------------- | -------- | ---------- | ------------ | -| `fsrl-scr`,`fsrl-server`,`fsrl-approve` | 商事登记 | shangshi | (人员待定) | -| `fsrl-scr`,`fsrl-server`,`fsrl-approve` | 一照通行 | yizhaotong | (人员待定) | -| `fsrl-scr`,`fsrl-server`,`fsrl-approve` | 食药许可 | shiyao | (人员待定) | -| `fsrl-scr`,`fsrl-server`,`fsrl-approve`,`fsrl-biz-speq-web` | 质监许可 | zhijian | (人员待定) | +### 分支负责人职责 -### 3. 分支负责人职责 - -1. 每天负责合并master分支代码到开发分支上 +1. 每天负责合并master主线代码到开发分支上 2. 上线发版需要经过测试环境测试,主动把代码合并test分支上 -3. 发版需要告知升级负责人,本次升级涉及那些工程以及说明,要通过文本方式告知,留底 +3. 发版需要告知升级负责人,本次升级涉及那些工程以及说明,要通过文本方式告知留底 -### 4. 开发人员管理 +### 开发人员管理 -1. 编写代码时,要在正确的分支下开发,特别是负责多个模块开发人员,禁止代码串门不相关分支 +1. 编写代码时,要在正确的分支下开发,特别是负责多个模块开发人员,禁止代码串门提交不相关分支 2. 每天来了,先拉取同步远程仓库的代码,并在下班或定期提交代码到Git仓库,禁止攒着代码放大招 3. 禁止个人独立创建开发分支,要经过负责人同意 5. 开发规范可参考: [技术规范](http://47.107.61.133:3000/chinaweal/public/src/branch/master/技术规范) @@ -83,7 +94,7 @@ test 分支作为功能的集成分支,包含所有的代码提交记录。tes ## 二、 版本发布管理 -### 1. 版本发布工具 +### 版本发布工具 版本系统主要功能有,升级补丁,退回版本,补丁文件防篡检验。改生产环境发布版本,需要通过版本管理系统工具发布,禁止私自手动拷贝替换操作。 @@ -95,16 +106,16 @@ test 分支作为功能的集成分支,包含所有的代码提交记录。tes **顺德客户端访问地址**:http://19.202.179.137:9888/incre/web#/client/project -### 2. 版本发布时间 +### 版本发布时间 系统升级要按照制定的时间执行,各模块的负责人要提前把代码功能测试好并提交,并告知升级负责人。逾期得等到下次升级,紧急情况下,可以向项目经理申请,通过方可以执行升级。 -| 环境 | 升级时间 | 升级负责人 | -| -------- | ---------------- | ------------ | -| 生产环境 | 周四(19点) | (人员待定) | -| 测试环境 | 获得准许即可升级 | 分支负责人 | +| 环境 | 升级时间 | +| -------- | ---------------- | +| 生产环境 | 周四(19点) | +| 测试环境 | 获得准许即可升级 | -### 3. 发布流程管理 +### 发布流程管理 1. 每次发布版本要经过测试环境验证,流程:测试环境(test) > 正式环境(master) 2. 分支合并由分支负责人合并到test,测试环境测试没有问题,再由升级负责人合并到主线master上打包发布正式环境 @@ -112,18 +123,18 @@ test 分支作为功能的集成分支,包含所有的代码提交记录。tes 4. 生产环境发布版本,由升级负责人打包升级,并且只能使用版本打包服务器打包 5. 生产环境升级与回退只能使用版本管理系统操作 -### 4. 升级负责人职责 +### 升级负责人职责 1. 合并分支test至master主线 2. 生产环境版本系统发布升级 3. 系统回退版本的操作 -### 5. 开发人员管理 +### 开发人员管理 1. 每次升级的代码,编写开发人员,需要保持在线状态 2. 修改了工程的静态配置文件,需告知分支负责人 3. 变更了库表字段,需告知分支负责人收集转交给数据库负责人 -## 三、 流程图 +## 三、 代码分支与版本发布流程图 \ No newline at end of file