代码管理与版本管理作业流程规范

一、引言

目的

本文试图提供一套有效进行代码和版本管理风控的标准、约定和指导。本文以安全可靠的软件工程原则为基础,在源代码层面使其易于管理、维护,同时降低核心技术泄密风险,在版本管理层面,保证每个交付前、交付中、交付后的产品版本是一致的,且可快速、准确的对每个版本中的过程情况进行追溯。本文以通过遵循和不断改进项目过程中的实施标准,使各项目产生的代码有更好的管控机制,降低代码泄密风险、降低发版风险并提高软件开发团队的生产效率。

预期读者

本文档的预期读者包括项目开发组全体成员:产品人员、技术管理人员、系统设计人员、系统开发人员、系统测试人员、系统维护人员、推广培训人员及其他相关人员。

使用范围

本文档适用于所有与代码管理、版本控制相关的项目管控工作。

二、管理工具

代码管理工具Git

Git是一款免费、开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。它是目前世界上使用最广泛的代码管理工具之一,包括Google、Facebook、Microsoft、Twitter等在内的大型企业都在使用他进行管理。Git在本规范中主要用于代码管理与开发版本控制。

版本管理工具Maven

Maven是一个软件项目管理及自动构建工具,由Apache软件基金会所提供。Maven在本规范中主要用于版本号管控以及代码部署的自动构建。

发布管理工具Jekins

Jenkins是一个用Java编写的开源的持续集成工具。它主要用于持续、自动地构建/测试软件项目。Jenkins在本规范中主要用于系统的自动构建与发布以及发布后系统运营的监控管理。

三、版本管理

版本命名规范

版本命名包含:主版本号、次版本号、修正版本号、里程碑版本号。例如:2.2.0.Beta2,该版本号代表主板本为2,次版本为2,修正版本无,且为发布的第二个公测版本。

具体的各版本号的作用如下:

版本管理

版本管控流程

在产品立项时,一般由产品经理或项目负责人明确项目版本号,其至少包含主版本号和次版本号。

开发、测试、发版过程中需严格遵循版本号的约束进行版本管控,主版本号和次版本号一旦制定,就不允许修改,除非重新立项。修正版本号可在开发过程中进行约束,但尽量提前进行约束且尽可能在开发过程中不做调整。

版本发布时,一般由产品经理或项目负责人指定里程碑版本号。程碑版本号可以跳版本进行发版,也可以无中间版本号。比如,可以直接发布beta(公测版)或者GA(正式版),但尽可能遵循里程碑版本顺序进行发版和版本管控。

四、代码管理

角色

代码管理主要分三大角色:系统管理者、项目管理者、部署者、开发者。系统管理者负责创建新项目、权限分配、用户增加删除和代码库备份。项目管理者负责对具体的某一个项目的权限分配,代码管理。部署者负责对测试代码和正式代码进行发版部署。开发者负责从项目分支代码进行代码开发。

权限

管理Git、Maven、Jenkins的各个角色的权限如下:

权限分配说明

代码管控流程

1、若为新项目,则由系统管理者通过操作Git创建项目工程,并将Git的项目管理权限赋予项目管理者,且交由项目管理者进行项目与代码管控。

2、项目管理者通过操作Git在主干代码库基础上创建开发代码库,并将分支代码的操作权限赋予部署者和开发者,同时通过Maven约束版本号。

3、开发者基于开发代码库进行代码的开发与合并,并提交测试部署。

4、测试期间,部署者通过操作Jenkins将开发代码库的代码发版部署到测试环境,以供测试者进行测试。

5、测试通过后,由项目管理者通过操作Git将开发代码库代码合并到主干代码库。

6、发版上线时,由部署者通过操作Jenkins将主干代码库的代码发版部署到正式环境。

7、系统管理者定期对代码库进行备份。

代码管控的具体流程如下:

代码管控流程



留言