From 0c0af600f36076a8e25afac7d4a72452d604d6de Mon Sep 17 00:00:00 2001 From: Kyle Barron Date: Sat, 7 Sep 2024 19:14:04 -0400 Subject: [PATCH] Bump to 0.3 (#772) Closes https://github.com/geoarrow/geoarrow-rs/issues/628 --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ Cargo.lock | 2 +- Cargo.toml | 2 +- python/CHANGELOG.md | 23 +++++++++++++++++++---- python/Cargo.lock | 8 ++++---- python/Cargo.toml | 2 +- 6 files changed, 56 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b0f23588..320b203c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,36 @@ **This is the changelog for the core Rust library**. There's a [separate changelog](./python/CHANGELOG.md) for the Python bindings, and there will be another for the JS bindings. +## [0.3.0] - 2024-09-07 + +### New Features :magic_wand: + +- Preliminary support for 3D (XYZ) geometries +- Support for reading and writing GeoParquet 1.1 + - Support for reading and writing GeoArrow (native) geometry encoding + - Support for reading with spatial filtering +- Both synchronous and asynchronous readers for GeoParquet. Readers will stream a RecordBatch at a time by default. +- Accept `RecordBatchReader` as input to all +- New support for `geoarrow.box` array (equivalent to `Vec>`). `RectArray` is now laid out as a `StructArray` internally instead of a `FixedSizeListArray`. +- Improved documentation + +### Performance Improvements 🏎️ + +- Remove `Cow` around scalar buffers by @kylebarron in https://github.com/geoarrow/geoarrow-rs/pull/720 + +### Bug fixes :bug: + +- Don't serialize empty array metadata by @kylebarron in https://github.com/geoarrow/geoarrow-rs/pull/678 +- Fixed `MixedGeometryArray` handling. Exported Arrow `UnionArrays` always have same data layout. +- Support MapArrays when exporting to geozero by @kylebarron in https://github.com/geoarrow/geoarrow-rs/pull/721 + +## New Contributors + +- @H-Plus-Time made their first contribution in https://github.com/geoarrow/geoarrow-rs/pull/607 +- @gadomski made their first contribution in https://github.com/geoarrow/geoarrow-rs/pull/640 + +**Full Changelog**: https://github.com/geoarrow/geoarrow-rs/compare/rust-v0.2.0...rust-v0.3.0 + ## [0.3.0-beta.2] - 2024-08-23 ### Added diff --git a/Cargo.lock b/Cargo.lock index abe41a140..469689a36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1240,7 +1240,7 @@ dependencies = [ [[package]] name = "geoarrow" -version = "0.3.0-beta.3" +version = "0.3.0" dependencies = [ "approx", "arrow", diff --git a/Cargo.toml b/Cargo.toml index e5d1e3e02..da0df6aff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "geoarrow" -version = "0.3.0-beta.3" +version = "0.3.0" authors = ["Kyle Barron "] edition = "2021" license = "MIT OR Apache-2.0" diff --git a/python/CHANGELOG.md b/python/CHANGELOG.md index ff18657ff..6213cee5c 100644 --- a/python/CHANGELOG.md +++ b/python/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [0.3.0] - 2024-09-07 + +### New Features :magic_wand: + +- Remove geometry class specializations. Instead of `PointArray`, `LineStringArray`, etc, there's now just `GeometryArray`, `ChunkedGeometryArray`, and `Geometry` (a scalar). +- Remove GeoTable class, in favor of external, generic arrow Table implementations, such as `arro3.core.Table`. +- Move to slimmer, functional API. No more geometry methods on classes. +- Don't materialize input data when writing to a file. +- New `GeometryType` class for understanding the geometry type of an array or chunked array. +- Split Python code into three modules: `geoarrow-rust-core`, `geoarrow-rust-compute` and `geoarrow-rust-io`. +- Support for Pyodide Python environment +- Support Python file objects for reading and writing GeoParquet + +### Bug fixes :bug: + +- Fix array indexing with negative integers by @kylebarron in https://github.com/geoarrow/geoarrow-rs/pull/724 + ## [0.2.0] - 2024-03-22 ### New! :sparkles: @@ -46,15 +63,13 @@ - Index into arrays and chunked arrays with square brackets. E.g. `point_array[0]` will access the first point in the array. Negative indexing is also supported, so `point_array[-1]` will get the last item in the array. - New [top-level docs website](https://geoarrow.org/geoarrow-rs/). - ## New Contributors -* @Robinlovelace made their first contribution in https://github.com/geoarrow/geoarrow-rs/pull/484 -* @weiji14 made their first contribution in https://github.com/geoarrow/geoarrow-rs/pull/493 +- @Robinlovelace made their first contribution in https://github.com/geoarrow/geoarrow-rs/pull/484 +- @weiji14 made their first contribution in https://github.com/geoarrow/geoarrow-rs/pull/493 **Full Changelog**: https://github.com/geoarrow/geoarrow-rs/compare/py-v0.1.0...py-v0.2.0 - ## [0.1.0] - 2024-01-08 - Initial public release. diff --git a/python/Cargo.lock b/python/Cargo.lock index b32a93fdf..13d875020 100644 --- a/python/Cargo.lock +++ b/python/Cargo.lock @@ -1019,7 +1019,7 @@ dependencies = [ [[package]] name = "geoarrow" -version = "0.3.0-beta.3" +version = "0.3.0" dependencies = [ "arrow", "arrow-array", @@ -1058,7 +1058,7 @@ dependencies = [ [[package]] name = "geoarrow-rust-compute" -version = "0.3.0-beta.2" +version = "0.3.0" dependencies = [ "arrow", "arrow-array", @@ -1077,7 +1077,7 @@ dependencies = [ [[package]] name = "geoarrow-rust-core" -version = "0.3.0-beta.2" +version = "0.3.0" dependencies = [ "arrow", "arrow-array", @@ -1096,7 +1096,7 @@ dependencies = [ [[package]] name = "geoarrow-rust-io" -version = "0.3.0-beta.2" +version = "0.3.0" dependencies = [ "arrow", "bytes", diff --git a/python/Cargo.toml b/python/Cargo.toml index 8f0b28d51..97bbe0e8f 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -4,7 +4,7 @@ resolver = "2" [workspace.package] authors = ["Kyle Barron "] -version = "0.3.0-beta.2" +version = "0.3.0" edition = "2021" homepage = "https://geoarrow.org/geoarrow-rs/" repository = "https://github.com/geoarrow/geoarrow-rs"