| --- |
| layout: community |
| title: Roadmap |
| --- |
| |
| # Bazel Feature Roadmap |
| |
| This document describes the Bazel team's plans for introducing features that |
| will be incorporated into version 1.0. Note that this roadmap only includes |
| features that the Bazel team itself intends to support. We anticipate that a |
| number of other features will be added by code contributors. |
| |
| For the alpha and beta releases, the Bazel team will maintain two code |
| repositories: |
| |
| * A Google-internal repository, containing both Bazel code and |
| Google-specific extensions and features |
| * An external [GitHub repository](https://github.com/bazelbuild/bazel), |
| containing only the Bazel code. |
| |
| We anticipate making the external repository *primary* in the future, that is, |
| code from Google and non-Google contributors will be committed and tested in the |
| external repository first, then imported into the internal repository. For |
| the alpha and beta releases, however, the internal repository will be primary. |
| Changes to Bazel code will be frequently pushed from the internal to |
| the external repository. |
| |
| ## Feature list |
| |
| In the following table, each feature is associated with a corresponding |
| milestone. The convention for the priorities are: |
| |
| * P0 feature will block the milestone; we will delay the milestone date |
| until the feature is shipped. |
| * P1 feature can delay the milestone if the feature can be shipped with a |
| reasonable delay (2 months max). |
| * P2 feature will be dropped and rescheduled for later rather than delaying |
| the milestone. |
| |
| We will update this list when reaching each milestone; some milestones may also |
| be refined if appropriate. |
| |
| <table class="table table-condensed table-bordered"> |
| <colgroup> |
| <col class="roadmap-col-phase"/> |
| <col class="roadmap-col-milestone"/> |
| <col class="roadmap-col-date"/> |
| <col class="roadmap-col-features"/> |
| </colgroup> |
| <thead> |
| <tr> |
| <th>Phase</th> |
| <th>Milestone</th> |
| <th>Target date</th> |
| <th>Features</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td rowspan="9"><b><a name="alpha"></a>Alpha</b></td> |
| <td rowspan="9"><b>Alpha</b><br/><span class="label label-default">Released</span></td> |
| <td rowspan="9"><b>2015‑03‑24</b></td> |
| <td>Linux & OS X Support</td> |
| </tr> |
| <tr><td>C++ (<a href="http://bazel.io/docs/be/c-cpp.html#cc_binary">build</a> and <a href="http://bazel.io/docs/be/c-cpp.html#cc_test">test</a>)</td></tr> |
| <tr><td>Java (<a href="http://bazel.io/docs/be/java.html#java_binary">build</a> and <a href="http://bazel.io/docs/be/java.html#java_test">test</a>)</td></tr> |
| <tr><td>Objective-C for iOS (<a href="http://bazel.io/docs/be/objective-c.html#objc_binary">build</a>)</td></tr> |
| <tr><td>Python (<a href="http://bazel.io/docs/be/python.html#py_binary">build</a>)</td></tr> |
| <tr><td>iOS applications (<a href="http://bazel.io/docs/be/objective-c.html#ios_application">build</a>)</td></tr> |
| <tr><td>Skylark extension mechanism (<a href="http://bazel.io/docs/skylark/index.html">build</a>)</td></tr> |
| <tr><td>Basic test suite on GitHub</td></tr> |
| <tr><td>Support for fetching dependencies from <a href="http://bazel.io/docs/be/workspace.html#maven_jar">Maven repositories</a> |
| and <a href="http://bazel.io/docs/be/workspace.html#http_archive">web servers</a></td></tr> |
| <tr> |
| <td rowspan="28"><b><a name="beta"></a>Beta</b></td> |
| <td rowspan="9"> |
| <a href="https://github.com/bazelbuild/bazel/releases/tag/0.1.0"><b>0.1</b> |
| <br/><span class="label label-default">Released</span></a> |
| </td> |
| <td rowspan="9"><b>2015‑09‑01</b></td> |
| <td>P0. Binary distribution for Linux & OS X</td< |
| </tr> |
| <tr><td>P0. Public <a href="http://ci.bazel.io">continuous integration system</a></td></tr> |
| <tr><td>P0. Support for <a href="http://bazel.io/docs/external.html">fetching transitive dependencies from Maven Central</a></td></tr> |
| <tr><td>P0. Android application (<a href="http://bazel.io/docs/be/android.html#android_binary">build</a> |
| and <a href="http://bazel.io/docs/bazel-user-manual.html#mobile-install">install</a>)</td></tr> |
| <tr><td>P1. Support for <a href="http://bazel.io/docs/external.html">prefetching and caching remote dependencies</a></td></tr> |
| <tr><td>P1. Docker (<a href="http://bazel.io/docs/be/docker.html">build and load</a>)</td></tr> |
| <tr><td>P2. <a href="http://bazel.io/docs/bazel-user-manual.html#sandboxing">Sandboxing of actions for Linux</a></td></tr> |
| <tr><td>P2. AppEngine (<a href="http://bazel.io/docs/be/appengine.html">build and load</a>)</td></tr> |
| <tr><td>P2. <a href="http://bazel.io/blog/2015/07/29/dashboard-dogfood.html">Test result dashboard</a></tr></td> |
| <tr> |
| <td rowspan="5"> |
| <a href="https://github.com/bazelbuild/bazel/releases/tag/0.2.0"><b>0.2</b> |
| <br/><span class="label label-default">Released</span></a> |
| </td> |
| <td rowspan="5"><b>2016‑02‑18</b></td> |
| <td>P0. <a href="https://github.com/bazelbuild/bazel/tree/master/src/test/java/com/google/devtools">Significantly increase test coverage</a></td> |
| </tr> |
| <tr><td>P0. Support for fetching <a href="http://bazel.io/docs/external.html">remote</a> <a href="http://bazel.io/docs/be/functions.html#load">Skylark rules</a></td></tr> |
| <tr><td>P2. <a href="http://bazel.io/docs/be/go.html">Go language support (build and tests)</a></td></tr> |
| <tr><td>P2. <a href="https://github.com/bazelbuild/bazel/releases/latest">Debian packages for Bazel</a></td></tr> |
| <tr><td>P2. <a href="http://braumeister.org/formula/bazel">OS X homebrew recipe for distributing Bazel</a></td></tr> |
| <tr> |
| <td rowspan="4"><b>0.3</b></td> |
| <td rowspan="4"><b>2016‑04</b></td> |
| <td>P0. <a href="http://bazel.io/docs/windows.html">Bazel can bootstrap itself on Windows without requiring admin privileges</a></td></tr> |
| </tr> |
| <tr><td>P1. Interface for IDE support</td></tr> |
| <tr><td>P1. <a href="https://docs.google.com/document/d/1jKbNXOVp2T1zJD_iRnVr8k5D0xZKgO8blMVDlXOksJg">Custom remote repositories using Skylark</a></td></tr> |
| <tr><td>P2. <a href="https://github.com/bazelbuild/bazel/commit/79adf59e2973754c8c0415fcab45cd58c7c34697">Prototype for distributed caching of build artifact</a></td></tr> |
| <tr> |
| <td rowspan="2"><b>0.4</b></td> |
| <td rowspan="2"><b>2016‑05</b></td> |
| <td>P0. Persistent Java compiler is enabled</td> |
| </tr> |
| <tr><td>P2. Sandboxing of action for OS X</td></tr> |
| <tr> |
| <td rowspan="3"><b>0.5</b></td> |
| <td rowspan="3"><b>2016‑07</b></td> |
| <td>P0. Support for testing Android apps</td> |
| </tr> |
| <tr><td>P0. Bazel supports building Java, C++ and Python on Windows</td></tr> |
| <tr><td>P1. Distributed execution of actions</td></tr> |
| <tr> |
| <td rowspan="2"><b>0.6</b></td> |
| <td rowspan="2"><b>2016‑09</b></td> |
| <td>P0. Searchable "hub" of Skylark rules</td> |
| </tr> |
| <tr><td>P2. Reference ("pull") remote docker images as an input to the build process</td></tr> |
| <tr> |
| <td rowspan="3"><b>0.7</b></td> |
| <td rowspan="3"><b>2016‑11</b></td> |
| <td>P0. Full Windows support for Android: Android feature set is identical for Windows and Linux/OS X</tr> |
| </tr> |
| <tr><td>P1. Android Studio interoperability</td></tr> |
| <tr><td>P1. Support for testing iOS apps</td></tr> |
| <tr> |
| <td rowspan="3"><b><a name="stable"></a>Stable</b></td> |
| <td rowspan="3"><b>1.0</b></td> |
| <td rowspan="3"><b>2017</b></td> |
| <td>P0. Github repository is primary</td> |
| </tr> |
| <tr><td>P0. Extension APIs are stable and versioned</td></tr> |
| <tr><td>P1. Bazel is available in the Ubuntu and Debian package managers</td></tr> |
| </tbody> |
| </table> |