@@ -4,42 +4,59 @@ for permission to proceed with an experiment or refactoring, or when stabilizing
4
4
document aims to summarise the various processes that the rustdoc team has for making approval
5
5
decisions and when each should be used.
6
6
7
- ## Approvals
8
- There are two mechanisms that the team can use to approve a proposal (not all approval mechanisms
9
- are suitable for each method of making a proposal - see below):
10
7
11
- - r+
12
- - A proposal (an RFC or an FCP) is r+'d when it is approved to be merged.
13
- - r+ can only be used to approve a PR.
14
- - FCP
15
- - A final comment period will require sign-off from a majority (all members minus 2)
16
- of the rustdoc team to approve a proposal and then a ten day waiting period.
17
- - FCPs can be used to approve any form of proposal.
8
+ [ *r+* ] : ../compiler/reviews.html#bors
18
9
19
10
## Proposals
20
- There are three ways to propose a change to the rustdoc team. The appropriate choice depends on
11
+ There are four ways to propose a change to the rustdoc team. The appropriate choice depends on
21
12
the nature of the proposal, described below.
22
13
23
- - Open a discussion on the [ rustdoc zulip thread] .
24
- - This is the preferred way. It allows to prevent users to lose too much time implementing
14
+ - Open a discussion in the [ rustdoc Zulip channel] .
15
+ - This is the preferred way <!-- FIXME(fmease): not always tho? Just open a PR dude --> .
16
+ It allows to prevent users to lose too much time implementing
25
17
something if in the end, the team will ask major changes or even refuse it. After the
26
18
discussion, if accepted and depending on the change, an RFC or a PR will be the next step.
19
+ - <!-- FIXME(fmease): Clarify what "approval" means. Namely the approvals are casual,
20
+ "non-binding". >=1 endorsements is fine/usual -->
27
21
- Request For Comments (RFC)
28
- - RFCs are pull requests to the [ ` rust-lang/rfcs ` ] [ rfcs ] repository and are a heavy-weight
22
+ - RFCs are pull requests to the [ ` rust-lang/rfcs ` ] repository and are a heavy-weight
29
23
proposal mechanism, reserved for significant changes.
30
24
- RFC proposals can only be approved by * FCPs* .
25
+ - <!-- FIXME(fmease): Or mention the "r+ after FCP" topic from above here instead -->
31
26
- Pull Request (PR)
32
- - Opening a pull request on the [ ` rust-lang/rust ` ] [ rust ] repository is a lightweight
27
+ - Opening a pull request on the [ ` rust-lang/rust ` ] repository is a lightweight
33
28
mechanism suitable for most proposals. This is preferred in cases such as stabilization
34
29
of a rustdoc flag or addition of a new target.
35
30
- PR proposals can be approved by * FCPs* or * r+* . See * When are FCPs/RFCs required?*
36
31
section below when * r+* isn't sufficient alone.
37
32
- Issues
38
- - Opening an issue on the [ ` rust-lang/rust ` ] [ rust ] repository are also a good starting
33
+ - Opening an issue in the [ ` rust-lang/rust ` ] repository is also a good starting
39
34
point if you don't know which of the previous ways is the best fit.
35
+ - <!-- FIXME(fmease): Clarify that there's no process for approvals for
36
+ GH issues; moreover mention that we usually don't FCP issue proposals but
37
+ instead the corresponding PR -->
38
+
39
+ [ rustdoc Zulip channel ] : https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc
40
+ [ `rust-lang/rust` ] : https://github.com/rust-lang/rust
41
+ [ `rust-lang/rfcs` ] : https://github.com/rust-lang/rfcs
40
42
41
- [ rustdoc zulip thread ] : https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc
42
- [ rust ] : https://github.com/rust-lang/rust
43
+ ## Approvals
44
+ There are two mechanisms that the team can use to approve a [ proposal] ( #proposals ) . (not all approval mechanisms
45
+ are suitable for each method of making a proposal -- [ see below] ( #proposals ) ):
46
+
47
+ - [ * r+* ] <!-- or GH approval or merge -->
48
+ - A proposal is * r+* 'd when it is approved to be merged.
49
+ - * r+* can only be used to approve a PR.
50
+ - <!-- FIXME(fmease): *somewhere* I want to clarify *who* is in charge of the r+
51
+ (namely any team member(s) but usually PR assignee(s)) -->
52
+ - <!-- FIXME(fmease): r-l/r isn't the only repo (e.g., dev guide, forge, rustdoc-json-types, rfcs) -->
53
+ - FCP
54
+ - A final comment period will require sign-off from a majority (all members minus 2)
55
+ of the rustdoc team to approve a proposal and then a ten day waiting period.
56
+ - FCPs can be used to approve any form of proposal.
57
+ - <!-- FIXME(fmease): Somewhere I want to clarify that after an FCP, in r-l/r
58
+ a separate r+ is still necessary by someone / a GH approval in other repos;
59
+ also I want to mention somewhere that any team is allowed to merge an FCP'ed RFC -->
43
60
44
61
### When are FCPs/RFCs required?
45
62
@@ -48,6 +65,9 @@ the GUI web interface, new command-line arguments, new attributes, etc. However,
48
65
is considered too big/important, an RFC will need to be written and approved before the change
49
66
will be accepted.
50
67
68
+ <!-- FIXME(fmease): ^^^ Tweak phrasing. The stabilization of an already-RFC'ed feature
69
+ always(?) requires an FCP (and doesn't need another RFC :P) -->
70
+
51
71
When starting an FCP, make sure only the relevant subteam is labeled on the issue/PR, to avoid
52
72
pinging people with changes they aren't interested in.
53
73
@@ -56,11 +76,15 @@ If the approval required for the contribution requires an RFC, then the contribu
56
76
should be closed or marked as blocked, with a request to create an RFC first. If approval of
57
77
a PR is acceptable for the specific contribution (see below), then the approval process can begin.
58
78
59
- ### Can I work on code experimentally before a approval is gained?
79
+ <!-- FIXME: Mention S-blocked -->
80
+
81
+ ### Can I work on code experimentally before an approval is gained?
60
82
Of course! You are free to work on PRs or write code. But those PRs should be marked as
61
83
experimental and they should not land, nor should anyone be expected to review them (unless
62
84
folks want to).
63
85
86
+ <!-- FIXME: Mention S-experimental -->
87
+
64
88
## What makes a good proposal?
65
89
A good proposal will address the following:
66
90
@@ -74,7 +98,6 @@ A good proposal will address the following:
74
98
* ** Alternatives, concerns, and key decisions:** Were there any alternatives considered? If so, why
75
99
did you pick this design?
76
100
77
- [ rfcs ] : https://github.com/rust-lang/rfcs
78
101
[ Haddock ] : https://haskell-haddock.readthedocs.io/latest/
79
102
[ Wikipedia ] : https://www.wikipedia.org/
80
103
[ Racket ] : https://docs.racket-lang.org/
0 commit comments