diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 61a2655c2..50076c40d 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,36 +1,118 @@ -
- **Issues that do not describe a bug or do not fill out the template below will be closed** + - We use GitHub Issues exclusively for tracking bugs in React Native. +### Is this a bug report? - - If you're looking for help with your code, consider asking on Stack Overflow instead: http://stackoverflow.com/questions/tagged/react-native - - Want to know more about future plans? Check out the roadmap: https://github.com/facebook/react-native/wiki/Roadmap - - Have a feature request that is not covered in the roadmap? Submit it here: https://react-native.canny.io/feature-requests +(write your answer here) - ## Reporting bugs + -List all the steps required to reproduce the issue you're reporting. These steps should be clear and concise. Always include a sample of your code. -#### Sample Code +### Have you read the Bugs section of the Contributing to React Native Guide? -An example of your code or a reproduction of the problem using Snack is **REQUIRED**. +(Write your answer here.) -### Solution + -What needs to be done to address this issue? Ideally, provide a pull request with a fix. +### Environment -### Additional Information + -* React Native version: [FILL THIS OUT: Be specific, filling out "latest" here is not enough.] -* Platform: [FILL THIS OUT: iOS, Android, or both?] -* Development Operating System: [FILL THIS OUT: Are you developing on macOS, Linux, or Windows?] -* Build tools: [FILL THIS OUT: Xcode or Android Studio version, iOS or Android SDK version, if applicable] +1. `react-native -v`: +2. `node -v`: +3. `npm -v`: +4. `yarn --version` (if you use Yarn): + +Then, specify: + +1. Target Platform (e.g. iOS, Android): +2. Development Operating System (e.g. macOS Sierra, Windows 10): +3. Build tools (Xcode or Android Studio version, iOS or Android SDK version, if relevant): + + +### Steps to Reproduce + + + +(Write your steps here:) + +1. +2. +3. + +### Expected Behavior + + + +(Write what you thought would happen.) + +### Actual Behavior + + + +(Write what happened. Add screenshots!) + +### Reproducible Demo + + + +(Paste the link to an example project and exact instructions to reproduce the issue.) + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index cd59fe722..9c1b6a10c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,18 +1,9 @@ -
- Thanks for submitting a PR! Please read these instructions carefully: + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e1de71ef..e5a8f42e7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,22 +2,75 @@ 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 on https://facebook.com. We're still working out the kinks to make contributing to this project as easy and transparent as possible, but we're not quite there yet. Hopefully this document makes the process for contributing clear and preempts some questions you may have. +## Code of Conduct + +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. + ## Our Development Process -Some of the core team will be working directly on GitHub. 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. +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. -### `master` is unsafe +## Branch Organization -We will do our best to keep `master` in good shape, with tests passing at all times. But in order to move fast, we will make API changes that your application might not be compatible with. We will do our best to communicate these changes and version appropriately so you can lock into a specific version if need be. +We will do our best to keep `master` in good shape, with tests passing at all times. But in order to move fast, we will make API changes that your application might not be compatible with. We will do our best to [communicate these changes](https://github.com/facebook/react-native/releases) and version appropriately so you can lock into a specific version if need be. + +To see what changes are coming and provide better feedback to React Native contributors, use the [latest release candidate](http://facebook.github.io/react-native/versions.html) when possible. By the time a release candidate is released, the changes it contains will have been shipped in production Facebook apps for over two weeks. + +## Bugs + +#### Where to Find Known Issues + +We are using [GitHub Issues](https://github.com/facebook/react-native/issues) for our public bugs. Before filing a new task, try to make sure your problem doesn't already exist. + +Questions and feature requests are tracked elsewhere: + + - Have a question? [Ask on Stack Overflow](http://stackoverflow.com/questions/tagged/react-native). + - If you have a question regarding future plans, check out the [roadmap](https://github.com/facebook/react-native/wiki/Roadmap). + - Have a feature request that is not covered in the roadmap? [Add it here](https://react-native.canny.io/feature-requests). + +#### Reporting New Issues + +The best way to get your bug fixed is to provide a reduced test case. Please provide either a [Sketch](https://sketch.expo.io/) or a public repository with a runnable example. + +Please report a single bug per issue. Always provide reproduction steps. You can use Snack in many cases to demonstrate an issue: https://snack.expo.io/. If the bug cannot be reproduced using Snack, verify that the issue can be reproduced locally by targeting the latest release candidate. Ideally, check if the issue is present in master as well. + +Do not forget to include sample code that reproduces the issue. Only open issues for bugs affecting either the latest stable release, or the current release candidate, or master (see http://facebook.github.io/react-native/versions.html). If it is not clear from your report that the issue can be reproduced in one of these releases, your issue will be closed. + +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 + +#### Security Bugs + +Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe disclosure of security bugs. With that in mind, please do not file public issues; go through the process outlined on that page. + +## How to Get in Touch + +Many React Native users are active on [Stack Overflow](http://stackoverflow.com/questions/tagged/react-native). + +If you want to get a general sense of what React Native folks talk about, check out the [React Native Community](https://www.facebook.com/groups/react.native.community) Facebook group. + +There is also [an active community of React and React Native users on the Discord chat platform](https://discord.gg/0ZcbPKXt5bZjGY5n) in case you need help. + +The React Native team sends out periodical updates through the following channels: + +* [Blog](https://facebook.github.io/react-native/blog/) +* [Twitter](https://www.twitter.com/reactnative) + +Core contributors to React Native meet monthly and post their meeting notes on the React Native blog. You can also find ad hoc discussions in the [React Native Core Contributors](https://www.facebook.com/groups/reactnativeoss/) Facebook group. + +## Proposing a Change + +If you intend to change the public API, or make any non-trivial changes to the implementation, we recommend [filing an issue](https://github.com/facebook/react-native/issues/new). This lets us reach an agreement on your proposal before you put significant effort into it. + +If you're only fixing a bug, it's fine to submit a pull request right away but we still recommend to file an issue detailing what you're fixing. This is helpful in case we don't accept that specific fix but want to keep track of the issue. ## Pull Requests +If you send a pull request, please do it against the master branch. We maintain stable branches for stable releases separately but we don't accept pull requests to them directly. Instead, we cherry-pick non-breaking changes from master to the latest stable version. + The core team will be monitoring for pull requests. When we get one, we'll run some Facebook-specific integration tests on it first. From here, we'll need to get another person to sign off on the changes and then merge the pull request. For API changes we may need to fix internal uses, which could cause some delay. We'll do our best to provide updates and feedback throughout the process. Small pull requests are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it. -**Please submit your pull request on the `master` branch**. If the fix is critical and should be included in a stable branch please mention it and it will be cherry picked into it by a project maintainer. - *Before* submitting a pull request, please make sure the following is done… 1. Fork the repo and create your branch from `master`. @@ -51,6 +104,21 @@ You can learn more about running tests and contributing to React Native here: ht [travis]: https://travis-ci.org/facebook/react-native [circle]: http://circleci.com/gh/facebook/react-native +#### Breaking changes + +When adding a new breaking change, follow this template in your pull request: + +``` +### New breaking change here + +- **Who does this affect**: +- **How to migrate**: +- **Why make this breaking change**: +- **Severity (number of people affected x effort)**: +``` + +If your pull request is merged, a core contributor will update the [list of breaking changes](https://github.com/facebook/react-native/wiki/Breaking-Changes) which is then used to populate the release notes. + #### Copyright Notice for files Copy and paste this to the top of your new file(s): @@ -74,47 +142,13 @@ In order to accept your pull request, we need you to submit a CLA. You only need Complete your CLA here: https://code.facebook.com/cla -## Bugs - -We use GitHub Issues exclusively for tracking bugs in React Native. Questions and feature requests are tracked elsewhere: - - - Have a question? Ask on Stack Overflow: http://stackoverflow.com/questions/tagged/react-native - - If you have a question regarding future plans, check out the roadmap: https://github.com/facebook/react-native/wiki/Roadmap - - Have a feature request that is not covered in the roadmap? Submit it here: https://react-native.canny.io/feature-requests - -### Reporting Bugs - -The best way to get your bug fixed is to provide a reduced test case. Please provide either a [Sketch](https://sketch.expo.io/) or a public repository with a runnable example. - -Please report a single bug per issue. Always provide reproduction steps. You can use Snack in many cases to demonstrate an issue: https://snack.expo.io/. If the bug cannot be reproduced using Snack, verify that the issue can be reproduced locally by targeting the latest release candidate. Ideally, check if the issue is present in master as well. - -Do not forget to include sample code that reproduces the issue. Only open issues for bugs affecting either the latest stable release, or the current release candidate, or master (see http://facebook.github.io/react-native/versions.html). If it is not clear from your report that the issue can be reproduced in one of these releases, your issue will be closed. - -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 - -### Security Bugs - -Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe disclosure of security bugs. With that in mind, please do not file public issues; go through the process outlined on that page. - -## How to Get Help - -Refer to the official [React Native docs](https://facebook.github.io/react-native) to learn more about using React Native. The Getting Started Guide is a good place to start. - -Many React Native users are active on Stack Overflow. Browse -[existing questions](http://stackoverflow.com/questions/tagged/react-native), or ask your own technical question. - -If you have an open-ended question or you just want to get a general sense of what React Native folks talk about, check out the [React Native Community](https://www.facebook.com/groups/react.native.community) Facebook group. It has thousands of developers and almost all posts get a response. - -If you need an answer right away, check out the [#react-native](https://discord.gg/0ZcbPKXt5bZjGY5n) channel. There are usually a number of React Native experts there who can help out or point you to somewhere you might want to look. - -The React Native team sends out periodical updates through the following channels: - -* [Blog](https://facebook.github.io/react-native/blog/) -* [Twitter](https://www.twitter.com/reactnative) - ## Style Guide -### Code +Our linter will catch most styling issues that may exist in your code. You can check the status of your code styling by simply running `node linter.js `. + +However, there are still some styles that the linter cannot pick up. + +### Code Conventions #### General