12 Star 0 Fork 12

ocs-bot / pkgs-info

forked from OpenCloudOS / pkgs-info 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

pkgs-info

[toc]

介绍

软件包上游社区以多种形式存在,按照协议可分类为:git、svn、hg等,存在多种平台接口:github/gitlab、metacpan、pypi、Sourceforge等。 本工具旨在覆盖多社区、多平台,提供上游社区的仓库信息。

yaml文件规范

文件名

yaml文件命名,应当与 OpenCloudOS-Stream仓库(链接)中的软件包名称一致。

ocs目前提供的2000+软件包 yaml文件,详见gitee仓库:https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/cairo.yaml

字段介绍

(1)repo_type:

上游仓库类型,不同的仓库类型有着不同src_repo,目前支持的类型有:git(含gitlab)、github、gnome、metacpan、pypi、sourceforge、ftp;必填项!

(2)src_repo:

上游仓库名称or实际地址,通过repo_type和 src_repo 我们可以使用工具找到上游仓库对应的代码;必填项!

1)若 repo_type 为 git,那 src_repo 需要 完整的 GIT 仓库地址。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/cairo.yaml

2)若 repo_type 为 github,那 src_repo 需要 proj/repo。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/aide.yaml

3)若 repo_type 为 gnome,那 src_repo 需要 proj/repo,proj可能为 GNOME、Archive。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/gnome-shell.yaml

4)若 repo_type 为 metacpan,那 src_repo 需要 $pure_repo ,如 perl-Carp,此处填写 Carp 即可。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/perl-Carp.yaml

5)若 repo_type 为 pypi,那 src_repo 需要 $pure_repo ,类似 pypi_name 如python-docker,此处填写 docker即可。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/python-docker.yaml

6)若 repo_type 为 sourceforge,那 src_repo 需要 完整的 sourceforge.net 仓库地址。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/CUnit.yaml

7)若 repo_type 为 ftp,那 src_repo 需要 完整的 ftp 仓库地址。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/libmng.yaml

  1. 若 repo_type 为 hg (又称Mercurial),那 src_repo 需要 完整的 hg仓库地址。参考 https://gitee.com/OpenCloudOS/pkgs-info/blob/master/upstream-info/dblatex.yaml

(3)tag_prefix:

用于去除 上游仓库的tag 中version 前缀(支持正则表达式),如tag中为 v_1.0,那么前缀则为"^v_";按需填写项!

如果版本号无前缀,可以不填或者填写空字符串""。

注:tag_prefix和tag_suffix预处理,是为了去除tag中的多余字母,只保留 符合PEP 440标准的version号码。预处理后,如果tag中依然有字母,则视为不合标准并将会被丢弃。

例如,dejagnu的历史tag如下:

dejagnu-1.6.3-release
dejagnu-1.6.2-release
linaro-pre-1.6-merge
dejagnu-1.4.4-release	

我们需要填写前后缀如下,意味着只获取主流tag“dejagnu-x.x.x-release”,而“linaro-pre-1.6-merge” tag由于预处理后仍然含字母,该tag会被丢弃。

tag_prefix: "dejagnu-"
tag_suffix: "-release"

所以预处理后,得到的tags如下,并且输出最新版本号:1.6.3:

1.6.3
1.6.2
1.4.4

(4)tag_suffix:

用于去除 上游仓库的tag 中version 后缀(支持正则表达式),如tag中为 v_1.0-rc,那么后缀则为“-rc”;按需填写项!

如果版本号无后缀,可以不填或者填写空字符串“”。

(5)tag_separator:

用于转换 上游仓库的tag 中version 分隔符,如tag中为 v_1_0,那么我们需要再此处标识分隔符则为“”,工具将检测tag中分隔符“”并将其替换为“.”;按需填写项!

填写示例

以CUnit为例,从Cunit.spec文件中获取器URL:http://cunit.sourceforge.net/。

在URL主页,如果可以找到其代码仓库最好;否则,可以查找其它信息,如本例中的项目主页。

进入项目主页后,查找其代码仓库 or tags信息。

CUnit等 sourceforge的项目https://sourceforge.net/projects/ 网站下。以CUnit为例,搜索CUnit -》 点击 Files -》 进入CUnit文件夹,此时所在网址url即为最终所需的 src_repo 。

如果出现 Files为空等(如 libmpeg2),意味着 可能不适合使用 Sourceforge跟踪,可以尝试使用 ftp 进行跟踪。

其余仓库查找同理,并且目前2000+软件包的yaml文件,已经覆盖git/github、gnome、perl、python、ftp等各种repo_type。大家可以参照同repo_type类型的其他包,进行yaml内容填写。

提交yaml

如果经过您的调试,认为gitee的yaml仓库中的yaml文件缺失或存在问题,可以提交yaml文件到 gitee的yaml仓库。

步骤如下:

(1)进入gitee的yaml仓库 https://gitee.com/OpenCloudOS/pkgs-info/tree/master/,并fork项目

(2)git clone 该yaml仓库

git clone git@gitee.com:xx.git

(3)本地修改后,git push

(4)创建PR即可

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/ocs-bot/pkgs-info.git
git@gitee.com:ocs-bot/pkgs-info.git
ocs-bot
pkgs-info
pkgs-info
master

搜索帮助