Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
RFC Process #27
RFC Process #27
Changes from 19 commits
a6a90bd
64aca30
6541b2b
2513ba3
9d05b0b
3bf89ef
ad83db5
2c52e63
a20dc57
49b3af0
7ac174a
debbe33
324ba31
0e8e965
cdc29f1
0d208c2
4a71055
4dca0a3
edb8fdb
61453a5
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add to this section or on it's own a section for Community Standards?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add to this section since Community Standards fits the criteria.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add another reason, for box/project leadership there is no formal way of tracking major feature decision making process. What I mean by that is, if I want to keep up with say blue box, I need to minimally attend the sprint planning and demo meetings, backlog grooming, architects meeting, and then keep up to date on multiple slack channels. By moving an important decisions/features to RFCs I know, as a box lead, I can read the RFCs and see the most important discussions in a single place. This hugely streamlines the "n x n" information problem in large projects like HCA (where everyone feels like they need to communicate with all other folks on the project via meetings/slacks/emails in order to stay "on top" of the project but ultimately don't get work done because they've spent all their time communicating). With teams leaning into RFCs for any significant interface/feature designs, it will greatly streamline information flow in the project. At least I think this will be true.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This still feels a little bit open to interpretation to me. I like this quote from the Rust RFC readme:
Whilst you have the "substantial" part, and this is clear, the additional context in the Rust doc ("put through a bit of a design process") helps make it clear to me that this is a design proposal rather than an implementation plan. Is the intention here that RFCs are lightweight design documents, or might you have RFCs proposing an implementation plans?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An RFC does not propose an "implementation plan" based on the constraint from the white paper which is captured in the RFC process:
NOTE: The existence of an approved software RFC does not indicate any particular priority or commitment to implement the RFC, nor is an approved RFC a green light to implement. Approved RFCs simply demonstrate community agreement on a technical decision. Product priorities are managed and implementations scheduled via the DCP PM planning process.
My thought is that an RFC offers a detailed design. IF implemented, the design may change. At that point, the RFC should be updated to reflect reality - similar to WHATWG living standards. Requires some discipline. Does this clarify?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My thoughts were definitely the same as yours. I was observing that "technical decisions" and "changes to system behaviour" could be open to a wide range of interpretations, and not necessarily just limited to design. However, I'm also prepared to believe I'm looking to be over-prescriptive given that my own interpretation was consistent with the intent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In another project I'm working on there are distinct types of RFCs... some for interfaces, others for process, and others still as "informational". I'm wondering if we need something similar here? It ends up giving more flexibility for using RFCs as a formal communication process and not just an API design feedback process...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approvers cannot be the author of the RFC? I'm just wondering if an architect writes an RFC for his or her box, he or she should not be the approver of the RFC, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approval is not based on voting but consensus. I would expect the other PMs or Technical Leads would review appropriately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you want the PR on a unique branch, or against master? Often useful to ask for a unique branch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have a strong opinion. Neither PEP nor Rust have such a requirement. We could suggest but would we really want to enforce?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From a process perspective we need to make sure that RFCs that require scientific review don't get bottlenecked through one or a limited number of people. Doesn't necessarily change this document but worth thinking about.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I might have missed it but is there a timing element here? Like review needs to wrap up in X weeks? I've noticed in other projects I'm working on the RFCs are just building up because there's not fixed schedule to comment on them and then finalize them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@tburdett has opened an issue for timeboxes for all processes which I've added to the top-level summary comment under Open Issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am going to guess no heavyweight solution is needed to this as we are unlikely to have a lot of RFCs which are in review concurrently (at least after the first batch to document our existing design) but do we need to do anything to guard against two people committing at the same time using the same RFC number
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that github will ensure they are unique and differentiated changes to the rep, it is easy to fix collisions after they occur (by assigning one of the RFCs a new ID). This should be a Shepherd responsibility (or whomever does the PR merge).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's also a step in the process for the Shepherd to validate the changes:
Validate that the RFC pull request was successfully updated and merged