Skip to content

Comments

chore: merge prepare-for-v3.0.0 branch into main#15962

Merged
scotthart merged 119 commits intomainfrom
prepare-for-v3.0.0
Feb 18, 2026
Merged

chore: merge prepare-for-v3.0.0 branch into main#15962
scotthart merged 119 commits intomainfrom
prepare-for-v3.0.0

Conversation

@scotthart
Copy link
Member

@scotthart scotthart commented Feb 17, 2026

This PR moves v3 development from a feature branch to main.

The following failing builds will be disabled/removed/not required:

  • quickstart-cmake-pr is expected to fail until vcpkg is successfully updated
  • clang-7-0 is no longer supported; a new clang-14-0 will be added to replace it
  • cxx14 is obsolete as C++17 is the new minimum
  • demo-ubuntu-focal is obsolete as focal is EoL
  • cmake-oldest-deps used focal and will be updated to jammy
  • otel-disabled-bazel is obsolete as OpenTelemetry is now a required dependency
  • kokoro builds will require additional work post merge to get working

Suggested changes from Gemini will be applied post merge in order to keep this PR a pure "merge".


This change is Reviewable

scotthart and others added 30 commits April 25, 2025 12:46
Co-authored-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: Mend Renovate <bot@renovateapp.com>
chore: update to protobuf v30 and remove cxx14 build (#15013)

* chore: update to protobuf v30 and remove cxx14 build
* update grpc to v1.71.0
* use new abseil repo name
* add repo_mapping for absl
* disable bzlmod for bazel-targets build
* combine zypper commands
chore: update abseil to 20250127.1 (#15039)
chore(ci): update api and abi for v3 (#15041)
chore(bazel): get bazel 8 working (#15042)

* chore(bazel): get bazel 8 working

* enable workspace where we disable bzlmod

* patch googleapis BUILD.bazel when using workspace

* check for null json

* determine generation proto paths dynamically

* bazel quickstart version has to be changed in two phases

* update quickstart bazelrc to use c++17
* chore(bazel): get bazel 8 working

* enable workspace where we disable bzlmod

* patch googleapis BUILD.bazel when using workspace

* check for null json

* determine generation proto paths dynamically

* bazel quickstart version has to be changed in two phases

* update quickstart bazelrc to use c++17
Co-authored-by: Mend Renovate <bot@renovateapp.com>
Co-authored-by: Mend Renovate <bot@renovateapp.com>
chore: update to protobuf v30 and remove cxx14 build (#15013)

* chore: update to protobuf v30 and remove cxx14 build
* update grpc to v1.71.0
* use new abseil repo name
* add repo_mapping for absl
* disable bzlmod for bazel-targets build
* combine zypper commands
chore: update abseil to 20250127.1 (#15039)
chore(ci): update api and abi for v3 (#15041)
chore(bazel): get bazel 8 working (#15042)

* chore(bazel): get bazel 8 working

* enable workspace where we disable bzlmod

* patch googleapis BUILD.bazel when using workspace

* check for null json

* determine generation proto paths dynamically

* bazel quickstart version has to be changed in two phases

* update quickstart bazelrc to use c++17
* chore(bazel): get bazel 8 working

* enable workspace where we disable bzlmod

* patch googleapis BUILD.bazel when using workspace

* check for null json

* determine generation proto paths dynamically

* bazel quickstart version has to be changed in two phases

* update quickstart bazelrc to use c++17
…ge::internal::AccessControlCommon` (#15138)

* remove CommonMetadata and AccessControlCommon

* minor fixes

* minor fixes

---------

Co-authored-by: Denis DelGrosso <85250797+ddelgrosso1@users.noreply.github.com>
* Use proto_library from protobuf

* Use cc_proto_library and cc_grpc_library from protobuf and grpc repos
* feat: get googleapis from BCR

* feat: add repo_name to googleapis dependency

* feat: remove switched_rules for com_google_googleapis_imports

* feat: remove all switched_rules

* feat: add explicit dependencies for googleapis cc bindings

* fix: update googleapis version to 0.0.0-20250703-f9d6fe4a in BCR
* fix: explicitly register macOS toolchain

* fix: formatting

* fix: register the Xcode toolchain for macOS builds

* chore: trigger CI

* fix: enable apple cpp toolchain for macOS builds

* fix: rely on rules_apple auto-detection for macOS toolchain.
@google-cla
Copy link

google-cla bot commented Feb 17, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@gemini-code-assist
Copy link

Summary of Changes

Hello @scotthart, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request merges the prepare-for-v3.0.0 feature branch into main, marking a significant transition to version 3.0.0 of the project. The changes primarily focus on modernizing the codebase by upgrading the C++ standard to C++17, updating build system requirements, and bumping numerous third-party dependencies to their latest versions. This comprehensive update ensures the project remains current with ecosystem advancements and provides a solid foundation for future development.

Highlights

  • C++ Standard Upgrade: The project's required C++ standard was upgraded from C++14 to C++17 across all build configurations (Bazel, CMake, and Dockerfiles), reflecting a move towards modern C++ practices.
  • Build System Updates: Minimum required versions for Bazel were updated from 6.0 to 7.0 (and Bazel version 8.4.2 is now used), and CMake from 3.10 to 3.22. This includes enabling Bazel's bzlmod for dependency management and updating various Bazel and CMake configurations.
  • Dependency Version Bumps: Numerous core dependencies, including Abseil, Protobuf, gRPC, OpenTelemetry-CPP, Googletest, nlohmann_json, and curl, were updated to their latest compatible versions to ensure stability and leverage new features.
  • CI/CD Pipeline Adjustments: Continuous Integration (CI) build scripts were extensively modified to align with the C++17 standard, new Bazel bzlmod configurations, and updated dependency versions. This also involved removing C++14-specific build jobs and enhancing quickstart debugging with gdb and valgrind.
  • Dependency Refactoring: The crc32c library was removed as a direct dependency, and grpc_utils and storage/oauth2 header directories were removed from CMake install checks, streamlining the project's dependency graph.
  • Documentation and Metadata: The README.md was updated to include a reference to the V3 Migration Guide and reflect the new minimum version requirements for build systems and C++ standards.
Changelog
  • .bazelrc
    • Updated C++ standard from C++14 to C++17 for Linux and macOS builds.
    • Added external_include_paths and -Wno-private-header features.
    • Removed the enable_opentelemetry build flag.
  • .bazelversion
    • Updated Bazel version from 7.6.1 to 8.4.2.
  • .clang-tidy
    • Added -bugprone-exception-escape to the list of excluded checks.
  • .typos.toml
    • Added google/cloud/ports_def.inc and google/cloud/ports_undef.inc to the extend-exclude list.
  • BUILD.bazel
    • Removed the enable_opentelemetry boolean flag definition.
  • CMakeLists.txt
    • Updated minimum CMake version requirement from 3.13...3.24 to 3.22...3.31.
    • Updated project version from 2.48.0 to 3.2.0.
    • Updated minimum Clang compiler version from 6.0 to 14.0.0.
    • Removed MSVC CMake version check.
    • Added DNOMINMAX definition for WIN32 builds.
  • MODULE.bazel
    • Updated module version from 2.48.0-rc to 3.2.0-rc and compatibility level from 2 to 3.
    • Updated rules_cc version from 0.1.4 to 0.2.14.
    • Updated abseil-cpp version from 20240722.1 to 20250814.1.
    • Updated protobuf version from 29.4 to 33.1.
    • Updated boringssl version.
    • Updated nlohmann_json version from 3.11.3 to 3.12.0.bcr.1.
    • Updated opentelemetry-cpp version from 1.19.0 to 1.24.0.
    • Added rules_apple dependency.
    • Updated googletest version from 1.15.2 to 1.17.0.bcr.2.
    • Updated google_benchmark version from 1.9.2 to 1.9.4.
    • Updated protoc-gen-validate version from 1.2.1.bcr.1 to 1.2.1.bcr.2.
    • Removed direct bazel_dep for zlib, c-ares, and crc32c.
    • Updated grpc version from 1.69.0 to 1.76.0.bcr.1.
    • Changed googleapis dependency handling to use direct bazel_dep for googleapis, googleapis-cc, and googleapis-grpc-cc instead of archive_override with patches.
  • README.md
    • Added a note referring to the V3 Migration Guide.
    • Updated minimum Bazel version requirement from 6.0 to 7.0.
    • Updated minimum CMake version requirement from 3.10 to 3.22.
    • Updated C++ language version requirement from C++14 to C++17.
    • Updated minimum Clang compiler version from 6.0 to 14.0.0 and Apple Clang from 12 to 17.
  • bazel/gapic.bzl
    • Added allow_empty = True to native.glob calls for srcs, hdrs, public_hdrs, and mocks.
    • Updated googletest dependency reference from @com_google_googletest to @googletest.
  • bazel/googleapis.modules.patch
    • Removed the file, indicating a change in how googleapis modules are patched.
  • bazel/googleapis.workspace.patch
    • Added a new patch file to modify googleapis/BUILD.bazel to allow empty srcs for run_build_gen.sh.
  • bazel/remove_upb_c_rules.patch
    • Added a new patch file to comment out upb_c_proto_library rules in google/api/expr/v1alpha1/BUILD.bazel, google/rpc/BUILD.bazel, and repository_rules.bzl.
  • bazel/workspace0.bzl
    • Added protoc-gen-validate as an http_archive dependency.
    • Updated abseil-cpp and googletest repository names and versions.
    • Updated googleapis dependency to include remove_upb_c_rules.patch.
    • Updated protobuf version.
    • Added io_bazel_rules_go as a transitive dependency for grpc.
    • Updated grpc version and added repo_mapping.
    • Updated curl version.
    • Updated nlohmann_json repository name.
    • Removed crc32c as a direct http_archive dependency.
    • Updated opentelemetry-cpp repository name.
  • bazel/workspace2.bzl
    • Updated googleapis reference from @com_google_googleapis to @googleapis.
    • Updated switched_rules_by_language name from com_google_googleapis_imports to googleapis_imports.
  • bazel/workspace3.bzl
    • Updated load statements for grpc_extra_deps, googletest_deps, and opentelemetry_cpp_deps to reflect new repository names.
  • ci/bzlmod_tests/consumer-test/BUILD.bazel
    • Added a new Bazel build file for a bzlmod consumer test.
  • ci/bzlmod_tests/consumer-test/MODULE.bazel
    • Added a new Bazel module file for a bzlmod consumer test.
  • ci/bzlmod_tests/consumer-test/main.cc
    • Added a new C++ source file for a bzlmod consumer test, verifying mock client creation.
  • ci/cloudbuild/builds/bazel-oldest.sh
    • Updated USE_BAZEL_VERSION from 6.4.0 to 7.7.1.
    • Added --enable_workspace flag to Bazel commands.
    • Changed bazel test to io::run bazel test.
  • ci/cloudbuild/builds/bazel-targets.sh
    • Removed ci/verify_deprecated_targets from the Bazel target verification loop.
  • ci/cloudbuild/builds/check-api.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/checkers.sh
    • Removed the Abseil header fixes section.
  • ci/cloudbuild/builds/clang-7.0.sh
    • Renamed to ci/cloudbuild/builds/clang-14.0.sh.
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/clang-tidy-compute.sh
    • Updated CMAKE_CXX_STANDARD from 14 to 17.
  • ci/cloudbuild/builds/clang-tidy.sh
    • Updated CMAKE_CXX_STANDARD from 14 to 17.
  • ci/cloudbuild/builds/cmake-gcs-rest.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/cmake-install.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
    • Removed google/cloud/grpc_utils and google/cloud/storage/oauth2 from expected installed directories.
  • ci/cloudbuild/builds/cmake-oldest-deps.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
    • Added spanner to the list of skipped integration tests for ctest_with_emulators.
  • ci/cloudbuild/builds/cmake-single-feature.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configurations for single feature builds.
  • ci/cloudbuild/builds/cmake-split-install.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configurations for common, popular, compute, and all features builds.
  • ci/cloudbuild/builds/cxx14.sh
    • Removed the file, indicating the deprecation of C++14 specific builds.
  • ci/cloudbuild/builds/demo-install.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/development.sh
    • Updated CMAKE_CXX_STANDARD from 14 to 17.
  • ci/cloudbuild/builds/gcc-oldest.sh
    • Added -DCMAKE_CXX_STANDARD=17 and -DCMAKE_CXX_FLAGS="-Wno-error=conversion" to CMake configuration.
  • ci/cloudbuild/builds/generate-libraries.sh
    • Dynamically determined protobuf_proto_path and googleapis_proto_path based on Bazel output.
    • Updated generator arguments to use the dynamically determined proto paths.
  • ci/cloudbuild/builds/lib/integration.sh
    • Dynamically determined protobuf_proto_path and googleapis_proto_path for the generator integration test.
    • Modified ctest_with_emulators to accept skip_args and conditionally skip Spanner integration tests.
  • ci/cloudbuild/builds/lib/quickstart.sh
    • Added a cleanup function with gdb for core dump analysis on exit.
    • Added -DCMAKE_CXX_STANDARD=17 and -DCMAKE_BUILD_TYPE=Debug to CMake quickstart build configuration.
    • Commented out the Makefile quickstart build steps.
    • Added ulimit commands before running quickstarts.
    • Updated quickstart execution to use valgrind for leak checking or MALLOC_CHECK_ for memory debugging.
  • ci/cloudbuild/builds/m32.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/noex.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/otel-disabled-bazel.sh
    • Removed the file, indicating the removal of a specific OpenTelemetry disabled Bazel build.
  • ci/cloudbuild/builds/publish-docs.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration for documentation builds.
  • ci/cloudbuild/builds/quickstart-bazel.sh
    • Wrapped the Bazel build command for quickstarts with io::run.
  • ci/cloudbuild/builds/quickstart-cmake.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration for quickstart builds.
  • ci/cloudbuild/builds/quickstart-production.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/builds/scan-build.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration for scan-build.
  • ci/cloudbuild/builds/shared.sh
    • Added -DCMAKE_CXX_STANDARD=17 to CMake configuration.
  • ci/cloudbuild/dockerfiles/checkers.Dockerfile
    • Downgraded Bazelisk version from 1.28.1 to 1.27.0.
  • ci/cloudbuild/dockerfiles/demo-alpine-stable.Dockerfile
    • Removed crc32c-dev from apk add command.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile
    • Removed crc32c build steps.
    • Updated abseil-cpp version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-debian-bullseye.Dockerfile
    • Added CMake v3.22 installation steps.
    • Removed crc32c build steps.
    • Updated abseil-cpp version and added CMAKE_CXX_STANDARD=17 to its build, removed ABSL_PROPAGATE_CXX_STD.
    • Updated protobuf version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated grpc version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile
    • Removed google-crc32c-devel from dnf install command.
    • Removed sed command for RE2 C++11 fix.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile
    • Removed gcc from zypper install command.
    • Removed libcrc32c-devel from zypper install command.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile
    • Removed comments and ABSL_PROPAGATE_CXX_STD from Abseil build.
    • Updated abseil-cpp version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated protobuf version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated grpc version.
    • Removed crc32c build steps.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile
    • Removed crc32c build steps.
    • Updated abseil-cpp version.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/demo-ubuntu-focal.Dockerfile
    • Removed comments and ABSL_PROPAGATE_CXX_STD from Abseil build.
    • Removed crc32c build steps.
    • Updated abseil-cpp version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated protobuf version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated grpc version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
    • Added gdb package installation.
  • ci/cloudbuild/dockerfiles/fedora-latest-bazel.Dockerfile
    • Downgraded Bazelisk version from 1.24.1 to 1.27.0.
  • ci/cloudbuild/dockerfiles/fedora-latest-cmake.Dockerfile
    • Added valgrind package installation.
    • Updated abseil-cpp version and added CMAKE_CXX_STANDARD=17 to its build, removed inline namespace modifications.
    • Removed crc32c build steps.
    • Updated protobuf version and added CMAKE_CXX_STANDARD=17 to its build.
    • Updated opentelemetry-cpp version from 1.20.0 to 1.24.0.
    • Updated opentelemetry-cpp build to use CMAKE_CXX_STANDARD=17 and WITH_STL=CXX17.
  • ci/cloudbuild/dockerfiles/fedora-latest-cxx14.Dockerfile
    • Removed the file, indicating the deprecation of C++14 specific Dockerfiles.
  • ci/cloudbuild/dockerfiles/fedora-latest-cxx20.Dockerfile
    • Added glibc and clang-tools-extra package installations.
    • Updated abseil-cpp version, removed ABSL_PROPAGATE_CXX_STD.
    • Removed crc32c build steps.
    • Updated protobuf version.
    • Updated opentelemetry-cpp version, removed WITH_ABSEIL.
    • Updated grpc version.
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/macos-cmake.yml
    • .github/workflows/windows-cmake.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request merges the prepare-for-v3.0.0 branch, which includes a significant number of changes to update the project for its v3 release. Key changes include upgrading the minimum C++ standard to C++17, updating numerous dependencies to their newer versions, and transitioning to Bazel modules for dependency management. My review focused on ensuring the consistency and correctness of these widespread changes, particularly within the build and CI configurations. I've identified several issues related to dependency management in the Dockerfiles for demo environments, a critical configuration error in the Bazel WORKSPACE setup, and a potential issue with suppressed warnings in one of the build scripts. Addressing these points will help ensure a smooth transition to v3 for users and maintain the project's quality.

Comment on lines +145 to 155
patches = [

# NOTE: This should only be used while developing with a new
# protobuf message. No changes to `patches` should ever be
# committed to the main branch.
#"googleapis.patch",

# Mirrors the patch from the current bazel module
"//bazel:remove_upb_c_rules.patch",
],
patch_tool = "patch",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The patches attribute is used here, but patch_strip is not set. The patch file //bazel:remove_upb_c_rules.patch is a git-style diff and requires patch -p1 to apply correctly. Please add patch_strip = 1 to this http_archive rule to ensure the patch applies correctly for WORKSPACE-based builds.

Suggested change
patches = [
# NOTE: This should only be used while developing with a new
# protobuf message. No changes to `patches` should ever be
# committed to the main branch.
#"googleapis.patch",
# Mirrors the patch from the current bazel module
"//bazel:remove_upb_c_rules.patch",
],
patch_tool = "patch",
patches = [
# NOTE: This should only be used while developing with a new
# protobuf message. No changes to `patches` should ever be
# committed to the main branch.
#"googleapis.patch",
# Mirrors the patch from the current bazel module
"//bazel:remove_upb_c_rules.patch",
],
patch_strip = 1,
patch_tool = "patch",

Comment on lines +61 to 62
apk add abseil-cpp-dev c-ares-dev curl-dev grpc-dev \
protobuf-dev nlohmann-json openssl-dev re2-dev

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Alpine 3.20 provides Abseil 20240116.2, but this project now depends on a much newer version (20250814.1). This version mismatch might cause build failures for the demo. Consider building Abseil from source in this Dockerfile to ensure version compatibility.

Comment on lines +62 to 73
WORKDIR /var/tmp/build/abseil-cpp
RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20250814.1.tar.gz | \
tar -xzf - --strip-components=1 && \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=yes \
-DCRC32C_BUILD_TESTS=OFF \
-DCRC32C_BUILD_BENCHMARKS=OFF \
-DCRC32C_USE_GLOG=OFF \
-S . -B cmake-out && \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_STANDARD=17 \
-DABSL_BUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=yes \
-S . -B cmake-out && \
cmake --build cmake-out -- -j ${NCPU:-4} && \
cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
ldconfig

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This Dockerfile appears to install libabsl-dev via apt-get earlier in the file, and then builds a different version of Abseil from source here. This can lead to version conflicts and unexpected behavior. To ensure the correct version is used, please remove libabsl-dev from the apt-get install command.

Comment on lines 33 to +34
dnf install -y protobuf-compiler protobuf-devel grpc-cpp grpc-devel \
json-devel libcurl-devel google-crc32c-devel openssl-devel
json-devel libcurl-devel openssl-devel

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Fedora 40 provides Abseil 20230802.1, but this project now depends on a much newer version (20250814.1). This version mismatch might cause build failures for the demo. Consider building Abseil from source in this Dockerfile, similar to how it's done in fedora-latest-cmake.Dockerfile, to ensure version compatibility.

Comment on lines 37 to 39
zypper install --allow-downgrade -y abseil-cpp-devel c-ares-devel \
libcurl-devel libopenssl-devel libcrc32c-devel nlohmann_json-devel \
libcurl-devel libopenssl-devel nlohmann_json-devel \
grpc-devel libprotobuf-devel

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

openSUSE Leap 15 provides a very old version of Abseil (20211102.0), while this project now depends on a much newer version (20250814.1). This will likely cause build failures. Please build Abseil from source in this Dockerfile to ensure version compatibility.

Comment on lines +66 to 76
WORKDIR /var/tmp/build/abseil-cpp
RUN curl -fsSL https://github.com/abseil/abseil-cpp/archive/20250814.1.tar.gz | \
tar -xzf - --strip-components=1 && \
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=yes \
-DCRC32C_BUILD_TESTS=OFF \
-DCRC32C_BUILD_BENCHMARKS=OFF \
-DCRC32C_USE_GLOG=OFF \
-S . -B cmake-out && \
-DCMAKE_BUILD_TYPE=Release \
-DABSL_BUILD_TESTING=OFF \
-DBUILD_SHARED_LIBS=yes \
-S . -B cmake-out && \
cmake --build cmake-out -- -j ${NCPU:-4} && \
cmake --build cmake-out --target install -- -j ${NCPU:-4} && \
ldconfig

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This Dockerfile appears to install libabsl-dev via apt-get earlier in the file, and then builds a different version of Abseil from source here. This can lead to version conflicts and unexpected behavior. To ensure the correct version is used, please remove libabsl-dev from the apt-get install command.


io::run cmake "${cmake_args[@]}" \
-DCMAKE_CXX_STANDARD=17 \
-DCMAKE_CXX_FLAGS="-Wno-error=conversion" \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Could you add a comment explaining why -Wno-error=conversion is needed? Suppressing this warning might hide potential issues, so it would be good to document the reason for it.

@codecov
Copy link

codecov bot commented Feb 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.64%. Comparing base (6a4b2fb) to head (849c581).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #15962      +/-   ##
==========================================
- Coverage   92.95%   92.64%   -0.32%     
==========================================
  Files        2460     2334     -126     
  Lines      228901   214633   -14268     
==========================================
- Hits       212785   198843   -13942     
+ Misses      16116    15790     -326     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@scotthart scotthart marked this pull request as ready for review February 18, 2026 00:00
@scotthart scotthart requested a review from a team as a code owner February 18, 2026 00:00
@scotthart scotthart merged commit c9bdeeb into main Feb 18, 2026
111 of 125 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants