diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index b45602f5e..5e9bd2e9c 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -1,16 +1,15 @@ --- matrix: unittest_platform: - - ubuntu2004 - - ubuntu1804 + - ubuntu2404 + - ubuntu2204 integration_platform: - - ubuntu2004 - - ubuntu1804 + - ubuntu2404 + - ubuntu2204 # - macos # - windows re-enable when rules_bazel_integration_test can support custom test runner on windows. test_flags: - ["--enable_bzlmod=true"] - - ["--config=workspace"] validate_config: 1 bazel: 7.3.0 buildifier: diff --git a/.bazelrc b/.bazelrc index 0a74bad97..3d8bc157a 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,10 +1,10 @@ common --enable_bzlmod=true +common --incompatible_use_plus_in_repo_names +common --incompatible_disallow_empty_glob=false common:rbe --java_runtime_version=11 common:rbe --tool_java_runtime_version=11 -common:workspace --enable_bzlmod=false --enable_workspace=true - build --strategy=KotlinCompile=worker build --test_output=all build --verbose_failures diff --git a/.bazelversion b/.bazelversion index 150202076..18bb4182d 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.3.0 +7.5.0 diff --git a/.bcr/presubmit.yml b/.bcr/presubmit.yml index e4baf9404..9f1f8f911 100644 --- a/.bcr/presubmit.yml +++ b/.bcr/presubmit.yml @@ -1,6 +1,6 @@ matrix: platform: ["macos", "ubuntu2004"] - bazel: ["6.x", "7.x", "8.x", "rolling"] + bazel: ["7.x", "8.x"] tasks: verify_targets: name: "Verify build targets" diff --git a/BUILD b/BUILD index db8b65c91..3df5b3548 100644 --- a/BUILD +++ b/BUILD @@ -62,7 +62,6 @@ release_archive( ], src_map = { "BUILD.release.bazel": "BUILD.bazel", - "WORKSPACE.release.bazel": "WORKSPACE", "MODULE.release.bazel": "MODULE.bazel", }, deps = [ diff --git a/MODULE.bazel b/MODULE.bazel index b6a5bf124..3e1895c26 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -5,12 +5,16 @@ module( repo_name = "rules_kotlin", ) +bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") +bazel_dep(name = "rules_proto", version = "6.0.2", repo_name = "rules_proto") +bazel_dep(name = "abseil-py", version = "2.1.0", repo_name = "py_absl") +bazel_dep(name = "rules_cc", version = "0.0.16") bazel_dep(name = "platforms", version = "0.0.11") bazel_dep(name = "bazel_skylib", version = "1.7.1") -bazel_dep(name = "rules_java", version = "7.6.5") +bazel_dep(name = "rules_java", version = "8.9.0") bazel_dep(name = "rules_python", version = "0.23.1") -bazel_dep(name = "rules_cc", version = "0.0.9") -bazel_dep(name = "rules_android", version = "0.1.1") +bazel_dep(name = "rules_android", version = "0.6.1") +bazel_dep(name = "bazel_features", version = "1.25.0") rules_kotlin_extensions = use_extension("//src/main/starlark/core/repositories:bzlmod_setup.bzl", "rules_kotlin_extensions") use_repo( @@ -36,14 +40,14 @@ use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") # TODO(bencodes) A bunch of these dependencies need to be marked as dev_dependencies but before we can do that # we need to sort out a few cases around how these rules are consumed in various ways. -bazel_dep(name = "rules_jvm_external", version = "5.3") +bazel_dep(name = "rules_jvm_external", version = "6.6") bazel_dep(name = "bazel_ci_rules", version = "1.0.0") rbe_preconfig = use_repo_rule("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig") rbe_preconfig( name = "buildkite_config", - toolchain = "ubuntu2004", + toolchain = "ubuntu2404", ) maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") @@ -52,8 +56,8 @@ maven.install( artifacts = [ "com.google.code.findbugs:jsr305:3.0.2", "junit:junit:4.13-beta-3", - "com.google.protobuf:protobuf-java:3.6.0", - "com.google.protobuf:protobuf-java-util:3.6.0", + "com.google.protobuf:protobuf-java:4.29.0", + "com.google.protobuf:protobuf-java-util:4.29.0", "com.google.guava:guava:27.1-jre", "com.google.truth:truth:0.45", "com.google.auto.service:auto-service:1.1.1", @@ -98,22 +102,19 @@ maven.override( ) use_repo(maven, "kotlin_rules_maven", "unpinned_kotlin_rules_maven") -bazel_dep(name = "rules_pkg", version = "0.7.0") -bazel_dep(name = "stardoc", version = "0.7.0", repo_name = "io_bazel_stardoc") -bazel_dep(name = "rules_proto", version = "5.3.0-21.7") +bazel_dep(name = "rules_pkg", version = "1.0.1") +bazel_dep(name = "stardoc", version = "0.8.0", repo_name = "io_bazel_stardoc") bazel_dep(name = "rules_testing", version = "0.5.0", dev_dependency = True) bazel_dep(name = "rules_bazel_integration_test", version = "0.25.0", dev_dependency = True) bazel_binaries = use_extension("@rules_bazel_integration_test//:extensions.bzl", "bazel_binaries", dev_dependency = True) bazel_binaries.download(version_file = "//:.bazelversion") -bazel_binaries.download(version = "6.4.0") -bazel_binaries.download(version = "8.0.0-pre.20240206.3") +bazel_binaries.download(version = "8.1.0") use_repo( bazel_binaries, "bazel_binaries", "bazel_binaries_bazelisk", "build_bazel_bazel_.bazelversion", - "build_bazel_bazel_6_4_0", - "build_bazel_bazel_8_0_0-pre_20240206_3", + "build_bazel_bazel_8_1_0", ) diff --git a/MODULE.release.bazel b/MODULE.release.bazel index 4d4c4fd90..abc79c106 100644 --- a/MODULE.release.bazel +++ b/MODULE.release.bazel @@ -7,10 +7,13 @@ module( bazel_dep(name = "platforms", version = "0.0.11") bazel_dep(name = "bazel_skylib", version = "1.7.1") -bazel_dep(name = "rules_java", version = "7.2.0") -bazel_dep(name = "rules_python", version = "0.23.1") -bazel_dep(name = "rules_cc", version = "0.0.8") -bazel_dep(name = "rules_android", version = "0.1.1") +bazel_dep(name = "rules_java", version = "8.9.0") +bazel_dep(name = "rules_android", version = "0.6.1") +bazel_dep(name = "bazel_features", version = "1.25.0") +bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") +bazel_dep(name = "rules_proto", version = "6.0.2", repo_name = "rules_proto") +bazel_dep(name = "abseil-py", version = "2.1.0", repo_name = "py_absl") +bazel_dep(name = "rules_cc", version = "0.0.16") rules_kotlin_extensions = use_extension( "//src/main/starlark/core/repositories:bzlmod_setup.bzl", @@ -27,9 +30,3 @@ use_repo( ) register_toolchains("//kotlin/internal:default_toolchain") - -# TODO(bencodes) We should be able to remove this once rules_android has rolled out official Bzlmod support -remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions") -use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") - -bazel_dep(name = "rules_proto", version = "5.3.0-21.7") diff --git a/README.md b/README.md index 09694418f..fb2cfaf43 100644 --- a/README.md +++ b/README.md @@ -147,10 +147,6 @@ local_repository( path = "../path/to/rules_kotlin_clone/", ) -load("@rules_kotlin//kotlin:dependencies.bzl", "kt_download_local_dev_dependencies") - -kt_download_local_dev_dependencies() - load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "versions") kotlin_repositories() diff --git a/WORKSPACE b/WORKSPACE deleted file mode 120000 index 9d4f63eae..000000000 --- a/WORKSPACE +++ /dev/null @@ -1 +0,0 @@ -WORKSPACE.dev.bazel \ No newline at end of file diff --git a/WORKSPACE.dev.bazel b/WORKSPACE.dev.bazel deleted file mode 100644 index aadacd901..000000000 --- a/WORKSPACE.dev.bazel +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# 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. -workspace(name = "rules_kotlin") - -load("//kotlin:dependencies.bzl", "kt_download_local_dev_dependencies") - -kt_download_local_dev_dependencies() - -load("//kotlin:repositories.bzl", "kotlin_repositories") - -kotlin_repositories() - -register_toolchains("//src/main/starlark/core/compile/cli") - -register_toolchains("@rules_kotlin//kotlin/internal:default_toolchain") - -android_sdk_repository(name = "androidsdk") diff --git a/WORKSPACE.release.bazel b/WORKSPACE.release.bazel deleted file mode 100644 index c28227564..000000000 --- a/WORKSPACE.release.bazel +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# 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. -workspace(name = "rules_kotlin") - -load("//kotlin:dependencies.bzl", "kt_download_local_dev_dependencies") - -kt_download_local_dev_dependencies() - -load("//kotlin:repositories.bzl", "kotlin_repositories") - -kotlin_repositories() - -register_toolchains("@rules_kotlin//kotlin/internal:default_toolchain") - -android_sdk_repository(name = "androidsdk") diff --git a/examples/android/.bazelrc b/examples/android/.bazelrc index dee422d77..900fb9c83 100644 --- a/examples/android/.bazelrc +++ b/examples/android/.bazelrc @@ -1,2 +1,23 @@ common --lockfile_mode=off -test --test_output=all \ No newline at end of file +test --test_output=all +build --config=android_worker + +# Worker configuration +build:android_worker \ + --worker_max_instances=auto \ + --worker_multiplex \ + --worker_max_multiplex_instances=auto \ + --persistent_multiplex_android_tools \ + --persistent_android_dex_desugar \ + --persistent_multiplex_android_dex_desugar \ + --persistent_android_resource_processor \ + --internal_persistent_busybox_tools \ + --experimental_persistent_aar_extractor \ + --remote_default_exec_properties=preserve-workspace=true \ + --strategy=Desugar=remote,worker \ + --strategy=Javac=remote,worker \ + --strategy=JavaIjar=remote,local \ + --strategy=JavaDeployJar=remote,local \ + --strategy=JavaSourceJar=remote,local \ + --strategy=Turbine=remote,local \ + --strategy=PackageAndroidResources=local \ No newline at end of file diff --git a/examples/android/.bazelversion b/examples/android/.bazelversion index a3fcc7121..da1561810 100644 --- a/examples/android/.bazelversion +++ b/examples/android/.bazelversion @@ -1 +1 @@ -7.1.0 +8.1.0 \ No newline at end of file diff --git a/examples/android/MODULE.bazel b/examples/android/MODULE.bazel index 8b7877195..2d1512eda 100644 --- a/examples/android/MODULE.bazel +++ b/examples/android/MODULE.bazel @@ -3,15 +3,17 @@ module(name = "android-example") remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions") use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") -bazel_dep(name = "rules_android", version = "0.1.1") -bazel_dep(name = "bazel_skylib", version = "1.2.1") -bazel_dep(name = "rules_robolectric", version = "4.10.3", repo_name = "robolectric") -bazel_dep(name = "rules_java", version = "6.4.0") +bazel_dep(name = "rules_android", version = "0.6.1") +bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "rules_robolectric", version = "4.14.1.2", repo_name = "robolectric") +bazel_dep(name = "rules_java", version = "8.9.0") bazel_dep(name = "rules_kotlin", version = "1.9.5") -bazel_dep(name = "rules_jvm_external", version = "5.3") +bazel_dep(name = "rules_jvm_external", version = "6.6") maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( + name = "maven_rules_kotlin_example", + aar_import_bzl_label = "@rules_android//rules:rules.bzl", artifacts = [ "androidx.appcompat:appcompat:1.0.0", "junit:junit:4.12", @@ -32,5 +34,6 @@ maven.install( "https://maven.google.com", "https://repo1.maven.org/maven2", ], + use_starlark_android_rules = True, ) -use_repo(maven, "maven") +use_repo(maven, "maven_rules_kotlin_example") diff --git a/examples/android/WORKSPACE b/examples/android/WORKSPACE index faf0fd86d..c048de8fa 100644 --- a/examples/android/WORKSPACE +++ b/examples/android/WORKSPACE @@ -8,36 +8,93 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "versions") +load("@rules_kotlin//kotlin:repositories.bzl", "versions") -kotlin_repositories() +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) -load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], +) -kt_register_toolchains() +http_archive( + name = "robolectric", + sha256 = "b2d2164bae80fcfbdd078eb2f0935ba06557402b8c814928d9e3bec7358e2b7b", + strip_prefix = "robolectric-bazel-4.14.1.2", + urls = ["https://github.com/robolectric/robolectric-bazel/releases/download/4.14.1.2/robolectric-bazel-4.14.1.2.tar.gz"], +) http_archive( name = "bazel_skylib", - sha256 = versions.SKYLIB_SHA, - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % ( - versions.SKYLIB_VERSION, - versions.SKYLIB_VERSION, - )], + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], ) -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), +# Android rules dependencies +load("@rules_android//:prereqs.bzl", "rules_android_prereqs") + +rules_android_prereqs() + +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +##### rules_android setup ##### +load("@rules_android//:defs.bzl", "rules_android_workspace") + +rules_android_workspace() + +# Android SDK setup +load("@rules_android//rules:rules.bzl", "android_sdk_repository") + +android_sdk_repository(name = "androidsdk") + +register_toolchains( + "@rules_android//toolchains/android:android_default_toolchain", + "@rules_android//toolchains/android_sdk:android_sdk_tools", ) +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") + +kotlin_repositories() + +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") + +kt_register_toolchains() + load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", + aar_import_bzl_label = "@rules_android//rules:rules.bzl", artifacts = [ "androidx.appcompat:appcompat:1.0.0", "junit:junit:4.12", @@ -58,31 +115,9 @@ maven_install( "https://maven.google.com", "https://repo1.maven.org/maven2", ], -) - -http_archive( - name = "rules_android", - sha256 = versions.ANDROID.SHA, - strip_prefix = "rules_android-%s" % versions.ANDROID.VERSION, - urls = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % versions.ANDROID.VERSION], -) - -load( - "@rules_android//android:rules.bzl", - "android_sdk_repository", -) - -android_sdk_repository(name = "androidsdk") - -http_archive( - name = "robolectric", - sha256 = "1b199a932cbde4af728dd8275937091adbb89a4bf63d326de49e6d0a42e723bf", - strip_prefix = "robolectric-bazel-4.10.3", - urls = ["https://github.com/robolectric/robolectric-bazel/archive/4.10.3.tar.gz"], + use_starlark_android_rules = True, ) load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories") robolectric_repositories() - -android_ndk_repository(name = "androidndk") diff --git a/examples/android/exclude/6.4.0 b/examples/android/exclude/6.4.0 deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/android/exclude/8.0.0-pre.20240206.3 b/examples/android/exclude/8.0.0-pre.20240206.3 deleted file mode 100644 index 7ee2f232f..000000000 --- a/examples/android/exclude/8.0.0-pre.20240206.3 +++ /dev/null @@ -1,12 +0,0 @@ -android_local_test does not account for junit4 security manager. - -FAIL: //libKtAndroid/src/test/java/examples/android/lib:SomeTest (Exit 1) (see /var/lib/buildkite-agent/.cache/bazel/_bazel_buildkite-agent/ec321eb2cc2d0f8f91b676b6d4c66c29/sandbox/linux-sandbox/619/execroot/_main/_tmp/1754a8eea30f05a2eab91b50b4208506/_bazel_buildkite-agent/9436ddebe2fa3271d973924a29604b6f/execroot/_main/bazel-out/k8-fastbuild/testlogs/libKtAndroid/src/test/java/examples/android/lib/SomeTest/test.log) -INFO: From Testing //libKtAndroid/src/test/java/examples/android/lib:SomeTest: -==================== Test output for //libKtAndroid/src/test/java/examples/android/lib:SomeTest: -JUnit4 Test Runner -java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release - at java.base/java.lang.System.setSecurityManager(System.java:430) - at com.google.testing.junit.runner.junit4.JUnit4Runner.installSecurityManager(JUnit4Runner.java:256) - at com.google.testing.junit.runner.junit4.JUnit4Runner.run(JUnit4Runner.java:113) - at com.google.testing.junit.runner.BazelTestRunner.runTestsInSuite(BazelTestRunner.java:145) - at com.google.testing.junit.runner.BazelTestRunner.main(BazelTestRunner.java:76) \ No newline at end of file diff --git a/examples/android/libAndroid/BUILD.bazel b/examples/android/libAndroid/BUILD.bazel index a5324968f..72bc08de1 100644 --- a/examples/android/libAndroid/BUILD.bazel +++ b/examples/android/libAndroid/BUILD.bazel @@ -10,7 +10,7 @@ android_library( visibility = ["//visibility:public"], deps = [ ":util", - "@maven//:androidx_appcompat_appcompat", + "@maven_rules_kotlin_example//:androidx_appcompat_appcompat", ], ) diff --git a/examples/android/libJava/BUILD.bazel b/examples/android/libJava/BUILD.bazel index 45675c112..da47f13ad 100644 --- a/examples/android/libJava/BUILD.bazel +++ b/examples/android/libJava/BUILD.bazel @@ -4,7 +4,7 @@ java_plugin( name = "autovalue", generates_api = 1, processor_class = "com.google.auto.value.processor.AutoValueProcessor", - deps = ["@maven//:com_google_auto_value_auto_value"], + deps = ["@maven_rules_kotlin_example//:com_google_auto_value_auto_value"], ) java_library( @@ -17,6 +17,6 @@ java_library( ":autovalue", ], deps = [ - "@maven//:com_google_auto_value_auto_value_annotations", + "@maven_rules_kotlin_example//:com_google_auto_value_auto_value_annotations", ], ) diff --git a/examples/android/libKtAndroid/BUILD.bazel b/examples/android/libKtAndroid/BUILD.bazel index ebb59efdb..f082ee64c 100644 --- a/examples/android/libKtAndroid/BUILD.bazel +++ b/examples/android/libKtAndroid/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_android//android:rules.bzl", "android_library") load("@rules_java//java:defs.bzl", "java_plugin") load("@rules_kotlin//kotlin:android.bzl", "kt_android_library") load("@rules_kotlin//kotlin:core.bzl", "kt_compiler_plugin", "kt_ksp_plugin") @@ -16,16 +17,16 @@ java_plugin( name = "autovalue", generates_api = 1, processor_class = "com.google.auto.value.processor.AutoValueProcessor", - deps = ["@maven//:com_google_auto_value_auto_value"], + deps = ["@maven_rules_kotlin_example//:com_google_auto_value_auto_value"], ) kt_ksp_plugin( name = "moshi-kotlin-codegen", processor_class = "com.squareup.moshi.kotlin.codegen.ksp.JsonClassSymbolProcessorProvider", deps = [ - "@maven//:com_squareup_moshi_moshi", - "@maven//:com_squareup_moshi_moshi_kotlin", - "@maven//:com_squareup_moshi_moshi_kotlin_codegen", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin_codegen", ], ) @@ -44,10 +45,10 @@ kt_android_library( visibility = ["//visibility:public"], deps = [ ":res2", - "@maven//:androidx_appcompat_appcompat", - "@maven//:com_google_auto_value_auto_value_annotations", - "@maven//:com_squareup_moshi_moshi", - "@maven//:org_jetbrains_kotlinx_kotlinx_serialization_core", + "@maven_rules_kotlin_example//:androidx_appcompat_appcompat", + "@maven_rules_kotlin_example//:com_google_auto_value_auto_value_annotations", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi", + "@maven_rules_kotlin_example//:org_jetbrains_kotlinx_kotlinx_serialization_core", ], ) diff --git a/examples/android/libKtAndroid/src/test/java/examples/android/lib/BUILD.bazel b/examples/android/libKtAndroid/src/test/java/examples/android/lib/BUILD.bazel index 34848b668..b4d98438e 100644 --- a/examples/android/libKtAndroid/src/test/java/examples/android/lib/BUILD.bazel +++ b/examples/android/libKtAndroid/src/test/java/examples/android/lib/BUILD.bazel @@ -5,9 +5,12 @@ kt_android_local_test( srcs = ["SomeTest.kt"], associates = ["//libKtAndroid:my_kt_kt"], custom_package = "examples.android.lib", + jvm_flags = [ + "-Djava.security.manager=allow", + ], manifest = "AndroidManifest.xml", deps = [ - "@maven//:junit_junit", + "@maven_rules_kotlin_example//:junit_junit", "@robolectric//bazel:android-all", ], ) diff --git a/examples/android/third_party/BUILD.bazel b/examples/android/third_party/BUILD.bazel index b117463e3..9aa37a72b 100644 --- a/examples/android/third_party/BUILD.bazel +++ b/examples/android/third_party/BUILD.bazel @@ -6,7 +6,7 @@ java_plugin( processor_class = "dagger.internal.codegen.ComponentProcessor", visibility = ["//visibility:private"], deps = [ - "@maven//:com_google_dagger_dagger_compiler", + "@maven_rules_kotlin_example//:com_google_dagger_dagger_compiler", ], ) @@ -14,7 +14,7 @@ java_library( name = "dagger", exported_plugins = [":dagger_component_plugin"], exports = [ - "@maven//:com_google_dagger_dagger", - "@maven//:javax_inject_javax_inject", + "@maven_rules_kotlin_example//:com_google_dagger_dagger", + "@maven_rules_kotlin_example//:javax_inject_javax_inject", ], ) diff --git a/examples/anvil/WORKSPACE b/examples/anvil/WORKSPACE index 45f76a7e4..d73fc2428 100644 --- a/examples/anvil/WORKSPACE +++ b/examples/anvil/WORKSPACE @@ -6,59 +6,86 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "versions") +load("@rules_kotlin//kotlin:repositories.bzl", "versions") -kotlin_repositories() - -load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") - -kt_register_toolchains() +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) http_archive( name = "rules_android", - sha256 = versions.ANDROID.SHA, - strip_prefix = "rules_android-%s" % versions.ANDROID.VERSION, - urls = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % versions.ANDROID.VERSION], + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], ) -load("@rules_android//android:rules.bzl", "android_sdk_repository") - -android_sdk_repository(name = "androidsdk") - -android_ndk_repository(name = "androidndk") - -# Skylib, for build_test, so don't bother initializing the unit test infrastructure. http_archive( name = "bazel_skylib", - sha256 = versions.SKYLIB_SHA, - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % ( - versions.SKYLIB_VERSION, - versions.SKYLIB_VERSION, - )], + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], ) -http_archive( - name = "rules_pkg", - sha256 = versions.PKG.sha256, - url = "https://github.com/bazelbuild/rules_pkg/releases/download/%s/rules_pkg-%s.tar.gz" % ( - versions.PKG.version, - versions.PKG.version, - ), -) +# Android rules dependencies +load("@rules_android//:prereqs.bzl", "rules_android_prereqs") -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), +rules_android_prereqs() + +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +##### rules_android setup ##### +load("@rules_android//:defs.bzl", "rules_android_workspace") + +rules_android_workspace() + +# Android SDK setup +load("@rules_android//rules:rules.bzl", "android_sdk_repository") + +android_sdk_repository(name = "androidsdk") + +register_toolchains( + "@rules_android//toolchains/android:android_default_toolchain", + "@rules_android//toolchains/android_sdk:android_sdk_tools", ) +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") + +kotlin_repositories() + +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") + +kt_register_toolchains() + load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", + aar_import_bzl_label = "@rules_android//rules:rules.bzl", artifacts = [ "com.google.dagger:dagger:2.50", "com.google.dagger:dagger-compiler:2.50", @@ -114,4 +141,5 @@ maven_install( "https://maven.google.com", "https://repo1.maven.org/maven2", ], + use_starlark_android_rules = True, ) diff --git a/examples/anvil/app/src/main/java/com/squareup/anvil/sample/BUILD.bazel b/examples/anvil/app/src/main/java/com/squareup/anvil/sample/BUILD.bazel index 96cb90cce..baf964165 100644 --- a/examples/anvil/app/src/main/java/com/squareup/anvil/sample/BUILD.bazel +++ b/examples/anvil/app/src/main/java/com/squareup/anvil/sample/BUILD.bazel @@ -12,8 +12,8 @@ kt_android_library( "//scopes", "//third_party:anvil", "//third_party:dagger", - "@maven//:androidx_appcompat_appcompat", - "@maven//:androidx_core_core", - "@maven//:com_google_android_material_material", + "@maven_rules_kotlin_example//:androidx_appcompat_appcompat", + "@maven_rules_kotlin_example//:androidx_core_core", + "@maven_rules_kotlin_example//:com_google_android_material_material", ], ) diff --git a/examples/anvil/app/src/test/java/com/squareup/anvil/sample/BUILD.bazel b/examples/anvil/app/src/test/java/com/squareup/anvil/sample/BUILD.bazel index a139d457a..4000d9417 100644 --- a/examples/anvil/app/src/test/java/com/squareup/anvil/sample/BUILD.bazel +++ b/examples/anvil/app/src/test/java/com/squareup/anvil/sample/BUILD.bazel @@ -6,8 +6,8 @@ kt_jvm_test( test_class = "com.squareup.anvil.sample.LoggedInComponentTest", deps = [ "//app/src/main/java/com/squareup/anvil/sample", - "@maven//:com_google_truth_truth", - "@maven//:junit_junit", - "@maven//:org_jetbrains_kotlin_kotlin_test", + "@maven_rules_kotlin_example//:com_google_truth_truth", + "@maven_rules_kotlin_example//:junit_junit", + "@maven_rules_kotlin_example//:org_jetbrains_kotlin_kotlin_test", ], ) diff --git a/examples/anvil/library/src/main/java/com/squareup/anvil/sample/BUILD.bazel b/examples/anvil/library/src/main/java/com/squareup/anvil/sample/BUILD.bazel index 5e7d1d7e2..6bd1c135d 100644 --- a/examples/anvil/library/src/main/java/com/squareup/anvil/sample/BUILD.bazel +++ b/examples/anvil/library/src/main/java/com/squareup/anvil/sample/BUILD.bazel @@ -11,6 +11,6 @@ kt_jvm_library( "//scopes", "//third_party:anvil_library", "//third_party:dagger", - "@maven//:javax_inject_javax_inject", + "@maven_rules_kotlin_example//:javax_inject_javax_inject", ], ) diff --git a/examples/anvil/repro/src/main/java/com/repro/lib/BUILD.bazel b/examples/anvil/repro/src/main/java/com/repro/lib/BUILD.bazel index 39fd422dd..f07c026d9 100644 --- a/examples/anvil/repro/src/main/java/com/repro/lib/BUILD.bazel +++ b/examples/anvil/repro/src/main/java/com/repro/lib/BUILD.bazel @@ -6,8 +6,8 @@ kt_jvm_library( plugins = ["//third_party:anvil_library_plugin"], visibility = ["//visibility:public"], deps = [ - "@maven//:com_google_dagger_dagger", - "@maven//:com_squareup_anvil_annotations", - "@maven//:javax_inject_javax_inject", + "@maven_rules_kotlin_example//:com_google_dagger_dagger", + "@maven_rules_kotlin_example//:com_squareup_anvil_annotations", + "@maven_rules_kotlin_example//:javax_inject_javax_inject", ], ) diff --git a/examples/anvil/third_party/BUILD.bazel b/examples/anvil/third_party/BUILD.bazel index 9fce2ad93..d843b95c7 100644 --- a/examples/anvil/third_party/BUILD.bazel +++ b/examples/anvil/third_party/BUILD.bazel @@ -8,7 +8,7 @@ java_plugin( processor_class = "dagger.internal.codegen.ComponentProcessor", visibility = ["//visibility:private"], deps = [ - "@maven//:com_google_dagger_dagger_compiler", + "@maven_rules_kotlin_example//:com_google_dagger_dagger_compiler", ], ) @@ -17,8 +17,8 @@ java_library( exported_plugins = [":dagger_component_plugin"], visibility = ["//visibility:public"], exports = [ - "@maven//:com_google_dagger_dagger", - "@maven//:javax_inject_javax_inject", + "@maven_rules_kotlin_example//:com_google_dagger_dagger", + "@maven_rules_kotlin_example//:javax_inject_javax_inject", ], ) @@ -27,7 +27,7 @@ kt_jvm_library( exported_compiler_plugins = [":anvil_plugin"], visibility = ["//visibility:public"], exports = [ - "@maven//:com_squareup_anvil_annotations", + "@maven_rules_kotlin_example//:com_squareup_anvil_annotations", ], ) @@ -36,7 +36,7 @@ kt_jvm_library( exported_compiler_plugins = [":anvil_library_plugin"], visibility = ["//visibility:public"], exports = [ - "@maven//:com_squareup_anvil_annotations", + "@maven_rules_kotlin_example//:com_squareup_anvil_annotations", ], ) @@ -53,7 +53,7 @@ kt_compiler_plugin( "//visibility:public", ], deps = [ - "@maven//:com_squareup_anvil_compiler", + "@maven_rules_kotlin_example//:com_squareup_anvil_compiler", ], ) @@ -71,6 +71,6 @@ kt_compiler_plugin( "//visibility:public", ], deps = [ - "@maven//:com_squareup_anvil_compiler", + "@maven_rules_kotlin_example//:com_squareup_anvil_compiler", ], ) diff --git a/examples/associates/WORKSPACE b/examples/associates/WORKSPACE index f66bb04eb..aca2a5561 100644 --- a/examples/associates/WORKSPACE +++ b/examples/associates/WORKSPACE @@ -6,38 +6,65 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) +load("@rules_kotlin//kotlin:repositories.bzl", "versions") + +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) + +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], +) + +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") kotlin_repositories() -load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") -kt_register_toolchains() +rules_java_dependencies() -load("@rules_kotlin//src/main/starlark/core/repositories:versions.bzl", "versions") +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility -http_archive( - name = "bazel_skylib", - sha256 = versions.SKYLIB_SHA, - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % ( - versions.SKYLIB_VERSION, - versions.SKYLIB_VERSION, - )], -) +proto_bazel_features(name = "proto_bazel_features") -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), -) +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") + +kt_register_toolchains() load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", artifacts = [ "junit:junit:4.13", ], diff --git a/examples/associates/projects/core/api/BUILD.bazel b/examples/associates/projects/core/api/BUILD.bazel index 2be19f841..a9a43e94d 100644 --- a/examples/associates/projects/core/api/BUILD.bazel +++ b/examples/associates/projects/core/api/BUILD.bazel @@ -1,4 +1,4 @@ -load("@rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") package(default_visibility = ["//visibility:public"]) diff --git a/examples/associates/projects/core/api/src/test/kotlin/core/api/BUILD.bazel b/examples/associates/projects/core/api/src/test/kotlin/core/api/BUILD.bazel index bb25f0d96..723447b83 100644 --- a/examples/associates/projects/core/api/src/test/kotlin/core/api/BUILD.bazel +++ b/examples/associates/projects/core/api/src/test/kotlin/core/api/BUILD.bazel @@ -1,10 +1,10 @@ -load("@rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_test") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_test") kt_jvm_test( name = "CoreApiTest", srcs = ["CoreApiTest.kt"], associates = ["//projects/core/api"], # Deprecated - here to ensure it still works. deps = [ - "@maven//:junit_junit", + "@maven_rules_kotlin_example//:junit_junit", ], ) diff --git a/examples/associates/projects/core/impl/BUILD.bazel b/examples/associates/projects/core/impl/BUILD.bazel index c5788f021..74618bce7 100644 --- a/examples/associates/projects/core/impl/BUILD.bazel +++ b/examples/associates/projects/core/impl/BUILD.bazel @@ -1,4 +1,4 @@ -load("@rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library") kt_jvm_library( name = "impl", diff --git a/examples/associates/projects/core/impl/src/test/kotlin/core/impl/BUILD.bazel b/examples/associates/projects/core/impl/src/test/kotlin/core/impl/BUILD.bazel index ff9302945..dbdf69db4 100644 --- a/examples/associates/projects/core/impl/src/test/kotlin/core/impl/BUILD.bazel +++ b/examples/associates/projects/core/impl/src/test/kotlin/core/impl/BUILD.bazel @@ -1,4 +1,4 @@ -load("@rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_test") +load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_test") kt_jvm_test( name = "CoreImplTest", @@ -8,6 +8,6 @@ kt_jvm_test( "//projects/core/impl", ], deps = [ - "@maven//:junit_junit", + "@maven_rules_kotlin_example//:junit_junit", ], ) diff --git a/examples/dagger/BUILD b/examples/dagger/BUILD index 4b7fb193d..6a4f1c04e 100644 --- a/examples/dagger/BUILD +++ b/examples/dagger/BUILD @@ -89,7 +89,7 @@ kt_jvm_library( deps = [ ":generated_lib", "//third_party:dagger", - "@maven//:org_jetbrains_kotlinx_kotlinx_coroutines_core", + "@maven_rules_kotlin_example//:org_jetbrains_kotlinx_kotlinx_coroutines_core", ], ) diff --git a/examples/dagger/WORKSPACE b/examples/dagger/WORKSPACE index e75d500a3..e2684830d 100644 --- a/examples/dagger/WORKSPACE +++ b/examples/dagger/WORKSPACE @@ -6,39 +6,65 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "versions") +load("@rules_kotlin//kotlin:repositories.bzl", "versions") -versions.use_repository( - name = "rules_java", - rule = http_archive, - version = versions.RULES_JAVA, +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) + +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], ) -load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains") +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") + +kotlin_repositories() + +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") rules_java_dependencies() +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + rules_java_toolchains() -kotlin_repositories() +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") kt_register_toolchains() -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), -) - load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", artifacts = [ "com.google.dagger:dagger:2.51.1", "com.google.dagger:dagger-compiler:2.51.1", diff --git a/examples/dagger/third_party/BUILD.bazel b/examples/dagger/third_party/BUILD.bazel index fefbba5a7..77e6a5c07 100644 --- a/examples/dagger/third_party/BUILD.bazel +++ b/examples/dagger/third_party/BUILD.bazel @@ -4,7 +4,7 @@ java_plugin( processor_class = "dagger.internal.codegen.ComponentProcessor", visibility = ["//visibility:private"], deps = [ - "@maven//:com_google_dagger_dagger_compiler", + "@maven_rules_kotlin_example//:com_google_dagger_dagger_compiler", ], ) @@ -13,7 +13,7 @@ java_library( exported_plugins = [":dagger_component_plugin"], visibility = ["//visibility:public"], exports = [ - "@maven//:com_google_dagger_dagger", - "@maven//:javax_inject_javax_inject", + "@maven_rules_kotlin_example//:com_google_dagger_dagger", + "@maven_rules_kotlin_example//:javax_inject_javax_inject", ], ) diff --git a/examples/deps/WORKSPACE b/examples/deps/WORKSPACE index 9bcf89a31..17dbbd8c8 100644 --- a/examples/deps/WORKSPACE +++ b/examples/deps/WORKSPACE @@ -6,33 +6,85 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") -load("@rules_kotlin//src/main/starlark/core/repositories:versions.bzl", "versions") +load("@rules_kotlin//kotlin:repositories.bzl", "versions") -kotlin_repositories() +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) http_archive( - name = "bazel_skylib", - sha256 = versions.SKYLIB_SHA, - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % ( - versions.SKYLIB_VERSION, - versions.SKYLIB_VERSION, - )], + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], ) http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + +# Android rules dependencies +load("@rules_android//:prereqs.bzl", "rules_android_prereqs") + +rules_android_prereqs() + +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +##### rules_android setup ##### +load("@rules_android//:defs.bzl", "rules_android_workspace") + +rules_android_workspace() + +# Android SDK setup +load("@rules_android//rules:rules.bzl", "android_sdk_repository") + +android_sdk_repository( + name = "androidsdk", +) + +register_toolchains( + "@rules_android//toolchains/android:android_default_toolchain", + "@rules_android//toolchains/android_sdk:android_sdk_tools", ) +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") + +kotlin_repositories() + +register_toolchains("//bzl:experimental_toolchain") + load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", artifacts = [ "com.google.auto.value:auto-value:1.6.5", "com.google.auto.value:auto-value-annotations:1.6.5", @@ -42,21 +94,3 @@ maven_install( "https://repo1.maven.org/maven2", ], ) - -register_toolchains("//bzl:experimental_toolchain") - -http_archive( - name = "rules_android", - sha256 = versions.ANDROID.SHA, - strip_prefix = "rules_android-%s" % versions.ANDROID.VERSION, - urls = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % versions.ANDROID.VERSION], -) - -load( - "@rules_android//android:rules.bzl", - "android_sdk_repository", -) - -android_sdk_repository( - name = "androidsdk", -) diff --git a/examples/deps/exclude/6.0.0 b/examples/deps/exclude/6.0.0 deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/deps/exclude/6.4.0 b/examples/deps/exclude/6.4.0 deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/deps/libAndroid1/BUILD.bazel b/examples/deps/libAndroid1/BUILD.bazel index 3fd5d3e03..5aed8a3c2 100644 --- a/examples/deps/libAndroid1/BUILD.bazel +++ b/examples/deps/libAndroid1/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_android//android:rules.bzl", "android_library") + android_library( name = "src_main", srcs = glob(["src/main/java/**/*.java"]), diff --git a/examples/deps/libAndroid2/BUILD.bazel b/examples/deps/libAndroid2/BUILD.bazel index 459d3d667..adfc4a524 100644 --- a/examples/deps/libAndroid2/BUILD.bazel +++ b/examples/deps/libAndroid2/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_android//android:rules.bzl", "android_library") + android_library( name = "src_main", srcs = glob(["src/main/java/**/*.java"]), diff --git a/examples/deps/libAndroid3/BUILD.bazel b/examples/deps/libAndroid3/BUILD.bazel index 086195f43..190b2117c 100644 --- a/examples/deps/libAndroid3/BUILD.bazel +++ b/examples/deps/libAndroid3/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_android//android:rules.bzl", "android_library") + android_library( name = "src_main", srcs = glob(["src/main/java/**/*.java"]), diff --git a/examples/deps/libAndroid4/BUILD.bazel b/examples/deps/libAndroid4/BUILD.bazel index 8c685f1da..7d5393dcc 100644 --- a/examples/deps/libAndroid4/BUILD.bazel +++ b/examples/deps/libAndroid4/BUILD.bazel @@ -1,3 +1,5 @@ +load("@rules_android//android:rules.bzl", "android_library") + android_library( name = "src_main", srcs = glob(["src/main/java/**/*.java"]), diff --git a/examples/jetpack_compose/BUILD b/examples/jetpack_compose/BUILD index c133bff30..534686c34 100644 --- a/examples/jetpack_compose/BUILD +++ b/examples/jetpack_compose/BUILD @@ -22,7 +22,7 @@ kt_compiler_plugin( target_embedded_compiler = True, visibility = ["//visibility:public"], deps = [ - "@maven//:org_jetbrains_kotlin_kotlin_compose_compiler_plugin_embeddable", + "@maven_rules_kotlin_example//:org_jetbrains_kotlin_kotlin_compose_compiler_plugin_embeddable", ], ) diff --git a/examples/jetpack_compose/WORKSPACE b/examples/jetpack_compose/WORKSPACE index 61779d49d..d4d9dfca4 100644 --- a/examples/jetpack_compose/WORKSPACE +++ b/examples/jetpack_compose/WORKSPACE @@ -1,51 +1,72 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -# Setup Kotlin - http_archive( name = "rules_kotlin", sha256 = "34e8c0351764b71d78f76c8746e98063979ce08dcf1a91666f3f3bc2949a533d", url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version", "versions") +load("@rules_kotlin//kotlin:repositories.bzl", "versions") -KOTLINC_RELEASE = versions.KOTLIN_CURRENT_COMPILER_RELEASE +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) -kotlin_repositories( - compiler_release = kotlinc_version( - release = "2.0.0", - sha256 = "ef578730976154fd2c5968d75af8c2703b3de84a78dffe913f670326e149da3b", - ) if KOTLINC_RELEASE.version == "1.9.22" else kotlinc_version( - release = KOTLINC_RELEASE.version, - sha256 = KOTLINC_RELEASE.sha256, - ), +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], ) -register_toolchains("//:kotlin_toolchain") +http_archive( + name = "rules_java", + sha256 = versions.RULES_JAVA.sha256, + urls = [url.format(version = versions.RULES_JAVA.version) for url in versions.RULES_JAVA.url_templates], +) -## JVM External +http_archive( + name = "bazel_features", + sha256 = versions.BAZEL_FEATURES.sha256, + strip_prefix = versions.BAZEL_FEATURES.strip_prefix_template.format(version = versions.BAZEL_FEATURES.version), + urls = [url.format(version = versions.BAZEL_FEATURES.version) for url in versions.BAZEL_FEATURES.url_templates], +) -versions.use_repository( - name = "io_bazel_stardoc", - rule = http_archive, - version = versions.IO_BAZEL_STARDOC, +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], ) -RULES_JVM_EXTERNAL_TAG = "6.6" +load("@bazel_features//:deps.bzl", "bazel_features_deps") -RULES_JVM_EXTERNAL_SHA = "3afe5195069bd379373528899c03a3072f568d33bd96fe037bd43b1f590535e7" +bazel_features_deps() -http_archive( - name = "rules_jvm_external", - sha256 = RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - RULES_JVM_EXTERNAL_TAG, - RULES_JVM_EXTERNAL_TAG, - ), -) +# Android rules dependencies +load("@rules_android//:prereqs.bzl", "rules_android_prereqs") + +rules_android_prereqs() +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") rules_jvm_external_deps() @@ -54,6 +75,41 @@ load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") rules_jvm_external_setup() +##### rules_android setup ##### +load("@rules_android//:defs.bzl", "rules_android_workspace") + +rules_android_workspace() + +# Android SDK setup +load("@rules_android//rules:rules.bzl", "android_sdk_repository") + +android_sdk_repository(name = "androidsdk") + +register_toolchains( + "@rules_android//toolchains/android:android_default_toolchain", + "@rules_android//toolchains/android_sdk:android_sdk_tools", +) + +KOTLINC_RELEASE = versions.KOTLIN_CURRENT_COMPILER_RELEASE + +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version") + +kotlin_repositories( + compiler_release = kotlinc_version( + release = "2.0.0", + sha256 = "ef578730976154fd2c5968d75af8c2703b3de84a78dffe913f670326e149da3b", + ) if KOTLINC_RELEASE.version == "1.9.22" else kotlinc_version( + release = KOTLINC_RELEASE.version, + sha256 = KOTLINC_RELEASE.sha256, + ), +) + +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") + +kt_register_toolchains() + +register_toolchains("//:kotlin_toolchain") + KOTLIN_TO_COMPOSE = { "1.9.22": [ "org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.0.0", @@ -81,7 +137,8 @@ KOTLIN_TO_COMPOSE = { load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( - name = "maven", + name = "maven_rules_kotlin_example", + aar_import_bzl_label = "@rules_android//rules:rules.bzl", artifacts = KOTLIN_TO_COMPOSE[KOTLINC_RELEASE.version], fetch_sources = True, maven_install_json = "//:maven_install-%s.json" % KOTLINC_RELEASE.version, @@ -90,35 +147,9 @@ maven_install( "https://repo1.maven.org/maven2", ], resolver = "coursier" if KOTLINC_RELEASE.version == "1.9.22" else "maven", + use_starlark_android_rules = True, ) -load("@maven//:defs.bzl", "pinned_maven_install") +load("@maven_rules_kotlin_example//:defs.bzl", "pinned_maven_install") pinned_maven_install() - -http_archive( - name = "bazel_skylib", - sha256 = versions.SKYLIB_SHA, - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % ( - versions.SKYLIB_VERSION, - versions.SKYLIB_VERSION, - )], -) - -## Android - -http_archive( - name = "rules_android", - sha256 = versions.ANDROID.SHA, - strip_prefix = "rules_android-%s" % versions.ANDROID.VERSION, - urls = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % versions.ANDROID.VERSION], -) - -load("@rules_android//android:rules.bzl", "android_sdk_repository") - -android_sdk_repository(name = "androidsdk") - -android_ndk_repository( - name = "androidndk", - api_level = 21, -) diff --git a/examples/jetpack_compose/compose-ui/BUILD b/examples/jetpack_compose/compose-ui/BUILD index a4c25dae0..f1f7fb018 100644 --- a/examples/jetpack_compose/compose-ui/BUILD +++ b/examples/jetpack_compose/compose-ui/BUILD @@ -8,12 +8,12 @@ kt_android_library( plugins = ["//:jetpack_compose_compiler_plugin"], visibility = ["//visibility:public"], deps = [ - "@maven//:androidx_activity_activity_compose", - "@maven//:androidx_appcompat_appcompat", - "@maven//:androidx_compose_material_material", - "@maven//:androidx_compose_runtime_runtime", - "@maven//:androidx_compose_ui_ui", - "@maven//:androidx_compose_ui_ui_tooling", - "@maven//:androidx_core_core_ktx", + "@maven_rules_kotlin_example//:androidx_activity_activity_compose", + "@maven_rules_kotlin_example//:androidx_appcompat_appcompat", + "@maven_rules_kotlin_example//:androidx_compose_material_material", + "@maven_rules_kotlin_example//:androidx_compose_runtime_runtime", + "@maven_rules_kotlin_example//:androidx_compose_ui_ui", + "@maven_rules_kotlin_example//:androidx_compose_ui_ui_tooling", + "@maven_rules_kotlin_example//:androidx_core_core_ktx", ], ) diff --git a/examples/jetpack_compose/only/8.0.0-pre.20240206.3 b/examples/jetpack_compose/only/8.0.0-pre.20240206.3 deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/jetpack_compose/stub/BUILD b/examples/jetpack_compose/stub/BUILD deleted file mode 100644 index 99d1ea12a..000000000 --- a/examples/jetpack_compose/stub/BUILD +++ /dev/null @@ -1,11 +0,0 @@ -load("@rules_java//java:defs.bzl", "java_library") - -java_library( - name = "sun_misc", - srcs = [ - "sun/misc/Signal.java", - "sun/misc/SignalHandler.java", - ], - neverlink = True, - visibility = ["//visibility:public"], -) diff --git a/examples/jetpack_compose/stub/sun/misc/Signal.java b/examples/jetpack_compose/stub/sun/misc/Signal.java deleted file mode 100644 index fea83346d..000000000 --- a/examples/jetpack_compose/stub/sun/misc/Signal.java +++ /dev/null @@ -1,4 +0,0 @@ -package sun.misc; - -public final class Signal { -} \ No newline at end of file diff --git a/examples/jetpack_compose/stub/sun/misc/SignalHandler.java b/examples/jetpack_compose/stub/sun/misc/SignalHandler.java deleted file mode 100644 index 169980480..000000000 --- a/examples/jetpack_compose/stub/sun/misc/SignalHandler.java +++ /dev/null @@ -1,4 +0,0 @@ -package sun.misc; - -public interface SignalHandler { -} \ No newline at end of file diff --git a/examples/ksp/BUILD b/examples/ksp/BUILD index 3105bf80c..5a336449d 100644 --- a/examples/ksp/BUILD +++ b/examples/ksp/BUILD @@ -80,7 +80,7 @@ kt_jvm_library( name = "generated_lib", srcs = [":genereated_module_src"], plugins = ["//third_party:dagger_ksp_plugin"], - deps = ["@maven//:com_google_dagger_dagger"], + deps = ["@maven_rules_kotlin_example//:com_google_dagger_dagger"], ) kt_jvm_library( @@ -101,12 +101,12 @@ kt_jvm_library( ], deps = [ ":generated_lib", - "@maven//:com_google_auto_service_auto_service_annotations", - "@maven//:com_google_auto_value_auto_value_annotations", - "@maven//:com_google_dagger_dagger", - "@maven//:com_squareup_moshi_moshi", - "@maven//:com_squareup_moshi_moshi_kotlin", - "@maven//:org_jetbrains_kotlinx_kotlinx_coroutines_core", + "@maven_rules_kotlin_example//:com_google_auto_service_auto_service_annotations", + "@maven_rules_kotlin_example//:com_google_auto_value_auto_value_annotations", + "@maven_rules_kotlin_example//:com_google_dagger_dagger", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin", + "@maven_rules_kotlin_example//:org_jetbrains_kotlinx_kotlinx_coroutines_core", ], ) @@ -134,10 +134,10 @@ kt_jvm_library( "//third_party:ksp_moshi", ], deps = [ - "@maven//:com_google_auto_service_auto_service_annotations", - "@maven//:com_google_auto_value_auto_value_annotations", - "@maven//:com_squareup_moshi_moshi", - "@maven//:com_squareup_moshi_moshi_kotlin", + "@maven_rules_kotlin_example//:com_google_auto_service_auto_service_annotations", + "@maven_rules_kotlin_example//:com_google_auto_value_auto_value_annotations", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin", ], ) diff --git a/examples/ksp/WORKSPACE b/examples/ksp/WORKSPACE index a728fb17d..d210243d3 100644 --- a/examples/ksp/WORKSPACE +++ b/examples/ksp/WORKSPACE @@ -8,38 +8,65 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) +load("@rules_kotlin//kotlin:repositories.bzl", "versions") + +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) + +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], +) + +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") kotlin_repositories() -load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") -kt_register_toolchains() +rules_java_dependencies() -load("@rules_kotlin//src/main/starlark/core/repositories:versions.bzl", "versions") +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility -http_archive( - name = "bazel_skylib", - sha256 = versions.SKYLIB_SHA, - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % ( - versions.SKYLIB_VERSION, - versions.SKYLIB_VERSION, - )], -) +proto_bazel_features(name = "proto_bazel_features") -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), -) +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") + +kt_register_toolchains() load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", artifacts = [ "com.google.auto.service:auto-service-annotations:jar:1.1.1", "com.google.auto.value:auto-value-annotations:1.10.1", diff --git a/examples/ksp/third_party/BUILD.bazel b/examples/ksp/third_party/BUILD.bazel index 4af98cdab..09cea3cb6 100644 --- a/examples/ksp/third_party/BUILD.bazel +++ b/examples/ksp/third_party/BUILD.bazel @@ -6,7 +6,7 @@ java_plugin( generates_api = True, processor_class = "com.google.auto.value.processor.AutoValueProcessor", visibility = ["//visibility:public"], - deps = ["@maven//:com_google_auto_value_auto_value"], + deps = ["@maven_rules_kotlin_example//:com_google_auto_value_auto_value"], ) kt_compiler_plugin( @@ -53,9 +53,9 @@ kt_plugin_cfg( plugin = ":ksp", visibility = ["//visibility:public"], deps = [ - "@maven//:com_squareup_moshi_moshi", - "@maven//:com_squareup_moshi_moshi_kotlin", - "@maven//:com_squareup_moshi_moshi_kotlin_codegen", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin_codegen", ], ) @@ -64,9 +64,9 @@ kt_ksp_plugin( processor_class = "com.squareup.moshi.kotlin.codegen.ksp.JsonClassSymbolProcessorProvider", visibility = ["//visibility:public"], deps = [ - "@maven//:com_squareup_moshi_moshi", - "@maven//:com_squareup_moshi_moshi_kotlin", - "@maven//:com_squareup_moshi_moshi_kotlin_codegen", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin", + "@maven_rules_kotlin_example//:com_squareup_moshi_moshi_kotlin_codegen", ], ) @@ -76,7 +76,7 @@ kt_ksp_plugin( processor_class = "dagger.internal.codegen.KspComponentProcessor", target_embedded_compiler = True, visibility = ["//visibility:public"], - deps = ["@maven//:com_google_dagger_dagger_compiler"], + deps = ["@maven_rules_kotlin_example//:com_google_dagger_dagger_compiler"], ) kt_ksp_plugin( @@ -84,7 +84,7 @@ kt_ksp_plugin( processor_class = "dev.zacsweers.autoservice.ksp.AutoServiceSymbolProcessor$Provider", visibility = ["//visibility:public"], deps = [ - "@maven//:com_google_auto_service_auto_service_annotations", - "@maven//:dev_zacsweers_autoservice_auto_service_ksp", + "@maven_rules_kotlin_example//:com_google_auto_service_auto_service_annotations", + "@maven_rules_kotlin_example//:dev_zacsweers_autoservice_auto_service_ksp", ], ) diff --git a/examples/multiplex/MODULE.bazel b/examples/multiplex/MODULE.bazel index 2161fecfb..55a25f3ec 100644 --- a/examples/multiplex/MODULE.bazel +++ b/examples/multiplex/MODULE.bazel @@ -3,12 +3,13 @@ module(name = "multiplex-example") remote_android_extensions = use_extension("@bazel_tools//tools/android:android_extensions.bzl", "remote_android_tools_extensions") use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") -bazel_dep(name = "rules_java", version = "6.4.0") +bazel_dep(name = "rules_java", version = "8.9.0") bazel_dep(name = "rules_kotlin", version = "1.9.5") -bazel_dep(name = "rules_jvm_external", version = "5.3") +bazel_dep(name = "rules_jvm_external", version = "6.6") maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( + name = "maven_rules_kotlin_example", artifacts = [ "junit:junit:4.13.2", "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.0.1", @@ -17,4 +18,4 @@ maven.install( "https://repo1.maven.org/maven2", ], ) -use_repo(maven, "maven") +use_repo(maven, "maven_rules_kotlin_example") diff --git a/examples/multiplex/WORKSPACE b/examples/multiplex/WORKSPACE index d2ed73fd2..47a22e88f 100644 --- a/examples/multiplex/WORKSPACE +++ b/examples/multiplex/WORKSPACE @@ -1,5 +1,3 @@ -workspace(name = "multiplex") - load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( @@ -8,10 +6,41 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) +load("@rules_kotlin//kotlin:repositories.bzl", "versions") + +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) + +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") kotlin_repositories() +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") -kt_register_toolchains() +kt_register_toolchains() \ No newline at end of file diff --git a/examples/multiplex/exclude/6.0.0 b/examples/multiplex/exclude/6.0.0 deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/node/WORKSPACE b/examples/node/WORKSPACE deleted file mode 100644 index e69de29bb..000000000 diff --git a/examples/android/exclude/6.0.0 b/examples/plugin/BUILD similarity index 100% rename from examples/android/exclude/6.0.0 rename to examples/plugin/BUILD diff --git a/examples/plugin/WORKSPACE b/examples/plugin/WORKSPACE index 099b10ccf..a6a1b12e9 100644 --- a/examples/plugin/WORKSPACE +++ b/examples/plugin/WORKSPACE @@ -6,6 +6,73 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) +load("@rules_kotlin//kotlin:repositories.bzl", "versions") + +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) + +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], +) + +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + +# Android rules dependencies +load("@rules_android//:prereqs.bzl", "rules_android_prereqs") + +rules_android_prereqs() + +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + +##### rules_android setup ##### +load("@rules_android//:defs.bzl", "rules_android_workspace") + +rules_android_workspace() + +# Android SDK setup +load("@rules_android//rules:rules.bzl", "android_sdk_repository") + +android_sdk_repository(name = "androidsdk") + +register_toolchains( + "@rules_android//toolchains/android:android_default_toolchain", + "@rules_android//toolchains/android_sdk:android_sdk_tools", +) + load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") kotlin_repositories() @@ -14,21 +81,11 @@ load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") kt_register_toolchains() -load("@rules_kotlin//src/main/starlark/core/repositories:versions.bzl", "versions") - -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), -) - load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", + aar_import_bzl_label = "@rules_android//rules:rules.bzl", artifacts = [ "junit:junit:4.13.2", "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.0.1", @@ -36,8 +93,5 @@ maven_install( repositories = [ "https://repo1.maven.org/maven2", ], + use_starlark_android_rules = True, ) - -load("@rules_android//android:rules.bzl", "android_sdk_repository") - -android_sdk_repository(name = "androidsdk") diff --git a/examples/plugin/src/allopennoarg/BUILD b/examples/plugin/src/allopennoarg/BUILD index 1804f8c10..77096811a 100644 --- a/examples/plugin/src/allopennoarg/BUILD +++ b/examples/plugin/src/allopennoarg/BUILD @@ -64,7 +64,7 @@ kt_jvm_test( test_class = "plugin.allopennoarg.UserHasNoargConstructorTest", deps = [ ":user", - "@maven//:junit_junit", + "@maven_rules_kotlin_example//:junit_junit", "@rules_kotlin//kotlin/compiler:kotlin-reflect", ], ) diff --git a/examples/plugin/src/noarg/BUILD b/examples/plugin/src/noarg/BUILD index bcadf95df..81972c836 100644 --- a/examples/plugin/src/noarg/BUILD +++ b/examples/plugin/src/noarg/BUILD @@ -35,7 +35,7 @@ kt_jvm_test( test_class = "plugin.noarg.UserHasNoargConstructorTest", deps = [ ":user", - "@maven//:junit_junit", + "@maven_rules_kotlin_example//:junit_junit", "@rules_kotlin//kotlin/compiler:kotlin-reflect", ], ) diff --git a/examples/plugin/src/serialization/BUILD b/examples/plugin/src/serialization/BUILD index 892978fbc..5c8bef23a 100644 --- a/examples/plugin/src/serialization/BUILD +++ b/examples/plugin/src/serialization/BUILD @@ -19,7 +19,7 @@ kt_jvm_library( srcs = [], exported_compiler_plugins = [":serialization_plugin"], exports = [ - "@maven//:org_jetbrains_kotlinx_kotlinx_serialization_core_jvm", + "@maven_rules_kotlin_example//:org_jetbrains_kotlinx_kotlinx_serialization_core_jvm", ], ) @@ -37,6 +37,6 @@ kt_jvm_test( test_class = "plugin.serialization.SerializationTest", deps = [ ":data", - "@maven//:junit_junit", + "@maven_rules_kotlin_example//:junit_junit", ], ) diff --git a/examples/trivial/BUILD b/examples/trivial/BUILD index 1b5f74161..ab93b7fd7 100644 --- a/examples/trivial/BUILD +++ b/examples/trivial/BUILD @@ -6,12 +6,12 @@ package(default_visibility = ["//visibility:public"]) java_library( name = "java_deps", exports = [ - "@maven//:com_expedia_graphql_kotlin", - "@maven//:com_expedia_graphql_kotlin_schema_generator", - "@maven//:com_graphql_java_graphql_java", - "@maven//:org_apache_logging_log4j_log4j_core", - "@maven//:org_apiguardian_apiguardian_api", - "@maven//:org_opentest4j_opentest4j", + "@maven_rules_kotlin_example//:com_expedia_graphql_kotlin", + "@maven_rules_kotlin_example//:com_expedia_graphql_kotlin_schema_generator", + "@maven_rules_kotlin_example//:com_graphql_java_graphql_java", + "@maven_rules_kotlin_example//:org_apache_logging_log4j_log4j_core", + "@maven_rules_kotlin_example//:org_apiguardian_apiguardian_api", + "@maven_rules_kotlin_example//:org_opentest4j_opentest4j", ], ) diff --git a/examples/trivial/MODULE.bazel b/examples/trivial/MODULE.bazel index fdc066dbd..82c3e5d25 100644 --- a/examples/trivial/MODULE.bazel +++ b/examples/trivial/MODULE.bazel @@ -1,20 +1,13 @@ module(name = "trival-example") -bazel_dep( - name = "rules_java", - version = "6.4.0", -) -bazel_dep( - name = "rules_kotlin", - version = "1.9.5", -) -bazel_dep( - name = "rules_jvm_external", - version = "5.3", -) +bazel_dep(name = "rules_java", version = "8.9.0") +bazel_dep(name = "rules_kotlin", version = "1.9.5") +bazel_dep(name = "rules_jvm_external", version = "6.6") +bazel_dep(name = "rules_shell", version = "0.4.0") maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( + name = "maven_rules_kotlin_example", artifacts = [ "com.expedia:graphql-kotlin:1.0.0-RC5", "com.expedia:graphql-kotlin-schema-generator:1.0.0-RC5", @@ -32,4 +25,4 @@ maven.install( "https://repo1.maven.org/maven2", ], ) -use_repo(maven, "maven") +use_repo(maven, "maven_rules_kotlin_example") diff --git a/examples/trivial/WORKSPACE b/examples/trivial/WORKSPACE index f6ebd0868..c07cfb926 100644 --- a/examples/trivial/WORKSPACE +++ b/examples/trivial/WORKSPACE @@ -6,29 +6,78 @@ http_archive( url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz", ) +load("@rules_kotlin//kotlin:repositories.bzl", "versions") + +http_archive( + name = "rules_jvm_external", + sha256 = versions.RULES_JVM_EXTERNAL.sha256, + strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version, + urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates], +) + +http_archive( + name = "rules_android", + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], +) + +http_archive( + name = "rules_shell", + sha256 = "3e114424a5c7e4fd43e0133cc6ecdfe54e45ae8affa14fadd839f29901424043", + strip_prefix = "rules_shell-0.4.0", + url = "https://github.com/bazelbuild/rules_shell/releases/download/v0.4.0/rules_shell-v0.4.0.tar.gz", +) + +http_archive( + name = "bazel_skylib", + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], +) + load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") kotlin_repositories() +##### rules_java setup for rules_android ##### +load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies") + +rules_java_dependencies() + +# note that the following line is what is minimally required from protobuf for the java rules +# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl +load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features") # buildifier: disable=bzl-visibility + +proto_bazel_features(name = "proto_bazel_features") + +# register toolchains +load("@rules_java//java:repositories.bzl", "rules_java_toolchains") + +rules_java_toolchains() + +##### rules_jvm_external setup for rules_android ##### +load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") + +rules_jvm_external_deps() + +load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup") + +rules_jvm_external_setup() + load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") kt_register_toolchains() -load("@rules_kotlin//src/main/starlark/core/repositories:versions.bzl", "versions") +load("@rules_shell//shell:repositories.bzl", "rules_shell_dependencies", "rules_shell_toolchains") -http_archive( - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % ( - versions.RULES_JVM_EXTERNAL_TAG, - versions.RULES_JVM_EXTERNAL_TAG, - ), -) +rules_shell_dependencies() + +rules_shell_toolchains() load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( + name = "maven_rules_kotlin_example", artifacts = [ "com.expedia:graphql-kotlin:1.0.0-RC5", "com.expedia:graphql-kotlin-schema-generator:1.0.0-RC5", @@ -46,9 +95,3 @@ maven_install( "https://repo1.maven.org/maven2", ], ) - -http_archive( - name = "rules_pkg", - sha256 = "8a298e832762eda1830597d64fe7db58178aa84cd5926d76d5b744d6558941c2", - url = "https://github.com/bazelbuild/rules_pkg/releases/download/0.7.0/rules_pkg-0.7.0.tar.gz", -) diff --git a/kotlin/BUILD b/kotlin/BUILD index 482d4599d..86671b3bd 100644 --- a/kotlin/BUILD +++ b/kotlin/BUILD @@ -20,12 +20,10 @@ release_archive( srcs = glob( ["*.bzl"], exclude = [ - "dependencies.bzl", "repositories.doc.bzl", ], ), src_map = { - "dependencies.release.bzl": "dependencies.bzl", "BUILD.release.bazel": "BUILD.bazel", }, deps = [ diff --git a/kotlin/compiler/BUILD.release.bazel b/kotlin/compiler/BUILD.release.bazel index b1685565a..f50885af0 100644 --- a/kotlin/compiler/BUILD.release.bazel +++ b/kotlin/compiler/BUILD.release.bazel @@ -27,7 +27,4 @@ kt_configure_ksp() bzl_library( name = "compiler", srcs = glob(["*.bzl"]), - deps = [ - "@rules_proto//proto:repositories", - ], ) diff --git a/kotlin/dependencies.bzl b/kotlin/dependencies.bzl deleted file mode 100644 index db5327407..000000000 --- a/kotlin/dependencies.bzl +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# 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( - "//src/main/starlark/core/repositories:download.bzl", - _kt_download_local_dev_dependencies = "kt_download_local_dev_dependencies", -) - -def kt_download_local_dev_dependencies(): - _kt_download_local_dev_dependencies() diff --git a/kotlin/dependencies.release.bzl b/kotlin/dependencies.release.bzl deleted file mode 100644 index d36f655a1..000000000 --- a/kotlin/dependencies.release.bzl +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# 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. - -def kt_download_local_dev_dependencies(): - # stub out dependencies. - pass diff --git a/kotlin/internal/BUILD b/kotlin/internal/BUILD index 7e5bd217c..019803452 100644 --- a/kotlin/internal/BUILD +++ b/kotlin/internal/BUILD @@ -46,5 +46,6 @@ bzl_library( "//src/main/starlark/core/compile", "//src/main/starlark/core/options", "@rules_java//java:rules", + "@rules_java//java/private:proto_support", ], ) diff --git a/kotlin_rules_maven_install.json b/kotlin_rules_maven_install.json index 7a20a7654..f8e3fe5e7 100755 --- a/kotlin_rules_maven_install.json +++ b/kotlin_rules_maven_install.json @@ -1,7 +1,7 @@ { "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL", - "__INPUT_ARTIFACTS_HASH": -788868969, - "__RESOLVED_ARTIFACTS_HASH": 1873973417, + "__INPUT_ARTIFACTS_HASH": 675540537, + "__RESOLVED_ARTIFACTS_HASH": -795355598, "conflict_resolution": { "com.google.guava:guava:27.1-jre": "com.google.guava:guava:33.2.1-jre" }, @@ -50,10 +50,10 @@ }, "com.google.code.gson:gson": { "shasums": { - "jar": "2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32", - "sources": "2d3220d5d936f0a26258aa3b358160741a4557e046a001251e5799c2db0f0d74" + "jar": "d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e", + "sources": "ba5bddb1a89eb721fcca39f3b34294532060f851e2407a82d82134a41eec4719" }, - "version": "2.7" + "version": "2.8.9" }, "com.google.dagger:dagger": { "shasums": { @@ -141,17 +141,17 @@ }, "com.google.protobuf:protobuf-java": { "shasums": { - "jar": "8c8a65be83e75ccdcaa21417e303025f1708ea01e8c0a05d6c770e64b6c09ea1", - "sources": "88411bb0333725b27bf53ed4d95785f6f4b541e22e1e27c60c2be8b3115fc5c4" + "jar": "16901851ebe5e89fe88aaad3c26866373695bc2e30627bb8932847e2f5fc2e76", + "sources": "6dc6e1117255285d82523d918a489887c3d2f6805e655d9c59f5176878ab3726" }, - "version": "3.6.0" + "version": "4.29.0" }, "com.google.protobuf:protobuf-java-util": { "shasums": { - "jar": "ad7f8d67674906ce88077fbb233b427b7068991a61af42ce9301990bdf8f3605", - "sources": "a2959842caed6f0b1dbecfaf0e73ef03117416f967c0532c32d092b6e2b98d60" + "jar": "1413fa2e13eecd323462884e13114ef655571c853cb4aac6a3e50a0d887c596e", + "sources": "676fe2cb6e2b0cbdf36b29e10db924c3f252b36188fe46a6fe24883e257e7bc8" }, - "version": "3.6.0" + "version": "4.29.0" }, "com.google.truth:truth": { "shasums": { @@ -537,8 +537,11 @@ "org.checkerframework:checker-qual" ], "com.google.protobuf:protobuf-java-util": [ + "com.google.code.findbugs:jsr305", "com.google.code.gson:gson", + "com.google.errorprone:error_prone_annotations", "com.google.guava:guava", + "com.google.j2objc:j2objc-annotations", "com.google.protobuf:protobuf-java" ], "com.google.truth:truth": [ @@ -655,9 +658,6 @@ "org.ow2.asm:asm-commons" ] }, - "skipped": [ - "com.google.guava:listenablefuture:jar:sources" - ], "packages": { "com.google.auto.service:auto-service": [ "com.google.auto.service.processor" @@ -756,6 +756,8 @@ "com.google.gson.internal", "com.google.gson.internal.bind", "com.google.gson.internal.bind.util", + "com.google.gson.internal.reflect", + "com.google.gson.internal.sql", "com.google.gson.reflect", "com.google.gson.stream" ], @@ -1856,5 +1858,91 @@ "org.pantsbuild:jarjar:jar:sources" ] }, + "services": { + "com.google.auto.service:auto-service": { + "javax.annotation.processing.Processor": [ + "com.google.auto.service.processor.AutoServiceProcessor" + ] + }, + "com.google.auto.service:auto-service:jar:sources": { + "javax.annotation.processing.Processor": [ + "com.google.auto.service.processor.AutoServiceProcessor" + ] + }, + "com.google.auto.value:auto-value": { + "autovalue.shaded.kotlinx.metadata.impl.extensions.MetadataExtensions": [ + "autovalue.shaded.kotlinx.metadata.jvm.impl.JvmMetadataExtensions" + ], + "com.google.auto.value.extension.AutoValueExtension": [ + "com.google.auto.value.extension.memoized.processor.MemoizeExtension", + "com.google.auto.value.extension.serializable.processor.SerializableAutoValueExtension", + "com.google.auto.value.extension.toprettystring.processor.ToPrettyStringExtension" + ], + "com.google.auto.value.extension.serializable.serializer.interfaces.SerializerExtension": [ + "com.google.auto.value.extension.serializable.serializer.impl.ImmutableListSerializerExtension", + "com.google.auto.value.extension.serializable.serializer.impl.ImmutableMapSerializerExtension", + "com.google.auto.value.extension.serializable.serializer.impl.OptionalSerializerExtension" + ], + "javax.annotation.processing.Processor": [ + "com.google.auto.value.extension.memoized.processor.MemoizedValidator", + "com.google.auto.value.extension.toprettystring.processor.ToPrettyStringValidator", + "com.google.auto.value.processor.AutoAnnotationProcessor", + "com.google.auto.value.processor.AutoBuilderProcessor", + "com.google.auto.value.processor.AutoOneOfProcessor", + "com.google.auto.value.processor.AutoValueBuilderProcessor", + "com.google.auto.value.processor.AutoValueProcessor" + ] + }, + "com.google.dagger:dagger-compiler": { + "com.google.devtools.ksp.processing.SymbolProcessorProvider": [ + "dagger.internal.codegen.KspComponentProcessor$Provider" + ], + "javax.annotation.processing.Processor": [ + "dagger.internal.codegen.ComponentProcessor" + ] + }, + "com.google.dagger:dagger-spi": { + "dagger.spi.internal.shaded.androidx.room.jarjarred.kotlin.metadata.internal.extensions.MetadataExtensions": [ + "dagger.spi.internal.shaded.androidx.room.jarjarred.kotlin.metadata.jvm.internal.JvmMetadataExtensions" + ], + "dagger.spi.internal.shaded.kotlin.metadata.internal.extensions.MetadataExtensions": [ + "dagger.spi.internal.shaded.kotlin.metadata.jvm.internal.JvmMetadataExtensions" + ] + }, + "com.squareup.moshi:moshi-kotlin-codegen": { + "com.google.devtools.ksp.processing.SymbolProcessorProvider": [ + "com.squareup.moshi.kotlin.codegen.ksp.JsonClassSymbolProcessorProvider" + ], + "com.squareup.moshi.kotlinx.metadata.internal.extensions.MetadataExtensions": [ + "com.squareup.moshi.kotlinx.metadata.jvm.internal.JvmMetadataExtensions" + ], + "javax.annotation.processing.Processor": [ + "com.squareup.moshi.kotlin.codegen.apt.JsonClassCodegenProcessor" + ] + }, + "dev.zacsweers.autoservice:auto-service-ksp": { + "com.google.devtools.ksp.processing.SymbolProcessorProvider": [ + "dev.zacsweers.autoservice.ksp.AutoServiceSymbolProcessor$Provider" + ] + }, + "org.eclipse.sisu:org.eclipse.sisu.inject": { + "javax.annotation.processing.Processor": [ + "org.eclipse.sisu.space.SisuIndexAPT6" + ] + }, + "org.jetbrains.kotlin:kotlin-reflect": { + "kotlin.reflect.jvm.internal.impl.builtins.BuiltInsLoader": [ + "kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsLoaderImpl" + ], + "kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition": [ + "kotlin.reflect.jvm.internal.impl.load.java.ErasedOverridabilityCondition", + "kotlin.reflect.jvm.internal.impl.load.java.FieldOverridabilityCondition", + "kotlin.reflect.jvm.internal.impl.load.java.JavaIncompatibilityRulesOverridabilityCondition" + ] + } + }, + "skipped": [ + "com.google.guava:listenablefuture:jar:sources" + ], "version": "2" } diff --git a/src/main/kotlin/io/bazel/kotlin/builder/toolchain/CompilationTaskContext.kt b/src/main/kotlin/io/bazel/kotlin/builder/toolchain/CompilationTaskContext.kt index 3676806da..7a1cfbb9f 100644 --- a/src/main/kotlin/io/bazel/kotlin/builder/toolchain/CompilationTaskContext.kt +++ b/src/main/kotlin/io/bazel/kotlin/builder/toolchain/CompilationTaskContext.kt @@ -17,7 +17,6 @@ package io.bazel.kotlin.builder.toolchain import com.google.protobuf.MessageOrBuilder -import com.google.protobuf.TextFormat import io.bazel.kotlin.model.CompilationTaskInfo import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream @@ -93,7 +92,7 @@ class CompilationTaskContext( header: String, msg: MessageOrBuilder, ) { - printLines(header, TextFormat.printToString(msg).split("\n"), filterEmpty = true) +// printLines(header, TextFormat.printToString(msg).split("\n"), filterEmpty = true) } /** diff --git a/src/main/kotlin/io/bazel/kotlin/test/BazelIntegrationTestRunner.kt b/src/main/kotlin/io/bazel/kotlin/test/BazelIntegrationTestRunner.kt index 703902188..5a76eb194 100644 --- a/src/main/kotlin/io/bazel/kotlin/test/BazelIntegrationTestRunner.kt +++ b/src/main/kotlin/io/bazel/kotlin/test/BazelIntegrationTestRunner.kt @@ -85,6 +85,7 @@ object BazelIntegrationTestRunner { "--bazelrc=$bazelrc", "build", overrideFlag, + "--incompatible_disallow_empty_glob=false", "//...", *version.workspaceFlag(bzlmod) ).onFailThrow() @@ -93,6 +94,7 @@ object BazelIntegrationTestRunner { "--bazelrc=$bazelrc", "query", overrideFlag, + "--incompatible_disallow_empty_glob=false", "@rules_kotlin//...", *version.workspaceFlag(bzlmod) ).onFailThrow() @@ -102,6 +104,7 @@ object BazelIntegrationTestRunner { "query", *version.workspaceFlag(bzlmod), overrideFlag, + "--incompatible_disallow_empty_glob=false", "kind(\".*_test\", \"//...\")", ).ok { process -> if (process.stdOut.isNotEmpty()) { diff --git a/src/main/protobuf/BUILD b/src/main/protobuf/BUILD index fc31054d5..7993d0434 100644 --- a/src/main/protobuf/BUILD +++ b/src/main/protobuf/BUILD @@ -1,5 +1,5 @@ -load("@rules_java//java:defs.bzl", "java_library", "java_proto_library") -load("@rules_proto//proto:defs.bzl", "proto_library") +load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library") +load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library") package(default_visibility = ["//visibility:public"]) diff --git a/src/main/starlark/core/compile/common.bzl b/src/main/starlark/core/compile/common.bzl index 00eb59024..7b892e496 100644 --- a/src/main/starlark/core/compile/common.bzl +++ b/src/main/starlark/core/compile/common.bzl @@ -1,8 +1,8 @@ TYPE = "//src/main/starlark/core/compile:toolchain_type" # Java toolchains -JAVA_TOOLCHAIN_TYPE = "@bazel_tools//tools/jdk:toolchain_type" -JAVA_RUNTIME_TOOLCHAIN_TYPE = "@bazel_tools//tools/jdk:runtime_toolchain_type" +JAVA_TOOLCHAIN_TYPE = Label("@bazel_tools//tools/jdk:toolchain_type") +JAVA_RUNTIME_TOOLCHAIN_TYPE = Label("@bazel_tools//tools/jdk:runtime_toolchain_type") KtJvmInfo = provider( fields = { diff --git a/src/main/starlark/core/repositories/BUILD.release.bazel b/src/main/starlark/core/repositories/BUILD.release.bazel index 1d8610115..e02f4ac70 100644 --- a/src/main/starlark/core/repositories/BUILD.release.bazel +++ b/src/main/starlark/core/repositories/BUILD.release.bazel @@ -18,7 +18,4 @@ bzl_library( name = "repositories", srcs = glob(["*.bzl"]), visibility = ["//visibility:public"], - deps = [ - "@rules_proto//proto:repositories", - ], ) diff --git a/src/main/starlark/core/repositories/download.bzl b/src/main/starlark/core/repositories/download.bzl deleted file mode 100644 index c08af13f7..000000000 --- a/src/main/starlark/core/repositories/download.bzl +++ /dev/null @@ -1,126 +0,0 @@ -# versions.Copyright 2020 versions.The versions.Bazel versions.Authors. versions.All rights reserved. -# -# versions.Licensed under the versions.Apache versions.License, versions.Version 2.0 (the "License"); -# you may not use this file except in compliance with the versions.License. -# versions.You may obtain a copy of the versions.License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# versions.Unless required by applicable law or agreed to in writing, software -# distributed under the versions.License is distributed on an "AS versions.IS" versions.BASIS, -# versions.WITHOUT versions.WARRANTIES versions.OR versions.CONDITIONS versions.OF versions.ANY versions.KIND, either express or implied. -# versions.See the versions.License for the specific language governing permissions and -# limitations under the versions.License. -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") -load(":rules_stardoc.bzl", "rules_stardoc_repository") -load(":versions.bzl", "versions") - -def kt_download_local_dev_dependencies(): - """ - Downloads all necessary http_* artifacts for rules_kotlin dev configuration. - - Must be called before setup_dependencies in the WORKSPACE. - """ - versions.use_repository( - name = "rules_proto", - version = versions.RULES_PROTO, - rule = rules_stardoc_repository, - starlark_packages = [ - "proto", - "proto/private", - ], - ) - - versions.use_repository( - rule = http_archive, - name = "rules_cc", - version = versions.RULES_CC, - ) - - # bazel_skylib is initialized twice during development. This is intentional, as development - # needs to be able to run the starlark unittests, while production does not. - maybe( - http_archive, - name = "bazel_skylib", - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % (versions.SKYLIB_VERSION, versions.SKYLIB_VERSION)], - sha256 = versions.SKYLIB_SHA, - ) - - maybe( - http_archive, - name = "bazel_toolchains", - sha256 = versions.BAZEL_TOOLCHAINS_SHA, - strip_prefix = "bazel-toolchains-%s" % versions.BAZEL_TOOLCHAINS_VERSION, - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/{0}/bazel-toolchains-{0}.tar.gz".format(versions.BAZEL_TOOLCHAINS_VERSION), - "https://github.com/bazelbuild/bazel-toolchains/releases/download/{0}/bazel-toolchains-{0}.tar.gz".format(versions.BAZEL_TOOLCHAINS_VERSION), - ], - ) - - versions.use_repository( - name = "rules_python", - rule = http_archive, - version = versions.RULES_PYTHON, - ) - - versions.use_repository( - name = "rules_java", - rule = http_archive, - version = versions.RULES_JAVA, - ) - - maybe( - http_archive, - name = "rules_jvm_external", - sha256 = versions.RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/%s/rules_jvm_external-%s.tar.gz" % (versions.RULES_JVM_EXTERNAL_TAG, versions.RULES_JVM_EXTERNAL_TAG), - ) - - versions.use_repository( - name = "rules_license", - rule = http_archive, - version = versions.RULES_LICENSE, - ) - - versions.use_repository( - name = "rules_pkg", - rule = http_archive, - version = versions.PKG, - ) - - versions.use_repository( - name = "io_bazel_stardoc", - version = versions.IO_BAZEL_STARDOC, - rule = http_archive, - ) - - rules_stardoc_repository( - name = "rules_android", - sha256 = versions.ANDROID.SHA, - strip_prefix = "rules_android-%s" % versions.ANDROID.VERSION, - urls = versions.ANDROID.URLS, - starlark_packages = [ - "android", - ], - ) - - versions.use_repository( - name = "rules_testing", - rule = http_archive, - version = versions.RULES_TESTING, - strip_prefix = "rules_testing-%s" % versions.RULES_TESTING.version, - ) - - versions.use_repository( - name = "rules_bazel_integration_test", - rule = http_archive, - version = versions.RULES_BAZEL_INTEGRATION_TEST, - ) - - versions.use_repository( - name = "cgrindel_bazel_starlib", - rule = http_archive, - version = versions.CGRINDEL_BAZEL_STARLIB, - ) diff --git a/src/main/starlark/core/repositories/initialize.release.bzl b/src/main/starlark/core/repositories/initialize.release.bzl index e97a39390..5a7368841 100644 --- a/src/main/starlark/core/repositories/initialize.release.bzl +++ b/src/main/starlark/core/repositories/initialize.release.bzl @@ -96,26 +96,68 @@ def kotlin_repositories( if is_bzlmod: return + maybe( + http_archive, + name = "py_absl", + sha256 = "8a3d0830e4eb4f66c4fa907c06edf6ce1c719ced811a12e26d9d3162f8471758", + urls = [ + "https://github.com/abseil/abseil-py/archive/refs/tags/v2.1.0.tar.gz", + ], + strip_prefix = "abseil-py-2.1.0", + ) + + maybe( + http_archive, + name = "rules_cc", + urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.0.16/rules_cc-0.0.16.tar.gz"], + sha256 = "bbf1ae2f83305b7053b11e4467d317a7ba3517a12cef608543c1b1c5bf48a4df", + strip_prefix = "rules_cc-0.0.16", + ) + + maybe( + http_archive, + name = "rules_license", + sha256 = versions.RULES_LICENSE.sha256, + urls = [url.format(version = versions.RULES_LICENSE.version) for url in versions.RULES_LICENSE.url_templates], + ) + maybe( http_archive, name = "rules_android", - sha256 = versions.ANDROID.SHA, - strip_prefix = "rules_android-%s" % versions.ANDROID.VERSION, - urls = versions.ANDROID.URLS, + sha256 = versions.RULES_ANDROID.sha256, + strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version), + urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates], ) - versions.use_repository( + maybe( + http_archive, name = "rules_java", - rule = http_archive, - version = versions.RULES_JAVA, + sha256 = versions.RULES_JAVA.sha256, + urls = [url.format(version = versions.RULES_JAVA.version) for url in versions.RULES_JAVA.url_templates], ) # See note in versions.bzl before updating bazel_skylib maybe( http_archive, name = "bazel_skylib", - urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/%s/bazel-skylib-%s.tar.gz" % (versions.SKYLIB_VERSION, versions.SKYLIB_VERSION)], - sha256 = versions.SKYLIB_SHA, + sha256 = versions.BAZEL_SKYLIB.sha256, + urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates], + ) + + maybe( + http_archive, + name = "com_google_protobuf", + sha256 = versions.COM_GOOGLE_PROTOBUF.sha256, + strip_prefix = versions.COM_GOOGLE_PROTOBUF.strip_prefix_template.format(version = versions.COM_GOOGLE_PROTOBUF.version), + urls = [url.format(version = versions.COM_GOOGLE_PROTOBUF.version) for url in versions.COM_GOOGLE_PROTOBUF.url_templates], + ) + + maybe( + http_archive, + name = "rules_proto", + sha256 = versions.RULES_PROTO.sha256, + strip_prefix = versions.RULES_PROTO.strip_prefix_template.format(version = versions.RULES_PROTO.version), + urls = [url.format(version = versions.RULES_PROTO.version) for url in versions.RULES_PROTO.url_templates], ) def kotlinc_version(release, sha256): diff --git a/src/main/starlark/core/repositories/setup.bzl b/src/main/starlark/core/repositories/setup.bzl index 7f7f12457..625f7eb0a 100644 --- a/src/main/starlark/core/repositories/setup.bzl +++ b/src/main/starlark/core/repositories/setup.bzl @@ -13,25 +13,14 @@ # limitations under the License. load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") -load("@cgrindel_bazel_starlib//:deps.bzl", "bazel_starlib_dependencies") -load("@io_bazel_stardoc//:setup.bzl", "stardoc_repositories") -load("@rules_bazel_integration_test//bazel_integration_test:deps.bzl", "bazel_integration_test_rules_dependencies") -load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies", "rules_cc_toolchains") -load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains") +load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps") load("@rules_jvm_external//:defs.bzl", "maven_install") -load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies") -load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") def kt_configure(): - """Setup dependencies. Must be called AFTER kt_download_local_dev_dependencies() """ - rules_cc_dependencies() - rules_cc_toolchains() + """Setup dependencies.""" + protobuf_deps() - rules_proto_dependencies() - rules_proto_toolchains() - - rules_java_dependencies() - rules_java_toolchains() + bazel_skylib_workspace() maven_install( name = "kotlin_rules_maven", @@ -39,8 +28,8 @@ def kt_configure(): artifacts = [ "com.google.code.findbugs:jsr305:3.0.2", "junit:junit:4.13-beta-3", - "com.google.protobuf:protobuf-java:3.6.0", - "com.google.protobuf:protobuf-java-util:3.6.0", + "com.google.protobuf:protobuf-java:4.29.0", + "com.google.protobuf:protobuf-java-util:4.29.0", "com.google.guava:guava:27.1-jre", "com.google.truth:truth:0.45", "com.google.auto.service:auto-service:1.1.1", @@ -66,15 +55,6 @@ def kt_configure(): ], ) - rules_cc_dependencies() - rules_cc_toolchains() - - rules_pkg_dependencies() - - stardoc_repositories() - - bazel_skylib_workspace() - - bazel_integration_test_rules_dependencies() - bazel_starlib_dependencies() - bazel_skylib_workspace() + rules_proto_dependencies() + rules_proto_toolchains() + rules_proto_setup() diff --git a/src/main/starlark/core/repositories/versions.bzl b/src/main/starlark/core/repositories/versions.bzl index 6f724696a..a864f4b38 100644 --- a/src/main/starlark/core/repositories/versions.bzl +++ b/src/main/starlark/core/repositories/versions.bzl @@ -20,8 +20,6 @@ def _use_repository(name, version, rule, **kwargs): maybe(rule, name = name, **http_archive_arguments) versions = struct( - BAZEL_TOOLCHAINS_VERSION = "4.1.0", - BAZEL_TOOLCHAINS_SHA = "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024", # IMPORTANT! rules_kotlin does not use the bazel_skylib unittest in production # This means the bazel_skylib_workspace call is skipped, as it only registers the unittest # toolchains. However, if a new workspace dependency is introduced, this precondition will fail. @@ -29,24 +27,43 @@ versions = struct( # 1. Download archive # 2. Download dependencies and Configure rules # --> 3. Configure dependencies <-- - SKYLIB_VERSION = "1.4.2", - SKYLIB_SHA = "66ffd9315665bfaafc96b52278f57c7e2dd09f5ede279ea6d39b2be471e7e3aa", - RULES_JVM_EXTERNAL_TAG = "5.3", - RULES_JVM_EXTERNAL_SHA = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", - RULES_PROTO = version( - version = "5.3.0-21.7", - sha256 = "dc3fb206a2cb3441b485eb1e423165b231235a1ea9b031b4433cf7bc1fa460dd", - strip_prefix_template = "rules_proto-{version}", + BAZEL_SKYLIB = version( + version = "1.7.1", + sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f", + url_templates = [ + "https://github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz", + ], + ), + BAZEL_FEATURES = version( + version = "1.25.0", + sha256 = "4fd9922d464686820ffd8fcefa28ccffa147f7cdc6b6ac0d8b07fde565c65d66", + strip_prefix_template = "bazel_features-{version}", + url_templates = [ + "https://github.com/bazel-contrib/bazel_features/releases/download/v{version}/bazel_features-v{version}.tar.gz", + ], + ), + RULES_JVM_EXTERNAL = version( + version = "6.6", + sha256 = "3afe5195069bd379373528899c03a3072f568d33bd96fe037bd43b1f590535e7", + strip_prefix_template = "rules_jvm_external-{version}", url_templates = [ - "https://github.com/bazelbuild/rules_proto/archive/refs/tags/{version}.tar.gz", + "https://github.com/bazelbuild/rules_jvm_external/releases/download/{version}/rules_jvm_external-{version}.tar.gz", ], ), - IO_BAZEL_STARDOC = version( - version = "0.5.6", - sha256 = "dfbc364aaec143df5e6c52faf1f1166775a5b4408243f445f44b661cfdc3134f", + COM_GOOGLE_PROTOBUF = version( + version = "29.0", + sha256 = "10a0d58f39a1a909e95e00e8ba0b5b1dc64d02997f741151953a2b3659f6e78c", + strip_prefix_template = "protobuf-{version}", url_templates = [ - "https://mirror.bazel.build/github.com/bazelbuild/stardoc/releases/download/{version}/stardoc-{version}.tar.gz", - "https://github.com/bazelbuild/stardoc/releases/download/{version}/stardoc-{version}.tar.gz", + "https://github.com/protocolbuffers/protobuf/releases/download/v{version}/protobuf-{version}.tar.gz", + ], + ), + RULES_PROTO = version( + version = "7.0.2", + sha256 = "0e5c64a2599a6e26c6a03d6162242d231ecc0de219534c38cb4402171def21e8", + strip_prefix_template = "rules_proto-{version}", + url_templates = [ + "https://github.com/bazelbuild/rules_proto/releases/download/{version}/rules_proto-{version}.tar.gz", ], ), PINTEREST_KTLINT = version( @@ -70,57 +87,28 @@ versions = struct( ], sha256 = "fc27b08cadc061a4a989af01cbeccb613feef1995f4aad68f2be0f886a3ee251", ), - ANDROID = struct( - VERSION = "0.1.1", - SHA = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", - URLS = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % "0.1.1"], - ), - # To update: https://github.com/bazelbuild/bazel-toolchains#latest-bazel-and-latest-ubuntu-1604-container - BAZELCI_RULES = struct( - version = "1.0.0", - sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e", - # This tarball intentionally does not have a SHA256 because the upstream URL can change without notice - # For more context: https://github.com/bazelbuild/bazel-toolchains/blob/0c1f7c3c5f9e63f1e0ee91738b964937eea2d3e0/WORKSPACE#L28-L32 - URLS = ["https://github.com/bazelbuild/continuous-integration/releases/download/rules-{version}/bazelci_rules-{version}.tar.gz"], - ), - PKG = version( - version = "1.0.1", - url_templates = [ - "https://github.com/bazelbuild/rules_pkg/releases/download/{version}/rules_pkg-{version}.tar.gz", - ], - sha256 = "d20c951960ed77cb7b341c2a59488534e494d5ad1d30c4818c736d57772a9fef", - ), - # needed for rules_pkg and java - RULES_PYTHON = version( - version = "0.23.1", - strip_prefix_template = "rules_python-{version}", + RULES_ANDROID = version( + version = "0.6.1", url_templates = [ - "https://github.com/bazelbuild/rules_python/archive/refs/tags/{version}.tar.gz", + "https://github.com/bazelbuild/rules_android/releases/download/v{version}/rules_android-v{version}.tar.gz", ], - sha256 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841", + strip_prefix_template = "rules_android-{version}", + sha256 = "7dc7a6ed0b9bf53f1f363292733e3d7164e140e96ed433a2937b19570d01d517", ), - # needed for rules_pkg and java RULES_JAVA = version( - version = "7.2.0", + version = "8.9.0", url_templates = [ "https://github.com/bazelbuild/rules_java/releases/download/{version}/rules_java-{version}.tar.gz", ], - sha256 = "eb7db63ed826567b2ceb1ec53d6b729e01636f72c9f5dfb6d2dfe55ad69d1d2a", + sha256 = "8daa0e4f800979c74387e4cd93f97e576ec6d52beab8ac94710d2931c57f8d8b", ), RULES_LICENSE = version( - version = "0.0.3", + version = "1.0.0", url_templates = [ "https://mirror.bazel.build/github.com/bazelbuild/rules_license/releases/download/{version}/rules_license-{version}.tar.gz", "https://github.com/bazelbuild/rules_license/releases/download/{version}/rules_license-{version}.tar.gz", ], - sha256 = None, - ), - RULES_TESTING = version( - version = "0.6.0", - url_templates = [ - "https://github.com/bazelbuild/rules_testing/releases/download/v{version}/rules_testing-v{version}.tar.gz", - ], - sha256 = "02c62574631876a4e3b02a1820cb51167bb9cdcdea2381b2fa9d9b8b11c407c4", + sha256 = "26d4021f6898e23b82ef953078389dd49ac2b5618ac564ade4ef87cced147b38", ), KOTLINX_SERIALIZATION_CORE_JVM = version( version = "1.6.3", @@ -143,25 +131,5 @@ versions = struct( ], sha256 = "d3234179bcff1886d53d67c11eca47f7f3cf7b63c349d16965f6db51b7f3dd9a", ), - RULES_BAZEL_INTEGRATION_TEST = version( - version = "0.26.0", - url_templates = [ - "https://github.com/bazel-contrib/rules_bazel_integration_test/releases/download/v{version}/rules_bazel_integration_test.v{version}.tar.gz", - ], - sha256 = "ab56cdd55a28781287242c7124ce9ff791ae8318ed641057f10edd98c55d7ed5", - ), - CGRINDEL_BAZEL_STARLIB = version( - version = "0.21.0", - sha256 = "43e375213dabe0c3928e65412ea7ec16850db93285c8c6f8b0eaa41cacd0f882", - url_templates = [ - "https://github.com/cgrindel/bazel-starlib/releases/download/v{version}/bazel-starlib.v{version}.tar.gz", - ], - ), - RULES_CC = version( - version = "0.0.9", - url_templates = ["https://github.com/bazelbuild/rules_cc/releases/download/{version}/rules_cc-{version}.tar.gz"], - sha256 = "2037875b9a4456dce4a79d112a8ae885bbc4aad968e6587dca6e64f3a0900cdf", - strip_prefix_template = "rules_cc-{version}", - ), use_repository = _use_repository, ) diff --git a/src/test/kotlin/io/bazel/kotlin/KotlinJvmKspAssertionTest.kt b/src/test/kotlin/io/bazel/kotlin/KotlinJvmKspAssertionTest.kt index 94204ddf8..e17f61070 100644 --- a/src/test/kotlin/io/bazel/kotlin/KotlinJvmKspAssertionTest.kt +++ b/src/test/kotlin/io/bazel/kotlin/KotlinJvmKspAssertionTest.kt @@ -49,7 +49,6 @@ class KotlinJvmKspAssertionTest: KotlinAssertionTestCase("src/test/data/jvm/ksp" "src/test/data/jvm/ksp/CoffeeMaker.class", "src/test/data/jvm/ksp/CoffeeMaker_Factory.class", "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop.class", - "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop\$1.class", "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop\$Builder.class", "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop\$CoffeeShopImpl.class", "src/test/data/jvm/ksp/DripCoffeeModule.class", @@ -112,7 +111,6 @@ class KotlinJvmKspAssertionTest: KotlinAssertionTestCase("src/test/data/jvm/ksp" "src/test/data/jvm/ksp/CoffeeMaker.class", "src/test/data/jvm/ksp/CoffeeMaker_Factory.class", "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop.class", - "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop\$1.class", "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop\$Builder.class", "src/test/data/jvm/ksp/DaggerCoffeeApp_CoffeeShop\$CoffeeShopImpl.class", "src/test/data/jvm/ksp/DripCoffeeModule.class", diff --git a/third_party/BUILD.release.bazel b/third_party/BUILD.release.bazel index 35d326bc4..fb1536f15 100644 --- a/third_party/BUILD.release.bazel +++ b/third_party/BUILD.release.bazel @@ -30,7 +30,7 @@ java_binary( java_import( name = "android_sdk", - jars = ["@bazel_tools//tools/android:android_jar"], + jars = ["@rules_android//tools/android:android_jar"], neverlink = True, visibility = ["//visibility:public"], )