diff --git a/design-doc/0723_2209_add.png b/design-doc/0723_2209_add.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9c503b922b448a776464ce2ce9376064aa5493 Binary files /dev/null and b/design-doc/0723_2209_add.png differ diff --git a/design-doc/0723_2209_add_record.png b/design-doc/0723_2209_add_record.png new file mode 100644 index 0000000000000000000000000000000000000000..65262c690785557289ed81734ed7acf31f388e48 Binary files /dev/null and b/design-doc/0723_2209_add_record.png differ diff --git a/design-doc/0723_release_dir.png b/design-doc/0723_release_dir.png new file mode 100644 index 0000000000000000000000000000000000000000..bc80c1c1cf4c547567842a2740234fed91fa590c Binary files /dev/null and b/design-doc/0723_release_dir.png differ diff --git a/design-doc/0723maser_move.png b/design-doc/0723maser_move.png new file mode 100644 index 0000000000000000000000000000000000000000..74e01116dfaa3a9c56e77a6c0231102f62d019c2 Binary files /dev/null and b/design-doc/0723maser_move.png differ diff --git a/design-doc/0723master_delete.png b/design-doc/0723master_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbc1f27ddee31453d4d3a5f6ee6bfc8d449c91c Binary files /dev/null and b/design-doc/0723master_delete.png differ diff --git a/design-doc/0723master_delete_record.png b/design-doc/0723master_delete_record.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb4cc0d2c35430e7bf12b4345d6b9b3c95d0653 Binary files /dev/null and b/design-doc/0723master_delete_record.png differ diff --git a/design-doc/0723master_move_record.png b/design-doc/0723master_move_record.png new file mode 100644 index 0000000000000000000000000000000000000000..b10b7d560e371714360612bb2a43563c34b575a1 Binary files /dev/null and b/design-doc/0723master_move_record.png differ diff --git a/design-doc/2209_delete.png b/design-doc/2209_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..b2144293796379e57c837912847917a03ec2b38a Binary files /dev/null and b/design-doc/2209_delete.png differ diff --git a/design-doc/2209_delete_record.png b/design-doc/2209_delete_record.png new file mode 100644 index 0000000000000000000000000000000000000000..6cab0de629da798a94ba23ed50f2995afa13a6df Binary files /dev/null and b/design-doc/2209_delete_record.png differ diff --git a/design-doc/eagle.png b/design-doc/eagle.png new file mode 100644 index 0000000000000000000000000000000000000000..26e98f8717bb6e2a446dca94112b49b22f911d14 Binary files /dev/null and b/design-doc/eagle.png differ diff --git a/design-doc/eagle_add.png b/design-doc/eagle_add.png new file mode 100644 index 0000000000000000000000000000000000000000..05af5bd47d72a3636f0aaf5fa6f4f8e92a648058 Binary files /dev/null and b/design-doc/eagle_add.png differ diff --git a/design-doc/internal_move_2209.png b/design-doc/internal_move_2209.png new file mode 100644 index 0000000000000000000000000000000000000000..75bbf6e31e8434da00e3f1a06a8ce2818a87a44e Binary files /dev/null and b/design-doc/internal_move_2209.png differ diff --git a/design-doc/openEuler&OBS-Build-optimization-design2.0.md b/design-doc/openEuler&OBS-Build-optimization-design2.0.md index 938677e7217158718139bed0c836a897a8c4c5ab..5a87c1cedebda1829f883fc4e537733f7f70d881 100644 --- a/design-doc/openEuler&OBS-Build-optimization-design2.0.md +++ b/design-doc/openEuler&OBS-Build-optimization-design2.0.md @@ -369,195 +369,151 @@ release sig通过release-management来管控版本分支软件包基线以及变 10. 如果开发者想要变更软件包所在层级,怎么操作? 在release-management的master目录下提交PR变更软件包名所在目录即可 -## 7 基于分层结构开发者修改提交PR流程 +## 7 Master分层构建和22.09拆分目录结构 ### 7.1 release_management目录结构 -![目录结构](目录结构.png) +![目录结构](0723_release_dir.png) -#### 7.1.1 master下目录结构以及pckg-mgmt.yaml内容解释 +note:本次上线的新目录包括:master,openEuler-22.09 -##### 目录结构 +#### 7.1.1 master下目录结构 + +***Note:社区基于master分支工程做的分层project,如无特殊需求,由CICD sig组主导软件包的分层,开发者如往常提交PR至openEuler: Mainline/openEuler:Epol即可。若开发者对于具体软件包的分层有新建议,欢迎提交issue或者邮件交流*** | 目录内容 | 解释 | | ------------------------------------------ | ------------------------------------------------------------ | -| delete | 用于记录处理master下所有删除包,需要删除包时,只需将包名加入该目录下的pckg-mgmt.yaml中 | -| openEuler-Factory | 用于记录处理openEuler-Factory工程下所有包 | -| openEuler-Mainline | 用于记录处理openEuler-Mainline工程下所有包 | -| openEuler-BaseTools | 同上 | -| openEuler-C | 同上 | -| openEuler-Common_Languages_Dependent_Tools | 同上 | -| openEuler-Epol | 同上 | -| openEuler-Erlang | 同上 | -| openEuler-Golang | 同上 | -| openEuler-Java | 同上 | -| penEuler-KernelSpace | 同上 | -| openEuler-Lua | 同上 | -| openEuler-Meson | 同上 | -| openEuler-MultiLanguage | 同上 | -| openEuler-Nodejs | 同上 | -| openEuler-Ocaml | 同上 | -| openEuler-Perl | 同上 | -| openEuler-Python | 同上 | -| openEuler-Qt | 同上 | -| openEuler-Ruby | 同上 | +| 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 | 用于记录所有包变动内容 | -##### pckg-mgmt.yaml字段解释 - -| 字段 | 解释 | -| -------- | ------------------------------------------------------------ | -| name | 包名 | -| obs_from | 该包来自于OBS工程名,确保该包存在于该工程对应得obs_meta仓库目录下,否则门禁提示错误 | -| obs_to | 该包将要移动到OBS工程名 | -| date | 在yaml中修改该包的日期,修改日期必须与提交日期保持一致,否则门禁会提示错误 | - -#### 7.1.2 multi_version下目录结构以及pckg-mgmt.yaml内容解释 - -##### 目录结构 - -| 目录内容 | 解释 | -| ------------------------------------------------------------ | -------------------------------------------- | -| openEuler_22.03_LTS_Epol_Multi-Version_OpenStack_Train | 用于记录处理该分支下所有包的增加、删除、移动 | -| openEuler_22.03_LTS_Epol_Multi-Version_OpenStack_Wallaby | 同上 | -| openEuler_22.03_LTS_Next_Epol_Multi-Version_OpenStack_Train | 同上 | -| openEuler_22.03_LTS_Next_Epol_Multi-Version_OpenStack_Wallaby | 同上 | -| ... | ... | - -##### pckg-mgmt.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中修改该包的日期,修改日期必须与提交日期保持一致,否则门禁会提示错误 | - -#### 7.1.2 版本或开发分支目录结构以及pckg-mgmt.yaml内容解释 - -##### 目录结构 +#### 7.1.2 multi_version下目录结构 -| 目录内容 | 解释 | -| ------------------------- | -------------------------------------------------------- | -| baseos | 用于记录处理该分支下所有属于baseos包的增加、移动 | -| epol | 用于记录处理该分支下所有属于epol包的增加、移动 | -| everything-exclude-baseos | 用于记录处理该分支下所有不属于epol和baseos包的增加、移动 | -| release-change.yaml | 用于记录该分支下所有包变动内容 | -| delete | 用于记录处理该分支下所有包的删除 | -| ... | ... | +| 目录内容 | 解释 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| 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 版本软件包的增加、删除、移动 | -##### pckg-mgmt.yaml字段解释 +#### 7.1.3版本或开发分支目录结构 -| 字段 | 解释 | -| --------------- | ------------------------------------------------------------ | -| 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中修改该包的日期,修改日期必须与提交日期保持一致,否则门禁会提示错误 | +| 目录内容 | 解释 | +| ------------------------- | ---------------------------------------------------- | +| baseos | 用于管控分支下所有属于baseos包的增加、移动 | +| epol | 用于管控该分支下所有属于epol包的增加、移动 | +| everything-exclude-baseos | 用于管控该分支下所有不属于epol和baseos包的增加、移动 | +| delete | 用于管控该分支下所有包的删除 | +| release-change.yaml | 用于记录该分支下所有包变动内容 | -### 7.2 开发者提交修改流程 +### 7.2 pckg-mgmt.yaml字段解释 -#### 7.2.1 master下包新增、移动、删除 +| 字段 | 解释 | 是否必填 | +| --------------- | ------------------------------------------------------------ | -------- | +| 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中修改该包的日期,修改日期必须与提交日期保持一致,否则门禁会提示错误 | √ | -##### 1.修改pckg-mgmt.yaml内容 +## 8 基于master分层构建和2209分支开发者提交修改流程 -如下: +***Note:本指导文档用于指导release_management仓库中master下分层工程以及openEuler-2209包操作的文档,其他分支仍按照之前流程进行操做即可*** -###### 1.1从openEuler-Mainline移动metis至openEuler-Qt +#### 8.1 master下包的移动 -![master_move](master_move.png) +***操作实例***: -###### 1.2 从master下删除两个包 +***修改对应目录下的pckg-mgmt.yaml,从openEuler-Mainline移动metis至openEuler-Qt,将包内容从openEuler-Mainline删除,并添加至openEuler-Qt*** -​ ![master_delete](master_delete.png) +note:其中date字段需要与提交日期一致 -##### 2.创建PR提交至仓库等待门禁检查,门禁检查成功即可申请合入 +![0723maser_move](0723maser_move.png) - note:后台动作 +***note:记录本次PR的所有移动信息至master/release_change.yaml中(该动作为自动动作,无需开发者操作)*** - PR合入等待任务后台操作,后续会将修改先同步至obs_meta,以及同步至OBS工程 +![0723master_move_record](0723master_move_record.png) - 对于要删除的包,任务会后台操作对应得yaml内容,将加入到delete的包从yaml中删除,并推送到release_management仓库 +#### 8.2 master下包的删除 -##### 3.对于所有包的移动都会记录到对应得release_change.yaml中 +***操作实例***: -![master_release_change](master_release_change.png) +***修改master/delete目录下的pckg-mgmt.yaml,将要删除的包加入到yaml中,无需从原yaml中删除该包信息*** -#### 7.2.2 multi_version下包新增、移动、删除 +![0723master_delete](0723master_delete.png) -##### 1.修改对应pckg-mgmt.yaml +***note:记录本次PR所所删除的包至master/release_change.yaml中,从原yaml中删除该包(该动作为自动动作,无需开发者操作)*** -如下: +![0723master_delete_record](0723master_delete_record.png) -###### 1.1 在multi_version/openEuler_22.03_LTS_Epol_Multi-Version_OpenStack_Train/pckg-mgmt.yaml中新增hiredis包 +#### 8.3 master下包的新增 -![multi_add](multi_add.png) +**note:master下包的新增均有后台任务完成,开发者不能操作** -###### 1.2 在multi_version/openEuler_22.03_LTS_Next_Epol_Multi-Version_OpenStack_Train/pckg-mgmt.yaml中删除python-pexpect包 +#### 8.4 开发或者版本分支下包新增(pckg-mgmt.yaml已拆分) -![multi_delete](multi_delete.png) +***操作实例***: -##### 2.创建PR提交至仓库等待门禁检查,门禁检查成功即可申请合入 +***新增python-watchdog至openEuler-2209/epol中,修改openEuler-2209/epol/pckg-mgmt.yaml,如下图*** - note:后台动作 +![0723_2209_add](0723_2209_add.png) - PR合入等待任务后台操作,后续会将修改先同步至obs_meta,以及同步至OBS工程 +***note:记录本次PR的所有 新增包信息至openEuler-2209/release_change.yaml中(该动作为自动动作,无需开发者操作)*** -##### 3.对于所有包的移动都会记录到对应得release_change.yaml中 +![0723_2209_add_record](0723_2209_add_record.png) -![multi_release_change](multi_release_change.png) +#### 8.5 开发或者版本分支内包的移动(pckg-mgmt.yaml已拆分) -#### 7.2.3 开发或者版本分支下包新增、移动、删除(pckg-mgmt.yaml已拆分) +***操作实例***: -##### 1.修改对应pckg-mgmt.yaml +***移动openEuler-2209/epol下的包openapi-schema-validator至openEuler-2209/baseos,如下图修改对应yaml*** -如下: +![internal_move_2209](internal_move_2209.png) -###### 1.1 新增ansible-2.9至epol,分支内移动dibbler +***note:记录本次PR的所有 新增包信息至openEuler-2209/release_change.yaml中(该动作为自动动作,无需开发者操作)*** -![2203-move_add](2203-move_add.png) +#### 8.6 开发或者版本分支内包的删除(pckg-mgmt.yaml已拆分) -###### 1.2 删除分支内包libxcvt +***操作实例***: -![2203-delete](2203-delete.png) +***删除openEuler-2209/everything-exclude-baseos下的python-pythonwebhdfs,将包名写入openEuler-2209/delete/pckg-mgmt.yaml,无需从原yaml中删除该包信息,如下图*** -##### 2.创建PR提交至仓库等待门禁检查,门禁检查成功即可申请合入 +![2209_delete](2209_delete.png) - note:后台动作 +***note:记录本次PR的所有 删除包信息至openEuler-2209/release_change.yaml中,并从原yaml中删除该包信息(该动作为自动动作,无需开发者操作)*** - PR合入等待任务后台操作,后续会将修改先同步至obs_meta,以及同步至OBS工程 +![2209_delete_record](2209_delete_record.png) - 对于要删除的包,任务会后台操作对应得yaml内容,将加入到delete的包从yaml中删除,并推送到release_management仓库 +#### 8.7 一个PR同时提交包移动到两个分支 -##### 3.对于所有包的移动都会记录到对应得release_change.yaml中 - -![2203_release_change](2203_release_change.png) - -#### 7.2.4 一个PR同时提交包移动到两个分支 - -**Note:要在同一个PR完成不同分支的包引入或移动,分支需满足以下继承规则** +**Note:要在同一个PR完成不同分支的包引入或移动,分支需满足以下继承规则,停维分支暂不支持** https://gitee.com/openeuler/release-management/blob/master/valid_release_branches.yaml -##### 1.修改对应pckg-mgmt.yaml - -如下: - -![1prop](1prop.jpg) - -开发者想同时将包butane 1.从openEuler:Factory移动至工程openEuler:Lua 2.同时从openEuler:Lua引入至openEuler-22.03-LTS-Next,由于分支openEuler-22.03-LTS-Next和master满足分支继承规则,因此可以用一个PR同时移动 - -##### 2.创建PR提交至仓库等待门禁检查,门禁检查成功即可申请合入 - - note:后台动作 +***修改对应pckg-mgmt.yaml,如下图*** - PR合入等待任务后台操作,后续会将修改先同步至obs_meta,以及同步至OBS工程 +![eagle_add](eagle_add.png) - 对于要删除的包,任务会后台操作对应得yaml内容,将加入到delete的包从yaml中删除,并推送到release_management仓库 +开发者想同时将包eagle 1.从openEuler:Factory移动至工程openEuler:Lua 2.同时从openEuler:Lua引入至openEuler-22.09,由于分支openEuler-22.09和master满足分支继承规则,因此可以用一个PR同时移动 -##### 3.对于所有包的移动都会记录到对应得release_change.yaml中 +***Note:对于所有包的移动都会记录到对应得release_change.yaml中*** -![image-20220719163848905](image-release.png) \ No newline at end of file +![eagle](eagle.png) \ No newline at end of file