Overview plugin allows you to build a table comparing versions in different sources including openSUSE build service projects.
You can install from openSUSE:Tools.
Development is hosted on github.
- Build service project ( obs://project )
- Build service pending submit requests against project ( obssr://project )
- Upstream gem repository ( gem://server )
To use it, you call it with:
osc overview groupviewname
The groupview is a ini file in ~/.osc-overview/viewname.ini
, A groupview contains one or more views, which are sections of the ini file.
Examples:
[openSUSE-11.1]
repos=obs://openSUSE:11.1,obs://zypp:Code11-Branch,obs://openSUSE:11.1:Update
packages=libzypp,zypper
This compares libzypp and zypper version from 3 different projects. The output is similar to:
** openSUSE-11.1 **
+------------------+------------------+------------------+------------------+
| package | obs://openSUSE:1 | obs://zypp:Code1 | obs://openSUSE:1 |
| | 1.1 | 1-Branch | 1.1:Update |
+==================+==================+==================+==================+
| libzypp | 5.24.5 | 5.29.5 | 5.25.3 |
+------------------+------------------+------------------+------------------+
| zypper | 1.0.2 | 1.0.8 | 1.0.5 |
+------------------+------------------+------------------+------------------+
Another example, is to compare versions with upstream:
[gems]
repos=obs://devel:languages:ruby:extensions,gem://gems.rubyforge.org
packages=*1
Here, you can see the package list uses *1
, that means, fetch the package list from the first source being compared. Be careful to use *1
with projects like openSUSE:Factory unless you really mean that. Usually you use the package list from the less common denominator across all sources.
The resulting table is:
** gems **
+-------------------------+-------------------------+-------------------------+
| package | obs://devel:languages:r | gem://gems.rubyforge.or |
| | uby:extensions | g |
+=========================+=========================+=========================+
| rubygem-hpricot | 0.7 | 0.8 |
+-------------------------+-------------------------+-------------------------+
...
+-------------------------+-------------------------+-------------------------+
To only display a row, if certain repo contains a package older than any of the other repos, Add to the view definition:
filter.older={repoexpr}
repoexpr
can be the repository in repos option, or a shortcut $pos
($1
is the first one).
filter.older=$1
Example:
[gems]
repos=obs://devel:languages:ruby:extensions,gem://gems.rubyforge.org
packages=rubygem-hpricot
packages=*1
filter.older=$1
Will display only outdated packages with respect to the upstream gem server:
+-------------------------+-------------------------+-------------------------+
| package | obs://devel:languages:r | gem://gems.rubyforge.or |
| | uby:extensions | g |
+=========================+=========================+=========================+
| rubygem-commonwatir | 0 | 1.6.2 |
+-------------------------+-------------------------+-------------------------+
| rubygem-erubis | 2.6.2 | 2.6.4 |
+-------------------------+-------------------------+-------------------------+
| rubygem-facets | 2.5.0 | 2.5.1 |
+-------------------------+-------------------------+-------------------------+
| rubygem-fastthread | 1.0.1 | 1.0.6 |
+-------------------------+-------------------------+-------------------------+
...
- filter by name
- other outputs, like .changes and patchinfo
- show a package only if certain column is the smallest version [DONE]
- Developer maintains 3 packages for openSUSE factory.
- All packages can be found upstream in freshmeat
- he maintains them in his home build service project
- He wants to see 3 columnns: ** What is upstream ** What he has packaged in his repository ** What he has submited to Factory
- He can use the filter.older feature and set his home project as base. Then he will be informed when the upstream column is newer ** In theory he would be informed if Factory has a newer version than his home project, but this is not an expected case.
- Maintenance coordinator for a certain area
- Packages A,B,C,D,E present in openSUSE 11.1 GA
- Packages A,B,C, with bugfixes w/r to 11.1 versions come from one project in build service
- Packages D,E come from another developer, who keeps the updated versions in his home project.
- Coordinator wants to overview versions from GA, development projects, pending submissions to any of these packages to the 11.1 update repository and the update repository iteself.
- He wants to generate the .changes list from what is in the development project which are not yet in the update repository
- He wants to get a prototype of the PATCHINFO
11.1 Updates
Package | 11.1 GA | repo1 | repo2 | Update submitted | Updates |
---|---|---|---|---|---|
A | 1.0 | 1.2 | - | - | 1.1 |
B | 1.0 | 1.3 | - | - | - |
C | 1.0 | 1.2 | - | - | 1.1 |
D | 2.0 | - | 2.2 | - | - |
E | 2.0 | - | 2.3 | - | 2.1 |