jiayuasu opened a new pull request, #1134: URL: https://github.com/apache/sedona-db/pull/1134
Fixes the `geopandas / geopandas-build` failure on `main` introduced by #1095, reported in https://github.com/apache/sedona-db/pull/1095#issuecomment-5220839172. ## The failure The wheels job for `sedonadb-geopandas` ran for the first time after #1095 merged (before that it was always skipped, because the extension jobs were gated behind platform jobs that were failing) and its test step failed: ``` E ModuleNotFoundError: No module named 'geoarrow' ========================= 14 failed, 9 passed in 0.88s ========================= ``` GeoPandas interop in this package routes through sedonadb's own pandas/GeoPandas conversion, which imports `geoarrow.pyarrow`. Without it, every call that materializes a frame — so anything reaching `to_geopandas()` — fails. ## Two places were missing it - **`pyproject.toml` extras.** The `geopandas` and `test` extras listed only `geopandas`, so `pip install sedonadb-geopandas[geopandas]` produced a package whose interop could not actually run. This part is user-facing, independent of CI. - **The wheels job.** It listed its test dependencies inline (`pip install pytest geopandas`) and then installed the bare wheel, which brings only hard dependencies — so it never saw the extras at all. Fixing the extras alone would have left `main` red. The wheels job now installs the built wheel with its own extra: ``` pip install "$(ls dist/*.whl)[test]" ``` so the test dependency list has a single home in `pyproject.toml` and the two cannot drift apart again. Why this stayed hidden: both the local development environment and the `python.yml` CI job install `sedonadb[test]`, which happens to provide `geoarrow-pyarrow`. Only a clean environment exposes it, and until #1095 merged, nothing built this package in one. ## Also included: a fast clean-environment check Adds `geopandas.yml`, following the suggestion in https://github.com/apache/sedona-db/pull/1095#pullrequestreview — a small workflow that installs the published nightly `sedonadb` and `sedonadb-expr` wheels instead of building from source, so changes to this package get a result in about a minute rather than waiting on the whole wheel chain. It is deliberately kept alongside the source-built check in `python.yml` rather than replacing it: this one answers "does the package work against a published sedonadb", the other answers "did a change to sedonadb break the package". Notably, a clean-environment check of exactly this shape is what would have caught the missing dependency above before it reached `main`. ## Verification Reproduced and confirmed in clean virtual environments, installing `sedonadb`/`sedonadb-expr` from the nightly index: - `main` as merged: `geoarrow-pyarrow` absent, 14 failed / 9 passed — matching the CI failure exactly. - this branch: `geoarrow-pyarrow` present, 23 passed. - mirroring the wheels job step by step (build wheel, install sedonadb + sedonadb-expr, install the wheel with `[test]`, run pytest): 23 passed. -- 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]
