1
- # Contributing to CHIP
1
+ # Contributing to Project Connected Home over IP
2
2
3
3
Want to contribute? Great! First, read this page (including the small print at
4
4
the end). By submitting a pull request, you represent that you have the right to
5
- license your contribution to Zigbee and the community, and agree by submitting
6
- the patch that your contributions are licensed under the
7
- [ Apache 2.0 license] ( ./LICENSE ) .
5
+ license your contribution to the Zigbee Alliance and the community, and agree by
6
+ submitting the patch that your contributions are licensed under the
7
+ [ Apache 2.0 license] ( ./LICENSE ) . Before submitting the pull request, please make
8
+ sure you have tested your changes and that they follow the project guidelines
9
+ for contributing code.
10
+
11
+ # Contributing as an Open Source Contributor
12
+
13
+ As an open source contributor you can report bugs and request features in the
14
+ [ Issue Tracker] ( https://github.com/project-chip/connectedhomeip/issues ) , as well
15
+ as contribute bug fixes and features that do not impact the Project CHIP
16
+ specification as a pull request. For example: ports of Project CHIP to add APIs
17
+ to alternative programming languages (e.g. Java, JS), hardware ports, or an
18
+ optimized implementation of existing functionality. For features that impact the
19
+ specification, please join Project CHIP work group within the Zigbee Alliance.
20
+ The requirements to become an open source contributor of the
21
+ [ Project CHIP Repository] ( https://github.com/project-chip/connectedhomeip ) are:
8
22
9
- Before submitting the pull request, please make sure you have tested your
10
- changes and that they follow the project
11
- [ guidelines for contributing code] ( #pull-request-requirements ) .
12
-
13
- ## Becoming a Member
14
-
15
- Currently these are the requirements to becoming a member of the
16
- [ Project-CHIP Repository] ( https://github.com/project-chip/connectedhomeip )
17
-
18
- - Must be a member of the Zigbee Alliance CHIP TSG Working Group
19
- - Have signed the Zigbee CHIP WG CLA
20
- - Have signed up as a Tiger team member in one of the follow roles: Lead, Spec
21
- Writer, Developer (or exception granted), Code Approvers, or Support Staff
22
- - Have approval from your company's official approver
23
+ - Agree to the [ Code of Conduct] ( ./CODE_OF_CONDUCT.md )
24
+ - Agree to the [ License] ( ./LICENSE )
25
+ - Have signed the
26
+ [ Zigbee Project CHIP Working Group CLA] ( https://gist.github.com/clapre/65aa9fc63981da765039e0bb7e8701be )
23
27
24
- ## Becoming a Contributor
28
+ # Contributing as a Zigbee Alliance Project CHIP Working Group Member
25
29
26
- Currently these are the requirements to becoming a member of the
27
- [ Project-CHIP Repository] ( https://github.com/project-chip/connectedhomeip )
30
+ As a participant of the Zigbee Alliance Project CHIP working group, you can
31
+ attend working group meetings, propose changes to the Project CHIP
32
+ specification, and contribute code for approved updates to the specification.
33
+ The requirements to become a member of the
34
+ [ Project CHIP Repository] ( https://github.com/project-chip/connectedhomeip ) are:
28
35
29
- - Must be a member of the Zigbee Alliance CHIP TSG Working Group
30
- - Have signed the Zigbee CHIP WG CLA
31
- - Agree to the [ Code of Conduct] ( ./CODE_OF_CONDUCT.md )
32
- - Agree to the [ License] ( ./LICENSE )
33
- - Have signed up as a Tiger team member in one of the follow roles: Lead, Spec
34
- Writer, Developer (or exception granted), Code Approvers, or Support Staff
36
+ - Must be a [ Participant member] ( http://www.zigbeealliance.org/join ) or higher
37
+ of the Zigbee Alliance
38
+ - Must be a Project CHIP Working Group member
39
+ - Have signed the Zigbee Project CHIP Work Group CLA
35
40
- Have approval from your company's official approver
36
41
37
- ## Getting Started
38
-
39
- This repository contains the source code that implements the CHIP specification.
40
- It scalably implements the specification that may be used on a wide range of
41
- platforms including Android/iOS and Darwin/Linux down to embedded MCU-based
42
- platforms running FreeRTOS and LwIP.
43
-
44
- The source code can be built to generate:
45
-
46
- - ** Libraries** that can be built for iOS, Android or desktop (Linux/Mac)
47
- targets. These libraries could further be integrated into applications that
48
- talk _ CHIP_ .
49
- - ** Firmwares/Embedded Applications** that can be built for the supported
50
- embedded platforms.
51
- - ** Desktop Application** that can be used in conjunction with the embedded
52
- applications above to validate the end-to-end CHIP workflow.
53
-
54
- ### Building your first application
55
-
56
- - Building the firmware: This repository implements the CHIP specification on
57
- 3 transports: 802.15.4 Thread, BLE and Wi-Fi. The examples/ directory
58
- contains example applications for all these 3 transports using 3 embedded
59
- platforms. Please visit their respective directories for instructions on how
60
- to build and deploy on these platforms.
61
- - NRF5 (for 802.15.4 Thread): in
62
- [ examples/lock-app/nrf5] ( examples/lock-app/nrf5 )
63
- - EFR32 (for BLE): in [ examples/lock-app/efr32] ( examples/lock-app/efr32 )
64
- - ESP32 (for Wi-Fi or BLE): in
65
- [ examples/wifi-echo/server/esp32] ( examples/wifi-echo/server/esp32 )
66
- - Building the host utility: The host utility can be used in conjunction with
67
- the embedded platform for end-to-end validation. Please visit the
68
- [ examples/chip-tool] ( examples/chip-tool ) directory for further instructions.
69
-
70
- ### Where should I begin?
71
-
72
- - Good First Issue: Certain issues are marked with a label
73
- [ Good First Issue] ( https://github.com/project-chip/connectedhomeip/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 ) .
74
- These issues are what we believe may be good starting points for getting
75
- your hands dirty.
76
- - TODOs: Most items that will require work are captured in the GitHub issues
77
- of this project. This serves as a good TODO list for the next steps.
78
- - Milestones: A list of
79
- [ milestones] ( https://github.com/project-chip/connectedhomeip/milestones ) are
80
- maintained in this project. This should provide some idea of where things
81
- are headed. Note that given the early days of this project, most of these
82
- are not hard deadlines.
83
-
84
- ### Where is the spec?
85
-
86
- - The specification is evolving in various tiger teams. Members belonging to
87
- various tiger teams may contribute experimental code for the general
88
- direction where the spec is headed. Once a specification is fairly
89
- finalised, it will be available/committed in the [ docs/specs] ( docs/specs ) .
90
-
91
- ## Bugs
42
+ # Bugs
92
43
93
44
If you find a bug in the source code, you can help us by
94
45
[ submitting a GitHub Issue] ( https://github.com/project-chip/connectedhomeip/issues/new ) .
95
46
The best bug reports provide a detailed description of the issue and
96
47
step-by-step instructions for predictably reproducing the issue. Even better,
97
- you can [ submit a Pull Request] ( #submitting-a-pull-request ) with a fix.
48
+ you can
49
+ [ submit a Pull Request] ( https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#submitting-a-pull-request )
50
+ with a fix.
98
51
99
- ## New Features
52
+ # New Features
100
53
101
54
You can request a new feature by
102
55
[ submitting a GitHub Issue] ( https://github.com/project-chip/connectedhomeip/issues/new ) .
103
-
104
56
If you would like to implement a new feature, please consider the scope of the
105
57
new feature:
106
58
@@ -110,20 +62,20 @@ new feature:
110
62
feedback. Getting early feedback will help ensure your implementation work
111
63
is accepted by the community. This will also allow us to better coordinate
112
64
our efforts and minimize duplicated effort.
113
-
114
65
- _ Small feature_ : can be implemented and directly
115
- [ submitted as a Pull Request] ( #submitting-a-pull-request ) .
66
+ [ submitted as a Pull Request] ( https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md #submitting-a-pull-request) .
116
67
117
- ## Contributing Code
68
+ # Contributing Code
118
69
119
- CHIP follows the "Fork-and-Pull" model for accepting contributions.
70
+ Project CHIP follows the "Fork-and-Pull" model for accepting contributions.
120
71
121
72
### Initial Setup
122
73
123
74
Setup your GitHub fork and continuous-integration services:
124
75
125
- 1 . Fork the [ CHIP repository] ( https://github.com/project-chip/connectedhomeip )
126
- by clicking "Fork" on the web UI.
76
+ 1 . Fork the
77
+ [ Project CHIP repository] ( https://github.com/project-chip/connectedhomeip ) by
78
+ clicking "Fork" on the web UI.
127
79
128
80
2 . All contributions must pass all checks and reviews to be accepted.
129
81
@@ -209,53 +161,13 @@ This will trigger the continuous-integration checks. You can view the results in
209
161
the respective services. Note that the integration checks will report failures
210
162
on occasion.
211
163
212
- #### Pull Request Requirements
213
-
214
- CHIP considers there to be a few different types of pull requests:
215
-
216
- - Trivial bug fix
217
- - - Description 1
218
- - - Description 2
219
- - Small Bug fix
220
- - - Description 1
221
- - - Description 2
222
- - Bug Fix
223
- - - Description 1
224
- - - Description 2
225
- - Significant Change
226
- - - Description 1
227
- - - Description 2
228
- - Feature
229
- - - Description 1
230
- - - Description 2
231
- - Architecture Change
232
- - - Description 1
233
- - - Description 2
234
-
235
- ### Prior to review, all changes require:
236
-
237
- - [ GitHub Workflows] ( .github/workflows ) pass
238
- - [ Certification Tests] ( tests/certification/README.md ) pass
239
- - [ Fuzz Tests] ( tests/fuzz/README.md ) pass
240
- - [ Integration Tests] ( tests/integration/README.md ) pass
241
- - Linting passes
242
- - Code style passes
243
-
244
164
### Review Requirements
245
165
246
- Each type of change has unique additional requirements, here's a table of those:
247
-
248
- | Type | Reviewer Requirements | New Unit Tests | New Certification Tests | New Fuzz Tests | New Integration Tests |
249
- | ------------------- | -------------------------------------- | -------------- | ----------------------- | -------------- | --------------------- |
250
- | Trivial bug fix | 3 [ approved reviewers] ( ./REVIEWERS.md ) | | | | |
251
- | Small Bug fix | 3 [ approved reviewers] ( ./REVIEWERS.md ) | | | | |
252
- | Bug Fix | 3 [ approved reviewers] ( ./REVIEWERS.md ) | | | | |
253
- | Significant Change | 3 [ approved reviewers] ( ./REVIEWERS.md ) | | | | |
254
- | Feature | 3 [ approved reviewers] ( ./REVIEWERS.md ) | | | | |
255
- | Architecture Change | 3 [ approved reviewers] ( ./REVIEWERS.md ) | | | | |
166
+ #### Documentation Best Practices
256
167
257
- Note: Where multiple reviewers are required, each reviewer must be from a
258
- different member company.
168
+ Project CHIP uses Doxygen to markup (or markdown) all C, C++, Objective C,
169
+ Objective C++, Perl, Python, and Java code. Read our
170
+ [ Doxygen Best Practices, Conventions, and Style] ( https://github.com/project-chip/connectedhomeip/blob/master/docs/style/DOXYGEN.adoc )
259
171
260
172
#### Submit Pull Request
261
173
@@ -267,20 +179,17 @@ branch and update.
267
179
268
180
#### Merge Requirements
269
181
270
- - Passes [ Review Requirements] ( #review-requirements )
271
- - [ GitHub Workflows] ( .github/workflows ) pass
272
- - [ Certification Tests] ( tests/certification/README.md ) pass
273
- - [ Fuzz Tests] ( tests/fuzz/README.md ) pass
274
- - [ Integration Tests] ( tests/integration/README.md ) pass
182
+ - Github Workflows pass
183
+ - Builds pass
184
+ - Tests pass
275
185
- Linting passes
276
186
- Code style passes
277
187
278
- ** When can I merge?** After these have been satisfied, any reviewer, or the
279
- originator can merge the PR into master.
280
-
281
- ### Documentation
188
+ When can I merge? After these have been satisfied, a reviewer will merge the PR
189
+ into master
282
190
283
- Documentation undergoes the same review process as code
191
+ #### Documentation
284
192
285
- See the [ Documentation Style Guide] ( docs/STYLE_GUIDE.md ) for more information on
286
- how to author and format documentation for contribution.
193
+ Documentation undergoes the same review process as code See the
194
+ [ Documentation Style Guide] ( https://github.com/project-chip/connectedhomeip/blob/master/docs/STYLE_GUIDE.md )
195
+ for more information on how to author and format documentation for contribution.
0 commit comments