chore(deps): follow mbo — Bazel 9 + hermetic LLVM 20.1.8, drop WORKSPACE, bump deps#53
Merged
Merged
Conversation
d6fa9f6 to
157da5d
Compare
157da5d to
4217b7c
Compare
…ACE, bump deps Mirror helly25/mbo's build/CI/compiler infrastructure into proto and update all dependencies. Compiler: - toolchains_llvm 1.8.0 (first release containing PR #769's macOS asan rpath fix, so no git_override is needed); LLVM 20.1.8 with extra_llvm_distributions (21.1.8 / 22.1.7 rungs). - No register_toolchains; the hermetic clang toolchain is registered only under --config=clang via --extra_toolchains (Bazel 9 always resolves cc toolchains). - Add tools/show_compiler.cc + run_under_symbolizer.sh.in and //:is_clang. Dependencies: - bazel_skylib 1.9.0, platforms 1.1.0, rules_cc 0.2.19, +rules_shell 0.8.0, abseil 20250814.2, re2 2025-11-05.bcr.1, googletest 1.17.0.bcr.2, hedron -> helly25 fork (75ba4c31), dwyu 0.16.0. Drop explicit rules_python. - protobuf 30.0 -> 34.1 (newest without bazel_compatibility >=8.0.0). protobuf transitive-toolchain fixes for Bazel 9 (proto builds none of these): - rules_go 0.61.0 MVS shim: protobuf pulls an old rules_go whose go_toolchains fail to load after rules_cc 0.2.x removed CcInfo. - --repo_env=ANDROID_HOME= in .bazelrc: protobuf pulls rules_android, which registers @androidsdk//:all; on runners with an Android SDK that repo loads and rules_android's attrs.bzl fails to compile on Bazel 9. Blanking ANDROID_HOME for repo rules keeps it dormant. Build system: - Drop WORKSPACE support (delete WORKSPACE, workspace.bzl, bzl/); .bazelversion -> 9.1.1; .bazelrc rewritten to mbo style (--noenable_workspace, generic external/.*@-Wno-error, symbolizer/asan blocks). - Minimum Bazel is now 8.x: protobuf 34.1 no longer analyzes on Bazel 7.x (verified: 7.2.1 fails, 8.7.0 / 9.1.1 pass). CI: - Remove the bazelmod/MODULE.protoXX.bazel swap mechanism; protobuf version is now a single-line sed rewrite of MODULE.bazel. No module-include swapping. - main.yml/test.yml: bazel_version matrix (8.7.0/9.0.2/9.1.1), proto_version matrix (32.1/33.6/34.1/35.0), show_compiler assertion gate, Node 24 actions; keep the yq done-gate self-check. - BCR patches now comment the dev/llvm includes only (no dep downgrade); presubmit bazel matrix -> [8.x, 9.x]; release_prep drops the WORKSPACE snippet. - pre-commit shellcheck: koalaman (Docker) -> shellcheck-py (matches mbo; runs without Docker). Source fixes for newer protobuf: - file.cc checks the now-[[nodiscard]] SerializeToOstream return value. - Migrate SilentErrorCollector (+ its test) to protobuf's RecordError/ RecordWarning API and drop the dead pre-v26 AddError/AddWarning branch. protobuf 35 removed those deprecated virtuals; the old `#if GOOGLE_PROTOBUF_VERSION` guard also misfired because v35's tokenizer.h no longer defines that macro. - Two EXPECT_DEATH locals marked [[maybe_unused]]. CHANGELOG: document the above under the upcoming 1.2.1. Validated locally: default + --config=clang build and all tests pass for protobuf 34.1 (default) and 35.0, incl. with ANDROID_HOME set (reproducing the CI runner env); analysis passes on Bazel 8.7.0 and 9.1.1; pre-commit green (shellcheck incl).
4217b7c to
4f28cc6
Compare
Fab-Cat
approved these changes
Jun 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mirrors
helly25/mbo's build/CI/compiler infrastructure into proto and updates all dependencies.Compiler ("use it for compiler")
toolchains_llvm1.8.0 — first release containing PR osx: sanitizer runtime via dynamic_runtime_lib + @loader_path rpath (fixes #192) bazel-contrib/toolchains_llvm#769 (macOS asan@loader_pathrpath fix), so nogit_overrideis needed (mbo still pins the commit).extra_llvm_distributionsadding 21.1.8 / 22.1.7 rungs.register_toolchains; the hermetic clang toolchain is registered only under--config=clangvia--extra_toolchains(Bazel 9 always resolves cc toolchains).tools/show_compiler.cc+tools/run_under_symbolizer.sh.inand the//:is_clangconfig_setting.Dependencies
bazel_skylib 1.9.0,platforms 1.1.0,rules_cc 0.2.19, +rules_shell 0.8.0,abseil 20250814.2,re2 2025-11-05.bcr.1,googletest 1.17.0.bcr.2, hedron → helly25 fork (75ba4c31),dwyu 0.16.0. Dropped explicitrules_python(transitive via protobuf).proto_versionCI matrix.protobuf transitive-toolchain fixes for Bazel 9 (proto builds none of these)
rules_go 0.61.0MVS shim: protobuf pulls an oldrules_gowhosego_toolchainsfail to load afterrules_cc0.2.x removedCcInfo.--repo_env=ANDROID_HOME=in.bazelrc: protobuf pullsrules_android, which registers@androidsdk//:all; on a runner with an Android SDK (e.g. GitHub ubuntu) that repo instantiates andrules_android'sattrs.bzlfails to compile on Bazel 9. BlankingANDROID_HOMEfor repo rules keeps it dormant.Build system
WORKSPACE,workspace.bzl,bzl/);.bazelversion→ 9.1.1;.bazelrcrewritten to mbo style (--noenable_workspace, genericexternal/.*@-Wno-error, symbolizer/asan blocks).CI
bazelmod/MODULE.protoXX.bazelswap mechanism; the protobuf version is now a single-line sed rewrite ofMODULE.bazel— no module-include swapping.main.yml/test.yml:bazel_versionmatrix (8.7.0/9.0.2/9.1.1),proto_versionmatrix (32.1/33.6/34.1/35.0), ashow_compilerassertion gate, Node 24 actions; kept theyqdone-gate self-check.presubmit.ymlbazel matrix →[8.x, 9.x];release_prep.shdrops the WORKSPACE snippet.shellcheck: koalaman (Docker) →shellcheck-py(matches mbo; runs without Docker).Source fixes for newer protobuf
file.ccchecks the now-[[nodiscard]]SerializeToOstreamreturn value.SilentErrorCollector(+ its test) to protobuf'sRecordError/RecordWarningAPI and dropped the dead pre-v26AddError/AddWarningbranch. protobuf 35 removed those deprecated virtuals, and the old#if GOOGLE_PROTOBUF_VERSIONguard also misfired on v35 because itstokenizer.hno longer defines that macro.EXPECT_DEATHlocals marked[[maybe_unused]].CHANGELOG
Notes added under the upcoming
1.2.1(already the version inMODULE.bazel, so no bump;compare-versionsstays green).Validation
Local (macOS arm64): default +
--config=clangbuild and all 4 tests pass for protobuf 34.1 (default) and 35.0, including withANDROID_HOMEset (reproducing the CI runner env); analysis passes on Bazel 8.7.0 and 9.1.1;pre-commitfully green (shellcheck included). CI is green on the PR.