Contribute!

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, 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.

Phase Milestone Target date Features
Alpha Alpha
Released
2015‑03‑24 Linux & OS X Support
C++ (build and test)
Java (build and test)
Objective-C for iOS (build)
Python (build)
iOS applications (build)
Skylark extension mechanism (build)
Basic test suite on GitHub
Support for fetching dependencies from Maven repositories and web servers
Beta 0.1
Released
2015‑09‑01 P0. Binary distribution for Linux & OS X
P0. Public continuous integration system
P0. Support for fetching transitive dependencies from Maven Central
P0. Android application (build and install)
P1. Support for prefetching and caching remote dependencies
P1. Docker (build and load)
P2. Sandboxing of actions for Linux
P2. AppEngine (build and load)
P2. Test result dashboard
0.2
Released
2016‑02‑18 P0. Significantly increase test coverage
P0. Support for fetching remote Skylark rules
P2. Go language support (build and tests)
P2. Debian packages for Bazel
P2. OS X homebrew recipe for distributing Bazel
0.3
Released
2016‑06‑10 P0. Bazel can bootstrap itself on Windows without requiring admin privileges
P1. Interface for IDE support
P1. IDE support for Xcode (stable) and Eclipse (experimental)
P1. Custom remote repositories using Skylark
P2. Prototype for distributed caching of build artifact
0.4
Released
2016‑11‑02 P0. Persistent Java compiler is enabled
P2. Sandboxing of action for OS X
0.5 2017‑01 P0. Support for testing Android apps
P0. Bazel supports building Java, C++ and Python on Windows
P1. Bazel supports distributed execution of actions through a stable API
P2. Support for Swift language
0.6 2017‑03 P0. Searchable "hub" of Skylark rules
P2. Reference ("pull") remote docker images as an input to the build process
0.7 2017 Q2 P0. Full Windows support for Android: Android feature set is identical for Windows and Linux/OS X
P1. Android Studio interoperability
P1. Support for testing iOS apps
Stable 1.0 2017 Q4 P0. Github repository is primary
P0. Extension APIs are stable and versioned
P1. Bazel is available in the Ubuntu and Debian package managers