1# How to become a contributor and submit your own code
2
3## Contributor License Agreements
4
5We'd love to accept your sample apps and patches! Before we can take them, we
6have to jump a couple of legal hurdles.
7
8Please fill out either the individual or corporate Contributor License Agreement
9(CLA).
10
11  * If you are an individual writing original source code and you're sure you
12    own the intellectual property, then you'll need to sign an [individual CLA]
13    (http://code.google.com/legal/individual-cla-v1.0.html).
14  * If you work for a company that wants to allow you to contribute your work,
15    then you'll need to sign a [corporate CLA]
16    (http://code.google.com/legal/corporate-cla-v1.0.html).
17
18Follow either of the two links above to access the appropriate CLA and
19instructions for how to sign and return it. Once we receive it, we'll be able to
20accept your pull requests.
21
22## Contributing a Patch
23
241. Sign a Contributor License Agreement, if you have not yet done so (see
25   details above).
261. Create your change to the repo in question.
27    * Fork the desired repo, develop and test your code changes.
28    * Ensure that your code is clear and comprehensible.
29    * Ensure that your code has an appropriate set of unit tests which all pass.
301. Submit a pull request.
311. The repo owner will review your request. If it is approved, the change will
32   be merged. If it needs additional work, the repo owner will respond with
33   useful comments.
34
35## Contributing a New Sample App
36
371. Sign a Contributor License Agreement, if you have not yet done so (see
38   details above).
391. Create your own repo for your app following this naming convention:
40    * mirror-{app-name}-{language or plaform}
41    * apps: quickstart, photohunt-server, photohunt-client
42    * example:  mirror-quickstart-android
43    * For multi-language apps, concatenate the primary languages like this:
44      mirror-photohunt-server-java-python.
45
461. Create your sample app in this repo.
47    * Be sure to clone the README.md, CONTRIBUTING.md and LICENSE files from the
48      googlecast repo.
49    * Ensure that your code is clear and comprehensible.
50    * Ensure that your code has an appropriate set of unit tests which all pass.
51    * Instructional value is the top priority when evaluating new app proposals for
52      this collection of repos.
531. Submit a request to fork your repo in googlecast organization.
541. The repo owner will review your request. If it is approved, the sample will
55   be merged. If it needs additional work, the repo owner will respond with
56   useful comments.
57