1
|
# Contributing
|
2
|
|
3
|
Want to contribute? Great! First, read this page (including the small print at
|
4
|
the end).
|
5
|
|
6
|
## Contributor License Agreement
|
7
|
|
8
|
Before we can use your code, you must sign the [Google Individual Contributor
|
9
|
License
|
10
|
Agreement](https://developers.google.com/open-source/cla/individual?csw=1)
|
11
|
(CLA), which you can do online. The CLA is necessary mainly because you own the
|
12
|
copyright to your changes, even after your contribution becomes part of our
|
13
|
codebase, so we need your permission to use and distribute your code. We also
|
14
|
need to be sure of various other things—for instance that you'll tell us if you
|
15
|
know that your code infringes on other people's patents. You don't have to sign
|
16
|
the CLA until after you've submitted your code for review (a link will be
|
17
|
automatically added to your Pull Request) and a member has approved it, but you
|
18
|
must do it before we can put your code into our codebase. Before you start
|
19
|
working on a larger contribution, you should get in touch with us first through
|
20
|
the issue tracker with your idea so that we can help out and possibly guide you.
|
21
|
Coordinating up front makes it much easier to avoid frustration later on.
|
22
|
|
23
|
## Linting and testing
|
24
|
|
25
|
We use PHP Coding Standards Fixer to maintain coding standards and PHPUnit to
|
26
|
run our tests. For convenience, there are Composer scripts to run each of these:
|
27
|
|
28
|
```sh
|
29
|
composer run-script lint
|
30
|
composer run-script test
|
31
|
```
|
32
|
|
33
|
These are run automatically by [Travis
|
34
|
CI](https://travis-ci.org/google/recaptcha) against your Pull Request, but it's
|
35
|
a good idea to run them locally before submission to avoid getting things
|
36
|
bounced back. That said, tests can be a little daunting so feel free to submit
|
37
|
your PR and ask for help.
|
38
|
|
39
|
## Code reviews
|
40
|
|
41
|
All submissions, including submissions by project members, require review.
|
42
|
Reviews are conducted on the Pull Requests. The reviews are there to ensure and
|
43
|
improve code quality, so treat them like a discussion and opportunity to learn.
|
44
|
Don't get disheartened if your Pull Request isn't just automatically approved.
|
45
|
|
46
|
### The small print
|
47
|
|
48
|
Contributions made by corporations are covered by a different agreement than the
|
49
|
one above, the Software Grant and Corporate Contributor License Agreement.
|