From 67d5fc17a07bb2e72e42002b562c415f7a5f2e42 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Fri, 5 Dec 2025 15:09:18 +0000 Subject: [PATCH] Finalize Bzlmod migration for Bazel 8.x - Add `repo_mapping` to `robolectric` in `MODULE.bazel` to fix dependency visibility. - Remove outdated `idl_import_root` from `setupcompat.BUILD`. - Ensure correct build configuration for all dependencies. --- .bazelversion | 2 +- MODULE.bazel | 104 +++++++++++++++++++++++++++++++++++++++++++--- WORKSPACE | 104 ---------------------------------------------- setupcompat.BUILD | 7 ++-- setupdesign.BUILD | 5 ++- 5 files changed, 105 insertions(+), 117 deletions(-) delete mode 100644 WORKSPACE diff --git a/.bazelversion b/.bazelversion index 815da58b..a2f28f43 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.4.1 +8.4.0 diff --git a/MODULE.bazel b/MODULE.bazel index 00bb1836..a209f8f7 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -1,6 +1,98 @@ -############################################################################### -# Bazel now uses Bzlmod by default to manage external dependencies. -# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel. -# -# For more details, please check https://github.com/bazelbuild/bazel/issues/18958 -############################################################################### +module( + name = "testdpc", + version = "0.0.1", +) + +bazel_dep(name = "rules_jvm_external", version = "6.6") +bazel_dep(name = "rules_android", version = "0.6.3") + +# Android SDK +android_sdk_repository_extension = use_extension("@rules_android//rules/android_sdk_repository:rule.bzl", "android_sdk_repository_extension") +use_repo(android_sdk_repository_extension, "androidsdk") + +register_toolchains("@rules_android//toolchains/android:android_default_toolchain") +register_toolchains("@rules_android//toolchains/android_sdk:android_sdk_tools") +register_toolchains("@androidsdk//:all") + +# Maven +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + name = "maven", + artifacts = [ + "androidx.annotation:annotation:1.5.0", + "androidx.appcompat:appcompat:1.6.1", + "androidx.appcompat:appcompat-resources:1.6.1", + "androidx.collection:collection:1.2.0", + "androidx.constraintlayout:constraintlayout:2.1.3", + "androidx.core:core:1.9.0", + "androidx.enterprise:enterprise-feedback:1.1.0", + "androidx.legacy:legacy-support-core-ui:1.0.0", + "androidx.legacy:legacy-support-v13:1.0.0", + "androidx.lifecycle:lifecycle-common:2.5.1", + "androidx.lifecycle:lifecycle-process:2.5.1", + "androidx.lifecycle:lifecycle-runtime:2.5.1", + "androidx.localbroadcastmanager:localbroadcastmanager:1.1.0", + "androidx.preference:preference:1.1.0", + "androidx.recyclerview:recyclerview:1.2.0", + "androidx.test:core:1.5.0", + "androidx.test:monitor:1.6.0", + "androidx.test:runner:1.5.0", + "androidx.window:window:1.2.0", + "com.google.android.material:material:1.6.1", + "com.google.guava:guava:31.1-android", + "com.google.testparameterinjector:test-parameter-injector:1.15", + "com.google.errorprone:error_prone_annotations:2.26.1", + "junit:junit:4.13.2", + "javax.inject:javax.inject:1", + "org.hamcrest:java-hamcrest:2.0.0.0", + "org.robolectric:robolectric-annotations:3.3.2", + "org.robolectric:shadows-core:3.3.2", + "org.bouncycastle:bcpkix-jdk15on:1.70", + "org.bouncycastle:bcprov-jdk15on:1.70", + "org.robolectric:robolectric:4.2", + "com.google.truth:truth:1.4.2", + # Robolectric android-all jars likely needed by robolectric-bazel targets + "org.robolectric:android-all:10-robolectric-5803371", + ], + repositories = [ + "https://maven.google.com", + "https://repo1.maven.org/maven2", + ], + version_conflict_policy = "pinned", +) +use_repo(maven, "maven") + +# External Repositories +http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "robolectric", + urls = ["https://github.com/robolectric/robolectric-bazel/archive/4.7.3.tar.gz"], + strip_prefix = "robolectric-bazel-4.7.3", + repo_mapping = { + "@maven": "@maven", + }, +) + +http_archive( + name = "setupdesign", + build_file = "//:setupdesign.BUILD", + url = "https://android.googlesource.com/platform/external/setupdesign/+archive/4634dac90e3c09a78c2fcdfcb16ab9cb16265527.tar.gz", + repo_mapping = { + "@maven": "@maven", + "@setupcompat": "@setupcompat", + }, +) + +http_archive( + name = "setupcompat", + build_file = "//:setupcompat.BUILD", + patch_cmds = [ + "ed -s main/java/com/google/android/setupcompat/logging/ScreenKey.java <<<$',s/Creator<>/Creator/g\nw'", + "ed -s main/java/com/google/android/setupcompat/logging/SetupMetric.java <<<$',s/Creator<>/Creator/g\nw'", + ], + url = "https://android.googlesource.com/platform/external/setupcompat/+archive/2ce41c8f4de550b5186233cec0a722dd0ffd9a84.tar.gz", + repo_mapping = { + "@maven": "@maven", + }, +) diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 7d932be4..00000000 --- a/WORKSPACE +++ /dev/null @@ -1,104 +0,0 @@ -workspace(name = "testdpc") - -android_sdk_repository( - name = "androidsdk", - api_level = 35, -) - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -load("@bazel_tools//tools/build_defs/repo:jvm.bzl", "jvm_maven_import_external") - -RULES_JVM_EXTERNAL_TAG = "4.5" - -RULES_JVM_EXTERNAL_SHA = "b17d7388feb9bfa7f2fa09031b32707df529f26c91ab9e5d909eb1676badd9a6" - -http_archive( - name = "rules_jvm_external", - sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", - strip_prefix = "rules_jvm_external-5.3", - url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz", -) - -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_jvm_external//:defs.bzl", "maven_install") -load("@rules_jvm_external//:specs.bzl", "maven") - -http_archive( - name = "robolectric", - urls = ["https://github.com/robolectric/robolectric-bazel/archive/4.7.3.tar.gz"], - strip_prefix = "robolectric-bazel-4.7.3", -) - -load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories") - -robolectric_repositories() - -maven_install( - name = "maven", - artifacts = [ - "androidx.annotation:annotation:1.5.0", - "androidx.appcompat:appcompat:1.6.1", - "androidx.appcompat:appcompat-resources:1.6.1", - "androidx.collection:collection:1.2.0", - "androidx.constraintlayout:constraintlayout:2.1.3", - "androidx.core:core:1.9.0", - "androidx.enterprise:enterprise-feedback:1.1.0", - "androidx.legacy:legacy-support-core-ui:1.0.0", - "androidx.legacy:legacy-support-v13:1.0.0", - "androidx.lifecycle:lifecycle-common:2.5.1", - "androidx.lifecycle:lifecycle-process:2.5.1", - "androidx.lifecycle:lifecycle-runtime:2.5.1", - "androidx.localbroadcastmanager:localbroadcastmanager:1.1.0", - "androidx.preference:preference:1.1.0", - "androidx.recyclerview:recyclerview:1.2.0", - "androidx.test:core:1.5.0", - "androidx.test:monitor:1.6.0", - "androidx.test:runner:1.5.0", - "androidx.window:window:1.2.0", - "com.google.android.material:material:1.6.1", - "com.google.guava:guava:31.1-android", - "com.google.testparameterinjector:test-parameter-injector:1.15", - "com.google.errorprone:error_prone_annotations:2.26.1", - "junit:junit:4.13.2", - "javax.inject:javax.inject:1", - "org.hamcrest:java-hamcrest:2.0.0.0", - "org.robolectric:robolectric-annotations:3.3.2", - "org.robolectric:shadows-core:3.3.2", - "org.bouncycastle:bcpkix-jdk15on:1.70", - "org.bouncycastle:bcprov-jdk15on:1.70", - "org.robolectric:robolectric:4.2", - "com.google.truth:truth:1.4.2" - ], - repositories = [ - "https://maven.google.com", - "https://repo1.maven.org/maven2", - ], - # for androidx.annotation 1.5.0. 1.6.0+ uses gradle module metadata - # which rules_jvm_external cannot resolve yet, see - # https://github.com/bazelbuild/rules_jvm_external/issues/909 - version_conflict_policy = "pinned", -) - -http_archive( - name = "setupdesign", - build_file = "@//:setupdesign.BUILD", - url = "https://android.googlesource.com/platform/external/setupdesign/+archive/4634dac90e3c09a78c2fcdfcb16ab9cb16265527.tar.gz", -) - -http_archive( - name = "setupcompat", - build_file = "@//:setupcompat.BUILD", - # Patch source code to avoid "cannot infer type arguments for Creator" in 2 files - patch_cmds = [ - "ed -s main/java/com/google/android/setupcompat/logging/ScreenKey.java <<<$',s/Creator<>/Creator/g\nw'", - "ed -s main/java/com/google/android/setupcompat/logging/SetupMetric.java <<<$',s/Creator<>/Creator/g\nw'", - ], - url = "https://android.googlesource.com/platform/external/setupcompat/+archive/2ce41c8f4de550b5186233cec0a722dd0ffd9a84.tar.gz", -) diff --git a/setupcompat.BUILD b/setupcompat.BUILD index 66a473f5..7a32083f 100644 --- a/setupcompat.BUILD +++ b/setupcompat.BUILD @@ -3,9 +3,8 @@ android_library( srcs = glob([ "main/java/**/*.java", "main/java/**/*.kt", - ], exclude = ["partnerconfig/**"]), + ], exclude = ["partnerconfig/**"], allow_empty = True), custom_package = "com.google.android.setupcompat", - idl_import_root = "external/setupcompat/main/aidl", idl_parcelables = [ "main/aidl/com/google/android/setupcompat/portal/NotificationComponent.aidl", "main/aidl/com/google/android/setupcompat/portal/ProgressServiceComponent.aidl", @@ -22,7 +21,7 @@ android_library( proguard_specs = ["proguard.flags"], resource_files = glob([ "main/res/**", - ]), + ], allow_empty = True), deps = [ ":partnerconfig", "@maven//:androidx_annotation_annotation", @@ -35,7 +34,7 @@ android_library( name = "partnerconfig", srcs = glob([ "partnerconfig/java/**/*.java", - ]), + ], allow_empty = True), custom_package = "com.google.android.setupcompat.partnerconfig", exports_manifest = 1, manifest = "partnerconfig/AndroidManifest.xml", diff --git a/setupdesign.BUILD b/setupdesign.BUILD index d713fb00..824252f5 100644 --- a/setupdesign.BUILD +++ b/setupdesign.BUILD @@ -2,7 +2,7 @@ android_library( name = "setupdesign", srcs = glob([ "main/src/**/*.java", - ]), + ], allow_empty = True), custom_package = "com.google.android.setupdesign", exports_manifest = 1, manifest = "main/AndroidManifest.xml", @@ -14,6 +14,7 @@ android_library( "main/res/**", ], exclude_directories = 1, + allow_empty = True, ), deps = [ @@ -37,5 +38,5 @@ android_library( android_library( name = "setupdesign_strings", manifest = "strings/AndroidManifest.xml", - resource_files = glob(["strings/res/**"]), + resource_files = glob(["strings/res/**"], allow_empty = True), )