nastra opened a new issue, #6144: URL: https://github.com/apache/iceberg/issues/6144
### Feature Request / Improvement I enabled `revapi` on the `iceberg-core` module to check its current state in terms of API/ABI compatibility with 1.0.0. Below is the result: ``` > Task :iceberg-core:revapi FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':iceberg-core:revapi'. > There were Java public API/ABI breaks reported by revapi: java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllDataFilesTable.AllDataFilesTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllDataFilesTable.AllDataFilesTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllDeleteFilesTable.AllDeleteFilesTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllDeleteFilesTable.AllDeleteFilesTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllFilesTable.AllFilesTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllFilesTable.AllFilesTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllManifestsTable.AllManifestsTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.AllManifestsTable.AllManifestsTableScan" * All breaks in this project: ./gradlew :iceberg-core: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.BaseMetadataTable new: class org.apache.iceberg.BaseMetadataTable SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.class.defaultSerializationChanged" \ --old "class org.apache.iceberg.BaseMetadataTable" \ --new "class org.apache.iceberg.BaseMetadataTable" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.BaseOverwriteFiles new: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.BaseOverwriteFiles SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.BaseOverwriteFiles" \ --new "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.BaseOverwriteFiles" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method void org.apache.iceberg.BaseOverwriteFiles::validate(org.apache.iceberg.TableMetadata) new: method void org.apache.iceberg.BaseOverwriteFiles::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method void org.apache.iceberg.BaseOverwriteFiles::validate(org.apache.iceberg.TableMetadata)" \ --new "method void org.apache.iceberg.BaseOverwriteFiles::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseReplacePartitions::apply(org.apache.iceberg.TableMetadata) new: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseReplacePartitions::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseReplacePartitions::apply(org.apache.iceberg.TableMetadata)" \ --new "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseReplacePartitions::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method void org.apache.iceberg.BaseReplacePartitions::validate(org.apache.iceberg.TableMetadata) new: method void org.apache.iceberg.BaseReplacePartitions::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method void org.apache.iceberg.BaseReplacePartitions::validate(org.apache.iceberg.TableMetadata)" \ --new "method void org.apache.iceberg.BaseReplacePartitions::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseRewriteManifests::apply(org.apache.iceberg.TableMetadata) new: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseRewriteManifests::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseRewriteManifests::apply(org.apache.iceberg.TableMetadata)" \ --new "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.BaseRewriteManifests::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.BaseRewriteManifests new: method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.BaseRewriteManifests SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.BaseRewriteManifests" \ --new "method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.BaseRewriteManifests" * All breaks in this project: ./gradlew :iceberg-core: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.BaseTable new: class org.apache.iceberg.BaseTable SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.class.defaultSerializationChanged" \ --old "class org.apache.iceberg.BaseTable" \ --new "class org.apache.iceberg.BaseTable" * All breaks in this project: ./gradlew :iceberg-core: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.BaseTransaction.TransactionTable new: class org.apache.iceberg.BaseTransaction.TransactionTable SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.class.defaultSerializationChanged" \ --old "class org.apache.iceberg.BaseTransaction.TransactionTable" \ --new "class org.apache.iceberg.BaseTransaction.TransactionTable" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.DataFilesTable.DataFilesTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.DataFilesTable.DataFilesTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.DataTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.DataTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.DeleteFilesTable.DeleteFilesTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.DeleteFilesTable.DeleteFilesTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.FilesTable.FilesTableScan new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method boolean org.apache.iceberg.BaseTableScan::colStats() @ org.apache.iceberg.FilesTable.FilesTableScan" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method void org.apache.iceberg.ManifestReader<F extends org.apache.iceberg.ContentFile<F extends org.apache.iceberg.ContentFile<F>>>::<init>(org.apache.iceberg.io.InputFile, java.util.Map<java.lang.Integer, org.apache.iceberg.PartitionSpec>, org.apache.iceberg.InheritableMetadata, org.apache.iceberg.ManifestReader.FileType) new: method void org.apache.iceberg.ManifestReader<F extends org.apache.iceberg.ContentFile<F extends org.apache.iceberg.ContentFile<F>>>::<init>(org.apache.iceberg.io.InputFile, int, java.util.Map<java.lang.Integer, org.apache.iceberg.PartitionSpec>, org.apache.iceberg.InheritableMetadata, org.apache.iceberg.ManifestReader.FileType) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method void org.apache.iceberg.ManifestReader<F extends org.apache.iceberg.ContentFile<F extends org.apache.iceberg.ContentFile<F>>>::<init>(org.apache.iceberg.io.InputFile, java.util.Map<java.lang.Integer, org.apache.iceberg.PartitionSpec>, org.apache.iceberg.InheritableMetadata, org.apache.iceberg.ManifestReader.FileType)" \ --new "method void org.apache.iceberg.ManifestReader<F extends org.apache.iceberg.ContentFile<F extends org.apache.iceberg.ContentFile<F>>>::<init>(org.apache.iceberg.io.InputFile, int, java.util.Map<java.lang.Integer, org.apache.iceberg.PartitionSpec>, org.apache.iceberg.InheritableMetadata, org.apache.iceberg.ManifestReader.FileType)" * All breaks in this project: ./gradlew :iceberg-core: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.MetricsConfig new: class org.apache.iceberg.MetricsConfig SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.class.defaultSerializationChanged" \ --old "class org.apache.iceberg.MetricsConfig" \ --new "class org.apache.iceberg.MetricsConfig" * All breaks in this project: ./gradlew :iceberg-core: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.SerializableTable new: class org.apache.iceberg.SerializableTable SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.class.defaultSerializationChanged" \ --old "class org.apache.iceberg.SerializableTable" \ --new "class org.apache.iceberg.SerializableTable" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.StreamingDelete new: method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.StreamingDelete SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.StreamingDelete" \ --new "method java.util.List<org.apache.iceberg.ManifestFile> org.apache.iceberg.MergingSnapshotProducer<ThisT>::apply(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.StreamingDelete" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.StreamingDelete new: method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.StreamingDelete SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata) @ org.apache.iceberg.StreamingDelete" \ --new "method void org.apache.iceberg.SnapshotProducer<ThisT>::validate(org.apache.iceberg.TableMetadata, org.apache.iceberg.Snapshot) @ org.apache.iceberg.StreamingDelete" * All breaks in this project: ./gradlew :iceberg-core: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.TableMetadata new: class org.apache.iceberg.TableMetadata SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.class.defaultSerializationChanged" \ --old "class org.apache.iceberg.TableMetadata" \ --new "class org.apache.iceberg.TableMetadata" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method org.apache.iceberg.TableMetadata.Builder org.apache.iceberg.TableMetadata.Builder::removeBranch(java.lang.String) new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method org.apache.iceberg.TableMetadata.Builder org.apache.iceberg.TableMetadata.Builder::removeBranch(java.lang.String)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.field.noLongerConstant: Field no longer declares a constant value. old: field org.apache.iceberg.TableProperties.DELETE_MODE_DEFAULT new: field org.apache.iceberg.TableProperties.DELETE_MODE_DEFAULT SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.field.noLongerConstant" \ --old "field org.apache.iceberg.TableProperties.DELETE_MODE_DEFAULT" \ --new "field org.apache.iceberg.TableProperties.DELETE_MODE_DEFAULT" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.field.noLongerConstant: Field no longer declares a constant value. old: field org.apache.iceberg.TableProperties.MERGE_MODE_DEFAULT new: field org.apache.iceberg.TableProperties.MERGE_MODE_DEFAULT SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.field.noLongerConstant" \ --old "field org.apache.iceberg.TableProperties.MERGE_MODE_DEFAULT" \ --new "field org.apache.iceberg.TableProperties.MERGE_MODE_DEFAULT" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.field.noLongerConstant: Field no longer declares a constant value. old: field org.apache.iceberg.TableProperties.UPDATE_MODE_DEFAULT new: field org.apache.iceberg.TableProperties.UPDATE_MODE_DEFAULT SOURCE: EQUIVALENT, BINARY: EQUIVALENT, SEMANTIC: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.field.noLongerConstant" \ --old "field org.apache.iceberg.TableProperties.UPDATE_MODE_DEFAULT" \ --new "field org.apache.iceberg.TableProperties.UPDATE_MODE_DEFAULT" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.numberOfParametersChanged: The number of parameters of the method have changed. old: method <T> org.apache.iceberg.io.CloseableIterable<T> org.apache.iceberg.deletes.Deletes::filterDeleted(org.apache.iceberg.io.CloseableIterable<T>, java.util.function.Predicate<T>) new: method <T> org.apache.iceberg.io.CloseableIterable<T> org.apache.iceberg.deletes.Deletes::filterDeleted(org.apache.iceberg.io.CloseableIterable<T>, java.util.function.Predicate<T>, org.apache.iceberg.deletes.DeleteCounter) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.numberOfParametersChanged" \ --old "method <T> org.apache.iceberg.io.CloseableIterable<T> org.apache.iceberg.deletes.Deletes::filterDeleted(org.apache.iceberg.io.CloseableIterable<T>, java.util.function.Predicate<T>)" \ --new "method <T> org.apache.iceberg.io.CloseableIterable<T> org.apache.iceberg.deletes.Deletes::filterDeleted(org.apache.iceberg.io.CloseableIterable<T>, java.util.function.Predicate<T>, org.apache.iceberg.deletes.DeleteCounter)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method void org.apache.iceberg.deletes.EqualityDeleteWriter<T>::delete(T) new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method void org.apache.iceberg.deletes.EqualityDeleteWriter<T>::delete(T)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method void org.apache.iceberg.deletes.EqualityDeleteWriter<T>::deleteAll(java.lang.Iterable<T>) new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method void org.apache.iceberg.deletes.EqualityDeleteWriter<T>::deleteAll(java.lang.Iterable<T>)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method void org.apache.iceberg.deletes.PositionDeleteWriter<T>::delete(java.lang.CharSequence, long) new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method void org.apache.iceberg.deletes.PositionDeleteWriter<T>::delete(java.lang.CharSequence, long)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method void org.apache.iceberg.deletes.PositionDeleteWriter<T>::delete(java.lang.CharSequence, long, T) new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method void org.apache.iceberg.deletes.PositionDeleteWriter<T>::delete(java.lang.CharSequence, long, T)" * All breaks in this project: ./gradlew :iceberg-core: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.hadoop.conf.Configuration org.apache.hadoop.conf.Configurable::getConf() @ org.apache.iceberg.hadoop.HadoopConfigurable SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING From old archive: <none> From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.addedToInterface" \ --new "method org.apache.hadoop.conf.Configuration org.apache.hadoop.conf.Configurable::getConf() @ org.apache.iceberg.hadoop.HadoopConfigurable" * All breaks in this project: ./gradlew :iceberg-core: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 void org.apache.hadoop.conf.Configurable::setConf(org.apache.hadoop.conf.Configuration) @ org.apache.iceberg.hadoop.HadoopConfigurable SOURCE: BREAKING, BINARY: NON_BREAKING, SEMANTIC: POTENTIALLY_BREAKING From old archive: <none> From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.addedToInterface" \ --new "method void org.apache.hadoop.conf.Configurable::setConf(org.apache.hadoop.conf.Configuration) @ org.apache.iceberg.hadoop.HadoopConfigurable" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.visibilityReduced: visibility reduced old: method java.lang.String[] org.apache.iceberg.hadoop.Util::blockLocations(org.apache.iceberg.io.FileIO, org.apache.iceberg.CombinedScanTask) new: method java.lang.String[] org.apache.iceberg.hadoop.Util::blockLocations(org.apache.iceberg.io.FileIO, org.apache.iceberg.ContentScanTask<?>) SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.visibilityReduced" \ --old "method java.lang.String[] org.apache.iceberg.hadoop.Util::blockLocations(org.apache.iceberg.io.FileIO, org.apache.iceberg.CombinedScanTask)" \ --new "method java.lang.String[] org.apache.iceberg.hadoop.Util::blockLocations(org.apache.iceberg.io.FileIO, org.apache.iceberg.ContentScanTask<?>)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.removed: Method was removed. old: method void org.apache.iceberg.io.DataWriter<T>::add(T) new: <none> SOURCE: BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: <none> 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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.removed" \ --old "method void org.apache.iceberg.io.DataWriter<T>::add(T)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.parameterTypeChanged: The type of the parameter changed from 'org.apache.iceberg.FileScanTask' to 'org.apache.iceberg.ContentScanTask<?>'. old: parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.FileScanTask===) new: parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.ContentScanTask<?>===) SOURCE: POTENTIALLY_BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.parameterTypeChanged" \ --old "parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.FileScanTask===)" \ --new "parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.ContentScanTask<?>===)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.parameterTypeChanged: The type of the parameter changed from 'org.apache.iceberg.FileScanTask' to 'org.apache.iceberg.ContentScanTask<?>'. old: parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.FileScanTask===, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>) new: parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.ContentScanTask<?>===, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>) SOURCE: POTENTIALLY_BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.parameterTypeChanged" \ --old "parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.FileScanTask===, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>)" \ --new "parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.ContentScanTask<?>===, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- java.method.parameterTypeChanged: The type of the parameter changed from 'org.apache.iceberg.FileScanTask' to 'org.apache.iceberg.ContentScanTask<?>'. old: parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.FileScanTask===, org.apache.iceberg.types.Types.StructType, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>) new: parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.ContentScanTask<?>===, org.apache.iceberg.types.Types.StructType, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>) SOURCE: POTENTIALLY_BREAKING, BINARY: BREAKING From old archive: iceberg-core-1.0.0.jar From new archive: iceberg-core-1.2.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-core:revapiAcceptBreak --justification "{why this break is ok}" \ --code "java.method.parameterTypeChanged" \ --old "parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.FileScanTask===, org.apache.iceberg.types.Types.StructType, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>)" \ --new "parameter java.util.Map<java.lang.Integer, ?> org.apache.iceberg.util.PartitionUtil::constantsMap(===org.apache.iceberg.ContentScanTask<?>===, org.apache.iceberg.types.Types.StructType, java.util.function.BiFunction<org.apache.iceberg.types.Type, java.lang.Object, java.lang.Object>)" * All breaks in this project: ./gradlew :iceberg-core:revapiAcceptAllBreaks --justification "{why this break is ok}" * All breaks in all projects: ./gradlew revapiAcceptAllBreaks --justification "{why this break is ok}" ---------------------------------------------------------------------------------------------------- ``` /cc @rdblue @danielcweeks ### Query engine _No response_ -- 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: issues-unsubscr...@iceberg.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org