Skip to content
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

Add team policy document #176

Merged
merged 43 commits into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
77fc18b
Add initial team policy document
yaahc Dec 1, 2022
32ecf6a
fix broken citations
yaahc Dec 1, 2022
c63c3d4
update policy doc and split out charter
yaahc Dec 21, 2022
4297144
add missing links
yaahc Dec 21, 2022
14fd9f6
leave roles in the team-policy rather than charter
yaahc Dec 21, 2022
2beefa2
expand todo on requesting invites
yaahc Dec 21, 2022
ad5c7f9
switch to bullets for links at top of doc
yaahc Dec 21, 2022
2b5fb8f
add everytimezone link
yaahc Dec 21, 2022
094c741
switch link to more intuitive location
yaahc Dec 21, 2022
8b7f95e
place operational roles section before meeting section so it can back…
yaahc Dec 21, 2022
b4d6b5b
add bullet points to roles section
yaahc Dec 21, 2022
e0c8a42
hyperlink github names
yaahc Dec 21, 2022
407c94c
remove some redundant language
yaahc Dec 21, 2022
e67931f
improve language
yaahc Dec 21, 2022
e02e90b
Update team-policy.md
yaahc Dec 21, 2022
b0c4f8e
remove redundant header
yaahc Dec 21, 2022
80e541e
Merge branch 'style-policy' of https://github.com/rust-lang/fmt-rfcs …
yaahc Dec 21, 2022
48f1e6e
Update charter.md
yaahc Dec 21, 2022
bcfb47b
Update charter.md
yaahc Dec 21, 2022
517e482
Fix typo
joshtriplett Jan 3, 2023
17bf597
Update team-policy.md
yaahc Jan 4, 2023
cfc72e4
Update team-policy.md
yaahc Jan 4, 2023
85b6c61
Update team-policy.md
yaahc Jan 4, 2023
473c7f9
Update team-policy.md
yaahc Jan 4, 2023
9db701b
move important policy to the top
yaahc Jan 4, 2023
3f3399d
Update charter.md
yaahc Jan 5, 2023
ff74ae2
add new policy from 2023-01-11 meeting action items
yaahc Jan 18, 2023
5a52fc7
address zulip contact and be a little extra in the process
yaahc Jan 26, 2023
23cf512
Update charter.md
yaahc Jan 26, 2023
e89fd3e
Update charter.md
yaahc Jan 26, 2023
9c598b1
move membership details elsewhere
yaahc Jan 26, 2023
1b3a4f5
Update charter.md
yaahc Jan 26, 2023
6b6c22a
Update team-policy.md
yaahc Jan 26, 2023
c236db4
add charter link
yaahc Jan 26, 2023
65a0437
Update team-policy.md
yaahc Jan 26, 2023
28e8c6e
remove unused links
yaahc Jan 26, 2023
2bb813d
remove changes to readme
yaahc Jan 26, 2023
9cf35e8
remove meeting link pending further discussion
yaahc Jan 26, 2023
8eddad2
secretary to scribe
yaahc Jan 26, 2023
8e7be8e
remove hackmd link
yaahc Jan 26, 2023
d1ca970
Update team-policy.md
yaahc Jul 6, 2023
d0cf617
Update team-policy.md
yaahc Jul 6, 2023
ca7c74b
Update team-policy.md
yaahc Jul 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions charter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Style Team

## Aims: Evolving the Rust Style over time

1. Selecting styling for new Rust constructs
yaahc marked this conversation as resolved.
Show resolved Hide resolved
1. Evolving the existing style over the course of Rust editions (without breaking backwards compatibility)
1. Defining mechanisms to evolve the Rust style while taking backwards compatibility into account, such as via Rust editions or similar mechanisms
yaahc marked this conversation as resolved.
Show resolved Hide resolved

## Domains

