Skip to content

Commit c9fe0ff

Browse files
authored
Merge pull request #28 from rust-lang/team
Add documentation about the libs teams and membership.
2 parents 4422a5c + 5ae297e commit c9fe0ff

File tree

7 files changed

+161
-55
lines changed

7 files changed

+161
-55
lines changed

book.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ multilingual = false
77
src = "./src"
88

99
[build]
10-
create-missing = false
10+
create-missing = true
1111

1212
[rust]
1313
edition = "2018"
@@ -19,6 +19,6 @@ renderer = ["html"]
1919
[output.linkcheck]
2020

2121
[output.html]
22-
default-theme = "rust"
23-
git-repository-url = "https://github.com/rust-lang/std-dev-guide"
2422
git-repository-icon = "fa-github"
23+
git-repository-url = "https://github.com/rust-lang/std-dev-guide"
24+
edit-url-template = "https://github.com/rust-lang/std-dev-guide/edit/master/{path}"

src/SUMMARY.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
[Getting started](./getting-started.md)
66

7-
[Reviewer checklist](./reviewer-checklist.md)
7+
- [The library team](./team.md)
8+
- [Meetings](./meetings.md)
9+
- [Membership](./membership.md)
10+
- [Reviewing](./reviewing.md)
811

912
---
1013

