module(
    name = "bazel_lib",
    bazel_compatibility = [">=6.0.0"],
    compatibility_level = 1,
    version = "3.2.2",
)

# Lower-bounds (minimum) versions for direct runtime dependencies
bazel_dep(name = "bazel_features", version = "1.9.0")
bazel_dep(name = "bazel_skylib", version = "1.8.1")
bazel_dep(name = "platforms", version = "0.0.10")
bazel_dep(name = "rules_shell", version = "0.4.1")

bazel_lib_toolchains = use_extension("@bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.copy_directory()
bazel_lib_toolchains.copy_to_directory()
bazel_lib_toolchains.coreutils()
bazel_lib_toolchains.zstd()
bazel_lib_toolchains.expand_template()
bazel_lib_toolchains.bats()
use_repo(bazel_lib_toolchains, "bats_toolchains", "copy_directory_toolchains", "copy_to_directory_toolchains", "coreutils_toolchains", "expand_template_toolchains", "zstd_toolchains")

register_toolchains(
    "@copy_directory_toolchains//:all",
    "@copy_to_directory_toolchains//:all",
    "@coreutils_toolchains//:all",
    "@expand_template_toolchains//:all",
    "@bats_toolchains//:all",
    "@zstd_toolchains//:all",
)

####### Dev dependencies ########

# To allow /tools to be built from source
# NOTE: when publishing to BCR, we patch this to be dev_dependency, as we publish pre-built binaries
# along with our releases.
IS_RELEASE = True

bazel_dep(
    name = "gazelle",
    version = "0.40.0",
    dev_dependency = IS_RELEASE,
)
bazel_dep(
    name = "rules_go",
    version = "0.59.0",
    dev_dependency = IS_RELEASE,
    repo_name = "io_bazel_rules_go",
)

go_sdk = use_extension(
    "@io_bazel_rules_go//go:extensions.bzl",
    "go_sdk",
    dev_dependency = IS_RELEASE,
)
go_sdk.from_file(go_mod = "//:go.mod")

go_deps = use_extension(
    "@gazelle//:extensions.bzl",
    "go_deps",
    dev_dependency = IS_RELEASE,
)
go_deps.from_file(go_mod = "//:go.mod")
use_repo(
    go_deps,
    "com_github_bmatcuk_doublestar_v4",
    "org_golang_x_exp",
    "org_golang_x_sys",
)

host = use_extension("@bazel_lib//lib:extensions.bzl", "host", dev_dependency = True)
host.host()
use_repo(host, "bazel_lib_host")

host_platform = use_extension("@platforms//host:extension.bzl", "host_platform")
use_repo(host_platform, "host_platform")

bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.8.2", dev_dependency = True)
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True)
bazel_dep(name = "external_test_repo", dev_dependency = True)
local_path_override(
    module_name = "external_test_repo",
    path = "./lib/tests/external_test_repo",
)
