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

xuanwo pushed a commit to branch bump-opendal-0.55.0-rc2
in repository https://gitbox.apache.org/repos/asf/opendal.git

commit b1a3938a195428efb8eb4bce49585b2b57bf1534
Author: Xuanwo <[email protected]>
AuthorDate: Mon Nov 17 19:12:52 2025 +0800

    update upgrade
    
    Signed-off-by: Xuanwo <[email protected]>
---
 bindings/python/upgrade.md | 32 ++++++++++++++++++++++++++++++++
 core/src/docs/upgrade.md   | 30 ++++++++++++++++++++++++++++++
 core/upgrade.md            |  1 +
 3 files changed, 63 insertions(+)

diff --git a/bindings/python/upgrade.md b/bindings/python/upgrade.md
index 606d2de15..d365283c4 100644
--- a/bindings/python/upgrade.md
+++ b/bindings/python/upgrade.md
@@ -1,3 +1,35 @@
+# Upgrade to v0.47
+
+## Breaking change: Module exports are explicit
+
+`opendal.__init__` now only re-exports the `capability`, `exceptions`, `file`, 
`layers`, `services`, `types`, `Operator`, and `AsyncOperator` symbols. Imports 
such as:
+
+```python
+from opendal import Metadata, Layer
+```
+
+no longer work. Update them to use the dedicated submodules:
+
+```python
+from opendal.types import Metadata
+from opendal.layers import Layer
+```
+
+The legacy helper module `opendal.__base` has also been removed together with 
`_Base`.
+
+## Breaking change: Capability accessors renamed
+
+Both `Operator.full_capability()` and `AsyncOperator.full_capability()` have 
been renamed to `capability()`. Adjust your code accordingly:
+
+```diff
+-caps = op.full_capability()
++caps = op.capability()
+```
+
+## Breaking change: Service identifiers now have typed enums
+
+The constructors for `Operator` / `AsyncOperator` provide overloads that 
accept `opendal.services.Scheme` members. While plain strings are still 
accepted at runtime, type checkers (pyright/mypy) expect the new enum values. 
Migrate code bases that relied on importing the old `Scheme` enum from 
`opendal` to `from opendal import services` and use `services.Scheme.<NAME>`.
+
 # Upgrade to v0.46
 
 ## Breaking change: Native blocking API removed
diff --git a/core/src/docs/upgrade.md b/core/src/docs/upgrade.md
index 0767ddc21..53654435f 100644
--- a/core/src/docs/upgrade.md
+++ b/core/src/docs/upgrade.md
@@ -1,3 +1,33 @@
+# Upgrade to v0.55
+
+## Public API
+
+### Timestamp types now come from `jiff`
+
+All public metadata APIs that previously exposed `chrono::DateTime<Utc>` now 
use `jiff::Timestamp`. For example, `Metadata::last_modified()` and related 
setters return/accept `Timestamp` values (`core/src/types/metadata.rs`). Update 
downstream crates to depend on `jiff` if they manipulate these timestamps or 
convert them to other formats.
+
+### Scheme handling is string-based
+
+`OperatorInfo::scheme()` now returns `&'static str` instead of `Scheme`, and 
`Operator::via_iter` accepts `impl AsRef<str>` (typically the 
`services::*_SCHEME` constants). Additionally, the deprecated constructors 
`Operator::from_map` and `Operator::via_map` have been removed. Migrate any 
code that relied on the enum variants or the removed constructors to the new 
string-based constants and `from_iter`/`via_iter`.
+
+### List APIs only support `versions`
+
+`OpList::with_version()`/`version()` and `Capability::list_with_version` have 
been removed after a long deprecation cycle. Use `with_versions()`/`versions()` 
on `OpList` and read `Capability::list_with_versions` instead.
+
+### `S3Builder::security_token` removed
+
+`S3Builder` no longer exposes the deprecated `security_token()` helper. Use 
`session_token()` exclusively when configuring temporary credentials.
+
+### KV-style services no longer pretend to support `list`
+
+Services that never returned meaningful results for `Operator::list` (such as 
D1, FoundationDB, GridFS, Memcached, MongoDB, MySQL, Persy, PostgreSQL, Redb, 
Redis, SurrealDB, TiKV, etc.) now rely on the default `Unsupported` 
implementation. Those features will be implemented later.
+
+## Raw API
+
+### Deprecated KV adapters removed
+
+The legacy `opendal::raw::adapters::{kv, typed_kv}` modules have been deleted. 
Services should directly implement `Access` instead of depending on the 
adapters. Remove the corresponding imports and shim layers from any out-of-tree 
services.
+
 # Upgrade to v0.54
 
 ## Public API
diff --git a/core/upgrade.md b/core/upgrade.md
new file mode 120000
index 000000000..f2d33947d
--- /dev/null
+++ b/core/upgrade.md
@@ -0,0 +1 @@
+./src/docs/upgrade.md
\ No newline at end of file

Reply via email to