Skip to content

chore(goosefs): bump goosefs-sdk to 0.1.7#7918

Open
XuQianJin-Stars wants to merge 3 commits into
apache:mainfrom
XuQianJin-Stars:chore/bump-goosefs-sdk-to-0.1.7
Open

chore(goosefs): bump goosefs-sdk to 0.1.7#7918
XuQianJin-Stars wants to merge 3 commits into
apache:mainfrom
XuQianJin-Stars:chore/bump-goosefs-sdk-to-0.1.7

Conversation

@XuQianJin-Stars

Copy link
Copy Markdown
Contributor

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 of
pinning to 0.1.x) allows compatible bug-fix releases (0.1.x and 0.2.x) to be
picked up automatically via Cargo's semver resolution, without introducing
breaking changes.

What changes are included in this PR?

  • Update the goosefs-sdk dependency in core/services/goosefs/Cargo.toml from
    the 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.

@XuQianJin-Stars
XuQianJin-Stars requested a review from Xuanwo as a code owner July 16, 2026 09:31
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. releases-note/chore The PR has a title that begins with "chore" or changes other small things that hard to tell labels Jul 16, 2026

@erickguan erickguan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good. Can you rebase and remove obsolete comment?

Comment thread core/services/goosefs/Cargo.toml
@XuQianJin-Stars
XuQianJin-Stars force-pushed the chore/bump-goosefs-sdk-to-0.1.7 branch from e30868b to 03ec161 Compare July 16, 2026 09:45

@erickguan erickguan left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Jul 16, 2026
@erickguan

Copy link
Copy Markdown
Member

@XuQianJin-Stars Can you watch CI status? I noticed an error and the second run stuck in pulling goosefs image.

@XuQianJin-Stars

Copy link
Copy Markdown
Contributor Author

@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.

Comment thread core/services/goosefs/src/core.rs Outdated
return Ok(());
};

const MAX_ATTEMPTS: usize = 5;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a reliable approach? Does goosefs provide write consistency guarantee?

@XuQianJin-Stars
XuQianJin-Stars force-pushed the chore/bump-goosefs-sdk-to-0.1.7 branch from e5a48e7 to 7256be4 Compare July 16, 2026 15:11
@dosubot dosubot Bot added size:XS This PR changes 0-9 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Jul 16, 2026
@XuQianJin-Stars
XuQianJin-Stars force-pushed the chore/bump-goosefs-sdk-to-0.1.7 branch from 7256be4 to 5e1c644 Compare July 16, 2026 16:01
@dosubot dosubot Bot added size:M This PR changes 30-99 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Jul 16, 2026
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.
@XuQianJin-Stars
XuQianJin-Stars force-pushed the chore/bump-goosefs-sdk-to-0.1.7 branch from 5e1c644 to 91c99a0 Compare July 16, 2026 16:11
@erickguan
erickguan self-requested a review July 16, 2026 16:40
# 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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we rely on an environment variable for tests to pass but not integrate into code, this would produce surprising results for users.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it

@erickguan
erickguan self-requested a review July 16, 2026 16:47
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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can put # to the top of cat or before run block.

Comment thread core/services/goosefs/src/core.rs Outdated
let master = self.master().await?;
let ctx = self.ctx().await?;
let master = ctx.acquire_master();
// A3 consistency: mirror the SDK's `BaseFileSystem::delete`, which

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is A3 consistency?

@dosubot dosubot Bot removed the lgtm This PR has been approved by a maintainer label Jul 16, 2026
# 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" }

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's <0.3.0 means?

@Xuanwo

Xuanwo commented Jul 16, 2026

Copy link
Copy Markdown
Member

Wait a minute, goosefs-sdk itself is not even an open source project? I am going to remove goose-related support from the tree. It's unaccpetable for opendal to have such deps. It should be fine to maintain an oepndal-service-goosefs crate externally.

https://git.woa.com/tencent-cloud-datalake/goosefs-client-rust

image

@erickguan

Copy link
Copy Markdown
Member

@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.

@Xuanwo

Xuanwo commented Jul 16, 2026

Copy link
Copy Markdown
Member

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.

@erickguan

Copy link
Copy Markdown
Member

@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.

@erickguan

Copy link
Copy Markdown
Member

@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.

@Xuanwo

Xuanwo commented Jul 16, 2026

Copy link
Copy Markdown
Member

@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.

@XuQianJin-Stars

Copy link
Copy Markdown
Contributor Author

Wait a minute, goosefs-sdk itself is not even an open source project? I am going to remove goose-related support from the tree. It's unaccpetable for opendal to have such deps. It should be fine to maintain an oepndal-service-goosefs crate externally.

https://git.woa.com/tencent-cloud-datalake/goosefs-client-rust

image

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 goosefs-client-rust crate externally so that OpenDAL's tree stays clean of any non-open-source dependencies.

Please let us know which approach works best for you, and thanks for your patience!

@Xuanwo

Xuanwo commented Jul 17, 2026

Copy link
Copy Markdown
Member

Thank you for that. I think make it open source is the best plan.

In the meantime, if you'd prefer, we're happy to maintain an goosefs-client-rust crate externally so that OpenDAL's tree stays clean of any non-open-source dependencies.

Introduces another new dep (alias) might be confusing.

@erickguan

Copy link
Copy Markdown
Member

Happy to see SDK as OSS project and host publicly. @XuQianJin-Stars Next patch release will be in 1-2 weeks.

@XuQianJin-Stars
XuQianJin-Stars force-pushed the chore/bump-goosefs-sdk-to-0.1.7 branch 2 times, most recently from d9d2f50 to 8c453bd Compare July 18, 2026 01:40
- .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.
@XuQianJin-Stars
XuQianJin-Stars force-pushed the chore/bump-goosefs-sdk-to-0.1.7 branch from 8c453bd to 8a02d52 Compare July 18, 2026 01:45
@dosubot dosubot Bot added size:S This PR changes 10-29 lines, ignoring generated files. and removed size:M This PR changes 30-99 lines, ignoring generated files. labels Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

releases-note/chore The PR has a title that begins with "chore" or changes other small things that hard to tell size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants