

# 佛山许可登记代码与版本发布管理规范

> <div><span>拟稿：研发中心</span></div>
> <div><span>版本号：0.0.2 </span></div>
> <div><span>发布时间：2022.02.22 </span></div>

**目录**

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [一、 代码管理](#%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%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-%E5%8F%91%E5%B8%83%E6%B5%81%E7%A8%8B%E7%AE%A1%E7%90%86)
  - [3. 升级负责人职责](#3-%E5%8D%87%E7%BA%A7%E8%B4%9F%E8%B4%A3%E4%BA%BA%E8%81%8C%E8%B4%A3)
- [三、 流程图](#%E4%B8%89-%E6%B5%81%E7%A8%8B%E5%9B%BE)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## 一、 代码管理

### 1. 代码仓库组织

建立Git组织团队名为`fsrl`，专门托管佛山许可登记系统的项目代码，并把开发人员权限统一管理起来。

**组织地址：** http://47.107.61.133:3000/fsrl

**仓库列表**

| 工程名            | 主题             |
| ----------------- | ---------------- |
| fsrl-org          | 系统组织架构系统 |
| fsrl-scr          | 商事登记2.0      |
| fsrl-server       | 许可登记大后台   |
| fsrl-approve      | 许可登记大前端   |
| fsrl-biz-speq-web | 质监网办PC前端   |

**master分支**

master分支始终代表生产环境的状态，不能直接在上面提交代码。Master分支上的Commit应该Tag，存储正式发布的历史。

**develop分支**

develop 分支作为功能的集成分支，包含所有的代码提交记录。develop 分支代表针对下一版本的最新交付的代码。开发人员从 develop 分支创建新分支，并开发新功能。功能开发完毕后，将对其进行测试，与 develop 分支合并，在合并了其他功能分支的情况下使用 develop 分支的代码进行测试，然后与 master 分支合并。

### 2. 代码分支管理

1. 工程代码与分支需要严格规范管理起来，划分清楚工程与分支的边界
2. 针对同个事项模块开发，涉及多个子工程，要统一分支命名
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分支代码到开发分支上
2. 上线发版需要经过测试环境测试，主动把代码合并develop分支上
3. 发版需要告知升级负责人，本次升级涉及那些工程以及说明，要通过文本方式告知，留底

### 4. 开发人员管理

1. 编写代码时，要在正确的分支下开发，特别是负责多个模块开发人员，禁止代码串门不相关分支
2. 每天来了，先拉取同步远程仓库的代码，并在下班或定期提交代码到Git仓库，禁止攒着代码放大招
3. 禁止个人独立创建开发分支，要经过负责人同意
4. 变更了工程的静态配置文件，需告知分支负责人
5. 开发规范可参考： [技术规范](http://47.107.61.133:3000/chinaweal/public/src/branch/master/技术规范)



## 二、 版本发布管理

### 1. 版本发布工具

生产环境发布版本，需要通过版本管理系统工具发布，禁止私自骚操作

**版本打包服务器：**172.22.80.91:22

**控制端访问地址**：http://172.22.80.91:8086/incre/web/#/control/app

**佛山客户端访问地址**：http://19.130.241.146:9888/incre/web#/client/project

**顺德客户端访问地址**：http://19.202.179.137:9888/incre/web#/client/project

### 2. 版本发布时间

系统升级要按照制定的时间执行，各模块的负责人要提前把代码功能测试好并提交，并告知升级负责人。逾期得等到下次升级，紧急情况下，可以向项目经理申请，通过方可以执行升级。

| 环境     | 升级时间                   |
| -------- | -------------------------- |
| 生产环境 | 周三（19点）、周四（19点） |
| 测试环境 | 获得准许即可升级           |

### 3. 发布流程管理

1. 每次发布版本要经过测试环境验证，流程：测试环境（develop） > 正式环境（master）
2. 分支合并由分支负责人合并到develop，测试环境测试没有问题，再由升级负责人合并到主线master上打包发布正式环境
3. 测试环境发布版本，可以由分支负责人来负责打包升级
4. 生产环境发布版本，由升级负责人打包升级，并且只能使用版本打包服务器打包

### 4. 升级负责人职责

1. 合并分支develop至master主线
2. 生产环境版本系统发布升级

## 三、 流程图

<img src="../img/佛山许可登记代码与版本发布管理规范.png" style="width:100%"/>