From 4545fb83f9655b9fb7823bfaf4440848d9ef37c4 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 18 Dec 2025 17:27:09 -0500 Subject: [PATCH 1/5] Add upgrade guide --- src/lib.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index d5c0cb5..7afd33b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -694,6 +694,33 @@ pub type MultipartId = String; /// /// To automatically detect this issue, use /// [`#[deny(clippy::missing_trait_methods)]`](https://rust-lang.github.io/rust-clippy/master/index.html#missing_trait_methods). +/// +/// # Upgrade Guide for 0.13.0 +/// +/// Upgrading to object_store 0.13.0 from an earlier version typically involves: +/// +/// 1. Add a `use` for [`ObjectStoreExt`] to solve the error +/// +/// ```text +/// error[E0599]: no method named `put` found for reference `&dyn object_store::ObjectStore` in the current scope +/// --> datafusion/datasource/src/url.rs:993:14 +/// ``` +/// +/// 2. Remove any (now) redundant implementations (such as `ObjectStore::put`) from any +/// `ObjectStore` implementations to resolve the error +/// +/// ```text +/// error[E0407]: method `put` is not a member of trait `ObjectStore` +/// --> datafusion/datasource/src/url.rs:1103:9 +/// | +/// ``` +/// +/// 3. Convert `ObjectStore::delete` to [`ObjectStore::delete_stream`] (see documentation +/// on that method for details and examples) +/// +/// 4. Combine `ObjectStore::copy` and `ObjectStore::copy_if_not_exists` implementations into +/// [`ObjectStore::copy_opts`] (see documentation on that method for details and examples) +/// #[async_trait] pub trait ObjectStore: std::fmt::Display + Send + Sync + Debug + 'static { /// Save the provided `payload` to `location` with the given options From d98922b39df5fb50e60d0331795cdf052aca2a8d Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Thu, 18 Dec 2025 17:34:22 -0500 Subject: [PATCH 2/5] Add another example --- src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 7afd33b..5eab1e0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -721,6 +721,21 @@ pub type MultipartId = String; /// 4. Combine `ObjectStore::copy` and `ObjectStore::copy_if_not_exists` implementations into /// [`ObjectStore::copy_opts`] (see documentation on that method for details and examples) /// +/// 5. Update `object_store::Error::NotImplemented` to include the name of the missing method +/// +/// For example, change instances of +/// ```text +/// object_store::Error::NotImplemented +/// ``` +/// to +/// ``` +/// object_store::Error::NotImplemented { +/// operation: "put".to_string(), +/// implementer: "RequestCountingObjectStore".to_string(), +/// }; +/// ``` +/// +/// #[async_trait] pub trait ObjectStore: std::fmt::Display + Send + Sync + Debug + 'static { /// Save the provided `payload` to `location` with the given options From fb86d97ab01b48c19bed139764126e29705761f9 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 19 Dec 2025 08:54:52 -0500 Subject: [PATCH 3/5] Update src/lib.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 5eab1e0..f30d666 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -735,7 +735,6 @@ pub type MultipartId = String; /// }; /// ``` /// -/// #[async_trait] pub trait ObjectStore: std::fmt::Display + Send + Sync + Debug + 'static { /// Save the provided `payload` to `location` with the given options From 15f1f9b8333e430d77714145d083e3e6cb04758f Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 19 Dec 2025 08:54:58 -0500 Subject: [PATCH 4/5] Update src/lib.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index f30d666..3c5e9bd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -706,7 +706,7 @@ pub type MultipartId = String; /// --> datafusion/datasource/src/url.rs:993:14 /// ``` /// -/// 2. Remove any (now) redundant implementations (such as `ObjectStore::put`) from any +/// 2. Remove any (now) redundant implementations (such as `ObjectStore::put`) from any /// `ObjectStore` implementations to resolve the error /// /// ```text From 6d265a6eda4f38abb7dd4e542e43526140f9a979 Mon Sep 17 00:00:00 2001 From: Andrew Lamb Date: Fri, 19 Dec 2025 08:55:05 -0500 Subject: [PATCH 5/5] Update src/lib.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 3c5e9bd..5ad9d32 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -729,7 +729,7 @@ pub type MultipartId = String; /// ``` /// to /// ``` -/// object_store::Error::NotImplemented { +/// object_store::Error::NotImplemented { /// operation: "put".to_string(), /// implementer: "RequestCountingObjectStore".to_string(), /// };