Skip to content

Commit 6f74c20

Browse files
authored
Merge pull request #714 from nikomatsakis/backlog-bonanza
backlog bonanza post
2 parents c4e623c + f010032 commit 6f74c20

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
layout: post
3+
title: "Lang team Backlog Bonanza and Project Proposals"
4+
author: Nicholas Matsakis
5+
team: the lang team <https://www.rust-lang.org/governance/teams/lang>
6+
---
7+
8+
A month or two back, the lang team embarked on a new initiative that
9+
we call the "Backlog Bonanza". The idea is simple: we are holding a
10+
series of meetings in which we go through every pending RFC, one by
11+
one, and try to reach some sort of determination about what to do with
12+
it. Once we've finished that, we can start in on categorizing other
13+
forms of backlog, such as tracking issues.
14+
15+
### Possible outcomes for each RFC
16+
17+
When we look at an RFC, we're typically deciding between one of the following outcomes:
18+
19+
* **Close** the RFC, if the problem doesn't seem like high priority at the moment, or the solution seems quite far from what we would want.
20+
* Close, but **suggest a [project proposal]**, if we think that the we might like to see the problem solved, but we aren't sure if the RFC has the design right, or we're not sure who would be a good liaison.
21+
* **Merge** the RFC, if we think the RFC basically nailed it and we have a lang team liaison in mind.
22+
23+
[project proposal]: https://lang-team.rust-lang.org/proposing_a_project.html
24+
25+
### Wait, what is a project proposal?
26+
27+
I'm so glad you asked! The lang team is experimenting with a new
28+
process for extending the language. Instead of starting out by writing
29+
an RFC, the idea is to start with a **[project proposal]**. This is a
30+
lightweight description that you do by [opening an issue] on the
31+
[lang-team repository] using the "Project proposal" template. That
32+
will create an issue and a corresponding stream on Zulip.
33+
34+
[lang-team repository]: https://github.com/rust-lang/lang-team/
35+
[opening an issue]: https://github.com/rust-lang/lang-team/issues/new/choose
36+
37+
In our [weekly triage meetings], we go over each new project proposal
38+
and try to provide feedback. Project proposals generally result in one
39+
of a few possible outcomes:
40+
41+
* **Close**, if we feel like the idea isn't a good fit right now.
42+
* **Suggest implementing**, if we feel like the idea is simple or obvious enough that an RFC isn't really needed. In that case, folks can just write a PR and we can use the fcp process to approve the PR.
43+
* **Charter a project group**, if we feel like the idea is good, but we'd like to see the design spelled out. To do this, there has to be some lang-team liaison who wants to help see it through (though that liaison doesn't have to be a member of the team; [serving as a liaison is a good way to get more involved in the lang team][path]).
44+
45+
[weekly triage meetings]: https://lang-team.rust-lang.org/meetings.html
46+
[path]: https://blog.rust-lang.org/inside-rust/2020/07/09/lang-team-path-to-membership.html
47+
48+
### Chartering a project group
49+
50+
A "project group" is basically just a group of people working together
51+
completing some idea. Project groups are often pretty small, just 1 or 2
52+
people, though they can get significantly larger.
53+
54+
Creating a smaller project group is meant to be lightweight. We
55+
basically convert the project proposal into a charter that states the
56+
general goals and create an associated zulip stream where folks can
57+
chat. Each project also gets a tracking issue that shows up on our
58+
[lang team project board]. (For larger project groups, we can make a
59+
dedicated repo and an entry in the [Rust team repo].)
60+
61+
[recent example]: https://github.com/rust-lang/lang-team/tree/master/projects/declarative-macro-repetition-counts
62+
[Rust team repo]: https://github.com/rust-lang/team
63+
[lang team project board]: https://github.com/rust-lang/lang-team/projects/2
64+
65+
In the early stages of an idea, project groups work to draft an
66+
RFC. This RFC is then taken to the lang-team for feedback. Once the
67+
lang-team is basically happy on the direction things are going, we'll
68+
encourage the group to open the RFC on the main RFC repository, where
69+
it'll get feedback from a broader audience.
70+
71+
Once the RFC is **accepted**, the hope is that project groups stick
72+
around. If desired, the same folks can try to implement the feature
73+
(in collaboration with the compiler team) or we can find new people.
74+
But this way, as those people try to implement, they'll become a part
75+
of the same group that was designing the feature so that we can
76+
iterate more readily. The same logic applies to the other aspects of
77+
shipping a feature, most notably writing documentation.
78+
79+
### Tracking projects: the lang team project board
80+
81+
I mentioned the [lang team project board] off-hand in the previous
82+
paragraph. This is our attempt to track the ongoing efforts. It breaks
83+
down the various projects into stages, with the things that are closest
84+
to shipping coming first:
85+
86+
* **Stabilization** -- projects that we are ready to stabilize, or in
87+
the process of stabilizing.
88+
* **Evaluation** -- projects that are fully implemented but where we are
89+
seeking feedback on how well the design works.
90+
* **Implementation** -- projects that are currently working on implementation
91+
(and sometimes concurrent design iteration).
92+
* **Pending RFC** -- projects with an RFC that is pending public comment
93+
* **Design** -- projects actively iterating towards an RFC
94+
* **Shortlisted** -- project ideas that we might want to take up once we
95+
find a suitable liaison or people have enough bandwidth
96+
97+
### Ways to get involved
98+
99+
If you like, you are welcome to attend backlog bonanza meetings. They
100+
are open for anyone and take place during our [design meeting slot]
101+
most weeks. We haven't setup a very good process for announcing our
102+
design meeting schedule, though, that's something that we need to get
103+
better at.
104+
105+
[design meeting]: https://lang-team.rust-lang.org/meetings.html
106+
107+
Alternatively, if you have ideas you'd like to float, please feel free
108+
to open a [project proposal].

0 commit comments

Comments
 (0)