Hello all,

I've never tried emailing two different project lists at once, but it was
suggested that I do so to try to track the conversation across both
communities. We'll see how this threads on the mailing lists.


There has been a GitHub Discussion
https://github.com/apache/iceberg-rust/discussions/2992#discussioncomment-18082533,
a GitHub Issue https://github.com/apache/iceberg-rust/issues/3029, and it's
been a long topic of conversation in the past two weeks in both the
DataFusion and Iceberg Rust Community Calls to discuss moving the
DataFusion integration from Iceberg Rust to a separate repository. I will
try to summarize some of the major points as I understand them, but the
conversations are the ground truth and please feel free to correct me here.


The DataFusion TableProvider integration in Iceberg Rust makes DataFusion a
dependency for Iceberg Rust. The integration exists for multiple reasons:

1) an engine to execute Iceberg Rust's corpus of sqllogictest files

2) a TableProvider integration for DataFusion users to interact with
Iceberg tables


Some of the motivations to break out the integration:

1) There have been a number of issues and pull requests against the
DataFusion TableProvider in Iceberg Rust as users want to add more
features, and they often go stale. I don't believe there are many
committers/PMC members familiar with or using the DataFusion integration.

2) Iceberg Rust would like to stay as engine-agnostic as possible. A recent
DataFusion Ballista integration was declined for this reason
https://github.com/apache/iceberg-rust/pull/2613.

3) Other projects that rely on both Iceberg Rust and DataFusion (e.g.,
Comet) are blocked by Iceberg Rust upgrading its DataFusion and Arrow
dependencies before they can upgrade.


Some considerations for both communities:

1) Where would this DataFusion TableProvider live? Most specifically, would
it be an Apache-governed project? As folks like @andygrove point out, this
can affect whether some community members could contribute to it. There is
a datafusion-contrib org for DataFusion-related projects to have visibility
but no Apache governance, but there may be options to put it under an
Apache repository.

2) How would Iceberg Rust continue to run sqllogictests for regression
testing? Does this live in a different repository that depends on this new
Iceberg Rust TableProvider crate? Would we be able to test Pull Requests on
Iceberg Rust with sqllogictests?

3) @kevinqliu is familiar with the Python bindings in Iceberg Rust, and I
believe that DataFusion dependency might be removed as well, but that is
not the core focus of this conversation. He has also proposed removing that
and using the DataFusion Python bindings directly.


I'm sure I'm forgetting things, but this email is long enough.


Thanks everyone for the discussion thus far, and looking forward to more
input on this.


-Matt

Reply via email to