Files
renovate/lib/modules/manager/bazel-module
Alan Agius 779bf10ced fix(bazel-module): use --lockfile_mode=update when updating lockfile (#41976)
Explicitly set --lockfile_mode=update when running bazel mod deps to ensure the lockfile can be updated even when checksums are missing or mismatched. This prevents failures when --lockfile_mode=error is the default or active in the environment.
2026-03-17 15:49:21 +00:00
..

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.lock file 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 .bazelversion file in the repository (if present)

If no MODULE.bazel.lock file is found, the lockfile update step is skipped.