* fix(bazel-module,bazelisk): add `allowedUnsafeExecutions` for `bazel mod deps` * docs: update manager readmes
The bazel-module manager can update Bazel module (bzlmod) enabled workspaces.
Maven
It also takes care about maven artifacts initalized with bzlmod. For simplicity the name of extension variable is limited to maven*. E.g.:
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven_1 = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
Both install and artifact methods are supported:
maven.install(
artifacts = [
"org.seleniumhq.selenium:selenium-java:4.4.0",
],
)
maven.artifact(
artifact = "javapoet",
group = "com.squareup",
neverlink = True,
version = "1.11.1",
)
Docker
Similarly, it updates Docker / OCI images pulled with oci_pull.
Note that the extension must be called oci:
oci = use_extension("@rules_oci//oci:extensions.bzl", "oci")
oci.pull(
name = "nginx_image",
digest = "sha256:287ff321f9e3cde74b600cc26197424404157a72043226cbbf07ee8304a2c720",
image = "index.docker.io/library/nginx",
platforms = ["linux/amd64"],
tag = "1.27.1",
)
It also supports Docker images pulled with rules_img pull:
pull = use_repo_rule("@rules_img//img:pull.bzl", "pull")
pull(
name = "ubuntu",
digest = "sha256:1e622c5f9ac0c0144d577702ba5f2cce79fc8e3cf89ec88291739cd4eee3b7b9",
registry = "index.docker.io",
repository = "library/ubuntu",
tag = "24.04",
)
Crate
It also supports Rust crate dependencies initialized with rules_rust crate_universe. For simplicity the name of extension variable is limited to crate*. E.g.:
crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
crate_1 = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
The spec method is supported:
crate.spec(
package = "axum",
version = "0.8.4",
)
crate.spec(
package = "tokio",
version = "1.45.1",
features = [
"full",
],
)
crate.spec(
package = "custom_crate",
git = "https://github.com/example/custom_crate.git",
tag = "v1.0.0",
)
Lockfile support
The bazel-module manager updates the MODULE.bazel.lock file when dependencies change.
After updating MODULE.bazel, Renovate runs bazel mod deps to regenerate the lockfile.
Requirements:
- A
MODULE.bazel.lockfile must already exist in the repository - Bazelisk must be available (Renovate installs it automatically when using containerbase)
- Bazelisk determines the correct Bazel version from the
.bazelversionfile in the repository (if present)
If no MODULE.bazel.lock file is found, the lockfile update step is skipped.
It will only run if the allowedUnsafeExecutions global option includes bazelModDeps.