Skip to content

Conversation

@nvborisenko
Copy link
Member

@nvborisenko nvborisenko commented Nov 13, 2025

User description

Upgrade rules_dotnet to 0.20.5

🔗 Related Issues

Enabler for #16564


PR Type

Enhancement


Description

  • Upgrade rules_dotnet dependency from 0.17.5 to 0.20.5

  • Enables compatibility with newer .NET tooling features


Diagram Walkthrough

flowchart LR
  A["rules_dotnet 0.17.5"] -- "upgrade" --> B["rules_dotnet 0.20.5"]
Loading

File Walkthrough

Relevant files
Dependencies
MODULE.bazel
Update rules_dotnet dependency version                                     

MODULE.bazel

  • Updated rules_dotnet bazel dependency version from 0.17.5 to 0.20.5
  • Single line change in the MODULE.bazel configuration file
+1/-1     

@selenium-ci selenium-ci added the B-build Includes scripting, bazel and CI integrations label Nov 13, 2025
@qodo-merge-pro
Copy link
Contributor

qodo-merge-pro bot commented Nov 13, 2025

PR Compliance Guide 🔍

(Compliance updated until commit 89f6b01)

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: 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: 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: Comprehensive Audit Trails

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

Status:
No auditing: New code changes focus on embedded resource loading and build dependency updates without
adding or affecting any critical action logging, so there is no evidence that audit trails
are addressed by this PR.

Referred Code
private static string GetAtom(string atomResourceName)
{
    string atom;
    using (Stream atomStream = ResourceUtilities.GetResourceStream(atomResourceName, $"{Assembly.GetExecutingAssembly().GetName().Name}.{atomResourceName}"))
    {
        using (StreamReader atomReader = new StreamReader(atomStream))
        {

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:
Missing disposal: The new resource stream zipFileStream is not wrapped in a using block, which may lead to
resource leaks or unhandled IO errors when reading the embedded archive.

Referred Code
Stream zipFileStream = ResourceUtilities.GetResourceStream(this.extensionFileName, $"{Assembly.GetExecutingAssembly().GetName().Name}.{this.extensionResourceId}");
using (ZipArchive extensionZipArchive = new ZipArchive(zipFileStream, ZipArchiveMode.Read))
{
    extensionZipArchive.ExtractToDirectory(tempFileName);
}

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:
Unvalidated resources: Newly added embedded resource loading (mutation-listener script) assumes presence and
correctness without validation or fallback, which could cause runtime issues though no
direct external input is handled.

Referred Code
using (Stream resourceStream = ResourceUtilities.GetResourceStream("mutation-listener.js", $"{Assembly.GetExecutingAssembly().GetName().Name}.mutation-listener.js"))
{
    using (StreamReader resourceReader = new StreamReader(resourceStream))
    {
        listenerScript = resourceReader.ReadToEnd();

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

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

Previous compliance checks

Compliance check up to commit e194c76
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: 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: Comprehensive Audit Trails

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

Status:
No Auditing Impact: The change only updates a Bazel dependency (rules_dotnet to 0.20.5) and adds no runtime
code affecting audit logging, so there is no evidence of either compliance or violation
within this diff.

Referred Code
bazel_dep(name = "rules_dotnet", version = "0.20.5")
bazel_dep(name = "rules_java", version = "8.7.1")

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:
No Error Paths: The diff only updates a build dependency declaration and adds no executable logic or error
handling to assess against robustness criteria.

Referred Code
bazel_dep(name = "rules_dotnet", version = "0.20.5")
bazel_dep(name = "rules_java", version = "8.7.1")

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:
No User Errors: This change does not introduce user-facing error messages; it only updates a build rule
version, so secure error handling cannot be evaluated from the diff.

Referred Code
bazel_dep(name = "rules_dotnet", version = "0.20.5")
bazel_dep(name = "rules_java", version = "8.7.1")

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:
No Logging Changes: The diff contains no logging statements; as it only updates a build dependency, compliance
with secure logging cannot be determined here.

Referred Code
bazel_dep(name = "rules_dotnet", version = "0.20.5")
bazel_dep(name = "rules_java", version = "8.7.1")

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:
Build Config Only: The change only modifies a Bazel module dependency and introduces no input handling or
data processing to validate against security requirements.

Referred Code
bazel_dep(name = "rules_dotnet", version = "0.20.5")
bazel_dep(name = "rules_java", version = "8.7.1")

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

@qodo-merge-pro
Copy link
Contributor

qodo-merge-pro bot commented Nov 13, 2025

PR Code Suggestions ✨

No code suggestions found for the PR.

@nvborisenko
Copy link
Member Author

Tests fail because bazel changed logical names for embedded resources: bazel-contrib/rules_dotnet#474

@nvborisenko nvborisenko merged commit 8717085 into SeleniumHQ:trunk Nov 15, 2025
10 checks passed
@nvborisenko nvborisenko deleted the dotnet-rules-upgrade branch November 15, 2025 17:12
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 2/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants