From 0901d2315d6115ae70376258370f2612a5aa8101 Mon Sep 17 00:00:00 2001 From: Keith Smiley Date: Tue, 26 Mar 2024 11:33:47 -0700 Subject: [PATCH] Add bazel itself --- modules/bazel/7.1.1/MODULE.bazel | 360 ++++++++++++++++++ .../7.1.1/patches/0001-Add-MODULE.bazel.patch | 9 + modules/bazel/7.1.1/presubmit.yml | 12 + modules/bazel/7.1.1/source.json | 9 + modules/bazel/metadata.json | 16 + 5 files changed, 406 insertions(+) create mode 100644 modules/bazel/7.1.1/MODULE.bazel create mode 100644 modules/bazel/7.1.1/patches/0001-Add-MODULE.bazel.patch create mode 100644 modules/bazel/7.1.1/presubmit.yml create mode 100644 modules/bazel/7.1.1/source.json create mode 100644 modules/bazel/metadata.json diff --git a/modules/bazel/7.1.1/MODULE.bazel b/modules/bazel/7.1.1/MODULE.bazel new file mode 100644 index 00000000000..46aec7d0ae7 --- /dev/null +++ b/modules/bazel/7.1.1/MODULE.bazel @@ -0,0 +1,360 @@ +"""Bazel build and test dependencies.""" + +# NOTE: When editing this file, also update the lockfile. +# bazel mod deps --lockfile_mode=update + +module( + name = "bazel", + version = "7.1.1", + repo_name = "io_bazel", +) + +# ========================================= +# Bazel module dependencies +# ========================================= + +bazel_dep(name = "rules_license", version = "0.0.7") +bazel_dep(name = "bazel_skylib", version = "1.5.0") +bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf") +bazel_dep(name = "grpc", version = "1.48.1.bcr.1", repo_name = "com_github_grpc_grpc") +bazel_dep(name = "platforms", version = "0.0.8") +bazel_dep(name = "rules_pkg", version = "0.9.1") +bazel_dep(name = "stardoc", version = "0.5.3", repo_name = "io_bazel_skydoc") +bazel_dep(name = "zstd-jni", version = "1.5.2-3.bcr.1") +bazel_dep(name = "blake3", version = "1.3.3.bcr.1") +bazel_dep(name = "zlib", version = "1.3") +bazel_dep(name = "rules_cc", version = "0.0.9") +bazel_dep(name = "rules_graalvm", version = "0.10.3") +bazel_dep(name = "rules_java", version = "7.4.0") +bazel_dep(name = "rules_proto", version = "5.3.0-21.7") +bazel_dep(name = "rules_jvm_external", version = "5.2") +bazel_dep(name = "rules_python", version = "0.26.0") +bazel_dep(name = "rules_testing", version = "0.0.4") +bazel_dep(name = "googletest", version = "1.14.0", repo_name = "com_google_googletest") + +# TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR. +bazel_dep(name = "remoteapis", version = "") +bazel_dep(name = "googleapis", version = "") + +single_version_override( + module_name = "rules_jvm_external", + patch_strip = 1, + patches = ["//third_party:rules_jvm_external_5.2.patch"], +) + +local_path_override( + module_name = "remoteapis", + path = "./third_party/remoteapis", +) + +local_path_override( + module_name = "googleapis", + path = "./third_party/googleapis", +) + +# The following Bazel modules are not direct dependencies for building Bazel, +# but are required for visibility from DIST_ARCHIVE_REPOS in repositories.bzl +bazel_dep(name = "apple_support", version = "1.8.1") +bazel_dep(name = "abseil-cpp", version = "20230125.1") +bazel_dep(name = "c-ares", version = "1.15.0") +bazel_dep(name = "rules_go", version = "0.39.1") +bazel_dep(name = "upb", version = "0.0.0-20220923-a547704") + +# ========================================= +# Java dependencies +# ========================================= + +maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven.install( + artifacts = [ + "com.beust:jcommander:1.82", + "com.github.ben-manes.caffeine:caffeine:3.0.5", + "com.github.kevinstern:software-and-algorithms:1.0", + "com.github.stephenc.jcip:jcip-annotations:1.0-1", + "com.google.api-client:google-api-client-gson:1.35.2", + "com.google.api-client:google-api-client:1.35.2", + "com.google.auth:google-auth-library-credentials:1.6.0", + "com.google.auth:google-auth-library-oauth2-http:1.6.0", + "com.google.auto.service:auto-service-annotations:1.0.1", + "com.google.auto.service:auto-service:1.0", + "com.google.auto.value:auto-value-annotations:1.9", + "com.google.auto.value:auto-value:1.8.2", + "com.google.auto:auto-common:1.2.1", + "com.google.code.findbugs:jsr305:3.0.2", + "com.google.code.gson:gson:2.9.0", + "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:3.3.0", + "com.google.errorprone:error_prone_annotation:2.22.0", + "com.google.errorprone:error_prone_annotations:2.22.0", + "com.google.errorprone:error_prone_check_api:2.22.0", + "com.google.errorprone:error_prone_core:2.22.0", + "com.google.errorprone:error_prone_type_annotations:2.22.0", + "com.google.flogger:flogger-system-backend:0.5.1", + "com.google.flogger:flogger:0.5.1", + "com.google.flogger:google-extensions:0.5.1", + "com.google.guava:failureaccess:1.0.1", + "com.google.guava:guava:31.1-jre", + "com.google.http-client:google-http-client-gson:1.42.0", + "com.google.http-client:google-http-client:1.42.0", + "com.google.j2objc:j2objc-annotations:1.3", + "com.google.turbine:turbine:0.4.0", + "com.ryanharter.auto.value:auto-value-gson-extension:1.3.1", + "com.ryanharter.auto.value:auto-value-gson-runtime:1.3.1", + "com.ryanharter.auto.value:auto-value-gson-factory:1.3.1", + "com.squareup:javapoet:1.12.0", + "commons-collections:commons-collections:3.2.2", + "commons-lang:commons-lang:2.6", + "io.github.java-diff-utils:java-diff-utils:4.12", + "io.grpc:grpc-api:1.48.1", + "io.grpc:grpc-auth:1.48.1", + "io.grpc:grpc-context:1.48.1", + "io.grpc:grpc-core:1.48.1", + "io.grpc:grpc-netty:1.48.1", + "io.grpc:grpc-protobuf-lite:1.48.1", + "io.grpc:grpc-protobuf:1.48.1", + "io.grpc:grpc-stub:1.48.1", + "io.netty:netty-buffer:4.1.93.Final", + "io.netty:netty-codec-http2:4.1.93.Final", + "io.netty:netty-codec-http:4.1.93.Final", + "io.netty:netty-codec:4.1.93.Final", + "io.netty:netty-common:4.1.93.Final", + "io.netty:netty-handler-proxy:4.1.93.Final", + "io.netty:netty-handler:4.1.93.Final", + "io.netty:netty-resolver-dns:4.1.93.Final", + "io.netty:netty-resolver:4.1.93.Final", + "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64:2.0.56.Final", + "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64:2.0.56.Final", + "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64:2.0.56.Final", + "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64:2.0.56.Final", + "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64:2.0.56.Final", + "io.netty:netty-tcnative-classes:2.0.56.Final", + "io.netty:netty-transport-classes-epoll:4.1.93.Final", + "io.netty:netty-transport-classes-kqueue:4.1.93.Final", + "io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.1.93.Final", + "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.93.Final", + "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.93.Final", + "io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.93.Final", + "io.netty:netty-transport-native-unix-common:4.1.93.Final", + "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64:4.1.93.Final", + "io.netty:netty-transport-native-unix-common:jar:linux-x86_64:4.1.93.Final", + "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64:4.1.93.Final", + "io.netty:netty-transport-native-unix-common:jar:osx-x86_64:4.1.93.Final", + "io.netty:netty-transport:4.1.93.Final", + "io.reactivex.rxjava3:rxjava:3.1.2", + "it.unimi.dsi:fastutil:7.2.1", + "javax.activation:javax.activation-api:1.2.0", + "javax.annotation:javax.annotation-api:1.3.2", + "javax.inject:javax.inject:1", + "net.bytebuddy:byte-buddy-agent:1.14.5", + "net.bytebuddy:byte-buddy:1.14.5", + "org.apache.commons:commons-compress:1.20", + "org.apache.commons:commons-pool2:2.8.0", + "org.apache.tomcat:tomcat-annotations-api:8.0.5", + "org.apache.velocity:velocity:1.7", + "org.checkerframework:checker-qual:3.19.0", + "org.ow2.asm:asm-analysis:9.2", + "org.ow2.asm:asm-commons:9.2", + "org.ow2.asm:asm-tree:9.2", + "org.ow2.asm:asm-util:9.2", + "org.ow2.asm:asm:9.2", + "org.pcollections:pcollections:3.1.4", + "org.threeten:threeten-extra:1.5.0", + "org.tukaani:xz:1.9", + "org.yaml:snakeyaml:1.28", + "tools.profiler:async-profiler:3.0", + # The following jars are for testing. + # junit is not test only due to //src/java_tools/junitrunner/java/com/google/testing/junit/junit4:runner, + # and hamcrest is a dependency of junit. + "junit:junit:4.13.2", + "org.hamcrest:hamcrest-core:1.3", + ], + excluded_artifacts = [ + # org.apache.httpcomponents and org.eclipse.jgit:org.eclipse.jgit + # require java.security.jgss module to be embedded in the Bazel binary. + "org.apache.httpcomponents:httpclient", + "org.apache.httpcomponents:httpcore", + "org.eclipse.jgit:org.eclipse.jgit", + # We build protobuf Java library from source, exclude protobuf jars to be safe. + "com.google.protobuf:protobuf-java", + "com.google.protobuf:protobuf-javalite", + ], + # Don't forget to change this to back to True before submitting your change. + fail_if_repin_required = True, + lock_file = "//:maven_install.json", + repositories = [ + "https://repo1.maven.org/maven2", + ], + strict_visibility = True, +) + +# Test only maven dependencies +[ + maven.artifact( + testonly = True, + artifact = artifact, + group = group, + version = version, + ) + for group, artifact, version in [coord.split(":") for coord in [ + "com.google.guava:guava-testlib:31.1-jre", + "com.google.jimfs:jimfs:1.2", + "com.google.testing.compile:compile-testing:0.18", + "com.google.testparameterinjector:test-parameter-injector:1.0", + "com.google.truth:truth:1.1.3", + "com.google.truth.extensions:truth-java8-extension:1.1.3", + "com.google.truth.extensions:truth-liteproto-extension:1.1.3", + "com.google.truth.extensions:truth-proto-extension:1.1.3", + "org.mockito:mockito-core:5.4.0", + ]] +] + +use_repo(maven, "maven", "unpinned_maven") + +java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains") +use_repo( + java_toolchains, + "local_jdk", + # The following are required for visibility in //src:test_repos + "remote_java_tools", + "remote_java_tools_darwin_arm64", + "remote_java_tools_darwin_x86_64", + "remote_java_tools_linux", + "remote_java_tools_windows", + "remotejdk11_linux", + "remotejdk11_linux_aarch64", + "remotejdk11_linux_ppc64le", + "remotejdk11_linux_s390x", + "remotejdk11_macos", + "remotejdk11_macos_aarch64", + "remotejdk11_win", + "remotejdk11_win_arm64", + "remotejdk17_linux", + "remotejdk17_linux_s390x", + "remotejdk17_macos", + "remotejdk17_macos_aarch64", + "remotejdk17_win", + "remotejdk17_win_arm64", + "remotejdk21_linux", + "remotejdk21_macos", + "remotejdk21_macos_aarch64", + "remotejdk21_win", +) + +# ========================================= +# Python dependencies +# ========================================= + +python = use_extension("@rules_python//python/extensions:python.bzl", "python") +python.toolchain(python_version = "3.8") + +pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") +pip.parse( + hub_name = "bazel_pip_dev_deps", + python_version = "3.8", + requirements_lock = "//:requirements.txt", +) +use_repo(pip, "bazel_pip_dev_deps") + +# ========================================= +# Other Bazel build dependencies +# ========================================= + +bazel_build_deps = use_extension("//:extensions.bzl", "bazel_build_deps") +use_repo( + bazel_build_deps, + "bazel_tools_repo_cache", + "bootstrap_repo_cache", + "debian_bin_deps", + "debian_cc_deps", + "debian_java_deps", + "debian_proto_deps", + "openjdk_linux_aarch64_vanilla", + "openjdk_linux_ppc64le_vanilla", + "openjdk_linux_s390x_vanilla", + "openjdk_linux_vanilla", + "openjdk_macos_aarch64_vanilla", + "openjdk_macos_x86_64_vanilla", + "openjdk_win_arm64_vanilla", + "openjdk_win_vanilla", + "workspace_repo_cache", +) + +# Required only by `--extra_toolchains=@local_config_cc//:cc-toolchain-arm64_windows` from .bazelrc +cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension") +use_repo(cc_configure, "local_config_cc") + +# ========================================= +# Other Bazel testing dependencies +# ========================================= + +bazel_test_deps = use_extension("//:extensions.bzl", "bazel_test_deps") +use_repo( + bazel_test_deps, + "bazelci_rules", + "local_bazel_source_list", + "local_config_winsdk", +) + +bazel_rbe_deps = use_extension("//:rbe_extension.bzl", "bazel_rbe_deps") +use_repo(bazel_rbe_deps, "rbe_ubuntu2004_java11") + +remote_coverage_tools_extension = use_extension("//tools/test:extensions.bzl", "remote_coverage_tools_extension") +use_repo(remote_coverage_tools_extension, "remote_coverage_tools") + +gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm") +gvm.graalvm( + name = "graalvm", + distribution = "ce", + java_version = "20", + version = "20.0.2", +) +use_repo(gvm, "graalvm_toolchains") +register_toolchains("@graalvm_toolchains//:gvm") + +# ========================================= +# Register platforms & toolchains +# ========================================= + +register_execution_platforms("//:default_host_platform") + +register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain") + +register_toolchains("@local_config_winsdk//:all") + +register_toolchains("//src/main/res:empty_rc_toolchain") + +# Workaround for https://github.com/bazelbuild/bazel/issues/19837. +# TODO(bazel-team): Remove when .bazelversion is 7.0.0rc2 or later. +register_toolchains("//:bazel_java_toolchain_definition") + +# ========================================= +# Android tools dependencies +# ========================================= + +maven_android = use_extension("@rules_jvm_external//:extensions.bzl", "maven") +maven_android.install( + name = "maven_android", + artifacts = [ + "androidx.databinding:databinding-compiler:3.4.0-alpha10", + "com.android.tools.build:builder:7.1.3", + "com.android.tools.build:manifest-merger:30.1.3", + "com.android.tools:sdk-common:30.1.3", + "com.android.tools:annotations:30.1.3", + "com.android.tools.layoutlib:layoutlib-api:30.1.3", + "com.android.tools:common:30.1.3", + "com.android.tools:repository:30.1.3", + ], + # Don't forget to change this to back to True before submitting your change. + fail_if_repin_required = True, + lock_file = "//src/tools/android:maven_android_install.json", + repositories = [ + "https://dl.google.com/android/maven2", + "https://repo1.maven.org/maven2", + ], +) +use_repo(maven_android, "maven_android", "unpinned_maven_android") + +bazel_android_deps = use_extension("//:extensions.bzl", "bazel_android_deps") +use_repo(bazel_android_deps, "desugar_jdk_libs") + +remote_android_extensions = use_extension("//tools/android:android_extensions.bzl", "remote_android_tools_extensions") +use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools") diff --git a/modules/bazel/7.1.1/patches/0001-Add-MODULE.bazel.patch b/modules/bazel/7.1.1/patches/0001-Add-MODULE.bazel.patch new file mode 100644 index 00000000000..5278f0a4867 --- /dev/null +++ b/modules/bazel/7.1.1/patches/0001-Add-MODULE.bazel.patch @@ -0,0 +1,9 @@ +--- a/MODULE.bazel ++++ b/MODULE.bazel +@@ -5,6 +5,7 @@ + + module( + name = "bazel", ++ version = "7.1.1", + repo_name = "io_bazel", + ) diff --git a/modules/bazel/7.1.1/presubmit.yml b/modules/bazel/7.1.1/presubmit.yml new file mode 100644 index 00000000000..c7f2d824e06 --- /dev/null +++ b/modules/bazel/7.1.1/presubmit.yml @@ -0,0 +1,12 @@ +matrix: + platform: ["debian10", "macos", "ubuntu2004", "windows"] + bazel: ["6.x", "7.x"] +tasks: + verify_targets: + platform: ${{ platform }} + bazel: ${{ bazel }} + build_flags: + - '--cxxopt=-std=c++14' + - '--host_cxxopt=-std=c++14' + build_targets: + - '@bazel//src:bazel' diff --git a/modules/bazel/7.1.1/source.json b/modules/bazel/7.1.1/source.json new file mode 100644 index 00000000000..03aae97012d --- /dev/null +++ b/modules/bazel/7.1.1/source.json @@ -0,0 +1,9 @@ +{ + "integrity": "sha256-jk0mNQ0B0sCEfY7zNut2+Vkw+YK3+IvxoBMGs2lek4s=", + "strip_prefix": "bazel-7.1.1", + "url": "https://github.com/bazelbuild/bazel/archive/refs/tags/7.1.1.tar.gz", + "patch_strip": 1, + "patches": { + "0001-Add-MODULE.bazel.patch": "sha256-hPjdylHQv/EOtabqfQCmImnVuSbjkxuAouAMb+VGyLg=", + } +} diff --git a/modules/bazel/metadata.json b/modules/bazel/metadata.json new file mode 100644 index 00000000000..56152df22d8 --- /dev/null +++ b/modules/bazel/metadata.json @@ -0,0 +1,16 @@ +{ + "homepage": "https://github.com/bazelbuild/bazel", + "maintainers": [ + { + "email": "bcr-maintainers@bazel.build", + "name": "No Maintainer Specified" + } + ], + "repository": [ + "github:bazelbuild/bazel" + ], + "versions": [ + "7.1.1" + ], + "yanked_versions": {} +}