Upstream Tracker
Upstream Tracker is a tool-chain and free web-service (Live Demo) for monitoring and analyzing of C/C++ and Java libraries upstream development. 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 includes more than 400 libraries and regularly checks for new upstream releases (every day at 01:00 AM msk). The web-service is intended for Linux maintainers to help in updating C/C++ and Java libraries and for software developers who are interested in ensuring backward compatibility and stability of the API.
Contents |
Downloads
The latest release can be downloaded from this page.
License
This program is free software. You may use, redistribute and/or modify it under the terms of the GNU GPL.
Supported Platforms
GNU/Linux, FreeBSD
System Requirements
- Perl (5.8 or newer)
- GNU Wget
- ABI Compliance Checker >= 1.97.4
- Java API Compliance Checker >= 1.1
- API Sanity Checker >= 1.12.9
- PkgDiff >= 1.3.3
Usage
At first you should provide an entry for your library in the lib_info.xml file (libraries database).
Obtaining Packages
Command for downloading sources for all versions of the library:
upstream-tracker -l <library_name> -get
All packages will be downloaded to the following directory:
repository/<library_name>/
Installing
Command for locally installing all versions of the library:
upstream-tracker -l <library_name> -install
All packages will be installed to the following directory:
testing/<library_name>/
Runtime Testing
Command for runtime testing of all library versions:
upstream-tracker -l <library_name> -test-api
ABI Tracking
Command for checking backward binary compatibility of all library versions:
upstream-tracker -l <library_name> -cmp-abi
Viewing Results
You can view current test results through the following files:
versions/<library_name>.html
index.html
Command-Line Options
See the list of all options on this page.
Examples
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:
versions/bzip2.html
index.html
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
Add Library
To add a library to the tracker send a message with the subject "add library" to this address.
Contacts
Bug reports, feature requests and questions please send to the maintainer.
Maintainers
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.
Credits
We would like to thank everyone who has contributed to the success of this project!