This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sedona-db.git
The following commit(s) were added to refs/heads/main by this push:
new 8b16f39b chore(dev/release): Ensure release verification passes (#671)
8b16f39b is described below
commit 8b16f39b8a8806daacf3c09a2f6e1c864fed69e8
Author: Dewey Dunnington <[email protected]>
AuthorDate: Sat Feb 28 07:39:52 2026 -0600
chore(dev/release): Ensure release verification passes (#671)
---
dev/release/README.md | 54 ++++++++++++++++----------------
python/sedonadb/tests/io/test_pyogrio.py | 20 +++++++-----
python/sedonadb/tests/test_sjoin.py | 4 +++
3 files changed, 43 insertions(+), 35 deletions(-)
diff --git a/dev/release/README.md b/dev/release/README.md
index 6124432a..133b0da0 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -22,13 +22,13 @@
## Verifying a release candidate
Release candidates are verified using the script `verify-release-candidate.sh
<version> <rc_num>`.
-For example, to verify SedonaDB 0.2.0 RC0, run:
+For example, to verify SedonaDB 0.3.0 RC0, run:
```shell
# git clone https://github.com/apache/sedona-db.git && cd sedona-db
# or
# cd existing/sedona-db && git fetch upstream && git switch main && git pull
upstream main
-dev/release/verify-release-candidate.sh 0.2.0 0
+dev/release/verify-release-candidate.sh 0.3.0 0
```
Release verification requires a recent Rust toolchain. This toolchain can be
installed
@@ -93,8 +93,8 @@ a committer.
```shell
git pull upstream main
-git checkout -b branch-0.2.0
-git push upstream -u branch-0.2.0:branch-0.2.0
+git checkout -b branch-0.3.0
+git push upstream -u branch-0.3.0:branch-0.3.0
```
This push should cause two CI runs to begin:
@@ -120,8 +120,8 @@ When the state of the `branch-x.x.x` branch is clean and
checks are complete,
the release candidate tag can be created:
```shell
-git tag -a apache-sedona-db-0.2.0-rc0 -m "Tag Apache SedonaDB 0.2.0-rc0"
-git push upstream apache-sedona-db-0.2.0-rc0
+git tag -a apache-sedona-db-0.3.0-rc0 -m "Tag Apache SedonaDB 0.3.0-rc0"
+git push upstream apache-sedona-db-0.3.0-rc0
```
This will trigger another packaging CI run that, if successful, will create a
@@ -136,7 +136,7 @@ The GPG_KEY_ID in dev/release/.env must have its public
component listed in the
```shell
# sign-assets.sh <version> <rc_number>
-dev/release/sign-assets.sh 0.2.0 0
+dev/release/sign-assets.sh 0.3.0 0
```
After the assets are signed, they can be committed and uploaded to the
@@ -145,7 +145,7 @@ is provided:
```shell
# upload-candidate.sh <version> <rc_number>
-APACHE_USERNAME=your_apache_username dev/release/upload-candidate.sh 0.2.0 0
+APACHE_USERNAME=your_apache_username dev/release/upload-candidate.sh 0.3.0 0
```
## Vote
@@ -155,11 +155,11 @@ the release verification instructions and vote
appropriately on the source relea
The following may be used as a template:
```
-[VOTE] Release Apache SedonaDB 0.2.0-rc0
+[VOTE] Release Apache SedonaDB 0.3.0-rc0
Hello,
-I would like to propose the following release candidate (rc0) of Apache
SedonaDB [0] version 0.2.0. This is a release consisting of 138 resolved GitHub
issues from 17 contributors [1].
+I would like to propose the following release candidate (rc0) of Apache
SedonaDB [0] version 0.3.0. This is a release consisting of 138 resolved GitHub
issues from 17 contributors [1].
This release candidate is based on commit:
69f89a9a0cced55a3792eb6dfe1f76e9dd01033c [2]
@@ -169,14 +169,14 @@ Please download, verify checksums and signatures, run the
unit tests, and vote o
The vote will be open for at least 72 hours.
-[ ] +1 Release this as Apache SedonaDB 0.2.0
+[ ] +1 Release this as Apache SedonaDB 0.3.0
[ ] +0
-[ ] -1 Do not release this as Apache SedonaDB 0.2.0 because...
+[ ] -1 Do not release this as Apache SedonaDB 0.3.0 because...
[0] https://github.com/apache/sedona-db
[1] https://github.com/apache/sedona-db/milestone/1?closed=1
-[2] https://github.com/apache/sedona-db/tree/apache-sedona-db-0.2.0-rc1
-[3] https://dist.apache.org/repos/dist/dev/sedona/apache-sedona-db-0.2.0-rc1
+[2] https://github.com/apache/sedona-db/tree/apache-sedona-db-0.3.0-rc1
+[3] https://dist.apache.org/repos/dist/dev/sedona/apache-sedona-db-0.3.0-rc1
[4] https://github.com/apache/arrow-nanoarrow/blob/main/dev/release/README.md
[5] https://github.com/apache/sedona/pull/2540
```
@@ -194,20 +194,20 @@ Apache release repository. A helper script is provided:
```shell
# upload-release.sh <version> <rc_number>
-dev/release/upload-release.sh 0.2.0 0
+dev/release/upload-release.sh 0.3.0 0
```
An official Git tag must also be created and uploaded to the Apache remote:
```shell
-git tag -a apache-sedona-db-0.2.0 -m "SedonaDB 0.2.0"
apache-sedona-db-0.2.0-rc0^{}
-git push upstream apache-sedona-db-0.2.0
+git tag -a apache-sedona-db-0.3.0 -m "SedonaDB 0.3.0"
apache-sedona-db-0.3.0-rc0^{}
+git push upstream apache-sedona-db-0.3.0
```
-The prerelease located at
<https://github.com/apache/sedona-db/releases/tag/apache-sedona-db-0.2.0-rc0>
+The prerelease located at
<https://github.com/apache/sedona-db/releases/tag/apache-sedona-db-0.3.0-rc0>
can now be edited to point to the official release tag and the GitHub release
published
from the UI. The release notes may be automatically generated by selecting
-`apache-sedona-db-0.2.0.dev` as the previous release.
+`apache-sedona-db-0.3.0.dev` as the previous release.
### Publish Python package
@@ -257,11 +257,11 @@ as ready for review, solicit final reviews, and merge to
publish the post to the
The following template may be used:
```
-[ANNOUNCE] Apache SedonaDB 0.2.0 released
+[ANNOUNCE] Apache SedonaDB 0.3.0 released
Dear all,
-We are happy to report that we have released Apache SedonaDB 0.2.0.
+We are happy to report that we have released Apache SedonaDB 0.3.0.
Thank you again for your help.
SedonaDB is the first open-source, single-node analytical database engine that
treats spatial data as a first-class citizen. It is developed as a subproject
of Apache Sedona.
@@ -273,7 +273,7 @@ Release notes:
https://sedona.apache.org/latest/blog/2025/12/01/sedonadb-020-release/
Download link:
-https://www.apache.org/dyn/closer.cgi/sedona/apache-sedona-db-0.2.0
+https://www.apache.org/dyn/closer.cgi/sedona/apache-sedona-db-0.3.0
Additional resources:
Mailing list: [email protected]
@@ -299,12 +299,12 @@ are currently all derived from `Cargo.toml`, which can be
updated to:
```
[workspace.package]
-version = "0.3.0"
+version = "0.4.0"
```
The R package must also be updated. R Packages use a different convention for
development
-versions such that in preparation for 0.3.0 the development version should be
-`0.2.0.9000`. This is set the DESCRIPTION of the requisite package.
+versions such that in preparation for 0.4.0 the development version should be
+`0.3.0.9000`. This is set the DESCRIPTION of the requisite package.
Development versions and the changelog are derived from the presence of a
development
tag on the main branch signifying where development of that version "started".
After
@@ -312,6 +312,6 @@ the version bump PR merges, that commit should be tagged
with the appropriate
development tag:
```shell
-git tag -a apache-sedona-db-0.3.0.dev -m "tag dev 0.3.0"
-git push upstream apache-sedona-db-0.3.0.dev
+git tag -a apache-sedona-db-0.4.0.dev -m "tag dev 0.4.0"
+git push upstream apache-sedona-db-0.4.0.dev
```
diff --git a/python/sedonadb/tests/io/test_pyogrio.py
b/python/sedonadb/tests/io/test_pyogrio.py
index 8b3d8084..8aaef75f 100644
--- a/python/sedonadb/tests/io/test_pyogrio.py
+++ b/python/sedonadb/tests/io/test_pyogrio.py
@@ -17,6 +17,7 @@
import io
import tempfile
+import warnings
from pathlib import Path
import geoarrow.pyarrow as ga
@@ -169,13 +170,16 @@ def test_write_ogr(con):
)
# Ensure inferred CRS that is None works
- con.sql("SELECT ST_Point(0, 1)").to_pyogrio(f"{td}/foofy.fgb")
- expected = geopandas.GeoDataFrame(
- {"geometry": geopandas.GeoSeries.from_wkt(["POINT (0 1)"])}
- )
- geopandas.testing.assert_geodataframe_equal(
- geopandas.read_file(f"{td}/foofy.fgb"), expected
- )
+ # pyogrio warns for the case where a CRS is None
+ with warnings.catch_warnings():
+ warnings.simplefilter("ignore")
+ con.sql("SELECT ST_Point(0, 1)").to_pyogrio(f"{td}/foofy.fgb")
+ expected = geopandas.GeoDataFrame(
+ {"geometry": geopandas.GeoSeries.from_wkt(["POINT (0 1)"])}
+ )
+ geopandas.testing.assert_geodataframe_equal(
+ geopandas.read_file(f"{td}/foofy.fgb"), expected
+ )
def test_write_ogr_buffer(con):
@@ -187,7 +191,7 @@ def test_write_ogr_buffer(con):
df.to_pyogrio(buf, driver="FlatGeoBuf")
geopandas.testing.assert_geodataframe_equal(
- geopandas.read_file(buf.getvalue(), driver="FlatGeoBuf"), expected
+ geopandas.read_file(buf.getvalue()), expected
)
# Ensure reasonable error if driver is not specified
diff --git a/python/sedonadb/tests/test_sjoin.py
b/python/sedonadb/tests/test_sjoin.py
index 438d6f99..346fe0eb 100644
--- a/python/sedonadb/tests/test_sjoin.py
+++ b/python/sedonadb/tests/test_sjoin.py
@@ -22,6 +22,7 @@ import geopandas as gpd
import numpy as np
import pandas as pd
import pytest
+import sedonadb
from sedonadb.testing import PostGIS, SedonaDB, random_geometry
from shapely.geometry import Point
@@ -245,6 +246,9 @@ def test_spatial_mark_join_via_correlated_exists(outer, on):
],
)
def test_spatial_join_geography(join_type, on):
+ if "s2geography" not in sedonadb.__features__:
+ pytest.skip("Python package built without s2geography")
+
with (
SedonaDB.create_or_skip() as eng_sedonadb,
PostGIS.create_or_skip() as eng_postgis,