Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: add RFC tips

...

If you submit a pull request to implement a new feature without going through the RFC process, it may be closed with a polite request to submit an RFC first.

How to create a successful RFC

A hastily-proposed RFC can hurt its chances of acceptance. Low quality proposals, proposals for previously-rejected features, or those that don't fit into the near-term roadmap, may be quickly rejected, which can be demotivating for the unprepared contributor. Laying some groundwork ahead of the RFC can make the process smoother.

Although there is no single way to prepare for submitting an RFC, it is generally a good idea to pursue feedback from other project developers beforehand, to ascertain that the RFC may be desirable; having a consistent impact on the project requires concerted effort toward consensus-building.

The most common preparations for writing and submitting an RFC include talking the idea over on Folio Slack, if applicable presenting the proposal to the relevant SIG(s) and occasionally fully describing more complex concepts on the Folio Wiki.

As a rule of thumb, receiving encouraging feedback from long-standing project developers, and members of relevant SIGs is a good indication that the RFC is worth pursuing.

Process Overview

  • Review Phases

    • Status
      titlePreliminary Review
       (4 weeks Maximum. Can be extended by 1 week if approved)
      • RFC enters into the PRELIMINARY REVIEW stage once the submitter creates a PR in https://github.com/folio-org/rfcs
      • The submitter works with the TC to get feedback related to the overall scope and the general direction of the RFC.
      • The submitter will hold necessary discussions to resolve issues/concerns raised in the PR
      • The submitter will be responsible for resolving all the conversations in the PR
      • TC votes swiftly on whether there is any merit to the RFC
      • Any member of the TC will merge the PR in its current state to advance the PR to the next stage after ensuring that all conversations have been marked as resolved
      • RFC is likely to be rejected at this stage if there is a significant misalignment
    • Status
      colourYellow
      titleDraft Review
      (4 weeks Maximum. Can be extended by 1 week if approved)
      • Submitter creates a new PR for the DRAFT REVIEW stage
      • A subgroup is formed (must-have community/TC members who are experts in the area addressed by the RFC)
      • The subgroup works with the submitter to refine the RFC by providing feedback
      • The submitter will be responsible for resolving all the conversations in the PR
      • TC will review the draft when it is ready
      • Any member of the TC will merge the PR in its current state to advance the PR to the next stage after ensuring that all conversations have been marked as resolved
      • TC votes to advance the RFC to the next stage
    • Status
      colourBlue
      titlePublic Review
       (3 weeks Maximum. Can be extended by 1 week if approved)
      • Submitter creates a new PR for the PUBLIC REVIEW stage
      • A message is sent to the public #tc-rfc slack channel announcing the PUBLIC REVIEW stage of the RFC

      • RFC 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

      • Anything that suggests a change in scope is likely to be NOT considered

      • The community should really take this opportunity to weigh in on the changes
      • Create POCs/RI's to identify any gaps (Optional)
      • Any member of the TC will merge the PR in its current state to advance the PR to the next stage after ensuring that all conversations have been marked as resolved
      • TC votes to advance the RFC to the next stage
    • Status
      colourGreen
      titleFinal Review
       (2 weeks Maximum. Can be extended by 1 week if approved)
      • TC will review and deliberate over the comments from the community and decide what should be included and what should be left out of the RFC 
      • Submitter prepares the final version of the RFC
      • TC does the final review and Signs Off
      • TC should really work towards getting a consensus on this final vote or at least have an overwhelming majority in favor of the RFC
  • Post Review 

    • To help us learn, a retrospective will be performed regardless of the outcome of the RFC.

...