GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - revapi/revapi: Revapi is an API analysis and change tracking tool written in Java. Its focus is mainly on Java language itself but it has been specifically designed to not be limited to just Java. API is much more than just java classes - also various configuration files, schemas, etc. can contribute to it and users can become reliant on them.

BranchesTags
Open more actions menu

Latest commit

 

History

2,615 Commits
2,615 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
.mvn/wrapper
.mvn/wrapper
 
 
coverage
coverage
 
 
etc
etc
 
 
revapi-ant-task
revapi-ant-task
 
 
revapi-basic-features
revapi-basic-features
 
 
revapi-build-support
revapi-build-support
 
 
revapi-build
revapi-build
 
 
revapi-examples
revapi-examples
 
 
revapi-jackson
revapi-jackson
 
 
revapi-java-spi
revapi-java-spi
 
 
revapi-java
revapi-java
 
 
revapi-json
revapi-json
 
 
revapi-maven-plugin
revapi-maven-plugin
 
 
revapi-maven-utils
revapi-maven-utils
 
 
revapi-parent
revapi-parent
 
 
revapi-reporter-file-base
revapi-reporter-file-base
 
 
revapi-reporter-json
revapi-reporter-json
 
 
revapi-reporter-text
revapi-reporter-text
 
 
revapi-site-assembly
revapi-site-assembly
 
 
revapi-site
revapi-site
 
 
revapi-standalone
revapi-standalone
 
 
revapi-yaml
revapi-yaml
 
 
revapi
revapi
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.adoc
README.adoc
 
 
mvnw
mvnw
 
 
mvnw.cmd
mvnw.cmd
 
 
pom.xml
pom.xml
 
 

Repository files navigation

Revapi

Table of Contents
  • Summary
  • Building
  • Usage
    • Standalone
    • Maven
    • Gradle
    • Embedding
  • Extending Revapi
  • Getting in touch

Build Status Code Coverage

Revapi is a tool for API analysis and change tracking.

Summary

While Revapi is designed to be extensible and in theory should support API checks in other languages than Java (not just programming languages but anything that can be decomposed to a tree structure) the only extension in existence today is the Java API checker.

The main distinguishing features of the Java API checker include:

  • large number of API checks

    • categorized by their influence on source, binary and "semantic" compatibility

  • support for computing the API "surface" by tracking usages of types across the checked library and also its dependencies (ability to report type "leakage" from deps)

  • powerful filtering of elements to check and reclassification of found problems

  • ability to filter by annotation presence

  • Maven plugin automatically includes dependencies in the check

Other features:

  • ability to judge the severity of changes based on semver rules (see here)

  • automatic updates of pom.xml or release.properties versions according to semver rules (see here)

  • pluggable reporting (standard output, maven site generation, FreeMarker templates, JSON, …​)

Building

This is a maven project, so to build you simply:

mvn install

Usage

Revapi can be invoked in a couple of ways. It can be used as a standalone program, as a maven plugin or it can also be embedded in your application and used as a library.

Standalone

Download the standalone distribution zip and

unzip revapi-XXX-standalone.zip
cd revapi-XXX-standalone
./revapi.sh

Read the usage info and go.

Maven

<build>
    <plugins>
        <plugin>
            <groupId>org.revapi</groupId>
            <artifactId>revapi-maven-plugin</artifactId>
            <version>...</version>
            <dependencies>
                <dependency>
                    <groupId>org.revapi</groupId>
                    <artifactId>revapi-java</artifactId>
                    <version>...</version>
                </dependency>
                <dependency>
                    <groupId>com.acme</groupId>
                    <artifactId>my-extension</artifactId>
                    <version>...</version>
                </dependency>
                ...
            </dependencies>
            <configuration>
                ...
            </configuration>
            <executions>
                <execution>
                    <id>api-check</id>
                    <goals><goal>check</goal></goals>
                    ...
                </execution>
                ...
            </executions>
        </plugin>
        ...
    </plugins>
    ...
</build>

Gradle

The Gradle plugin available for Revapi at https://plugins.gradle.org/plugin/org.revapi.revapi-gradle-plugin and it is maintained under https://github.com/revapi/gradle-revapi

buildscript {
  repositories {
    maven {
      url = uri("https://plugins.gradle.org/m2/")
    }
  }
  dependencies {
    classpath("org.revapi:gradle-revapi:x.y.z")
  }
}

apply(plugin = "org.revapi.revapi-gradle-plugin")

Embedding

Revapi revapi = Revapi.builder().withAllExtensionsFromThreadContextClassLoader().build();

AnalysisContext analysisContext = AnalysisContext.builder()
    .withOldAPI(API.of(...))
    .withNewAPI(API.of(...))
    .withConfigurationFromJSON("json").build();

revapi.analyze(analysisContext);

Extending Revapi

See the site for more info.

Getting in touch

Mastodon

@[email protected]

Twitter

@revapi_org

Matrix

#revapiorg:matrix.org

Mailing list

[email protected]

Issues

https://github.com/revapi/revapi/issues

Code

https://github.com/revapi/

About

Revapi is an API analysis and change tracking tool written in Java. Its focus is mainly on Java language itself but it has been specifically designed to not be limited to just Java. API is much more than just java classes - also various configuration files, schemas, etc. can contribute to it and users can become reliant on them.

revapi.org

Topics

apiapi-analyzercompatibilityjavamaven-pluginrevapi

Resources

Readme
Apache-2.0 license
Activity
Custom properties

Stars

224 stars

Watchers

8 watching

Forks

51 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.