kbendick opened a new pull request, #4638: URL: https://github.com/apache/iceberg/pull/4638
## Purpose As part of our journey to the 1.0 release, we'd like to have stability / binary compatibility guarantees for the `api` package. ## Added Adds a gradle plugin, that's currently still actively maintained, for the `Revapi` tool, for checking API and ABI compatibility and ensuring that any breaks are caught during `gradlew check` (or `gradlew revapi`). It also allows for allowing overrides and setting binary compatibility checks against different versions / tags. Info can be found here: https://github.com/palantir/gradle-revapi ## Using A generated override file is added that allows us to accept breaking changes and optionally denote why they're allowed. This plugin requires that we point to some sort of base (to check binary / API compatibility from). I pointed it to 0.13.1 for this PR. With this patch, if `./gradlew check` is run, it fails because it can't determine the correct upstream version to compare against. So I ran the following to generate the config file in `./palantir/revapi.yml`. ``` ./gradlew iceberg-api:revapiVersionOverride --replacement-version 0.13.1 ``` Please feel free to take a look. ## Why this plugin 1. MiMa doesn't support Gradle 2. This plugin is actively maintained and we already use several palantir projects in our build / linter infrastructure. 3. The simplicity of the generated file. 4. The fact that this adds additional gradle tasks, but also runs during the `check` phase so that little to none of our CI needs to change. Anybody who is interested, please take a look, play around and see how you like it. cc @rdblue @danielcweeks @nastra @jackye1995 @snazy -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
