|
| 1 | +# Contributing |
| 2 | + |
| 3 | +Everyone is welcome to contribute to GoDaddy's Open Source Software. Contributing doesn’t just mean |
| 4 | +submitting pull requests. To get involved you can, report or triage bugs and participate in |
| 5 | +discussions on the evolution of each project. |
| 6 | + |
| 7 | +No matter how you want to get involved, we ask that you first learn what’s expected of anyone who |
| 8 | +participates in the project by reading the Contribution Guidelines. |
| 9 | + |
| 10 | +**Please Note:** GitHub is for bug reports and contributions primarily - if you have a support |
| 11 | +question head over to [GoDaddy's Open Source Software Slack channel][slack]. |
| 12 | + |
| 13 | +## Answering Questions |
| 14 | + |
| 15 | +One of the most important and immediate ways you can support this project is to answer questions on [Slack][slack] or |
| 16 | +[Github][issues]. Whether you’re helping a newcomer understand a feature or troubleshooting an edge case with a |
| 17 | +seasoned developer, your knowledge and experience with JS can go a long way to help others. |
| 18 | + |
| 19 | +## Reporting Bugs |
| 20 | + |
| 21 | +**Do not report potential security vulnerabilities here. Refer to [SECURITY.md](./SECURITY.md) for more |
| 22 | +details about the process of reporting security vulnerabilities.** |
| 23 | + |
| 24 | +Before submitting a ticket, please be sure to have a simple replication of the behavior. |
| 25 | +If the issue is isolated to one of the dependencies of this project. Please create a Github issue in that project. |
| 26 | +All dependencies are open source software and can be easily found through [npm]. |
| 27 | + |
| 28 | +Submit a ticket for your issue, assuming one does not already exist: |
| 29 | + - Create it on our [Issue Tracker][issues] |
| 30 | + - Clearly describe the issue by following the template layout |
| 31 | + - Make sure to include steps to reproduce the bug. |
| 32 | + - A reproducible (unit) test could be helpful in solving the bug. |
| 33 | + - Describe the environment that (re)produced the problem. |
| 34 | + |
| 35 | +> For a bug to be actionable, it needs to be reproducible. If you or contributors can’t reproduce the bug, |
| 36 | +> try to figure out why. Please take care to stay involved in discussions around solving the problem. |
| 37 | +
|
| 38 | +## Triaging bugs or contributing code |
| 39 | + |
| 40 | +If you're triaging a bug, try to reduce it. Once a bug can be reproduced, reduce it to the smallest amount of |
| 41 | +code possible. Reasoning about a sample or unit test that reproduces a bug in just a few lines of code is |
| 42 | +easier than reasoning about a longer sample. |
| 43 | + |
| 44 | +From a practical perspective, contributions are as simple as: |
| 45 | +- Forking the repository on GitHub. |
| 46 | +- Making changes to your forked repository. |
| 47 | +- When committing, reference your issue (if present) and include a note about the fix. |
| 48 | +- If possible, and if applicable, please also add/update unit tests for your changes. |
| 49 | +- Push the changes to your fork and submit a pull request to the 'master' branch of the projects' repository. |
| 50 | + |
| 51 | +If you are interested in making a large change and feel unsure about its overall effect, |
| 52 | +please make sure to first discuss the change and reach a consensus with core contributors through [slack]. |
| 53 | +Then ask about the best way to go about making the change. |
| 54 | + |
| 55 | +## Code Review |
| 56 | + |
| 57 | +Any open source project relies heavily on code review to improve software quality: |
| 58 | + |
| 59 | +> All significant changes, by all developers, must be reviewed before they are committed to the repository. |
| 60 | +> Code reviews are conducted on GitHub through comments on pull requests or commits. |
| 61 | +> The developer responsible for a code change is also responsible for making all necessary review-related changes. |
| 62 | +
|
| 63 | +Sometimes code reviews will take longer than you would hope for, especially for larger features. |
| 64 | +Here are some accepted ways to speed up review times for your patches: |
| 65 | + |
| 66 | +- Review other people’s changes. If you help out, everybody will be more willing to do the same for you. |
| 67 | + Goodwill is our currency. |
| 68 | +- Split your change into multiple smaller changes. The smaller your change, the higher the probability that |
| 69 | + somebody will take a quick look at it. |
| 70 | +- Ping the change on [slack]. If it is urgent, provide reasons why it is important to get this change landed. |
| 71 | + Remember that you’re asking for valuable time from other professional developers. |
| 72 | + |
| 73 | +**Note that anyone is welcome to review and give feedback on a change, but only people with commit access |
| 74 | +to the repository can approve it.** |
| 75 | + |
| 76 | +## Attribution of Changes |
| 77 | + |
| 78 | +When contributors submit a change to this project, after that change is approved, |
| 79 | +other developers with commit access may commit it for the author. When doing so, |
| 80 | +it is important to retain correct attribution of the contribution. Generally speaking, |
| 81 | +Git handles attribution automatically. |
| 82 | + |
| 83 | +## Code Documentation |
| 84 | + |
| 85 | +Ensure that every function in `eslint-plugin-react-intl` is documented and follows the standards |
| 86 | +set by [JSDoc]. Finally, please stick to the code style as defined by the [Godaddy JS styleguide][style]. |
| 87 | + |
| 88 | +# Additional Resources |
| 89 | + |
| 90 | +- [General GitHub Documentation](https://help.github.com/) |
| 91 | +- [GitHub Pull Request documentation](https://help.github.com/send-pull-requests/) |
| 92 | +- [JSDoc] |
| 93 | + |
| 94 | +[issues]: https://github.com/godaddy/eslint-plugin-react-intl/issues |
| 95 | +[slack]: https://godaddy-oss.slack.com/messages/CHXEP5DNH |
| 96 | +[JSDoc]: http://usejsdoc.org/ |
| 97 | +[npm]: http://npmjs.org/ |
| 98 | +[style]: https://github.com/godaddy/javascript/#godaddy-style |
0 commit comments