Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

async-std violates API guidelines' "C-STABLE" #959

Closed
taiki-e opened this issue Feb 21, 2021 · 1 comment
Closed

async-std violates API guidelines' "C-STABLE" #959

taiki-e opened this issue Feb 21, 2021 · 1 comment

Comments

@taiki-e
Copy link
Contributor

taiki-e commented Feb 21, 2021

https://rust-lang.github.io/api-guidelines/necessities.html#public-dependencies-of-a-stable-crate-are-stable-c-stable

Public dependencies of a stable crate are stable (C-STABLE)

A crate cannot be stable (>=1.0.0) without all of its public dependencies being stable.

@yoshuawuyts
Copy link
Contributor

"guidelines" aren't "rules". They're suggestions, which in this case exist to minimize the amount of churn a project goes through. The intent matters, and framing it as if async-std has broken some sort of rule it shouldn't have is plain wrong.

In our case we've chosen to make the trade-off to rely on futures-core 0.3, with the knowledge that if a breaking change was published we would need to upgrade too. This is an acceptable strategy and compliant with semver.

However this is clearly in response to our conversation on the futures-rs repo. I don't think I'm overreaching in questioning the need for breaking changes in the first place, nor my ask for clear motivation of each breaking change, and highlighting the impact breaking changes will have on the wider ecosystem.

But it's a Sunday here and don't want to get deeper into this argument. For now I'm going to close this issue, and ask that we continue the conversation next week on the futures-rs issues and Zulip.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants