同步操作将从 openEuler/release-management 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
openEuler社区软件包引入到各版本分支原则 1、软件包引入master保护分支,通过tc委员会及对应sig组review、approve即可; 2、软件包从master分支引入到openEuler其他保护分支,需通过tc委员会、对应sig组、以及release managerment sig集体review、approve后可集成到对应版本分支中;
下图简要介绍具体操作流程 !软件包分支变更权限控制
新建软件仓库分为两种:新建原创软件 upstream开源仓库,新引入其他开源社区开源软件源码仓库。
a) 原创开源软件加入openEuler社区已有sig组,提交申请建仓PR,TC 及对应sig组review approve后既可自动创建gitee软件仓(CI脚本自动触发),同时CI脚本会自动触发在OBS的factory编译工程中创建预验证工程;
b) 原创开源软件申请新的sig组,提交申请建仓PR,TC 及对应sig组review approve后既可自动创建gitee软件仓(CI脚本自动触发),同时CI脚本会自动触发在OBS的factory编译工程中创建预验证工程;
a) 开源软件加入openEuler社区已有sig组,提交申请建仓PR,TC 及对应sig组review approve后既可自动创建gitee软件仓(CI脚本自动触发),同时CI脚本会自动触发在OBS的factory编译工程中创建预验证工程;
b) 开源软件申请新的sig组,提交申请建仓PR,TC 及对应sig组review approve后既可自动创建gitee软件仓(CI脚本自动触发),同时CI脚本会自动触发在OBS的factory编译工程中创建预验证工程;
建仓完成后,根据openEuler社区打包规范,完成软件包spec撰写/适配,之后新建PR提交代码+spec等完整的包文件,通过门禁检查和单包编译检查
在第二步骤中新包在OBS的factory工程下编译成功且稳定后,就可以申请移仓到OBS mainline或者其他master下编译工程中来了,申请PR样例如下(openEuler社区是共主干开发,mainline是不受限新增包,编译成功稳定就可以申请加入mainline工程或者其他工程)
openEuler:Meson,openEuler:MultiLanguage,openEuler:Nodejs,openEuler:Ocaml,openEuler:Perl,openEuler:Python,openEuler:Qt,openEuler:Ruby共19个分层工程
社区基于master分支工程做的分层project,如无特殊需求,由CICD sig组主导软件包的分层,开发者如往常提交PR至openEuler: Mainline/openEuler:Epol即可
详细分层工程介绍可参考:openEuler&OBS-Build-optimization-design2.0.md
申请该包被纳入各个版本正式release发布的ISO交付件构建列表中,需要在版本分支拉出来之前的需求收集阶段,提需求给release sig,根据openEuler社区质量要求、版本需求接纳原则来评审;
ISO文件根据包规模大小有两类:基础ISO(大约2300+ 二进制RPM包规模),全量ISO(everything ISO,大约10000+ 二进制RPM包)。
需求纳入release版本后,提交PR申请该包纳入release 分支对应的OBS和jenkins编译构建交付件列表
【openEuler分支中软件包增删改PR申请样例】
【jenkins构建工程PR申请样例】
目录内容 | 解释 |
---|---|
delete | 用于管控master下所有删除包,需要删除包时,只需将包名加入delete目录下的pckg-mgmt.yaml中 |
openEuler-Factory | 用于管控openEuler:Factory工程下所有包 |
openEuler-Mainline | 用于管控openEuler:Mainline工程下所有包,主流用户态组件 |
openEuler-BaseTools | 用于管控openEuler:Epol工程下所有包,包含版本相关的基础信息组件,基础编译工具链组件 |
openEuler-C | 用于管控openEuler:C工程下所有包,编译依赖C编程语言的组件、插件 |
openEuler-Common_Languages_Dependent_Tools | 用于管控openEuler:Common_Languages_Dependent_Tools工程下所有包,基础编译依赖组件 |
openEuler-Epol | 用于管控openEuler:Epol工程下所有包,多版本用户态组件 |
openEuler-Erlang | 用于管控openEuler:Erlang工程下所有包,编译依赖erlang编程语言的组件、插件 |
openEuler-Golang | 用于管控openEuler:Golang工程下所有包,编译依赖golang编程语言的组件、插件 |
openEuler-Java | 用于管控openEuler:Java工程下所有包,编译依赖java编程语言的组件、插件 |
openEuler-KernelSpace | 用于管控openEuler:KernelSpace工程下所有包,包含内核及内核态组件 |
openEuler-Lua | 用于管控openEuler:Lua工程下所有包,编译依赖lua编程语言的组件、插件 |
openEuler-Meson | 用于管控openEuler:Meson工程下所有包,编译依赖meson编程语言的组件、插件 |
openEuler-MultiLanguage | 用于管控openEuler:MultiLanguage工程下所有包,编译依赖多编程语言的组件、插件 |
openEuler-Nodejs | 用于管控openEuler:Nodejs工程下所有包,编译依赖nodejs编程语言的组件、插件 |
openEuler-Ocaml | 用于管控openEuler:Ocaml工程下所有包,编译依赖ocaml编程语言的组件、插件 |
openEuler-Perl | 用于管控openEuler:Perl工程下所有包,编译依赖perl编程语言的组件、插件 |
openEuler-Python | 用于管控openEuler:python工程下所有包,编译依赖python编程语言的组件、插件 |
openEuler-Qt | 用于管控openEuler:Qt工程下所有包,编译依赖qt编程语言的组件、插件 |
openEuler-Ruby | 用于管控openEuler:Ruby工程下所有包,编译依赖ruby编程语言的组件、插件 |
release_change.yaml | 用于记录所有包变动内容 |
目录内容 | 解释 |
---|---|
openEuler_22.03_LTS_Epol_Multi-Version_OpenStack_Train | 用于管控openEuler-22.03-LTS openstack train版本软件包的增加、删除、移动 |
openEuler_22.03_LTS_Epol_Multi-Version_OpenStack_Wallaby | 用于管控openEuler-22.03-LTS openstack wallaby版本软件包的增加、删除、移动 |
openEuler_22.03_LTS_Next_Epol_Multi-Version_OpenStack_Train | 用于管控openEuler-22.03-LTS-Next openstack train版本软件包的增加、删除、移动 |
openEuler_22.03_LTS_Next_Epol_Multi-Version_OpenStack_Wallaby | 用于管控openEuler-22.03-LTS-Next wallaby 版本软件包的增加、删除、移动 |
目录内容 | 解释 |
---|---|
baseos | 用于管控分支下所有属于baseos包的增加、移动 |
epol | 用于管控该分支下所有属于epol包的增加、移动 |
everything-exclude-baseos | 用于管控该分支下所有不属于epol和baseos包的增加、移动 |
delete | 用于管控该分支下所有包的删除 |
release-change.yaml | 用于记录该分支下所有包变动内容 |
字段 | 解释 | 是否必填 |
---|---|---|
name | 包名 | √ |
source_dir | 存在于obs_meta仓库的哪个目录(与分支名一样)下 | × |
destination_dir | 将要复制/新建到obs_meta仓库的哪个目录下 | × |
obs_from | 该包来自于OBS工程名,确保该包存在于该工程对应的obs_meta仓库目录(source_dir/obs_from/name)下,否则门禁提示错误 | √ |
obs_to | 该包将要新增到的OBS工程名,该包会新增到该工程对应得obs_meta仓库目录(destination_dir/obs_to/name)下 | √ |
date | 在yaml中修改该包的日期,修改日期必须与提交日期保持一致,否则门禁会提示错误 | √ |
本章节用于指导开发者如何变更release_management下纳管分支(已停维分支除外)对应project内/不同 project之间的软件包
操作实例:
修改对应目录下的pckg-mgmt.yaml,从openEuler-Mainline移动metis至openEuler-Qt,将包内容从openEuler-Mainline删除,并添加至openEuler-Qt
操作实例:
修改master/delete目录下的pckg-mgmt.yaml,将要删除的包加入到yaml中,无需从原yaml中删除该包信息
操作实例:
新增python-watchdog至openEuler-2209/epol中,修改openEuler-2209/epol/pckg-mgmt.yaml,如下图
操作实例:
移动openEuler-2209/epol下的包openapi-schema-validator至openEuler-2209/baseos,如下图修改对应yaml
note:同分支内包移动, 需从原yaml中删除该包信息,再到目标yaml中添加该包信息,source_dir与destination_dir都为当前分支名,obs_from为该包当前工程名
,obs_to为目标工程名
操作实例:
删除openEuler-2209/everything-exclude-baseos下的python-pythonwebhdfs,将包名写入openEuler-2209/delete/pckg-mgmt.yaml,无需从原yaml中删除该包信息,如下图
如果开发者希望在同一个PR中完成:
(1) 将eagle从openEuler:Factory移动至工程openEuler:Lua;
(2) 将eagle从openEuler:Lua引入至openEuler-22.09;
修改对应pckg-mgmt.yaml,如下图
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。