Upstream Tracker

Jump to: navigation, search

Upstream Tracker is a tool for monitoring and analyzing upstream API/ABI changes in C/C++ and Java libraries (Live Demo). It is intended to automatically check all releases and development versions (from GIT, SVN, ...) of a variety of libraries for unintentional API breaks and critical run-time errors. The tool is able to automatically find, download and locally install new versions of libraries for the further in time analysis.

The service is based on the following tools: ABI Compliance Checker is used for tracking API changes in C/C++ libraries, Java API Compliance Checker is used for tracking API changes in Java libraries, API Sanity Checker is used for the automatic run-time unit testing and PkgDiff is used for tracking changes in source packages. The web-service regularly checks for new upstream releases (every day at 01:00 AM msk) of more than 600 libraries. The tool is intended for operating system maintainers to help in updating libraries and for software developers who are interested in ensuring backward compatibility and stability of the API.




All releases can be downloaded from this page or

Latest release: 1.4


Read-only access to the latest development version:
   git clone git://  


This program is free software. You may use, redistribute and/or modify it under the terms of the GNU AGPLv3.

Supported Platforms


System Requirements


Add Library Info

At first you should provide an entry for your library in the lib_info.xml file (libraries DB).

Download Packages

Download source packages of a library:
   upstream-tracker -l <library_name> -get 

All packages will be downloaded to the following directory:


Install all library versions to a local directory:
   upstream-tracker -l <library_name> -install 

All packages will be installed to the following directory:

ABI Tracking

Check all library versions for backward ABI/binary compatibility:
   upstream-tracker -l <library_name> -cmp-abi 

Runtime Testing

Test all library versions for runtime errors:
   upstream-tracker -l <library_name> -test-api 

View Results

You can view analysis reports in the following files:

Command-Line Options

See the list of all options on this page.


Download and install all release versions of bzip2:
   upstream-tracker -l bzip2 -get -install 

Check for ABI changes:
   upstream-tracker -l bzip2 -cmp-abi 

The results will be generated to:

Generate and execute shallow tests for API:
   upstream-tracker -l bzip2 -test-api 

Extract changelog from library packages:
   upstream-tracker -l bzip2 -changelog 

Generate tests in the Template2Code (T2C) format:
   upstream-tracker -l bzip2 -gen-t2c 

Check for new versions :
   upstream-tracker -l bzip2 -update 

Generate ABI changes statistics:
   upstream-tracker -stat 

Remove the library version from the system:
   upstream-tracker -l bzip2 -remove -v 1.0.5 

Download and install current (SCM) version of the libssh library:
   upstream-tracker -l libssh -get -install -v current 

Check current version of the libssh library for ABI changes:
   upstream-tracker -l libssh -cmp-api -current 

Add Library

To add a library to the tracker send a message with the subject "add library" to this address.


Bug reports, feature requests and questions please send to the maintainer.


The tool was initially developed by the Russian Linux Verification Center at ISPRAS and is now developed by ROSA Laboratory in Russia. Andrey Ponomarenko is the leader of this project.


We would like to thank everyone who has contributed to the success of this project!

Personal tools