Skip to content

Commit 8839e4c

Browse files
Adding fast path for review guidelines (#10867)
* Update .pullapprove.yml * Updating for fast path rules * Typo * Restyled by prettier-markdown * Updating word list * Updating for fast path rules * Typo * Restyled by prettier-markdown * Updating word list * Restyled by whitespace Co-authored-by: Restyled.io <commits@restyled.io>
1 parent 8a166dd commit 8839e4c

File tree

3 files changed

+124
-40
lines changed

3 files changed

+124
-40
lines changed

.github/.wordlist.txt

+5-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ AE
2828
aef
2929
algs
3030
alloc
31-
Ameba
3231
ameba
32+
Ameba
3333
amebad
3434
amebaiot
3535
AnnounceOTAProvider
@@ -131,6 +131,7 @@ cgroup
131131
changeset
132132
characterised
133133
CharString
134+
checkmark
134135
ChipBLEMgr
135136
CHIPCirqueTest
136137
CHIPCryptoPALHsm
@@ -324,6 +325,7 @@ EndpointId
324325
endpointName
325326
eno
326327
entrypoint
328+
enum
327329
env
328330
esd
329331
ESPPORT
@@ -795,9 +797,9 @@ ScriptBinding
795797
SDC
796798
SDHC
797799
SDK
800+
SDK's
798801
sdkconfig
799802
SDKs
800-
SDK's
801803
SDKTARGETSYSROOT
802804
sdl
803805
segger
@@ -875,6 +877,7 @@ TCP
875877
teardown
876878
Telink
877879
TemperatureMeasurement
880+
testability
878881
TestArray
879882
TestCluster
880883
TestEmptyString

.pullapprove.yml

+43-38
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,51 @@ version: 3
44
github_api_version: "shadow-cat-preview"
55

66
############################################################
7-
# Conditions
7+
# Overrides
88
############################################################
99

10-
pullapprove_conditions:
11-
############################################################
12-
# License Checks
13-
############################################################
14-
- condition: "'*license/cla*' in statuses.successful"
15-
unmet_status: "pending"
16-
explanation: "CLA must be agreed to by all contributors"
10+
overrides:
11+
- if: "'hotfix' in labels"
12+
status: success
13+
explanation: "Hotfix label added, bypassing reviews"
1714

1815
############################################################
1916
# Draft PRs
2017
############################################################
21-
- condition: "'WIP' not in title"
22-
unmet_status: "pending"
23-
explanation: "Work in progress"
18+
- if: "draft or 'WIP' in title"
19+
status: pending
20+
explanation: "PR is draft, pending review"
21+
- if: "draft"
22+
status: pending
23+
explanation: "PR is draft, pending review"
2424

25-
- condition: "not draft"
26-
unmet_status: "pending"
27-
explanation: "Work in progress"
25+
############################################################
26+
# License Checks
27+
############################################################
28+
- if: "'*license/cla*' not in statuses.successful"
29+
status: pending
30+
explanation: "CLA must be agreed to by all contributors"
2831

2932
############################################################
3033
# Conditions to Skip Review
3134
############################################################
32-
- condition: "base.ref == 'master'"
33-
unmet_status: "success"
35+
- if: "base.ref != 'master'"
36+
status: success
3437
explanation: "Review not required unless merging to master"
3538

3639
############################################################
37-
# Bypass reviews
40+
# Required status checks
3841
############################################################
39-
- "'hotfix' not in labels"
42+
- if: "'*restyle*' not in statuses.successful"
43+
status: failure
44+
explanation: "Style must be inline before reviewing can be complete"
4045

4146
############################################################
42-
# Required status checks
47+
# Fast tracking
4348
############################################################
44-
- condition: "'*restyle*' in statuses.successful"
45-
unmet_status: "failure"
46-
explanation: "Style must be inline before reviewing can be complete"
49+
- if: "'fast track' in labels"
50+
status: success
51+
explanation: "PR has been fast tracked, bypassing reviews"
4752

4853
############################################################
4954
# Notifications
@@ -91,14 +96,14 @@ groups:
9196
teams: [reviewers-comcast]
9297
reviews:
9398
request: 10
94-
# shared-reviewers-espressif:
95-
# type: optional
96-
# conditions:
97-
# - files.include('*')
98-
# reviewers:
99-
# teams: [reviewers-espressif]
100-
# reviews:
101-
# request: 10
99+
# shared-reviewers-espressif:
100+
# type: optional
101+
# conditions:
102+
# - files.include('*')
103+
# reviewers:
104+
# teams: [reviewers-espressif]
105+
# reviews:
106+
# request: 10
102107
shared-reviewers-google:
103108
type: optional
104109
conditions:
@@ -107,14 +112,14 @@ groups:
107112
teams: [reviewers-google]
108113
reviews:
109114
request: 10
110-
# shared-reviewers-lg:
111-
# type: optional
112-
# conditions:
113-
# - files.include('*')
114-
# reviewers:
115-
# teams: [reviewers-lg]
116-
# reviews:
117-
# request: 10
115+
# shared-reviewers-lg:
116+
# type: optional
117+
# conditions:
118+
# - files.include('*')
119+
# reviewers:
120+
# teams: [reviewers-lg]
121+
# reviews:
122+
# request: 10
118123
shared-reviewers-nordic:
119124
type: optional
120125
conditions:

CONTRIBUTING.md

+76
Original file line numberDiff line numberDiff line change
@@ -192,3 +192,79 @@ into master
192192
Documentation undergoes the same review process as code See the
193193
[Documentation Style Guide](https://github.com/project-chip/connectedhomeip/blob/master/docs/STYLE_GUIDE.md)
194194
for more information on how to author and format documentation for contribution.
195+
196+
## Merge Processes
197+
198+
Merges require at least 3 approvals from unique require-reviewers lists, and all
199+
CI tests passing.
200+
201+
### Shorter Reviews
202+
203+
Development Lead & Vice Leads can merge a change with fewer then the required
204+
approvals have been submitted.
205+
206+
A separate "fast track" label will be created that will only require a single
207+
checkbox to be set, this label shall only be set by the Development Lead, and/or
208+
Vice Lead (unless they’re both unavailable, in which case a replacement can be
209+
temporarily appointed)
210+
211+
"Day" here means "business day" (i.e. PRs on friday do not get fast-tracked
212+
faster).
213+
214+
### Fast track types
215+
216+
### Trivial changes
217+
218+
Small changes or changes that do not affect the main functionality of the code
219+
can be fast tracked immediately. Examples:
220+
221+
- Adding/removing documentation (.md files)
222+
- Adding tests (may include small reorganization/method adding/changes to
223+
enable testability):
224+
- certification tests
225+
- stability tests
226+
- integration tests
227+
- functional tests
228+
- Test scripts
229+
- Additional tests following a pattern (e.g. YAML tests)
230+
- Adding/updating/fixing tooling to aid in development
231+
- Re-running code generation
232+
- Code readability refactors:
233+
- renaming enum/classes/structure members
234+
- moving constant header location
235+
- Obviously trivial build rule changes (e.g. adding missing files to build
236+
rules)
237+
- Changing comments
238+
- Adding/removing includes (include what you need and only what you need
239+
rules)
240+
- Pulling new third-party repo files
241+
- Platform vendors/maintainers adding platform features/logic/bug fixes to
242+
their own platforms
243+
- Most changes to existing docker files (pulling new versions, reorganizing)
244+
- Most changes to new dockerfile version in workflows
245+
246+
#### Fast track changes
247+
248+
Larger functionality changes are allowed to be fast tracked with these
249+
requirements/restrictions:
250+
251+
- Require at least 1 day to have passed since the creation of the PR
252+
- Require at least 1 checkmark from someone familiar with the code or problem
253+
space
254+
- This requirement shall be dropped after a PR is 3 days old with stale or
255+
no feedback.
256+
- Code is sufficiently covered by automated tests (or impossible to
257+
automatically test with a very solid reason for this - e.g. changes to BLE
258+
parameters cannot be automatically tested, but should have been manually
259+
verified)
260+
261+
Fast tracking these changes will involve resolving any obviously 'resolved'
262+
comments (judgment call here: were they replied to or addressed) and merging the
263+
change.
264+
265+
Any "request for changes" marker will always be respected unless obviously
266+
resolved (i.e. author marked "requesting changes because of X and X was done in
267+
the PR")
268+
269+
- This requirement shall be dropped after a PR is 3 days old with stale or no
270+
feedback.

0 commit comments

Comments
 (0)