From 24c2bfabc427498c87038dfd7c4958b2d08efbb5 Mon Sep 17 00:00:00 2001 From: licihua Date: Wed, 5 Aug 2020 15:12:45 +0800 Subject: [PATCH] =?UTF-8?q?update=20README.md.=20#https://gitee.com/openeu?= =?UTF-8?q?ler/openEuler-Advisor/issues/I1Q98I=3Ffrom=3Dproject-issue=201?= =?UTF-8?q?=E3=80=81=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=202=E3=80=81=E5=88=B7=E6=96=B0=20yaml=E7=A4=BA=E4=BE=8B?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=9C=B0=E5=9D=80=EF=BC=8C=E6=BA=90=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E5=B7=B2=E7=BB=8F=E4=B8=8D=E5=8F=AF=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 56 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 42817d9b..62087b7b 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,18 @@ # openEuler-Advisor #### 介绍 + openEuler-Advisor 的目标是为 openEuler 制品仓的日常工作提供自动化的巡检和建议。 当前项目中值得关注的内容 1. upstream-info:这个目录中集中了当前openEuler项目制品仓中可见的软件组件的上游信息。 2. advisors:这个目录中提供了一些自动化脚本,其中包括: - 2.1 oa_upgradable.py 这个 python 脚本基于upstream-info,对比制品仓中软件相比社区上游最新版本的差异。 - 2.2 simple-update-robot.py 这个 python 脚本基于原有 spec 文件信息,下载社区上游指定版本,并生成新的 spec 文件和相应的 PR。 - 2.3 check_missing_specs.py 这个 python 脚本,对 src-openeuler 中各个仓库进行巡检。如果发现仓库中还不存在 spec 文件,可以直接创建相应仓库中的任务。 - 2.4 check_licenses.py 这个试验性的 python 脚本对指定软件组件中 spec 文件内指定的 license 和 软件tar包内的 license 做交叉验证。 - 2.5 create_repo.py 和 create_repo_with_srpm 这两个 python 脚本提供了批量创建新 repo 的功能 + 2.1 oa_upgradable.py 这个 python 脚本基于upstream-info,对比制品仓中软件相比社区上游最新版本的差异。 + 2.2 simple-update-robot.py 这个 python 脚本基于原有 spec 文件信息,下载社区上游指定版本,并生成新的 spec 文件和相应的 PR。 + 2.3 check_missing_specs.py 这个 python 脚本,对 src-openeuler 中各个仓库进行巡检。如果发现仓库中还不存在 spec 文件,可以直接创建相应仓库中的任务。 + 2.4 check_licenses.py 这个试验性的 python 脚本对指定软件组件中 spec 文件内指定的 license 和 软件tar包内的 license 做交叉验证。 + 2.5 create_repo.py 和 create_repo_with_srpm 这两个 python 脚本提供了批量创建新 repo 的功能 #### 后续计划 @@ -20,32 +21,51 @@ openEuler-Advisor 的目标是为 openEuler 制品仓的日常工作提供自动 3. 完善 upstream-info,覆盖 openEuler 制品仓中所有软件。并将分散中 openEuler 社区中的各个 YAML 统一到 upstream-info 中,便于后续统一管理。 4. 完善 oa_upgradable.py 支持的上游社区代码管理协议,当前发现还需要增加 fossil 的支持。 +#### yaml 文件规范 + +src-openEuler 仓库中的yaml 文件名称与仓库名称应该保持一致,例如glibc 仓库中存放的yaml 文件名称为"glibc.yaml",文件放在仓库根目录下 + +yaml 文件中需要人工填写的字段有 version_control、src_repo、tag_prefix、seperator,其他内容为自动生成的,不需要填写。 + +下面是yaml字段与作用介绍: + +###### 1、version_control: + +上游仓库使用的版本控制协议,目前支持svn, git, hg, github, gnome, metacpan, pypi + +**2、src_repo:** + +上游仓库的实际地址,通过version_control 和 src_repo 我们可以使用工具下载对应的代码 + +**3、tag_prefix:** + +上游仓库的tag 中version 前缀,如果是 git 协议,通过 git tag 命令即可显示所有tag。如果上游给的tag 是 v1_0_1, 那么tag_prefix 应该配置为"^v",我们通过匹配tag_prefix即可取出正确的版本信息得到 1_0_1 -#### ymal文件规范 +**4、seperator:** -###### version_control: +tag中版本的间隔符,如果 tag是 v1_0_1,然后配置seperator 为"_",我们通过代码解析可以得到正确的版本号"1.0.1" -可选为svn, git, hg, github, gnome, metacpan, pypi +下面是src_repo、tag_prefix、seperator 字段的具体要求与示例: ###### src_repo: -1、 如果version_control为svn,那src_repo需要 完整的 SVN 仓库地址。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/amanda.yaml +1、 如果version_control为svn,那src_repo需要 完整的 SVN 仓库地址。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/amanda.yaml -2、如果version_control为git,那src_repo需要 完整的 GIT 仓库地址。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/mdadm.yaml +2、如果version_control为git,那src_repo需要 完整的 GIT 仓库地址。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/mdadm.yaml -3、如果version_control为hg,那src_repo需要 完整的 HG 仓库地址。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/nginx.yaml +3、如果version_control为hg,那src_repo需要 完整的 HG 仓库地址。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/nginx.yaml -4、如果version_control为github,那src_repo只需要 proj/repo 即可,不需要完整的URL。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/asciidoc.yaml +4、如果version_control为github,那src_repo只需要 proj/repo 即可,不需要完整的URL。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/asciidoc.yaml -5、 如果version_control为gnome,那src_repo只需要 $proj 即可,不需要完整的URL。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/gnome-terminal.yaml。 注意gitlab.gnome.org上很多项目需要访问权限,这些不能作为上游代码仓库。 +5、 如果version_control为gnome,那src_repo只需要 $proj 即可,不需要完整的URL。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/gnome-terminal.yaml, 注意gitlab.gnome.org上很多项目需要访问权限,这些不能作为上游代码仓库。 -6、如果version_control为metacpan,那src_repo只需要 $proj 即可,不需要完整的URL。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/perl-Authen-SASL.yaml。 注意在metacpan上的命名规范。 +6、如果version_control为metacpan,那src_repo只需要 $proj 即可,不需要完整的URL。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/perl-Authen-SASL.yaml,注意在metacpan上的命名规范。 -7、 如果version_control为pypi,那src_repo只需要 $proj 即可,不需要完整的URL。例子可以参考https://gitee.com/shinwell_hu/openEuler-Advisor/tree/next/upstream-info/python-apipkg。 注意pypi上的命名规范。 +7、 如果version_control为pypi,那src_repo只需要 $proj 即可,不需要完整的URL。例子可以参考 https://gitee.com/openeuler/openEuler-Advisor/blob/master/upstream-info/python-apipkg ,注意pypi上的命名规范。 ###### tag_prefix: - 不同项目的tag规则不同,这里比如tag是v1.1的,那么tag_prefix设置为^v即可。有些软件的tag_prefix会比较复杂。 + 不同项目的tag规则不同,这里比如tag是v1.1的,那么tag_prefix设置为^v即可。 ###### seperator: @@ -63,11 +83,11 @@ openEuler-Advisor 的目标是为 openEuler 制品仓的日常工作提供自动 \- svn: -​ svn ls -v $repo_url/tags + svn ls -v $repo_url/tags \- hg: -​ curl $repo_url/json-tags + curl $repo_url/json-tags 2)常见代码托管网站的使用方法 -- Gitee