Legacy Kotlin Rules 1.5.0 (Alpha 1)
Pre-releaseKotlin rules for Bazel - Legacy Rules 1.5.0
Note: These rules are maintained externally by volunteers (with Google's approval)
Note: The "legacy" prefix will be dropped as of this release. These are the rules, from this point on, until and unless Google chooses to externalize internal rules, at which point we can differentiate.
Note: legacy-1.4.0 isn't released, and thie release includes all features in that line of development. Many of those changes are included in this list.
Notable changes:
- Releases are now precompiled, suggested production installation is via a release archive. Please see the Development Guide
- when running from a non-archive repository. (#271)
- Support for Kotlin compiler plugins via the kt_compiler_plugin (#308)
- Improved determinism for remote builds (#304)
- No longer packages non-kotlin generated sources (#263)
- Proper classpath handling for java plugins (#318)
- Support for propagating Kotlin version to Intellij (#242 )
- Fixes to release artifact production (#326, #327)
- Restructure the worker to be deterministic (cc039db, 3f4698a)
- Support to compilation using kotlin abi and java ijars. (#294, #347)
- Add support for Android data-binding when building with Kotlin (#346)
- Add 0 to allowed package name characters (#364)
- Specify what the compile_jar value should be when building the library (#341)
- Separate
--Xplugin
options to support multiple compiler plugins at a time (#366) - Fix setting tags = ["trace", "timings"] on a rule. (#378)
- Kotlin 1.4 (#363)
- Support multiple source jars (#377)
- Bump serialization runtime to compatible version (#382)
- Add option rules for kotlinc and javac. (#383, #385)
- Expose kt_kotlinc_options and kt_javac_options (#386)
- Make kt_compiler_plugin work with android_binary (#388)
- Support the new Kotlin IR backend (#384)
- Add warning as error to the warn option. (b7f5832)
- Major rework of the compiler plugin infrastructure (#393)
- plugins now require an ID (formerly optional)
- plugins run in specific phases (kapt stubs, compile)
- compiler plugins may be exported via
exported_compiler_plugins
(similar toexported_plugins
on java_library) - some bash substitutions in working directory arguments in plugins (anvil example demonstrates)
- Option to tag a rule as kt_abi_plugin_incompatible (#362) …
- Fix java_plugins to work with Android rules (#407)
- Include KAPT generated source jars as Kotlin builder inputs (#410)
- Unify experimental java builder + abi jar flags (#411)
- Many more minor fixes.
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, @justhecuke, @szinn, @rockwotj, @IljaKroonen, @benjaminRomano, @factuno-db, @arturdryomov, @restingbull, @jongerrish, @BenHenning, @gertvdijk, @dotdat, @fkorotkov, @Wyverald, @Bencodes, @Kernald, @meteorcloudy, @comius.