From 6e8b04f0103c01f07aa48f53c81e0eed06bf1ede Mon Sep 17 00:00:00 2001 From: Corbin McNeely-Smith <58151731+restingbull@users.noreply.github.com> Date: Wed, 6 Jan 2021 11:00:18 -0500 Subject: [PATCH] Fix release default options visibility (#441) * Update README.md for 1.5.0-alpha-2 release. * Fix release option default visibility * Move default options to kt_configure_toolchains for a single source of truth Limit kt_configure_toolchains to kotlin/internal as it defines the toolchain_type which is a well known target. Configuring them elsewhere could have unexpected issues. Move the kt_configure_toolchains out of jvm. (I'm pretty sure I did that, and it's just wrong.) --- README.md | 7 ++++++- examples/android/WORKSPACE | 2 +- kotlin/internal/BUILD | 15 --------------- kotlin/internal/BUILD.release.bazel | 9 --------- kotlin/internal/jvm/BUILD.release.bazel | 4 ---- kotlin/internal/toolchains.bzl | 17 +++++++++++++++++ 6 files changed, 24 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 5038d800f..4eb971771 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,15 @@ # Bazel Kotlin Rules Current release: ***`legacy-1.3.0`***
-Release candidate: ***`1.5.0-alpha-1`***
+Release candidate: ***`1.5.0-alpha-2`***
Main branch: `master` # News! +* Dec 30, 2020. Released version [1.5.0-alpha-2](https://github.com/bazelbuild/rules_kotlin/releases/tag/v1.5.0-alpha-2). Includes: + - Expanded kotlinc options + - New optimized compilation path (using JavaBuilder) `--define=experimental_use_abi_jars=1`. + - *Caveat*: compilation may fail due to https://youtrack.jetbrains.com/issue/KT-40133, https://youtrack.jetbrains.com/issue/KT-40340, https://youtrack.jetbrains.com/issue/KT-41381 + - *Workaround*: add `tags=['kt_abi_plugin_incompatible']` * Dec 3, 2020. Released version [1.5.0-alpha-1](https://github.com/bazelbuild/rules_kotlin/releases/tag/v1.5.0-alpha-1). Includes: - Kotlin 1.4 support - Lots of different fixes, especially to kotlinc plugins, `exported_compiler_plugins`, etc. diff --git a/examples/android/WORKSPACE b/examples/android/WORKSPACE index a72b2b43f..67c019a37 100644 --- a/examples/android/WORKSPACE +++ b/examples/android/WORKSPACE @@ -64,7 +64,7 @@ load("@io_bazel_rules_kotlin//kotlin:dependencies.bzl", "kt_download_local_dev_d kt_download_local_dev_dependencies() -load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_register_toolchains") +load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories") kotlin_repositories() diff --git a/kotlin/internal/BUILD b/kotlin/internal/BUILD index c3886f039..2ee549180 100644 --- a/kotlin/internal/BUILD +++ b/kotlin/internal/BUILD @@ -11,25 +11,10 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -load("//kotlin/internal:opts.bzl", "kt_javac_options", "kt_kotlinc_options") load("//kotlin/internal:toolchains.bzl", "kt_configure_toolchains") load("//kotlin/internal/utils:packager.bzl", "release_archive") load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -kt_kotlinc_options( - name = "default_kotlinc_options", - # Used internally as the rule default. This should be - # considered an implementation detail and not used externally - visibility = ["//visibility:public"], -) - -kt_javac_options( - name = "default_javac_options", - # Used internally as the rule default. This should be - # considered an implementation detail and not used externally - visibility = ["//visibility:public"], -) - # Configures the toolchains kt_configure_toolchains() diff --git a/kotlin/internal/BUILD.release.bazel b/kotlin/internal/BUILD.release.bazel index c152368bc..d03419764 100644 --- a/kotlin/internal/BUILD.release.bazel +++ b/kotlin/internal/BUILD.release.bazel @@ -12,15 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//kotlin/internal:opts.bzl", "kt_javac_options", "kt_kotlinc_options") load("//kotlin/internal:toolchains.bzl", "kt_configure_toolchains") kt_configure_toolchains() - -kt_kotlinc_options( - name = "default_kotlinc_options", -) - -kt_javac_options( - name = "default_javac_options", -) diff --git a/kotlin/internal/jvm/BUILD.release.bazel b/kotlin/internal/jvm/BUILD.release.bazel index c36637e7f..fde9d6ca5 100644 --- a/kotlin/internal/jvm/BUILD.release.bazel +++ b/kotlin/internal/jvm/BUILD.release.bazel @@ -11,8 +11,4 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -load("//kotlin/internal:toolchains.bzl", "kt_configure_toolchains") - -kt_configure_toolchains() - exports_files(["jetbrains-deshade.jarjar"]) diff --git a/kotlin/internal/toolchains.bzl b/kotlin/internal/toolchains.bzl index a0d969317..1fd674c7a 100644 --- a/kotlin/internal/toolchains.bzl +++ b/kotlin/internal/toolchains.bzl @@ -15,6 +15,8 @@ load( "//kotlin/internal:opts.bzl", "JavacOptions", "KotlincOptions", + "kt_javac_options", + "kt_kotlinc_options", ) load( "//kotlin/internal:defs.bzl", @@ -262,7 +264,22 @@ def define_kt_toolchain( def kt_configure_toolchains(): """ Defines the toolchain_type and default toolchain for kotlin compilation. + + Must be called in kotlin/internal/BUILD.bazel """ + if native.package_name() != "kotlin/internal": + fail("kt_configure_toolchains must be called in kotlin/internal not %s" % native.package_name()) + + kt_kotlinc_options( + name = "default_kotlinc_options", + visibility = ["//visibility:public"], + ) + + kt_javac_options( + name = "default_javac_options", + visibility = ["//visibility:public"], + ) + native.config_setting( name = "experimental_use_abi_jars", values = {"define": "experimental_use_abi_jars=1"},