blob: 3b1f39dc9fa88c042e5a04a52425be0a083ee98d [file] [log] [blame] [view]
Kristina Chodorow974b2082015-03-31 14:49:30 +00001---
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +00002layout: contribute
3title: Roadmap
Kristina Chodorow974b2082015-03-31 14:49:30 +00004---
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +00005
6# Bazel Feature Roadmap
7
8This document describes the Bazel team's plans for introducing features that
9will be incorporated into version 1.0. Note that this roadmap only includes
10features that the Bazel team itself intends to support. We anticipate that a
11number of other features will be added by code contributors.
12
13For the alpha and beta releases, the Bazel team will maintain two code
14repositories:
15
16* A Google-internal repository, containing both Bazel code and
17 Google-specific extensions and features
18* An external [GitHub repository](https://github.com/bazelbuild/bazel),
19 containing only the Bazel code.
20
21We anticipate making the external repository *primary* in the future, that is,
22code from Google and non-Google contributors will be committed and tested in the
23external repository first, then imported into the internal repository. For
24the alpha and beta releases, however, the internal repository will be primary.
25Changes to Bazel code will be frequently pushed from the internal to
26the external repository.
27
28## Feature list
29
30In the following table, each feature is associated with a corresponding
31milestone. The convention for the priorities are:
32
33* P0 feature will block the milestone; we will delay the milestone date
34 until the feature is shipped.
35* P1 feature can delay the milestone if the feature can be shipped with a
36 reasonable delay (2 months max).
37* P2 feature will be dropped and rescheduled for later rather than delaying
38 the milestone.
39
40We will update this list when reaching each milestone; some milestones may also
41be refined if appropriate.
42
43<table class="table table-condensed table-bordered">
44 <colgroup>
45 <col class="roadmap-col-phase"/>
46 <col class="roadmap-col-milestone"/>
47 <col class="roadmap-col-date"/>
48 <col class="roadmap-col-features"/>
49 </colgroup>
50 <thead>
51 <tr>
52 <th>Phase</th>
53 <th>Milestone</th>
54 <th>Target date</th>
55 <th>Features</th>
56 </tr>
57 </thead>
58 <tbody>
59 <tr>
60 <td rowspan="9"><b><a name="alpha"></a>Alpha</b></td>
61 <td rowspan="9"><b>Alpha</b><br/><span class="label label-default">Released</span></td>
62 <td rowspan="9"><b>2015&#8209;03&#8209;24</b></td>
63 <td>Linux &amp; OS X Support</td>
64 </tr>
65 <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>
66 <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>
67 <tr><td>Objective-C for iOS (<a href="http://bazel.io/docs/be/objective-c.html#objc_binary">build</a>)</td></tr>
68 <tr><td>Python (<a href="http://bazel.io/docs/be/python.html#py_binary">build</a>)</td></tr>
69 <tr><td>iOS applications (<a href="http://bazel.io/docs/be/objective-c.html#ios_application">build</a>)</td></tr>
70 <tr><td>Skylark extension mechanism (<a href="http://bazel.io/docs/skylark/index.html">build</a>)</td></tr>
71 <tr><td>Basic test suite on GitHub</td></tr>
72 <tr><td>Support for fetching dependencies from <a href="http://bazel.io/docs/be/workspace.html#maven_jar">Maven repositories</a>
73 and <a href="http://bazel.io/docs/be/workspace.html#http_archive">web servers</a></td></tr>
74 <tr>
75 <td rowspan="30"><b><a name="beta"></a>Beta</b></td>
76 <td rowspan="9">
77 <a href="https://github.com/bazelbuild/bazel/releases/tag/0.1.0"><b>0.1</b>
78 <br/><span class="label label-default">Released</span></a>
79 </td>
80 <td rowspan="9"><b>2015&#8209;09&#8209;01</b></td>
81 <td>P0. Binary distribution for Linux & OS X</td<
82 </tr>
83 <tr><td>P0. Public <a href="http://ci.bazel.io">continuous integration system</a></td></tr>
84 <tr><td>P0. Support for <a href="http://bazel.io/docs/external.html">fetching transitive dependencies from Maven Central</a></td></tr>
85 <tr><td>P0. Android application (<a href="http://bazel.io/docs/be/android.html#android_binary">build</a>
86 and <a href="http://bazel.io/docs/bazel-user-manual.html#mobile-install">install</a>)</td></tr>
87 <tr><td>P1. Support for <a href="http://bazel.io/docs/external.html">prefetching and caching remote dependencies</a></td></tr>
88 <tr><td>P1. Docker (<a href="http://bazel.io/docs/be/docker.html">build and load</a>)</td></tr>
89 <tr><td>P2. <a href="http://bazel.io/docs/bazel-user-manual.html#sandboxing">Sandboxing of actions for Linux</a></td></tr>
90 <tr><td>P2. AppEngine (<a href="http://bazel.io/docs/be/appengine.html">build and load</a>)</td></tr>
91 <tr><td>P2. <a href="http://bazel.io/blog/2015/07/29/dashboard-dogfood.html">Test result dashboard</a></tr></td>
92 <tr>
93 <td rowspan="5">
94 <a href="https://github.com/bazelbuild/bazel/releases/tag/0.2.0"><b>0.2</b>
95 <br/><span class="label label-default">Released</span></a>
96 </td>
97 <td rowspan="5"><b>2016&#8209;02&#8209;18</b></td>
98 <td>P0. <a href="https://github.com/bazelbuild/bazel/tree/master/src/test/java/com/google/devtools">Significantly increase test coverage</a></td>
99 </tr>
100 <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>
David Chen2d0411a2016-09-09 11:22:24 +0000101 <tr><td>P2. <a href="https://github.com/bazelbuild/rules_go">Go language support (build and tests)</a></td></tr>
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +0000102 <tr><td>P2. <a href="https://github.com/bazelbuild/bazel/releases/latest">Debian packages for Bazel</a></td></tr>
103 <tr><td>P2. <a href="http://braumeister.org/formula/bazel">OS X homebrew recipe for distributing Bazel</a></td></tr>
104 <tr>
105 <td rowspan="5">
106 <a href="https://github.com/bazelbuild/bazel/releases/tag/0.3.0"><b>0.3</b>
107 <br/><span class="label label-default">Released</span></a>
108 </td>
109 <td rowspan="5"><b>2016&#8209;06&#8209;10</b></td>
110 <td>P0. <a href="http://bazel.io/docs/windows.html">Bazel can bootstrap itself on Windows without requiring admin privileges</a></td></tr>
111 </tr>
112 <tr><td>P1. <a href="http://bazel.io/blog/2016/06/10/ide-support.html">Interface for IDE support</a></td></tr>
113 <tr><td>P1. IDE support for <a href="http://tulsi.bazel.io">Xcode (stable)</a> and <a href="https://github.com/bazelbuild/e4b">Eclipse (experimental)</a></td></tr>
114 <tr><td>P1. <a href="https://docs.google.com/document/d/1jKbNXOVp2T1zJD_iRnVr8k5D0xZKgO8blMVDlXOksJg">Custom remote repositories using Skylark</a></td></tr>
115 <tr><td>P2. <a href="https://github.com/bazelbuild/bazel/commit/79adf59e2973754c8c0415fcab45cd58c7c34697">Prototype for distributed caching of build artifact</a></td></tr>
116 <tr>
117 <td rowspan="2"><b>0.4</b></td>
Damien Martin-Guillerez0b12de62016-09-06 14:54:59 +0000118 <td rowspan="2"><b>2016&#8209;10</b></td>
Helen Altshuler08673c12016-09-27 22:53:24 +0000119 <td>P0.<a
120 href="https://github.com/bazelbuild/bazel/commit/490f250b27183a886cf70a5fe9e99d9428141b34"> Persistent Java compiler is enabled</a></td>
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +0000121 </tr>
122 <tr><td>P2. Sandboxing of action for OS X</td></tr>
123 <tr>
124 <td rowspan="4"><b>0.5</b></td>
Damien Martin-Guillerez780a1052016-08-26 07:56:24 +0000125 <td rowspan="4"><b>2016&#8209;11</b></td>
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +0000126 <td>P0. Support for testing Android apps</td>
127 </tr>
128 <tr><td>P0. Bazel supports building Java, C++ and Python on Windows</td></tr>
Damien Martin-Guillerez780a1052016-08-26 07:56:24 +0000129 <tr><td>P1. Bazel supports distributed execution of actions through a stable API</td></tr>
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +0000130 <tr><td>P2. Support for Swift language</td></tr>
131 <tr>
132 <td rowspan="2"><b>0.6</b></td>
Damien Martin-Guillerez0b12de62016-09-06 14:54:59 +0000133 <td rowspan="2"><b>2017 Q1</b></td>
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +0000134 <td>P0. Searchable "hub" of Skylark rules</td>
135 </tr>
136 <tr><td>P2. Reference ("pull") remote docker images as an input to the build process</td></tr>
137 <tr>
138 <td rowspan="3"><b>0.7</b></td>
Damien Martin-Guillerez0b12de62016-09-06 14:54:59 +0000139 <td rowspan="3"><b>2017 Q2</b></td>
Damien Martin-Guillerez95a54b92016-07-28 12:47:11 +0000140 <td>P0. Full Windows support for Android: Android feature set is identical for Windows and Linux/OS X</tr>
141 </tr>
142 <tr><td>P1. Android Studio interoperability</td></tr>
143 <tr><td>P1. Support for testing iOS apps</td></tr>
144 <tr>
145 <td rowspan="3"><b><a name="stable"></a>Stable</b></td>
146 <td rowspan="3"><b>1.0</b></td>
147 <td rowspan="3"><b>2017 Q4</b></td>
148 <td>P0. Github repository is primary</td>
149 </tr>
150 <tr><td>P0. Extension APIs are stable and versioned</td></tr>
151 <tr><td>P1. Bazel is available in the Ubuntu and Debian package managers</td></tr>
152 </tbody>
153</table>