Skip to content

Commit a70f3b6

Browse files
authored
chore: prepare for version 0.4 (#1168)
### Change list - Update changelog - Set version number to 0.4
1 parent f6b0453 commit a70f3b6

File tree

3 files changed

+33
-23
lines changed

3 files changed

+33
-23
lines changed

CHANGELOG.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,30 @@
22

33
**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.
44

5-
## Unreleased
6-
7-
### Breaking changes
8-
9-
- Renames:
10-
- `GeometryArrayTrait` renamed to `NativeArray`.
11-
- `GeometryArrayRef` renamed to `NativeArrayRef`.
12-
- `GeometryArrayTrait` renamed to `NativeScalar`.
13-
- `GeometryArrayDyn` renamed to `NativeArrayDyn`.
14-
- `GeometryArrayAccessor` renamed to `ArrayAccessor`.
15-
- `AsGeometryArray` renamed to `AsNativeArray`.
16-
- `AsChunkedGeometryArray` renamed to `AsChunkedNativeArray`.
17-
- `ChunkedGeometryArrayTrait` renamed to `ChunkedNativeArray`.
18-
- `GeometryArrayTrait`/`NativeArray` no longer implemented on coordinate buffers
5+
## [0.4.0] - 2025-05-28
6+
7+
This release contains more or less a **full rewrite** of the GeoArrow Rust library.
8+
9+
> The `geoarrow-rs` project is about 3 years old. Early prototyping started inside the [`geopolars`](https://github.com/geopolars/geopolars) repo before deciding I needed something more general (not tied to Polars) and creating first [`geopolars/geoarrow`](https://github.com/geopolars/geoarrow) and then lastly [`geoarrow/geoarrow-rs`](https://github.com/geoarrow/geoarrow-rs).
10+
>
11+
> However despite its age, the `geoarrow` crate suffers from a couple issues. For one, it took a while to figure out the right abstractions. And learning Rust at the same time didn't help. The `geoarrow` crate is also too monolithic. Some parts of `geoarrow` are production ready, but there's decidedly a _lot_ of code in `geoarrow` that is _not_ production ready. And it's very much not clear which parts of `geoarrow` are production ready or not.
12+
>
13+
> But I think `geoarrow-rs` has potential to form part of the core geospatial data engineering stack in Rust. And as part of that, we need a better delineation of which parts of the code are stable or not. As such, the `geoarrow-rs` repo is **currently ongoing a large refactor from a single crate to a monorepo of smaller crates, each with a more well-defined scope**.
14+
>
15+
> As of May 2025, avoid using the `geoarrow` crate and instead use the newer crates with a smaller scope, like `geoarrow-array`.
16+
17+
### New Features :magic_wand:
18+
19+
- Full support for the GeoArrow 0.2 specification, including all geometry array types and dimensions. See documentation in `geoarrow-array`.
20+
- Native support for the upstream [Arrow `ExtensionType`](https://github.com/apache/arrow-rs/pull/5822/) concept introduced in arrow `54.2`. See documentation in `geoarrow-schema`.
21+
22+
### Removed functionality :wrench:
23+
24+
A significant amount of code from the previous `geoarrow` crate is not currently available in the refactored `geoarrow-*` crates.
25+
26+
Some of this is intentional. Similar to the upstream `arrow` crate, we no longer export a `ChunkedArray` concept, suggesting the user to use streaming concepts like iterators where possible.
27+
28+
Other functionality like format readers and writers is intended to be restored once stable, but additional work needs to take place before there's enough confidence in that code.
1929

2030
## [0.3.0] - 2024-09-07
2131

Cargo.lock

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ exclude = ["js"]
1414
resolver = "2"
1515

1616
[workspace.package]
17-
version = "0.4.0-beta.4"
17+
version = "0.4.0"
1818
authors = ["Kyle Barron <kylebarron2@gmail.com>"]
1919
edition = "2024"
2020
license = "MIT OR Apache-2.0"

0 commit comments

Comments
 (0)