aboutsummaryrefslogtreecommitdiffhomepage
path: root/site/roadmap.md
blob: 02021bdccc47625f3ff09866c71feb01aa283da4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---
layout: community
---

# Bazel Feature Roadmap

Author: [The Bazel Team](https://groups.google.com/forum/#!forum/bazel-discuss)

This document describes the Bazel team's plans for introducing future
system features. The document is divided into two main sections:

*   *Near-term plans:* Features that the team is committed to supporting
    for alpha and beta releases.
*   *Tentative post-beta plans:* Features that the team is considering
    supporting within one year of the beta release. The availability and
    sequencing of features on this list will depend technical feasibility
    and user demand.

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/google/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.

## Near-term Plans

### <a name="alpha"></a>Alpha release (2015-03)

This release is intended to

*   give users access to a basic set of supported features
*   allow potential code contributors to understand Bazel's capabilities and
    architecture
*   enable users to monitor the team's progress toward a beta release

Alpha users will need to build Bazel from source; we will not provide binary
releases until the beta. We will accept code contributions, but may need to
reject or defer code contributions related to beta features still under
development. Some features will be fully supported
henceforward, others are still experimental or partially supported;
see our [feature support document](support.html) for details.

The following features/capabilities will be available in the alpha:

*   Bazel runs on Linux and OS X
*   Bazel builds itself on Linux and OS X
*   Build rules target executables running on Linux and OS X
*   Support for building and testing C++
*   Support for building and testing Java
*   Support for building Objective C
*   Support for building Python
*   Support for building iOS apps
*   Documentation for supported build rules and features
*   Online support for bug and feature requests
*   A basic Bazel test suite in GitHub
*   Support for referencing Java JAR dependencies from HTTP and Maven endpoints
*   Support for referencing remote source repositories via HTTP
*   Support for extensibility via an interpreted Python subset (Skylark)

### <a name="beta"></a>Beta release (target date: 2015-07)

The beta release will add support for additional languages and platform and
various other fully supported features. In particular, the following
features/capabilities will be available:

*   Binary versions of Bazel for Linux and OS X
*   The Bazel test suite runs on externally-visible continuous integration
    infrastructure
*   Support for referencing transitive sources via Maven
*   Support for prefetching and caching remote dependencies
*   Support for building Android apps
*   Support for testing iOS apps
*   Support for building and deploying Docker images

## Tentative post-beta plans

*   Binary releases of Bazel at least monthly
*   Full support for build action sandboxing
*   Support for testing Android apps
*   Support for distributed caching of build artifacts
*   All Bazel tests currently in Google's repository are ported to GitHub
*   The external repository is primary
*   Support for building and deploying AppEngine applications
*   Support for testing mobile applications with
    [Cloud Test Lab](https://developers.google.com/cloud-test-lab/).
*   Support for the Go language
*   Support for Javascript
*   Android Studio interoperability