load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") load("//bazel/toolchains/cc/mongo_linux:mongo_toolchain.bzl", "setup_mongo_toolchains") load("//bazel/toolchains/cc/mongo_linux:mongo_gdb.bzl", "setup_gdb_toolchains") http_archive( name = "aspect_rules_lint", sha256 = "f60e4a737a5e09402f5fa3bd182efa80dac5523ca4b9bc5c6fa8c06fbfb46630", strip_prefix = "rules_lint-1.1.0", url = "https://github.com/aspect-build/rules_lint/releases/download/v1.1.0/rules_lint-v1.1.0.tar.gz", ) setup_mongo_toolchains() setup_gdb_toolchains() http_file( name = "windows_libclang", downloaded_file_path = "libclang.dll", sha256 = "fd77bdb8098cd82ab918bf50e9b12743e1fc8e524fa64cb90e729fbe9cee9c15", urls = [ # Implements retry by relisting each url multiple times to be used as a failover. # TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries "https://mdb-build-public.s3.us-east-1.amazonaws.com/windows_libclang/libclang.dll", ] * 5, ) http_archive( name = "windows_sasl", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "includes", srcs = select({ "@platforms//os:windows": glob(["include/**/*.h"]), "//conditions:default": [], }), ) filegroup( name = "libraries", srcs = select({ "@platforms//os:windows": glob(["lib/**/*"]), "//conditions:default": [], }), ) filegroup( name = "bins", srcs = select({ "@platforms//os:windows": glob(["bin/**/*"]), "//conditions:default": [], }), ) """, sha256 = "3e22e2b16f802277123590f64dfda44f1c9c8a2b7e758180cd956d8ab0965817", urls = [ "https://s3.amazonaws.com/boxes.10gen.com/build/windows_cyrus_sasl-2.1.28.zip", ] * 5, ) http_archive( name = "wix_toolset", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "wix_binaries", srcs = select({ "@platforms//os:windows": glob(["*"]), "//conditions:default": [], }), ) filegroup( name = "candle", srcs = select({ "@platforms//os:windows": ["candle.exe"], "//conditions:default": [], }), data = select({ "@platforms//os:windows": [":wix_binaries"], "//conditions:default": [], }), ) filegroup( name = "light", srcs = select({ "@platforms//os:windows": ["light.exe"], "//conditions:default": [], }), data = select({ "@platforms//os:windows": [":wix_binaries"], "//conditions:default": [], }), ) """, sha256 = "6ac824e1642d6f7277d0ed7ea09411a508f6116ba6fae0aa5f2c7daa2ff43d31", urls = [ "https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip", ] * 5, ) load("//bazel/install_rules:windows_msvc.bzl", "windows_msvc") windows_msvc( name = "local_windows_msvc", ) load("//bazel/coverity:coverity_toolchain.bzl", "coverity_toolchain") coverity_toolchain( name = "rules_coverity", ) load("@rules_coverity//coverity:repositories.bzl", "rules_coverity_toolchains") rules_coverity_toolchains() load("@rules_poetry//rules_poetry:poetry.bzl", "poetry") poetry( name = "poetry", excludes = [ "mdit-py-plugins", # plugins for markdown-it-py. Introduces an optional circular dependency that bazel does not like. ], lockfile = "//:poetry.lock", pyproject = "//:pyproject.toml", python_interpreter_target_default = "@py_host//:dist/bin/python3", python_interpreter_target_mac = "@py_host//:dist/bin/python3", python_interpreter_target_win = "@py_host//:dist/python.exe", ) load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains") rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION) load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") npm_translate_lock( name = "npm", npmrc = "//:.npmrc", pnpm_lock = "//:pnpm-lock.yaml", verify_node_modules_ignored = "//:.bazelignore", ) load("@npm//:repositories.bzl", "npm_repositories") npm_repositories() # Overloads for the vendored repositories. # # WARNING: Don't change the order of the deps() calls and local_repositories. # They're read linearly dependencies that come first override later # ones. Dependency updates might change the correct order, though it's # unlikely. This is obviously a temporary solution and will no longer # be necessary once migration to bzlmod is complete. # Note: rules_python is implicitly loaded with a grpc-compatible version. load("//bazel/install_rules:pigz.bzl", "setup_pigz") setup_pigz( name = "pigz", ) load("//bazel/install_rules:zstd.bzl", "setup_zstd") setup_zstd( name = "zstd", ) # This repository is normally created by db-contrib-tool or manually extracting the binaries at the proper location new_local_repository( name = "mongot_localdev", build_file_content = """ package(default_visibility = ["//visibility:public"]) filegroup( name = "mongot_binaries", srcs = glob(["**"], exclude = ["BUILD.bazel", "WORKSPACE", "MODULE.bazel", "MODULE.bazel.lock"]), ) """, path = "mongot-localdev", ) local_repository( name = "bazel_rules_mongo", path = "buildscripts/bazel_rules_mongo", repo_mapping = {"@poetry": "@poetry_bazel_rules_mongo"}, ) load("@bazel_rules_mongo//codeowners:codeowners_validator.bzl", "codeowners_validator") codeowners_validator() load("@bazel_rules_mongo//codeowners:codeowners_binary.bzl", "codeowners_binary") codeowners_binary() poetry( name = "poetry_bazel_rules_mongo", lockfile = "@bazel_rules_mongo//:poetry.lock", pyproject = "@bazel_rules_mongo//:pyproject.toml", python_interpreter_target_default = "@py_host//:dist/bin/python3", python_interpreter_target_mac = "@py_host//:dist/bin/python3", python_interpreter_target_win = "@py_host//:dist/python.exe", ) load("//bazel/format:shfmt.bzl", "shfmt") shfmt() load("//bazel/gpg:gpg.bzl", "gpg") gpg() load("//bazel/mongot_extension_signing_key:mongot_extension_signing_key.bzl", "mongot_extension_signing_key") mongot_extension_signing_key() load("//bazel/db_contrib_tool:db_contrib_tool.bzl", "db_contrib_tool") db_contrib_tool()