Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Feature request
about: 'Suggest a performance or feature improvement '
title: "[FEATURE]"
labels: enhancement
assignees: clflushopt
assignees: prantogg

---

Expand Down
105 changes: 105 additions & 0 deletions .github/workflows/build-py-packages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: Build Python Packages

on:
workflow_call:
inputs:
upload-artifacts:
description: "Whether to upload built distributions as artifacts"
required: false
default: false
type: boolean

jobs:
wheels:
runs-on: ${{ matrix.runner }}
strategy:
matrix:
include:
# Linux manylinux
- runner: ubuntu-22.04
target: x86_64
manylinux: auto
os: linux
- runner: ubuntu-22.04
target: x86
manylinux: auto
os: linux
- runner: ubuntu-22.04
target: aarch64
manylinux: auto
os: linux
- runner: ubuntu-22.04
target: armv7
manylinux: auto
os: linux
- runner: ubuntu-22.04
target: ppc64le
manylinux: auto
os: linux

# Linux musllinux
- runner: ubuntu-22.04
target: x86_64
manylinux: musllinux_1_2
os: musllinux
- runner: ubuntu-22.04
target: x86
manylinux: musllinux_1_2
os: musllinux
- runner: ubuntu-22.04
target: aarch64
manylinux: musllinux_1_2
os: musllinux
- runner: ubuntu-22.04
target: armv7
manylinux: musllinux_1_2
os: musllinux

# Windows
- runner: windows-latest
target: x64
os: windows
- runner: windows-latest
target: x86
os: windows

# macOS
- runner: macos-13
target: x86_64
os: macos
- runner: macos-14
target: aarch64
os: macos

steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist
working-directory: spatialbench-cli
manylinux: ${{ matrix.manylinux || '' }}
- name: Upload wheels
if: ${{ inputs.upload-artifacts }}
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.target }}
path: spatialbench-cli/dist

sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
working-directory: spatialbench-cli
- name: Upload sdist
if: ${{ inputs.upload-artifacts }}
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: spatialbench-cli/dist
146 changes: 21 additions & 125 deletions .github/workflows/spatialbench-cli-publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,144 +9,40 @@ permissions:
contents: read

jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
- runner: ubuntu-22.04
target: x86
- runner: ubuntu-22.04
target: aarch64
- runner: ubuntu-22.04
target: armv7
- runner: ubuntu-22.04
target: s390x
- runner: ubuntu-22.04
target: ppc64le
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
working-directory: spatialbench-cli
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: spatialbench-cli/dist

musllinux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
- runner: ubuntu-22.04
target: x86
- runner: ubuntu-22.04
target: aarch64
- runner: ubuntu-22.04
target: armv7
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
working-directory: spatialbench-cli
manylinux: musllinux_1_2
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-musllinux-${{ matrix.platform.target }}
path: spatialbench-cli/dist

windows:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
- runner: windows-latest
target: x86
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
working-directory: spatialbench-cli
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: spatialbench-cli/dist

macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-13
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
working-directory: spatialbench-cli
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: spatialbench-cli/dist

sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
working-directory: spatialbench-cli
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: spatialbench-cli/dist
build:
uses: ./.github/workflows/build-py-packages.yml
with:
upload-artifacts: true

release:
name: Release
runs-on: ubuntu-latest
environment: pypi
needs: [linux, musllinux, windows, macos, sdist]
needs: [build]
permissions:
id-token: write # Use to sign the release artifacts and for pypi trusted publishing
attestations: write # Used to generate artifact attestation
steps:
- uses: actions/download-artifact@v4
- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
pattern: '*'
merge-multiple: true
path: dist

- name: Install twine
run: python -m pip install --upgrade twine

- name: Check distributions
run: python -m twine check --strict dist/*

- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
with:
subject-path: 'wheels-*/*'
subject-path: 'dist/*'

- name: Publish to PyPI
uses: PyO3/maturin-action@v1
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*
args: --non-interactive --skip-existing dist/*
33 changes: 33 additions & 0 deletions .github/workflows/spatialbench-publish-crates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: spatialbench-publish-crates.yml

on:
release:
types: [created]
workflow_dispatch:

jobs:
publish:
runs-on: ubuntu-latest
environment: release
permissions:
id-token: write # Required for OIDC token exchange
strategy:
# Publish package one by one instead of flooding the registry
max-parallel: 1
matrix:
# Order here is sensitive, as it will be used to determine the order of publishing
package:
- "spatialbench"
- "spatialbench-arrow"
- "spatialbench-cli"
steps:
- uses: actions/checkout@v5

- uses: rust-lang/crates-io-auth-action@v1
id: auth

- name: Publish ${{ matrix.package }}
working-directory: ${{ matrix.package }}
run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ members = ["spatialbench", "spatialbench-arrow", "spatialbench-cli"]
resolver = "2"

[workspace.package]
authors = ["clflushopt", "alamb"]
authors = ["Apache Sedona <[email protected]>"]
edition = "2021"
homepage = "https://github.com/wherobots/sedona-spatialbench"
homepage = "https://github.com/apache/sedona-spatialbench/"
license = "Apache-2.0"
readme = "README.md"
repository = "https://github.com/wherobots/sedona-spatialbench"
repository = "https://github.com/apache/sedona-spatialbench/"
version = "1.1.1"

[workspace.dependencies]
Expand Down
6 changes: 3 additions & 3 deletions spatialbench-arrow/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
name = "spatialbench-arrow"
version = "1.1.1"
edition = "2024"
authors = ["clflushopt", "alamb"]
description = "TPC-H data generator into Apache Arrow format"
repository = "https://github.com/wherobots/sedona-spatialbench"
authors = ["Apache Sedona <[email protected]>"]
description = "SpatialBench data generator into Apache Arrow format"
repository = "https://github.com/apache/sedona-spatialbench"
readme = "README.md"
license = "Apache-2.0"

Expand Down
2 changes: 1 addition & 1 deletion spatialbench-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "spatialbench-cli"
version = "1.1.1"
authors = { workspace = true }
description = "Blazing fast pure Rust TPC-H data generator command line tool."
description = "Blazing fast pure Rust SpatialBench data generator command line tool."
readme = "README.md"
edition = { workspace = true }
homepage = { workspace = true }
Expand Down
2 changes: 1 addition & 1 deletion spatialbench-cli/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# SpatialBench Data Generator CLI

See the main [README.md](https://github.com/wherobots/sedona-spatialbench) for full documentation.
See the main [README.md](https://github.com/apache/sedona-spatialbench) for full documentation.

## Installation

Expand Down
2 changes: 1 addition & 1 deletion spatialbench-cli/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "maturin"

[project]
name = "spatialbench-cli"
dynamic = ["version"]
dynamic = ["version", "readme", "license", "authors"]
description = "Python CLI for Spatial Bench data generator"
requires-python = ">=3.8"

Expand Down
Loading