Upstream Tracker

From ISP_RAS
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.

Contents

Downloads

Releases

All releases can be downloaded from this page or github.com.

Latest release: 1.4

Git

Read-only access to the latest development version:
   git clone git://github.com/lvc/upstream-tracker.git  

License

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

Supported Platforms

GNU/Linux

System Requirements

Usage

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:
   repository/<library_name>

Installing

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

All packages will be installed to the following directory:
   testing/<library_name>

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:
   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.

Bugs

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!

Personal tools