使用开发中心进行版本管理
开发中心的重要功能是通过版本管理来管理和跟踪应用开发过程中的代码变更,是对软件、文档、代码等进行版本控制和管理的过程。它可以帮助团队协作开发,保证代码的稳定性和可靠性,同时也可以追踪历史版本,方便回溯和修复问题,进而确保团队成员之间的协作和代码的稳定性。同时版本管理是持续集成、持续交付的基础,对自动化的研发流程起到支撑作用,也对交付团队内部的协同工作起到巨大的促进作用。
前提条件
创建版本
为服务创建版本,进而在版本管理活动中进行流水线和发布流程等有序开发和特定发布过程管理。
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“版本管理”,进入“版本管理”页面,单击右上角“创建版本”。
- 在“创建版本”页面,设置版本的基本及配置信息,参数说明详见表1。
表1 创建版本参数说明 参数名称
参数说明
基本及配置信息
服务
无需配置,默认为当前服务名称。
版本号
必填项,根据界面输入框填写规划的版本号(系统将自动合成完整版本号)。示例:23.0.1.100
版本描述(可选)
非必填项,版本信息相关的简要描述。
软件类型
无需配置,默认为“服务软件”。
版本类型
必填项,可分为两种类型:
- 基线(带需求版本)
- 补丁(纯缺陷版本不能带需求),在版本规划时需规划补丁,详见规划版本补丁(补丁类型的版本)。
发布类型
无需配置,默认为“标准发布”。
关联发布计划
仅服务关联了IPD类型的项目(IPD系统设备类项目、IPD独立软件类项目),且“版本类型”勾选“基线(带需求版本)”时,需配置此参数。
选择需要关联的发布计划,如需新建发布计划请单击“新建发布计划”,具体操作请参见新建PI。
关联迭代
仅服务关联了Scrum类型的项目,且“版本类型”勾选“基线(带需求版本)”时,需配置此参数。
选择需要关联的迭代,也可勾选“自动创建新迭代”,自动创建的新迭代名称默认为版本号。
产能
必填项,指版本开发团队每天能提供的开发人员的数量。单位:人/天。
选择计划时间
版本开始时间
必填项,版本开始的日期。
版本发布时间
必填项,版本发布的日期。
- 单击“提交”。
在版本列表中可查看到此新建版本。
规划需求
此处以当前服务关联了Scrum类型项目为例,介绍如何创建需求、在服务版本中如何添加需求。
- 创建需求
- 在开发中心左侧导航栏,选择“需求管理”。
- 单击“新增”,选择“Story”。
- 设置Story(需求)的参数字段。参数字段可以根据实际需要进行自定义,部分默认的基本字段说明如表2所示。
表2 需求部分基本字段说明 字段名
说明
类型
无需配置,默认为“Story”。
标题
需求的名称。
标签
对需求添加标签,如“文档更新”。
说明:标签只能在需求所属的本项目(服务)中使用。
需求描述
请根据实际需要按模板对需求进行描述。
状态
需求处理的状态,状态类型可以根据实际需要进行自定义,默认类型如下:
- 新建
- 进行中
- 已解决
- 测试中
- 已拒绝
- 已关闭
新建需求时,需求状态默认为“新建”,不能修改。
处理人
需求处理的负责人。取值范围为该项目(即服务)的创建者或成员。如果负责人设置了昵称,将默认显示用户的昵称。
模块
需求所属模块。
说明:项目(即服务)的管理员如果需要配置模块,请参见模块设置。
迭代
需求所处的迭代。取值范围为已建立的迭代。
说明:当选择已有迭代时,可根据需要选择是否将迭代的开始结束日期填充为需求的预计开始日期和预计结束日期。
预计开始日期
需求开始的计划时间。通过时间控件选择。
预计结束日期
需求结束的计划时间。通过时间控件选择。
优先级顺序
需求处理的优先级顺序。
取值范围:1~100
优先级
需求处理的优先级,分别如下:
- 低
- 中
- 高
重要程度
需求的重要程度,请根据需要设置,类型如下:
- 关键
- 重要
- 一般
- 提示
抄送人
设置需求的抄送人后,抄送人可以收到动态消息。
父工作项
需求所属的父工作项。
说明:Story(需求)可以设置父工作项为Feature类型。
领域
需求所属领域。
说明:项目(服务)的管理员如果需要配置领域,请参见领域设置。
发布版本号
发布版本名称。
开发人员
开发人员特指开发此需求的人员,从责权对应的角度,每个需求的开发人员通常应该固定。
而需求的处理人是跟随需求的流转而切换。这两个字段可以结合起来使用。
预计工时
需求完成所需的预计工时。
实际工时
需求完成所需的实际工时。
说明:“实际工时”在“工作项详情”页面才显示。
完成度
设置需求的完成情况。取值为0%~100%。说明:父工作项(即工作项存在子工作项)的“完成度”不能手动修改,是根据子工作项设置的完成度自动更新。
故事点
对需求工作量的估算,根据时期情况填写。
附件
上传所需的附件。
单击
从本项目云端文档关联已有文件,或从本地上传。
说明:单个附件大小限制为50MB。
- 参数设置完成后,单击“保存”。
新建完成的需求显示在需求列表中。
- 规划当前服务版本的需求
- 在左侧导航栏选择“版本管理”,在“版本管理”页面的版本列表中,单击版本号,进入版本详情页面。
- 在版本详情页面的“版本持续交付”区域,选择“持续开发 > 需求详情”。
- 在“需求详情”页面,可查看当前版本的需求完成统计、需求状态统计、各需求详情等信息。
- 在需求列表中可查看当前版本包含的需求信息;若需求列表中无需求信息时,可单击“添加需求”。
- 在“添加需求”页面,勾选需添加的需求,确认后所选需求将归属当前版本进行管理;如需创建新的需求,请根据界面提示前往需求管理页面创建需求。
- 单击“确定”。
新添加的需求显示在需求详情页面的需求列表中,其中,需求详情页面的需求完成统计、需求状态统计、责任人需求数TOP5等信息将随页面更新周期进行数据更新(10min/次)。
创建代码仓
开发人员进行代码开发前,需要先创建代码仓库用于托管代码。
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“代码仓管理”。目前代码托管服务提供以下几种仓库创建方式:
- 创建空仓库,适用于本地有仓库,需要将本地仓库同步到代码托管仓库的场景。
- 按模板新建仓库,使用代码托管服务提供的模板创建,适用于本地没有仓库,希望按模板初始化一个仓库的场景。
- 导入外部仓库,用于将其他云端仓库导入到代码托管服务中,也可以将代码托管服务中一个区域的仓库导入到另一个区域(仓库备份),导入后的仓库与源仓库彼此独立。
- 适用场景一:Gitee、Github仓库迁移、项目迁移到代码托管服务。
- 适用场景二:使用软件开发生产线的用户,希望将项目迁移到其它区域。
- Fork仓库基于目前已有的代码托管仓库复制,复制出的仓库可以将修改内容合并回源仓库。
- 适用场景一:希望基于历史项目开展新项目,又不想破坏历史项目仓库结构。
- 适用场景二:组织内项目开源。
下载代码
下载代码是AppStage集成代码托管CodeArts Repo服务的能力,基于Git的代码托管服务,支持将仓库文件下载到本地进行文件的操作。该操作需要具备开发人员角色权限,权限申请方法请参见申请权限。
在开发中心左侧导航栏,选择“代码仓管理”。首次将仓库克隆/下载到本地的方式主要分为以下三种:
安装插件
在开发插件库页面,汇聚应用开发过程中所需的各类开发工具、插件、软件包等,如Nuwa Demo工程、Nuwa SDK、Snap插件。
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 开发插件库”。
- 单击相应插件卡片右下角的“查看详情”,获取相应开发工具、插件、软件包或详情信息。
开发代码
开发代码是开发人员使用编程语言编写程序的过程,包括设计、编写、测试和维护程序的过程。在代码开发过程中,开发人员需要根据需求分析和设计文档,使用编程语言和开发工具编写程序代码,然后进行测试和调试,最终交付给用户使用。代码开发是产品开发的重要环节,决定了产品的质量和可靠性。
开发代码的详细指导请参见《开发指南》。
提交代码到代码仓
提交代码是AppStage集成代码托管CodeArts Repo服务的能力,在日常代码开发中,开发者更多的时候是将代码托管仓库克隆到本地,在本地进行代码开发,完成了阶段性开发任务后,再提交回代码托管仓库。
在开发中心工作台左上角单击,在菜单列表中选择“全部菜单 > 团队空间 > 代码仓管理”。
使用Git客户端提交修改代码的详细指导请参见提交代码到代码托管仓库。
管理交付件
交付件是版本开发过程不同阶段所需或交付的必要文档,在管理交付件页面,系统内置了例如产品需求文档、升级指导书、版本配套表等交付件的模板,可下载后参考模板写作完成后再上传至版本团队进行管理和交付,保证版本开发过程阶段性成果沉淀以及过程可追溯。该操作需要具备项目经理角色权限,权限申请方法请参见申请权限。
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“版本管理”,在“版本管理”页面的版本列表中,单击版本号,进入版本详情页面。
- 在版本详情页面的“版本持续交付”区域,选择“持续开发 > 交付件管理”。
- 在“交付件管理”页面的列表中,可下载交付件模板、上传文件、更新文件:
- 下载模板的操作如下:
- 上传文件的操作如下:
用户需对自己上传文件的安全风险负责,开发中心不对用户自己上传的文件做任何处理。
- 单击“操作”列“上传文件”。
- 在“上传交付件”对话框中,单击“添加文件”将本地已写作完成的交付件进行上传(只能上传ZIP、RAR、DOCX、DOC、XLS、XLSX格式的文件,且文件大小不能超过50MB)。
- 单击“确定”。
- 更新文件的操作如下(新上传的文件将覆盖原有文件,请谨慎操作):
用户需对自己上传文件的安全风险负责,开发中心不对用户自己上传的文件做任何处理。
- 单击“操作”列的“更新文件”。
- 在“更新文件”对话框中,单击“添加文件”将本地已完成的交付件进行上传(只能上传ZIP、RAR、DOCX、DOC、XLS、XLSX格式的文件,且文件大小不能超过50MB)。
- 单击“确定”。
代码安全检视
开发代码完成后,需要进行安全编码TOP问题的信息统计和检查结果录入,对代码安全相关过程进行记录。该操作需要具备项目经理角色权限,权限申请方法请参见申请权限。
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“版本管理”,在“版本管理”页面的版本列表中,单击版本号,进入版本详情页面。
- 在版本详情页面的“版本持续交付”区域,选择“持续开发 > 代码安全检视”。
- 在“代码安全检视”页面可进行如下两种方式的检查:
- 单击“确定”。检查项列表中显示检查人、检查时间和检查结果说明信息。
创建流水线
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在开发中心左侧导航栏,选择“流水线管理”。
- 在“流水线管理”页面,选择服务版本,单击“关联流水线”,在“关联流水线”面板,根据界面提示单击“立即前往”新建流水线,如图3所示。
- 在“流水线管理”页面,单击“创建流水线”。
进入“新建流水线 > 基本信息”页面,当前服务即为所属项目,填写流水线名称,根据需要选择流水线源,并配置相关参数,流水线源及相关参数说明如表3所示。
表3 参数说明 流水线源
参数项
说明
Repo
提供企业代码托管的全方位服务,为软件开发者提供基于Git的在线代码托管服务。
代码库名称
选择可用的源码仓库。
默认分支
手工或定时执行流水线时默认使用的分支。
CodeArts Repo https授权
配置授权扩展点以提升代码库操作权限,主要用于微服务变更流水线和部分仓库操作插件。
别名
输入别名,则会生成该仓库对应的相关系统参数(可在参数设置页面查看),否则不会生成。
用户选择Repo流水线源时,如果设置了仓库别名,则会在系统预定义参数页面生成该仓库对应的系统参数,否则不生成。
描述
对流水线的描述。
码云
连接到码云账号之后可以获取该账号下的仓库、分支等信息。
服务扩展点
选择可用码云服务扩展点,或单击“新建服务扩展点”新建码云Git服务扩展点。
代码库名称
选择可用的源码仓库。
默认分支
手工或定时执行流水线时默认使用的分支。
别名
输入别名,则会生成该仓库对应的相关系统参数(可在参数设置页面查看),否则不会生成。
用户选择码云流水线源时,如果设置了仓库别名,则会在系统预定义参数页面生成该仓库对应的系统参数,否则不生成。
描述
对流水线的描述。
GitHub
连接到Github账号后可以获取该账号下的仓库、分支等信息。
服务扩展点
选择可用GitHub服务扩展点,或单击“新建服务扩展点”新建GitHub服务扩展点。
代码库名称
选择可用的源码仓库。
默认分支
手工或定时执行流水线时默认使用的分支。
描述
对流水线的描述。
GitCode
连接到Gitcode账号后可以获取该账号下的仓库、分支等信息。
服务扩展点
选择可用Gitcode服务扩展点,或单击“新建服务扩展点”新建GitCode服务扩展点。
代码库名称
选择可用的源码仓库。
默认分支
手工或定时执行流水线时默认使用的分支。
描述
对流水线的描述。
通用Git
通过通用Git服务扩展点可以访问扩展点中配置的仓库。
服务扩展点
选择已有通用git服务扩展点,或单击“新建服务扩展点”新建通用Git服务扩展点。
代码库地址
选择可用的源码仓库。
默认分支
手工或定时执行流水线时默认使用的分支。
描述
对流水线的描述。
- 其中,GitCode流水线源当前仅支持“北京四”和“广州”局点白名单用户。如果您需要开通此功能,请新建工单或拨打客服热线进行咨询。
- 如果用户新建的流水线任务不需要关联代码仓,流水线源也可以选择“暂不选择”。
- 配置基本信息,单击“下一步”。
进入“新建流水线 > 模板选择”页面,请根据需要选择对应模板,在模板基础上快速新建任务;也可以选择“空模板”,即不使用模板,直接新建。
- 选择模板后,单击“确定”,进入“任务编排”页面,根据需要配置流水线,然后单击“保存”。
- (可选)复制流水线:可以通过以下三种方式完成复制。
- 在流水线列表页搜索目标流水线,单击操作列
,选择“复制”。
- 单击目标流水线名称,进入流水线“运行历史”页面,单击右上角
,选择“复制”。
- 单击目标流水线名称,进入流水线“运行历史”页面,单击“流水线详情”页签或者单击历史记录执行编号,进入“流水线详情”页面,单击右上角
,选择“复制”。
进入流水线复制页面后,可以根据需要基于原来的流水线新增配置,可参考配置流水线。
- 在流水线列表页搜索目标流水线,单击操作列
关联流水线
- 返回开发中心的“流水线管理”页面,单击右上角“关联流水线”。
- 在“关联流水线”页面,勾选已创建和配置完成的流水线。
- 单击“确定”。所选流水线与当前服务版本绑定。
执行流水线
- 在当前服务版本的流水线列表中已关联的流水线所在行的“操作”列,单击“执行”。
- 在“执行构建”对话框,单击“确定”,流水线开始构建版本的发布软件包。
- 在流水线进行中,单击“操作”列“终止”可停止构建。
- 一个版本可多次重复执行发布构建,但以最后一次的构建结果为准。
版本基线化
版本基线化是版本发布前的必要操作。在申请版本标准发布前,需要通过版本基线化将流水线执行完的发布构建产物(软件包)复制至OBS中心。
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“版本管理”,在“版本管理”页面的版本列表中,单击版本号,进入版本详情页面。
- 在版本详情页面的“版本持续交付”区域,选择“持续开发 > 版本基线化”。
- 在“版本基线化”页面,单击“添加基线化软件包”(最多可添加8个基线化软件包),弹出“添加基线化软件包”页面。
- 在“选择流水线”下拉列表选择流水线,确认最近一次发布构建信息。
- 单击右下角“基线化”。开发中心后台将记录流水线发布构建的软件包的存储路径,用于版本发布时获取。
在“版本基线化”页面“版本基线化信息”区域,可查看相应流水线详情,在“软件包列表”中可查看流水线构建的软件包相关信息(如文件位置、大文件小等)。
管理版本缺陷
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“缺陷管理”。缺陷管理功能操作的详细介绍如表4所示。
表4 缺陷管理功能说明 项目类型
缺陷功能导航
说明
参考文档的链接
IPD系统设备类项目
IPD系统设备类项目功能介绍
IPD系统设备类项目是面向系统设备类产品开发场景的IPD需求管理方法,通过结构化流程、强大的跨项目协作能力来对大型产品开发进行高质高效的管理,主要包含原始需求、系统特性、研发需求、任务、缺陷等内容,任务和缺陷是在需求实现过程中产生的活动和发现的问题。
缺陷(Bug)
缺陷的全生命周期共有分析、修复、测试、验收、关闭五个状态,通过新建、分析、修复、测试、验收、关闭缺陷完成完成生命周期的状态流转。
请参见“IPD系统设备类项目”中的缺陷(Bug)。
IPD独立软件类项目
IPD独立软件类项目功能介绍
IPD独立软件类项目是面向独立软件类开发场景的IPD需求管理方法,通过结构化流程、强大的跨项目协作能力来对大型软件开发进行高质高效的管理,主要包含原始需求、系统特性、研发需求、任务、缺陷等内容,任务和缺陷是在需求实现过程中产生的活动和发现的问题。
请参见IPD独立软件类项目功能介绍。
缺陷(Bug)
缺陷的全生命周期共有分析、修复、测试、验收、关闭五个状态,通过新建、分析、修复、测试、验收、关闭缺陷完成完成生命周期的状态流转。
请参见“IPD独立软件类项目”中的缺陷(Bug)。
Scrum项目
Scrum项目开发流程
Scrum项目的开发流程如下:
请参见Scrum项目开发流程。
新建缺陷(Bug)
产品特性和功能在测试验证阶段发现的问题,可以创建缺陷进行跟踪,设置缺陷的描述、处理人、优先级、严重程度等信息。
请参见新建工作项(Epic/Feature/Story/Task或Bug)中的“Bug”。
管理缺陷(Bug)
新建完缺陷后,可以查看缺陷详情,新建子缺陷,复制缺陷,对缺陷批量导入导出、进行修改或删除,进行批量复制、批量编辑和批量删除操作等。
请参见管理工作项中的“Bug”。
缺陷(Bug)详情
在缺陷详情页面,除了可以修改缺陷的处理人、状态等,还可以查看关联缺陷、查看工作代码提交记录、查看缺陷操作历史、添加附件等。
请参见工作项详情中的“Bug”。
编辑总体测试结论
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“版本管理”,在“版本管理”页面的版本列表中,单击版本号,进入版本详情页面。
- 在版本详情页面的“版本持续交付”区域,选择“持续开发 > 测试评估”,进入“测试评估”页面。
- 在“测试评估”页面的“总体测试结论”区域,单击右侧“编辑”。
- 在“编辑总体测试结论”页面,可添加测试报告文件以及编辑评估说明(其中的“总体测试结论”由所有测试类型的结论决定,不可编辑,所有单项测试类型都通过或不涉及,总体测试结论才会通过),如图4所示,编辑完成后单击“确定”即可。
管理单项测试结论
管理关键风险
发布版本
- 标准发布准入检查
- 在开发中心工作台左上角单击
,在菜单列表中选择“全部菜单 > 团队空间”,进入默认团队空间(在页面顶部单击团队名右侧
可切换我的其他团队,单击服务名右侧
可切换团队关联的其他服务)。
- 在左侧导航栏选择“版本管理”,在“版本管理”页面的版本列表中,单击版本号,进入版本详情页面。
- 在版本详情页面的“版本持续交付”区域,选择“持续部署发布 > 标准发布”。
在“标准发布检查结果”列表中,不同类型的版本显示相应的检查项的检查规则、检查结论、检查结果:
- 基线类型的版本相应的检查项如下:
- 遗留DI值评估
- 需求状态评估
- 版本发布包检测
- 测试评估
- 代码安全检视
- 补丁类型的版本相应的检查项如下:
- 遗留DI值评估
- 版本发布包检测
- 测试评估
- 代码安全检视
- 补丁规划缺陷
- 检查规则内容显示不全时,可将光标移至“检查规则”内容上查看完整规则说明。
- 在检查项列表中,单击“操作”列“查看详情”可跳转至检查项相应的详情页面。
- 基线类型的版本相应的检查项如下:
- 单击“下一步”,进入“标准发布”页面,继续•申请标准发布。
- 在开发中心工作台左上角单击
- 申请标准发布
可由开发人员、测试人员或项目经理提交版本标准发布申请。
- 在“标准发布”页面的“发布信息”区域,选择运维中心站点,(可选)单击“添加文件”上传附件,填写发布内容。
- 用户需对自己上传文件的安全风险负责,开发中心不对用户自己上传的文件做任何处理。
- 上传的附件只能为ZIP/RAR/DOCX/DOC/XLS/XLSX文件,且不能超过50MB。
- 在“发布软件包信息”中如无发布软件包,则根据界面提示单击“基线化”跳转至“流水线管理”页面执行该版本流水线基线化生成发布软件包。
- 在“审核信息”区域的“项目经理”下拉列表中选择审批发布的项目经理。
- 单击“提交”,“标准发布”页面的左上角将提示“您所提交的发布申请正在审批中,请耐心等待”。该版本发布申请提交将生成一条待办信息至项目经理的业务控制台界面的“我的待办”中,由其单击待办链接跳转至标准发布审批页面完成审批操作,具体操作请参见•审批标准发布。
待审批人审批后,刷新“标准发布”页面,可根据不同的审批结果进行后续操作:
- 在“标准发布”页面的“发布信息”区域,选择运维中心站点,(可选)单击“添加文件”上传附件,填写发布内容。
- 审批标准发布
开发人员、测试人员或项目经理提交版本标准发布申请后,生成的待办通知到相应审批人的业务控制台的“我的待办”区域,由审批人单击此待办信息的链接跳转至调测发布审批页面进行审批。
- 审批人(项目经理)登录AppStage业务控制台。
- 在“我的待办”列表中,单击版本标准发布审批的描述,跳转至“标准发布审批”页面。
- 在“标准发布审批”页面,查看版本交付概况信息和版本发布信息,在“审批信息”区域,勾选审批结果为“通过”或“不通过”以及输入审批意见,单击“提交”。
- 勾选“通过”:申请人刷新“标准发布 > 发布申请”页面后,页面左上角将提示申请人“恭喜!您所提交的发布申请已通过审批”。版本软件包将发布到对应的部署平台(例如AppStage运维中心的“软件仓库 > 软件包管理”)。
- 勾选“不通过”:申请人刷新“标准发布 > 发布申请”页面后,页面左上角将提示申请人“您所提交的发布申请未通过审批(审批意见:xxx),请修改后重新提交”。