SDB:Upstream Tracker

Jump to: navigation, search
Distributions usually has some mechanisms to track upstream updates, like Debian's watch file. But the current tools are all limited to specific distributions, and has some other obstacles. Upstream Tracker is the GSoC 2012 project for openSUSE, developed by @nbprashanth with his mentor @vuntz. It aims to create a complicated backend system based on existing openSUSE tools like Open Build Service.

Usage (Current)

Submit your package to the tracker

Fork me

Edit server/upstream/upstream-tarballs.txt

Syntax as follows:

name:method:info
  • name, is the upstream tarball name, can be "branch" if the method is svn/lp/trac, eg: fcitx|4.x
  • method, actually is the location where upstream is, now supports:
upstream;ftpls;httpls;dualhttpls;subdirhttpls;svnls;sf;google;lp;trac 

info is the location parameters. Eg:

  1. Your package is fcitx-pinyin, upstreamed at http://code.google.com/p/fcitx. You need to use:
fcitx-pinyin:google:fcitx|fcitx-pinyin

fcitx|fcitx-pinyin is the "info" parameter, "fcitx" means its location is http://code.google.com/p/fcitx, "|fcitx-pinyin" means the tarball you want to monitor is prefixed by fcitx-pinyin instead of the default project name "fcitx".

  1. Your package is presage, upstreamed at http://presage.sourceforge.net. Now you need a browser to visit http://sourceforge.net/api/project/name/presage/json, the return is:
{"Project":{
   "name":"Presage",
   "created":"Jul 22, 2006",
   "created_timestamp":1153587912,
   "id":172950,

Remember that id, and write this into the .txt file:

presage:sf:172950|presage

172950|presage means you want to monitor the presage directory under http://presage.sourceforge.net address, because there're three directories there: presage,presage-extra,soothsayer. You can leave that pipe if there's only one directory there.

sourceforge.jp and sourceforge.net are of the same brand, but their IDs are not compatible. Eg: anthy at .jp is actually anthy:sf_jp:14|anthy, which doesn't exist on .net at all.

Details of the info parameters please see the appendix or the comments in upstream_tarballs.txt.

Edit server/upstream/upstream-packages-match.txt

We match the tarball names to package names here. By default, you just need:

fcitx:

to leave package name blank. It means they're of the same name. In some cases, eg: you package names libjs185-1_0, but the downloaded tarball is actually js185-1.0.0.tar.gz, then you need to change the "name" in the previous upstream-tarballs.txt to js185, and here:

js185:libjs185-1_0

to match them.

Edit server/upstream/upstream-limits.txt

We filter specific versions here, like snapshots packages.

  • For some packages named in a x.y.z version scheme, when the y is odd, it means unstable, we can filter them like this:
fcitx:no-odd-unstable
  • Limit max version
fcitx:max|4.2.6
  • Jump some versions
fcitx:skip|4.2.4.1;4.2.6.1;

Submit

git commit -m "$Your_ChangeLog" && git push 

And open a merge request on gitorous. When the MR is accepted, after some time, you can check new upstream version from "Advanced" - "Status" of your OBS projects. Then you may let yourself get emailed using many online parsers. Maybe hermes.o.o in the future.

Reference

Appendix: method explanation

Method Info
upstream openSUSE is the upstream, thus no info
ftpls ftp directory URL
httpls “real” http URL, that is, the tarball listed can be downloaded without redirect.
dualhttpls double http URL, separated by pipe “|”.
subdirhttpls if there's version number named directories like 0.1.0 on the download page. Just use the download page URL.
svnls upstream has svn monitoring port 80 and there're downloadable tarballs in svn. Rarely.
sf project id. See the example above.
google upstream hosted at code.google.com/p/name. Info is the c.g.c project name. You can specify a real tarball name using pipes.
lp lp project nme
trac trac download page