This is an automated email from the ASF dual-hosted git repository.

Jefffrey pushed a commit to branch 58_maintenance
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git


The following commit(s) were added to refs/heads/58_maintenance by this push:
     new eaa9ada50b [58_maintenance] Update version to `58.4.1` and add 
CHANGELOG (#11822)
eaa9ada50b is described below

commit eaa9ada50be0ef55065394ba506bdd0dae4ef1fd
Author: Andrew Lamb <[email protected]>
AuthorDate: Thu Oct 22 20:31:08 2026 -0400

    [58_maintenance] Update version to `58.4.1` and add CHANGELOG (#11822)
    
    # Which issue does this PR close?
    
    - Part of https://github.com/apache/arrow-rs/issues/11665
    
    # Rationale for this change
    
    Prepare for the `58.4.1` patch release from the `58_maintenance` branch
    
    # What changes are included in this PR?
    1. Update version to `58.4.1`
    2. Move the `58.4.0` changelog entry into `CHANGELOG-old.md`
    3. Add `58.4.1` CHANGELOG (see rendered version
    https://github.com/alamb/arrow-rs/blob/alamb/prepare_58.4.1/CHANGELOG.md)
    
    Note: the changelog was generated with `git-cliff` using the
    `cliff.toml` from `main` (the `58_maintenance` branch predates it), with
    the "Full Changelog" compare link corrected to `58.4.0...58.4.1`. The
    cargo-audit dependency bumps #11821 and #11794 appear under
    "Miscellaneous" because they are not labeled `development-process`.
    
    # Are these changes tested?
    By CI
    
    # Are there any user-facing changes?
    
    New version and changelog
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    ---------
    
    Co-authored-by: Claude Fable 5.1 <[email protected]>
    Co-authored-by: Jefffrey <[email protected]>
---
 CHANGELOG-old.md | 14 ++++++++++
 CHANGELOG.md     | 38 +++++++++++++++++--------
 Cargo.lock       | 52 +++++++++++++++++------------------
 Cargo.toml       | 42 ++++++++++++++--------------
 cliff.toml       | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 172 insertions(+), 58 deletions(-)

diff --git a/CHANGELOG-old.md b/CHANGELOG-old.md
index b35e601c4c..a66c4fea35 100644
--- a/CHANGELOG-old.md
+++ b/CHANGELOG-old.md
@@ -21,6 +21,20 @@
 
 # Changelog
 
+## [58.4.0](https://github.com/apache/arrow-rs/tree/58.4.0) (2026-07-17)
+
+[Full Changelog](https://github.com/apache/arrow-rs/compare/58.3.0...58.4.0)
+
+**Merged pull requests:**
+
+- \[58\_maintenance\] \[parquet\] Allow more encryption algorithms (\#9203) 
[\#10351](https://github.com/apache/arrow-rs/pull/10351) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([mbutrovich](https://github.com/mbutrovich))
+- \[58\_maintenance\] Backport cargo audit fixes 
[\#10369](https://github.com/apache/arrow-rs/pull/10369) 
([alamb](https://github.com/alamb))
+- \[58\_maintenance\] chore: Ignore py03 vulnerabilities until upgrade 
[\#10370](https://github.com/apache/arrow-rs/pull/10370) 
([alamb](https://github.com/alamb))
+- \[58\_maintenance\] Add test for 
\`parquet-testing/bad_data/ARROW-GH-47662.parquet\` (\#10077) 
[\#10371](https://github.com/apache/arrow-rs/pull/10371) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([alamb](https://github.com/alamb))
+
+
+\* *This Changelog was automatically generated by 
[github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
+
 ## [58.3.0](https://github.com/apache/arrow-rs/tree/58.3.0) (2026-05-07)
 
 [Full Changelog](https://github.com/apache/arrow-rs/compare/58.2.0...58.3.0)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a5b2490eca..8c4d2389e5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,16 +19,32 @@
 
 # Changelog
 
-## [58.4.0](https://github.com/apache/arrow-rs/tree/58.4.0) (2026-07-17)
 
-[Full Changelog](https://github.com/apache/arrow-rs/compare/58.3.0...58.4.0)
+## [58.4.1](https://github.com/apache/arrow-rs/tree/58.4.1) - (2026-10-22)
+
+[Full Changelog](https://github.com/apache/arrow-rs/compare/58.4.0...58.4.1)
+
+### Bug fixes
+- [58_maintenance] Write empty validity buffers for arrays without nulls in 
IPC writer by @mailmindlin in 
[#11817](https://github.com/apache/arrow-rs/pull/11817)
+- [58_maintenance] fix: account for offsets in runarrays when using extend for 
MutableArrayData by @Jefffrey in 
[#11761](https://github.com/apache/arrow-rs/pull/11761)
+- [58_maintenance] fix(arrow-schema): validate `UnionFields` when 
deserializing by @Jefffrey in 
[#11760](https://github.com/apache/arrow-rs/pull/11760)
+- [58_maintenance] fix: implement `ArrayData::validate_values` for union types 
by @Jefffrey in [#11762](https://github.com/apache/arrow-rs/pull/11762)
+- [58_maintenance] fix(arrow-data): check view nulls at the right index in 
`ArrayData` equality by @Jefffrey in 
[#11758](https://github.com/apache/arrow-rs/pull/11758)
+- [58_maintenance] fix(arrow-array): avoid returning corrupt array in 
`GenericByteArray::into_builder` by @Jefffrey in 
[#11707](https://github.com/apache/arrow-rs/pull/11707)
+- [58_maintenance] fix(arrow-buffer): prevent use-after-free in 
Buffer::shrink_to_fit when MemoryReservation::resize panics by @alamb in 
[#11785](https://github.com/apache/arrow-rs/pull/11785)
+- [58_maintenance] fix: account for arraydata offset when comparing runarrays 
by @Jefffrey in [#11755](https://github.com/apache/arrow-rs/pull/11755)
+- [58_maintenance] fix(arrow-data): account for FixedSizeList parent offset in 
MutableArrayData by @Jefffrey in 
[#11756](https://github.com/apache/arrow-rs/pull/11756)
+- [58_maintenance] fix: use correct length in runarray validation by @Jefffrey 
in [#11767](https://github.com/apache/arrow-rs/pull/11767)
+- [58_maintenance] fix: account for offset when building RunArray from 
ArrayData by @Jefffrey in 
[#11766](https://github.com/apache/arrow-rs/pull/11766)
+- [58_maintenance] fix: `UnionFields::from_iter` should validate input by 
@Jefffrey in [#11763](https://github.com/apache/arrow-rs/pull/11763)
+- [58_maintenance] Fix sliced sparse union ArrayData conversion by @Jefffrey 
in [#11759](https://github.com/apache/arrow-rs/pull/11759)
+- [58_maintenance] fix(arrow-array): use the field's type id in dense union 
logical_nulls by @Jefffrey in 
[#11757](https://github.com/apache/arrow-rs/pull/11757)
+- [58_maintenance] fix(arrow-array): `PrimitiveRunBuilder` was buggy after 
`finish` by @Jefffrey in [#11704](https://github.com/apache/arrow-rs/pull/11704)
+- [58_maintenance] fix(arrow-data): fix gaps in ListView equality by @Jefffrey 
in [#11703](https://github.com/apache/arrow-rs/pull/11703)
+- [58_maintenance] fix(arrow-array): preserve type params in 
`PrimitiveArray::into_builder` by @Jefffrey in 
[#11765](https://github.com/apache/arrow-rs/pull/11765)
+- [58_maintenance] fix: `Buffer::into_mutable` return error instead of panic 
for converting owned sliced when not start at 0 and fix returned Mutable length 
by @Jefffrey in [#11706](https://github.com/apache/arrow-rs/pull/11706)
+- [58_maintenance] fix: finish methods in `PrimitiveDictionaryBuilder` discard 
type params by @Jefffrey in 
[#11705](https://github.com/apache/arrow-rs/pull/11705)
+
+### Miscellaneous
+- [58_maintenance] Upgrade legacy Thrift dependency to 0.23 by @beinan in 
[#11365](https://github.com/apache/arrow-rs/pull/11365)
 
-**Merged pull requests:**
-
-- \[58\_maintenance\] \[parquet\] Allow more encryption algorithms (\#9203) 
[\#10351](https://github.com/apache/arrow-rs/pull/10351) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([mbutrovich](https://github.com/mbutrovich))
-- \[58\_maintenance\] Backport cargo audit fixes 
[\#10369](https://github.com/apache/arrow-rs/pull/10369) 
([alamb](https://github.com/alamb))
-- \[58\_maintenance\] chore: Ignore py03 vulnerabilities until upgrade 
[\#10370](https://github.com/apache/arrow-rs/pull/10370) 
([alamb](https://github.com/alamb))
-- \[58\_maintenance\] Add test for 
\`parquet-testing/bad_data/ARROW-GH-47662.parquet\` (\#10077) 
[\#10371](https://github.com/apache/arrow-rs/pull/10371) 
[[parquet](https://github.com/apache/arrow-rs/labels/parquet)] 
([alamb](https://github.com/alamb))
-
-
-\* *This Changelog was automatically generated by 
[github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/Cargo.lock b/Cargo.lock
index 038688848d..856512ef5b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -170,7 +170,7 @@ dependencies = [
 
 [[package]]
 name = "arrow"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-arith",
  "arrow-array",
@@ -197,7 +197,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-arith"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -209,7 +209,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-array"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "ahash",
  "arrow-buffer",
@@ -229,7 +229,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-avro"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "apache-avro",
  "arrow",
@@ -266,7 +266,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-buffer"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "bytes",
  "criterion",
@@ -278,7 +278,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-cast"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -301,7 +301,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-csv"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -319,7 +319,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-data"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-buffer",
  "arrow-schema",
@@ -330,7 +330,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-flight"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "anyhow",
  "arrow-arith",
@@ -370,7 +370,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-integration-test"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow",
  "arrow-buffer",
@@ -383,7 +383,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-integration-testing"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow",
  "arrow-buffer",
@@ -402,7 +402,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-ipc"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -421,7 +421,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-json"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arbitrary",
  "arrow-array",
@@ -452,7 +452,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-ord"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -465,7 +465,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-pyarrow"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-data",
@@ -475,7 +475,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-row"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -490,7 +490,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-schema"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "bitflags",
  "criterion",
@@ -503,7 +503,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-select"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "ahash",
  "arrow-array",
@@ -516,7 +516,7 @@ dependencies = [
 
 [[package]]
 name = "arrow-string"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-array",
  "arrow-buffer",
@@ -2328,7 +2328,7 @@ dependencies = [
 
 [[package]]
 name = "parquet"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "ahash",
  "arrow",
@@ -2379,7 +2379,7 @@ dependencies = [
 
 [[package]]
 name = "parquet-geospatial"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-schema",
  "geo-traits",
@@ -2391,7 +2391,7 @@ dependencies = [
 
 [[package]]
 name = "parquet-variant"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow",
  "arrow-schema",
@@ -2408,7 +2408,7 @@ dependencies = [
 
 [[package]]
 name = "parquet-variant-compute"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow",
  "arrow-schema",
@@ -2425,7 +2425,7 @@ dependencies = [
 
 [[package]]
 name = "parquet-variant-json"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "arrow-schema",
  "base64 0.22.1",
@@ -2437,7 +2437,7 @@ dependencies = [
 
 [[package]]
 name = "parquet_derive"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "parquet",
  "proc-macro2",
@@ -2447,7 +2447,7 @@ dependencies = [
 
 [[package]]
 name = "parquet_derive_test"
-version = "58.4.0"
+version = "58.4.1"
 dependencies = [
  "chrono",
  "parquet",
diff --git a/Cargo.toml b/Cargo.toml
index 8bdbc1f408..2ffbec95e6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -68,7 +68,7 @@ exclude = [
 ]
 
 [workspace.package]
-version = "58.4.0"
+version = "58.4.1"
 repository = "https://github.com/apache/arrow-rs";
 authors = ["Apache Arrow <[email protected]>"]
 license = "Apache-2.0"
@@ -84,26 +84,26 @@ edition = "2024"
 rust-version = "1.85"
 
 [workspace.dependencies]
-arrow = { version = "58.4.0", path = "./arrow", default-features = false }
-arrow-arith = { version = "58.4.0", path = "./arrow-arith" }
-arrow-array = { version = "58.4.0", path = "./arrow-array" }
-arrow-buffer = { version = "58.4.0", path = "./arrow-buffer" }
-arrow-cast = { version = "58.4.0", path = "./arrow-cast" }
-arrow-csv = { version = "58.4.0", path = "./arrow-csv" }
-arrow-data = { version = "58.4.0", path = "./arrow-data" }
-arrow-ipc = { version = "58.4.0", path = "./arrow-ipc" }
-arrow-json = { version = "58.4.0", path = "./arrow-json" }
-arrow-ord = { version = "58.4.0", path = "./arrow-ord" }
-arrow-pyarrow = { version = "58.4.0", path = "./arrow-pyarrow" }
-arrow-row = { version = "58.4.0", path = "./arrow-row" }
-arrow-schema = { version = "58.4.0", path = "./arrow-schema" }
-arrow-select = { version = "58.4.0", path = "./arrow-select" }
-arrow-string = { version = "58.4.0", path = "./arrow-string" }
-parquet = { version = "58.4.0", path = "./parquet", default-features = false }
-parquet-geospatial = { version = "58.4.0", path = "./parquet-geospatial" }
-parquet-variant = { version = "58.4.0", path = "./parquet-variant" }
-parquet-variant-json = { version = "58.4.0", path = "./parquet-variant-json" }
-parquet-variant-compute = { version = "58.4.0", path = 
"./parquet-variant-compute" }
+arrow = { version = "58.4.1", path = "./arrow", default-features = false }
+arrow-arith = { version = "58.4.1", path = "./arrow-arith" }
+arrow-array = { version = "58.4.1", path = "./arrow-array" }
+arrow-buffer = { version = "58.4.1", path = "./arrow-buffer" }
+arrow-cast = { version = "58.4.1", path = "./arrow-cast" }
+arrow-csv = { version = "58.4.1", path = "./arrow-csv" }
+arrow-data = { version = "58.4.1", path = "./arrow-data" }
+arrow-ipc = { version = "58.4.1", path = "./arrow-ipc" }
+arrow-json = { version = "58.4.1", path = "./arrow-json" }
+arrow-ord = { version = "58.4.1", path = "./arrow-ord" }
+arrow-pyarrow = { version = "58.4.1", path = "./arrow-pyarrow" }
+arrow-row = { version = "58.4.1", path = "./arrow-row" }
+arrow-schema = { version = "58.4.1", path = "./arrow-schema" }
+arrow-select = { version = "58.4.1", path = "./arrow-select" }
+arrow-string = { version = "58.4.1", path = "./arrow-string" }
+parquet = { version = "58.4.1", path = "./parquet", default-features = false }
+parquet-geospatial = { version = "58.4.1", path = "./parquet-geospatial" }
+parquet-variant = { version = "58.4.1", path = "./parquet-variant" }
+parquet-variant-json = { version = "58.4.1", path = "./parquet-variant-json" }
+parquet-variant-compute = { version = "58.4.1", path = 
"./parquet-variant-compute" }
 
 chrono = { version = "0.4.40", default-features = false, features = ["clock"] }
 
diff --git a/cliff.toml b/cliff.toml
new file mode 100644
index 0000000000..5cd02a498c
--- /dev/null
+++ b/cliff.toml
@@ -0,0 +1,84 @@
+# git-cliff ~ configuration file
+# https://git-cliff.org/docs/configuration
+
+[remote.github]
+# For token set GITHUB_TOKEN env var or pass via --github-token
+owner = "apache"
+repo = "arrow-rs"
+
+[changelog]
+# Otherwise it removes the left padding in the license header
+trim = false
+
+header = """
+<!---
+  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.
+-->
+
+# Changelog
+"""
+body = """
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+
+{% if version %}
+## [{{ version }}]({{ self::remote_url() }}/tree/{{ version }}) - ({{ 
timestamp | date(format="%Y-%m-%d") }})
+{% else %}
+## [unreleased]
+{% endif %}
+[Full Changelog]({{ self::remote_url() }}/compare/{{ previous.version }}...{{ 
version }})
+{% for group, commits in commits | group_by(attribute="group") %}
+### {{ group | striptags | trim | upper_first }}
+  {%- for commit in commits %}
+- {% if commit.remote.pr_title %}{{ commit.remote.pr_title | trim }}{% else 
%}{{ commit.message | split(pat="\n") | first | upper_first | trim }}{% endif 
%}\
+    {% if commit.remote.username %} by @{{ commit.remote.username }}{%- endif 
-%}
+    {% if commit.remote.pr_number %} in \
+      [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ 
commit.remote.pr_number }}) \
+    {%- endif -%}
+  {% endfor %}
+{% endfor %}
+"""
+
+[git]
+# We don't use conventional commits
+conventional_commits = false
+filter_unconventional = false
+require_conventional = false
+
+# To make backport releases easier
+use_branch_tags = true
+# Ignoring rc tags
+tag_pattern = "^\\d+\\.\\d+\\.\\d+$"
+
+commit_parsers = [
+    # Grouping based on PR labels
+    { field = "remote.pr_labels", pattern = "api-change", group = "<!-- 0 
-->Breaking changes" },
+    { field = "remote.pr_labels", pattern = "security", group = "<!-- 1 
-->Security fixes" },
+    { field = "remote.pr_labels", pattern = "enhancement", group = "<!-- 2 
-->Enhancements" },
+    { field = "remote.pr_labels", pattern = "bug", group = "<!-- 3 -->Bug 
fixes" },
+    { field = "remote.pr_labels", pattern = "performance", group = "<!-- 4 
-->Performance improvements" },
+    { field = "remote.pr_labels", pattern = "documentation", group = "<!-- 5 
-->Documentation updates" },
+    { field = "remote.pr_labels", pattern = "development-process", skip = true 
},
+    # We could have a visible section for dependency updates if we want
+    { field = "remote.pr_labels", pattern = "auto-dependencies", skip = true },
+    # Ideally we minimize this last section as much as possible by ensuring PRs
+    # are labelled as above
+    { message = ".*", group = "<!-- 6 -->Miscellaneous" },
+]
+sort_commits = "newest"

Reply via email to