japi-tracker icon indicating copy to clipboard operation
japi-tracker copied to clipboard

A tool to visualize API changes timeline of a Java library

NAME: Java API Tracker - visualize API changes timeline of a Java library.

The tool requires input profile of the library in JSON format. It can be created manually or automatically generated by the Java API Monitor.

Sample report: https://abi-laboratory.pro/java/tracker/timeline/slf4j/

The tool is developed by Andrey Ponomarenko: https://abi-laboratory.pro/

INSTALL: sudo make install prefix=/usr

REQUIRES: Perl 5 Java API Compliance Checker (2.4 or newer) Java API Monitor (1.3 or newer) PkgDiff (1.6.4 or newer)

USAGE: japi-tracker [options] [profile]

The input profile can be generated by the API Monitor tool. All manual edits in the profile will be preserved after re-generating it by the API Monitor.

The home page of the output report is: timeline/LIB_NAME/index.html

EXAMPLES: japi-tracker -build slf4j.json

CRON JOB: japi-monitor -get -build-new [profile] japi-tracker -build [profile]

PROFILE FORMAT:

{ "Name": "SHORT LIBRARY NAME", "SourceUrl": "URL TO DOWNLOAD PACKAGES", "Maintainer": "MAINTAINER NAME",

"Versions": [ { "Number": "VERSION NUMBER", "Installed": "INSTALL TREE PATH", "Source": "SOURCE PACKAGE PATH", "Changelog": "CHANGELOG: On/Off", "PkgDiff": "PACKAGE DIFF: On/Off" },

...

{ ... }] }

PROFILE EXAMPLE:

{ "Name": "slf4j", "SourceUrl": "http://www.slf4j.org/dist/", "Maintainer": "Andrey P.",

"Versions": [ { "Number": "1.7.19", "Installed": "installed/slf4j/1.7.19", "Source": "src/slf4j/1.7.19/slf4j-1.7.19.zip", "Changelog": "Off", "PkgDiff": "Off" },

{ "Number": "1.7.18", "Installed": "installed/slf4j/1.7.18", "Source": "src/slf4j/1.7.18/slf4j-1.7.18.zip", "Changelog": "Off", "PkgDiff": "Off" },

...

{ "Number": "1.6.0", "Installed": "installed/slf4j/1.6.0", "Source": "src/slf4j/1.6.0/slf4j-1.6.0.zip", "Changelog": "Off", "PkgDiff": "Off" }] }

ADV. OPTIONS: If you want to allow users to connect the maintainer of the tracker then you can set "MaintainerUrl" option.

To skip checking of some archives in the install tree of a library please define "SkipArchives": ["A1", ..., "An"] option.

The name of the analysed library in the title can be changed by "Title" option.

ADV. OPTIONS OF A VERSION: To hide some version in the report you can define "Deleted" option.

ADV. USAGE: For advanced usage, see output of --help option.

Enjoy!