This is an automated email from the ASF dual-hosted git repository.
jiayu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-spatialbench.git
The following commit(s) were added to refs/heads/main by this push:
new ae57d71 feature: Add DuckDB and SedonaDB nightly support (#76)
ae57d71 is described below
commit ae57d712b8889a5980832f81d9c5489166950ba3
Author: Jia Yu <[email protected]>
AuthorDate: Mon Jan 19 21:19:08 2026 -0700
feature: Add DuckDB and SedonaDB nightly support (#76)
* Add DuckDB and SedonaDB nighly support
* Fix duckdb
* Fix duckdb
* Fix
* Fix DuckDB
* Add SedonaDB nightly
* Fix
* fix
---
.github/workflows/benchmark.yml | 42 ++++++++++++++++++++++++++++++++++++-----
1 file changed, 37 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml
index a68289c..57ec575 100644
--- a/.github/workflows/benchmark.yml
+++ b/.github/workflows/benchmark.yml
@@ -68,6 +68,16 @@ on:
- '1'
- '3'
- '5'
+ sedonadb_nightly:
+ description: 'Use SedonaDB nightly build from Gemfury (ignores version
if true)'
+ required: false
+ default: true
+ type: boolean
+ duckdb_nightly:
+ description: 'Use DuckDB pre-release/nightly build (ignores version if
true)'
+ required: false
+ default: true
+ type: boolean
concurrency:
group: ${{ github.repository }}-${{ github.ref }}-benchmark
@@ -84,6 +94,9 @@ env:
DUCKDB_VERSION: ${{ github.event.inputs.duckdb_version }}
GEOPANDAS_VERSION: ${{ github.event.inputs.geopandas_version }}
SPATIAL_POLARS_VERSION: ${{ github.event.inputs.spatial_polars_version }}
+ # Nightly build options (default: true)
+ SEDONADB_NIGHTLY: ${{ github.event.inputs.sedonadb_nightly || 'true' }}
+ DUCKDB_NIGHTLY: ${{ github.event.inputs.duckdb_nightly || 'true' }}
# Hugging Face dataset for benchmark data
HF_DATASET: apache-sedona/spatialbench
HF_DATA_VERSION: v0.1.0
@@ -194,7 +207,15 @@ jobs:
- name: Install dependencies
run: |
- if [ -n "${{ env.DUCKDB_VERSION }}" ]; then
+ echo "=== DuckDB Installation Parameters ==="
+ echo "DUCKDB_NIGHTLY: ${{ env.DUCKDB_NIGHTLY }}"
+ echo "DUCKDB_VERSION: ${{ env.DUCKDB_VERSION }}"
+ echo "======================================"
+ if [ "${{ env.DUCKDB_NIGHTLY }}" = "true" ]; then
+ # Use --pre to install pre-release dev builds (e.g., 1.4.4.dev48)
+ # Constraint <1.5.0 ensures we get 1.4.x branch dev builds
+ pip install "duckdb<1.5.0" --pre pyarrow pandas
+ elif [ -n "${{ env.DUCKDB_VERSION }}" ]; then
pip install "duckdb==${{ env.DUCKDB_VERSION }}" pyarrow pandas
else
pip install duckdb pyarrow pandas
@@ -203,6 +224,7 @@ jobs:
- name: Pre-install DuckDB spatial extension
run: |
+ # Dev builds don't have spatial extension in core_nightly, so always
use default repo
python -c "import duckdb; con = duckdb.connect();
con.execute('INSTALL spatial'); print('DuckDB spatial extension installed')"
- name: Run DuckDB benchmark
@@ -249,7 +271,7 @@ jobs:
else
pip install geopandas pandas pyarrow shapely
fi
- echo "Installed GeoPandas version: $(python -c 'from
importlib.metadata import version; print(version(\"geopandas\"))')"
+ echo "Installed GeoPandas version: $(python -c 'from
importlib.metadata import version; print(version("geopandas"))')"
- name: Run GeoPandas benchmark
run: |
@@ -290,12 +312,22 @@ jobs:
- name: Install dependencies
run: |
- if [ -n "${{ env.SEDONADB_VERSION }}" ]; then
+ echo "=== SedonaDB Installation Parameters ==="
+ echo "SEDONADB_NIGHTLY: ${{ env.SEDONADB_NIGHTLY }}"
+ echo "SEDONADB_VERSION: ${{ env.SEDONADB_VERSION }}"
+ echo "========================================"
+ if [ "${{ env.SEDONADB_NIGHTLY }}" = "true" ]; then
+ # Use Gemfury as primary index and --pre to install nightly alpha
builds (e.g., 0.3.0a69)
+ pip install "sedonadb[geopandas]" pandas pyarrow pyproj \
+ --pre \
+ --index-url https://repo.fury.io/sedona-nightlies/ \
+ --extra-index-url https://pypi.org/simple/
+ elif [ -n "${{ env.SEDONADB_VERSION }}" ]; then
pip install "sedonadb[geopandas]==${{ env.SEDONADB_VERSION }}"
pandas pyarrow pyproj
else
pip install "sedonadb[geopandas]" pandas pyarrow pyproj
fi
- echo "Installed SedonaDB version: $(python -c 'from
importlib.metadata import version; print(version(\"sedonadb\"))')"
+ echo "Installed SedonaDB version: $(python -c 'from
importlib.metadata import version; print(version("sedonadb"))')"
- name: Run SedonaDB benchmark
run: |
@@ -341,7 +373,7 @@ jobs:
else
pip install "spatial-polars[knn]" pyarrow
fi
- echo "Installed Spatial Polars version: $(python -c 'from
importlib.metadata import version; print(version(\"spatial-polars\"))')"
+ echo "Installed Spatial Polars version: $(python -c 'from
importlib.metadata import version; print(version("spatial-polars"))')"
- name: Run Spatial Polars benchmark
run: |