1. [Style Guide]
yaahc marked this conversation as resolved.
Show resolved Hide resolved
1. [T-style team repo](https://github.com/rust-lang/fmt-rfcs/)
1. [#T-style] and #T-style/private zulip streams
1. `rust-lang` issues with the `T-style` or `T-style-nominated` labels
yaahc marked this conversation as resolved.
Show resolved Hide resolved

## Membership

* Caleb Cartwright ([@calebcartwright](https://github.com/calebcartwright))
* Jane Losare-Lusby ([@yaahc](https://github.com/yaahc))
* Josh Triplett ([@joshtriplett](https://github.com/joshtriplett))
* Michael Goulet ([@compiler-errors](https://github.com/compiler-errors))
yaahc marked this conversation as resolved.
Show resolved Hide resolved

The Rust style team shall have at least 3 members and at most 8. If the team has fewer than 3 members it shall seek new members as its primary focus.

Members of the style team are nominated by existing members. All existing members of the team must affirmatively agree to the addition of a member, with zero objections; if there is any objection to a nomination, the new member will not be added. In addition, the team lead or another team member will check with the moderation team regarding any person nominated for membership, to provide an avenue for awareness of concerns or red flags.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

### Becoming a member of T-Style

Contributors who believe they'd be a good fit for the style team are encouraged to request an invite to the team. The style team will consider all such requests as as a proposal to become a team member and provide clear feedback to the contributor if there are any objections so that any issues may be resolved and the contributor can apply again in the future. The style team will not consider having previously been rejected as a basis for future rejections.
yaahc marked this conversation as resolved.
Show resolved Hide resolved
yaahc marked this conversation as resolved.
Show resolved Hide resolved

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Team Member Characteristics
The style team is committed to building a diverse and capable team comprising individuals who possess the following characteristics:
1. Representation and Affiliation: The style team values representation from various parts of the Rust organization and ecosystem. We aim to include members affiliated with different areas of the rust ecosystem as best as possible, to ensure a well-rounded perspective.
2. Familiarity with Rust: Prospective members should have a general familiarity with Rust, including a solid understanding of its constructs, how they interact, and the overall language ecosystem. This knowledge is crucial for making informed decisions regarding style and formatting guidelines.
3. Interest in Rust Style: Members should have a genuine interest in Rust style and a willingness to contribute to the team's efforts. It is important that members are not solely focused on advocating for their personal style preferences but are dedicated to promoting a collective and consensus-based approach.
4. Effective Collaboration Skills: Successful candidates will have a proven track record of effective collaboration, showcasing their ability to work together with others, consider diverse perspectives, navigate conflicts, and address emotional challenges in a constructive manner.
5. Familiarity with Rust Project: Familiarity with the Rust project's structure, culture, and expectations upon maintainers is desirable. This knowledge helps members navigate the ecosystem more effectively and align their style decisions with the project's broader goals.
6. Consent to Principles and Aims: Members are expected to align with and consent to the principles and aims of the style team, as outlined in the Rust style guide principles (https://github.com/rust-lang/rust/blob/master/src/doc/style-guide/src/principles.md) and the style team's charter (https://github.com/rust-lang/style-team/blob/style-policy/charter.md).
7. Pragmatic Approach: Members should prioritize pragmatism over dogmatism, even when dealing with style and formatting aspects they feel particularly strongly about. The ability to make practical and reasonable decisions that benefit the community at large is essential.
8. Openness to Change and Learning: Members should demonstrate a willingness to seek out and receive new information, be open to changing their opinions based on evidence and rationale, and adapt their perspectives accordingly.
9. Effective Communication in Charged Conversations: The ability to navigate charged conversations and respond constructively and empathetically to evocative commentary is important. Members should be able to handle passionate discussions about code style, recognize miscommunication and misunderstandings, and promote empathy and listening when discussing matters within the purview of the style team.
10. Interest in Language and Syntax: Members should show interest in tracking changes to the Rust language and syntax. Keeping up-to-date with the latest developments helps inform style decisions

[Style Guide]: https://github.com/rust-lang/fmt-rfcs/blob/master/guide/guide.md
[#T-style]: https://rust-lang.zulipchat.com/#narrow/stream/346005-t-style
138 changes: 138 additions & 0 deletions team-policy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# Style Team Policy Document

This is a living document tracking the active policies of the style team. It is intended to fill a similar role to the books that many[^1] teams[^2] maintain[^3] independently[^4] with the intent that eventually these can be integrated into a central policy repository for all teams in the rust-lang organization.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

* **Original RFC**: https://rust-lang.github.io/rfcs/3309-style-team.html
* **Charter**: TODO
yaahc marked this conversation as resolved.
Show resolved Hide resolved

yaahc marked this conversation as resolved.
Show resolved Hide resolved
## Operational Roles

The style team has various operational roles to delegate releated and ongoing work to specific individuals, to clarify on our operations, and to coordinate sharing feedback with the members in those roles to enable iterative self improvement.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

### Operational Lead

* Current Holder: [@calebcartwright](https://github.com/calebcartwright)
* Next Feedback Date: TODO

In order to stay in touch with where we want to be heading in the future, we need leadership. A team leader is paying attention to the team’s operations in relation to the team’s aim. What needs to be done, who agreed to do it. What is in the future to decide?

yaahc marked this conversation as resolved.
Show resolved Hide resolved
Responsibilities:

* Pays attention to the operation of the team
* Pays attention to the team members
* Reports wider context to the team

### Facilitator

* Current Holder: [@yaahc](https://github.com/yaahc)
* Next Feedback Date: Wednesday 2023-02-01

In order to be present with each other, we need a good facilitator . Facilitators run meetings according to the format of meetings and decision making adopted by the group. Leader and facilitator are separate roles because facilitation and overseeing operations are different skill sets. They can be held by the same individual.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

Responsibilities:

* Facilitates team meetings.
* Pays attention to equivalence[^5] during meetings.
* Supports planning of the agenda.
* Distinguishes facilitator voice from team member voice.

### Secretary

* Current Holder: [@calebcartwright](https://github.com/calebcartwright)
* Next Feedback Date: TODO

In order to manage continuity with the team’s past, we need to have written records. The secretary manages the notes during the meeting, makes sure the minutes are distributed and accessible. The secretary also manages the records of the team and is the interpreter of policies.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

Responsibilities:

* Makes sure meeting minutes are taken, approved, and stored.
* Keeps track of all documents of the team.
* Interprets the meeting minutes in case of disagreement.
* Supports planning the agenda from the backlog.
* Tracking when policies and roles are due for review.

## Meetings

The style team meets weekly on wednesdays at 12:30pm PST [(everytimezone link)](https://everytimezone.com/s/3f88a253) for a weekly video sync. Agendas are posted in the [#T-style] zulip stream.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

Unless otherwise noted, all of our meetings are public and open for anyone to attend. You will find the timing and event details on our [style team calendar](https://calendar.google.com/calendar/embed?src=d0564ed914a41cf4915bd5ebe6e2e4ec0ee1293fdc1d09d6f5bdb27d4f91c083%40group.calendar.google.com&ctz=America%2FLos_Angeles). We publish notes and minutes in written form in this github repository.
calebcartwright marked this conversation as resolved.
Show resolved Hide resolved

### Agenda, Backlog, and Minutes

The style team stores it's agendas, backlog, and meeting minutes in a single live [hackmd document](https://hackmd.io/@yaah/B1GZrzv4j) (rotating as necessary when the documents reach their length limit).
yaahc marked this conversation as resolved.
Show resolved Hide resolved

The agenda should be prepared in advanced of each meeting by the facilitator with the assistance of the secretary and the lead. The lead is responsible for looking forward and adding agenda items such as new requests from other teams and users or new priorities and goals. The secretary is responsible for looking backwards and adding agenda items from existing work such as items from the backlog or policies that are due for review. The agenda proposal is then presented at the beginning of each meeting by the facilitator for the rest of the team to consent or object too.
calebcartwright marked this conversation as resolved.
Show resolved Hide resolved

yaahc marked this conversation as resolved.
Show resolved Hide resolved
#### Inform / Explore / Decide agenda item classification

Agenda items are labeled according to their desired outcome. There are three possible outcomes for any given agenda item, inform, explore, or decide. Each of these outcomes builds upon the previous outcomes. In order to explore an item it must first be understood, and in order to make a decision one must both understand and explore the item first. Inform is used for things such as status updates, and usually involves first a report, followed by a round of clarifying questions. Explore is used for situations where one would like feedback on a potential issue or proposal, and usually involves reaction rounds. Decide is used when the team must reach a decision as a group, and it is usually achieved via a consensus round.

We identify the desired outcome in advanced to avoid aimless discussions with unclear goals. The desired outcome can change during discussion as new information becomes available. It is the facilitators responsibility to notice when this happens and formally make the change in the desired outcome with consent from the rest of the team. Extra clarity can be gained if, for every agenda item, we end by measuring whether we have achieved the desired outcome. Facilitators can make it a habit to pause before moving to a new agenda item by assessing whether the desired outcome has been achieved and by asking the secretary to read out loud what has been written in the notes.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

The agenda backlog and minutes document is structured according to the following template:

```md
# T-style Minutes

Meeting Link: https://meet.jit.si/t-style-style-team-task-force
yaahc marked this conversation as resolved.
Show resolved Hide resolved

## Action Items

### Pending

* owner: bullet point list of items that are in progress and assigned to a specific person

### Completed

- [ ] owner: check list of items that are completed or assumed to be complete
- [x] owner: items are checked off once they've been reviewed in a meeting, confirmed complete, and given any relevant final status updates.
- [x] owner: after a meeting the items that were checked off are moved into the `#### Completed Action Items` section of the meeting they were reviewed in by the secretary

yaahc marked this conversation as resolved.
Show resolved Hide resolved
## Backlog

* Bullet point list of items that have not been started or assigned yet

## Next Meeting Date

### Attendance

### Agenda

* (inform) bullet point list of proposed agenda items (labeled either inform, explore, or decide)
* Meeting Check-out

### Minutes

#### Individual Agenda Items

Notes related to the given agenda item

#### Completed Action Items

## Previous Meeting Dates <repeats>

```
### Meeting Check-out

The style team wraps up the content part of our meetings 5-10 minutes before team members have to leave to make room for regular meeting evaluations. Meeting evaluations are an integral part of every meeting. We end the meeting with one or two rounds on:

* “What worked well in the meeting?”
* “What could be improved in future meetings?”
* “Is there anything you are carrying out of the meeting that you’d like to get off your chest now?”

Meeting evaluations are an opportunity to learn from our meetings. We can either talk about content, process, or interpersonal dynamics. We utilize meeting evaluations to help ourselves inhabit a growth mindset. Our goal is to have meetings which are well-run, refreshing, connecting, and energizing. We achieve this goal by giving space for people to speak up about both the positive and negative aspects of how we're working together so that we can prioritize continuous improvement and positive connections.

## Style Guide Evolution

The Rust style guide will generally match the latest version of the Rust style; the style team does not plan to maintain multiple branches of the style guide for different editions, in part because formatting for new constructs will apply to any edition supporting those constructs.

Whenever possible, style decisions should be made before a new construct is stabilized. However, style decisions shall not be considered a blocker for stabilization.
yaahc marked this conversation as resolved.
Show resolved Hide resolved

[Style Guide]: https://github.com/rust-lang/fmt-rfcs/blob/master/guide/guide.md
yaahc marked this conversation as resolved.
Show resolved Hide resolved
[#T-style]: https://rust-lang.zulipchat.com/#narrow/stream/346005-t-style
yaahc marked this conversation as resolved.
Show resolved Hide resolved

[^1]: https://rust-lang.github.io/compiler-team/
[^2]: https://lang-team.rust-lang.org/
[^3]: https://std-dev-guide.rust-lang.org/
[^4]: https://rust-lang.github.io/types-team/
[^5]: Equality, making sure everyone's voices and feedback are receiving equitable attention.