Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kbendick/b9543ac8498bb06815a8c4e993f5c969 to your computer and use it in GitHub Desktop.
Save kbendick/b9543ac8498bb06815a8c4e993f5c969 to your computer and use it in GitHub Desktop.
Output of revapi analysis on Iceberg 0.14.0-SNAPSHOT when compared with 0.13.0 jar as of May 4th, 2022
./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 org.apache.iceberg.TableScan org.apache.iceberg.TableScan::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.TableScan org.apache.iceberg.TableScan::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.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}"
----------------------------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment