aboutsummaryrefslogtreecommitdiff
path: root/ROADMAP.md
blob: 57e46c32b9810ff5057b5ce167385059fdfc9e48 (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

# Android Bazel Roadmap

This document describes the major release milestones for the Android Bazel
Rules. There are three major pillars that we are focused on when developing the
Android rules - **Performance**, **Features**, and **Developer Experience** -
and for each milestone we list the main items for each pillar. Progress on each
item is tracked via an issue.

If you have feedback on this roadmap (including feature and reprioritization
requests) please open an issue or comment on the existing one.

## Rules Alpha (est. mid 2019)

The primary goal of the Rules Alpha release is to start collecting feedback from
projects and developers that are interested in being early adopters of the
rules. Our intention is for Rules Alpha to be a 1:1 identical drop-in
replacement for the native Android rules, although undoubtedly there will be
missing features and we cannot always guarantee 100% backwards compatibility.

### Performance

*   Use AAPT2 for resource processing
*   Use D8 for Dexing

### Features

*   Support android_instrumentation_test on macOS
*   Support building and testing on Google Cloud Platform Remote Build Execution
*   Support new Android App Bundle format
*   Accept APKs directly into android_instrumentation_test
*   Simplified package and dependency management
*   Improve Kotlin interoperability
*   Integration with Bazel's platforms and toolchains support
*   Modern and correct NDK support

### Developer Experience

*   Documentation for Android with Bazel compatibility across Windows, macOS,
    Linux
*   Documentation for Android with Bazel compatibility across Android Studio
    versions
*   Stable and reliable CI
*   NDK documentation and samples

## Rules Beta (est. late 2019)

The goal for the Rules Beta release is to provide a stable, (mostly) feature
complete version of the rules for all developers and projects. We intend the
Rules Beta release to be the first version of the rules to be broadly adopted,
and will comply with Bazel's backwards compatibility guarantees.

### Performance

*   Improve resource processing speed and incrementality
*   Decouple Java compilation from R.class generation
*   Launch Bazel mobile-install v2

### Features

*   New android_application rule for app packaging / sourceless binary /
    android_application
*   Improved support for AAR creation
*   Support Databinding 3.4.0 (v2)
*   Support `bazel coverage` for all test rules
*   Integration with Android Lint

### Developer Experience

*   Document best practices
*   Best in class tutorials and migration guides