Skip to content

Legacy Kotlin Rules 1.3.0

Compare
Choose a tag to compare
@cgruber cgruber released this 10 Feb 18:29
· 527 commits to master since this release
686518f

Kotlin rules for Bazel - Legacy Rules 1.3.0

Note: These rules are maintained externally from Google (with Google's oversight and help)

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, #257)
  • Handle various packaging of javascript deps for kt_js_import() (#223)
  • Fix bad jdeps handling (#234 / #235)
  • Support jvm targets later than 1.8 (#229 / #236)
  • Fix regression where tags were not being propagated through kt_android_library #255

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, @szinn. Special advisory thanks to @shs96c.