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 e35711c Prepare the project for 0.1.0 release (#66)
e35711c is described below
commit e35711cf5ed9622a4bce0dacd50763f8f81969ac
Author: Jia Yu <[email protected]>
AuthorDate: Tue Dec 2 12:19:31 2025 -0700
Prepare the project for 0.1.0 release (#66)
* Prepare release
* Fix missing and inconsistent information in Carto.toml files
* Add crates.io publish guidance
* Fix formats
---
Cargo.toml | 3 +-
dev/release/README.md | 175 +++++++++++++++++--------
dev/release/rat_exclude_files.txt | 21 ++-
dev/release/run-rat.sh | 17 ++-
dev/release/sign-assets.sh | 149 ---------------------
dev/release/upload-candidate.sh | 84 ------------
dev/release/upload-release.sh | 55 --------
dev/release/verify-release-candidate.sh | 26 +++-
raster/generator.py | 17 +++
spatialbench-arrow/Cargo.toml | 26 +++-
spatialbench-arrow/README.md | 19 +++
spatialbench-arrow/src/building.rs | 19 ++-
spatialbench-arrow/src/conversions.rs | 17 +++
spatialbench-arrow/src/customer.rs | 19 ++-
spatialbench-arrow/src/driver.rs | 19 ++-
spatialbench-arrow/src/lib.rs | 17 +++
spatialbench-arrow/src/trip.rs | 19 ++-
spatialbench-arrow/src/vehicle.rs | 19 ++-
spatialbench-arrow/tests/reparse.rs | 19 ++-
spatialbench-cli/Cargo.toml | 25 +++-
spatialbench-cli/src/csv.rs | 17 +++
spatialbench-cli/src/generate.rs | 17 +++
spatialbench-cli/src/main.rs | 17 +++
spatialbench-cli/src/output_plan.rs | 17 +++
spatialbench-cli/src/parquet.rs | 17 +++
spatialbench-cli/src/plan.rs | 17 +++
spatialbench-cli/src/runner.rs | 17 +++
spatialbench-cli/src/spatial_config_file.rs | 17 +++
spatialbench-cli/src/statistics.rs | 17 +++
spatialbench-cli/src/tbl.rs | 17 +++
spatialbench-cli/src/zone/config.rs | 17 +++
spatialbench-cli/src/zone/datasource.rs | 17 +++
spatialbench-cli/src/zone/main.rs | 17 +++
spatialbench-cli/src/zone/mod.rs | 17 +++
spatialbench-cli/src/zone/partition.rs | 17 +++
spatialbench-cli/src/zone/stats.rs | 17 +++
spatialbench-cli/src/zone/transform.rs | 17 +++
spatialbench-cli/src/zone/writer.rs | 17 +++
spatialbench-cli/tests/cli_integration.rs | 17 +++
spatialbench/Cargo.toml | 19 +++
spatialbench/data/README.md | 19 +++
spatialbench/src/csv.rs | 17 +++
spatialbench/src/dates.rs | 17 +++
spatialbench/src/decimal.rs | 17 +++
spatialbench/src/distribution.rs | 17 +++
spatialbench/src/dists.dss | 16 +++
spatialbench/src/generators.rs | 17 +++
spatialbench/src/kde.rs | 17 +++
spatialbench/src/lib.rs | 17 +++
spatialbench/src/q_and_a/answers_sf1.rs | 17 +++
spatialbench/src/q_and_a/mod.rs | 17 +++
spatialbench/src/q_and_a/queries.rs | 17 +++
spatialbench/src/random.rs | 17 +++
spatialbench/src/spatial/cache.rs | 17 +++
spatialbench/src/spatial/config.rs | 17 +++
spatialbench/src/spatial/defaults.rs | 17 +++
spatialbench/src/spatial/distributions.rs | 17 +++
spatialbench/src/spatial/generator.rs | 17 +++
spatialbench/src/spatial/geometry.rs | 17 +++
spatialbench/src/spatial/mod.rs | 17 +++
spatialbench/src/spatial/overrides.rs | 17 +++
spatialbench/src/spatial/utils/affine.rs | 17 +++
spatialbench/src/spatial/utils/antimeridian.rs | 17 +++
spatialbench/src/spatial/utils/continent.rs | 17 +++
spatialbench/src/spatial/utils/mod.rs | 17 +++
spatialbench/src/spatial/utils/random.rs | 17 +++
spatialbench/src/text.rs | 17 +++
spatialbench/tests/geometry_tests.rs | 17 +++
spatialbench/tests/integration_tests.rs | 17 +++
69 files changed, 1231 insertions(+), 370 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index d95e73a..82f5efa 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,12 +6,13 @@ resolver = "2"
[workspace.package]
authors = ["Apache Sedona <[email protected]>"]
+description = "A benchmark for assessing geospatial SQL analytics query
performance across database systems"
edition = "2021"
homepage = "https://github.com/apache/sedona-spatialbench/"
license = "Apache-2.0"
readme = "README.md"
repository = "https://github.com/apache/sedona-spatialbench/"
-version = "1.1.1"
+version = "0.1.0"
[workspace.dependencies]
geo = "0.31.0"
diff --git a/dev/release/README.md b/dev/release/README.md
index 745bc93..01db51e 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -21,18 +21,46 @@
## Verifying a release candidate
-Release candidates are verified using the script `verify-release-candidate.sh
<version> <rc_num>`.
-For example, to verify SpatialBench 0.1.0 RC1, run:
+### Testing locally (before creating a release candidate)
+
+Before creating a release candidate, you should test your local checkout:
```shell
# git clone https://github.com/apache/sedona-spatialbench.git && cd
sedona-spatialbench
# or
# cd existing/sedona-spatialbench && git fetch upstream && git switch main &&
git pull upstream main
+dev/release/verify-release-candidate.sh
+```
+
+This will run all verification tests on your local checkout without requiring
any release artifacts.
+
+### Testing a local tarball
+
+To create a local tarball for testing:
+
+```shell
+VERSION="0.1.0" && git archive HEAD
--prefix=apache-sedona-spatialbench-${VERSION}/ | gzip >
apache-sedona-spatialbench-${VERSION}-src.tar.gz
+dev/release/verify-release-candidate.sh
apache-sedona-spatialbench-${VERSION}-src.tar.gz
+```
+
+### Verifying an official release candidate
+
+Once a release candidate has been uploaded to Apache dist, verify it using:
+
+```shell
dev/release/verify-release-candidate.sh 0.1.0 1
```
-Release verification requires a recent Rust toolchain. This toolchain can be
installed
-by following instructions from <https://rustup.rs/>.
+This will download the release candidate from
`https://dist.apache.org/repos/dist/dev/sedona/` and verify it.
+
+Release verification requires:
+- A recent Rust toolchain (can be installed from <https://rustup.rs/>)
+- Java (for Apache RAT license checking)
+- Python (for RAT report filtering)
+
+The verification script will:
+1. Run Apache RAT to check all files have proper license headers
+2. Build and test all Rust crates in the workspace
When verifying via Docker or on a smaller machine it may be necessary to limit
the
number of parallel jobs to avoid running out of memory:
@@ -53,72 +81,71 @@ git branch -b branch-0.1.0
git push upstream -u branch-0.1.0:branch-0.1.0
```
-Before creating a tag, download the tarball from the latest packaging run and
-check it locally:
-
-```shell
-dev/release/verify-release-candidate.sh path/to/tarball.tar.gz
-```
-
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 sedona-spatialbench-0.1.0-rc1 -m "Tag Apache SpatialBench 0.1.0-rc1"
+git tag -a sedona-spatialbench-0.1.0-rc1 -m "Tag Apache Sedona SpatialBench
0.1.0-rc1"
git push upstream sedona-spatialbench-0.1.0-rc1
```
-This will trigger another packaging CI run that, if successful, will create a
-pre-release at <https://github.com/apache/sedona-spatialbench/releases> with
the release
-artifacts uploaded from the CI run.
-
-After the release has been created with the appropriate artifacts, the assets
-need to be signed with signatures uploaded as release assets. Please create
-dev/release/.env from dev/release/.env.example and set the GPG_KEY_ID variable.
-The GPG_KEY_ID in dev/release/.env must have its public component listed in the
-[Apache Sedona KEYS file](https://dist.apache.org/repos/dist/dev/sedona/KEYS).
+### Signing Commands
-```shell
-# sign-assets.sh <version> <rc_number>
-dev/release/sign-assets.sh 0.1.0 1
-```
+Now the assets need to be signed with signatures.
-After the assets are signed, they can be committed and uploaded to the
-dev/sedona directory of the Apache distribution SVN. A helper script
-is provided:
+**GPG Signing:**
```shell
-# upload-candidate.sh <version> <rc_number>
-APACHE_USERNAME=your_apache_username dev/release/upload-candidate.sh 0.1.0 1
+# Sign a file (creates .asc file automatically)
+gpg -ab apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz
+
+# Verify a signature
+gpg --verify apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz.asc
apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz
```
-## Vote
+**SHA512 Checksum:**
-An email must now be sent to `[email protected]` calling on developers to
follow
-the release verification instructions and vote appropriately on the source
release.
+```shell
+# Generate SHA512 checksum
+shasum -a 512 apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz >
apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz.sha512
-## Publish
+# Verify a checksum
+shasum -a 512 --check
apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz.sha512
+```
-### Upload/tag source release
+**Upload to Apache SVN:**
-After a successful release vote, the tarball needs to be uploaded to the
official
-Apache release repository. A helper script is provided:
+After the assets are signed, they can be committed and uploaded to the
+dev/sedona directory of the Apache distribution SVN:
```shell
-# upload-release.sh <version> <rc_number>
-APACHE_USERNAME=your_apache_username dev/release/upload-release.sh 0.1.0 1
+# Set version and RC number variables
+SEDONA_VERSION="0.1.0"
+RC_NUMBER="1"
+
+# Create the directory in SVN
+svn mkdir -m "Adding folder"
https://dist.apache.org/repos/dist/dev/sedona/sedona-spatialbench-${SEDONA_VERSION}-rc${RC_NUMBER}
+
+# Checkout the directory
+svn co
https://dist.apache.org/repos/dist/dev/sedona/sedona-spatialbench-${SEDONA_VERSION}-rc${RC_NUMBER}
tmp
+
+# Copy files to the checked out directory
+cp apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz tmp/
+cp apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz.asc tmp/
+cp apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz.sha512 tmp/
+
+# Add and commit the files
+cd tmp
+svn add apache-sedona-spatialbench-${SEDONA_VERSION}-src.tar.gz*
+svn ci -m "Apache SpatialBench ${SEDONA_VERSION} RC${RC_NUMBER}"
+cd ..
+rm -rf tmp
```
-An official GitHub tag must also be created:
-
-```shell
-git tag -a sedona-spatialbench-0.1.0 -m "SpatialBench 0.1.0"
sedona-spatialbench-0.1.0-rc1
-git push upstream sedona-spatialbench-0.1.0
-```
+## Vote
-The prerelease located at
<https://github.com/apache/sedona-spatialbench/releases/tag/sedona-spatialbench-0.1.0-rc1>
-can now be edited to point to the official release tag and the GitHub release
published
-from the UI.
+An email must now be sent to `[email protected]` calling on developers to
follow
+the release verification instructions and vote appropriately on the source
release.
## Bump versions
@@ -130,13 +157,49 @@ are currently all derived from `Cargo.toml`, which can be
updated to:
version = "0.2.0"
```
-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
-the version bump PR merges, that commit should be tagged with the appropriate
-development tag:
+## Publishing to crates.io
-```shell
-git tag -a sedona-spatialbench-0.2.0.dev -m "tag dev 0.2.0"
-git push upstream sedona-spatialbench-0.2.0.dev
-```
+After a successful Apache release, the Rust crates can be published to
[crates.io](https://crates.io).
+### Prerequisites
+
+1. **crates.io account**: Create an account at <https://crates.io> if you
don't have one
+2. **API token**: Generate an API token from <https://crates.io/me>
+3. **Login to cargo**: Authenticate cargo with your API token:
+ ```shell
+ cargo login <your-api-token>
+ ```
+4. **Verify ownership**: Ensure you have owner permissions for the crates on
crates.io. If this is the first publish, you'll automatically become an owner.
+
+### Pre-publish checks
+
+Before publishing, verify that:
+
+1. All tests pass:
+ ```shell
+ cargo test --workspace
+ ```
+
+2. The workspace builds successfully:
+ ```shell
+ cargo build --workspace --release
+ ```
+
+3. Check for any issues with `dry run`:
+ ```shell
+ cargo publish --dry-run
+ ```
+
+### Publishing order
+
+The crates will be published in dependency order. The correct order is:
+
+1. `spatialbench` (no workspace dependencies)
+2. `spatialbench-arrow` (depends on `spatialbench`)
+3. `spatialbench-cli` (depends on both `spatialbench` and `spatialbench-arrow`)
+
+To publish, run this command:
+
+```shell
+cargo publish
+```
\ No newline at end of file
diff --git a/dev/release/rat_exclude_files.txt
b/dev/release/rat_exclude_files.txt
index c3a17d7..d5ceb40 100644
--- a/dev/release/rat_exclude_files.txt
+++ b/dev/release/rat_exclude_files.txt
@@ -5,7 +5,22 @@ Cargo.lock
site/**
docs-overrides/**
raster/output/**
-spatialbench/data/sf-v1/*.tbl.gz
-spatialbench/data/sf-v1/*.parquet
+spatialbench/data/**
dev/release/rat_exclude_files.txt
-
+.gitignore
+.gitkeep
+filtered_rat.txt
+rat.txt
+docs/requirements.txt
+docs/javascripts/katex.js
+docs/stylesheets/extra.css
+target/**
+ARCHITECTURE.md
+Cargo.toml
+README.md
+spatialbench-config.yml
+docs/queries.md
+spatialbench-cli/CONFIGURATION.md
+spatialbench-cli/Cargo.toml
+spatialbench-cli/README.md
+spatialbench-cli/pyproject.toml
diff --git a/dev/release/run-rat.sh b/dev/release/run-rat.sh
index 78eba22..d5230c7 100755
--- a/dev/release/run-rat.sh
+++ b/dev/release/run-rat.sh
@@ -18,19 +18,21 @@
# under the License.
RAT_VERSION=0.13
+RELEASE_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
+RAT_JAR="${RELEASE_DIR}/apache-rat-${RAT_VERSION}.jar"
# download apache rat
-if [ ! -f apache-rat-${RAT_VERSION}.jar ]; then
- curl -s
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${RAT_VERSION}/apache-rat-${RAT_VERSION}.jar
> apache-rat-${RAT_VERSION}.jar
+if [ ! -f "${RAT_JAR}" ]; then
+ curl -s
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/${RAT_VERSION}/apache-rat-${RAT_VERSION}.jar
> "${RAT_JAR}"
fi
-RAT="java -jar apache-rat-${RAT_VERSION}.jar -x "
-
-RELEASE_DIR=$(cd "$(dirname "$BASH_SOURCE")"; pwd)
+RAT="java -jar ${RAT_JAR} -x "
# generate the rat report
-$RAT $1 > rat.txt
-python $RELEASE_DIR/check-rat-report.py $RELEASE_DIR/rat_exclude_files.txt
rat.txt > filtered_rat.txt
+# Run RAT from inside the target directory so it produces relative paths
+cd "$1"
+$RAT . > rat.txt
+python3 $RELEASE_DIR/check-rat-report.py $RELEASE_DIR/rat_exclude_files.txt
rat.txt > filtered_rat.txt
cat filtered_rat.txt
UNAPPROVED=`cat filtered_rat.txt | grep "NOT APPROVED" | wc -l`
@@ -41,3 +43,4 @@ else
exit 1
fi
+
diff --git a/dev/release/sign-assets.sh b/dev/release/sign-assets.sh
deleted file mode 100755
index 18f56c8..0000000
--- a/dev/release/sign-assets.sh
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/env 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.
-
-set -eu
-
-main() {
- local -r source_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- local -r source_top_dir="$( cd "${source_dir}/../../" && pwd )"
- pushd "${source_top_dir}"
-
- if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <version> <rc-num>"
- exit 1
- fi
-
- local -r version="$1"
- local -r rc_number="$2"
- local -r tag="sedona-spatialbench-${version}-rc${rc_number}"
- local -r tarball="apache-sedona-spatialbench-${version}"
-
- : ${REPOSITORY:="apache/sedona-spatialbench"}
-
- if [[ ! -f "${source_dir}/.env" ]]; then
- echo "You must create ${source_dir}/.env"
- echo "You can use ${source_dir}/.env.example as a template"
- fi
-
- source "${source_dir}/.env"
-
- header "Looking for GitHub Actions workflow on ${REPOSITORY}:${tag}"
- local run_id=""
- while [[ -z "${run_id}" ]]
- do
- echo "Waiting for run to start..."
- run_id=$(gh run list \
- --repo "${REPOSITORY}" \
- --workflow=packaging \
- --json 'databaseId,event,headBranch,status' \
- --jq ".[] | select(.event == \"push\" and .headBranch ==
\"${tag}\") | .databaseId" | \
- head -n 1)
- sleep 1
- done
-
- header "Found GitHub Actions workflow with ID: ${run_id}"
- gh run watch --repo "${REPOSITORY}" --exit-status ${run_id}
- gh run view --repo "${REPOSITORY}" "${run_id}"
-
- header "Downloading assets from release"
- local -r download_dir="packages/${tag}"
- mkdir -p "${download_dir}"
- gh release download \
- "${tag}" \
- --repo "${REPOSITORY}" \
- --dir "${download_dir}" \
- --skip-existing
-
- header "Upload signatures for source"
- upload_asset_signatures "${tag}" $(find "${download_dir}" -type f \( -name
'apache-sedona-spatialbench-*.tar.gz' \))
-
- header "Upload signatures for docs"
- upload_asset_signatures "${tag}" "${download_dir}/docs.tgz"
-
- popd
-}
-
-header() {
- echo "============================================================"
- echo "${1}"
- echo "============================================================"
-}
-
-sign_asset() {
- local -r asset="$1"
- local -r sigfile="${asset}.asc"
-
- if [[ -f "${sigfile}" ]]; then
- if env LANG=C gpg --verify "${sigfile}" "${asset}" >/dev/null 2>&1;
then
- echo "Valid signature at $(basename "${sigfile}"), skipping"
- return
- fi
- rm "${sigfile}"
- fi
-
- gpg \
- --armor \
- --detach-sign \
- --local-user "${GPG_KEY_ID}" \
- --output "${sigfile}" \
- "${asset}"
- echo "Generated $(basename "${sigfile}")"
-}
-
-sum_asset() {
- local -r asset="$1"
- local -r sumfile="${asset}.sha512"
-
- local -r digest=$(cd $(dirname "${asset}"); shasum --algorithm 512
$(basename "${asset}"))
- if [[ -f "${sumfile}" ]]; then
- if [[ "${digest}" = $(cat "${sumfile}") ]]; then
- echo "Valid digest at $(basename "${sumfile}"), skipping"
- return
- fi
- fi
-
- echo "${digest}" > "${sumfile}"
- echo "Generated $(basename "${sumfile}")"
-}
-
-upload_asset_signatures() {
- local -r tag="${1}"
- shift 1
-
- local -r assets=("$@")
-
- for asset in "${assets[@]}"; do
- sign_asset "${asset}"
- sum_asset "${asset}"
- done
-
- gh release upload \
- --repo "${REPOSITORY}" \
- "${tag}" \
- "${assets[@]/%/.asc}" \
- "${assets[@]/%/.sha512}"
-
- # Clean up
- for asset in "${assets[@]}"; do
- rm -f "${asset}" "${asset}.asc" "${asset}.sha512"
- done
-}
-
-main "$@"
-
diff --git a/dev/release/upload-candidate.sh b/dev/release/upload-candidate.sh
deleted file mode 100755
index bffba60..0000000
--- a/dev/release/upload-candidate.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env 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.
-
-
-set -eu
-
-main() {
- local -r source_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
- local -r source_top_dir="$( cd "${source_dir}/../../" && pwd )"
-
- if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <version> <rc-num>"
- exit 1
- fi
- local -r version="$1"
- local -r rc_number="$2"
- local -r tag="sedona-spatialbench-${version}-rc${rc_number}"
- local -r tarball="apache-sedona-spatialbench-${version}.tar.gz"
-
- : ${REPOSITORY:="apache/sedona-spatialbench"}
-
- if [[ ! -f "${source_dir}/.env" ]]; then
- echo "You must create ${source_dir}/.env"
- echo "You can use ${source_dir}/.env.example as a template"
- fi
-
- source "${source_dir}/.env"
-
- header "Downloading assets from release"
- local -r download_dir="packages/${tag}"
- mkdir -p "${download_dir}"
- gh release download \
- "${tag}" \
- --dir "${download_dir}" \
- --pattern "${tarball}*" \
- --repo "${REPOSITORY}" \
- --skip-existing
-
- echo "Uploading to dist.apache.org"
-
- # check out the sedona RC folder
- svn co --depth=empty https://dist.apache.org/repos/dist/dev/sedona tmp
-
- # add the release candidate for the tag
- mkdir -p "tmp/${tag}"
-
- # copy the rc tarball into the tmp dir
- cp ${download_dir}/${tarball}* "tmp/${tag}"
-
- # commit to svn
- svn add "tmp/${tag}"
- svn ci --username=$APACHE_USERNAME -m "Apache SpatialBench ${version}
RC${rc_number}" "tmp/${tag}"
-
- # clean up
- rm -rf tmp
- rm -rf "${download_dir}"
-
- echo "Uploaded at https://dist.apache.org/repos/dist/dev/sedona/${tag}"
-}
-
-header() {
- echo "============================================================"
- echo "${1}"
- echo "============================================================"
-}
-
-main "$@"
-
diff --git a/dev/release/upload-release.sh b/dev/release/upload-release.sh
deleted file mode 100755
index 71bf530..0000000
--- a/dev/release/upload-release.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env 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.
-
-set -eu
-
-main() {
- local -r source_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-
- if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <version> <rc-num>"
- exit 1
- fi
- local -r version="$1"
- local -r rc_number="$2"
- local -r tag="sedona-spatialbench-${version}-rc${rc_number}"
-
- if [[ ! -f "${source_dir}/.env" ]]; then
- echo "You must create ${source_dir}/.env"
- echo "You can use ${source_dir}/.env.example as a template"
- fi
-
- source "${source_dir}/.env"
-
- rc_id="sedona-spatialbench-${version}-rc${rc_number}"
- release_id="apache-sedona-spatialbench-${version}"
- echo "Moving dev/ to release/"
- svn \
- mv \
- --username=$APACHE_USERNAME \
- -m "Apache SpatialBench ${version}" \
- https://dist.apache.org/repos/dist/dev/sedona/${rc_id} \
- https://dist.apache.org/repos/dist/release/sedona/${release_id}
-
- echo "Success! The release is available here:"
- echo " https://dist.apache.org/repos/dist/release/sedona/${release_id}"
-}
-
-main "$@"
-
diff --git a/dev/release/verify-release-candidate.sh
b/dev/release/verify-release-candidate.sh
index 103a8d6..4589891 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -28,7 +28,7 @@ fi
check_dependencies() {
local missing_deps=0
- local required_deps=("curl" "git" "gpg" "cargo")
+ local required_deps=("curl" "git" "gpg" "cargo" "java" "python")
for dep in "${required_deps[@]}"; do
if ! command -v $dep &> /dev/null; then
echo "Error: $dep is not installed or not in PATH"
@@ -102,12 +102,19 @@ show_info() {
SPATIALBENCH_DIST_URL='https://dist.apache.org/repos/dist/dev/sedona'
download_dist_file() {
- curl \
+ local url="${SPATIALBENCH_DIST_URL}/$1"
+ if ! curl \
--silent \
--show-error \
--fail \
--location \
- --remote-name $SPATIALBENCH_DIST_URL/$1
+ --remote-name "$url"; then
+ echo "Error: Failed to download $url"
+ echo "This usually means the release candidate has not been uploaded yet."
+ echo "To test locally, run: $0"
+ echo "Or to test a local tarball: $0 /path/to/tarball.tar.gz"
+ exit 1
+ fi
}
download_rc_file() {
@@ -196,6 +203,14 @@ test_rust() {
popd
}
+test_rat() {
+ show_header "Running Apache RAT license check"
+
+ # Use SOURCE_DIR which was computed at script startup (before any directory
changes)
+ # Run RAT check using the run-rat.sh script from the repo
+ bash "${SOURCE_DIR}/run-rat.sh" "${SPATIALBENCH_SOURCE_DIR}"
+}
+
ensure_source_directory() {
show_header "Ensuring source directory"
@@ -234,6 +249,10 @@ ensure_source_directory() {
test_source_distribution() {
pushd $SPATIALBENCH_SOURCE_DIR
+ if [ ${TEST_RAT} -gt 0 ]; then
+ test_rat
+ fi
+
if [ ${TEST_RUST} -gt 0 ]; then
test_rust
fi
@@ -247,6 +266,7 @@ test_source_distribution() {
: ${TEST_DEFAULT:=1}
: ${TEST_SOURCE:=${TEST_DEFAULT}}
+: ${TEST_RAT:=${TEST_SOURCE}}
: ${TEST_RUST:=${TEST_SOURCE}}
TEST_SUCCESS=no
diff --git a/raster/generator.py b/raster/generator.py
index a9ba0cc..0e5d70b 100644
--- a/raster/generator.py
+++ b/raster/generator.py
@@ -1,3 +1,20 @@
+# 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.
+
import os
import numpy as np
diff --git a/spatialbench-arrow/Cargo.toml b/spatialbench-arrow/Cargo.toml
index 8b0fbe6..a11b7ff 100644
--- a/spatialbench-arrow/Cargo.toml
+++ b/spatialbench-arrow/Cargo.toml
@@ -1,16 +1,36 @@
+# 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.
+
[package]
name = "spatialbench-arrow"
-version = "1.1.1"
-edition = "2024"
+version = "0.1.0"
+edition = "2021"
authors = ["Apache Sedona <[email protected]>"]
description = "SpatialBench data generator into Apache Arrow format"
+homepage = "https://github.com/apache/sedona-spatialbench"
repository = "https://github.com/apache/sedona-spatialbench"
readme = "README.md"
license = "Apache-2.0"
+keywords = ["spatial", "geospatial", "data-generation", "apache-arrow"]
+categories = ["science::geo", "database", "data-structures"]
[dependencies]
arrow = { version = "56", default-features = false, features = ["prettyprint"]
}
-spatialbench = { path = "../spatialbench", version = "1.1.1" }
+spatialbench = { path = "../spatialbench", version = "0.1.0" }
geo = { workspace = true }
geozero = { workspace = true }
diff --git a/spatialbench-arrow/README.md b/spatialbench-arrow/README.md
index 59a25ad..95147d8 100644
--- a/spatialbench-arrow/README.md
+++ b/spatialbench-arrow/README.md
@@ -1,3 +1,22 @@
+<!---
+ 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.
+-->
+
# Spatial Bench Data Generator in Arrow format
This crate generates Spatial Bench data directly into [Apache Arrow] format
using the [arrow] crate
diff --git a/spatialbench-arrow/src/building.rs
b/spatialbench-arrow/src/building.rs
index 8d16aba..b8ab8ba 100644
--- a/spatialbench-arrow/src/building.rs
+++ b/spatialbench-arrow/src/building.rs
@@ -1,5 +1,22 @@
+// 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.
+
use crate::conversions::string_view_array_from_display_iter;
-use crate::{DEFAULT_BATCH_SIZE, RecordBatchIterator};
+use crate::{RecordBatchIterator, DEFAULT_BATCH_SIZE};
use arrow::array::{BinaryArray, Int64Array, RecordBatch};
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
use geo::Geometry;
diff --git a/spatialbench-arrow/src/conversions.rs
b/spatialbench-arrow/src/conversions.rs
index 63aad6e..5826bda 100644
--- a/spatialbench-arrow/src/conversions.rs
+++ b/spatialbench-arrow/src/conversions.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Routines to convert TPCH types to Arrow types
use arrow::array::{StringViewArray, StringViewBuilder};
diff --git a/spatialbench-arrow/src/customer.rs
b/spatialbench-arrow/src/customer.rs
index 126bdbc..33947f5 100644
--- a/spatialbench-arrow/src/customer.rs
+++ b/spatialbench-arrow/src/customer.rs
@@ -1,5 +1,22 @@
+// 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.
+
use crate::conversions::string_view_array_from_display_iter;
-use crate::{DEFAULT_BATCH_SIZE, RecordBatchIterator};
+use crate::{RecordBatchIterator, DEFAULT_BATCH_SIZE};
use arrow::array::{Int64Array, RecordBatch, StringViewArray};
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
use spatialbench::generators::{CustomerGenerator, CustomerGeneratorIterator};
diff --git a/spatialbench-arrow/src/driver.rs b/spatialbench-arrow/src/driver.rs
index 8294397..ba07f50 100644
--- a/spatialbench-arrow/src/driver.rs
+++ b/spatialbench-arrow/src/driver.rs
@@ -1,5 +1,22 @@
+// 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.
+
use crate::conversions::string_view_array_from_display_iter;
-use crate::{DEFAULT_BATCH_SIZE, RecordBatchIterator};
+use crate::{RecordBatchIterator, DEFAULT_BATCH_SIZE};
use arrow::array::{Int64Array, RecordBatch, StringViewArray};
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
use spatialbench::generators::{DriverGenerator, DriverGeneratorIterator};
diff --git a/spatialbench-arrow/src/lib.rs b/spatialbench-arrow/src/lib.rs
index ac6fb78..68fd7b5 100644
--- a/spatialbench-arrow/src/lib.rs
+++ b/spatialbench-arrow/src/lib.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Generate Spatial Bench data as Arrow RecordBatches
//!
//! This crate provides generators for Spatial Bench tables that directly
produces
diff --git a/spatialbench-arrow/src/trip.rs b/spatialbench-arrow/src/trip.rs
index bf866de..cdfb86c 100644
--- a/spatialbench-arrow/src/trip.rs
+++ b/spatialbench-arrow/src/trip.rs
@@ -1,5 +1,22 @@
+// 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.
+
use crate::conversions::{decimal128_array_from_iter,
to_arrow_timestamp_millis};
-use crate::{DEFAULT_BATCH_SIZE, RecordBatchIterator};
+use crate::{RecordBatchIterator, DEFAULT_BATCH_SIZE};
use arrow::array::{BinaryArray, Int64Array, RecordBatch,
TimestampMillisecondArray};
use arrow::datatypes::{DataType, Field, Schema, SchemaRef, TimeUnit};
use geo::Geometry;
diff --git a/spatialbench-arrow/src/vehicle.rs
b/spatialbench-arrow/src/vehicle.rs
index 8e39013..95d6e7e 100644
--- a/spatialbench-arrow/src/vehicle.rs
+++ b/spatialbench-arrow/src/vehicle.rs
@@ -1,5 +1,22 @@
+// 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.
+
use crate::conversions::string_view_array_from_display_iter;
-use crate::{DEFAULT_BATCH_SIZE, RecordBatchIterator};
+use crate::{RecordBatchIterator, DEFAULT_BATCH_SIZE};
use arrow::array::{Int64Array, RecordBatch, StringViewArray};
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
use spatialbench::generators::{VehicleGenerator, VehicleGeneratorIterator};
diff --git a/spatialbench-arrow/tests/reparse.rs
b/spatialbench-arrow/tests/reparse.rs
index 889933a..0cda73c 100644
--- a/spatialbench-arrow/tests/reparse.rs
+++ b/spatialbench-arrow/tests/reparse.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Verifies the correctness of the Arrow Spatial Bench generator by parsing
the canonical TBL format
//! and comparing with the generated Arrow RecordBatches
@@ -17,8 +34,8 @@ use std::sync::Arc;
use arrow::array::Array;
use arrow::array::BinaryArray;
use geo::Geometry;
-use geozero::ToGeo;
use geozero::wkb::Wkb;
+use geozero::ToGeo;
/// Macro that defines tests for tbl for a given type
macro_rules! test_row_type {
diff --git a/spatialbench-cli/Cargo.toml b/spatialbench-cli/Cargo.toml
index a3c8e87..8c1ff93 100644
--- a/spatialbench-cli/Cargo.toml
+++ b/spatialbench-cli/Cargo.toml
@@ -1,6 +1,23 @@
+# 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.
+
[package]
name = "spatialbench-cli"
-version = "1.1.1"
+version = "0.1.0"
authors = { workspace = true }
description = "Blazing fast pure Rust SpatialBench data generator command line
tool."
readme = "README.md"
@@ -8,13 +25,15 @@ edition = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
repository = { workspace = true }
+keywords = ["spatial", "geospatial", "benchmark", "cli", "data-generation"]
+categories = ["science::geo", "database", "command-line-utilities",
"development-tools"]
[dependencies]
arrow = "56"
parquet = "56"
clap = { version = "4.5.32", features = ["derive"] }
-spatialbench = { path = "../spatialbench", version = "1.1.1"}
-spatialbench-arrow = { path = "../spatialbench-arrow", version = "1.1.1" }
+spatialbench = { path = "../spatialbench", version = "0.1.0"}
+spatialbench-arrow = { path = "../spatialbench-arrow", version = "0.1.0" }
tokio = { version = "1.44.1", features = ["full"]}
futures = "0.3.31"
num_cpus = "1.0"
diff --git a/spatialbench-cli/src/csv.rs b/spatialbench-cli/src/csv.rs
index 78f93e5..241dc0c 100644
--- a/spatialbench-cli/src/csv.rs
+++ b/spatialbench-cli/src/csv.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Implementations of [`Source`] for generating data in TBL format
use super::generate::Source;
use spatialbench::csv::{BuildingCsv, CustomerCsv, DriverCsv, TripCsv,
VehicleCsv};
diff --git a/spatialbench-cli/src/generate.rs b/spatialbench-cli/src/generate.rs
index bbe3cef..90cba4b 100644
--- a/spatialbench-cli/src/generate.rs
+++ b/spatialbench-cli/src/generate.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Parallel data generation: [`Source`] and [`Sink`] and
[`generate_in_chunks`]
//!
//! These traits and function are used to generate data in parallel and write
it to a sink
diff --git a/spatialbench-cli/src/main.rs b/spatialbench-cli/src/main.rs
index e1b5c4c..425e5d7 100644
--- a/spatialbench-cli/src/main.rs
+++ b/spatialbench-cli/src/main.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Spatial Bench data generation CLI with a dbgen compatible API.
//!
//! This crate provides a CLI for generating Spatial Bench data and tries to
remain close
diff --git a/spatialbench-cli/src/output_plan.rs
b/spatialbench-cli/src/output_plan.rs
index 75e441b..cdab006 100644
--- a/spatialbench-cli/src/output_plan.rs
+++ b/spatialbench-cli/src/output_plan.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! * [`OutputLocation`]: where to output the generated data
//! * [`OutputPlan`]: an output file that will be generated
//! * [`OutputPlanGenerator`]: plans the output files to be generated
diff --git a/spatialbench-cli/src/parquet.rs b/spatialbench-cli/src/parquet.rs
index 53b60f4..45ffcbd 100644
--- a/spatialbench-cli/src/parquet.rs
+++ b/spatialbench-cli/src/parquet.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Parquet output format
use crate::statistics::WriteStatistics;
diff --git a/spatialbench-cli/src/plan.rs b/spatialbench-cli/src/plan.rs
index fceace9..ed680b1 100644
--- a/spatialbench-cli/src/plan.rs
+++ b/spatialbench-cli/src/plan.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! * [`GenerationPlan`]: how to generate a specific Spatial Bench dataset.
use crate::{OutputFormat, Table};
diff --git a/spatialbench-cli/src/runner.rs b/spatialbench-cli/src/runner.rs
index 882d1cf..a337490 100644
--- a/spatialbench-cli/src/runner.rs
+++ b/spatialbench-cli/src/runner.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! [`PlanRunner`] for running [`OutputPlan`]s.
use crate::csv::*;
diff --git a/spatialbench-cli/src/spatial_config_file.rs
b/spatialbench-cli/src/spatial_config_file.rs
index 9027da7..876daeb 100644
--- a/spatialbench-cli/src/spatial_config_file.rs
+++ b/spatialbench-cli/src/spatial_config_file.rs
@@ -1,3 +1,20 @@
+// 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.
+
use anyhow::Result;
use serde::de::{self, Visitor};
use serde::{Deserialize, Deserializer};
diff --git a/spatialbench-cli/src/statistics.rs
b/spatialbench-cli/src/statistics.rs
index b4230dd..ff604b4 100644
--- a/spatialbench-cli/src/statistics.rs
+++ b/spatialbench-cli/src/statistics.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Statistics reporter for Spatial Bench data generation.
use log::{debug, info};
diff --git a/spatialbench-cli/src/tbl.rs b/spatialbench-cli/src/tbl.rs
index 8eeb448..5ee9a1a 100644
--- a/spatialbench-cli/src/tbl.rs
+++ b/spatialbench-cli/src/tbl.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Implementations of [`Source`] for generating data in TBL format
use super::generate::Source;
diff --git a/spatialbench-cli/src/zone/config.rs
b/spatialbench-cli/src/zone/config.rs
index 92890a6..9594c8b 100644
--- a/spatialbench-cli/src/zone/config.rs
+++ b/spatialbench-cli/src/zone/config.rs
@@ -1,3 +1,20 @@
+// 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.
+
use anyhow::{anyhow, Result};
use parquet::basic::Compression as ParquetCompression;
use std::path::PathBuf;
diff --git a/spatialbench-cli/src/zone/datasource.rs
b/spatialbench-cli/src/zone/datasource.rs
index 1866460..d3c2ea9 100644
--- a/spatialbench-cli/src/zone/datasource.rs
+++ b/spatialbench-cli/src/zone/datasource.rs
@@ -1,3 +1,20 @@
+// 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.
+
use anyhow::Result;
use datafusion::{
common::config::ConfigOptions,
diff --git a/spatialbench-cli/src/zone/main.rs
b/spatialbench-cli/src/zone/main.rs
index cfa59e3..83fb017 100644
--- a/spatialbench-cli/src/zone/main.rs
+++ b/spatialbench-cli/src/zone/main.rs
@@ -1,3 +1,20 @@
+// 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.
+
use log::info;
use parquet::basic::Compression as ParquetCompression;
use std::io;
diff --git a/spatialbench-cli/src/zone/mod.rs b/spatialbench-cli/src/zone/mod.rs
index 5d8d3ee..4071454 100644
--- a/spatialbench-cli/src/zone/mod.rs
+++ b/spatialbench-cli/src/zone/mod.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Zone table generation module using DataFusion and remote Parquet files
mod config;
diff --git a/spatialbench-cli/src/zone/partition.rs
b/spatialbench-cli/src/zone/partition.rs
index b1f3a1d..dd3cfc4 100644
--- a/spatialbench-cli/src/zone/partition.rs
+++ b/spatialbench-cli/src/zone/partition.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::zone::stats::ZoneTableStats;
use arrow_array::RecordBatch;
use datafusion::prelude::*;
diff --git a/spatialbench-cli/src/zone/stats.rs
b/spatialbench-cli/src/zone/stats.rs
index 5ba8ba0..5062af5 100644
--- a/spatialbench-cli/src/zone/stats.rs
+++ b/spatialbench-cli/src/zone/stats.rs
@@ -1,3 +1,20 @@
+// 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.
+
use log::debug;
const SUBTYPE_ROWS: &[(&str, i64)] = &[
diff --git a/spatialbench-cli/src/zone/transform.rs
b/spatialbench-cli/src/zone/transform.rs
index 74d9365..f7815c6 100644
--- a/spatialbench-cli/src/zone/transform.rs
+++ b/spatialbench-cli/src/zone/transform.rs
@@ -1,3 +1,20 @@
+// 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.
+
use anyhow::Result;
use arrow_schema::Schema;
use datafusion::{prelude::*, sql::TableReference};
diff --git a/spatialbench-cli/src/zone/writer.rs
b/spatialbench-cli/src/zone/writer.rs
index d8dc824..b22671a 100644
--- a/spatialbench-cli/src/zone/writer.rs
+++ b/spatialbench-cli/src/zone/writer.rs
@@ -1,3 +1,20 @@
+// 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.
+
use anyhow::Result;
use arrow_array::RecordBatch;
use arrow_schema::SchemaRef;
diff --git a/spatialbench-cli/tests/cli_integration.rs
b/spatialbench-cli/tests/cli_integration.rs
index d1f325c..d840357 100644
--- a/spatialbench-cli/tests/cli_integration.rs
+++ b/spatialbench-cli/tests/cli_integration.rs
@@ -1,3 +1,20 @@
+// 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.
+
use arrow_array::RecordBatch;
use assert_cmd::Command;
use parquet::arrow::arrow_reader::{ArrowReaderOptions,
ParquetRecordBatchReaderBuilder};
diff --git a/spatialbench/Cargo.toml b/spatialbench/Cargo.toml
index 5242d35..304f7ea 100644
--- a/spatialbench/Cargo.toml
+++ b/spatialbench/Cargo.toml
@@ -1,3 +1,20 @@
+# 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.
+
[package]
name = "spatialbench"
authors = ["Apache Sedona <[email protected]>"]
@@ -8,6 +25,8 @@ version = { workspace = true }
edition = { workspace = true }
homepage = { workspace = true }
license = { workspace = true }
+keywords = ["spatial", "geospatial", "benchmark", "data-generation", "sql"]
+categories = ["science::geo", "database", "data-structures",
"development-tools"]
# Designed to have no depdencies to make it easy to embed in other projects
# See ../ARCHITECTURE.md for more details
diff --git a/spatialbench/data/README.md b/spatialbench/data/README.md
index fa19d21..10306f1 100644
--- a/spatialbench/data/README.md
+++ b/spatialbench/data/README.md
@@ -1,3 +1,22 @@
+<!---
+ 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.
+-->
+
# TPCH Prepared Test Files
This folder stores test files used to ensure consistency with Apache Trino's
and
diff --git a/spatialbench/src/csv.rs b/spatialbench/src/csv.rs
index 37eb9ab..8518a47 100644
--- a/spatialbench/src/csv.rs
+++ b/spatialbench/src/csv.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! CSV formatting support for the row struct objects generated by the library.
use crate::generators::{Building, Customer, Driver, Trip, Vehicle};
diff --git a/spatialbench/src/dates.rs b/spatialbench/src/dates.rs
index d8ccaeb..fae9e79 100644
--- a/spatialbench/src/dates.rs
+++ b/spatialbench/src/dates.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! [`TPCHDate`] and date handling
use rand::rngs::StdRng;
use rand::{Rng, SeedableRng};
diff --git a/spatialbench/src/decimal.rs b/spatialbench/src/decimal.rs
index bcf2a27..b3ca3c4 100644
--- a/spatialbench/src/decimal.rs
+++ b/spatialbench/src/decimal.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! [`TPCHDecimal`] and decimal handling
use std::fmt;
diff --git a/spatialbench/src/distribution.rs b/spatialbench/src/distribution.rs
index e6455d6..711075a 100644
--- a/spatialbench/src/distribution.rs
+++ b/spatialbench/src/distribution.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::random::RowRandomInt;
use std::{
io::{self},
diff --git a/spatialbench/src/dists.dss b/spatialbench/src/dists.dss
index badb3dd..1299c15 100644
--- a/spatialbench/src/dists.dss
+++ b/spatialbench/src/dists.dss
@@ -1,3 +1,19 @@
+# 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.
#
# $Id: dists.dss,v 1.2 2005/01/03 20:08:58 jms Exp $
#
diff --git a/spatialbench/src/generators.rs b/spatialbench/src/generators.rs
index 122718f..073e525 100644
--- a/spatialbench/src/generators.rs
+++ b/spatialbench/src/generators.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Generators for each Spatial Bench Tables
use crate::dates;
use crate::dates::{GenerateUtils, TPCHDate};
diff --git a/spatialbench/src/kde.rs b/spatialbench/src/kde.rs
index 07b7a0b..7d92e0a 100644
--- a/spatialbench/src/kde.rs
+++ b/spatialbench/src/kde.rs
@@ -1,3 +1,20 @@
+// 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.
+
use rand::rngs::StdRng;
use rand::{Rng, SeedableRng};
diff --git a/spatialbench/src/lib.rs b/spatialbench/src/lib.rs
index fc33931..97dcfdd 100644
--- a/spatialbench/src/lib.rs
+++ b/spatialbench/src/lib.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Rust Spatial Bench Data Generator
//!
//! This crate provides a native Rust implementation of functions and utilities
diff --git a/spatialbench/src/q_and_a/answers_sf1.rs
b/spatialbench/src/q_and_a/answers_sf1.rs
index 4844b44..dcc0285 100644
--- a/spatialbench/src/q_and_a/answers_sf1.rs
+++ b/spatialbench/src/q_and_a/answers_sf1.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! TPC-H benchmark answers for scale factor of 1.
//!
//! Module for exposing the TPC-H answers in TBL format for Scale Factor 1 (SF
1).
diff --git a/spatialbench/src/q_and_a/mod.rs b/spatialbench/src/q_and_a/mod.rs
index 763ba72..cae4ad7 100644
--- a/spatialbench/src/q_and_a/mod.rs
+++ b/spatialbench/src/q_and_a/mod.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! TPC-H Queries and Answers.
//!
//! This module exposes a bundled query and answer tuple that makes it
diff --git a/spatialbench/src/q_and_a/queries.rs
b/spatialbench/src/q_and_a/queries.rs
index 9f37c69..80d1421 100644
--- a/spatialbench/src/q_and_a/queries.rs
+++ b/spatialbench/src/q_and_a/queries.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! TPC-H benchmark queries.
/// TPC-H Pricing Summary Report Query (Q1).
diff --git a/spatialbench/src/random.rs b/spatialbench/src/random.rs
index 2123652..9932ddc 100644
--- a/spatialbench/src/random.rs
+++ b/spatialbench/src/random.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Implementation of the core random number generators.
use crate::{distribution::Distribution, text::TextPool};
diff --git a/spatialbench/src/spatial/cache.rs
b/spatialbench/src/spatial/cache.rs
index ee434c1..ca7d1b5 100644
--- a/spatialbench/src/spatial/cache.rs
+++ b/spatialbench/src/spatial/cache.rs
@@ -1,3 +1,20 @@
+// 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.
+
#[derive(Clone, Debug)]
pub struct ThomasCache {
pub cdf: Vec<f64>,
diff --git a/spatialbench/src/spatial/config.rs
b/spatialbench/src/spatial/config.rs
index b31fd1e..fdff2e7 100644
--- a/spatialbench/src/spatial/config.rs
+++ b/spatialbench/src/spatial/config.rs
@@ -1,3 +1,20 @@
+// 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.
+
#[derive(Debug, Clone, Copy)]
pub enum DistributionType {
Uniform,
diff --git a/spatialbench/src/spatial/defaults.rs
b/spatialbench/src/spatial/defaults.rs
index 4fadc96..91cb2d8 100644
--- a/spatialbench/src/spatial/defaults.rs
+++ b/spatialbench/src/spatial/defaults.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::spatial::{
ContinentAffines, DistributionParams, DistributionType, GeomType,
SpatialConfig,
SpatialGenerator,
diff --git a/spatialbench/src/spatial/distributions.rs
b/spatialbench/src/spatial/distributions.rs
index b80ba8a..40d5e7a 100644
--- a/spatialbench/src/spatial/distributions.rs
+++ b/spatialbench/src/spatial/distributions.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::spatial::cache::{HierThomasCache, ThomasCache};
use crate::spatial::geometry::emit_geom;
use crate::spatial::utils::{
diff --git a/spatialbench/src/spatial/generator.rs
b/spatialbench/src/spatial/generator.rs
index 5fcd176..e38b304 100644
--- a/spatialbench/src/spatial/generator.rs
+++ b/spatialbench/src/spatial/generator.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::spatial::cache::{HierThomasCache, ThomasCache};
use crate::spatial::distributions::*;
use crate::spatial::{DistributionType, SpatialConfig};
diff --git a/spatialbench/src/spatial/geometry.rs
b/spatialbench/src/spatial/geometry.rs
index b753d57..bbac543 100644
--- a/spatialbench/src/spatial/geometry.rs
+++ b/spatialbench/src/spatial/geometry.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::spatial::utils::{
apply_affine, clamp_polygon_to_dateline, crosses_dateline,
round_coordinates,
wrap_around_longitude,
diff --git a/spatialbench/src/spatial/mod.rs b/spatialbench/src/spatial/mod.rs
index 2990cbc..8a1cacc 100644
--- a/spatialbench/src/spatial/mod.rs
+++ b/spatialbench/src/spatial/mod.rs
@@ -1,3 +1,20 @@
+// 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.
+
pub mod cache;
pub mod config;
pub mod defaults;
diff --git a/spatialbench/src/spatial/overrides.rs
b/spatialbench/src/spatial/overrides.rs
index e087943..8e03bfc 100644
--- a/spatialbench/src/spatial/overrides.rs
+++ b/spatialbench/src/spatial/overrides.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::spatial::SpatialGenerator;
use once_cell::sync::OnceCell;
diff --git a/spatialbench/src/spatial/utils/affine.rs
b/spatialbench/src/spatial/utils/affine.rs
index 5100cad..4083533 100644
--- a/spatialbench/src/spatial/utils/affine.rs
+++ b/spatialbench/src/spatial/utils/affine.rs
@@ -1,3 +1,20 @@
+// 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.
+
#[inline]
pub fn apply_affine(x: f64, y: f64, m: &[f64; 6]) -> (f64, f64) {
(m[0] * x + m[1] * y + m[2], m[3] * x + m[4] * y + m[5])
diff --git a/spatialbench/src/spatial/utils/antimeridian.rs
b/spatialbench/src/spatial/utils/antimeridian.rs
index 22e9190..89b0a54 100644
--- a/spatialbench/src/spatial/utils/antimeridian.rs
+++ b/spatialbench/src/spatial/utils/antimeridian.rs
@@ -1,3 +1,20 @@
+// 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.
+
use geo::{Centroid, LineString, Polygon};
/// Normalizes longitude values to the valid range [-180, 180] by wrapping
around the antimeridian.
diff --git a/spatialbench/src/spatial/utils/continent.rs
b/spatialbench/src/spatial/utils/continent.rs
index 4abee17..ed7ff6d 100644
--- a/spatialbench/src/spatial/utils/continent.rs
+++ b/spatialbench/src/spatial/utils/continent.rs
@@ -1,3 +1,20 @@
+// 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.
+
use crate::spatial::ContinentAffines;
use std::f64::consts::PI;
diff --git a/spatialbench/src/spatial/utils/mod.rs
b/spatialbench/src/spatial/utils/mod.rs
index ab79032..2989ad0 100644
--- a/spatialbench/src/spatial/utils/mod.rs
+++ b/spatialbench/src/spatial/utils/mod.rs
@@ -1,3 +1,20 @@
+// 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.
+
pub mod affine;
mod antimeridian;
pub mod continent;
diff --git a/spatialbench/src/spatial/utils/random.rs
b/spatialbench/src/spatial/utils/random.rs
index 6eeb1d4..c59c572 100644
--- a/spatialbench/src/spatial/utils/random.rs
+++ b/spatialbench/src/spatial/utils/random.rs
@@ -1,3 +1,20 @@
+// 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.
+
use rand::rngs::StdRng;
use rand::{Rng, SeedableRng};
use std::f64::consts::PI;
diff --git a/spatialbench/src/text.rs b/spatialbench/src/text.rs
index af14539..e0f6d8e 100644
--- a/spatialbench/src/text.rs
+++ b/spatialbench/src/text.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Implementation of text pool and text generation.
//!
//! Most of this code has been ported from the Apache Trino SpatialBench
generator
diff --git a/spatialbench/tests/geometry_tests.rs
b/spatialbench/tests/geometry_tests.rs
index 3c484e4..8eec747 100644
--- a/spatialbench/tests/geometry_tests.rs
+++ b/spatialbench/tests/geometry_tests.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Geometry validation tests for generated spatial data.
//!
//! This test suite validates that all generated geometries meet quality and
correctness standards:
diff --git a/spatialbench/tests/integration_tests.rs
b/spatialbench/tests/integration_tests.rs
index 1880d79..528cbc0 100644
--- a/spatialbench/tests/integration_tests.rs
+++ b/spatialbench/tests/integration_tests.rs
@@ -1,3 +1,20 @@
+// 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.
+
//! Consistence test suite to test the `IntoIterator` trait implementation
//! for the generators in the `spatialbench` crate.