GitHub user Xuanwo edited a discussion: v0.53.0

# Upgrade to Rust Core  v0.53

## Public API

### Supabase service is now an S3-compatible servcice

Supabase Storage is now an S3-compatible service instead: 
https://github.com/supabase/storage.

We removed the supabase native service support in OpenDAL v0.53. Users who want 
to access Supabase Storage can use the S3 service instead.

### All metrics related layers have been refactored

All metrics layers have been refactored:

- `PrometheusLayer`
- `PrometheusClientLayer`
- `MetricsLayer`

They are now provides more metrics and more detailed information. All their 
public API have been redesigned.

For more details, please refer to `opendal::layers::observe`'s module 
documentation.

### `Operator::default_executor` has been replaced by `Operator::executor`

In opendal v0.53, we introduced a new concept of `Context` which is used to 
store the context of the current operator. Thanks to this design, we can now 
get and set the `executor` and `http_client` for given Operator instead.

All services `http_client` API has been deprecated and replaced by 
`Operator::update_http_client` API.

### OpenDAL MSRV bumped to `1.80`

Since v0.53, OpenDAL will require Rust 1.80.0 or later to build.

## Raw API

### Operation enum merge

To reduce the complexity of the `Operation`, we have merged the duplicated 
`Operation`.

For example:

- `Operation::ReaderRead` has been merged into `Operation::Read`
- `Operation::BlockingRead` has been merged into `Operation::Read`

# Upgrade to Nodejs Binding v0.48

## Breaking change

### Public API

Now, nodejs binding `op.is_exist` changed to `op.exists` to align with nodejs 
API style.

<!-- Release notes generated using configuration in .github/release.yml at 
v0.53.0 -->

