From ccb429fe3ec94627743412fa517df7f6540e6770 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 14:01:38 -0500 Subject: [PATCH 01/15] Update rules_jvm_external to latest (5.3). For https://github.com/bazelbuild/bazel/issues/17032. --- android/firebase-cloud-messaging/WORKSPACE | 4 ++-- android/jetpack-compose/WORKSPACE | 6 +++--- android/ndk/WORKSPACE | 6 +++--- android/robolectric-testing/WORKSPACE | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/android/firebase-cloud-messaging/WORKSPACE b/android/firebase-cloud-messaging/WORKSPACE index 9cc5a7acb..e3210e4d2 100644 --- a/android/firebase-cloud-messaging/WORKSPACE +++ b/android/firebase-cloud-messaging/WORKSPACE @@ -6,9 +6,9 @@ android_sdk_repository(name = "androidsdk") android_ndk_repository(name = "androidndk") -RULES_JVM_EXTERNAL_TAG = "2.9" +RULES_JVM_EXTERNAL_TAG = "5.3" -RULES_JVM_EXTERNAL_SHA = "e5b97a31a3e8feed91636f42e19b11c49487b85e5de2f387c999ea14d77c7f45" +RULES_JVM_EXTERNAL_SHA = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac" http_archive( name = "rules_jvm_external", diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index 9f5bd3480..e0dcf8bab 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -11,9 +11,9 @@ _KOTLIN_COMPILER_SHA = "5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce http_archive( name = "rules_jvm_external", - sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca", - strip_prefix = "rules_jvm_external-4.2", - url = "https://github.com/bazelbuild/rules_jvm_external/archive/4.2.zip", + sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", + strip_prefix = "rules_jvm_external-5.3", + url = "https://github.com/bazelbuild/rules_jvm_external/archive/5.3.zip", ) load("@rules_jvm_external//:defs.bzl", "maven_install") diff --git a/android/ndk/WORKSPACE b/android/ndk/WORKSPACE index b5b287541..e08f0fb4c 100644 --- a/android/ndk/WORKSPACE +++ b/android/ndk/WORKSPACE @@ -7,9 +7,9 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_jvm_external", - sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca", - strip_prefix = "rules_jvm_external-4.2", - url = "https://github.com/bazelbuild/rules_jvm_external/archive/4.2.zip", + sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", + strip_prefix = "rules_jvm_external-5.3", + url = "https://github.com/bazelbuild/rules_jvm_external/archive/5.3.zip", ) load("@rules_jvm_external//:defs.bzl", "maven_install") diff --git a/android/robolectric-testing/WORKSPACE b/android/robolectric-testing/WORKSPACE index c47596f15..368aaeea6 100644 --- a/android/robolectric-testing/WORKSPACE +++ b/android/robolectric-testing/WORKSPACE @@ -7,9 +7,9 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "rules_jvm_external", - sha256 = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca", - strip_prefix = "rules_jvm_external-4.2", - url = "https://github.com/bazelbuild/rules_jvm_external/archive/4.2.zip", + sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", + strip_prefix = "rules_jvm_external-5.3", + url = "https://github.com/bazelbuild/rules_jvm_external/archive/5.3.zip", ) load("@rules_jvm_external//:defs.bzl", "maven_install") From d0005287b5326e1f8af18b0e53372991a984f289 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 14:11:52 -0500 Subject: [PATCH 02/15] Update URL paths. --- android/firebase-cloud-messaging/WORKSPACE | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/android/firebase-cloud-messaging/WORKSPACE b/android/firebase-cloud-messaging/WORKSPACE index e3210e4d2..287d4dc78 100644 --- a/android/firebase-cloud-messaging/WORKSPACE +++ b/android/firebase-cloud-messaging/WORKSPACE @@ -14,7 +14,8 @@ 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/archive/%s.zip" % 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) ) load("@rules_jvm_external//:defs.bzl", "maven_install") From 30e420cc263df434778cef3e0602df5e7f6ef1f4 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 14:12:36 -0500 Subject: [PATCH 03/15] Update URL paths. --- android/jetpack-compose/WORKSPACE | 2 +- android/ndk/WORKSPACE | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index e0dcf8bab..c8301d626 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -13,7 +13,7 @@ http_archive( name = "rules_jvm_external", sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", strip_prefix = "rules_jvm_external-5.3", - url = "https://github.com/bazelbuild/rules_jvm_external/archive/5.3.zip", + url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz", ) load("@rules_jvm_external//:defs.bzl", "maven_install") diff --git a/android/ndk/WORKSPACE b/android/ndk/WORKSPACE index e08f0fb4c..a41469851 100644 --- a/android/ndk/WORKSPACE +++ b/android/ndk/WORKSPACE @@ -9,7 +9,7 @@ http_archive( name = "rules_jvm_external", sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", strip_prefix = "rules_jvm_external-5.3", - url = "https://github.com/bazelbuild/rules_jvm_external/archive/5.3.zip", + url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz", ) load("@rules_jvm_external//:defs.bzl", "maven_install") From bf042e36e8c6c970c569b673bece931930971355 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 14:13:54 -0500 Subject: [PATCH 04/15] Update URL paths. --- android/robolectric-testing/WORKSPACE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/robolectric-testing/WORKSPACE b/android/robolectric-testing/WORKSPACE index 368aaeea6..61247f926 100644 --- a/android/robolectric-testing/WORKSPACE +++ b/android/robolectric-testing/WORKSPACE @@ -9,7 +9,7 @@ http_archive( name = "rules_jvm_external", sha256 = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac", strip_prefix = "rules_jvm_external-5.3", - url = "https://github.com/bazelbuild/rules_jvm_external/archive/5.3.zip", + url = "https://github.com/bazelbuild/rules_jvm_external/releases/download/5.3/rules_jvm_external-5.3.tar.gz", ) load("@rules_jvm_external//:defs.bzl", "maven_install") From d18179e0495400f86157bdef687394586f8d7021 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 16:08:30 -0500 Subject: [PATCH 05/15] Try converting to bzlmod. --- android/ndk/MODULE.bazel | 20 +++++++++ android/ndk/WORKSPACE | 65 +--------------------------- android/ndk/app/src/main/BUILD.bazel | 2 +- 3 files changed, 22 insertions(+), 65 deletions(-) create mode 100644 android/ndk/MODULE.bazel diff --git a/android/ndk/MODULE.bazel b/android/ndk/MODULE.bazel new file mode 100644 index 000000000..a61705dfc --- /dev/null +++ b/android/ndk/MODULE.bazel @@ -0,0 +1,20 @@ +"Bazel dependencies" + +#bazel_dep(name = "platforms", version = "0.0.6") +bazel_dep(name = "rules_android", version = "0.1.1") +bazel_dep(name = "rules_jvm_external", version = "5.3") + +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + artifacts = [ + "com.google.firebase:firebase-messaging:17.0.0", + "com.android.support:appcompat-v7:26.1.0", + "com.android.support.constraint:constraint-layout:1.0.2", + "com.google.code.gson:gson:2.8.2", + ], + repositories = [ + "https://maven.google.com", + "https://repo1.maven.org/maven2", + ], +) +use_repo(maven, "maven") diff --git a/android/ndk/WORKSPACE b/android/ndk/WORKSPACE index a41469851..9cc43bba4 100644 --- a/android/ndk/WORKSPACE +++ b/android/ndk/WORKSPACE @@ -1,64 +1 @@ -# FIXME(alexeagle): move to bzlmod -workspace(name = "bazel_android_sample_project") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -## rules_jvm_external - -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//:defs.bzl", "maven_install") - -maven_install( - name = "maven", - artifacts = [ - "androidx.appcompat:appcompat:1.5.1", - "androidx.constraintlayout:constraintlayout:2.1.4", - # Needed to enforce version conflict resolution - "androidx.savedstate:savedstate:1.2.0", - "androidx.lifecycle:lifecycle-livedata-core:2.5.1", - "androidx.lifecycle:lifecycle-livedata:2.5.1", - "androidx.lifecycle:lifecycle-process:2.5.1", - "androidx.lifecycle:lifecycle-runtime:2.5.1", - "androidx.lifecycle:lifecycle-service:2.5.1", - "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1", - "androidx.lifecycle:lifecycle-viewmodel:2.5.1", - ], - repositories = [ - "https://maven.google.com", - "https://repo1.maven.org/maven2", - ], -) - -## Android - -http_archive( - name = "build_bazel_rules_android", - sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", - strip_prefix = "rules_android-0.1.1", - urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"], -) - -load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") - -android_sdk_repository( - name = "androidsdk", -) - -http_archive( - name = "rules_android_ndk", - sha256 = "3fa4a58f4df356bca277219763f91c64f33dcc59e10843e9762fc5e7947644f9", - strip_prefix = "rules_android_ndk-63fa7637902fb1d7db1bf86182e939ed3fe98477", - url = "https://github.com/bazelbuild/rules_android_ndk/archive/63fa7637902fb1d7db1bf86182e939ed3fe98477.zip", -) - -load("@rules_android_ndk//:rules.bzl", "android_ndk_repository") - -android_ndk_repository( - name = "androidndk", -) +android_sdk_repository(name = "androidsdk") diff --git a/android/ndk/app/src/main/BUILD.bazel b/android/ndk/app/src/main/BUILD.bazel index c1c6909d2..697a5d262 100644 --- a/android/ndk/app/src/main/BUILD.bazel +++ b/android/ndk/app/src/main/BUILD.bazel @@ -1,4 +1,4 @@ -load("@build_bazel_rules_android//android:rules.bzl", "android_binary", "android_library") +load("@rules_android//android:rules.bzl", "android_binary", "android_library") load("@rules_cc//cc:defs.bzl", "cc_library") android_library( From c8b2e3c74a68b591c37596d03cd362a067784c6c Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 16:36:07 -0500 Subject: [PATCH 06/15] Enable bzlmod. --- .bazelci/android.yml | 1 + android/ndk/MODULE.bazel | 17 ++++++++++++----- android/ndk/WORKSPACE | 1 + 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.bazelci/android.yml b/.bazelci/android.yml index 3c69d7c42..04461cc14 100644 --- a/.bazelci/android.yml +++ b/.bazelci/android.yml @@ -19,6 +19,7 @@ common: - "--noincompatible_enable_android_toolchain_resolution" - "--fat_apk_cpu=arm64-v8a,x86" - "--android_crosstool_top=@androidndk//:toolchain" + - "--enable_bzlmod" build_targets: - "//app/src/main:app" android-jetpack: &android-jetpack diff --git a/android/ndk/MODULE.bazel b/android/ndk/MODULE.bazel index a61705dfc..8ebec3fb7 100644 --- a/android/ndk/MODULE.bazel +++ b/android/ndk/MODULE.bazel @@ -1,16 +1,23 @@ "Bazel dependencies" -#bazel_dep(name = "platforms", version = "0.0.6") +bazel_dep(name = "platforms", version = "0.0.6") bazel_dep(name = "rules_android", version = "0.1.1") bazel_dep(name = "rules_jvm_external", version = "5.3") maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( artifacts = [ - "com.google.firebase:firebase-messaging:17.0.0", - "com.android.support:appcompat-v7:26.1.0", - "com.android.support.constraint:constraint-layout:1.0.2", - "com.google.code.gson:gson:2.8.2", + "androidx.appcompat:appcompat:1.5.1", + "androidx.constraintlayout:constraintlayout:2.1.4", + # Needed to enforce version conflict resolution + "androidx.savedstate:savedstate:1.2.0", + "androidx.lifecycle:lifecycle-livedata-core:2.5.1", + "androidx.lifecycle:lifecycle-livedata:2.5.1", + "androidx.lifecycle:lifecycle-process:2.5.1", + "androidx.lifecycle:lifecycle-runtime:2.5.1", + "androidx.lifecycle:lifecycle-service:2.5.1", + "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1", + "androidx.lifecycle:lifecycle-viewmodel:2.5.1", ], repositories = [ "https://maven.google.com", diff --git a/android/ndk/WORKSPACE b/android/ndk/WORKSPACE index 9cc43bba4..11ea15104 100644 --- a/android/ndk/WORKSPACE +++ b/android/ndk/WORKSPACE @@ -1 +1,2 @@ android_sdk_repository(name = "androidsdk") +android_ndk_repository(name = "androidndk") From 4a408aa3056ac0d1e892a003881727731e15c55c Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 16:45:21 -0500 Subject: [PATCH 07/15] Put Android SDK / Android NDK registrations back in WORKSPACE. These aren't yet bzlmod-compatible. --- android/ndk/WORKSPACE | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/android/ndk/WORKSPACE b/android/ndk/WORKSPACE index 11ea15104..3d8bc033b 100644 --- a/android/ndk/WORKSPACE +++ b/android/ndk/WORKSPACE @@ -1,2 +1,21 @@ +http_archive( + name = "build_bazel_rules_android", + sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + strip_prefix = "rules_android-0.1.1", + urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"], +) + +load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") + android_sdk_repository(name = "androidsdk") + +http_archive( + name = "rules_android_ndk", + sha256 = "3fa4a58f4df356bca277219763f91c64f33dcc59e10843e9762fc5e7947644f9", + strip_prefix = "rules_android_ndk-63fa7637902fb1d7db1bf86182e939ed3fe98477", + url = "https://github.com/bazelbuild/rules_android_ndk/archive/63fa7637902fb1d7db1bf86182e939ed3fe98477.zip", +) + +load("@rules_android_ndk//:rules.bzl", "android_ndk_repository") + android_ndk_repository(name = "androidndk") From c5a463bbe88ecb046a4bd5c8b153c325277b4f09 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 16:47:49 -0500 Subject: [PATCH 08/15] Add missing http_archive def. --- android/ndk/WORKSPACE | 2 ++ 1 file changed, 2 insertions(+) diff --git a/android/ndk/WORKSPACE b/android/ndk/WORKSPACE index 3d8bc033b..b71d270fb 100644 --- a/android/ndk/WORKSPACE +++ b/android/ndk/WORKSPACE @@ -1,3 +1,5 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + http_archive( name = "build_bazel_rules_android", sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", From 8611b7af947ad1a58f3125c9406abf6865346653 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Wed, 15 Nov 2023 17:22:26 -0500 Subject: [PATCH 09/15] Update jetpack --- .bazelci/android.yml | 1 + android/jetpack-compose/MODULE.bazel | 41 +++++++++++ android/jetpack-compose/WORKSPACE | 70 ++----------------- .../jetpack-compose/app/src/main/BUILD.bazel | 4 +- 4 files changed, 51 insertions(+), 65 deletions(-) create mode 100644 android/jetpack-compose/MODULE.bazel diff --git a/.bazelci/android.yml b/.bazelci/android.yml index 04461cc14..3422de2ad 100644 --- a/.bazelci/android.yml +++ b/.bazelci/android.yml @@ -30,6 +30,7 @@ common: build_flags: - "--noincompatible_enable_android_toolchain_resolution" - "--remote_download_outputs=all" + - "--enable_bzlmod" build_targets: - "//app/src/main:app" android-robolectric: &android-robolectric diff --git a/android/jetpack-compose/MODULE.bazel b/android/jetpack-compose/MODULE.bazel new file mode 100644 index 000000000..759580e2a --- /dev/null +++ b/android/jetpack-compose/MODULE.bazel @@ -0,0 +1,41 @@ +"Bazel dependencies" + +bazel_dep(name = "platforms", version = "0.0.6") +bazel_dep(name = "rules_android", version = "0.1.1") +bazel_dep(name = "rules_jvm_external", version = "5.3") +bazel_dep(name = "rules_kotlin", version = "1.9.0") + +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + artifacts = [ + "androidx.appcompat:appcompat:1.5.1", + # Jetpack Compose Dependencies + "androidx.activity:activity-compose:1.6.0", + "androidx.compose.material:material:1.2.1", + "androidx.compose.ui:ui:1.2.1", + "androidx.compose.ui:ui-tooling:1.2.1", + "androidx.compose.compiler:compiler:1.3.2", + "androidx.compose.runtime:runtime:1.2.1", + # Dependencies needed to manage version conflicts + "androidx.core:core:1.6.0", + "androidx.core:core-ktx:1.6.0", + "androidx.savedstate:savedstate-ktx:1.2.0", + "androidx.savedstate:savedstate:1.2.0", + "androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.1", + "androidx.lifecycle:lifecycle-livedata-core:2.5.1", + "androidx.lifecycle:lifecycle-livedata:2.5.1", + "androidx.lifecycle:lifecycle-process:2.5.1", + "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1", + "androidx.lifecycle:lifecycle-runtime:2.5.1", + "androidx.lifecycle:lifecycle-service:2.5.1", + "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1", + "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1", + "androidx.lifecycle:lifecycle-viewmodel:2.5.1", + ], + repositories = [ + "https://maven.google.com", + "https://repo1.maven.org/maven2", + ], +) +use_repo(maven, "maven") + diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index c8301d626..844873449 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -1,57 +1,5 @@ -# FIXME(alexeagle): move to bzlmod -workspace(name = "bazel_android_sample_project") - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -_KOTLIN_COMPILER_VERSION = "1.7.20" - -_KOTLIN_COMPILER_SHA = "5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce7e94ae7d" - -## rules_jvm_external - -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//:defs.bzl", "maven_install") - -maven_install( - name = "maven", - artifacts = [ - "androidx.appcompat:appcompat:1.5.1", - # Jetpack Compose Dependencies - "androidx.activity:activity-compose:1.6.0", - "androidx.compose.material:material:1.2.1", - "androidx.compose.ui:ui:1.2.1", - "androidx.compose.ui:ui-tooling:1.2.1", - "androidx.compose.compiler:compiler:1.3.2", - "androidx.compose.runtime:runtime:1.2.1", - # Dependencies needed to manage version conflicts - "androidx.core:core:1.6.0", - "androidx.core:core-ktx:1.6.0", - "androidx.savedstate:savedstate-ktx:1.2.0", - "androidx.savedstate:savedstate:1.2.0", - "androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.1", - "androidx.lifecycle:lifecycle-livedata-core:2.5.1", - "androidx.lifecycle:lifecycle-livedata:2.5.1", - "androidx.lifecycle:lifecycle-process:2.5.1", - "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1", - "androidx.lifecycle:lifecycle-runtime:2.5.1", - "androidx.lifecycle:lifecycle-service:2.5.1", - "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1", - "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1", - "androidx.lifecycle:lifecycle-viewmodel:2.5.1", - ], - repositories = [ - "https://maven.google.com", - "https://repo1.maven.org/maven2", - ], -) - ## Android +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_android", @@ -62,19 +10,15 @@ http_archive( load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") -android_sdk_repository( - name = "androidsdk", -) +android_sdk_repository(name = "androidsdk") ## Kotlin -http_archive( - name = "io_bazel_rules_kotlin", - sha256 = "f033fa36f51073eae224f18428d9493966e67c27387728b6be2ebbdae43f140e", - url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.7.0-RC-3/rules_kotlin_release.tgz", -) +_KOTLIN_COMPILER_VERSION = "1.7.20" + +_KOTLIN_COMPILER_SHA = "5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce7e94ae7d" -load("@io_bazel_rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version") +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version") kotlin_repositories( compiler_release = kotlinc_version( @@ -83,6 +27,6 @@ kotlin_repositories( ), ) -load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") +load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") kt_register_toolchains() diff --git a/android/jetpack-compose/app/src/main/BUILD.bazel b/android/jetpack-compose/app/src/main/BUILD.bazel index c8410287c..2de7aef07 100644 --- a/android/jetpack-compose/app/src/main/BUILD.bazel +++ b/android/jetpack-compose/app/src/main/BUILD.bazel @@ -1,5 +1,5 @@ -load("@build_bazel_rules_android//android:rules.bzl", "android_binary") -load("@io_bazel_rules_kotlin//kotlin:android.bzl", "kt_android_library") +load("@rules_android//android:rules.bzl", "android_binary") +load("@rules_kotlin//kotlin:android.bzl", "kt_android_library") kt_android_library( name = "lib", From 8cfe8b77cd45d7d7c5904bea06a37625b8c16403 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Thu, 7 Dec 2023 18:31:46 -0500 Subject: [PATCH 10/15] Trying on jetpack https://github.com/bazelbuild/rules_kotlin/releases/tag/v1.9.0 discourages me from registering Kotlin and Android in bzlmod. --- android/jetpack-compose/MODULE.bazel | 3 --- android/jetpack-compose/WORKSPACE | 23 +++++++++++------------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/android/jetpack-compose/MODULE.bazel b/android/jetpack-compose/MODULE.bazel index 759580e2a..3a4131fdb 100644 --- a/android/jetpack-compose/MODULE.bazel +++ b/android/jetpack-compose/MODULE.bazel @@ -1,9 +1,7 @@ "Bazel dependencies" bazel_dep(name = "platforms", version = "0.0.6") -bazel_dep(name = "rules_android", version = "0.1.1") bazel_dep(name = "rules_jvm_external", version = "5.3") -bazel_dep(name = "rules_kotlin", version = "1.9.0") maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") maven.install( @@ -38,4 +36,3 @@ maven.install( ], ) use_repo(maven, "maven") - diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index 844873449..17fd3959a 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -2,31 +2,30 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( - name = "build_bazel_rules_android", + name = "rules_android", sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", strip_prefix = "rules_android-0.1.1", urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"], ) -load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") +load("@rules_android//android:rules.bzl", "android_sdk_repository") android_sdk_repository(name = "androidsdk") ## Kotlin -_KOTLIN_COMPILER_VERSION = "1.7.20" - -_KOTLIN_COMPILER_SHA = "5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce7e94ae7d" +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +http_archive( + name = "rules_kotlin", + sha256 = "5766f1e599acf551aa56f49dab9ab9108269b03c557496c54acaf41f98e2b8d6", + url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.0/rules_kotlin-v1.9.0.tar.gz", +) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version") +load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") -kotlin_repositories( - compiler_release = kotlinc_version( - release = _KOTLIN_COMPILER_VERSION, - sha256 = _KOTLIN_COMPILER_SHA, - ), -) +kotlin_repositories() load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") kt_register_toolchains() + From d001c74bb2f31bc7008d4523e5da0cd1e59a6b24 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Thu, 7 Dec 2023 18:39:54 -0500 Subject: [PATCH 11/15] Revert rules_android, rules_kotlin naming. --- android/jetpack-compose/WORKSPACE | 10 +++++----- android/jetpack-compose/app/src/main/BUILD.bazel | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index 17fd3959a..81d380185 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -2,13 +2,13 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( - name = "rules_android", + name = "build_bazel_rules_android", sha256 = "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", strip_prefix = "rules_android-0.1.1", urls = ["https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"], ) -load("@rules_android//android:rules.bzl", "android_sdk_repository") +load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") android_sdk_repository(name = "androidsdk") @@ -16,16 +16,16 @@ android_sdk_repository(name = "androidsdk") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( - name = "rules_kotlin", + name = "io_bazel_rules_kotlin", sha256 = "5766f1e599acf551aa56f49dab9ab9108269b03c557496c54acaf41f98e2b8d6", url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.0/rules_kotlin-v1.9.0.tar.gz", ) -load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") +load("@io_bazel_rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") kotlin_repositories() -load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") +load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") kt_register_toolchains() diff --git a/android/jetpack-compose/app/src/main/BUILD.bazel b/android/jetpack-compose/app/src/main/BUILD.bazel index 2de7aef07..c8410287c 100644 --- a/android/jetpack-compose/app/src/main/BUILD.bazel +++ b/android/jetpack-compose/app/src/main/BUILD.bazel @@ -1,5 +1,5 @@ -load("@rules_android//android:rules.bzl", "android_binary") -load("@rules_kotlin//kotlin:android.bzl", "kt_android_library") +load("@build_bazel_rules_android//android:rules.bzl", "android_binary") +load("@io_bazel_rules_kotlin//kotlin:android.bzl", "kt_android_library") kt_android_library( name = "lib", From e7c876f8fd30a00c27eadfda8fdcf53bf0b4451c Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Thu, 7 Dec 2023 18:53:46 -0500 Subject: [PATCH 12/15] Downgraded kotlin to 1.7.20 after CI "Kotlin vesion too new" error. --- android/jetpack-compose/WORKSPACE | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index 81d380185..efbe65a81 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -1,3 +1,12 @@ +# FIXME(alexeagle): move to bzlmod +workspace(name = "bazel_android_sample_project") + +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +_KOTLIN_COMPILER_VERSION = "1.7.20" + +_KOTLIN_COMPILER_SHA = "5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce7e94ae7d" + ## Android load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") @@ -14,16 +23,20 @@ android_sdk_repository(name = "androidsdk") ## Kotlin -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "io_bazel_rules_kotlin", - sha256 = "5766f1e599acf551aa56f49dab9ab9108269b03c557496c54acaf41f98e2b8d6", - url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.0/rules_kotlin-v1.9.0.tar.gz", + sha256 = "f033fa36f51073eae224f18428d9493966e67c27387728b6be2ebbdae43f140e", + url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.7.0-RC-3/rules_kotlin_release.tgz", ) -load("@io_bazel_rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories") +load("@io_bazel_rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "kotlinc_version") -kotlin_repositories() +kotlin_repositories( + compiler_release = kotlinc_version( + release = _KOTLIN_COMPILER_VERSION, + sha256 = _KOTLIN_COMPILER_SHA, + ), +) load("@io_bazel_rules_kotlin//kotlin:core.bzl", "kt_register_toolchains") From 1953dd5d41416b447fd31bd1eb1c87d42b44702b Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Thu, 7 Dec 2023 19:05:24 -0500 Subject: [PATCH 13/15] bzlmod -> roboelectric --- android/jetpack-compose/WORKSPACE | 1 - android/robolectric-testing/MODULE.bazel | 23 +++++++++++++++++ android/robolectric-testing/WORKSPACE | 32 +----------------------- 3 files changed, 24 insertions(+), 32 deletions(-) create mode 100644 android/robolectric-testing/MODULE.bazel diff --git a/android/jetpack-compose/WORKSPACE b/android/jetpack-compose/WORKSPACE index efbe65a81..b0325a894 100644 --- a/android/jetpack-compose/WORKSPACE +++ b/android/jetpack-compose/WORKSPACE @@ -8,7 +8,6 @@ _KOTLIN_COMPILER_VERSION = "1.7.20" _KOTLIN_COMPILER_SHA = "5e3c8d0f965410ff12e90d6f8dc5df2fc09fd595a684d514616851ce7e94ae7d" ## Android -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_android", diff --git a/android/robolectric-testing/MODULE.bazel b/android/robolectric-testing/MODULE.bazel new file mode 100644 index 000000000..3cbb7d9b4 --- /dev/null +++ b/android/robolectric-testing/MODULE.bazel @@ -0,0 +1,23 @@ +"Bazel dependencies" + +bazel_dep(name = "platforms", version = "0.0.6") +bazel_dep(name = "rules_jvm_external", version = "5.3") + +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + artifacts = [ + "org.robolectric:robolectric:4.9", + "junit:junit:4.13.2", + "com.google.truth:truth:1.1.3", + "org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10", + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10", + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10", + "org.jetbrains.kotlin:kotlin-stdlib:1.7.10", + ], + repositories = [ + "https://maven.google.com", + "https://repo1.maven.org/maven2", + ], +) + +use_repo(maven, "maven") diff --git a/android/robolectric-testing/WORKSPACE b/android/robolectric-testing/WORKSPACE index 61247f926..5343ada0e 100644 --- a/android/robolectric-testing/WORKSPACE +++ b/android/robolectric-testing/WORKSPACE @@ -3,34 +3,6 @@ workspace(name = "bazel_android_sample_project") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -## rules_jvm_external - -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//:defs.bzl", "maven_install") - -maven_install( - name = "maven", - artifacts = [ - "org.robolectric:robolectric:4.9", - "junit:junit:4.13.2", - "com.google.truth:truth:1.1.3", - "org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10", - "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10", - "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10", - "org.jetbrains.kotlin:kotlin-stdlib:1.7.10", - ], - repositories = [ - "https://maven.google.com", - "https://repo1.maven.org/maven2", - ], -) - ## Android http_archive( @@ -42,9 +14,7 @@ http_archive( load("@build_bazel_rules_android//android:rules.bzl", "android_sdk_repository") -android_sdk_repository( - name = "androidsdk", -) +android_sdk_repository(name = "androidsdk") ## Kotlin From 4ef841eeccbc6dcefecfabb47b0ef1ed0a0f17f4 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Thu, 7 Dec 2023 19:06:27 -0500 Subject: [PATCH 14/15] roboelectric yaml -> --enable_bzlmod --- .bazelci/android.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.bazelci/android.yml b/.bazelci/android.yml index 3422de2ad..3fd238e63 100644 --- a/.bazelci/android.yml +++ b/.bazelci/android.yml @@ -40,6 +40,7 @@ common: working_directory: ../android/robolectric-testing build_flags: - "--noincompatible_enable_android_toolchain_resolution" + - "--enable_bzlmod" test_targets: - "//app:test" From d877c9c2bed46f0d7ed5ba3da3459b2faa730b7c Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Thu, 7 Dec 2023 19:40:39 -0500 Subject: [PATCH 15/15] Android roboelectric yaml: build_flags -> test_flags (pre-existing bug) --- .bazelci/android.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.bazelci/android.yml b/.bazelci/android.yml index 3fd238e63..761f718e5 100644 --- a/.bazelci/android.yml +++ b/.bazelci/android.yml @@ -38,7 +38,7 @@ common: # Cannot upgrade this until rules_kotlin is compatible. bazel: 6.3.2 working_directory: ../android/robolectric-testing - build_flags: + test_flags: - "--noincompatible_enable_android_toolchain_resolution" - "--enable_bzlmod" test_targets: