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‑03 P0. Support for building and testing Java, C++ and Python on Windows
P1. Initial API for a Build Event Protocol
P1. Support for coverage for Java
P1. Bazel installer optionally bundles the JDK
P2. Repository rules no longer have invalidation issues
0.6 2017‑04 P0. Stable API for Remote execution including platform description
P0. List of feature to deprecate until version 1.0 are tracked in a publicly available document
P1. Bazel on Windows does not need to install MSYS
P2. Bazel can load workspace recursively
0.7 2017‑07 P0. Skylark is fully documented; strategy for user-provided Skylark rule documentation
P0. Support for Android integration testing
P0. Support for Robolectric test for Android
P1. The Build Event Protocol is stable
P1. Support for coverage can be extended in Skylark and C++
P1. Support for testing Skylark rules
P2. All external repositories can use the local cache
P2. Local caching of build artifacts
0.8 2017‑09 P0. Support for iOS integration testing
P1. Bazel can build Android application on Windows
P1. Local caching of external repository is turned on by default and has a deletion strategy
P1. Access to native rules functionality from Skylark ("sandwich")
0.9 2017‑12 P0. Full Windows support
P1. Full test suite is open-sourced
Stable 1.0 2018 P0. APIs are versioned
P0. Github is primary
P1. Deprecated features are removed
P1. Support policy is defined regarding LTS release
P1. Public review process for design documents
P1. Bazel respects the standard for Debian packaging
P2. Bazel is in the list of debian package for the next stable