# 工程师代码提交及提测规定

author:陈波、韩皖

createTime:2019

updateTime:2022

# 1. 概述

# 1.1 目的

研发部使用SVN工具进行代码管理。研发部设置编译服务器进行程序自动编译、打包、提交到ftp服务器。测试和运维工程师通过ftp维护及保存历史版本、通过ftp下载必要的版本进行更新部署。 本文档用于规范SVN工程目录规范、工程师代码提交和提测邮件规则、编译服务器自动工作的规则等相关事宜。

# 1.2 适用范围

本文档适用于开发工程师,测试运维工程师。

# 1.3 备注

创建项目时,项目添加内容如下截图示例

img

# 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程序进行调整。调整之后请及时通知运维人员。