Skip to content

Core: Remove deprecated methods and fields scheduled for 1.12.0 removal - #17700

Open
dramaticlly wants to merge 2 commits into
apache:mainfrom
dramaticlly:1.12deprecation-core-misc-removals
Open

Core: Remove deprecated methods and fields scheduled for 1.12.0 removal#17700
dramaticlly wants to merge 2 commits into
apache:mainfrom
dramaticlly:1.12deprecation-core-misc-removals

Conversation

@dramaticlly

Copy link
Copy Markdown
Contributor

Removes the remaining core API marked for removal in 1.12.0 that has no callers left. Each item is an independent deletion; grouping them keeps the review to one pass over one module rather than nine tiny PRs.

Removed Replacement
SystemProperties (class) SystemConfigs
ThreadPools.newWorkerPool(String), newWorkerPool(String, int) newExitingWorkerPool for long-lived pools, newFixedThreadPool for short-lived
ContentCache.invalidateAll() none — was best-effort and racy by design
TableProperties.MANIFEST_LISTS_ENABLED, MANIFEST_LISTS_ENABLED_DEFAULT none — writing manifest lists is always enabled
AvroSchemaUtil.pruneColumns(Schema, Set, NameMapping) applyNameMapping + pruneColumns(Schema, Set)
SnapshotUtil.newFiles, newFilesBetween SnapshotChanges with ancestorsBetween
TableScanUtil.hasDeletes(CombinedScanTask), hasEqDeletes(CombinedScanTask) the FileScanTask overloads
StandardEncryptionManager(String, int, KeyManagementClient), wrapKey, unwrapKey the constructor taking encryption keys
ManifestFiles.read(ManifestFile, FileIO), readPaths(ManifestFile, FileIO), open(ManifestFile, FileIO) the overloads taking a specs map
BaseScan.io() table().io()

The only change that is not a pure deletion: BaseScan.io() was a protected helper, so its two subclass users are migrated to call table().io() directly — DataScan (1 site) and BaseDistributedDataScan (3 sites). No engine module subclasses used it.

AI Disclosure

Model: Claude Opus 5 (1M context)
Platform/Tool: Claude Code
Human Oversight: reviewed
Prompt Summary: split #16449 into smaller self-contained PRs; verify each group compiles and tests green standalone

Removes the remaining core API marked for removal in 1.12.0 that has no
callers left:

- SystemProperties (class) -> SystemConfigs
- ThreadPools.newWorkerPool(String) and newWorkerPool(String, int) ->
  newExitingWorkerPool or newFixedThreadPool depending on pool lifetime
- ContentCache.invalidateAll(), which was only best-effort and racy
- TableProperties.MANIFEST_LISTS_ENABLED and MANIFEST_LISTS_ENABLED_DEFAULT;
  writing manifest lists is always enabled
- AvroSchemaUtil.pruneColumns(Schema, Set, NameMapping) -> applyNameMapping
  plus pruneColumns(Schema, Set)
- SnapshotUtil.newFiles and newFilesBetween -> SnapshotChanges with
  ancestorsBetween
- TableScanUtil.hasDeletes(CombinedScanTask) and hasEqDeletes(CombinedScanTask)
- StandardEncryptionManager(String, int, KeyManagementClient), wrapKey and
  unwrapKey
- ManifestFiles.read(ManifestFile, FileIO), readPaths(ManifestFile, FileIO)
  and open(ManifestFile, FileIO) -> the overloads taking a specs map
- BaseScan.io() -> table().io(); DataScan and BaseDistributedDataScan are
  migrated to call table().io() directly
@github-actions github-actions Bot added the core label Aug 17, 2026
private TableScanUtil() {}

/**
* @deprecated since 1.11.0 and will be removed in 1.12.0

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@manuzhang can you check for #15543

@dramaticlly

Copy link
Copy Markdown
Contributor Author

@RussellSpitzer can you help check for ManifestFiles in #15575 and SnapshotUtil from #15656
@gaborkaszab can you help check the rest of core package class/method removal?

Comment thread core/src/test/java/org/apache/iceberg/TestManifestReader.java Outdated
@nssalian nssalian added this to the Iceberg 1.12.0 milestone Aug 18, 2026
@uros-b

uros-b commented Aug 18, 2026

Copy link
Copy Markdown
Member

LGTM

@manuzhang

Copy link
Copy Markdown
Member

@dramaticlly Please include a Generated-by: <tool> token in the commit message

@nastra

nastra commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

@dramaticlly Please include a Generated-by: <tool> token in the commit message

@manuzhang I don't think we require this. Also our guidelines don't say that this must be included

@manuzhang

Copy link
Copy Markdown
Member

@nastra Sure, I'm referring to ai-generated-pr-disclosure, which is not a hard requirement, of course.

@nastra

nastra commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

@nastra Sure, I'm referring to ai-generated-pr-disclosure, which is not a hard requirement, of course.

ah interesting, I wasn't aware about this particular sentence. thanks for mentioning it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants