Proposals, Approvals and Stabilization

It is very common to need to gather feedback and approval when contributing to rustdoc, either for permission to proceed with an experiment or refactoring, or when stabilizing a feature. This document aims to summarise the various processes that the rustdoc team has for making approval decisions and when each should be used.

Approvals

There are two mechanisms that the team can use to approve a proposal (not all approval mechanisms are suitable for each method of making a proposal - see below):

Proposals

There are three ways to propose a change to the rustdoc team. The appropriate choice depends on the nature of the proposal, described below.

When are FCPs/RFCs required?

An FCP will be needed for any stabilization of small user-facing changes, like UI/UX changes in the GUI web interface, new command-line arguments, new attributes, etc. However, if the change is considered too big/important, an RFC will need to be written and approved before the change will be accepted.

When starting an FCP, make sure only the relevant subteam is labeled on the issue/PR, to avoid pinging people with changes they aren't interested in.

What happens if someone makes a contribution that requires an approval and doesn't have one?

If the approval required for the contribution requires an RFC, then the contribution should be closed or marked as blocked, with a request to create an RFC first. If approval of a PR is acceptable for the specific contribution (see below), then the approval process can begin.

Can I work on code experimentally before a approval is gained?

Of course! You are free to work on PRs or write code. But those PRs should be marked as experimental and they should not land, nor should anyone be expected to review them (unless folks want to).

What makes a good proposal?

A good proposal will address the following: