# Contributing to tools_android

## Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License
Agreement. You (or your employer) retain the copyright to your contribution,
this simply gives us permission to use and redistribute your contributions as
part of the project. Head over to <https://cla.developers.google.com/> to see
your current agreements on file or to sign a new one.

You generally only need to submit a CLA once, so if you've already submitted one
(even if it was for a different project), you probably don't need to do it
again.

## Patch Acceptance Process

Read how to [contribute to Bazel](https://bazel.build/contributing.html)

## Setting up your development environment

Read how to [set up your development environment](https://bazel.build/contributing.html)
