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 f3ec0fa1 chore(dev/release) Add publish scripts to crate.io and update
rust dependency (#413)
f3ec0fa1 is described below
commit f3ec0fa144cc84ce3c1f9e1d8cc976e9045594e4
Author: Feng Zhang <[email protected]>
AuthorDate: Thu Dec 11 09:58:07 2025 -0800
chore(dev/release) Add publish scripts to crate.io and update rust
dependency (#413)
Co-authored-by: Dewey Dunnington <[email protected]>
Co-authored-by: Dewey Dunnington <[email protected]>
Co-authored-by: Peter Nguyen <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Matthew Powers <[email protected]>
---
Cargo.toml | 4 +-
c/sedona-geoarrow-c/Cargo.toml | 6 +-
c/sedona-geos/Cargo.toml | 6 +-
c/sedona-proj/Cargo.toml | 6 +-
c/sedona-s2geography/Cargo.toml | 6 +-
c/sedona-tg/Cargo.toml | 6 +-
dev/release/publish-crates.sh | 397 ++++++++++++++++++++++++++++++++
python/sedonadb/Cargo.toml | 1 +
r/sedonadb/src/rust/Cargo.toml | 1 +
rust/sedona-adbc/Cargo.toml | 3 +
rust/sedona-common/Cargo.toml | 3 +
rust/sedona-datasource/Cargo.toml | 3 +
rust/sedona-expr/Cargo.toml | 5 +-
rust/sedona-functions/Cargo.toml | 5 +-
rust/sedona-geo-generic-alg/Cargo.toml | 5 +-
rust/sedona-geo-traits-ext/Cargo.toml | 3 +
rust/sedona-geo/Cargo.toml | 5 +-
rust/sedona-geometry/Cargo.toml | 5 +-
rust/sedona-geoparquet/Cargo.toml | 5 +-
rust/sedona-raster-functions/Cargo.toml | 5 +-
rust/sedona-raster/Cargo.toml | 5 +-
rust/sedona-schema/Cargo.toml | 3 +
rust/sedona-spatial-join/Cargo.toml | 5 +-
rust/sedona-testing/Cargo.toml | 4 +-
rust/sedona/Cargo.toml | 5 +-
25 files changed, 480 insertions(+), 22 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 76314a12..3d24a86c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -57,6 +57,8 @@ edition = "2021"
# Same rust-version, arrow, and datafusion dependencies as datafusion-comet
# https://github.com/apache/datafusion-comet/blob/main/native/Cargo.toml
rust-version = "1.86"
+keywords = ["geospatial", "gis", "spatial", "datafusion", "arrow"]
+categories = ["science::geo", "database"]
[workspace.dependencies]
approx = "0.5"
@@ -142,7 +144,7 @@ sedona-raster = { version = "0.3.0", path =
"rust/sedona-raster" }
sedona-raster-functions = { version = "0.3.0", path =
"rust/sedona-raster-functions" }
sedona-schema = { version = "0.3.0", path = "rust/sedona-schema" }
sedona-spatial-join = { version = "0.3.0", path = "rust/sedona-spatial-join" }
-# sedona-testing is not published to crates.io, so it uses path-only in
individual crates
+sedona-testing = { version = "0.3.0", path = "rust/sedona-testing" }
# C wrapper crates
sedona-geoarrow-c = { version = "0.3.0", path = "c/sedona-geoarrow-c" }
diff --git a/c/sedona-geoarrow-c/Cargo.toml b/c/sedona-geoarrow-c/Cargo.toml
index b9348387..d95df443 100644
--- a/c/sedona-geoarrow-c/Cargo.toml
+++ b/c/sedona-geoarrow-c/Cargo.toml
@@ -17,8 +17,10 @@
[package]
name = "sedona-geoarrow-c"
version.workspace = true
-authors.workspace = true
license.workspace = true
+keywords.workspace = true
+categories.workspace = true
+authors.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -33,7 +35,7 @@ cc = { version = "1" }
criterion = { workspace = true }
rstest = { workspace = true }
sedona = { workspace = true }
-sedona-testing = { path = "../../rust/sedona-testing", features =
["criterion"] }
+sedona-testing = { workspace = true }
[dependencies]
arrow-schema = { workspace = true }
diff --git a/c/sedona-geos/Cargo.toml b/c/sedona-geos/Cargo.toml
index 260f3de1..c6c64ef0 100644
--- a/c/sedona-geos/Cargo.toml
+++ b/c/sedona-geos/Cargo.toml
@@ -17,8 +17,10 @@
[package]
name = "sedona-geos"
version.workspace = true
-authors.workspace = true
license.workspace = true
+keywords.workspace = true
+categories.workspace = true
+authors.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -29,7 +31,7 @@ rust-version.workspace = true
[dev-dependencies]
criterion = { workspace = true }
sedona = { workspace = true }
-sedona-testing = { path = "../../rust/sedona-testing", features =
["criterion"] }
+sedona-testing = { workspace = true }
rstest = { workspace = true }
geo-types = { workspace = true }
diff --git a/c/sedona-proj/Cargo.toml b/c/sedona-proj/Cargo.toml
index 556e9575..4368a112 100644
--- a/c/sedona-proj/Cargo.toml
+++ b/c/sedona-proj/Cargo.toml
@@ -17,8 +17,10 @@
[package]
name = "sedona-proj"
version.workspace = true
-authors.workspace = true
license.workspace = true
+keywords.workspace = true
+categories.workspace = true
+authors.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -34,7 +36,7 @@ approx = { workspace = true }
geo-types = { workspace = true }
rstest = { workspace = true }
wkb = { workspace = true }
-sedona-testing = { path = "../../rust/sedona-testing", features =
["criterion"] }
+sedona-testing = { workspace = true, features = ["criterion"] }
criterion = { workspace = true}
[features]
diff --git a/c/sedona-s2geography/Cargo.toml b/c/sedona-s2geography/Cargo.toml
index 603ac080..db073194 100644
--- a/c/sedona-s2geography/Cargo.toml
+++ b/c/sedona-s2geography/Cargo.toml
@@ -17,8 +17,10 @@
[package]
name = "sedona-s2geography"
version.workspace = true
-authors.workspace = true
license.workspace = true
+keywords.workspace = true
+categories.workspace = true
+authors.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -34,7 +36,7 @@ regex = { workspace = true }
criterion = { workspace = true }
rstest = { workspace = true }
sedona = { workspace = true }
-sedona-testing = { path = "../../rust/sedona-testing", features =
["criterion"] }
+sedona-testing = { workspace = true }
[dependencies]
arrow-schema = { workspace = true }
diff --git a/c/sedona-tg/Cargo.toml b/c/sedona-tg/Cargo.toml
index fe5a1d98..a7ea58b9 100644
--- a/c/sedona-tg/Cargo.toml
+++ b/c/sedona-tg/Cargo.toml
@@ -17,8 +17,10 @@
[package]
name = "sedona-tg"
version.workspace = true
-authors.workspace = true
license.workspace = true
+keywords.workspace = true
+categories.workspace = true
+authors.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -33,7 +35,7 @@ cc = { version = "1" }
criterion = { workspace = true }
rstest = { workspace = true }
sedona = { workspace = true }
-sedona-testing = { path = "../../rust/sedona-testing", features =
["criterion"] }
+sedona-testing = { workspace = true }
wkb = { workspace = true }
geo = { workspace = true }
diff --git a/dev/release/publish-crates.sh b/dev/release/publish-crates.sh
new file mode 100755
index 00000000..b9da294b
--- /dev/null
+++ b/dev/release/publish-crates.sh
@@ -0,0 +1,397 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# SedonaDB Crates.io Publishing Script
+#
+# This script publishes all SedonaDB crates to crates.io in the correct
dependency order.
+# Run with --dry-run first to validate everything before actual publishing.
+#
+# Usage:
+# ./scripts/publish-crates.sh --dry-run # Validate only (recommended
first)
+# ./scripts/publish-crates.sh --publish # Actually publish to crates.io
+#
+# Prerequisites:
+# 1. Create account at https://crates.io (via GitHub login)
+# 2. Verify your email address
+# 3. Generate API token at https://crates.io/settings/tokens
+# 4. Run: cargo login <your-api-token>
+#
+
+set -e
+
+# Colors for output
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+BLUE='\033[0;34m'
+NC='\033[0m' # No Color
+
+# Script directory and workspace root
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+WORKSPACE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
+
+# Parse arguments
+DRY_RUN=true
+DRY_RUN_LOCAL=false
+SKIP_TESTS=false
+SKIP_VALIDATION=false
+START_FROM=""
+
+print_usage() {
+ echo "Usage: $0 [OPTIONS]"
+ echo ""
+ echo "Options:"
+ echo " --dry-run Validate packages without publishing (default)"
+ echo " --dry-run-local Validate packages using local dependencies (more
useful)"
+ echo " --publish Actually publish to crates.io"
+ echo " --skip-tests Skip running tests"
+ echo " --skip-validation Skip pre-publish validation"
+ echo " --start-from PKG Start publishing from a specific package"
+ echo " --help Show this help message"
+ echo ""
+ echo "Note: --dry-run will fail for crates with unpublished dependencies."
+ echo " Use --dry-run-local for validating the entire workspace first."
+}
+
+while [[ $# -gt 0 ]]; do
+ case $1 in
+ --dry-run)
+ DRY_RUN=true
+ DRY_RUN_LOCAL=false
+ shift
+ ;;
+ --dry-run-local)
+ DRY_RUN=true
+ DRY_RUN_LOCAL=true
+ shift
+ ;;
+ --publish)
+ DRY_RUN=false
+ DRY_RUN_LOCAL=false
+ shift
+ ;;
+ --skip-tests)
+ SKIP_TESTS=true
+ shift
+ ;;
+ --skip-validation)
+ SKIP_VALIDATION=true
+ shift
+ ;;
+ --start-from)
+ START_FROM="$2"
+ shift 2
+ ;;
+ --help)
+ print_usage
+ exit 0
+ ;;
+ *)
+ echo -e "${RED}Unknown option: $1${NC}"
+ print_usage
+ exit 1
+ ;;
+ esac
+done
+
+# Crates in dependency order (leaf crates first)
+# This order ensures that when publishing a crate, all its dependencies are
already published
+CRATES=(
+ # Tier 1 - Foundation crates (no internal dependencies)
+ "rust/sedona-geo-traits-ext"
+ "rust/sedona-geo-generic-alg"
+
+ # Tier 2 - Core types (no internal deps)
+ "rust/sedona-geometry"
+ "rust/sedona-common"
+
+ # Tier 3 - Schema (depends on common)
+ "rust/sedona-schema"
+
+ # Tier 4 - Expression (depends on common, geometry, schema)
+ "rust/sedona-expr"
+
+ # Tier 5 - Functions (depends on expr, geometry, schema, common)
+ "rust/sedona-functions"
+
+ # Tier 6 - C wrappers and sedona-geo (all depend on functions)
+ "c/sedona-tg"
+ "c/sedona-geos"
+ "c/sedona-proj"
+ "c/sedona-s2geography"
+ "c/sedona-geoarrow-c"
+ "rust/sedona-geo"
+
+ # Tier 7 - Higher-level features
+ "rust/sedona-geoparquet"
+ "rust/sedona-raster"
+ "rust/sedona-raster-functions"
+ "rust/sedona-spatial-join"
+ "rust/sedona-datasource"
+
+ # Tier 8 - Testing utilities (depends on expr, geometry, schema, raster)
+ "rust/sedona-testing"
+
+ # Tier 9 - Main library (depends on most crates including sedona-testing)
+ "rust/sedona"
+
+ # Tier 10 - Crates that depend on main library
+ "rust/sedona-adbc"
+ "sedona-cli"
+)
+
+# Crates that should NOT be published
+EXCLUDED_CRATES=(
+ "python/sedonadb" # Python bindings - use PyPI
+ "r/sedonadb/src/rust" # R bindings - use CRAN
+ "rust/sedona-testing" # Test utilities only
+)
+
+echo -e "${BLUE}============================================${NC}"
+echo -e "${BLUE} SedonaDB Crates.io Publishing Script${NC}"
+echo -e "${BLUE}============================================${NC}"
+echo ""
+
+if [ "$DRY_RUN" = true ]; then
+ if [ "$DRY_RUN_LOCAL" = true ]; then
+ echo -e "${YELLOW}Mode: DRY RUN LOCAL (package validation only)${NC}"
+ else
+ echo -e "${YELLOW}Mode: DRY RUN (full crates.io validation)${NC}"
+ fi
+else
+ echo -e "${RED}Mode: PUBLISH (will upload to crates.io)${NC}"
+fi
+echo ""
+
+cd "$WORKSPACE_ROOT"
+
+# ============================================
+# Step 1: Pre-flight checks
+# ============================================
+echo -e "${BLUE}Step 1: Pre-flight checks${NC}"
+echo "----------------------------------------"
+
+# Check if logged in to crates.io
+if ! cargo login --help &>/dev/null; then
+ echo -e "${RED}Error: cargo is not installed${NC}"
+ exit 1
+fi
+
+# Check for uncommitted changes
+if [ -n "$(git status --porcelain)" ]; then
+ echo -e "${YELLOW}Warning: You have uncommitted changes${NC}"
+ git status --short
+ echo ""
+ if [ "$DRY_RUN" = false ]; then
+ read -p "Continue anyway? (y/N) " -n 1 -r
+ echo
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ exit 1
+ fi
+ fi
+fi
+
+# Check current branch
+CURRENT_BRANCH=$(git branch --show-current)
+echo -e "Current branch: ${GREEN}$CURRENT_BRANCH${NC}"
+
+# Check git tag
+CURRENT_VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version =
"\(.*\)"/\1/')
+echo -e "Workspace version: ${GREEN}$CURRENT_VERSION${NC}"
+echo ""
+
+# ============================================
+# Step 2: Run tests (optional)
+# ============================================
+if [ "$SKIP_TESTS" = false ]; then
+ echo -e "${BLUE}Step 2: Running tests${NC}"
+ echo "----------------------------------------"
+
+ echo "Running: cargo test --workspace --exclude sedonadb --exclude
sedonadbr"
+ if ! cargo test --workspace --exclude sedonadb --exclude sedonadbr
--all-targets --all-features; then
+ echo -e "${RED}Tests failed! Fix issues before publishing.${NC}"
+ exit 1
+ fi
+ echo -e "${GREEN}All tests passed!${NC}"
+ echo ""
+else
+ echo -e "${YELLOW}Step 2: Skipping tests (--skip-tests)${NC}"
+ echo ""
+fi
+
+# ============================================
+# Step 3: Build release
+# ============================================
+if [ "$SKIP_VALIDATION" = false ]; then
+ echo -e "${BLUE}Step 3: Building release${NC}"
+ echo "----------------------------------------"
+
+ echo "Running: cargo build --workspace --exclude sedonadb --exclude
sedonadbr --release"
+ if ! cargo build --workspace --exclude sedonadb --exclude sedonadbr
--release; then
+ echo -e "${RED}Build failed!${NC}"
+ exit 1
+ fi
+ echo -e "${GREEN}Release build successful!${NC}"
+ echo ""
+else
+ echo -e "${YELLOW}Step 3: Skipping build (--skip-validation)${NC}"
+ echo ""
+fi
+
+# ============================================
+# Step 4: Validate/Publish each crate
+# ============================================
+if [ "$DRY_RUN" = true ]; then
+ echo -e "${BLUE}Step 4: Validating packages (dry-run)${NC}"
+else
+ echo -e "${BLUE}Step 4: Publishing packages${NC}"
+fi
+echo "----------------------------------------"
+
+STARTED=false
+if [ -z "$START_FROM" ]; then
+ STARTED=true
+fi
+
+FAILED_CRATES=()
+PUBLISHED_CRATES=()
+SKIPPED_CRATES=()
+
+for crate_path in "${CRATES[@]}"; do
+ crate_name=$(basename "$crate_path")
+
+ # Handle --start-from
+ if [ "$STARTED" = false ]; then
+ if [ "$crate_name" = "$START_FROM" ] || [ "$crate_path" =
"$START_FROM" ]; then
+ STARTED=true
+ else
+ echo -e "${YELLOW}Skipping $crate_name (before --start-from)${NC}"
+ SKIPPED_CRATES+=("$crate_name")
+ continue
+ fi
+ fi
+
+ # Get actual package name from Cargo.toml
+ if [ -f "$WORKSPACE_ROOT/$crate_path/Cargo.toml" ]; then
+ pkg_name=$(grep '^name = ' "$WORKSPACE_ROOT/$crate_path/Cargo.toml" |
head -1 | sed 's/name = "\(.*\)"/\1/')
+ else
+ echo -e "${RED}Cargo.toml not found: $crate_path${NC}"
+ FAILED_CRATES+=("$crate_path")
+ continue
+ fi
+
+ echo ""
+ echo -e "${BLUE}>>> Processing: $pkg_name ($crate_path)${NC}"
+
+ cd "$WORKSPACE_ROOT/$crate_path"
+
+ if [ "$DRY_RUN" = true ]; then
+ if [ "$DRY_RUN_LOCAL" = true ]; then
+ # Local dry run - use cargo check (compiles with local deps, no
crates.io lookup)
+ echo " Running: cargo check --all-features"
+ if cargo check --all-features 2>&1; then
+ echo -e " ${GREEN}Check passed${NC}"
+ PUBLISHED_CRATES+=("$pkg_name")
+ else
+ echo -e " ${RED}Check failed${NC}"
+ FAILED_CRATES+=("$pkg_name")
+ fi
+ else
+ # Full dry run - validates against crates.io
+ echo " Running: cargo publish --dry-run"
+ if cargo publish --dry-run 2>&1; then
+ echo -e " ${GREEN}Validation passed${NC}"
+ PUBLISHED_CRATES+=("$pkg_name")
+ else
+ echo -e " ${RED}Validation failed${NC}"
+ FAILED_CRATES+=("$pkg_name")
+ fi
+ fi
+ else
+ # Actual publish
+ echo " Running: cargo publish"
+ if cargo publish 2>&1; then
+ echo -e " ${GREEN}Published successfully${NC}"
+ PUBLISHED_CRATES+=("$pkg_name")
+
+ # Wait for crates.io to index the new crate
+ echo " Waiting 120 seconds for crates.io to index..."
+ sleep 120
+ else
+ echo -e " ${RED}Publish failed${NC}"
+ FAILED_CRATES+=("$pkg_name")
+
+ # Ask whether to continue
+ read -p " Continue with remaining crates? (y/N) " -n 1 -r
+ echo
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
+ break
+ fi
+ fi
+ fi
+
+ cd "$WORKSPACE_ROOT"
+done
+
+# ============================================
+# Summary
+# ============================================
+echo ""
+echo -e "${BLUE}============================================${NC}"
+echo -e "${BLUE} Summary${NC}"
+echo -e "${BLUE}============================================${NC}"
+echo ""
+
+if [ ${#PUBLISHED_CRATES[@]} -gt 0 ]; then
+ if [ "$DRY_RUN" = true ]; then
+ echo -e "${GREEN}Validated successfully (${#PUBLISHED_CRATES[@]}
crates):${NC}"
+ else
+ echo -e "${GREEN}Published successfully (${#PUBLISHED_CRATES[@]}
crates):${NC}"
+ fi
+ for crate in "${PUBLISHED_CRATES[@]}"; do
+ echo " - $crate"
+ done
+ echo ""
+fi
+
+if [ ${#SKIPPED_CRATES[@]} -gt 0 ]; then
+ echo -e "${YELLOW}Skipped (${#SKIPPED_CRATES[@]} crates):${NC}"
+ for crate in "${SKIPPED_CRATES[@]}"; do
+ echo " - $crate"
+ done
+ echo ""
+fi
+
+if [ ${#FAILED_CRATES[@]} -gt 0 ]; then
+ echo -e "${RED}Failed (${#FAILED_CRATES[@]} crates):${NC}"
+ for crate in "${FAILED_CRATES[@]}"; do
+ echo " - $crate"
+ done
+ echo ""
+ exit 1
+fi
+
+if [ "$DRY_RUN" = true ]; then
+ echo -e "${GREEN}Dry run completed successfully!${NC}"
+ echo ""
+ echo "To actually publish, run:"
+ echo " $0 --publish"
+else
+ echo -e "${GREEN}All crates published successfully!${NC}"
+fi
diff --git a/python/sedonadb/Cargo.toml b/python/sedonadb/Cargo.toml
index 67a21e07..426bed90 100644
--- a/python/sedonadb/Cargo.toml
+++ b/python/sedonadb/Cargo.toml
@@ -18,6 +18,7 @@
[package]
name = "sedonadb"
version = { workspace = true }
+publish = false
edition = "2021"
[lib]
diff --git a/r/sedonadb/src/rust/Cargo.toml b/r/sedonadb/src/rust/Cargo.toml
index 19b4edc7..2ce10cfd 100644
--- a/r/sedonadb/src/rust/Cargo.toml
+++ b/r/sedonadb/src/rust/Cargo.toml
@@ -18,6 +18,7 @@
[package]
name = "sedonadbr"
version = { workspace = true }
+publish = false
edition = "2021"
[lib]
diff --git a/rust/sedona-adbc/Cargo.toml b/rust/sedona-adbc/Cargo.toml
index 1abf600e..2ebdac2f 100644
--- a/rust/sedona-adbc/Cargo.toml
+++ b/rust/sedona-adbc/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-adbc"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
diff --git a/rust/sedona-common/Cargo.toml b/rust/sedona-common/Cargo.toml
index 005593b3..cb8a9e59 100644
--- a/rust/sedona-common/Cargo.toml
+++ b/rust/sedona-common/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-common"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
diff --git a/rust/sedona-datasource/Cargo.toml
b/rust/sedona-datasource/Cargo.toml
index c7273de8..fe4b9b02 100644
--- a/rust/sedona-datasource/Cargo.toml
+++ b/rust/sedona-datasource/Cargo.toml
@@ -18,6 +18,9 @@
[package]
name = "sedona-datasource"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
diff --git a/rust/sedona-expr/Cargo.toml b/rust/sedona-expr/Cargo.toml
index b911b509..8bfcbcf1 100644
--- a/rust/sedona-expr/Cargo.toml
+++ b/rust/sedona-expr/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-expr"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -29,7 +32,7 @@ result_large_err = "allow"
[dev-dependencies]
rstest = { workspace = true }
-sedona-testing = { path = "../sedona-testing" }
+sedona-testing = { workspace = true }
[dependencies]
arrow-schema = { workspace = true }
diff --git a/rust/sedona-functions/Cargo.toml b/rust/sedona-functions/Cargo.toml
index 5a39a2d3..57afd240 100644
--- a/rust/sedona-functions/Cargo.toml
+++ b/rust/sedona-functions/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-functions"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -31,7 +34,7 @@ result_large_err = "allow"
arrow-json = { workspace = true }
criterion = { workspace = true }
rstest = { workspace = true }
-sedona-testing = { path = "../sedona-testing", features = ["criterion"] }
+sedona-testing = { workspace = true, features = ["criterion"] }
datafusion = { workspace = true }
tokio = { workspace = true, features = ["rt", "macros"] }
diff --git a/rust/sedona-geo-generic-alg/Cargo.toml
b/rust/sedona-geo-generic-alg/Cargo.toml
index 350096d2..41e1bf61 100644
--- a/rust/sedona-geo-generic-alg/Cargo.toml
+++ b/rust/sedona-geo-generic-alg/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-geo-generic-alg"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -36,7 +39,7 @@ rstar = "0.12.0"
i_overlay = { version = "4.0.0, < 4.1.0", default-features = false }
[dev-dependencies]
-sedona-testing = { path = "../sedona-testing" }
+sedona-testing = { workspace = true }
approx = { workspace = true }
criterion = { workspace = true }
pretty_env_logger = "0.4"
diff --git a/rust/sedona-geo-traits-ext/Cargo.toml
b/rust/sedona-geo-traits-ext/Cargo.toml
index fb9a4950..78b229d3 100644
--- a/rust/sedona-geo-traits-ext/Cargo.toml
+++ b/rust/sedona-geo-traits-ext/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-geo-traits-ext"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
diff --git a/rust/sedona-geo/Cargo.toml b/rust/sedona-geo/Cargo.toml
index 7fa02d73..c0940010 100644
--- a/rust/sedona-geo/Cargo.toml
+++ b/rust/sedona-geo/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-geo"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -32,7 +35,7 @@ criterion = { workspace = true }
rstest = { workspace = true }
sedona-geometry = { workspace = true }
sedona-schema = { workspace = true }
-sedona-testing = { path = "../sedona-testing", features = ["criterion", "geo"]
}
+sedona-testing = { workspace = true, features = ["criterion", "geo"] }
wkt = { workspace = true }
[dependencies]
diff --git a/rust/sedona-geometry/Cargo.toml b/rust/sedona-geometry/Cargo.toml
index 7d3a45c1..3a4abb1e 100644
--- a/rust/sedona-geometry/Cargo.toml
+++ b/rust/sedona-geometry/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-geometry"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -30,7 +33,7 @@ result_large_err = "allow"
[dev-dependencies]
geo-types = { workspace = true }
rstest = { workspace = true }
-sedona-testing = { path = "../sedona-testing" }
+sedona-testing = { workspace = true }
serde_json = { workspace = true }
wkt = { workspace = true }
diff --git a/rust/sedona-geoparquet/Cargo.toml
b/rust/sedona-geoparquet/Cargo.toml
index b14beef5..3e63c236 100644
--- a/rust/sedona-geoparquet/Cargo.toml
+++ b/rust/sedona-geoparquet/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-geoparquet"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -31,7 +34,7 @@ result_large_err = "allow"
default = []
[dev-dependencies]
-sedona-testing = { path = "../sedona-testing" }
+sedona-testing = { workspace = true }
url = { workspace = true }
rstest = { workspace = true }
tempfile = { workspace = true }
diff --git a/rust/sedona-raster-functions/Cargo.toml
b/rust/sedona-raster-functions/Cargo.toml
index 6c681f8a..6d3eaa4b 100644
--- a/rust/sedona-raster-functions/Cargo.toml
+++ b/rust/sedona-raster-functions/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-raster-functions"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -40,7 +43,7 @@ sedona-schema = { workspace = true }
[dev-dependencies]
criterion = { workspace = true }
-sedona-testing = { path = "../sedona-testing", features = ["criterion"] }
+sedona-testing = { workspace = true, features = ["criterion"] }
rstest = { workspace = true }
[[bench]]
diff --git a/rust/sedona-raster/Cargo.toml b/rust/sedona-raster/Cargo.toml
index f2757739..7407a050 100644
--- a/rust/sedona-raster/Cargo.toml
+++ b/rust/sedona-raster/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-raster"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -35,5 +38,5 @@ sedona-common = { workspace = true }
sedona-schema = { workspace = true }
[dev-dependencies]
+sedona-testing = { workspace = true }
approx = { workspace = true }
-sedona-testing = { path = "../sedona-testing" }
diff --git a/rust/sedona-schema/Cargo.toml b/rust/sedona-schema/Cargo.toml
index 48b4fd80..85399e68 100644
--- a/rust/sedona-schema/Cargo.toml
+++ b/rust/sedona-schema/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-schema"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
diff --git a/rust/sedona-spatial-join/Cargo.toml
b/rust/sedona-spatial-join/Cargo.toml
index 046a8be6..d1231c64 100644
--- a/rust/sedona-spatial-join/Cargo.toml
+++ b/rust/sedona-spatial-join/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona-spatial-join"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -65,7 +68,7 @@ float_next_after = { workspace = true }
[dev-dependencies]
criterion = { workspace = true }
rstest = { workspace = true }
-sedona-testing = { path = "../sedona-testing" }
+sedona-testing = { workspace = true }
wkt = { workspace = true }
tokio = { workspace = true, features = ["macros"] }
rand = { workspace = true }
diff --git a/rust/sedona-testing/Cargo.toml b/rust/sedona-testing/Cargo.toml
index f0a96b94..f5ed3443 100644
--- a/rust/sedona-testing/Cargo.toml
+++ b/rust/sedona-testing/Cargo.toml
@@ -17,13 +17,15 @@
[package]
name = "sedona-testing"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
readme.workspace = true
edition.workspace = true
rust-version.workspace = true
-publish = false # This crate is for testing only and not published to
crates.io
[lints.clippy]
result_large_err = "allow"
diff --git a/rust/sedona/Cargo.toml b/rust/sedona/Cargo.toml
index 4119280d..9e031a93 100644
--- a/rust/sedona/Cargo.toml
+++ b/rust/sedona/Cargo.toml
@@ -17,6 +17,9 @@
[package]
name = "sedona"
version.workspace = true
+license.workspace = true
+keywords.workspace = true
+categories.workspace = true
homepage.workspace = true
repository.workspace = true
description.workspace = true
@@ -75,7 +78,7 @@ sedona-raster-functions = { workspace = true }
sedona-schema = { workspace = true }
sedona-spatial-join = { workspace = true, optional = true }
sedona-s2geography = { workspace = true, optional = true }
-sedona-testing = { path = "../sedona-testing" }
+sedona-testing = { workspace = true }
sedona-tg = { workspace = true, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }