Skip to content

Instantly share code, notes, and snippets.

@kbendick
Created May 14, 2022 19:41
Show Gist options
  • Save kbendick/49f3064be343c60b36f84c046d69c62a to your computer and use it in GitHub Desktop.
Save kbendick/49f3064be343c60b36f84c046d69c62a to your computer and use it in GitHub Desktop.
Gradle Revapi Breaking Changes Just After Applying gradle revapi tool to Iceberg repo
./gradlew revapi
> Task :iceberg-api:revapi FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':iceberg-api:revapi'.
> There were Java public API/ABI breaks reported by revapi:
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ExpireSnapshots org.apache.iceberg.ExpireSnapshots::planWith(java.util.concurrent.ExecutorService)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ExpireSnapshots org.apache.iceberg.ExpireSnapshots::planWith(java.util.concurrent.ExecutorService)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::createBranch(java.lang.String, long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::createBranch(java.lang.String, long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::createTag(java.lang.String, long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::createTag(java.lang.String, long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::fastForwardBranch(java.lang.String, java.lang.String)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::fastForwardBranch(java.lang.String, java.lang.String)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::removeBranch(java.lang.String)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::removeBranch(java.lang.String)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::removeTag(java.lang.String)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::removeTag(java.lang.String)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::renameBranch(java.lang.String, java.lang.String)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::renameBranch(java.lang.String, java.lang.String)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::replaceBranch(java.lang.String, java.lang.String)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::replaceBranch(java.lang.String, java.lang.String)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::replaceBranch(java.lang.String, long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::replaceBranch(java.lang.String, long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::replaceTag(java.lang.String, long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::replaceTag(java.lang.String, long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::setMaxRefAgeMs(java.lang.String, long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::setMaxRefAgeMs(java.lang.String, long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::setMaxSnapshotAgeMs(java.lang.String, long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::setMaxSnapshotAgeMs(java.lang.String, long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::setMinSnapshotsToKeep(java.lang.String, int)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ManageSnapshots org.apache.iceberg.ManageSnapshots::setMinSnapshotsToKeep(java.lang.String, int)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.class.defaultSerializationChanged: The default serialization ID for the class has changed. This means that the new version of the class is not deserializable from the byte stream of a serialized old class.
old: class org.apache.iceberg.PartitionSpec
new: class org.apache.iceberg.PartitionSpec
SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING
From old archive: iceberg-api-0.13.0.jar
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.class.defaultSerializationChanged" \
--old "class org.apache.iceberg.PartitionSpec" \
--new "class org.apache.iceberg.PartitionSpec"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ReplacePartitions org.apache.iceberg.ReplacePartitions::validateFromSnapshot(long)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ReplacePartitions org.apache.iceberg.ReplacePartitions::validateFromSnapshot(long)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ReplacePartitions org.apache.iceberg.ReplacePartitions::validateNoConflictingData()
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ReplacePartitions org.apache.iceberg.ReplacePartitions::validateNoConflictingData()"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method org.apache.iceberg.ReplacePartitions org.apache.iceberg.ReplacePartitions::validateNoConflictingDeletes()
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method org.apache.iceberg.ReplacePartitions org.apache.iceberg.ReplacePartitions::validateNoConflictingDeletes()"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.class.defaultSerializationChanged: The default serialization ID for the class has changed. This means that the new version of the class is not deserializable from the byte stream of a serialized old class.
old: class org.apache.iceberg.Schema
new: class org.apache.iceberg.Schema
SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING
From old archive: iceberg-api-0.13.0.jar
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.class.defaultSerializationChanged" \
--old "class org.apache.iceberg.Schema" \
--new "class org.apache.iceberg.Schema"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method ThisT org.apache.iceberg.SnapshotUpdate<ThisT>::scanManifestsWith(java.util.concurrent.ExecutorService)
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method ThisT org.apache.iceberg.SnapshotUpdate<ThisT>::scanManifestsWith(java.util.concurrent.ExecutorService)"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.class.defaultSerializationChanged: The default serialization ID for the class has changed. This means that the new version of the class is not deserializable from the byte stream of a serialized old class.
old: class org.apache.iceberg.SortOrder
new: class org.apache.iceberg.SortOrder
SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING
From old archive: iceberg-api-0.13.0.jar
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.class.defaultSerializationChanged" \
--old "class org.apache.iceberg.SortOrder" \
--new "class org.apache.iceberg.SortOrder"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.method.addedToInterface: Method was added to an interface.
old: <none>
new: method T org.apache.iceberg.Scan<T extends org.apache.iceberg.Scan<T extends org.apache.iceberg.Scan<T>>>::planWith(java.util.concurrent.ExecutorService) @ org.apache.iceberg.TableScan
SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING
From old archive: <none>
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.method.addedToInterface" \
--new "method T org.apache.iceberg.Scan<T extends org.apache.iceberg.Scan<T extends org.apache.iceberg.Scan<T>>>::planWith(java.util.concurrent.ExecutorService) @ org.apache.iceberg.TableScan"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
java.class.defaultSerializationChanged: The default serialization ID for the class has changed. This means that the new version of the class is not deserializable from the byte stream of a serialized old class.
old: class org.apache.iceberg.util.CharSequenceSet
new: class org.apache.iceberg.util.CharSequenceSet
SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING
From old archive: iceberg-api-0.13.0.jar
From new archive: iceberg-api-0.14.0-SNAPSHOT.jar
If this is an acceptable break that will not harm your users, you can ignore it in future runs like so for:
* Just this break:
./gradlew :iceberg-api:revapiAcceptBreak --justification "{why this break is ok}" \
--code "java.class.defaultSerializationChanged" \
--old "class org.apache.iceberg.util.CharSequenceSet" \
--new "class org.apache.iceberg.util.CharSequenceSet"
* All breaks in this project:
./gradlew :iceberg-api:revapiAcceptAllBreaks --justification "{why this break is ok}"
* All breaks in all projects:
./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}"
----------------------------------------------------------------------------------------------------
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 4s
6 actionable tasks: 1 executed, 5 up-to-date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment