Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master' into legacy_continued
Browse files Browse the repository at this point in the history
* upstream/master:
  Don't test on Ubuntu 14.04 (bazelbuild#183)
  Update deps for 0.26.0. (bazelbuild#191)
  update pin to bazel toolchains repo (bazelbuild#184)
  Update README.md
  Create ROADMAP.md
  • Loading branch information
cgruber committed Jun 12, 2019
2 parents 87da3ee + 990fcc5 commit d97374f
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 8 deletions.
4 changes: 2 additions & 2 deletions .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
platforms:
ubuntu1404:
ubuntu1604:
test_targets:
- "//:all_tests"
ubuntu1604:
ubuntu1804:
test_targets:
- "//:all_tests"
rbe_ubuntu1604:
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[Skydoc documentation](https://bazelbuild.github.io/rules_kotlin)

# Announcements
* <b>April 1, 2019.</b> [Roadmap](https://github.com/bazelbuild/rules_kotlin/blob/master/ROADMAP.md) for rules_kotlin published.
* <b>February 20, 2019.</b> [Future directions](https://github.com/bazelbuild/rules_kotlin/issues/174) of rules_kotlin.
* <b>August 14, 2018.</b> Js support. No documentation yet but see the nested example workspace `examples/node`.
* <b>August 14, 2018.</b> Android support. No documentation but it's a simple integration. see
Expand Down
61 changes: 61 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# 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
27 changes: 22 additions & 5 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,33 @@
# limitations under the License.
workspace(name = "io_bazel_rules_kotlin")

local_repository(
name = "node_example",
path = "examples/node",
)

load("//kotlin/internal/repositories:repositories.bzl", "github_archive")

github_archive(
name = "com_google_protobuf",
commit = "106ffc04be1abf3ff3399f54ccf149815b287dd9",
commit = "09745575a923640154bcf307fba8aedff47f240a", # v3.8.0, as of 2019-05-28
repo = "google/protobuf",
sha256 = "76ee4ba47dec6146872b6cd051ae5bd12897ef0b1523d5aeb56d81a5a4ca885a",
)

load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")

protobuf_deps()

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_jar")

http_archive(
name = "bazel_skylib",
urls = ["https://github.com/bazelbuild/bazel-skylib/archive/0.8.0.tar.gz"],
strip_prefix = "bazel-skylib-0.8.0",
sha256 = "2ea8a5ed2b448baf4a6855d3ce049c4c452a6470b1efd1504fdb7c1c134d220a",
)

http_jar(
name = "bazel_deps",
sha256 = "05498224710808be9687f5b9a906d11dd29ad592020246d4cd1a26eeaed0735e",
Expand All @@ -31,11 +48,11 @@ http_jar(

http_archive(
name = "bazel_toolchains",
sha256 = "4b1468b254a572dbe134cc1fd7c6eab1618a72acd339749ea343bd8f55c3b7eb",
strip_prefix = "bazel-toolchains-d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4",
sha256 = "5962fe677a43226c409316fcb321d668fc4b7fa97cb1f9ef45e7dc2676097b26",
strip_prefix = "bazel-toolchains-be10bee3010494721f08a0fccd7f57411a1e773e",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4.tar.gz",
"https://github.com/bazelbuild/bazel-toolchains/archive/d665ccfa3e9c90fa789671bf4ef5f7c19c5715c4.tar.gz",
"https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/be10bee3010494721f08a0fccd7f57411a1e773e.tar.gz",
"https://github.com/bazelbuild/bazel-toolchains/archive/be10bee3010494721f08a0fccd7f57411a1e773e.tar.gz",
],
)

Expand Down
4 changes: 3 additions & 1 deletion kotlin/internal/repositories/repositories.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -37,21 +37,23 @@ _KOTLIN_CURRENT_COMPILER_RELEASE = {
"sha256": "a23a40a3505e78563100b9e6cfd7f535fbf6593b69a5c470800fbafbeccf8434",
}

def github_archive(name, repo, commit, build_file_content = None):
def github_archive(name, repo, commit, build_file_content = None, sha256 = None):
if build_file_content:
_http_archive(
name = name,
strip_prefix = "%s-%s" % (repo.split("/")[1], commit),
url = "https://github.com/%s/archive/%s.zip" % (repo, commit),
type = "zip",
build_file_content = build_file_content,
sha256 = sha256,
)
else:
_http_archive(
name = name,
strip_prefix = "%s-%s" % (repo.split("/")[1], commit),
url = "https://github.com/%s/archive/%s.zip" % (repo, commit),
type = "zip",
sha256 = sha256,
)

def kotlin_repositories(compiler_release = _KOTLIN_CURRENT_COMPILER_RELEASE):
Expand Down

0 comments on commit d97374f

Please sign in to comment.