-
Notifications
You must be signed in to change notification settings - Fork 896
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
Stability Guarantee/Version Strategy #4286
Comments
The guarantees apply to all channels, including nightly and beta.
AFAIK, we haven't strictly defined such things. So far, we have loosely followed the semantic versioning:
I don't think it is necessary to be strict about minor/patch version updates, though it definitely won't hurt to have such rule.
Yes, I agree that it's valuable to have such documentation in this repo. The original RFC is a bit outdated, so it may be nice to articulate the documentation in this repo and then reflect that documentation to the original RFC once we are confident with the content of the documentation. |
👍 basically everywhere, other than perhaps when building rustfmt from source then 😄
Agreed. I was thinking more along the lines of articulating what you described there, just so end-users generally know what a minor version bump would mean
I'll take a pass at creating a version of this for review |
As a practical example/question, there's been semi recent upstream changes around inline assembly which has two broad impacts on rustfmt
To account for the AST changes, I had to incorporate the new variant during a recent rustc-ap-* bump, but both asm variants are treated the same currently since the formatting guidelines have yet to be finalized for the inline variant rustfmt/src/formatting/expr.rs Lines 323 to 329 in 8fb4fa5
If we assume that the inline asm style guide is finalized some time after we release rustfmt 2.0, then AIUI would we be able to incorporate those inline asm formatting changes as part of some rustfmt 2.x release. That could potentially result in some formatting changes to existing inline asm usage, but this would still fall under the "new syntax" type of bucket even though rustfmt 2.x-1 already supported the syntax. Correct? |
Yes! Regarding new syntax, we can relax the stability rule and allow us to change the way we format the code with new syntax until it hits the stable (though we should not change the formatting style frequently). |
I have two related questions I haven't found answers to (after five minutes searching through the repo):
|
Sorry this seems to have slipped through my notifications unnoticed. A major breaking release is not going to happen soon, and to be perfectly transparent it's rather unlikely to happen outside a hypothetical 2.0 release of Rust et al If/when there's approval for such a release, we'll be sure that the types of specifics you've rightfully asked for are codified and broadcasted widely, with opportunity for community weigh in, well before any such breaking changes are actually made. |
I'm also going to go ahead and close this issue as it served it's original purpose, though also teed up some broader questions and strategy being discussed with the dev tools team |
AFAIK there's no readily available/discoverable information about rustfmt's stability guarantee defined within the repo, nor is there definitive links or references to external information.
AIUI the stability story is articulated in the RFC rust-lang/rfcs#2437, but IMO it'd be good to document the resulting details of the guarantee here within the rustfmt documentation.
Based on my understanding of the guarantee, a few salient points:
rustfmt
andcargo fmt
) will require a major version bumpSome questions I have:
@topecongiro - Anything I missed and/or got wrong? Do you agree it'd be worthwhile to document information on the guarantee or does an easily consumable version exist elsewhere that we could link to?
The text was updated successfully, but these errors were encountered: