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"},