🍺 BREW Explorer

← all formulae

bazel-diff

brew install bazel-diff v27.0.0 BSD-3-Clause

Performs Bazel Target Diffing between two revisions in Git

56
30-day installs · #4424
256
90-day · #3788
885
365-day · #4029
510
★ GitHub stars · updated 2mo ago

Runtime dependencies

Build dependencies

GitHub topics

bazel target-selection test-selection

Links

Raw metadata
{
  "aliases": [],
  "alternatives": [],
  "build_dependencies": [
    "bazel"
  ],
  "categories": [],
  "caveats": null,
  "conflicts_with": [],
  "dependencies": [
    "openjdk"
  ],
  "deprecated": 0,
  "deprecation_reason": null,
  "desc": "Performs Bazel Target Diffing between two revisions in Git",
  "disable_reason": null,
  "disabled": 0,
  "enrichment_fetched_at": "2026-06-20T23:35:47+00:00",
  "first_seen": "2026-06-20T23:34:18+00:00",
  "full_name": "bazel-diff",
  "github_default_branch": "master",
  "github_last_commit_at": "2026-06-20T13:45:32Z",
  "github_readme_excerpt": "# bazel-diff\n\n[![Build status](https://github.com/Tinder/bazel-diff/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/Tinder/bazel-diff/actions/workflows/ci.yaml)\n[![Coverage](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Tinder/bazel-diff/master/coverage.json)](https://github.com/Tinder/bazel-diff/actions/workflows/ci.yaml)\n\n`bazel-diff` is a command line tool for Bazel projects that allows users to determine the exact affected set of impacted targets between two Git revisions. Using this set, users can test or build the exact modified set of targets.\n\n`bazel-diff` offers several key advantages over rolling your own target diffing solution\n\n1. `bazel-diff` is designed for very large Bazel projects. We use Java Protobuf\u0027s `parseDelimitedFrom` method alongside Bazel Query\u0027s `streamed_proto` output option. These two together allow you to parse Gigabyte or larger protobuf messages. We have tested it with projects containing tens of thousands of targets.\n2. We avoid usage of large command line query lists when interacting with Bazel, [issue here](https://github.com/bazelbuild/bazel/issues/8609). When you interact with Bazel with thousands of query parameters you can reach an upper maximum limit, seeing this error `bash: /usr/local/bin/bazel: Argument list too long`. `bazel-diff` is smart enough to avoid these errors.\n3. `bazel-diff` has been tested with file renames, deletions, and modifications. Works on `bzl` files, `WORKSPACE` files, `BUILD` files and regular files\n\nTrack the feature request for target diffing in Bazel [here](https://github.com/bazelbuild/bazel/issues/7962)\n\nThis approach was inspired by the [following BazelConf talk](https://www.youtube.com/watch?v=9Dk7mtIm7_A) by Benjamin Peterson.\n\n\u003e There are simpler and faster ways to approximate the affected set of targets.\n\u003e However an incorrect solution can result in a system you can\u0027t trust,\n\u003e because tests could be broken at a commit where you didn\u0027t select to ru",
  "github_repo": "Tinder/bazel-diff",
  "github_stars": 510,
  "github_topics": [
    "bazel",
    "target-selection",
    "test-selection"
  ],
  "homepage": "https://github.com/Tinder/bazel-diff/",
  "homepage_og_description": null,
  "homepage_og_image": null,
  "homepage_title": null,
  "installs_30d": 56,
  "installs_365d": 885,
  "installs_90d": 256,
  "keg_only": 0,
  "keg_only_reason": null,
  "last_seen": "2026-06-20T23:34:18+00:00",
  "license": "BSD-3-Clause",
  "llm_generated_at": null,
  "llm_model": null,
  "name": "bazel-diff",
  "oldnames": [],
  "one_liner": null,
  "optional_dependencies": [],
  "rank_30d": 4424,
  "rank_365d": 4029,
  "rank_90d": 3788,
  "raw_hash": "89489a2e4ef768ca",
  "recommended_dependencies": [],
  "revision": 0,
  "ruby_source_path": "Formula/b/bazel-diff.rb",
  "tap": "homebrew/core",
  "test_dependencies": [
    "bazel"
  ],
  "uses_from_macos": [],
  "version_head": null,
  "version_stable": "27.0.0",
  "versioned_formulae": [],
  "why_use_this": null
}