Skip to content

Commit 75bb5b0

Browse files
committed
propose to use the steering meeting for all manner of discussion
1 parent fd32ea2 commit 75bb5b0

File tree

3 files changed

+143
-8
lines changed

3 files changed

+143
-8
lines changed

about/steering-meeting.md

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
# Steering Meeting
2-
The compiler **steering meeting** is the place for high-level discussion and planning. The meeting
3-
takes place every three weeks -- so twice per release. There is a [thread on internals][internals]
4-
where we discuss what we will be talking about and also scheduling decisions. See [#58850] for
5-
more information. See the [compiler team calendar](../README.md#meeting-calendar) for the next
6-
scheduled meeting.
2+
3+
The compiler **steering meeting** is the place for high-level
4+
discussion and planning. The meeting takes place weekly. The topics of
5+
the meeting are selected at periodic planning meetings. See the
6+
[steering meeting procedure][proc] for more details. See [#58850] for
7+
more information.
8+
9+
[proc]: /procedures/steering-meeting.md
10+
11+
See the [compiler team calendar](../README.md#meeting-calendar) for
12+
the topics of the next scheduled meetings. There is also a [dedicated
13+
internals thread][internals].
714

815
[#58850]: https://github.com/rust-lang/rust/issues/58850
916
[internals]: https://internals.rust-lang.org/t/compiler-steering-meeting/8588
1017

11-
The steering meeting takes place on [Zulip](chat-platform.md). Look for a topic like
12-
"steering meeting YYYY-MM-DD" (with today's date, of course).
18+
The steering meeting takes place on [Zulip](chat-platform.md). Look
19+
for a topic like "steering meeting YYYY-MM-DD" (with today's date, of
20+
course).
1321

14-
There are [minutes from previous steering meetings](../minutes/steering-meeting) available in this
22+
There are [minutes from previous steering
23+
meetings](../minutes/steering-meeting) available in this
1524
repository. These minutes summarize our conversations.

procedures/steering-meeting.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# Steering meeting
2+
3+
The "steering meeting" is a weekly meeting dedicated to planning and
4+
high-level discussion. The meeting operates on a repeating schedule:
5+
6+
- Week 1: Planning
7+
- Week 2: Technical or non-technical discussion
8+
- Week 3: Technical or non-technical discussion
9+
- Week 4: Non-technical discussion
10+
11+
The first meeting of the 4-week cycle is used for **planning**. The
12+
primary purpose of this meeting is to **select the topics for the next
13+
three meetings**. The topics are selected from a set of topic
14+
proposals, which must be uploaded and available for perusal before the
15+
meeting starts. The planning meeting is also an opportunity to check
16+
on the "overall balance" of our priorities.
17+
18+
The remaining meetings are used for design or general discussion.
19+
Weeks 2 and 3 can be used for **technical** or **non-technical**
20+
discussion; it is also possible to use both weeks to discuss the same
21+
topic, if that topic is complex. **Week 4 is reserved for
22+
non-technical topics**, so as to ensure that we are keeping an eye on
23+
the overall health and functioning of the team.
24+
25+
## Announcing the schedule
26+
27+
After each planning meeting, the topics for the next three weeks will
28+
be posted on the README.md of the main repository and also sent a
29+
dedicated internals thread.
30+
31+
## Examples of good candidates for discussing at the steering meeting
32+
33+
Here are some examples of possible technical topics that would be
34+
suitable for the steering meeting:
35+
36+
- A working group has an idea to refactor the HIR to make some part of their
37+
job easier. They have sketched out a proposal and would like feedback.
38+
- Someone has encountered a problem that is really hard to solve with
39+
the existing data structures. They would like feedback on a good
40+
solution to their problem.
41+
- Someone has done major refactoring work on a PR and they would like
42+
to be able to explain the work they did and request review.
43+
44+
Steering meetings are also a good place to discuss other kinds of proposals:
45+
46+
- A proposal to move some part of the compiler into an out-of-tree crate.
47+
- A proposal to start a new working group.
48+
49+
Note that a steering meeting is **not** required to create a new
50+
working group or an out-of-tree crate, but it can be useful if the
51+
proposal is complex or controversial, and you would like a dedicated
52+
time to talk out the plans in more detail.
53+
54+
## Criteria for selection
55+
56+
When deciding the topics for upcoming meetings, we must balance a number of things:
57+
58+
- We don't want to spend time on design work unless there are known
59+
people who will implement it and support it.
60+
- We don't want to take on "too many" tasks at once, even if there *are* people to
61+
implement them.
62+
- We also don't want to have active projects that will be "stepping on each others' toes", changing the same set of code in deep ways.
63+
64+
## Adding a proposal
65+
66+
Proposals can be added by opening a PR and adding a new file into the
67+
[proposals] directory. The file should use the [proposal
68+
template][template], but renamed to a suggestive title. **This format
69+
is meant to be lightweight:** Proposals are generally not expected to
70+
be a lot of work to produce.
71+
72+
[proposals]: /proposals
73+
[template]: /proposals/_template.md
74+
75+
### Expectations for a technical proposal
76+
77+
Technical proposals in particular should include enough detail that
78+
those experienced with the compiler can generally understand the
79+
plan. We should be able to figure out roughly how much work this idea
80+
would be to implement and which people would be most important to have
81+
in the discussion.
82+
83+
For example, it would not be enough to say "experiment with a new
84+
hybrid bitfield format for spans" by itself. It is also not enough to
85+
just describe the format. It *would* be enough to describe the format
86+
and try to list out key parts of the compiler that would have to be
87+
changed, and what complications might arise.
88+
89+
For larger designs, it's a good idea to come with an initial proposal
90+
early on that sketches out the shape. You can then come back with more
91+
detailed proposals as the work proceeds.
92+
93+
### Expectations for a non-technical proposal
94+
95+
**The requirements for non-technical proposals are somewhat looser.** A
96+
few sentences or paragraphs may well suffice, if it is sufficient to
97+
understand the aims of the discussion.

proposals/_template.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
- **Title:** What is the title of your idea?
2+
- **Estimate:** Will this take 1 or 2 meetings?
3+
- **Type:** Is this technical or non-technical?
4+
5+
# Summary
6+
7+
Summarize briefly the high-level ideas. This should just be a few
8+
bullet points, ideally.
9+
10+
# Motivation
11+
12+
What are the goals of this change? What problem are you trying to solve?
13+
14+
# Details
15+
16+
Outline the proposal you have in mind -- or, if you are coming with a
17+
problem that you don't know how to solve, then outline the reasons
18+
that it is hard (i.e., what did you try, and why didn't it work?).
19+
20+
# Challenges
21+
22+
What are the bits that you expect to be particularly hard?
23+
24+
# Key design questions
25+
26+
List out the key design questions. What are the places where there are
27+
choices to be made? Where would you particularly like feedback?
28+
29+

0 commit comments

Comments
 (0)