## What's Changed
### Added
* feat(bindings/python) detailed error message by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5646
* feat(bindings/python): Add user metadata support for write by @Xuanwo in 
https://github.com/apache/opendal/pull/5654
* feat(services/s3): add append support by @Frank-III in 
https://github.com/apache/opendal/pull/5428
* feat(core): Add presign delete support by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5647
* feat(bindings/python): add python presign_delete by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5661
* feat(core): Sharing context between layers and service by @Xuanwo in 
https://github.com/apache/opendal/pull/5662
* feat(!): Bump arrow version of parquet_opendal to 54.x by @erickguan in 
https://github.com/apache/opendal/pull/5665
* feat: Polish context related APIs by @Xuanwo in 
https://github.com/apache/opendal/pull/5673
* feat(services/onedrive): List dir shows metadata by @erickguan in 
https://github.com/apache/opendal/pull/5632
* feat(java): add WriteOptions for write methods by @geruh in 
https://github.com/apache/opendal/pull/5664
* feat(bindings/ruby): add operator info by @erickguan in 
https://github.com/apache/opendal/pull/5584
* feat(services/oss): Implement `Write Returns Metadata` for oss by @meteorgan 
in https://github.com/apache/opendal/pull/5688
* feat(core): Expose Reader::into_stream and Writer::into_sink by @Xuanwo in 
https://github.com/apache/opendal/pull/5698
* feat: adopt uv for python binding by @kemingy in 
https://github.com/apache/opendal/pull/5711
* feat(services/gcs): Implement multipart/related and use it with Gcs by 
@wlinna in https://github.com/apache/opendal/pull/5691
* feat(bindings/dart): Add dart binding by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5591
* fix(binding/dart): pin version to avoid generator/runtime version mismatch by 
@asukaminato0721 in https://github.com/apache/opendal/pull/5734
* feat(binding/dart): add examples, tests by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5740
* feat(services/onedrive): add signer to utilize the refresh token by 
@erickguan in https://github.com/apache/opendal/pull/5733
* feat(binding/dart): hide init && change to init by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5742
* feat(core): Implement write returns metadata for b2 by @hoslo in 
https://github.com/apache/opendal/pull/5750
* feat(services/hdfs_native): implement write/read/list methods by @zhaohaidao 
in https://github.com/apache/opendal/pull/5617
* feat(website): Adding a WIP to the list of bingdings by @shaonianche in 
https://github.com/apache/opendal/pull/5769
* feat(services/onedrive): implement read_with_if_none_match by @erickguan in 
https://github.com/apache/opendal/pull/5763
* feat(binding/dart): add pubspec info by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5751
* feat(services/s3): Add operation in http context by @Xuanwo in 
https://github.com/apache/opendal/pull/5791
* feat(bindings/python): Add repr for metadata by @yihong0618 in 
https://github.com/apache/opendal/pull/5783
* feat: Add origin private file system scaffold by @Eason0729 in 
https://github.com/apache/opendal/pull/5758
* feat(core): Implement http related metrics support for prom client by @Xuanwo 
in https://github.com/apache/opendal/pull/5798
* feat(core): Implement http related metrics support for otel by @leiysky in 
https://github.com/apache/opendal/pull/5800
* feat(services/lakefs): Add operation in http context by @liugddx in 
https://github.com/apache/opendal/pull/5809
* feat(github): Auto generate weekly summary by @Xuanwo in 
https://github.com/apache/opendal/pull/5818
* feat(binding/java): Add list with recursive support  by @cuichenli in 
https://github.com/apache/opendal/pull/5718
* feat(services/huggingface): Add operation in http context by @liugddx in 
https://github.com/apache/opendal/pull/5810
* feat(core/layers): implement http related metrics support for prometheus by 
@koushiro in https://github.com/apache/opendal/pull/5847
* feat(core/layers): implement http related metrics support for metrics by 
@koushiro in https://github.com/apache/opendal/pull/5848
* feat(services/onedrive): implement additional OneDrive features by @erickguan 
in https://github.com/apache/opendal/pull/5784
* feat(bindings/c): add opendal_operator_check by @asukaminato0721 in 
https://github.com/apache/opendal/pull/5851
* feat(services/aliyun_drive): Add operation in http context by @sunheyi6 in 
https://github.com/apache/opendal/pull/5880
### Changed
* refactor(!): Supabase is now an S3-compatible servcices by @Xuanwo in 
https://github.com/apache/opendal/pull/5663
* refactor: Migrate s3 services to context based http client by @Xuanwo in 
https://github.com/apache/opendal/pull/5676
* refactor: Migrate oss services to context based http client by @Ziy1-Tan in 
https://github.com/apache/opendal/pull/5681
* refactor: Migrate obs services to context based http client by @Ziy1-Tan in 
https://github.com/apache/opendal/pull/5682
* refactor: Migrate cos services to context based http client by @Ziy1-Tan in 
https://github.com/apache/opendal/pull/5683
* refactor(bindings/node)!: Change `is_exist` to `exists` to align with nodejs 
API style by @yihong0618 in https://github.com/apache/opendal/pull/5731
* refactor(services/redis): Implement ConnectionLike for RedisConnection by 
@Xuanwo in https://github.com/apache/opendal/pull/5748
* refactor!: Remove opendal-compat which is not maintained by @Xuanwo in 
https://github.com/apache/opendal/pull/5754
* refactor: Migrate github services to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5764
* refactor(gcs): Migrate to context based http client by @leiysky in 
https://github.com/apache/opendal/pull/5778
* refactor(core/raw)!: Merge blocking and async operations by @Xuanwo in 
https://github.com/apache/opendal/pull/5789
* refactor(core/raw)!: Use AccessorInfo instead of seperate fields by @Xuanwo 
in https://github.com/apache/opendal/pull/5796
* refactor: Migrate aliyun_drive services to context based http client by 
@miroim in https://github.com/apache/opendal/pull/5815
* refactor: Migrate azfile services to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5816
* refactor: Migrate dropbox services to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5827
* refactor: Migrate upyun services to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5829
* refactor(core): Migrate BlockWriter to use executor from context by @Xuanwo 
in https://github.com/apache/opendal/pull/5834
* refactor(core): Migrate MultipartWrite Executor to context based by @Xuanwo 
in https://github.com/apache/opendal/pull/5835
* refactor(core): Migrate PositionWrite Executor to context based by @Xuanwo in 
https://github.com/apache/opendal/pull/5836
* refactor(core)!: Migrate to context based executor by @Xuanwo in 
https://github.com/apache/opendal/pull/5838
* refactor: tidy binding java code by @tisonkun in 
https://github.com/apache/opendal/pull/5840
* refactor: Migrate yandex_disk services to context based http client by 
@miroim in https://github.com/apache/opendal/pull/5841
* refactor: Migrate alluxio services to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5842
* refactor: Migrate b2 service to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5843
* refactor: migrate azblob services to context based http client by @Ziy1-Tan 
in https://github.com/apache/opendal/pull/5845
* refactor: Migrate gdrive service to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5861
* refactor: Migrate pcloud service to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5866
* refactor!: Bump OpenDAL MSRV to 1.80 by @Xuanwo in 
https://github.com/apache/opendal/pull/5868
* refactor: Introduce VercelArtifactsCore for improved service structure by 
@miroim in https://github.com/apache/opendal/pull/5873
* refactor: Migrate vercel_artifacts service to context based http client by 
@miroim in https://github.com/apache/opendal/pull/5877
* refactor: Migrate http service to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5879
* refactor: Migrate services to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5882
* refactor: Polishing IO metrics by adding more useful metrics by @Xuanwo in 
https://github.com/apache/opendal/pull/5883
* refactor(core): Add good default histogram buckets for metrics by @Xuanwo in 
https://github.com/apache/opendal/pull/5886
* refactor: Migrate icloud service to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5891
* refactor(bindings/dart)!: support macos and use exists api by @yihong0618 in 
https://github.com/apache/opendal/pull/5884
* refactor: Migrate PrometheusClientLayer to support IO metrics by @Xuanwo in 
https://github.com/apache/opendal/pull/5887
* refactor(core)!: Merge operations to build more clean metrics by @Xuanwo in 
https://github.com/apache/opendal/pull/5892
* refactor: Migrate WebHDFS service to context based http client by @miroim in 
https://github.com/apache/opendal/pull/5893
* refactor(layer/metrics): Migrate MetricsLayer to support IO metrics by 
@koushiro in https://github.com/apache/opendal/pull/5900
* refactor(layer/prometheus): Migrate PrometheusLayer to support IO metrics by 
@koushiro in https://github.com/apache/opendal/pull/5899
* refactor(layer/otelmetrics): Migrate OtelMetricsLayer to support IO metrics 
by @koushiro in https://github.com/apache/opendal/pull/5901
* refactor: Introduce SftpCore for improved service structure by @miroim in 
https://github.com/apache/opendal/pull/5902
* refactor(observe): remove duplicated observation by @koushiro in 
https://github.com/apache/opendal/pull/5894
* refactor: refine RetryLayer type signature by @tisonkun in 
https://github.com/apache/opendal/pull/5905
* refactor(core): Remove all `write_has_xxx`  capabilities by @Ziy1-Tan in 
https://github.com/apache/opendal/pull/5908
* refactor(services/obs): Implement Write Returns Metadata for obs by @Ziy1-Tan 
in https://github.com/apache/opendal/pull/5912
### Fixed
* fix(integrations/dav-server): handle encoded path correctly. by @rick-200 in 
https://github.com/apache/opendal/pull/5650
* fix(services/onedrive): fix OneDrive behavior tests by @erickguan in 
https://github.com/apache/opendal/pull/5652
* fix(services/gcs): Advertise `write_with_cache_control` in Gcs by @wlinna in 
https://github.com/apache/opendal/pull/5658
* fix(services/gcs): Fix cache control not present in object meta by @Xuanwo in 
https://github.com/apache/opendal/pull/5660
* fix(services/s3): fix batch delete with version by @meteorgan in 
https://github.com/apache/opendal/pull/5684
* fix(services/oss): fix batch delete with version for oss by @meteorgan in 
https://github.com/apache/opendal/pull/5687
* fix(services/onedrive): remove @odata.type field by @erickguan in 
https://github.com/apache/opendal/pull/5696
* fix: drop useless clone for py binding and make clippy happy by @yihong0618 
in https://github.com/apache/opendal/pull/5708
* fix: drop useless file by @yihong0618 in 
https://github.com/apache/opendal/pull/5714
* fix: make build_abs_path to build_rooted_abs_path for chainsafe by 
@yihong0618 in https://github.com/apache/opendal/pull/5715
* fix: mac can not build lua binding by @yihong0618 in 
https://github.com/apache/opendal/pull/5719
* fix(website): Handling svg image correctly by @Xuanwo in 
https://github.com/apache/opendal/pull/5725
* fix(website): Handling badges click behavior correctly by @miroim in 
https://github.com/apache/opendal/pull/5741
* fix(core)!: chainsafe services has been sunset by @yihong0618 in 
https://github.com/apache/opendal/pull/5744
* fix: sqlite may dead lock in ci by @yihong0618 in 
https://github.com/apache/opendal/pull/5738
* fix: drop useless import and clippy happy for java binding by @yihong0618 in 
https://github.com/apache/opendal/pull/5746
* fix(bindings/java): bring back false delete code by @yihong0618 in 
https://github.com/apache/opendal/pull/5752
* fix(core): fix list with recursive when the object doesn't exist by 
@meteorgan in https://github.com/apache/opendal/pull/5732
* fix(website): docusaurus build on windows by @shaonianche in 
https://github.com/apache/opendal/pull/5770
* fix: make php binding happy again by @yihong0618 in 
https://github.com/apache/opendal/pull/5761
* fix(services/onedrive): add scope for the refresh token by @erickguan in 
https://github.com/apache/opendal/pull/5776
* fix: py binding benchmark can not run by @yihong0618 in 
https://github.com/apache/opendal/pull/5786
* fix: add missing last_modified for python binding by @yihong0618 in 
https://github.com/apache/opendal/pull/5767
* doc: fix README root wrong for example close issue #5871 by correct README by 
@yihong0618 in https://github.com/apache/opendal/pull/5782
* fix(services/compfs): behavior async write by @Berrysoft in 
https://github.com/apache/opendal/pull/5803
* fix(services/onedrive): chunk PUT upload remove auth header by @emliunix in 
https://github.com/apache/opendal/pull/5812
* fix(services/compfs): read, delete, copy, rename by @Berrysoft in 
https://github.com/apache/opendal/pull/5807
* fix(github): Fix discussion create by @Xuanwo in 
https://github.com/apache/opendal/pull/5821
* fix(bindings/python): open python3.13t release for windows since upstream had 
fixed by @yihong0618 in https://github.com/apache/opendal/pull/5826
* fix: better ocaml binding and happy clippy by @yihong0618 in 
https://github.com/apache/opendal/pull/5839
* fix(bindings/python): sort imports, fix template, fix bench by @kemingy in 
https://github.com/apache/opendal/pull/5844
* fix: make haskell binding happier by @yihong0618 in 
https://github.com/apache/opendal/pull/5849
* doc: fix all fs env tmp file dir in doc by @yihong0618 in 
https://github.com/apache/opendal/pull/5855
* fix: drop fixme in py binding since upstream fixed by @yihong0618 in 
https://github.com/apache/opendal/pull/5862
* fix: drop fixme in etcd tls since upstream fixed by @yihong0618 in 
https://github.com/apache/opendal/pull/5863
* fix: todo list since MSRV is 1.80 by @yihong0618 in 
https://github.com/apache/opendal/pull/5870
* fix: close issue #5910 by @yihong0618 in 
https://github.com/apache/opendal/pull/5911
### Docs
* doc: add the most famous Python binding by @yihong0618 in 
https://github.com/apache/opendal/pull/5707
* doc: py binding version is wrong for now by @yihong0618 in 
https://github.com/apache/opendal/pull/5709
* docs: Better ways to users showcase by @Xuanwo in 
https://github.com/apache/opendal/pull/5720
* docs: Add useful links by @Xuanwo in 
https://github.com/apache/opendal/pull/5735
* docs: QuestDB is not using opendal java by @Xuanwo in 
https://github.com/apache/opendal/pull/5736
* doc: more users for python binding by @yihong0618 in 
https://github.com/apache/opendal/pull/5756
* docs: Update nominate-committer.md by @tisonkun in 
https://github.com/apache/opendal/pull/5765
* docs: Fix rustic users entry by @QazCetelic in 
https://github.com/apache/opendal/pull/5790
* docs(services/onedrive): add how to get tokens by @emliunix in 
https://github.com/apache/opendal/pull/5792
* doc: fix typo in RFC md by @yihong0618 in 
https://github.com/apache/opendal/pull/5813
* doc: dotnet binding wip doc by @yihong0618 in 
https://github.com/apache/opendal/pull/5850
* doc: add oli bench command doc by @yihong0618 in 
https://github.com/apache/opendal/pull/5854
* doc: docker installation guide for behaviour test by @zhaohaidao in 
https://github.com/apache/opendal/pull/5876
* docs: Add docs on how to upgrade to opendal rust core 0.53 by @Xuanwo in 
https://github.com/apache/opendal/pull/5918
* docs: Update changelogs for v0.53.0 by @Xuanwo in 
https://github.com/apache/opendal/pull/5934
### CI
* ci(bindings/zig): update to zig version 0.14.0 by @kassane in 
https://github.com/apache/opendal/pull/5700
* ci: add clippy to some of the binding check ci by @yihong0618 in 
https://github.com/apache/opendal/pull/5717
* build: bump opentelemetry dependency to 0.29.0 by @tisonkun in 
https://github.com/apache/opendal/pull/5856
* build(deps): bump actions/setup-python from 4 to 5 by @dependabot in 
https://github.com/apache/opendal/pull/5926
* build(deps): update datafusion requirement from 45.0.0 to 46.0.1 in 
/integrations/object_store by @dependabot in 
https://github.com/apache/opendal/pull/5928
* build(deps): bump governor from 0.6.3 to 0.10.0 in /core by @dependabot in 
https://github.com/apache/opendal/pull/5923
* build(deps): bump log from 0.4.25 to 0.4.27 in /bin/oay by @dependabot in 
https://github.com/apache/opendal/pull/5927
* build(deps): bump humantime from 2.1.0 to 2.2.0 in /bin/oli by @dependabot in 
https://github.com/apache/opendal/pull/5925
* build(deps): bump test-context from 0.3.0 to 0.4.1 in /bin/ofs by @dependabot 
in https://github.com/apache/opendal/pull/5924
* build(deps): update pyo3 requirement from 0.23.3 to 0.24.1 in 
/bindings/python by @dependabot in https://github.com/apache/opendal/pull/5922
* ci: Disable zigbuild to workaround undefined symbol by @Xuanwo in 
https://github.com/apache/opendal/pull/5936
### Chore
* chore: Fix clippy for rust edition 2024 by @Xuanwo in 
https://github.com/apache/opendal/pull/5648
* chore: update mongodb version drop the fixme comments by @yihong0618 in 
https://github.com/apache/opendal/pull/5706
* chore: revert "services/cos: Implement Write Returns Metadata for cos" by 
@Xuanwo in https://github.com/apache/opendal/pull/5713
* chore(core): Fix BufferStream not exported by @Xuanwo in 
https://github.com/apache/opendal/pull/5730
* chore: update flate2 version by @yihong0618 in 
https://github.com/apache/opendal/pull/5759
* chore(services/hdfs_native): enable create_dir capability by @meteorgan in 
https://github.com/apache/opendal/pull/5817
* chore(github): Fix uv not installed in weekly-update by @Xuanwo in 
https://github.com/apache/opendal/pull/5819
* chore(github): Fix dateutil not installed by @Xuanwo in 
https://github.com/apache/opendal/pull/5820
* chore(github): Avoid ping all contributors by @Xuanwo in 
https://github.com/apache/opendal/pull/5823
* chore: make ruby clippy happy by @yihong0618 in 
https://github.com/apache/opendal/pull/5830
* chore: update py binding api just by @yihong0618 in 
https://github.com/apache/opendal/pull/5898
* chore: Polish IO metric buckets by @Xuanwo in 
https://github.com/apache/opendal/pull/5903
* chore(layer/observe): cleanup useless metric metadata by @koushiro in 
https://github.com/apache/opendal/pull/5904
* chore: update cpp example by @yihong0618 in 
https://github.com/apache/opendal/pull/5907
* chore: chore some version like logforth by @yihong0618 in 
https://github.com/apache/opendal/pull/5921

## New Contributors
* @rick-200 made their first contribution in 
https://github.com/apache/opendal/pull/5650
* @Ziy1-Tan made their first contribution in 
https://github.com/apache/opendal/pull/5681
* @geruh made their first contribution in 
https://github.com/apache/opendal/pull/5664
* @shaonianche made their first contribution in 
https://github.com/apache/opendal/pull/5769
* @leiysky made their first contribution in 
https://github.com/apache/opendal/pull/5778
* @QazCetelic made their first contribution in 
https://github.com/apache/opendal/pull/5790
* @emliunix made their first contribution in 
https://github.com/apache/opendal/pull/5792
* @Eason0729 made their first contribution in 
https://github.com/apache/opendal/pull/5758
* @Berrysoft made their first contribution in 
https://github.com/apache/opendal/pull/5803

**Full Changelog**: https://github.com/apache/opendal/compare/v0.52.0...v0.53.0

GitHub link: https://github.com/apache/opendal/discussions/5956

----
This is an automatically sent email for dev@opendal.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@opendal.apache.org

Reply via email to