-
Notifications
You must be signed in to change notification settings - Fork 15.1k
Document the community RFC process #116386
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
base: main
Are you sure you want to change the base?
Changes from 2 commits
e7aa3b7
ea449e0
c657da7
1eacf28
f221390
5ed61fb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| ================================= | ||
| Request For Comment (RFC) process | ||
| ================================= | ||
|
|
||
| .. contents:: | ||
| :local: | ||
| :depth: 1 | ||
|
|
||
| Introduction | ||
| ============ | ||
| Substantive changes to LLVM projects need to be acceptable to the wider | ||
| community, which requires gaining community consensus to adopt the changes. | ||
| This is done by posting an RFC and obtaining feedback about the proposal. | ||
|
|
||
| Process | ||
| ======= | ||
|
|
||
| Writing an RFC | ||
| -------------- | ||
| The process begins with writing a proposal for the changes you'd like to see | ||
| made. The proposal should include: | ||
|
|
||
| * a high-level overview of what changes are being proposed, | ||
| * information detailing the motivation for why the changes are being proposed, | ||
| * detailed information the proposed changes and how they impact different parts | ||
AaronBallman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| of the project, and | ||
| * a list of any open questions the community should explicitly address. | ||
AaronBallman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Once the contents of the proposal are ready, the proposal should be posted to | ||
AaronBallman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| the appropriate forum on `Discourse <https://discourse.llvm.org/>`_. | ||
|
|
||
| Feedback Period | ||
| --------------- | ||
| Once the RFC is posted, the community will provide feedback on the proposal. | ||
| The feedback period is a collaborative effort between the community and the | ||
| proposal authors. Authors should take the community's feedback into | ||
| consideration and edit the original post to incorporate relevant changes they | ||
| agree to. Edits should be made such that it's clear what has changed. Editing | ||
| the original post makes it easier for the community to understand the proposal | ||
| without having to read every comment on the thread, though this can make | ||
| reading the comment thread somewhat more difficult as comments may be referring | ||
| to words no longer in the proposal. | ||
|
|
||
| There is not a set time limit to the feedback period; it lasts as long as | ||
| discussion is actively continuing on the proposal. | ||
|
|
||
| Trivial Acceptance or Rejection | ||
| ------------------------------- | ||
| If the proposal has obvious consensus (for or against), a maintainer for each | ||
| of the impacted parts of the project will explicitly accept or reject the RFC | ||
| by leaving a comment stating their decision and possibly detailing any | ||
| provisions for their acceptance. Additionally, the original post should be | ||
AaronBallman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| edited to explicitly say what consensus was called and link to the comment | ||
| stating that decision. Including that information in the post makes it more | ||
| clear to everyone what state the proposal is in. Overall consensus is | ||
| determined once all impacted parts of the project have accepted the proposal. | ||
AaronBallman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Low Engagement Level | ||
| ~~~~~~~~~~~~~~~~~~~~ | ||
| If a proposal gets little or no engagement by the community, it is a sign that | ||
AaronBallman marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| the proposal does not have consensus and is rejected. Engagement means comments | ||
| on the proposal. If there are few or no comments but the are a lot of people | ||
| pressing the like/heart button on the post, maintainers can make a value | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since you wrote this, now we have area teams who are formally responsible for reviewing RFCs to determine if they are wedged. I'd say it's up to the relevant team to make the determination between "no objections, this seems like something obviously good in our judgement, let's do it" or "it seems like there's no interest, and the costs are significant, so we shouldn't do it, unless there's further interest." |
||
| judgement on whether to accept or reject. | ||
|
|
||
| After Acceptance | ||
| ---------------- | ||
| Once an RFC has been accepted, the authors may begin merging pull requests | ||
AaronBallman marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| related to the proposal. The review process may identify necessary changes to | ||
| the proposal. Minor changes to the proposal do not require an additional RFC. | ||
| However, if the proposal changes significantly in a material way, the authors | ||
| may be asked to run another RFC. | ||
|
|
||
| After Rejection | ||
| --------------- | ||
| Any rejected RFC can be brought back to the community as a new RFC in the | ||
| future. The new RFC should either clearly identify new information that may | ||
| change the community's perception of the proposal and/or explicitly address the | ||
| concerns previously raised by the community. It is helpful to explicitly call | ||
| out such information in the subsequent RFC. | ||
Uh oh!
There was an error while loading. Please reload this page.