This is a set of perl scripts we've developed to keep track of the status of each of the packages the group maintains. (We should get a real name for them
Lately, they have been rewritten almost completely to clean up the code, ease improvements and make them usable by other groups. This page is meant to be a place to discuss its development and start documenting it.
Current components:
- DebianQA/: perl namespace
- Svn.pm: SVN repository scanning, detection of available packages, changelog and watchfile extraction. Cache name: svn, indexed by: directory name. Data extracted:
- pkgname: source package name.
- version,
- date and
- changer: data from latest non-UNRELEASED entry in the changelog.
- un_version,
- un_date and
- un_changer: data from latest UNRELEASED entry in the changelog (if it's newer than latest non-UNRELEASED).
- watch: array of data from the watch file, one element per watch line later processed further in Watch.pm:
- opts: array of options.
- line: cleaned-up line (without options nor actions).
- md5: result of md5hex($opts.$line), where $opts is the raw options string.
- (un?)mangled_ver: the version field, modified according to this watch line.
- (un?)mangled_un_ver: the un_version field, modified according to this watch line. (This is not existant now)
- (un?)mangled_ver: the highest (un?)mangled_ver from all the watch lines.
- (un?)mangled_un_ver: the highest (un?)mangled_un_ver from all the watch lines.
- BTS: BTS bugs search and extraction for each source package. Cache name: bts, indexed by source package name, then by bug number. Data extracted:
All the data returned by the ?DebBugs SOAP interface for the bug.
- Watch.pm: Processing of watch files, scanning of upstream releases. Cache name: watch, indexed by: MD5 hash of watch line (as generated by Svn.pm). Each element represents a single line on some watch file. Data extracted:
- watch_error: if any.
- upstream_url: URL to the source tarball.
- upstream_version: upstream version detected.
- upstream_unmangled: upstream version after modification specified in watch line.
- Archive.pm: Download and parsing of Debian archive lists, also processes incoming and new information pages. Cache name: archive, indexed by suite (testing, unstable, etc.), then by source package name. Data extracted:
- Version number.
- Cache.pm
- Common.pm
- Config.pm
- Svn.pm: SVN repository scanning, detection of available packages, changelog and watchfile extraction. Cache name: svn, indexed by: directory name. Data extracted:
Things to-do:
- Add support for comments in the CGI script. A Comments.pm would be a good place to put the logic on.
- Maybe put all the clasification logic into another module.
Clasification issues
Classificating the different package status has proven to be confusing and hard to get right. So, I think we should first agree "on paper".
changelog |
SVN released version |
SVN unreleased version |
watchfile |
upstream version |
archive most recent version |
archive other version |
category |
notes |
missing |
|
|
|
|
|
|
Error |
|
ok |
|
|
missing |
|
|
|
Error |
|
none |
1.1 |
ok |
1.0 |
* |
* |
Needs upgrade / invalid? |
could be work in anticipation |
|
1.0 |
1.1 |
1.0 |
* |
* |
WiP / not shown / needs upgrade / invalid? |
|||
none |
1.0 |
1.0 |
* |
* |
Needs upgrade / WiP? |
|||
none |
1.0 |
1.1 |
* |
* |
Needs upgrade? |
|||
1.0 |
* |
0.9 |
* |
* |
Invalid version |
|||
1.0 |
* |
* |
1.1 |
* |
Invalid version |
|||
1.0 |
none |
1.0 |
0.9 |
* |
Needs upload |
|||
1.0 |
none |
1.0 |
1.0 |
* |
OK |
|||
1.0 |
none |
1.1 |
* |
* |
Needs upgrade |
|||
1.0 |
none |
1.1 |
0.9 |
* |
Needs upload + upgrade? |
|||
1.0 |
1.1 |
1.1 |
0.9 |
* |
Needs upload + upgrade? |
|||
1.0 |
1.1 |
1.1 |
1.0 |
* |
Needs upgrade / WiP? |
|||
1.0 |
none |
1.0 |
1.1 |
* |
Invalid version |
|||
1.0 |
1.1 |
1.1 |
* |
* |
Needs upgrade / WiP? |
and much more cases....