Upgrade Note
Rust Core
There are no public API and raw API changes.
Java binding
Breaking change for constructing operators
PR-3166 changes the API for constructing operators:
Previous:
new BlockingOperator(scheme, config);
new Operator(scheme, config);
Current:
BlockingOperator.of(scheme, config);
Operator.of(scheme, config);
Now, there is no public constructor for operators, but only factory methods. In this way, the APIs are free to do arbitrary verifications and preparations before constructing operators.
Node.js binding
There are no API changes.
Python binding
There are no API changes.
What's Changed
Added
- feat: allow using
prometheus-client
crate with PrometheusClientLayer by @flaneur2020 in #3134 - feat(binding/java): support info ops by @G-XD in #3154
- test(binding/java): add behavior test framework by @G-XD in #3129
- feat: Include starting offset for GHAC upload Content-Range by @huonw in #3163
- feat(bindings/cpp): make ReaderStream manage the lifetime of Reader by @silver-ymz in #3164
- feat: Enable multi write for ghac by @Xuanwo in #3165
- feat: Add mysql support for OpenDAL by @Zheaoli in #3170
- feat(service/postgresql): support connection pool by @Zheaoli in #3176
- feat(services/ghac): Allow explicitly setting ghac endpoint/token, not just env vars by @huonw in #3177
- feat(service/azdls): add append support for azdls by @dqhl76 in #3186
- feat(bindings/python): Enable
BlockingLayer
for non-blocking services that don't support blocking by @messense in #3198 - feat: Add write_can_empty in Capability and related tests by @Xuanwo in #3200
- feat: Add basic support for bindings/go using CGO by @jiaoew1991 in #3204
- feat(binding/java): add
copy
test by @G-XD in #3207 - feat(service/sqlite): Support sqlite for opendal by @Zheaoli in #3212
- feat(services/sqlite): Support blocking_get/set/delete in sqlite service by @Zheaoli in #3218
- feat(oay): port
WebdavFs
to dav-server-fs-opendal by @Young-Flash in #3119
Changed
- refactor(services/dropbox): Use OpWrite instead of passing all args as parameters by @ImSingee in #3126
- refactor(binding/java): read should return bytes by @tisonkun in #3153
- refactor(bindings/java)!: operator jni calls by @tisonkun in #3166
- refactor(tests): reuse function to remove duplicate code by @zhao-gang in #3219
Fixed
- fix(tests): Create test files one by one instead of concurrently by @Xuanwo in #3132
- chore(ci): fix web identity token path for aws s3 assume role test by @everpcpc in #3141
- fix(services/s3): Detect region returned too early when header is empty by @Xuanwo in #3187
- fix: making OpenDAL compilable on 32hf platforms by @ClSlaid in #3188
- fix(binding/java): decode Java’s modified UTF-8 format by @G-XD in #3195
Docs
- docs(release): describe how to close the Nexus staging repo by @tisonkun in #3125
- docs: update release docs for cpp and haskell bindings by @silver-ymz in #3130
- docs: Polish VISION to make it more clear by @Xuanwo in #3135
- docs: Add start tracking issues about the next release by @Xuanwo in #3145
- docs: Add download link for 0.40.0 by @Xuanwo in #3149
- docs(bindings/cpp): add more using details about cmake by @silver-ymz in #3155
- docs(bindings/java): Added an example of adding dependencies using Gradle by @eastack in #3158
- docs: include disclaimer in announcement template by @Venderbad in #3172
- docs: Add pants as a user by @huonw in #3180
- docs: Add basic readme for go binding by @Xuanwo in #3206
- docs: add multilingual getting started by @tisonkun in #3214
- docs: multiple improvements by @tisonkun in #3215
- docs: Add verify script by @Xuanwo in #3239
CI
- ci: Align tags with semver specs by @Xuanwo in #3136
- ci: Migrate obs to databend labs sponsored bucket by @Xuanwo in #3137
- build(bindings/java): support develop with JDK 21 by @tisonkun in #3140
- ci: Migrate GCS to Databend Labs sponsored bucket by @Xuanwo in #3142
- build(bindings/java): upgrade maven wrapper version by @tisonkun in #3167
- build(bindings/java): support explicit cargo build target by @tisonkun in #3168
- ci: Pin Kvrocks docker image to 2.5.1 to avoid test failure by @git-hulk in #3192
- ci(bindings/ocaml): add doc by @Ranxy in #3208
- build(deps): bump actions/checkout from 3 to 4 by @dependabot in #3222
- build(deps): bump korandoru/hawkeye from 3.3.0 to 3.4.0 by @dependabot in #3223
- build(deps): bump rusqlite from 0.25.4 to 0.29.0 by @dependabot in #3226
Chore
- chore(bindings/haskell): add rpath to haskell linker option by @silver-ymz in #3128
- chore(ci): add test for aws s3 assume role by @everpcpc in #3139
- chore: Incorrect debug information by @OmAximani0 in #3183
- chore: bump quick-xml version to 0.30 by @Venderbad in #3190
- chore: Let's welcome the contributors from hacktoberfest! by @Xuanwo in #3193
- chore(bindings/java): simplify library path resolution by @tisonkun in #3196
- chore: Make clippy happy by @Xuanwo in #3229
- chore: Bump to v0.41.0 to start release process by @suyanhanx in #3241
New Contributors
- @ImSingee made their first contribution in #3126
- @eastack made their first contribution in #3158
- @Venderbad made their first contribution in #3172
- @OmAximani0 made their first contribution in #3183
- @git-hulk made their first contribution in #3192
- @zhao-gang made their first contribution in #3219
Full Changelog: v0.40.0...v0.41.0