src/meetings.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Meetings
2+
3+
Currently, both the Library Team and the Library API Team have a weekly hour-long meeting.
4+
Both meetings are open to non-members by default, although some might be (partially) private when agenda topics require that.
5+
6+
The meetings are held as video calls through [Jitsi](https://meet.jit.si/), but everyone is welcome to join without video or even audio.
7+
If you want to participate in meeting discussions through text, you can do so through Jitsi's chat function.
8+
9+
Meetings and their agendas are announced in the [#t-libs/meetings](https://rust-lang.zulipchat.com/#narrow/stream/259402-t-libs.2Fmeetings) channel on Zulip.
10+
11+
Agendas are generated by the [`fully-automatic-rust-libs-team-triage-meeting-agenda-generator`](https://github.com/rust-lang/libs-team/tree/main/tools/agenda-generator),
12+
which will include all relevant issues and PRs, such as those tagged with `I-nominated` or `S-waiting-on-team`.
13+
14+
If you have any specific topics you'd like to have discussed in a meeting, feel free to open an issue on the [`libs-team`](https://github.com/rust-lang/libs-team/) repository
15+
and mark it as `I-nominated` and `T-libs` or `T-libs-api`. Or just leave a message in the Zulip channel.
16+
17+
All the meetings, including those of the library working groups, can be found on our Google Calendar:
18+
19+
<iframe width="100%" height="500px" src="https://calendar.google.com/calendar/embed?src=9kuu8evq4eh6uacm262k0phri8%40group.calendar.google.com"></iframe>
20+
21+
[ICS link](https://calendar.google.com/calendar/ical/9kuu8evq4eh6uacm262k0phri8%40group.calendar.google.com/public/basic.ics)

src/membership.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Membership
2+
3+
## Library Contributors
4+
5+
Membership to Library Contributors can be offered by the Library Team once
6+
a regular contributor has made a number of significant contributions over some period of time,
7+
and has shown to have a good judgement on what changes are acceptable.
8+
9+
## The Library Team and Library API Team
10+
11+
The Library Team and Library API Team pick their own members,
12+
although it's expected that new members come from the Library Contributors or another Rust team,
13+
and have already been involved in relevant library work.
14+
15+
## The process
16+
17+
In all cases, the process of adding a new members goes as follows:
18+
19+
1. A member of the Library (API) Team proposes the addition of a contributor on our private mailing list.
20+
This proposal includes:
21+
- A short description of what this person has been working on; how they have been contributing.
22+
- A few specific examples of cases where this person clearly communicated their ideas.
23+
- A few specific examples that show this person understands what are and what aren't acceptable changes.\
24+
Someone who makes significant contributions but usually needs to make large adjustments to their PRs might be a wonderful external contributor,
25+
but might not yet be a good match for membership with review permissions expecting to judge other contributions.
26+
2. Every single team member is asked for their input. No team member must have any objections.
27+
- Objections are ideally shared with the entire team, but may also be shared privately with the team lead or the moderation team.
28+
- Objections ideally include examples showing behavior not in line with the expectations described under step 1
29+
(or the code of conduct).
30+
3. The team lead reaches out to the moderation team to ask if they are aware of any objections.
31+
4. Only once the team members and the moderation team agree, the new contributor is invited to join.
32+
5. If the new contributor agrees too, a PR is sent to the `team` repository to add them.
33+
6. A blog post is published in the Internals Blog with a short introduction of the new contributor.
34+
The contents of this post can be based on some of the points brought up in the email from step 1.
35+
The contents are first checked with the new contributor before it is published.

src/reviewer-checklist.md

Lines changed: 0 additions & 51 deletions
This file was deleted.

src/reviewing.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Reviewing
2+
3+
Every member of the Library Team, Library API Team, and Library Contributors has 'r+ rights'.
4+
That is, the ability to approve a PR and instruct [`@bors`](https://bors.rust-lang.org/)
5+
to test and merge it into Rust nightly.
6+
7+
If you decide to review a PR, thank you!
8+
But please keep in mind:
9+
10+
- You are always welcome to review any PR, regardless of who it is assigned to.
11+
However, do not approve PRs unless:
12+
- You are confident that nobody else wants to review it first. If you think someone else on the team would be a better person to review it, feel free to reassign it to them.
13+
- You are confident in that part of the code.
14+
- You are confident it will not cause any breakage or regress performance.
15+
- It does not change the public API, including any stable promises we make in documentation, unless there's a finished FCP for the change.
16+
- For unstable API changes/additions, it can be acceptable to skip the RFC process if the design is small and the change is uncontroversial.
17+
Make sure to involve `@rust-lang/libs-api` on such changes.
18+
- Always be polite when reviewing: you are a representative of the Rust project, so it is expected that you will go above and beyond when it comes to the Code of Conduct.
19+
20+
## High-five rotation
21+
22+
Some of the members of the team are part of the 'high-five rotation';
23+
the list from which the high-five bot picks reviewers to assign new PRs to.
24+
25+
Being a member of one of the teams does not come with the expectation to be on this list.
26+
However, members of this list should be on at least one of the three library teams.
27+
28+
If the bot assigns you a PR for which you do not have the time or expertise to review it,
29+
feel free to reassign it to someone else.
30+
To assign it to another random person picked from the high-five rotation,
31+
use `r? rust-lang/libs`.
32+
33+
If you find yourself unable to do any reviews for an extended period of time,
34+
it might be a good idea to (temporarily) remove yourself from the list.
35+
To add or remove yourself from the list, send a PR to change the
36+
[high-five configuration file](https://github.com/rust-lang/highfive/blob/master/highfive/configs/rust-lang/rust.json).

src/team.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# The Library Team
2+
3+
The Rust standard library and the official `rust-lang` crates are
4+
the responsibility of the Library Team.
5+
The Library team makes sure the libraries are maintained,
6+
PRs get reviewed, and issues get handled in time,
7+
although that does not mean the team members are doing all the work themselves.
8+
Many team members and other contributors are involved in this work,
9+
and the team's main task is to guide and enable that work.
10+
11+
## The Library API Team
12+
13+
A very critical aspect of maintaining and evolving the standard library is its stability.
14+
Unlike other crates, we can not release a new major version once in a while for backwards
15+
incompatible changes. Every version of the standard library is semver-compatible
16+
with all previous versions since Rust 1.0.
17+
18+
This means that we have to be very careful with additions and changes to the public interface.
19+
We can deprecate things if necessary,
20+
but removing items or changing signatures is almost never an option.
21+
As a result, we are very careful with stabilizing additions to the standard library.
22+
Once something is stable, we're basically stuck with it forever.
23+
24+
To guard the stability and prevent us from adding things we'll regret later,
25+
we have a team that specifically focuses on the public API.
26+
Every RFC and stabilization of a library addition/change goes through a FCP process
27+
in which the members of the Library API Team are asked to sign off on the change.
28+
29+
The members of this team are not necessarily familiar with the implementation details
30+
of the standard library, but are experienced with API design and understand the details
31+
of breaking changes and how they are avoided.
32+
33+
## The Library Contributors
34+
35+
In addition to the two teams above, we also have a the Library Contributors,
36+
which is a somewhat more loosely defined team consisting of those who regularly contribute
37+
or review changes to the standard libraries.
38+
39+
Many of these contributors have a specific area of expertise,
40+
for example certain data structures or a specific operating system.
41+
42+
## Team Membership
43+
44+
The Library Team will privately discuss potential new members for itself and Library Contributors,
45+
and extend an invitation after all members and the moderation team is on board with the potential addition.
46+
47+
See [Membership](./membership.md) for details.
48+
49+
### r+ permission
50+
51+
All members of the Library Team, the Library API Team, and the Library Contributors
52+
have the permission to approve PRs, and are expected handle this with care.
53+
See [Reviewing](./reviewing.md) for details.
54+
55+
### high-five rotation
56+
57+
Some of the members of the team are part of the 'high-five rotation';
58+
the list from which the high-five bot picks reviewers to assign new PRs to.
59+
60+
Being a member of one of the teams does not come with the expectation to be on this list.
61+
However, members of this list should be on at least one of the three library teams.
62+
See [Reviewing](./reviewing.md) for details.

0 commit comments

Comments
 (0)