# 工程师代码提交及提测规定
author:陈波、韩皖
createTime:2019
updateTime:2022
# 1. 概述
# 1.1 目的
研发部使用SVN工具进行代码管理。研发部设置编译服务器进行程序自动编译、打包、提交到ftp服务器。测试和运维工程师通过ftp维护及保存历史版本、通过ftp下载必要的版本进行更新部署。 本文档用于规范SVN工程目录规范、工程师代码提交和提测邮件规则、编译服务器自动工作的规则等相关事宜。
# 1.2 适用范围
本文档适用于开发工程师,测试运维工程师。
# 1.3 备注
创建项目时,项目添加内容如下截图示例
# 2.系统研发代码提交以及提测规定
# 2.1 项目编号及SVN目录
设立项目开发时应申请项目编号,并在SVN创建项目目录。项目编号分配由研发总监统一分配。SVN系统上的项目目录如下所示:
软件系统项目编号由系统研发经理统一分配管理。
# 2.2 SVN系统相关规则
SVN系统以项目编号作为SVN目录。新项目设立的时候,在SVN建立该项目的目录,以项目编号命名。
正常情况下项目目录会有branches、doc、tags、trunk四个子目录:
- trunk为开发主干、主目录,日常的开发、提交主要都在这里进行
- branches为分支,对独立的版本进行分支的维护和更新管理
- tags暂不规定
- doc,保存维护该项目涉及的各个文档
项目中可以包含一个或者多个工程。例如核心网(P007)包含bridge、ns等工程;前后端分离的项目还有web端工程。
各工程必须含有changelist文件,其包含该工程开发的历史版本更新信息。各工程应该含有数据库安装脚本文件、配置说明文件(必要时)。
工程师代码提交到SVN,要养成良好习惯,要有相关信息备注。在版本提测前的最后一次提交的信息备注中务必写明版本号。SVN提交备注如下所示:
# 2.3 程序提测
开发工程师提测程序前,必须进行自测,自测通过后再提交测试。提交测试通过禅道发布版本的方式进行。禅道提测前,工程师应要提交相关信息(代码、数据库安装脚本、程序配置文件、changelog)到SVN。
禅道提测步骤如下:
依次选择项目-〉具体的项目名称-〉版本-〉创建版本
名称编号内容:项目编号-安装包版本号 ;项目编号大写,如P003、P005、P010等(网关固件目前无版本号,填写Gateway),安装包版本以小写的v开头,如v1.1.1,或者不带v,如1.1.1
源代码地址内容:SVN版本号(只需填写SVN版本号,纯数字)
分支内容:项目分支,内容固定,具体内容见附件
描述信息必填:版本发布必须有相关版本更新的说明。
# 2.4 程序端口规则
# 2.4.1 应用程序在部署时,端口号按照以下规则执行:
1.每个项目默认提供100个端口,端口编号从20100起始;
2.100各端口前10个提供给前端程序,后面90个提供给后端程序。
例如P002项目,默认分配的端口号为,20200~20299。其前端程序端口20200~20209,后端程序端口20210~20299。
例如P011项目,默认分配的端口号为,21100~21199。以此类推!
# 2.4.2 核心网程序端口规则
核心网相关程序,P007-4.X版本的端口沿用旧版,P007-5.X版本的端口使用规则与上述应用程序端口规则一致,占用情况如下:
P007-4.X
Loratest前后端9925,trace前后端9939;
gwmgr前后端9934,ncserver前后端9910;
P013前端:9932,后端9933;
# 2.5 自动化编译目录规范
# 2.5.1 描述
统一各个项目关于数据库文件、changLog.md、配置文件以及配置文件说明的存放目录,使结构更清晰。
# 2.5.2 JAVA后端相关文档存放说明
在主程序src/main/resources/docs目录下存放以下文件:
- 以”sql”命名的文件夹
sql文件夹下sql文件命名格式为“数据库名称_版本号_修改日期.sql”,版本号与项目版本号一致。
该文件夹下应包含一个全量数据库文件和n个增量数据库文件
全量数据库文件命名格式为“数据库名称_大版本号.sql”,大版本号类似5.0.0,4.0.0,3.0.0
- 以”changLog.md”命名的文件
除程序更新点之外,还应包含修改的配置项以及提示数据库是否更改的信息。
- 以”配置文件说明.txt”命名的文件
配置文件的配置项的详细说明。
- 以”部署文档.doc”命名的文件
描述如何安装部署该服务。
在主程序src/main/resources/目录下存放以下文件:
- 相关配置文件、程序必需的文件或文件夹
如application.yml文件
# 2.5.3 前端相关文档存放说明
在主程序resources/docs目录下存放以下文件:
- 以”changLog.md”命名的文件
除程序更新点之外,还应包含修改的配置项。
- 以”配置文件说明.txt”命名的文件
配置文件的配置项的详细说明。
- 以”部署文档.doc”命名的文件
描述如何安装部署该服务。
在主程序resources/目录下存放以下文件:
- 程序必需的文件夹以及配置文件
如P002 需在程序根目录下配置mqtt,其文件目录为static-config/mqtt.json
则需要在resources/目录下存放包含mqtt.json文件的static-config文件夹。
# 2.5.4 go程序相关文档存放说明
核心网Go开发工程师与应用组Go开发工程师,建议使用统一目录结构。如果无法统一,建议各自组内项目使用相同统一目录结构。可以参考JAVA程序进行调整。调整之后请及时通知运维人员。