SDB:Upstream Tracker
发行版通常都有跟踪上游软件新版本的工具,但现有工具都局限于某个发行版,比如 Debian 的 watch 文件,也都有一些限制。Upstream Tracker 是 openSUSE 2012 年的 GSoC 项目,开发者是 nbprashanth,导师是 vuntz。它的宗旨是基于 openSUSE 的现有工具如构建服务,将它开发成一个更加复杂的后端系统。
目录
应用
将软件提交给上游监视器监视
fork 该项目
gitorious:opensuse:osc-plugin-collab
git clone
git clone git@gitorious.org:~$USERNAME/opensuse/$USERNAME-osc-plugin-collab.git
编辑 server/upstream/upstream-tarballs.txt
语法如下:
name:method:info
- name 就是上游压缩包名,在 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 表示你要监视的压缩包是以 fcitx-pinyin 开头的。
- 您的软件包名为 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 表示你要监视的是 http://presage.sourceforge.net 地址下的 presage 文件夹,因为它下面有三个文件夹:presage,presage-extra,soothsayer。如果只有一个文件夹的话你就可以直接 presage:sf:172950 而不使用管道。
sourceforge.jp 和 sourceforge.net 是同一公司旗下的两个网站,两者的 id 不通用。比如 anthy 的就是 anthy:sf_jp:14|anthy。
其他具体参数见附表或 upstream_tarballs.txt 的注释。
编辑 server/upstream/upstream-packages-match.txt
主要是将压缩包名和软件包名匹配,标准情况下,你只需要:
fcitx:
把软件包名留空就可以了,表示两者名称相同,极少数情况下,比如 libjs185-1_0 是你的软件包,而上游下载的压缩包名是 js185-1.0.0.tar.gz,这时在上一个 upstream-tarballs.txt 中您的 name 就应该叫做 js185,然后在这里:
js185:libjs185-1_0
来进行匹配。
编辑 server/upstream/upstream-limits.txt
主要用于过滤特定版本,比如 snapshots 的软件包。
- 有些 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 "修订日志" && git push到 gitorous 开一条 Merge 申请,等该申请被通过之后,一段时间后,您就可以在您的项目的「Advanced」-「Status」中查询是否存在上游更新了。
接着您就可以使用各种 parser 来让它邮件通知你了。
------批注:我觉得还是整合到大戟士 hermes.o.o 中比较好。
参考链接
- Fisrt Weekly Report
- Week 2 Report
- Week 3 Report
- 媒体介绍
- Upstream-Tracker-Python
- Upstream-Tracker-Rails
- 开发者个人博客
- #opensue-factory 234 packages with reportedly newer upstream version 早期推介
附表:method 详解
Method | Info |
---|---|
upstream | openSUSE 就是上游,无须 info |
ftpls | ftp 目录地址 |
httpls | 真实 http 地址,也就是说它上面列示的包都是可以无跳转直接下载的。 |
dualhttpls | 两个 http 地址,中间用管道“|”分开 |
subdirhttpls | 比如下载页面有 0.1.0 这样的以版本号命名的文件夹。info 用下载页面。 |
svnls | 上游有监听 80 端口请求的 svn,并且 svn 里有列出全部可下载 tarball。很少见。 |
sf | 项目的 id。获取方法见上面的例子。 |
项目代码存放在 code.google.com/p/name。参数是项目名,管道后可接真实的压缩包名。 | |
lp | lp 项目名 |
trac | trac 的下载页面 |