Skip to content

Legacy Kotlin Rules 1.3.0 (Release Candidate 1)

Pre-release
Pre-release
Compare
Choose a tag to compare
@cgruber cgruber released this 29 Oct 16:55
· 549 commits to master since this release
1a974a7

Kotlin rules for Bazel - Legacy Rules 1.3.0

(Release Candidate 1)

Note: These rules are provisionally released with community support, while Google works to "externalize"
their internal kotlin rules. Support will be best-effort during this phase.

Updates the Kotlin rules for Bazel with a significant set of improvements, including the improvements contained in @cgruber's fork of rules_kotlin which is considered "upstreamed" as of this release.

Notable changes:

  • Various to run against modern versions of Bazel (remote deprecated/removed API usages)
  • Support for Kotlin 1.3 (cgruber#7)
    • Support custom "repositories" for kotlinc to permit non-default kotlinc versions
    • Support custom toolchains to permit Kotlin and Java language version settings.
      • using with kotlinc < v1.3 now not supported, due to different stdlib/runtime artifact handling, but older language versions allowed with a custom toolchain.
  • Fixes to friends/internal handling (#222)
  • Use jarjar in the persistent worker, so as not to leak its own deps into the compilation job (cgruber#4)
  • Permit full compile-time classpath to be passed to compiler (cgruber#5)
    • This disables the very naive strict-deps implementation, which was based on limiting the classpath, which forced additional declarations of "upstream" jars containing compiler-necessary bytecode such as supertypes). A future effort to add strict deps rooted in proper deps/symbol analysis is needed.
  • Quiesce java9+ reflective access warnings (cgruber#15)
  • Add exports= to kt_jvm_library() (cgruber#7)
  • Add exports= to kt_jvm_import() (cgruber#18) (
  • Properly handle java version semantics, to call --multi-release under the right conditions (cgruber#23)
  • Fix building on windows (#193)
  • Java launcher update (#199)
  • Infer test class from test name, by default, in kt_jvm_unit_test() (#209)
  • Handle various packaging of javascript deps for kt_js_import() (#223)

Plus:

  • Various cleanups, refactors, examples and tests.
  • Various regressions along the way

More detail can be found in the Changelog

Usage instructions can be found in the readme README

This release includes the contributions of various Googlers as well as @cgruber, @puffnfresh, @jasonwyatt, @keith, @iirina, @mig35, @pbsf, @philwo, @Globegitter.