Version Tracker

Version Tracker is a project that provides both a command-line tool and a Python library to query the latest stable versions of different software products using web scrapping.

For example:

$ versiontracker vlc
vlc: 2.2.2 (2016-07-06) @


Version Tracker requires Python 3 and the following Python packages:

To build the offline documentation, you also need:


Use pip to install:

pip install versiontracker

Basic Command-Line Usage

To use the versiontracker command-line application pass it a list of software IDs:

$ versiontracker vlc xfce
vlc: 2.2.2 (2016-07-06) @
xfce: 4.12 (2015-02-28) @

You can use the -l option to get a list of supported software IDs:

$ versiontracker -l

Basic Library Usage

Use version_info() to get information about the latest stable version of a single product:

>>> from pprint import pprint
>>> from versiontracker import version_info
>>> pprint(version_info('vlc'))
{'id': 'vlc',
 'date': datetime.datetime(2016, 7, 6, 10, 10),
 'url': '',
 'version': '2.2.2'}

Use iter_version_info() to iterate through the version information of several products:

>>> from versiontracker import iter_version_info
>>> for version_data in iter_version_info(('vlc', 'xfce')):
...     pprint(version_data)
{'id': 'vlc',
 'date': datetime.datetime(2016, 7, 6, 10, 10),
 'url': '',
 'version': '2.2.2'}
{'id': 'xfce',
 'date': datetime.datetime(2015, 2, 28, 21, 7),
 'url': '',
 'version': '4.12'}

Use supported_software() to get a list of supported software IDs:

>>> from versiontracker import supported_software
>>> supported_software()
['kde-l10n-ca', 'kdiamond', 'kontactinterface', 'entropy', …]

Extending Software Support

Version Tracker is not designed to let each user keep their custom software tracking data or code. Changes require you to fork the source code. If you do, we encourage you to send us back your changes so that everyone can benefit from them.

Use the following to clone the Git repository and install in development mode, so that your changes have effect on your system as soon as you save them:

git clone
cd versiontracker
python3 -m venv venv
. venv/bin/activate
pip install -e .

You can now work directly on the newly created folder, and whenever you execute versiontracker within the generated Python virtual environment the code in that folder will be executed.

The following documents describe in details how to extend software support:

  • Extending Software Tracking Data describes how to add new software entries to the data.yaml file.

    This is how you extend software support, as long as you can use one of the existing spiders for the software that you want to support.

  • Creating a Spider describes how to write your own spider, a Python class that can fetch version information of one or more software products.

Command Line Help

Prints the latest stable version, release date and reference URL of the specified software products.

usage: versiontracker [-h] [-l] [-s SPIDER] [--list-spiders] [-v]
                      [PRODUCT [PRODUCT ...]]

Positional Arguments

PRODUCT ID of a software product whose latest stable version you want to know. Use -l to get a list of available IDs. If omitted, all supported products are selected.

Named Arguments

-l, --list-ids Lists IDs of supported software products.
-s, --spider

Possible choices: gitlab, nvidia, grass, hackage, openbsd, gitweb, opendesktop, apt, pypi, bitbucket, sourceforge, xpath, murrine, text, aqbanking, 4k, kdegit, launchpad, cgit, github, http

Prints results for all software that uses the specified spider.

--list-spiders Lists names of supported spiders.
-v, --version show program’s version number and exit


The Version Tracker command-line interface supports autocompletion of software IDs and spider names, you just need to activate autocompletion support.

Credits and License

Version Tracker may be used under the terms of the GNU Affero General Public License version 3 or later (AGPLv3+).

For a list of authors who should be credited, see Authors.