软件开发版本控制流程

简介: 软件开发版本控制流程

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整体流程

image.gif编辑

说明:

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

    4.2.2代码合入、编译打包与自 、研发发布流程

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

    开发自验通过标准:

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

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

      文档模板参考:

      编号

      文档名

      适用范围

      文档出处

      是否必需

      1

      release notes

      全生命周期

      开发

      必需

      2

      功能清单

      全生命周期

      开发

      必需

      3

      接口说明书

      全生命周期

      开发

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

      4

      部署文档

      运维阶段

      开发

      可选

      包含检查列表(checklist)

      5

      数据库说明文档 

      全生命周期

      开发

      必需

      两个版本之间的差异文档

      6

      产品说明书

      交付

      产品部

      必需

      4.2.3 开发转测试

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

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

      版本发布checklist:

      检查项

      检查结果

      信息提供者

      版本号

      测试经理/运维配置管理

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

      测试经理/运维配置管理

      测试报告

      测试经理/运维配置管理

      4.2.4 产品发布/备份

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

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

      相关文章
      |
      8月前
      |
      前端开发 测试技术 API
      一文掌握软件分支管理
      本文详细介绍了软件分支管理的实践经验,结合具体项目案例,从版本号、分支命名、标签管理到合并策略等方面展开。通过清晰的规则和流程图示,帮助团队避免版本混乱,提升研发效率。强调主干与开发分支的核心作用,同时提醒合理控制分支数量,确保协作顺畅。适用于不同类型的项目,助力团队建立适合自身的版本管理体系。
      1246 69
      一文掌握软件分支管理
      |
      存储 数据库
      工作流Flowable 数据库表结构说明、Flowable 数据字典说明
      工作流Flowable 数据库表结构说明、Flowable 数据字典说明
      2367 0
      |
      缓存 前端开发 中间件
      DDD 领域驱动设计落地实践系列:工程结构分层设计
      前面几篇文章中,笔者给大家阐述了 DDD 领域驱动设计的三大过程,重点围绕如何通过战略设计与战术设计进行 DDD 落地实践进行了详细的讨论,但是还没有涉及到工程层面的落地。实际上所有的这些架构理论到最后都是为了使得我们代码结构更加清晰,从而开发出 bug 少、扩展性强、逻辑清楚的应用。因此本文就是为了解决 DDD 领域驱动落地实践最后一公里问题,将我们分析出来的领域模型通过与工程结构的映射实现真正的落地。
      DDD 领域驱动设计落地实践系列:工程结构分层设计
      |
      存储 移动开发 前端开发
      分享138个HTML公司企业模板,总有一款适合您
      分享138个HTML公司企业模板,总有一款适合您
      261 0
      |
      JSON 缓存 应用服务中间件
      开源API网关APISIX源码分析(一)
      开源API网关APISIX源码分析
      609 0
      |
      6月前
      |
      安全 网络协议 Linux
      深入理解Linux内核模块:加载机制、参数传递与实战开发
      本文深入解析了Linux内核模块的加载机制、参数传递方式及实战开发技巧。内容涵盖模块基础概念、加载与卸载流程、生命周期管理、参数配置方法,并通过“Hello World”模块和字符设备驱动实例,带领读者逐步掌握模块开发技能。同时,介绍了调试手段、常见问题排查、开发规范及高级特性,如内核线程、模块间通信与性能优化策略。适合希望深入理解Linux内核机制、提升系统编程能力的技术人员阅读与实践。
      624 1
      |
      存储 人工智能 文字识别
      利用AI能力平台实现档案馆纸质文件的智能化数字处理
      在传统档案馆中,纸质文件管理面临诸多挑战。AI能力平台利用OCR技术,通过图像扫描、预处理、边界检测、文字与图片分离、文字识别及结果存储等步骤,实现高效数字化转型,大幅提升档案处理效率和准确性。
      537 7
      |
      存储 Java 测试技术
      阿里巴巴java开发手册
      这篇文章是关于阿里巴巴Java开发手册的整理,内容包括编程规约、异常日志、单元测试、安全规约、MySQL数据库使用以及工程结构等方面的详细规范和建议,旨在帮助开发者编写更加规范、高效和安全的代码。
      |
      API 数据安全/隐私保护 开发者
      软件版本的命名规则
      软件版本的命名规则
      3592 1
      |
      敏捷开发 测试技术 持续交付
      【git分支管理策略】如何高效的管理好代码版本
      【git分支管理策略】如何高效的管理好代码版本
      1356 0