Charters
Establish a new Libs Impl team under the Libs team for contributors who want to work on the standard library.
Today, maintainership of the standard library is split between the the Libs and the Compiler teams. The Compiler team makes decisions that affect the rust-lang/rust
codebase, and triage high-priority standard library issues. The Libs team handles stabilizations of new APIs and updates to documentation. In practice, a lot of discussion about standard library implementation is still done by the Libs team, even though it may be also be covered by the Compiler team.
The splitting of responsibilities between the Libs and Compiler teams has never been concretely laid out. This document aims to do that by establishing the charter for a new team, Libs Impl, that will take responsibility for maintaining the /library
directory under rust-lang/rust
.
The standard library codebase has been developed without a clearly communicated direction for a while. That hasn't been necessary to introduce new independent APIs but has blocked progress on larger projects.
The Libs Impl team will set the direction for development of the standard library codebase. It will identify and support projects that may involve deep refactorings and re-organization that unblock future work.
Reviewing changes to the standard library is currently a daunting commitment. There aren't enough reviewers and the ones we have suffer from burnout. There aren't any useful resources to support reviewers and there isn't anybody to reach out to with questions.
The Libs Impl team will establish a clear support framework for standard library reviewers so we can both grow the number of reviewers and better equip them to review contributions. These resources will also help produce some consistent expectations between reviewers.
Parent | Home | Handle |
---|---|---|
Libs | libs-team |
@rust-lang/t-libs-impl |
Success means:
This can be measured through:
The Libs Impl team maintains the Rust standard library codebase.
The Libs Impl team as a whole will make decisions through final comment periods and major change proposals.
The Libs Impl team will have at least one team lead who's also a member of either the Libs or Compiler teams. The team lead will be responsible for hosting regular triage, checking in on members, and generally helping get things unblocked.
The Libs Impl team may want to rotate their team leads like the Compiler team has been considering.
The Libs Impl team is accountable for keeping the standard library a dependable and trustworthy platform for all Rust users by focusing on:
/library
directory of rust-lang/rust
.
rustdoc
features, such as in examples and links.The Libs Impl team is responsible for what gets merged into the standard library codebase. Even when a member of the team isn't directly involved in a given contribution, the resources produced by the team should keep it in-line with the team's expectations.
As a general principle, when there's /library
code involved and there aren't any #[stable]
attributes it's either the responsibility of the Libs Impl team, or the Libs Impl team will know whose responsibility it is.
The Libs Impl team should be consulted on changes to tooling that affect working on the standard library, such as x.py
.
The Libs Impl team should be informed of changes to other areas of the rust-lang
codebase. They should also be informed of new language features that may be worthwhile for the standard library to adopt.
The Libs Impl team should also be informed of any other Libs project groups that are spun up, because they may have implications for future Libs Impl work.
The Libs Impl team makes decisions through final comment periods, major change proposals, and regular approvals.
Members of the Libs Impl team have a broad interest in working on the standard library codebase.
Members should try participate in regular triage and design discussions affecting the standard library. These discussions will likely involve final comment periods for consensus building.
The Libs Impl team will work in:
/library
directory of rust-lang/rust
.rust-lang/libs-team
repository.rust-lang/std-dev-guide
repository.The Libs Impl team will coordinate in:
rust-lang/rust
.#t-libs
and related streams on Zulip.The Libs Impl team lead will act as a common point of contact and liaison for other teams.