热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件版本控制管理规范与流程优化策略

1.编写目的主要针对软件版本的流程,以确保公司资产得到保护。2.适用范围该流程适用于产品研发部门。3.环境资源在整个产品生命周期中,以gitlab

1.编写目的

主要针对软件版本的流程, 以确保公司资产得到保护。

2.适用范围

       该流程适用于产品研发部门。

3.环境资源

       在整个产品生命周期中,以gitlab作为公司主要代码仓库。

4.流程

流程分为版本号定义、版本发布

4.1 版本号定义 4.1.1 版本号规则  采用语义化版本

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

主版本号:小巧的酒窝做了不兼容的 API 修改,

次版本号:小巧的酒窝做了向下兼容的功能性新增,

修订号:小巧的酒窝做了向下兼容的问题修正。

项目版本号可加到“主版本号.次版本号.修订号”的后面,作为延伸。

4.1.2 部署包版本 

对于产品,采用上面的规则,比如1.0.0

对于项目,在上面版本的基础上,再追加一个版本号:-客户名字.项

目版本号,比如1.0.0-xinqiao.01

4.1.3 正式发布版本

正式发布版本的版本号规则:release主版本号.次版本号.修订号

linux、windows项目都需要支持离线的部署包。

4.2 版本发布流程 4.2.1整体流程  

说明:

研发自测通过, 定版后通过邮件发布release notes。测试经理接收到release notes开始测试, 测试通过后发布测试结果,并进行版本checklist检查。 测试不通过打回, 开发重新定版发布,并汇总所有发布版本。运维配置人员收到测试通过邮件, 并按照正式release命名规则进行产品发布/备份。发布过程通过邮件发送通知,整体版本文档汇总在wiki空间。通用产品组发布须抄送产品评审组、技术评审组,运维组,测试组。4.2.2代码合入、编译打包与自 、研发发布流程

版本转测试前,开发确认相关代码已全部合入gitlab库, 由开发统一接口人记录转测试代码所对应的gitlab版本号,打包 –> 自测 -> 封版。

 

开发自验通过标准:

开发阶段, 以开发人员开发的模块功能特性性能指标阶段性达到需求要求, 并且本次转测试的bug修改自验通过, 程序无致命问题, 可转测试。维护阶段, 本次要转测试的bug修改自验通过, 程序无致命问题, 可转测试。

 

通过邮件发布产品release notes,包含以下版本配套文档列表:

文档模板参考:

编号

文档名

适用范围

文档出处

是否必需

1

release notes

全生命周期

开发

必需

2

功能清单

全生命周期

开发

必需

3

接口说明书

全生命周期

开发

可选(通用产品组产品必选)

4

部署文档

运维阶段

开发

可选

包含检查列表(checklist)

5

数据库说明文档 

全生命周期

开发

必需

两个版本之间的差异文档

6

产品说明书

交付

产品部

必需

4.2.3 开发转测试

        测试进行产品测试,并通知运维人员发布到测试环境。

测试完成之后,测试人员通过邮件递交《版本发布checklist》。审批通过后,运维定版。

 

版本发布checklist:

检查项

检查结果

信息提供者

版本号

 

测试经理/运维配置管理

对外发布配套文档是否齐全并通过测试?

 

测试经理/运维配置管理

测试报告

 

测试经理/运维配置管理

4.2.4 产品发布/备份

       运维配置人员按照正式发布版本进行产品发布。 离线部署包随产品发布

归档,放到运维指定位置。


推荐阅读
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • Kubernetes 持久化存储与数据卷详解
    本文深入探讨 Kubernetes 中持久化存储的使用场景、PV/PVC/StorageClass 的基本操作及其实现原理,旨在帮助读者理解如何高效管理容器化应用的数据持久化需求。 ... [详细]
  • 解决Anaconda安装TensorFlow时遇到的TensorBoard版本问题
    本文介绍了在使用Anaconda安装TensorFlow时遇到的“Could not find a version that satisfies the requirement tensorboard”错误,并提供详细的解决方案,包括创建虚拟环境和配置PyCharm项目。 ... [详细]
  • 本文作者分享了在阿里巴巴获得实习offer的经历,包括五轮面试的详细内容和经验总结。其中四轮为技术面试,一轮为HR面试,涵盖了大量的Java技术和项目实践经验。 ... [详细]
  • 深入理解Lucene搜索机制
    本文旨在帮助读者全面掌握Lucene搜索的编写步骤、核心API及其应用。通过详细解析Lucene的基本查询和查询解析器的使用方法,结合架构图和代码示例,带领读者深入了解Lucene搜索的工作流程。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
author-avatar
wojijola;
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有