# Contributing to Bazel

## 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 [build Bazel from source](https://bazel.build/install/compile-source),
[contribute to Bazel](https://bazel.build/contributing.html),
the [acceptance process for your pull request](https://bazel.build/basics/patching.html),
and the lifecycle of a Bazel [issue](https://www.bazel.build/maintaining/maintainers-guide.html#lifecycle-issue)
and [pull request](https://www.bazel.build/maintaining/maintainers-guide.html#lifecycle-pull-request).
