Skip to content

Commit d39918c

Browse files
set up of the RFC process
1 parent 3a5cdab commit d39918c

21 files changed

+577
-0
lines changed

.github/CODEOWNERS

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Default owners for RFCs repository
2+
* @radar-base/admins
3+
4+
# RFCs
5+
rfcs/** @radar-base/admins
6+
7+
# Component ownership
8+
# Organize RFCs under these folders to route reviews automatically
9+
rfcs/platform/** @yatharthranjan @afolarin @baixiac @mpgxvii @pvannierop
10+
rfcs/backend/** @yatharthranjan @afolarin @mpgxvii @pvannierop @this-Aditya @ewelinagr
11+
rfcs/mobile/** @mpgxvii @this-Aditya @ec18130 @peyman-mohtashami
12+
13+
# GitHub metadata and workflows
14+
.github/** @radar-base/admins
15+
16+
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Pre-RFC discussion
2+
description: Discuss scope and direction before drafting an RFC
3+
title: "Pre-RFC: <concise topic>"
4+
labels: [pre-rfc]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Use this to validate that the proposal warrants an RFC and to collect early feedback.
10+
- type: textarea
11+
id: problem
12+
attributes:
13+
label: Problem statement
14+
description: What is the problem and why now?
15+
validations:
16+
required: true
17+
- type: textarea
18+
id: scope
19+
attributes:
20+
label: Scope & goals
21+
description: What outcomes are in scope? What is explicitly out of scope?
22+
validations:
23+
required: true
24+
- type: textarea
25+
id: approach
26+
attributes:
27+
label: Early approach ideas
28+
description: Any initial design directions or constraints to consider
29+
- type: input
30+
id: stakeholders
31+
attributes:
32+
label: Stakeholders
33+
description: Teams/roles who should be involved
34+
- type: checkboxes
35+
id: readiness
36+
attributes:
37+
label: Readiness
38+
options:
39+
- label: This likely needs an RFC
40+
- label: I will draft the RFC
41+
42+

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Title: RFC NNNN: <concise-title>
2+
3+
Summary
4+
-------
5+
Briefly describe the proposal and its motivation.
6+
7+
Checklist
8+
---------
9+
- [ ] Linked pre-RFC discussion issue
10+
- [ ] Used file name `rfcs/NNNN-title.md` and updated RFC front matter
11+
- [ ] Filled all required sections (Summary, Motivation, Design, Security, Migration, Testing)
12+
- [ ] Added to index table in `README.md`
13+
- [ ] Considered alternatives and documented open questions
14+
- [ ] Applied appropriate status label (one of: draft, accepted, rejected, superseded, implemented)
15+
- [ ] Applied area/type labels as relevant (e.g., platform, backend, mobile, privacy; design, process)
16+
17+
Reviewers
18+
---------
19+
Tag domain reviewers and maintainers.
20+
21+

.github/auto-assign.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
addReviewers: true
2+
addAssignees: false
3+
reviewers:
4+
# default fallbacks
5+
- yatharthranjan
6+
- afolarin
7+
- mpgxvii
8+
- pvannierop
9+
10+
skipKeywords:
11+
- WIP
12+
13+
numberOfReviewers: 0
14+
15+
filter:
16+
- label: "area: platform"
17+
reviewers:
18+
- yatharthranjan
19+
- afolarin
20+
- baixiac
21+
- mpgxvii
22+
- pvannierop
23+
- label: "area: backend"
24+
reviewers:
25+
- yatharthranjan
26+
- afolarin
27+
- mpgxvii
28+
- pvannierop
29+
- this-Aditya
30+
- ewelinagr
31+
- label: "area: mobile"
32+
reviewers:
33+
- mpgxvii
34+
- this-Aditya
35+
- ec18130
36+
- peyman-mohtashami
37+
38+

.github/labeler.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Auto-label PRs based on changed file paths
2+
rfc:
3+
- rfcs/**
4+
meta:
5+
- .github/**
6+
docs:
7+
- rfcs/media/**
8+
"area: platform":
9+
- rfcs/platform/**
10+
"area: backend":
11+
- rfcs/backend/**
12+
"area: mobile":
13+
- rfcs/mobile/**
14+
15+

.github/labels.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Label definitions synced by ghaction-github-labeler
2+
# name, color (hex w/o #), description
3+
4+
- name: rfc
5+
color: 1f6feb
6+
description: RFC document and related discussion
7+
8+
- name: pre-rfc
9+
color: a371f7
10+
description: Early discussion before an RFC is drafted
11+
12+
- name: status: draft
13+
color: cccccc
14+
description: RFC is in draft and under review
15+
16+
- name: status: accepted
17+
color: 0e8a16
18+
description: RFC accepted for implementation
19+
20+
- name: status: rejected
21+
color: b60205
22+
description: RFC rejected; see rationale in the PR
23+
24+
- name: status: implemented
25+
color: 2cbe4e
26+
description: RFC has been implemented in code
27+
28+
- name: status: superseded
29+
color: fbca04
30+
description: RFC superseded by a later RFC
31+
32+
- name: area: platform
33+
color: 0052cc
34+
description: Platform-wide concerns, infra, deployment
35+
36+
- name: area: backend
37+
color: 5319e7
38+
description: Server-side services and APIs
39+
40+
- name: area: mobile
41+
color: d93f0b
42+
description: Mobile apps and SDKs
43+
44+
- name: area: privacy
45+
color: 0b8769
46+
description: Security, privacy, compliance
47+
48+
- name: type: design
49+
color: 1d76db
50+
description: Architectural or design-focused
51+
52+
- name: type: process
53+
color: 6f42c1
54+
description: Process and governance changes
55+
56+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Auto request reviewers
2+
3+
on:
4+
pull_request_target:
5+
types: [opened, synchronize, reopened]
6+
7+
jobs:
8+
request:
9+
permissions:
10+
pull-requests: write
11+
contents: read
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
- name: Determine reviewers by paths
17+
id: detect
18+
uses: dorny/paths-filter@v3
19+
with:
20+
filters: |
21+
platform:
22+
- 'rfcs/platform/**'
23+
backend:
24+
- 'rfcs/backend/**'
25+
mobile:
26+
- 'rfcs/mobile/**'
27+
- name: Request reviewers
28+
if: steps.detect.outputs.platform == 'true' || steps.detect.outputs.backend == 'true' || steps.detect.outputs.mobile == 'true'
29+
uses: kentaro-m/auto-assign-action@v2.2.2
30+
with:
31+
configuration-path: .github/auto-assign.yml
32+
33+

.github/workflows/label-sync.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Sync Labels
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
paths:
7+
- .github/labels.yml
8+
workflow_dispatch: {}
9+
10+
jobs:
11+
labels:
12+
permissions:
13+
contents: read
14+
issues: write
15+
pull-requests: write
16+
metadata: read
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
- name: Sync labels
22+
uses: crazy-max/ghaction-github-labeler@v5
23+
with:
24+
github-token: ${{ secrets.GITHUB_TOKEN }}
25+
yaml-file: .github/labels.yml
26+
dry-run: false
27+
28+

.github/workflows/pr-labeler.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Auto Label PRs
2+
3+
on:
4+
pull_request_target:
5+
types: [opened, synchronize, reopened]
6+
7+
jobs:
8+
label:
9+
permissions:
10+
contents: read
11+
pull-requests: write
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/labeler@v5
15+
with:
16+
repo-token: ${{ secrets.GITHUB_TOKEN }}
17+
configuration-path: .github/labeler.yml
18+
19+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Require area label
2+
3+
on:
4+
pull_request_target:
5+
types: [opened, labeled, unlabeled, synchronize, reopened, edited]
6+
7+
jobs:
8+
check-area-label:
9+
permissions:
10+
pull-requests: read
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Check area label present
14+
uses: mheap/github-action-required-labels@v5
15+
with:
16+
mode: minimum
17+
count: 1
18+
labels: "area: platform,area: backend,area: mobile"
19+
add_comment: true
20+
message: |
21+
This PR is missing an area label. Please add at least one of:
22+
area: platform | area: backend | area: mobile
23+
24+

0 commit comments

Comments
 (0)