yihua opened a new pull request, #849:
URL: https://github.com/apache/hudi-rs/pull/849
## Description
The C ABI crate takes `hudi` with its defaults, so a consumer of
`hudi-jvm-ffi` gets the merge map's on-disk tier (`spill-rocksdb`, and with it
RocksDB, bindgen and libclang) with no way to opt out, since a consumer can
only drop a feature its direct dependency exposes. This forwards the feature
the way `hudi-datafusion` and `hudi` already do: `default = ["spill-rocksdb"]`,
`spill-rocksdb = ["hudi/spill-rocksdb"]`, and `hudi` taken with
`default-features = false`. Default builds are unchanged; a consumer that wants
the tier gone builds the crate with `--no-default-features`.
The `no-spill-backend` CI job now checks the crate without the feature and
includes it in the `cargo tree -i rocksdb` presence and absence assertions, so
a change that reintroduces the native dependency through this crate fails
there. The Features paragraph in `AGENTS.md` names the crate among the
forwarders.
Follows the review on #834, which rebases onto this once it lands, alongside
#847.
## How are the changes test-covered
- [ ] N/A
- [x] Automated tests (unit and/or integration tests)
- [x] Manual tests
- [x] Details are described below
The CI dependency-graph assertion is the test: with `--no-default-features`,
`cargo tree -p hudi-jvm-ffi -i rocksdb` reports the package absent, and with
defaults it still lists `rocksdb` under `hudi-core`. On `main` the opt-out form
still reaches `rocksdb`. Locally, `cargo check`, `cargo clippy --all-targets -D
warnings` and `cargo test -p hudi-jvm-ffi` pass both with defaults and with
`--no-default-features`, and `Cargo.lock` is unchanged.
--
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]