Skip to content

Latest commit

 

History

History
69 lines (59 loc) · 3.32 KB

0028-co-locate-all-rfcs.md

File metadata and controls

69 lines (59 loc) · 3.32 KB

Co-locate All Paketo RFCs

Summary

All individual repository level RFCs that are in the Paketo organization should be centralized into the top level RFCS repository.

Motivation

As it stands currently there are RFCs scattered across various repositories throughout the Paketo organization. These RFCs pertain typically to the implementation and functionality of either entire language families or even on down to implementation buildpack specific behavior. While it is good to have a record of technical decisions made for the project and its components, it is sometimes hard to search for relative RFCs for a given language family or feature. By co-locating all of the RFCs for the project into one repository we will collect all of the decision making conversation into one place making it easier to access.

Implementation

Each project team will be given a directory inside of the rfcs repository, which would be named after the project team. A series of directories with the same names as the repositories that fall under that project teams control will be created inside of the project team's sub-directory.

rfcs
├── assets
│   └── ...
├── LICENSE
├── NOTICE
├── README.md
└── text
    ├── 0000-template.md
    ├── ...
    └── project-team
        └── repository

The maintainers of that project team will be given control over their directory through the CODEOWNERS file located in the .github directory of the repository. Currently this repository is set to require a review from at least one CODEOWNER, so by configuring the CODEOWNERS folder with the correct prioirity ordering a maintainer on the project team could review and merge an RFC created in their sub-directory with no intervention from the steering committee.

Example of the CODEOWNERS file (note priority is from top to bottom of the CODEOWNERS file):

*                  @paketo-buildpacks/steering-committee
text/project-team/ @paketo-buildpacks/project-team-maintainers

Once this structure is set up all currently existing RFCs across the Paketo project should be moved into the rfcs repository and removed from their current repository. The repositories that relocate their RFCs should document the new location in the repository’s README to indicate to users that there has been a move. It should then become standard practice to ask that all new RFCs are made in the rfcs repository inside the correct sub-directory.

Rationale and Alternatives

  • We could co-locate all of the RFCs for any given language family into the top level language family buildpack repository. This would help collect the information to an extent while allowing for the separation of language specific information from the top level repository. This also allows for easier commiting of RFCs by maintainers and contributors because they would not need to create a fork of the repository to create an RFC. This still puts a burden on individuals that would like to keep track of the going ons of lots of teams.