/japi-tracker

A tool to visualize API changes timeline of a Java library

Primary LanguagePerlGNU Lesser General Public License v2.1LGPL-2.1

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!