Git (Bazel module)
This is a community-maintained setup to build Git (and libgit) using Bazel.
Release notes
2.53.0
- Rebased Bazel integration on top of upstream Git 2.53.0.
- Fixed Bazel 9 /
rules_cc compatibility by adding explicit @rules_cc//cc:defs.bzl loads in subpackage BUILD files and removing the global -I. compile flag. - Added macOS iconv compatibility settings in Bazel flags (
-DICONV_RESTART_RESET and explicit libiconv linkopts for common Homebrew paths). - Kept source files unmodified by adding Bazel-only compatibility include shims under
contrib/bazel/includes/ (//contrib/bazel:angle_include_shims) instead of patching C sources. - Fixed external-workspace consumption (
bazel_dep + override) by removing repository-root assumptions in Bazel genrules (command-list.h, hook-list.h, config-list.h generation). - Updated Bazel wiring for upstream source layout changes in 2.53.0 (
odb/streaming.c and odb/streaming.h). - Updated test coverage for 2.53.0 by adding
t1311-config-optional, t5565-push-multiple, and t8015-blame-diff-algorithm, and re-enabled t3900-i18n-commit. - Synced overlay structure with upstream by adding
overlay/.gitignore and removing the duplicated overlay/MODULE.bazel. - Updated
libexpat to 2.7.1.bcr.1 (no local patch override). - Updated BCR presubmit matrix to include Bazel 9.x and macOS ARM64 in addition to existing Linux coverage.
2.52.0
- Tests are successfully validated on macOS ARM64 and Linux x86. We do not currently validate Windows in CI; contributions to enable or stabilize Windows support are welcome.
- Python, Perl, and shell toolchains are currently hard-coded in the Bazel setup (not yet pluggable via toolchain resolution).
- t3900 is disabled explicitly on MacOS due to a problem with lib iconv shipped on MacOS 14 and 15. This will be fixed in a future git release and should be re-enabled then.