Damien Martin-Guillerez | 43e3cd4 | 2015-09-08 21:39:30 +0000 | [diff] [blame] | 1 | # [Bazel](http://bazel.io) ([Beta](http://bazel.io/roadmap.html#beta)) |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 2 | |
| 3 | *{Fast, Correct} - Choose two* |
| 4 | |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 5 | Bazel is a build tool that builds code quickly and reliably. It is used to build |
| 6 | the majority of Google's software, and thus it has been designed to handle |
Googler | f346901 | 2015-03-18 15:33:20 +0000 | [diff] [blame] | 7 | build problems present in Google's development environment, including: |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 8 | |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 9 | * **A massive, shared code repository, in which all software is built from |
| 10 | source.** Bazel has been built for speed, using both caching and parallelism |
Googler | f346901 | 2015-03-18 15:33:20 +0000 | [diff] [blame] | 11 | to achieve this. Bazel is critical to Google's ability to continue |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 12 | to scale its software development practices as the company grows. |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 13 | |
Googler | c9a9f4c | 2015-03-24 15:55:18 +0000 | [diff] [blame] | 14 | * **An emphasis on automated testing and releases.** Bazel has |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 15 | been built for correctness and reproducibility, meaning that a build performed |
| 16 | on a continuous build machine or in a release pipeline will generate |
Googler | f346901 | 2015-03-18 15:33:20 +0000 | [diff] [blame] | 17 | bitwise-identical outputs to those generated on a developer's machine. |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 18 | |
Googler | f346901 | 2015-03-18 15:33:20 +0000 | [diff] [blame] | 19 | * **Language and platform diversity.** Bazel's architecture is general enough to |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 20 | support many different programming languages within Google, and can be |
| 21 | used to build both client and server software targeting multiple |
| 22 | architectures from the same underlying codebase. |
| 23 | |
Anthony Bellissimo | efa02e4 | 2015-04-28 17:06:00 +0000 | [diff] [blame] | 24 | Find more background about Bazel in our [FAQ](http://bazel.io/faq.html). |
Googler | 5fba619 | 2015-03-17 22:12:05 +0000 | [diff] [blame] | 25 | |
Googler | e7bfc7e | 2015-03-18 22:03:53 +0000 | [diff] [blame] | 26 | ## Getting Started |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 27 | |
Tom Hennigan | aae65e0 | 2015-03-25 08:47:28 +0000 | [diff] [blame] | 28 | * How to [install Bazel](http://bazel.io/docs/install.html) |
| 29 | * How to [get started using Bazel](http://bazel.io/docs/getting-started.html) |
| 30 | * The Bazel command line is documented in the [user manual](http://bazel.io/docs/bazel-user-manual.html) |
| 31 | * The rule reference documentation is in the [build encyclopedia](http://bazel.io/docs/build-encyclopedia.html) |
| 32 | * How to [use the query command](http://bazel.io/docs/query.html) |
| 33 | * How to [extend Bazel](http://bazel.io/docs/skylark/index.html) |
| 34 | * The test environment is described in the [test encyclopedia](http://bazel.io/docs/test-encyclopedia.html) |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 35 | |
David Chen | 3f16b56 | 2015-07-23 15:04:50 +0000 | [diff] [blame] | 36 | ## About the Bazel project: |
Han-Wen Nienhuys | d08b27f | 2015-02-25 16:45:20 +0100 | [diff] [blame] | 37 | |
Phil Bordelon | ab30ea4 | 2015-04-03 13:57:01 +0000 | [diff] [blame] | 38 | * How to [contribute to Bazel](http://bazel.io/contributing.html) |
| 39 | * Our [governance plan](http://bazel.io/governance.html) |
| 40 | * Future plans are in the [roadmap](http://bazel.io/roadmap.html) |
| 41 | * For each feature, which level of [support](http://bazel.io/support.html) to expect. |