Skip to content

Conversation

@titusfortner
Copy link
Member

@titusfortner titusfortner commented Jan 9, 2026

User description

Windows run throw a bunch of protobuf errors/warnings/info in the logs that are not needed. This should fix that.

Tagging [rb] just to get those tests run to verify.


PR Type

Bug fix


Description

  • Replace generic C++ standard flags with platform-specific configurations

  • Add Windows-specific protobuf compiler warning suppression flag

  • Ensure proper C++ standard compilation across Linux, macOS, and Windows


Diagram Walkthrough

flowchart LR
  A["Generic build flags"] -- "split by platform" --> B["Linux/macOS: -std=c++17"]
  A -- "split by platform" --> C["Windows: /std:c++17"]
  C -- "add warning suppression" --> D["Windows protobuf config"]
Loading

File Walkthrough

Relevant files
Configuration changes
.bazelrc
Platform-specific C++ standards and Windows protobuf warning
suppression

.bazelrc

  • Replaced generic build --cxxopt and build --host_cxxopt flags with
    platform-specific variants
  • Added build:linux and build:macos configurations using -std=c++17
    syntax
  • Added build:windows configuration using /std:c++17 (MSVC syntax)
  • Added Windows-specific per_file_copt flag to suppress protobuf
    compiler warnings with /w
+7/-2     

@selenium-ci selenium-ci added the B-build Includes scripting, bazel and CI integrations label Jan 9, 2026
@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Jan 9, 2026

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review
Copy link
Contributor

qodo-code-review bot commented Jan 9, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Fix incorrect regular expression syntax

Correct the regular expression for the per_file_copt flag to properly match all
files within the protobuf external repository by replacing \+. with /..

.bazelrc [73]

-build:windows --per_file_copt=external/protobuf\\+.*@/w
+build:windows --per_file_copt=external/protobuf/.*@/w
  • Apply / Chat
Suggestion importance[1-10]: 8

__

Why: The suggestion correctly identifies an invalid regular expression in the per_file_copt flag that would prevent it from matching the intended files, and provides a valid fix to ensure the Windows build configuration works as expected.

Medium
Learned
best practice
Centralize duplicate build flags

Deduplicate the identical Linux/macOS C++17 options by introducing a shared
config (e.g., build:posix) and have build:linux/build:macos reference it via
--config=posix.

.bazelrc [67-73]

-build:linux --cxxopt=-std=c++17
-build:linux --host_cxxopt=-std=c++17
-build:macos --cxxopt=-std=c++17
-build:macos --host_cxxopt=-std=c++17
+build:posix --cxxopt=-std=c++17
+build:posix --host_cxxopt=-std=c++17
+build:linux --config=posix
+build:macos --config=posix
 build:windows --cxxopt=/std:c++17
 build:windows --host_cxxopt=/std:c++17
 build:windows --per_file_copt=external/protobuf\\+.*@/w
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Reduce duplication by centralizing shared behavior (avoid repeating identical config flags across multiple targets).

Low
  • Update

@titusfortner titusfortner merged commit 860ee6f into trunk Jan 10, 2026
33 checks passed
@titusfortner titusfortner deleted the win_protobuf branch January 10, 2026 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations Review effort 1/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants