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 就是参数。例如:

  1. 您的软件包名为 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 开头的。

  1. 您的软件包名为 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 中比较好。


参考链接

附表:method 详解

Method Info
upstream openSUSE 就是上游,无须 info
ftpls ftp 目录地址
httpls 真实 http 地址,也就是说它上面列示的包都是可以无跳转直接下载的。
dualhttpls 两个 http 地址,中间用管道“|”分开
subdirhttpls 比如下载页面有 0.1.0 这样的以版本号命名的文件夹。info 用下载页面。
svnls 上游有监听 80 端口请求的 svn,并且 svn 里有列出全部可下载 tarball。很少见。
sf 项目的 id。获取方法见上面的例子。
google 项目代码存放在 code.google.com/p/name。参数是项目名,管道后可接真实的压缩包名。
lp lp 项目名
trac trac 的下载页面