Skip to content

Commit e243e01

Browse files
committed
Update development process docs
1 parent 17b5472 commit e243e01

File tree

2 files changed

+64
-57
lines changed

2 files changed

+64
-57
lines changed

docs/contributing.md

Lines changed: 54 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,42 +5,44 @@ title: How to Contribute
55

66
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.
77

8-
## [Code of Conduct](https://code.facebook.com/codeofconduct)
8+
## [Code of Conduct](https://code.fb.com/codeofconduct/)
99

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.
1111

1212
## Get involved
1313

1414
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:
1515

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.
2525

2626
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.
2727

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/).
2929

3030
### Triaging issues and pull requests
3131

3232
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.
3333

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.
3838

3939
You can learn more about handling issues in the [maintainer's guide](maintainers.html#handling-issues).
4040

4141
## Our development process
4242

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.
4446

4547
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.
4648

@@ -62,10 +64,10 @@ We also have a [place where you can request features or enhancements](https://re
6264

6365
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.
6466

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!
6971

7072
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).
7173

@@ -99,11 +101,11 @@ Small pull requests are much easier to review and more likely to get merged. Mak
99101

100102
Please make sure the following is done when submitting a pull request:
101103

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).
107109

108110
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.
109111

@@ -113,9 +115,9 @@ All pull requests should be opened against the `master` branch. After opening yo
113115

114116
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.
115117

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).
119121

120122
See [What is a Test Plan?](https://medium.com/@martinkonicek/what-is-a-test-plan-8bfc840ec171#.y9lcuqqi9) to learn more.
121123

@@ -173,44 +175,44 @@ However, there are still some styles that the linter cannot pick up.
173175

174176
#### General
175177

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"
180182

181183
#### JavaScript
182184

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
188190

189191
#### JSX
190192

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 `<`
196198

197199
#### Objective-C
198200

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;`)
204206

205207
#### Java
206208

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
210212

211213
### Documentation
212214

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.
214216

215217
## License
216218

0 commit comments

Comments
 (0)