This is an automated email from the ASF dual-hosted git repository.
Jefffrey pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 15c20f0146 chore(avro): add link to ticket in object_store deprecation
message (#10503)
15c20f0146 is described below
commit 15c20f0146fac3be6d28d9f7370d31e6639e0bbe
Author: Andrew Lamb <[email protected]>
AuthorDate: Sat Aug 1 23:03:57 2026 -0400
chore(avro): add link to ticket in object_store deprecation message (#10503)
# Which issue does this PR close?
- Follow on to https://github.com/apache/arrow-rs/pull/10354
# Rationale for this change
I think it will help people who hit the deprecation message to leave
links to relevant issue
(https://github.com/apache/arrow-rs/issues/10308) so they can find
relevant context
This is similar to https://github.com/apache/arrow-rs/pull/10502
# What changes are included in this PR?
Add some links to the deprecation issue
# Are these changes tested?
By CI
<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code
If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?
If this PR claims a performance improvement, please include evidence
such as benchmark results.
-->
# Are there any user-facing changes?
Better deprecation message
---
arrow-avro/src/lib.rs | 6 +++++-
arrow-avro/src/reader/async_reader/async_file_reader.rs | 4 +++-
arrow-avro/src/reader/async_reader/store.rs | 4 ++--
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/arrow-avro/src/lib.rs b/arrow-avro/src/lib.rs
index 4314ef96b2..634f9d7389 100644
--- a/arrow-avro/src/lib.rs
+++ b/arrow-avro/src/lib.rs
@@ -131,11 +131,15 @@
//! [`AsyncAvroFileReader`] implements `Stream<Item = Result<RecordBatch,
ArrowError>>`,
//! allowing efficient async streaming of record batches. Any
[`AsyncFileReader`]
//! can be used as the source; there is a built-in implementation for types
-//! implementing `AsyncRead + AsyncSeek` (such as `tokio::fs::File`), and
object
+//! implementing [`AsyncRead`] + [`AsyncSeek`] (such as [`tokio::fs::File`]),
and object
//! storage services such as S3 can be integrated by implementing
//! [`AsyncFileReader`] on top of a client such as the [object_store] crate
//! (see the example on the trait documentation).
//!
+//! [`AsyncRead`]: tokio::io::AsyncRead
+//! [`AsyncSeek`]: tokio::io::AsyncSeek
+//! [`tokio::fs::File`]: https://docs.rs/tokio/latest/tokio/fs/struct.File.html
+//!
//! ```ignore
//! use arrow_avro::reader::AsyncAvroFileReader;
//! use futures::TryStreamExt;
diff --git a/arrow-avro/src/reader/async_reader/async_file_reader.rs
b/arrow-avro/src/reader/async_reader/async_file_reader.rs
index 8e69d4611c..e7f567bcd8 100644
--- a/arrow-avro/src/reader/async_reader/async_file_reader.rs
+++ b/arrow-avro/src/reader/async_reader/async_file_reader.rs
@@ -30,12 +30,14 @@ use tokio::io::{AsyncRead, AsyncReadExt, AsyncSeek,
AsyncSeekExt};
/// 1. There is a default implementation for types that implement [`AsyncRead`]
/// and [`AsyncSeek`], for example [`tokio::fs::File`].
///
-/// 2. Implementations for remote storage, such as the `object_store` crate,
+/// 2. Implementations for remote storage, such as the [`object_store`] crate,
/// can implement this interface directly, typically by pairing a store
/// handle with an object path and delegating [`Self::get_bytes`] and
/// [`Self::get_byte_ranges`] to ranged reads. [`super::SpawnedReader`] can
/// wrap such a reader to perform its I/O on a dedicated tokio runtime.
///
+/// [`object_store`]: https://crates.io/crates/object_store
+///
/// # Example: implementing `AsyncFileReader` for the `object_store` crate
///
/// ```no_run
diff --git a/arrow-avro/src/reader/async_reader/store.rs
b/arrow-avro/src/reader/async_reader/store.rs
index 9b2c126645..56b2f60aa2 100644
--- a/arrow-avro/src/reader/async_reader/store.rs
+++ b/arrow-avro/src/reader/async_reader/store.rs
@@ -31,7 +31,7 @@ use tokio::runtime::Handle;
/// An implementation of an AsyncFileReader using the [`ObjectStore`] API.
#[deprecated(
since = "59.2.0",
- note = "Implement `AsyncFileReader` directly instead; see the example on
the `AsyncFileReader` trait documentation and
`arrow-avro/examples/object_store.rs`. Use `SpawnedReader` to perform I/O on a
dedicated runtime."
+ note = "Implement `AsyncFileReader` directly instead; see the example on
the `AsyncFileReader` trait documentation and
`arrow-avro/examples/object_store.rs`. Use `SpawnedReader` to perform I/O on a
dedicated runtime. See also https://github.com/apache/arrow-rs/issues/10308"
)]
#[derive(Clone, Debug)]
pub struct AvroObjectReader {
@@ -61,7 +61,7 @@ impl AvroObjectReader {
/// [here]:
https://www.influxdata.com/blog/using-rustlangs-async-tokio-runtime-for-cpu-bound-tasks/
#[deprecated(
since = "59.2.0",
- note = "Wrap the reader in a `SpawnedReader` instead, e.g.
`SpawnedReader::new(reader, handle)`"
+ note = "Wrap the reader in a `SpawnedReader` instead, e.g.
`SpawnedReader::new(reader, handle)`. See also
https://github.com/apache/arrow-rs/issues/10308"
)]
pub fn with_runtime(self, handle: Handle) -> Self {
Self {