Skip to content

io7m/scando

Repository files navigation

scando

Maven Central Maven Central (snapshot) Codecov

com.io7m.scando

JVM Platform Status
OpenJDK (Temurin) Current Linux Build (OpenJDK (Temurin) Current, Linux)
OpenJDK (Temurin) LTS Linux Build (OpenJDK (Temurin) LTS, Linux)
OpenJDK (Temurin) Current Windows Build (OpenJDK (Temurin) Current, Windows)
OpenJDK (Temurin) LTS Windows Build (OpenJDK (Temurin) LTS, Windows)

scando

A trivial command-line wrapper around japicmp.

Features

  • Simple command-line tool for checking jar version changes.
  • Compare jar files for semantic versioning conformance.
  • Compare Android aar files for semantic versioning conformance.
  • Powered by japicmp.
  • High-coverage automated test suite.
  • ISC license.

Building

$ mvn clean verify

Usage

Usage: scando [options]
  Options:
    --excludeList
      A file containing a list of package/class exclusions
    --help
      Display this help message
  * --htmlReport
      The output file for the HTML report
    --ignoreMissingOld
      Trivially succeed if the old jar is missing.
      Default: false
  * --newJar
      The new jar file
  * --newJarVersion
      The new jar version
  * --oldJarUri
      The old jar/aar file/URI
  * --oldJarVersion
      The old jar version
  * --textReport
      The output file for the plain text report

$ java -jar \
  com.io7m.scando.cmdline-0.0.1-main.jar \
  --oldJarUri https://repo1.maven.org/maven2/com/io7m/jtensors/io7m-jtensors-core/7.1.0/io7m-jtensors-core-7.1.0.jar \
  --newJar com.io7m.jtensors.core-9.0.0.jar \
  --oldJarVersion 7.1.0 \
  --newJarVersion 7.2.0 \
  --textReport report.txt \
  --htmlReport report.html
INFO: Text report written to report.txt
INFO: HTML report written to report.html
ERROR: Version change between 7.1.0 and 7.2.0 is MINOR, but the changes made to code require a MAJOR version change

$ echo $?
1

The --excludeListparameter, if specified, gives the path of a file containing one exclude pattern per line. Empty lines, and lines starting with #are ignored. See japicmp for the syntax of exclude patterns.

The --ignoreMissingOld parameter, if specified, allows for ignoring a missing "old" jar. This is useful when, for example, a new module is added to a project.