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.
Latest release: 1.4
Read-only access to the latest development version:
git clone git://github.com/lvc/upstream-tracker.git
This program is free software. You may use, redistribute and/or modify it under the terms of the GNU AGPLv3.
- Perl (5.8 or newer)
- GNU Wget >= 1.12
- ABI Compliance Checker >= 1.99.9
- Java API Compliance Checker >= 1.3.6
- API Sanity Checker >= 1.98.6
- PkgDiff >= 1.6.1
- RfcDiff >= 1.41
Add Library Info
At first you should provide an entry for your library in the lib_info.xml file (libraries DB).
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:
Check all library versions for backward ABI/binary compatibility:
upstream-tracker -l <library_name> -cmp-abi
Test all library versions for runtime errors:
upstream-tracker -l <library_name> -test-api
You can view analysis reports in the following files:
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:
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
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.
We would like to thank everyone who has contributed to the success of this project!