Last weekend I was revisiting the Fedora project Anitya, an application for cross-platform release monitoring. The site collects submitted application metadata and automatically checks every entry for upstream releases, using a collection of different backend scripts to ease the text parsing for versioning information. Therefore Anitya is able to monitor a huge collection of application updates, regardless to which platform or operating system they belong to. So I was wondering how easy it would be to check and compare about 52,821 Archlinux software packages against the upstream version number provided by Anitya. I made a small python script called arch-upstream which is able to report status pages in html.

Generated report site with list of outdated packages

So what the script does is first of all, downloading package databases, which sources are specified in a config file, then loading all package description files inside the databases which provide version information. After that, the script queries the Anitya API and compares the version numbers. Using the Archlinux package api, the script checks if the package is already flagged outdated and additionally, if there’s any newer version already present in the testing repositories. After all information is gathered, two report pages are generated. One report, which lists all outdated packages and an other reprot which lists all Archlinux packages which are not yet tracked by Anitya. The pages are available on my server and are getting updated every 3 hours, here.

The running python script

So now you can easily contribute to this project by flagging packages out-of-date or creating further scripts on release-monitoring.org for missing and not yet listed packages :)