james-willis opened a new pull request, #1206:
URL: https://github.com/apache/sedona-db/pull/1206

   ## What
   
   Wires the `integration/spark-parity` pytest suite (added in #1159) into the 
`python` workflow, answering the reviewer question on #1203: "Are they running 
in CI now?" — with this PR, yes.
   
   Changes, all in `.github/workflows/python.yml` plus a one-sentence README 
update:
   
   - `integration/spark-parity/**` added to the `pull_request` paths filter.
   - New steps appended to the existing `test` job, after the current test 
steps (the job already builds and installs sedonadb editable, which the suite 
imports):
     - `actions/setup-java@v6` (temurin 17) — the JVM Sedona Spark needs.
     - `pip install "pyspark>=4.0" apache-sedona` — the compatibility target.
     - An `actions/cache@v6` step for the Ivy jar directory 
(`~/.ivy2-spark-parity`).
     - `python -m pytest -vv` run from `integration/spark-parity`, with 
`SEDONADB_SPARK_IVY_DIR` pointed at the cached directory.
   - `integration/spark-parity/README.md`: the "not wired into CI" sentence now 
says the suite runs in the python workflow.
   
   ## Cache design
   
   The cache key is `spark-parity-jars-${{ runner.os }}-${{ 
hashFiles('python/sedonadb/python/sedonadb/testing_spark.py') }}`. 
`testing_spark.py` is the file that pins `SEDONA_SPARK_VERSION` and 
`GEOTOOLS_WRAPPER_VERSION` — the exact Maven coordinates Ivy resolves — so the 
cache invalidates precisely when the jar pins change and never goes stale on a 
version bump. `SEDONADB_SPARK_IVY_DIR` is set to the same path the cache step 
saves, so warm runs skip the Maven download entirely.
   
   ## Relationship to #1159 and #1203
   
   The suite on main is currently the small #1159 version (`test_rs_scalar.py`, 
`test_rs_raster_out.py`). #1203 expands the suite independently; this PR is 
deliberately **not** stacked on it — whichever merges second simply runs 
more/newer tests through the same lane.
   
   ## Lessons from the old lane
   
   An earlier CI lane for these tests (removed in #1159) had two defects this 
PR specifically avoids:
   
   - It ran pytest with `-k "sedonaspark"`, which matched zero tests and 
silently ran nothing. The new run step has **no** `-k` selector.
   - Its cache key hashed `raster_testing.py`, which does not contain the jar 
pins, so the cache never invalidated when the pinned versions changed. The new 
key hashes `testing_spark.py`, which does.
   
   ## Verification
   
   The workflow triggers on changes to `.github/workflows/python.yml`, so this 
PR's own CI run exercises the new lane end-to-end.


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