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]

Reply via email to