You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/contributing.md
+54-52Lines changed: 54 additions & 52 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,42 +5,44 @@ title: How to Contribute
5
5
6
6
React Native is one of Facebook's first open source projects that is both under very active development and is also being used to ship code to everybody using Facebook's mobile apps. If you're interested in contributing to React Native, hopefully this document makes the process for contributing clear.
7
7
8
-
## [Code of Conduct](https://code.facebook.com/codeofconduct)
8
+
## [Code of Conduct](https://code.fb.com/codeofconduct/)
9
9
10
-
Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](https://code.facebook.com/codeofconduct) so that you can understand what actions will and will not be tolerated.
10
+
Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](https://code.fb.com/codeofconduct/) so that you can understand what actions will and will not be tolerated.
11
11
12
12
## Get involved
13
13
14
14
There are many ways to contribute to React Native, and many of them do not involve writing any code. Here's a few ideas to get started:
15
15
16
-
* Simply start using React Native. Go through the [Getting Started](http://facebook.github.io/react-native/docs/getting-started.html) guide. Does everything work as expected? If not, we're always looking for improvements. Let us know by [opening an issue](http://facebook.github.io/react-native/docs/contributing.html#reporting-new-issues).
17
-
* Look through the [open issues](https://github.com/facebook/react-native/issues). Provide workarounds, ask for clarification, or suggest labels. Help [triage issues](http://facebook.github.io/react-native/docs/contributing.html#triaging-issues-and-pull-requests).
18
-
* If you find an issue you would like to fix, [open a pull request](http://facebook.github.io/react-native/docs/contributing.html#your-first-pull-request). Issues tagged as [_Good first issue_](https://github.com/facebook/react-native/labels/Good%20first%20issue) are a good place to get started.
19
-
* Read through the [React Native docs](http://facebook.github.io/react-native/). If you find anything that is confusing or can be improved, you can make edits by clicking "Edit" at the top of most docs.
20
-
* Browse [Stack Overflow](https://stackoverflow.com/questions/tagged/react-native) and answer questions. This will help you get familiarized with common pitfalls or misunderstandings, which can be useful when contributing updates to the documentation.
21
-
* Take a look at the [features requested](https://react-native.canny.io/feature-requests) by others in the community and consider opening a pull request if you see something you want to work on.
22
-
* Before opening your pull request, make sure you have fully tested your changes. Test your changes locally and by running the various tests provided.
23
-
* For information on how to build the React Native project locally with your changes, make sure to read through the [Building React Native from source guide](https://facebook.github.io/react-native/docs/building-from-source.html).
24
-
* Check out the [Testing your changes guide](https://facebook.github.io/react-native/docs/testing.html) to find out about the numerous tests which has been provided to help ensure that any new changes wont cause a regression.
16
+
- Simply start using React Native. Go through the [Getting Started](http://facebook.github.io/react-native/docs/getting-started.html) guide. Does everything work as expected? If not, we're always looking for improvements. Let us know by [opening an issue](http://facebook.github.io/react-native/docs/contributing.html#reporting-new-issues).
17
+
- Look through the [open issues](https://github.com/facebook/react-native/issues). Provide workarounds, ask for clarification, or suggest labels. Help [triage issues](http://facebook.github.io/react-native/docs/contributing.html#triaging-issues-and-pull-requests).
18
+
- If you find an issue you would like to fix, [open a pull request](http://facebook.github.io/react-native/docs/contributing.html#your-first-pull-request). Issues tagged as [_Good first issue_](https://github.com/facebook/react-native/labels/Good%20first%20issue) are a good place to get started.
19
+
- Read through the [React Native docs](http://facebook.github.io/react-native/). If you find anything that is confusing or can be improved, you can make edits by clicking "Edit" at the top of most docs.
20
+
- Browse [Stack Overflow](https://stackoverflow.com/questions/tagged/react-native) and answer questions. This will help you get familiarized with common pitfalls or misunderstandings, which can be useful when contributing updates to the documentation.
21
+
- Take a look at the [features requested](https://react-native.canny.io/feature-requests) by others in the community and consider opening a pull request if you see something you want to work on.
22
+
- Before opening your pull request, make sure you have fully tested your changes. Test your changes locally and by running the various tests provided.
23
+
- For information on how to build the React Native project locally with your changes, make sure to read through the [Building React Native from source guide](https://facebook.github.io/react-native/docs/building-from-source.html).
24
+
- Check out the [Testing your changes guide](https://facebook.github.io/react-native/docs/testing.html) to find out about the numerous tests which has been provided to help ensure that any new changes wont cause a regression.
25
25
26
26
Contributions are very welcome. If you think you need help planning your contribution, please hop into [#react-native](https://discord.gg/0ZcbPKXt5bZjGY5n) and let people know you're looking for a mentor.
27
27
28
-
Core contributors to React Native meet monthly and post their meeting notes on the [React Native blog](https://facebook.github.io/react-native/blog). You can also find ad hoc discussions in the [React Native Core Contributors](https://www.facebook.com/groups/reactnativeoss/) Facebook group.
28
+
Core contributors to React Native meet monthly and post their meeting notes on the [React Native blog](https://facebook.github.io/react-native/blog). You can also find ad hoc discussions at [https://discuss.reactjs.org/](https://discuss.reactjs.org/).
29
29
30
30
### Triaging issues and pull requests
31
31
32
32
One great way you can contribute to the project without writing any code is to help triage issues and pull requests as they come in.
33
33
34
-
* Ask for more information if the issue does not provide all the details required by the template.
35
-
* Suggest [labels](https://github.com/facebook/react-native/labels) that can help categorize issues.
36
-
* Flag issues that are stale or that should be closed.
37
-
* Ask for test plans and review code.
34
+
- Ask for more information if the issue does not provide all the details required by the template.
35
+
- Suggest [labels](https://github.com/facebook/react-native/labels) that can help categorize issues.
36
+
- Flag issues that are stale or that should be closed.
37
+
- Ask for test plans and review code.
38
38
39
39
You can learn more about handling issues in the [maintainer's guide](maintainers.html#handling-issues).
40
40
41
41
## Our development process
42
42
43
-
Some of the core team will be working directly on [GitHub](https://github.com/facebook/react-native). These changes will be public from the beginning. Other changesets will come via a bridge with Facebook's internal source control. This is a necessity as it allows engineers at Facebook outside of the core team to move fast and contribute from an environment they are comfortable in.
43
+
The [`facebook/react-native`](https://github.com/facebook/react-native) repository on GitHub contains a mirror of the React Native library used internally at Facebook. The GitHub repository is linked to Facebook's internal source control, and all changes made to the internal React Native project [get synced to the `master` branch on GitHub](https://github.com/facebook/react-native/commits/master) on an ongoing basis. Having Facebook's internal source control serve as the source of truth allows engineers at Facebook outside of the React Native team to move fast and contritube from an environment they are comfortable in.
44
+
45
+
React Native is also contributed to by a core team of engineers from several companies outside of Facebook, as well as many other open source [contributors](https://github.com/facebook/react-native/graphs/contributors). The core team coordinates open source releases through the [`react-native-releases`](https://github.com/react-native-community/react-native-releases) repository on GitHub.
44
46
45
47
When a change made on GitHub is approved, it will first be imported into Facebook's internal source control. The change will eventually sync back to GitHub as a single commit once it has passed all internal tests.
46
48
@@ -62,10 +64,10 @@ We also have a [place where you can request features or enhancements](https://re
62
64
63
65
When [opening a new issue](https://github.com/facebook/react-native/issues/new), always make sure to fill out the [issue template](https://raw.githubusercontent.com/facebook/react-native/master/.github/ISSUE_TEMPLATE.md). **This step is very important!** Not doing so may result in your issue getting closed. Don't take this personally if this happens, and feel free to open a new issue once you've gathered all the information required by the template.
64
66
65
-
***One issue, one bug:** Please report a single bug per issue.
66
-
***Provide a Snack:** The best way to get attention on your issue is to provide a reduced test case. You can use [Snack](https://snack.expo.io/) to demonstrate the issue.
67
-
***Provide reproduction steps:** List all the steps necessary to reproduce the issue. Provide a Snack or upload a sample project to GitHub. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort.
68
-
***Try out the latest version:** Verify that the issue can be reproduced locally by updating your project to use [React Native from `master`](http://facebook.github.io/react-native/versions.html). The bug may have already been fixed!
67
+
-**One issue, one bug:** Please report a single bug per issue.
68
+
-**Provide a Snack:** The best way to get attention on your issue is to provide a reduced test case. You can use [Snack](https://snack.expo.io/) to demonstrate the issue.
69
+
-**Provide reproduction steps:** List all the steps necessary to reproduce the issue. Provide a Snack or upload a sample project to GitHub. The person reading your bug report should be able to follow these steps to reproduce your issue with minimal effort.
70
+
-**Try out the latest version:** Verify that the issue can be reproduced locally by updating your project to use [React Native from `master`](http://facebook.github.io/react-native/versions.html). The bug may have already been fixed!
69
71
70
72
We're not able to provide support through GitHub Issues. If you're looking for help with your code, consider asking on [Stack Overflow](http://stackoverflow.com/questions/tagged/react-native) or reaching out to the community through [other channels](https://facebook.github.io/react-native/help.html).
71
73
@@ -99,11 +101,11 @@ Small pull requests are much easier to review and more likely to get merged. Mak
99
101
100
102
Please make sure the following is done when submitting a pull request:
101
103
102
-
1. Fork [the repository](https://github.com/facebook/react-native) and create your branch from `master`.
103
-
2. Add the copyright notice to the top of any new files you've added.
104
-
3. Describe your [**test plan**](contributing.html#test-plan) in your pull request description. Make sure to [test your changes](testing.html)!
105
-
4. Make sure your code lints (`npm run lint`).
106
-
5. If you haven't already, [sign the CLA](https://code.facebook.com/cla).
104
+
1.Fork [the repository](https://github.com/facebook/react-native) and create your branch from `master`.
105
+
2.Add the copyright notice to the top of any new files you've added.
106
+
3.Describe your [**test plan**](contributing.html#test-plan) in your pull request description. Make sure to [test your changes](testing.html)!
107
+
4.Make sure your code lints (`npm run lint`).
108
+
5.If you haven't already, [sign the CLA](https://code.facebook.com/cla).
107
109
108
110
All pull requests should be opened against the `master` branch. After opening your pull request, ensure [**all tests pass**](contributing.html#contrinuous-integration-tests) on Circle CI. If a test fails and you believe it is unrelated to your change, leave a comment on the pull request explaining why.
109
111
@@ -113,9 +115,9 @@ All pull requests should be opened against the `master` branch. After opening yo
113
115
114
116
A good test plan has the exact commands you ran and their output, provides screenshots or videos if the pull request changes UI or updates the website.
115
117
116
-
* If you've added code that should be tested, add tests!
117
-
* If you've changed APIs, update the documentation via an additional PR to the [react-native-website](https://github.com/facebook/react-native-website) repo.
118
-
* If you've updated the docs, verify the website locally and submit screenshots if applicable (see the [react-native-website](https://github.com/facebook/react-native-website) README).
118
+
- If you've added code that should be tested, add tests!
119
+
- If you've changed APIs, update the documentation via an additional PR to the [react-native-website](https://github.com/facebook/react-native-website) repo.
120
+
- If you've updated the docs, verify the website locally and submit screenshots if applicable (see the [react-native-website](https://github.com/facebook/react-native-website) README).
119
121
120
122
See [What is a Test Plan?](https://medium.com/@martinkonicek/what-is-a-test-plan-8bfc840ec171#.y9lcuqqi9) to learn more.
121
123
@@ -173,44 +175,44 @@ However, there are still some styles that the linter cannot pick up.
173
175
174
176
#### General
175
177
176
-
***Most important: Look around.** Match the style you see used in the rest of the project. This includes formatting, naming things in code, naming things in documentation.
177
-
* Add trailing commas,
178
-
* 2 spaces for indentation (no tabs)
179
-
* "Attractive"
178
+
-**Most important: Look around.** Match the style you see used in the rest of the project. This includes formatting, naming things in code, naming things in documentation.
179
+
- Add trailing commas,
180
+
- 2 spaces for indentation (no tabs)
181
+
- "Attractive"
180
182
181
183
#### JavaScript
182
184
183
-
* Use semicolons;
184
-
* ES6 standards
185
-
* Prefer `'` over `"`
186
-
* Do not use the optional parameters of `setTimeout` and `setInterval`
187
-
* 80 character line length
185
+
- Use semicolons;
186
+
- ES6 standards
187
+
- Prefer `'` over `"`
188
+
- Do not use the optional parameters of `setTimeout` and `setInterval`
189
+
- 80 character line length
188
190
189
191
#### JSX
190
192
191
-
* Prefer `"` over `'` for string literal props
192
-
* When wrapping opening tags over multiple lines, place one prop per line
193
-
*`{}` of props should hug their values (no spaces)
194
-
* Place the closing `>` of opening tags on the same line as the last prop
195
-
* Place the closing `/>` of self-closing tags on their own line and left-align them with the opening `<`
193
+
- Prefer `"` over `'` for string literal props
194
+
- When wrapping opening tags over multiple lines, place one prop per line
195
+
-`{}` of props should hug their values (no spaces)
196
+
- Place the closing `>` of opening tags on the same line as the last prop
197
+
- Place the closing `/>` of self-closing tags on their own line and left-align them with the opening `<`
196
198
197
199
#### Objective-C
198
200
199
-
* Space after `@property` declarations
200
-
* Brackets on _every_`if`, on the _same_ line
201
-
*`- method`, `@interface`, and `@implementation` brackets on the following line
202
-
*_Try_ to keep it around 80 characters line length (sometimes it's just not possible...)
203
-
*`*` operator goes with the variable name (e.g. `NSObject *variableName;`)
201
+
- Space after `@property` declarations
202
+
- Brackets on _every_`if`, on the _same_ line
203
+
-`- method`, `@interface`, and `@implementation` brackets on the following line
204
+
-_Try_ to keep it around 80 characters line length (sometimes it's just not possible...)
205
+
-`*` operator goes with the variable name (e.g. `NSObject *variableName;`)
204
206
205
207
#### Java
206
208
207
-
* If a method call spans multiple lines closing bracket is on the same line as the last argument.
208
-
* If a method header doesn't fit on one line each argument goes on a separate line.
209
-
* 100 character line length
209
+
- If a method call spans multiple lines closing bracket is on the same line as the last argument.
210
+
- If a method header doesn't fit on one line each argument goes on a separate line.
211
+
- 100 character line length
210
212
211
213
### Documentation
212
214
213
-
* Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation.
215
+
- Do not wrap lines at 80 characters - configure your editor to soft-wrap when editing documentation.
0 commit comments