blob: 64add89dc09538c6e9f88bbabe72ed3b56d99f93 [file] [log] [blame] [view] [edit]
# Kotlin Bazel Roadmap
This document describes the major release milestones for the Kotlin Bazel Rules.
There are three major pillars that we are focused on when developing the Kotlin
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.
## Kotlin 1.3 (est. mid 2019)
The existing Kotlin rules only support up to version 1.2. The primary goal of
this release is to bring preliminary 1.3 support to Bazel. We will seek to
provide a migration path for users of the existing rules, with the intention of
1.3 eventually becoming the master branch. This includes documenting the
differences between the rulesets, and providing migration tooling and support.
### Performance
* Compilation avoidance for non-structural changes to dependencies
### Features
* Support android_instrumentation_test on Linux and macOS
* Support building and testing on Google Cloud Platform Remote Build Execution
* Support for ktlint
* Simplified package and dependency management
* Improve Android interoperability
### Developer Experience
* Document major differences between the rulesets
* Documentation for Kotlin with Bazel compatibility across Windows, macOS,
Linux
* Stable and reliable CI
* Sample projects
## XPlat (est. late 2019)
The goal for the XPlat release is to provide a stable cross-platform (XPlat)
experience for developers. We intend to provide first class Kotlin/Native
support for Android and iOS, and collaborate with the community to add
additional target platforms. We also plan to deliver performance improvements
for build speed and binary size.
### Performance
* Implement persistent workers for faster compilation
* Reduce output binary sizes
### Features
* Stable Kotlin/Native support for Android and iOS
* Support `bazel coverage` for all test rules
* Support for Android Lint
### Developer Experience
* Documentation and guides for writing a cross platform app