-
Notifications
You must be signed in to change notification settings - Fork 9
Stability and team autonomy #49
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
cc @topecongiro |
cc @nrc as ex-lead of devtools So I'll admit that we never wrote this down anywhere, and it might be worth doing so. The general model of the devtools team is, to me, similar to the model of the core team -- it's a "devolved governance" model where most powers are delegated to the subteams, but some important things "bubble up", especially things affecting other teams or stability. For example, the language team decided to make editions happen, but it's a large enough thing that core (and many other teams) were involved in that decisionmaking process at various points. As much as possible it is encouraged for teams to carve out what is explicitly their "jurisdiction" via RFCs. See, for example, the Clippy RFC, which defines what is considered a breaking change, what changes require an RFC, and what changes the clippy team is empowered to make without much of an issue. This doesn't mean that anything not in these RFCs is out of scope, but it does mean some major changes may necessitate wider review. But with or without such an RFC, subteams are trusted to do minor stuff on their own, and bring major issues to the attention of the larger team and/or the larger community. Rustfmt does have such an RFC, mentioned in that issue: it has one that establishes a separate decisionmaking process for fmt changes, and one that specifies what is and isn't a breaking change (among other things). I think a good litmus for what is considered "major" is: are there other teams that are stakeholders here? For rust-lang/rustfmt#4228 (comment) it is both the cargo team (whose stability is affected) and a little bit the release team (which tends to care about stability). In general, stability issues are perhaps the most "major" of any kind of issue because they have such huge user impact. If you're changing how stability works in practice, it's probably important to get wider review and/or community input. The Rust project has always had a strong stance on stability. Tool stability is absolutely underdefined: Individual tools (like rustfmt and clippy) both have RFCs that specifies what stability means for them, but we don't have a unifying concept to fall back on here, just intuition. Furthermore, the rustfmt RFC is from before As a team if you feel that there are some things that may be considered breaking or "major" but you don't want them to be, you should write an RFC establishing that. For example, clippy does not bother with stability in a world of I think an easy process for the devtools team to adopt is:
The last point ideally does not ever need to be invoked, but can be in cases like this where a different team member (whose tool interfaces with the tool being changed) has a different idea of the severity of the situation, it can be helpful to have an easy process that slows stuff down till people have a chance to discuss. Thoughts? |
Thank you so much @Manishearth! I found that really helpful. As always I defer all things rustfmt to @topecongiro, but I do have some questions and thoughts:
|
I believe everyone does rfcs on the RFCs repo, and occasionally does in-repo FCPs. But it's good that rustfmt has a separate style rfc process.
Correct |
I'm wondering if this can now be closed. Between this thread, conversations in other channels, the charter goals for all teams/wg's for this year, etc. it feels like the original questions have been covered and artifacts will be produced that will cover them. I know that I've certainly got a much better understanding now of the structure and modes of operation, and how/where to surface up rustfmt items. |
Yeah, makes sense! |
This issue is a fork from rust-lang/rustfmt#4228 (comment) regarding some changes to rustfmt.
The high-level questions are:
AFAIK, the RFC guidance only discusses language changes, but not tooling changes. Rustfmt has its own formatting RFCs, but that doesn't help with guidance on other changes.
Should we:
I personally think that Rust tools have had a culture initiated by the early developers of maintaining a high standard of backwards-compatibility. I think this is in some ways influenced by the Rust language and library teams having extremely high standards for backwards compatibility. But I don't think that has ever been written down as a requirement or guideline for the tools teams. It might also be worthwhile to explore if different tools might have different requirements for stability and backwards-compatibility.
cc @calebcartwright @killercup @Manishearth @fitzgen @kinnison @GuillaumeGomez @oli-obk @Xanewok
The text was updated successfully, but these errors were encountered: