-
Notifications
You must be signed in to change notification settings - Fork 36
Add documentation about the libs teams and membership. #28
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
Changes from all commits
7c499e2
a2f4d46
9a85a56
ecacfde
929ec76
2187a1f
5ae297e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Meetings | ||
|
||
Currently, both the Library Team and the Library API Team have a weekly hour-long meeting. | ||
Both meetings are open to non-members by default, although some might be (partially) private when agenda topics require that. | ||
|
||
The meetings are held as video calls through [Jitsi](https://meet.jit.si/), but everyone is welcome to join without video or even audio. | ||
If you want to participate in meeting discussions through text, you can do so through Jitsi's chat function. | ||
|
||
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. | ||
|
||
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), | ||
which will include all relevant issues and PRs, such as those tagged with `I-nominated` or `S-waiting-on-team`. | ||
|
||
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 | ||
and mark it as `I-nominated` and `T-libs` or `T-libs-api`. Or just leave a message in the Zulip channel. | ||
|
||
All the meetings, including those of the library working groups, can be found on our Google Calendar: | ||
|
||
<iframe width="100%" height="500px" src="https://calendar.google.com/calendar/embed?src=9kuu8evq4eh6uacm262k0phri8%40group.calendar.google.com"></iframe> | ||
|
||
[ICS link](https://calendar.google.com/calendar/ical/9kuu8evq4eh6uacm262k0phri8%40group.calendar.google.com/public/basic.ics) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# Membership | ||
|
||
## Library Contributors | ||
|
||
Membership to Library Contributors can be offered by the Library Team once | ||
a regular contributor has made a number of significant contributions over some period of time, | ||
and has shown to have a good judgement on what changes are acceptable. | ||
|
||
## The Library Team and Library API Team | ||
|
||
The Library Team and Library API Team pick their own members, | ||
although it's expected that new members come from the Library Contributors or another Rust team, | ||
and have already been involved in relevant library work. | ||
|
||
## The process | ||
|
||
In all cases, the process of adding a new members goes as follows: | ||
|
||
1. A member of the Library (API) Team proposes the addition of a contributor on our private mailing list. | ||
This proposal includes: | ||
- A short description of what this person has been working on; how they have been contributing. | ||
- A few specific examples of cases where this person clearly communicated their ideas. | ||
- A few specific examples that show this person understands what are and what aren't acceptable changes.\ | ||
Someone who makes significant contributions but usually needs to make large adjustments to their PRs might be a wonderful external contributor, | ||
but might not yet be a good match for membership with review permissions expecting to judge other contributions. | ||
2. Every single team member is asked for their input. No team member must have any objections. | ||
- Objections are ideally shared with the entire team, but may also be shared privately with the team lead or the moderation team. | ||
- Objections ideally include examples showing behavior not in line with the expectations described under step 1 | ||
(or the code of conduct). | ||
3. The team lead reaches out to the moderation team to ask if they are aware of any objections. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @rust-lang/mods How do you feel about this? This is not something we did in the past, but I think it'd be good if we do. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I personally really like the underlying idea: making it clear to existing members they are encouraged to report issues, rather than have them sulk, be curt, or quit. In general we'd appreciate if people reported inter-personal issues and let us help them solve them -- at any time, really. Having an explicit reminder they are encouraged to from time to time is an excellent way of "normalizing" this, and having this on the check-list before "forcing" confrontations between individuals is a good "last resort" check, I think. I'll check with the other mods, but I don't foresee any big issue, and have no wording tweak to suggest at present. |
||
4. Only once the team members and the moderation team agree, the new contributor is invited to join. | ||
5. If the new contributor agrees too, a PR is sent to the `team` repository to add them. | ||
6. A blog post is published in the Internals Blog with a short introduction of the new contributor. | ||
The contents of this post can be based on some of the points brought up in the email from step 1. | ||
The contents are first checked with the new contributor before it is published. |
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Reviewing | ||
|
||
Every member of the Library Team, Library API Team, and Library Contributors has 'r+ rights'. | ||
That is, the ability to approve a PR and instruct [`@bors`](https://bors.rust-lang.org/) | ||
to test and merge it into Rust nightly. | ||
|
||
If you decide to review a PR, thank you! | ||
But please keep in mind: | ||
|
||
- You are always welcome to review any PR, regardless of who it is assigned to. | ||
However, do not approve PRs unless: | ||
- 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. | ||
- You are confident in that part of the code. | ||
- You are confident it will not cause any breakage or regress performance. | ||
- It does not change the public API, including any stable promises we make in documentation, unless there's a finished FCP for the change. | ||
- For unstable API changes/additions, it can be acceptable to skip the RFC process if the design is small and the change is uncontroversial. | ||
Make sure to involve `@rust-lang/libs-api` on such changes. | ||
- 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. | ||
|
||
## High-five rotation | ||
|
||
Some of the members of the team are part of the 'high-five rotation'; | ||
the list from which the high-five bot picks reviewers to assign new PRs to. | ||
|
||
Being a member of one of the teams does not come with the expectation to be on this list. | ||
However, members of this list should be on at least one of the three library teams. | ||
|
||
If the bot assigns you a PR for which you do not have the time or expertise to review it, | ||
feel free to reassign it to someone else. | ||
To assign it to another random person picked from the high-five rotation, | ||
use `r? rust-lang/libs`. | ||
|
||
If you find yourself unable to do any reviews for an extended period of time, | ||
it might be a good idea to (temporarily) remove yourself from the list. | ||
To add or remove yourself from the list, send a PR to change the | ||
[high-five configuration file](https://github.com/rust-lang/highfive/blob/master/highfive/configs/rust-lang/rust.json). |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# The Library Team | ||
|
||
The Rust standard library and the official `rust-lang` crates are | ||
the responsibility of the Library Team. | ||
The Library team makes sure the libraries are maintained, | ||
PRs get reviewed, and issues get handled in time, | ||
although that does not mean the team members are doing all the work themselves. | ||
Many team members and other contributors are involved in this work, | ||
and the team's main task is to guide and enable that work. | ||
|
||
## The Library API Team | ||
|
||
A very critical aspect of maintaining and evolving the standard library is its stability. | ||
Unlike other crates, we can not release a new major version once in a while for backwards | ||
incompatible changes. Every version of the standard library is semver-compatible | ||
with all previous versions since Rust 1.0. | ||
|
||
This means that we have to be very careful with additions and changes to the public interface. | ||
We can deprecate things if necessary, | ||
but removing items or changing signatures is almost never an option. | ||
As a result, we are very careful with stabilizing additions to the standard library. | ||
Once something is stable, we're basically stuck with it forever. | ||
|
||
To guard the stability and prevent us from adding things we'll regret later, | ||
we have a team that specifically focuses on the public API. | ||
Every RFC and stabilization of a library addition/change goes through a FCP process | ||
in which the members of the Library API Team are asked to sign off on the change. | ||
|
||
The members of this team are not necessarily familiar with the implementation details | ||
of the standard library, but are experienced with API design and understand the details | ||
of breaking changes and how they are avoided. | ||
|
||
## The Library Contributors | ||
|
||
In addition to the two teams above, we also have a the Library Contributors, | ||
which is a somewhat more loosely defined team consisting of those who regularly contribute | ||
or review changes to the standard libraries. | ||
|
||
Many of these contributors have a specific area of expertise, | ||
for example certain data structures or a specific operating system. | ||
|
||
## Team Membership | ||
|
||
The Library Team will privately discuss potential new members for itself and Library Contributors, | ||
and extend an invitation after all members and the moderation team is on board with the potential addition. | ||
|
||
See [Membership](./membership.md) for details. | ||
|
||
### r+ permission | ||
|
||
All members of the Library Team, the Library API Team, and the Library Contributors | ||
have the permission to approve PRs, and are expected handle this with care. | ||
See [Reviewing](./reviewing.md) for details. | ||
|
||
### high-five rotation | ||
|
||
Some of the members of the team are part of the 'high-five rotation'; | ||
the list from which the high-five bot picks reviewers to assign new PRs to. | ||
|
||
Being a member of one of the teams does not come with the expectation to be on this list. | ||
However, members of this list should be on at least one of the three library teams. | ||
See [Reviewing](./reviewing.md) for details. |
Uh oh!
There was an error while loading. Please reload this page.