Skip to content
Snippets Groups Projects
bazel.md 1.95 KiB
title: Bazel
description: Bazel dependencies support in Renovate

Bazel

Renovate supports upgrading dependencies in Bazel WORKSPACE files.

How it works

  1. Bazel support is enabled automatically
  2. Renovate will search repositories for any WORKSPACE files in the repository
  3. Existing dependencies will be extracted from container_pull, oci_pull, git_repository, go_repository, maven_install, and http_archive/http_file declarations
  4. Renovate will replace any old versions with the latest version available

git_repository

Renovate will update any git_repository declaration that has the following:

  1. name
  2. remote matching https://github.com/<owner>/<repo>.git
  3. tag using a valid SemVer

e.g.:

git_repository(
    name = "build_bazel_rules_typescript",
    remote = "https://github.com/bazelbuild/rules_typescript.git",
    tag = "0.6.1",
)

Renovate uses the list of tags on the remote repository (GitHub) to detect a new version.

http_archive and http_file

Renovate will update any http_archive or http_file declaration that has the following:

  1. name
  2. url matching https://github.com/<owner>/<repo>/releases/download/<semver>/<repo>.tar.gz
  3. sha256

e.g.:

http_archive(
    name = "io_bazel_rules_go",
    url = "https://github.com/bazelbuild/rules_go/releases/download/0.7.1/rules_go-0.7.1.tar.gz",
    sha256 = "341d5eacef704415386974bc82a1783a8b7ffbff2ab6ba02375e1ca20d9b031c",
)

Renovate uses the list of releases that it finds at the url to detect a new version.

maven_install

By default, Maven dependencies are extracted in the context of Gradle versioning scheme. To change it, configure packageRules like this:

{
  "packageRules": [
    {
      "matchManagers": ["bazel"],
      "matchDatasources": ["maven"],
      "versioning": "maven"
    }
  ]
}