blob: 6bc5880792fe6a16f850ba7dc4f6d00b3dac9fa9 [file] [log] [blame]
# This file replaces the WORKSPACE file when using bzlmod.
# module declares certain properties of the Bazel module represented by the current Bazel repo.
# These properties are either essential metadata of the module (such as the name and version),
# or affect behavior of the current module and its dependents.
module(
name = "example_bzlmod_build_file_generation",
version = "0.0.0",
compatibility_level = 1,
)
# The following stanza defines the dependency rules_python.
# For typical setups you set the version.
# See the releases page for available versions.
# https://github.com/bazelbuild/rules_python/releases
bazel_dep(name = "rules_python", version = "0.0.0")
# The following loads rules_python from the file system.
# For usual setups you should remove this local_path_override block.
local_path_override(
module_name = "rules_python",
path = "../..",
)
# The following stanza defines the dependency rules_python_gazelle_plugin.
# For typical setups you set the version.
# See the releases page for available versions.
# https://github.com/bazelbuild/rules_python/releases
bazel_dep(name = "rules_python_gazelle_plugin", version = "0.0.0")
# The following starlark loads the gazelle plugin from the file system.
# For usual setups you should remove this local_path_override block.
local_path_override(
module_name = "rules_python_gazelle_plugin",
path = "../../gazelle",
)
# The following stanza defines the dependency for gazelle
# See here https://github.com/bazelbuild/bazel-gazelle/releases/ for the
# latest version.
bazel_dep(name = "gazelle", version = "0.30.0", repo_name = "bazel_gazelle")
# The following stanze returns a proxy object representing a module extension;
# its methods can be invoked to create module extension tags.
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
# We next initialize the python toolchain using the extension.
# You can set different Python versions in this block.
python.toolchain(
configure_coverage_tool = True,
is_default = True,
python_version = "3.9",
)
# Use the extension, pip.parse, to call the `pip_repository` rule that invokes
# `pip`, with `incremental` set. The pip call accepts a locked/compiled
# requirements file and installs the dependencies listed within.
# Those dependencies become available in a generated `requirements.bzl` file.
# You can instead check this `requirements.bzl` file into your repo.
# Because this project has different requirements for windows vs other
# operating systems, we have requirements for each.
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pip",
# The interpreter_target attribute points to the interpreter to
# use for running pip commands to download the packages in the
# requirements file.
# As a best practice, we use the same interpreter as the toolchain
# that was configured above; this ensures the same Python version
# is used for both resolving dependencies and running tests/binaries.
# If this isn't specified, then you'll get whatever is locally installed
# on your system.
python_version = "3.9",
requirements_lock = "//:requirements_lock.txt",
requirements_windows = "//:requirements_windows.txt",
)
# Imports the pip toolchain generated by the given module extension into the scope of the current module.
use_repo(pip, "pip")
# This project includes a different module that is on the local file system.
# Add the module to this parent project.
bazel_dep(name = "other_module", version = "", repo_name = "our_other_module")
local_path_override(
module_name = "other_module",
path = "other_module",
)