SDB:上游追踪器
发行版通常有一些机制来跟踪上游更新,例如 Debian 的 watch 文件。但当前工具都仅限于特定发行版,并且存在其他障碍。上游追踪器是 openSUSE 的 2012 年 GSoC 项目,由 @nbprashanth 在 @vuntz 的指导下开发。它的目标是基于现有的 openSUSE 工具(如 开放构建服务)创建一个复杂的后端系统。
用法(当前)
将您的软件包提交到追踪器
Fork 我
- 在 GitHub 上: https://github.com/openSUSE/osc-plugin-collab
- 问题: https://github.com/openSUSE/osc-plugin-collab/issues
编辑 server/upstream/upstream-tarballs.txt
语法如下
name:method:info
- name,是上游 tarball 的名称,如果方法是 svn/lp/trac,可以是 "branch",例如:fcitx|4.x
- method,实际上是上游所在的位置,现在支持
upstream;ftpls;httpls;dualhttpls;subdirhttpls;svnls;sf;google;lp;trac
info 是位置参数。例如
- 您的软件包是 fcitx-pinyin,上游位于 http://code.google.com/p/fcitx。您需要使用
fcitx-pinyin:google:fcitx|fcitx-pinyin
fcitx|fcitx-pinyin 是 "info" 参数,"fcitx" 表示其位置是 http://code.google.com/p/fcitx,“|fcitx-pinyin” 表示您要监控的 tarball 前缀为 fcitx-pinyin,而不是默认项目名称 "fcitx"。
- 您的软件包是 presage,上游位于 http://presage.sourceforge.net。现在您需要使用浏览器访问 http://sourceforge.net/api/project/name/presage/json,返回的是
{"Project":{
"name":"Presage",
"created":"Jul 22, 2006",
"created_timestamp":1153587912,
"id":172950,
记住该 id,并将其写入 .txt 文件
presage:sf:172950|presage
172950|presage 表示您要监控 http://presage.sourceforge.net 地址下的 presage 目录,因为那里有三个目录:presage,presage-extra,soothsayer。如果只有一个目录,您可以省略管道。
sourceforge.jp 和 sourceforge.net 是同一个品牌,但它们的 ID 不兼容。例如:anthy 在 .jp 上实际上是 anthy:sf_jp:14|anthy,这在 .net 上根本不存在。
info 参数的详细信息请参见附录或 upstream_tarballs.txt 中的注释。
编辑 server/upstream/upstream-packages-match.txt
我们在这里将 tarball 名称与软件包名称匹配。默认情况下,您只需要
fcitx:
将软件包名称留空。这意味着它们名称相同。在某些情况下,例如:您的软件包名称为 libjs185-1_0,但下载的 tarball 实际上是 js185-1.0.0.tar.gz,那么您需要将上一个 upstream-tarballs.txt 中的 "name" 更改为 js185,并在这里
js185:libjs185-1_0
进行匹配。
编辑 server/upstream/upstream-limits.txt
我们在这里过滤特定的版本,例如快照软件包。
- 对于采用 x.y.z 版本方案命名的某些软件包,当 y 为奇数时,表示不稳定,我们可以这样过滤它们
fcitx:no-odd-unstable
- 限制最大版本
fcitx:max|4.2.6
- 跳过某些版本
fcitx:skip|4.2.4.1;4.2.6.1;
提交
git commit -m "$Your_ChangeLog" && git push
并在 gitorous 上打开合并请求。当 MR 被接受后,一段时间后,您可以从 OBS 项目的“高级” - “状态”中检查新的上游版本。然后您可以使用许多在线解析器让您自己通过电子邮件接收通知。也许未来会有 hermes.o.o。
参考
- 首次周报
- 第二周报告
- 第三周报告
- #news.o.o 报告:成功的 openSUSE GSoC
- Upstream-Tracker-Python
- Upstream-Tracker-Rails
- 开发者的个人博客
- #opensue-factory 234 个据报道具有较新上游版本的软件包 Vincent 去年九月介绍了它。
附录:方法说明
| 方法 | 信息 |
|---|---|
| upstream | openSUSE 是上游,因此没有 info |
| ftpls | ftp 目录 URL |
| httpls | “真实” http URL,也就是说,列出的 tarball 可以直接下载,无需重定向。 |
| dualhttpls | 双 http URL,用管道 “|” 分隔。 |
| subdirhttpls | 如果下载页面上有带有版本号的目录,例如 0.1.0。只需使用下载页面 URL。 |
| svnls | 上游具有 svn 监控端口 80,并且 svn 中有可下载的 tarball。很少见。 |
| sf | 项目 ID。请参见上面的示例。 |
| 上游托管在 code.google.com/p/name 上。Info 是 c.g.c 项目名称。您可以使用管道指定真实的 tarball 名称。 | |
| lp | lp 项目名称 |
| trac | trac 下载页面 |