...
Purpose: The submitter prepares the RFC abstract and brings it to the attention of the Technical Council.
Timebox: Approximately 16-17 weeks when incorporating review windows and accounting for administrative overhead, making adjustments, etc.
Steps:
- The submitter creates a PR in https://github.com/folio-org/rfcs but only populates the following sections:
- Metadata - Contributors, links to PRs, outcome, etc.
- Overview - An overview of what the RFC is about
- Scope - Defines the scope of what the RFC intends to cover/not cover
- Timing - Indicates a rough timeline of when the RFC might be ready
- The submitter updates the "RFC PRs" section of the metadata to link to the PRELIMINARY REVIEW pull request.
- The submitter should contact one of the Technical Council chairs and plan to attend a TC meeting in the near future to present the RFC Abstract.
...
Purpose: Discuss and agree to the scope and general direction of the RFC. The intent is to have a conversation between The Technical Council and the submitter, adjusting the RFC direction and scope as needed, prior to investing time in writing the full RFC.
Timebox: 1 week~ 2 weeks
Steps:
- The PRELIMINARY REVIEW stage begins once the submitter presents an RFC Abstract at a Technical Council meeting.
- The presentation should be brief (~5 minutes max) and focus solely on the general direction and scope.
- It's the responsibility of the meeting convener to ensure the presentation and subsequent discussion remains on topic and doesn't delve into details.
- One week will be given for TC members to consider the scope and general direction
- During this time, TC members are encouraged to provide feedback/questions relating to the scope/general direction of the RFC in the PR
- There shouldn't be feedback on details of the RFC at this stage.
- If necessary, the submitter may organize ad-hoc meetings/conversations to resolve issues/concerns raised in the PR
- The submitter will be responsible for resolving all the conversations in the PR
- At The Technical Council meeting following the RFC Abstract presentation, The Technical Council will vote swiftly on whether there is any merit to the RFC.
- If the submitter requires more time to make necessary adjustments, they should inform a Technical Council chair, and The Technical Council vote will be rescheduled.
- If approved, all conversations must be resolved and the submitter closes (Do not merge!) the PR in its current state
- Rejection is unlikely at this stage unless The Technical Council and submitter reach an impasse.
- If rejected, the RFC metadata is updated to indicate this (Outcome: Rejected) and the submitter merges the PR. Some conversations may remain unresolved in this case.
...
Purpose: Submitter and other contributors flesh out the rest of the RFC and notifies the Technical Council when it's ready for public review. Submitters are encouraged to reach out to the TC and/or other community stakeholders during this stage as needed to get feedback on certain aspects of the RFC which may be controversial or confusing.
Timebox: As long as the submitter requires~ 1 month may be a good starting point, but if deviating significantly from the timeline indicated in the RFC Abstract, The Technical Council should be notified.
...
Purpose: Gather feedback from and discuss with any/all FOLIO community members
Timebox: ~ 1 month may be a good starting point. TODO: think about the periodic reminders indicating how much time remains in the feedback window.
Steps:
- The submitter creates a new PR for the PUBLIC REVIEW stage
- The submitter updates the "RFC PRs" section of the metadata to link to the PUBLIC REVIEW pull request.
A message is sent to the public #tc-rfc slack channel announcing the PUBLIC REVIEW stage of the RFC
- The Technical Council and submitter determine if additional announcements should be made in other channels (e.g. #sys-ops, #folio-product-council, #development, etc.)
- RFC is opened up for a community-wide review. Anyone who wants to provide feedback can participate
- Feedback is provided as PR review comments
All questions/concerns/suggestions provided as part of the public review feedback will be addressed. The submitter of the RFC will take the responsibility of facilitating discussions to address the comments provided
There will be a bias towards not changing the scope of the RFC at this stage as it would likely be disruptive.
- The community should really take this opportunity to weigh in on the changes
- POCs/Reference implementations are developed to identify any gaps or unforeseen challenges (Optional)
- The submitter and Technical Council are in contact throughout this stage and together determine when the public review stage should conclude
- A message is sent to the public #tc-rfc slack channel announcing the PUBLIC REVIEW stage of the RFC has concluded.
- The submitter closes (Do not merge!) the PR in its current state to advance the RFC to the next stage after ensuring that all conversations have been marked as resolved
...
Purpose: Final review and discussion by Technical Council, leading to a decision
Timebox: This may not be needed. This stage seems to move quickly. If consistency is desired, a short duration (e.g., 1 week) could be chosen.
Steps:
- The Technical Council will review and deliberate over the comments from the community
- The submitter creates a new PR for the FINAL REVIEW stage
- The Technical Council does the final review and votes on whether the RFC should be Accepted or Rejected
- The FINAL REVIEW pull request is updated with appropriate outcome.
- A message is sent to the public #tc-rfc slack channel announcing the outcome of the RFC.
- The Technical Council should really work towards getting a consensus on this final vote or at least have an overwhelming majority in favor of the RFC
...