jprochazk opened a new pull request, #26564:
URL: https://github.com/apache/datafusion/pull/26564
## Which issue does this PR close?
- Closes #26559.
## Rationale for this change
`datafusion-ffi` is built as a `cdylib` only so that its own integration
tests can `dlopen` it.
Every downstream build pays for compiling and linking that unused shared
library, and `sccache` can't cache crates with a `cdylib` crate type.
## What changes are included in this PR?
- New unpublished crate `datafusion-ffi-integration-tests` in
`datafusion/ffi/integration-tests/`, built as a `cdylib`, which re-exports the
`#[no_mangle]` test entry points from `datafusion_ffi::tests`.
Its `integration-tests` feature enables
`datafusion-ffi/integration-tests`, so regular workspace builds still don't
compile the test module.
- `datafusion/ffi/tests/` moves there unchanged, and `find_library` looks
for the new library name.
- `datafusion-ffi` is now a plain `rlib`.
- The `test ffi` xtask step and the `datafusion-ffi` agent skill include the
new crate.
The new crate needs both `cdylib` and `rlib`: with only `cdylib`, Cargo
doesn't build the library before running the crate's integration tests.
## What is the testing strategy for this PR?
Covered by the existing FFI integration tests, which now load the new
crate's `cdylib`.
## Are there any user-facing changes?
No. The public API and ABI of `datafusion-ffi` are unchanged. Crates that
build their own `cdylib` on top of `datafusion-ffi` are unaffected.
---
This PR was prepared with the help of a coding agent (Claude).
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]