chore(goosefs): bump goosefs-sdk to 0.1.7#7918
Conversation
erickguan
left a comment
There was a problem hiding this comment.
Good. Can you rebase and remove obsolete comment?
e30868b to
03ec161
Compare
|
@XuQianJin-Stars Can you watch CI status? I noticed an error and the second run stuck in pulling goosefs image. |
Thanks for the reminder! I'll monitor the CI status and look into the error and the goosefs image pulling issue. Let's not merge until CI is fully green. |
| return Ok(()); | ||
| }; | ||
|
|
||
| const MAX_ATTEMPTS: usize = 5; |
There was a problem hiding this comment.
Is this a reliable approach? Does goosefs provide write consistency guarantee?
e5a48e7 to
7256be4
Compare
7256be4 to
5e1c644
Compare
Upgrade goosefs-sdk dependency to >=0.1.7, <0.3.0 to use the published 0.1.7 release. The version range leaves room for bug fix releases (0.1.x and 0.2.x) without breaking changes.
5e1c644 to
91c99a0
Compare
| # Disable the GooseFS SDK's FileInfoCache (default TTL 30s) so | ||
| # behavior tests observe fresh metadata immediately after | ||
| # write/delete/rename instead of a stale cached snapshot. | ||
| GOOSEFS_FILE_INFO_CACHE_TTL_MS=0 |
There was a problem hiding this comment.
If we rely on an environment variable for tests to pass but not integrate into code, this would produce surprising results for users.
There was a problem hiding this comment.
If we rely on an environment variable for tests to pass but not integrate into code, this would produce surprising results for users.
The intent here was just to reduce caching to lower CI memory usage. I agree relying on the env var alone is fragile
| OPENDAL_GOOSEFS_MASTER_ADDR=127.0.0.1:9200 | ||
| OPENDAL_GOOSEFS_ROOT=/ | ||
| OPENDAL_GOOSEFS_WRITE_TYPE=must_cache | ||
| # Disable the GooseFS SDK's FileInfoCache (default TTL 30s) so |
There was a problem hiding this comment.
You can put # to the top of cat or before run block.
| let master = self.master().await?; | ||
| let ctx = self.ctx().await?; | ||
| let master = ctx.acquire_master(); | ||
| // A3 consistency: mirror the SDK's `BaseFileSystem::delete`, which |
| # in its io_uring cache store without importing `std::ffi::CString`. Bindings do | ||
| # not commit lockfiles and otherwise resolve that broken release in CI. | ||
| goosefs-sdk = "=0.1.5" | ||
| goosefs-sdk = { version = ">=0.1.7, <0.3.0" } |
|
Wait a minute, https://git.woa.com/tencent-cloud-datalake/goosefs-client-rust
|
|
@Xuanwo We can add a short guideline since Apache License is kind of special. Also to check my understanding, we can't distribute a non-OSS SDK. But it's fine to distribute an optional module (also can be in a repo) under Apache License/other compatible license. |
No, we can't have such deps in the tree. This will be a blocker for our release. goosefs-sdk declared itself to be apache 2.0 licensed but it's non-OSS at all. Either we address this issue, or we remove it before the next release. |
|
@Xuanwo I meant this service can't be in opendal repo. Can we host it in apache/opendal-x or somewhere outside apache? Understand. This is a blocker for release. I'm going to check this PR and take care of license. |
|
@Xuanwo I audit the crate which is Apache licensed. Its website and repo https://git.woa.com/tencent-cloud-datalake/goosefs-client-rust is private. Since we can view the code and license file is present, we are good to have goosefs service. It's just less convenient to read documentation or collaborate with goosefs developers. |
This is an interesting direction. From my position, it's not acceptable since tencent people can do anything in the code. And it's unlikely for us to check source from crates every-time. I have communicated with @XuQianJin-Stars and hope he can have some good solutions for this. We can wait until his response. |
Hi @Xuanwo, thanks for pointing this out, and apologies for the confusion. You're right that goosefs-sdk is currently not open source yet — the link you found points to our internal repository. We're actively working on open-sourcing it and expect to complete this within the next few days. Once it's publicly available, the dependency will be resolved through a properly published, open-source crate. In the meantime, if you'd prefer, we're happy to maintain an Please let us know which approach works best for you, and thanks for your patience! |
|
Thank you for that. I think make it open source is the best plan.
Introduces another new dep (alias) might be confusing. |
|
Happy to see SDK as OSS project and host publicly. @XuQianJin-Stars Next patch release will be in 1-2 weeks. |
d9d2f50 to
8c453bd
Compare
- .github/services/goosefs/goosefs/action.yml: GOOSEFS_FILE_INFO_CACHE_TTL_MS=0 and its explanatory comment are no longer needed in the behavior test setup; remove them so the env step only sets the core OPENDAL_GOOSEFS_* vars (MASTER_ADDR, ROOT, WRITE_TYPE). - core/services/goosefs/src/core.rs: remove the verbose "A3 consistency" comments in delete() and rename(); keep the invalidate_file_info() calls (cheap no-ops when the opt-in cache is disabled) so the contract still holds if the cache is ever enabled.
8c453bd to
8a02d52
Compare


Upgrade goosefs-sdk dependency to >=0.1.7, <0.3.0 to use the published 0.1.7
release. The version range leaves room for bug fix releases (0.1.x and 0.2.x)
without breaking changes.
Which issue does this PR close?
Closes #.
Rationale for this change
The published goosefs-sdk 0.1.7 release contains fixes/improvements that we want
to adopt. Bumping the lower bound to 0.1.7 ensures consumers build against a
correct, supported SDK version. Specifying an upper bound of
<0.3.0(instead ofpinning to
0.1.x) allows compatible bug-fix releases (0.1.x and 0.2.x) to bepicked up automatically via Cargo's semver resolution, without introducing
breaking changes.
What changes are included in this PR?
goosefs-sdkdependency incore/services/goosefs/Cargo.tomlfromthe previous version range to
>=0.1.7, <0.3.0.Are there any user-facing changes?
No. This is a dependency version bump only; no public API, configuration, or
behavioral changes for OpenDAL users.
AI Usage Statement
This PR was developed with the assistance of AI coding tools (Claude, used for code scaffolding, documentation drafting, and review). All generated code has been manually reviewed, compiled, tested (
cargo build / cargo test / cargo clippy), and verified against a live GooseFS cluster.