From e15af8e9ef8a7b70b5e736e1f9e5e2d9753861c2 Mon Sep 17 00:00:00 2001 From: Julian Popescu Date: Sat, 2 Aug 2025 10:58:47 +0200 Subject: [PATCH] chore: add arrow 56 and bump version --- .github/workflows/release.yml | 4 +++ .github/workflows/test.yml | 4 +++ Cargo.lock | 56 ++++++++++++++++++++++++++++++++++- Changes.md | 10 +++++-- marrow/Cargo.toml | 11 +++++-- marrow/src/impl_arrow/mod.rs | 5 ++++ marrow/src/lib.rs | 1 + test_with_arrow/Cargo.toml | 3 ++ test_with_arrow/src/lib.rs | 1 + x.py | 1 + 10 files changed, 90 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d3aa027..3d89e48 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,6 +52,10 @@ "name": "Check arrow2-0-16", "run": "cargo check -p marrow --features arrow2-0-16" }, + { + "name": "Check arrow-56", + "run": "cargo check -p marrow --features arrow-56" + }, { "name": "Check arrow-55", "run": "cargo check -p marrow --features arrow-55" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f6eec3b..18187b5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -58,6 +58,10 @@ "name": "Check arrow2-0-16", "run": "cargo check -p marrow --features arrow2-0-16" }, + { + "name": "Check arrow-56", + "run": "cargo check -p marrow --features arrow-56" + }, { "name": "Check arrow-55", "run": "cargo check -p marrow --features arrow-55" diff --git a/Cargo.lock b/Cargo.lock index 9101ba3..7b06aa1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -336,6 +336,22 @@ dependencies = [ "num", ] +[[package]] +name = "arrow-array" +version = "56.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2730bc045d62bb2e53ef8395b7d4242f5c8102f41ceac15e8395b9ac3d08461" +dependencies = [ + "ahash", + "arrow-buffer 56.0.0", + "arrow-data 56.0.0", + "arrow-schema 56.0.0", + "chrono", + "half", + "hashbrown 0.15.2", + "num", +] + [[package]] name = "arrow-buffer" version = "37.0.0" @@ -536,6 +552,17 @@ dependencies = [ "num", ] +[[package]] +name = "arrow-buffer" +version = "56.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54295b93beb702ee9a6f6fbced08ad7f4d76ec1c297952d4b83cf68755421d1d" +dependencies = [ + "bytes", + "half", + "num", +] + [[package]] name = "arrow-data" version = "37.0.0" @@ -764,6 +791,18 @@ dependencies = [ "num", ] +[[package]] +name = "arrow-data" +version = "56.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c22fe3da840039c69e9f61f81e78092ea36d57037b4900151f063615a2f6b4" +dependencies = [ + "arrow-buffer 56.0.0", + "arrow-schema 56.0.0", + "half", + "num", +] + [[package]] name = "arrow-schema" version = "37.0.0" @@ -935,6 +974,15 @@ dependencies = [ "serde", ] +[[package]] +name = "arrow-schema" +version = "56.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fa1babc4a45fdc64a92175ef51ff00eba5ebbc0007962fecf8022ac1c6ce28" +dependencies = [ + "serde", +] + [[package]] name = "arrow2" version = "0.16.0" @@ -1203,7 +1251,7 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "marrow" -version = "0.2.3" +version = "0.2.4" dependencies = [ "arrow-array 37.0.0", "arrow-array 38.0.0", @@ -1224,6 +1272,7 @@ dependencies = [ "arrow-array 53.3.0", "arrow-array 54.0.0", "arrow-array 55.0.0", + "arrow-array 56.0.0", "arrow-buffer 37.0.0", "arrow-buffer 38.0.0", "arrow-buffer 39.0.0", @@ -1243,6 +1292,7 @@ dependencies = [ "arrow-buffer 53.3.0", "arrow-buffer 54.0.0", "arrow-buffer 55.0.0", + "arrow-buffer 56.0.0", "arrow-data 37.0.0", "arrow-data 38.0.0", "arrow-data 39.0.0", @@ -1262,6 +1312,7 @@ dependencies = [ "arrow-data 53.3.0", "arrow-data 54.0.0", "arrow-data 55.0.0", + "arrow-data 56.0.0", "arrow-schema 37.0.0", "arrow-schema 38.0.0", "arrow-schema 39.0.0", @@ -1281,6 +1332,7 @@ dependencies = [ "arrow-schema 53.3.0", "arrow-schema 54.0.0", "arrow-schema 55.0.0", + "arrow-schema 56.0.0", "arrow2 0.16.0", "arrow2 0.17.4", "bytemuck", @@ -1500,6 +1552,7 @@ dependencies = [ "arrow-array 53.3.0", "arrow-array 54.0.0", "arrow-array 55.0.0", + "arrow-array 56.0.0", "arrow-schema 37.0.0", "arrow-schema 38.0.0", "arrow-schema 39.0.0", @@ -1519,6 +1572,7 @@ dependencies = [ "arrow-schema 53.3.0", "arrow-schema 54.0.0", "arrow-schema 55.0.0", + "arrow-schema 56.0.0", "chrono", "half", "marrow", diff --git a/Changes.md b/Changes.md index 33bb5e7..7b9bc4e 100644 --- a/Changes.md +++ b/Changes.md @@ -1,5 +1,12 @@ # Change log +## 0.2.4 + +- Add `arrow=56` support. + +Thanks [@jpopesculian](https://github.com/jpopesculian) for the +[contribution](https://github.com/chmp/marrow/pull/30). + ## 0.2.3 - Add `arrow=55` support @@ -30,7 +37,7 @@ New features - Add `Interval` arrays and the `Interval` data type - Add `RunEndEncoded` arrays -- Add `Array::data_type()` and `View::data_type()` +- Add `Array::data_type()` and `View::data_type()` - Add `MarrowError::new` and `MarrowError::with_cause` - Add `as_view` for `Array` and the array structs - Implement `PartialEq` for `Array` and `View`, and `FieldMeta` @@ -40,4 +47,3 @@ New features Initial release to publish the arrow interop functionality of [`serde_arrow`](https://github.com/chmp/serde_arrow) as a separate crate. - diff --git a/marrow/Cargo.toml b/marrow/Cargo.toml index 10d139e..f274859 100644 --- a/marrow/Cargo.toml +++ b/marrow/Cargo.toml @@ -2,7 +2,7 @@ edition = "2021" name = "marrow" -version = "0.2.3" +version = "0.2.4" authors = ["Christopher Prohm "] description = "Minimalist Arrow interop" readme = "../Readme.md" @@ -13,7 +13,7 @@ rust-version = "1.70.0" [package.metadata.docs.rs] # arrow-version:replace: features = ["arrow2-0-17", "arrow-{version}", "serde"] -features = ["arrow2-0-17", "arrow-55", "serde"] +features = ["arrow2-0-17", "arrow-56", "serde"] [features] default = [] @@ -23,6 +23,7 @@ serde = ["dep:serde"] # support for different arrow versions # arrow-version:insert: arrow-{version} = ["dep:arrow-array-{version}", "dep:arrow-schema-{version}", "dep:arrow-data-{version}", "dep:arrow-buffer-{version}"] +arrow-56 = ["dep:arrow-array-56", "dep:arrow-schema-56", "dep:arrow-data-56", "dep:arrow-buffer-56"] arrow-55 = ["dep:arrow-array-55", "dep:arrow-schema-55", "dep:arrow-data-55", "dep:arrow-buffer-55"] arrow-54 = ["dep:arrow-array-54", "dep:arrow-schema-54", "dep:arrow-data-54", "dep:arrow-buffer-54"] arrow-53 = ["dep:arrow-array-53", "dep:arrow-schema-53", "dep:arrow-data-53", "dep:arrow-buffer-53"] @@ -54,6 +55,7 @@ half = { version = "2", default-features = false } serde = { version = "1.0", default-features = false, features = ["std", "derive"], optional = true } # arrow-version:insert: arrow-array-{version} = {{ package = "arrow-array", version = "{version}", optional = true, default-features = false }} +arrow-array-56 = { package = "arrow-array", version = "56", optional = true, default-features = false } arrow-array-55 = { package = "arrow-array", version = "55", optional = true, default-features = false } arrow-array-54 = { package = "arrow-array", version = "54", optional = true, default-features = false } arrow-array-53 = { package = "arrow-array", version = "53", optional = true, default-features = false } @@ -75,6 +77,7 @@ arrow-array-38 = { package = "arrow-array", version = "38", optional = true, def arrow-array-37 = { package = "arrow-array", version = "37", optional = true, default-features = false } # arrow-version:insert: arrow-buffer-{version} = {{ package = "arrow-buffer", version = "{version}", optional = true, default-features = false }} +arrow-buffer-56 = { package = "arrow-buffer", version = "56", optional = true, default-features = false } arrow-buffer-55 = { package = "arrow-buffer", version = "55", optional = true, default-features = false } arrow-buffer-54 = { package = "arrow-buffer", version = "54", optional = true, default-features = false } arrow-buffer-53 = { package = "arrow-buffer", version = "53", optional = true, default-features = false } @@ -96,6 +99,7 @@ arrow-buffer-38 = { package = "arrow-buffer", version = "38", optional = true, d arrow-buffer-37 = { package = "arrow-buffer", version = "37", optional = true, default-features = false } # arrow-version:insert: arrow-data-{version} = {{ package = "arrow-data", version="{version}", optional = true, default-features = false }} +arrow-data-56 = { package = "arrow-data", version="56", optional = true, default-features = false } arrow-data-55 = { package = "arrow-data", version="55", optional = true, default-features = false } arrow-data-54 = { package = "arrow-data", version="54", optional = true, default-features = false } arrow-data-53 = { package = "arrow-data", version="53", optional = true, default-features = false } @@ -117,6 +121,7 @@ arrow-data-38 = { package = "arrow-data", version="38", optional = true, default arrow-data-37 = { package = "arrow-data", version="37", optional = true, default-features = false } # arrow-version:insert: arrow-schema-{version} = {{ package = "arrow-schema", version = "{version}", optional = true, default-features = false }} +arrow-schema-56 = { package = "arrow-schema", version = "56", optional = true, default-features = false } arrow-schema-55 = { package = "arrow-schema", version = "55", optional = true, default-features = false } arrow-schema-54 = { package = "arrow-schema", version = "54", optional = true, default-features = false } arrow-schema-53 = { package = "arrow-schema", version = "53", optional = true, default-features = false } @@ -138,4 +143,4 @@ arrow-schema-38 = { package = "arrow-schema", version = "38", optional = true, d arrow-schema-37 = { package = "arrow-schema", version = "37", optional = true, default-features = false } arrow2-0-17 = { package = "arrow2", version = "0.17", optional = true, default-features = false } -arrow2-0-16 = { package = "arrow2", version = "0.16", optional = true, default-features = false } \ No newline at end of file +arrow2-0-16 = { package = "arrow2", version = "0.16", optional = true, default-features = false } diff --git a/marrow/src/impl_arrow/mod.rs b/marrow/src/impl_arrow/mod.rs index 036cecb..b1ed3ca 100644 --- a/marrow/src/impl_arrow/mod.rs +++ b/marrow/src/impl_arrow/mod.rs @@ -2,6 +2,11 @@ #![cfg_attr(any(), rustfmt::skip)] // arrow-version:insert: #[cfg(feature = "arrow-{version}")]{\n}mod arrow_{version} {{{\n} use {{arrow_array_{version} as arrow_array, arrow_buffer_{version} as arrow_buffer, arrow_data_{version} as arrow_data, arrow_schema_{version} as arrow_schema}};{\n} include!("impl_api_53.rs");{\n}}} +#[cfg(feature = "arrow-56")] +mod arrow_56 { + use {arrow_array_56 as arrow_array, arrow_buffer_56 as arrow_buffer, arrow_data_56 as arrow_data, arrow_schema_56 as arrow_schema}; + include!("impl_api_53.rs"); +} #[cfg(feature = "arrow-55")] mod arrow_55 { use {arrow_array_55 as arrow_array, arrow_buffer_55 as arrow_buffer, arrow_data_55 as arrow_data, arrow_schema_55 as arrow_schema}; diff --git a/marrow/src/lib.rs b/marrow/src/lib.rs index 35c4f6b..7b6cbf5 100644 --- a/marrow/src/lib.rs +++ b/marrow/src/lib.rs @@ -99,6 +99,7 @@ //! | Feature | Arrow Version | //! |---------------|---------------| // arrow-version:insert: //! | `arrow-{version}` | `arrow={version}` | +//! | `arrow-56` | `arrow=56` | //! | `arrow-55` | `arrow=55` | //! | `arrow-54` | `arrow=54` | //! | `arrow-53` | `arrow=53` | diff --git a/test_with_arrow/Cargo.toml b/test_with_arrow/Cargo.toml index fa25af6..a754a04 100644 --- a/test_with_arrow/Cargo.toml +++ b/test_with_arrow/Cargo.toml @@ -9,6 +9,7 @@ edition = "2021" [features] # arrow-version:insert: arrow-{version} = ["marrow/arrow-{version}", "dep:arrow-array-{version}", "dep:arrow-schema-{version}"] +arrow-56 = ["marrow/arrow-56", "dep:arrow-array-56", "dep:arrow-schema-56"] arrow-55 = ["marrow/arrow-55", "dep:arrow-array-55", "dep:arrow-schema-55"] arrow-54 = ["marrow/arrow-54", "dep:arrow-array-54", "dep:arrow-schema-54"] arrow-53 = ["marrow/arrow-53", "dep:arrow-array-53", "dep:arrow-schema-53"] @@ -37,6 +38,7 @@ serde_json = "1" chrono = { version = "0.4", default-features = false } # arrow-version:insert: arrow-array-{version} = {{ package = "arrow-array", version="{version}", optional = true, default-features = false }} +arrow-array-56 = { package = "arrow-array", version="56", optional = true, default-features = false } arrow-array-55 = { package = "arrow-array", version="55", optional = true, default-features = false } arrow-array-54 = { package = "arrow-array", version="54", optional = true, default-features = false } arrow-array-53 = { package = "arrow-array", version = "53.3.0", optional = true, default-features = false } @@ -58,6 +60,7 @@ arrow-array-38 = { package = "arrow-array", version="38", optional = true, defau arrow-array-37 = { package = "arrow-array", version="37", optional = true, default-features = false } # arrow-version:insert: arrow-schema-{version} = {{ package = "arrow-schema", version = "{version}", optional = true, default-features = false, features = ["serde"] }} +arrow-schema-56 = { package = "arrow-schema", version = "56", optional = true, default-features = false, features = ["serde"] } arrow-schema-55 = { package = "arrow-schema", version = "55", optional = true, default-features = false, features = ["serde"] } arrow-schema-54 = { package = "arrow-schema", version = "54", optional = true, default-features = false, features = ["serde"] } arrow-schema-53 = { package = "arrow-schema", version = "53.3.0", optional = true, default-features = false, features = ["serde"] } diff --git a/test_with_arrow/src/lib.rs b/test_with_arrow/src/lib.rs index c395bfd..38b4900 100644 --- a/test_with_arrow/src/lib.rs +++ b/test_with_arrow/src/lib.rs @@ -17,6 +17,7 @@ macro_rules! define_test_module { } // arrow-version:insert: define_test_module!("arrow-{version}", arrow_{version}, arrow_array_{version}, arrow_schema_{version}, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views); +define_test_module!("arrow-56", arrow_56, arrow_array_56, arrow_schema_56, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views); define_test_module!("arrow-55", arrow_55, arrow_array_55, arrow_schema_55, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views); define_test_module!("arrow-54", arrow_54, arrow_array_54, arrow_schema_54, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views); define_test_module!("arrow-53", arrow_53, arrow_array_53, arrow_schema_53, utils, arrays, data_types,struct_arrays, fixed_size_binary_arrays, intervals, union_arrays, views); diff --git a/x.py b/x.py index cd1af8e..192b884 100644 --- a/x.py +++ b/x.py @@ -7,6 +7,7 @@ all_arrow_features = [ # arrow-version:insert: "arrow-{version}", + "arrow-56", "arrow-55", "arrow-54", "arrow-53",