emecii opened a new pull request, #1722:
URL: https://github.com/apache/datafusion-python/pull/1722

   # Which issue does this PR close?
   
   Closes #1703.
   
   # Rationale for this change
   
   Unconditionally enabling `pyo3/extension-module` prevents ordinary Rust 
executables from linking the core rlib against libpython. It also prevents CI 
from executing useful Rust tests.
   
   # What changes are included in this PR?
   
   - Expose a default-on `extension-module` crate feature and gate the 
extension-only build-script linker arguments with it.
   - Explicitly enable that feature for all wheel builds, including 
free-threaded builds that disable defaults to avoid ABI3.
   - Add a separate integration-test executable that constructs 
`PySessionContext` from Rust, initializes Python, executes SQL through the 
bindings, and asserts a result. Run core Rust tests in Linux CI with defaults 
disabled and Substrait enabled.
   - Document the test/dependency configuration and the workspace 
feature-unification caveat.
   
   # Are there any user-facing changes?
   
   Rust executables can depend on `datafusion-python` with `default-features = 
false` and opt into features such as `substrait`. Default Python extension 
builds retain ABI3 and mimalloc; Python APIs are unchanged.
   
   # Validation
   
   Local macOS arm64 validation:
   
   - The new `rust_link` executable fails before the fix with unresolved `Py_*` 
symbols and passes after it. Both the minimal no-default-feature command and 
`cargo test --locked -p datafusion-python --no-default-features --features 
substrait` execute and pass the test.
   - All-target Cargo checks with defaults and without defaults; 
no-default-feature Clippy with `-D warnings`; all-target/all-feature Clippy 
through pre-commit.
   - Built and installed the ABI3 wheel with maturin 1.13.3. SQL/Arrow smoke 
check and the complete Python tests/doctests pass: **1,387 passed, 7 skipped**.
   - Built and installed the CPython 3.14t wheel with defaults disabled and 
`extension-module,mimalloc,substrait` enabled. SQL/Arrow smoke check passes and 
the GIL remains disabled after import and execution.
   - The composite action's actual argument script passes 54 combinations plus 
GIL-interpreter rejection in its Windows branch (branch logic exercised 
locally, not a Windows-host build).
   - Nightly rustfmt, Taplo, native Actionlint 1.7.12, and the remaining full 
pre-commit hooks pass. Docker is not installed locally, so the Docker 
Actionlint hook was replaced by the same pinned native version.
   
   Generated with OpenAI Codex.
   


-- 
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]

Reply via email to