# How to become a contributor and submit your own code

## Contributor License Agreements

We'd love to accept your sample apps and patches! Before we can take them, we
have to jump a couple of legal hurdles.

Please fill out either the individual or corporate Contributor License Agreement
(CLA).

  * If you are an individual writing original source code and you're sure you
    own the intellectual property, then you'll need to sign an [individual CLA]
    (http://code.google.com/legal/individual-cla-v1.0.html).
  * If you work for a company that wants to allow you to contribute your work,
    then you'll need to sign a [corporate CLA]
    (http://code.google.com/legal/corporate-cla-v1.0.html).

Follow either of the two links above to access the appropriate CLA and
instructions for how to sign and return it. Once we receive it, we'll be able to
accept your pull requests.

## Contributing a Patch

1. Sign a Contributor License Agreement, if you have not yet done so (see
   details above).
1. Create your change to the repo in question.
    * Fork the desired repo, develop and test your code changes.
    * Ensure that your code is clear and comprehensible.
    * Ensure that your code has an appropriate set of unit tests which all pass.
1. Submit a pull request.
1. The repo owner will review your request. If it is approved, the change will
   be merged. If it needs additional work, the repo owner will respond with
   useful comments.

## Contributing a New Sample App

1. Sign a Contributor License Agreement, if you have not yet done so (see
   details above).
1. Create your own repo for your app following this naming convention:
    * mirror-{app-name}-{language or plaform}
    * apps: quickstart, photohunt-server, photohunt-client
    * example:  mirror-quickstart-android
    * For multi-language apps, concatenate the primary languages like this:
      mirror-photohunt-server-java-python.

1. Create your sample app in this repo.
    * Be sure to clone the README.md, CONTRIBUTING.md and LICENSE files from the
      googlesamples repo.
    * Ensure that your code is clear and comprehensible.
    * Ensure that your code has an appropriate set of unit tests which all pass.
    * Instructional value is the top priority when evaluating new app proposals for
      this collection of repos.
1. Submit a request to fork your repo in googlesamples organization.
1. The repo owner will review your request. If it is approved, the sample will
   be merged. If it needs additional work, the repo owner will respond with
   useful comments.