Skip to content

Replace hardcoded bazel-selenium references with dynamic path resolution#16976

Merged
titusfortner merged 6 commits intotrunkfrom
selenium-bazel
Jan 22, 2026
Merged

Replace hardcoded bazel-selenium references with dynamic path resolution#16976
titusfortner merged 6 commits intotrunkfrom
selenium-bazel

Conversation

@titusfortner
Copy link
Copy Markdown
Member

@titusfortner titusfortner commented Jan 22, 2026

User description

🔗 Related Issues

None - discovered while working in a git worktree

💥 What does this PR do?

Removes hardcoded bazel-selenium references that break in git worktrees or differently-named checkouts.

  • .gitignore: Replace individual bazel-* entries with /bazel-* glob pattern
  • README.md: Update Ruby paths to use bazel-bin/external/... instead of bazel-selenium/external/...
  • dotnet/private/docfx.bzl: Resolve execution root dynamically via bazel-bin symlink
  • dotnet/update-deps.sh: Use bazel info output_base to find external dependencies

🔧 Implementation Notes

The bazel-selenium symlink name is derived from the workspace name and doesn't exist in worktrees or renamed checkouts. The fixes use stable Bazel paths:

  • bazel-bin symlink always exists and points to <exec_root>/bazel-out/<config>/bin
  • bazel info output_base returns the correct path regardless of workspace name
  • /bazel-* in gitignore catches all Bazel convenience symlinks at the repo root

💡 Additional Considerations

None

🔄 Types of changes

  • Bug fix (backwards compatible)

PR Type

Bug fix


Description

  • Replace hardcoded bazel-selenium references with dynamic path resolution

  • Use bazel-bin symlink to resolve execution root in docfx scripts

  • Use bazel info output_base for external dependencies in update-deps.sh

  • Update Ruby documentation paths to use bazel-bin instead of bazel-selenium


Diagram Walkthrough

flowchart LR
  A["Hardcoded bazel-selenium paths"] -->|docfx.bzl| B["Resolve via bazel-bin symlink"]
  A -->|update-deps.sh| C["Resolve via bazel info output_base"]
  A -->|README.md| D["Update to bazel-bin paths"]
  B --> E["Unix/Windows scripts work in worktrees"]
  C --> F["External deps found correctly"]
  D --> G["Documentation accurate"]
Loading

File Walkthrough

Relevant files
Bug fix
docfx.bzl
Dynamic execution root resolution for docfx scripts           

dotnet/private/docfx.bzl

  • Replace hardcoded bazel-selenium paths with dynamic EXEC_ROOT
    resolution
  • Unix template: resolve execution root by traversing from bazel-bin
    symlink
  • Windows template: resolve execution root via bazel-bin junction with
    setlocal scope
  • Use resolved EXEC_ROOT for both dotnet and docfx tool paths
+11/-4   
update-deps.sh
Dynamic external dependencies resolution via bazel info   

dotnet/update-deps.sh

  • Replace hardcoded bazel-selenium/external with dynamic bazel info
    output_base
  • Validate OUTPUT_BASE exists before constructing external directory
    path
  • Use EXTERNAL_DIR variable for cleaner path construction
  • Add error suppression for bazel info and find commands
+4/-2     
Documentation
README.md
Update Ruby development paths to use bazel-bin                     

README.md

  • Update Ruby debugger path from bazel-selenium/external/bundle/bin/rdbg
    to bazel-bin/external/bundle/bin/rdbg
  • Update RubyMine interpreter path from
    bazel-selenium/external/rules_ruby++ruby+ruby/dist/bin/ruby to
    bazel-bin/external/rules_ruby++ruby+ruby/dist/bin/ruby
  • Maintain consistency with dynamic path resolution approach
+2/-2     

@titusfortner titusfortner requested a review from Copilot January 22, 2026 15:34
@selenium-ci selenium-ci added C-dotnet .NET Bindings B-build Includes scripting, bazel and CI integrations labels Jan 22, 2026
@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review bot commented Jan 22, 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: 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

🔴
Generic: Robust Error Handling and Edge Case Management

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

Status:
Unhandled bazel failure: bazel info output_base failures are suppressed and can produce an empty EXTERNAL_DIR that
becomes /external, leading to incorrect dependency discovery without an actionable error.

Referred Code
EXTERNAL_DIR=$(cd "$REPO_ROOT" && bazel info output_base 2>/dev/null)/external
if [[ -d "$EXTERNAL_DIR" ]]; then
    DOTNET_DIR=$(find "$EXTERNAL_DIR" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)

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
Copy Markdown
Contributor

qodo-code-review bot commented Jan 22, 2026

PR Code Suggestions ✨

Latest suggestions up to 204f8c3

CategorySuggestion                                                                                                                                    Impact
Possible issue
Fix execution root path resolution
Suggestion Impact:The commit corrected EXEC_ROOT resolution by switching to `bazel info execution_root` (and similarly for Windows), addressing the same underlying problem of incorrect path calculation, though via a different implementation than the suggestion's bazel-bin realpath parsing.

code diff:

-# Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
-EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
+EXEC_ROOT=$(bazel info execution_root)
 exec "$EXEC_ROOT/{dotnet}" exec \
      "$EXEC_ROOT/{docfx}" {config} "$@"
 """
@@ -44,12 +43,10 @@
 _WINDOWS_TEMPLATE = """@echo off
 setlocal
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
-rem Resolve execution root from bazel-bin junction (bin -> config -> bazel-out -> exec_root)
-cd /d "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\.."
-set EXEC_ROOT=%CD%
-cd /d "%BUILD_WORKSPACE_DIRECTORY%"
+for /f "tokens=*" %%i in ('bazel info execution_root') do set "EXEC_ROOT=%%i"
 "%EXEC_ROOT%\\{dotnet}" exec ^
     "%EXEC_ROOT%\\{docfx}" {config} %*
+endlocal
 """

Fix the logic for calculating the EXEC_ROOT path in the Unix shell script
template. The current implementation is incorrect and will fail to find the
required executables.

dotnet/private/docfx.bzl [38-41]

-# Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
-EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
+# Resolve Bazel execution root from the real bazel-bin path.
+BIN_REAL="$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin" && pwd -P)"
+OUTPUT_BASE="${BIN_REAL%%/bazel-out/*}"
+WS_NAME="$(basename "$BUILD_WORKSPACE_DIRECTORY")"
+EXEC_ROOT="${OUTPUT_BASE}/execroot/${WS_NAME}"
 exec "$EXEC_ROOT/{dotnet}" exec \
      "$EXEC_ROOT/{docfx}" {config} "$@"

[Suggestion processed]

Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies a critical flaw in the PR's logic for resolving the Bazel execution root, which would lead to incorrect paths and script failure, and provides a robust and correct fix.

High
  • Update

Previous suggestions

✅ Suggestions up to commit 55602bb
CategorySuggestion                                                                                                                                    Impact
High-level
Reconsider replacing a specialized GitHub Action

The pin-browsers.yml workflow's replacement of the
peter-evans/create-pull-request action with a custom script is a regression, as
it loses the ability to update existing pull requests. It is recommended to
revert to the specialized action for more robust functionality.

Examples:

.github/workflows/pin-browsers.yml [19-54]
  push-changes:
    name: Push Changes
    needs: update
    if: github.event.repository.fork == false
    uses: ./.github/workflows/commit-changes.yml
    with:
      artifact-name: pinned-browsers
      commit-message: "Update pinned browser versions"
      push-branch: pinned-browser-updates
    secrets:

 ... (clipped 26 lines)

Solution Walkthrough:

Before:

# .github/workflows/pin-browsers.yml

push-changes:
  uses: ./.github/workflows/commit-changes.yml
  with:
    push-branch: pinned-browser-updates
    ...

create-pr:
  needs: push-changes
  if: needs.push-changes.outputs.changes-committed == 'true'
  run: |
    existing=$(gh pr list --head pinned-browser-updates ...)
    if [ -n "$existing" ]; then
      echo "::notice::PR #$existing already exists"
    else
      gh pr create --head pinned-browser-updates ...
    fi

After:

# .github/workflows/pin-browsers.yml

pull-request:
  needs: update
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v4
    - uses: actions/download-artifact@v4
      with:
        name: pinned-browsers
    - uses: peter-evans/create-pull-request@v6
      with:
        token: ${{ secrets.SELENIUM_CI_TOKEN }}
        commit-message: "Update pinned browser versions"
        branch: "pinned-browser-updates"
        title: "[...] Automated Browser Version Update"
        ...
Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies a significant functional regression in the pin-browsers.yml workflow, where the new implementation fails to update existing pull requests, unlike the peter-evans/create-pull-request action it replaces.

High
General
Add fallback and quoting for external path

Add a fallback to the original external directory path if bazel info output_base
fails, and quote variable expansions.

dotnet/update-deps.sh [6-8]

-EXTERNAL_DIR=$(cd "$REPO_ROOT" && bazel info output_base 2>/dev/null)/external
+EXTERNAL_DIR="$(cd "$REPO_ROOT" && bazel info output_base 2>/dev/null)/external"
 if [[ -d "$EXTERNAL_DIR" ]]; then
-    DOTNET_DIR=$(find "$EXTERNAL_DIR" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)
+    DOTNET_DIR="$(find "$EXTERNAL_DIR" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)"
+elif [[ -d "$REPO_ROOT/bazel-selenium/external" ]]; then
+    DOTNET_DIR="$(find "$REPO_ROOT/bazel-selenium/external" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)"
+fi
Suggestion importance[1-10]: 6

__

Why: The suggestion improves the script's robustness by adding a fallback mechanism to find the .NET directory, which was part of the original logic removed in the PR.

Low
Learned
best practice
Validate external command output
Suggestion Impact:The commit adds an explicit warning path when `bazel info output_base` fails, indicating the script is now handling that failure case more deliberately before falling back to system dotnet. While it doesn't show the full `OUTPUT_BASE` guarding logic from the suggestion, it directly addresses the same concern of reacting safely to failed/empty bazel output.

code diff:

+else
+    echo "Warning: bazel info output_base failed; falling back to system dotnet" >&2

Guard against missing/failed bazel or empty output_base so you don’t
accidentally probe /external or a malformed path; only form EXTERNAL_DIR when
bazel info succeeds and returns a non-empty path.

dotnet/update-deps.sh [6-13]

-EXTERNAL_DIR=$(cd "$REPO_ROOT" && bazel info output_base 2>/dev/null)/external
-if [[ -d "$EXTERNAL_DIR" ]]; then
-    DOTNET_DIR=$(find "$EXTERNAL_DIR" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)
-    if [[ -n "$DOTNET_DIR" && -x "$DOTNET_DIR/dotnet" ]]; then
-        DOTNET="$DOTNET_DIR/dotnet"
-        echo "Using bazel-managed dotnet: $DOTNET"
+OUTPUT_BASE="$(cd "$REPO_ROOT" && command -v bazel >/dev/null 2>&1 && bazel info output_base 2>/dev/null || true)"
+if [[ -n "${OUTPUT_BASE}" ]]; then
+    EXTERNAL_DIR="${OUTPUT_BASE}/external"
+    if [[ -d "$EXTERNAL_DIR" ]]; then
+        DOTNET_DIR=$(find "$EXTERNAL_DIR" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)
+        if [[ -n "$DOTNET_DIR" && -x "$DOTNET_DIR/dotnet" ]]; then
+            DOTNET="$DOTNET_DIR/dotnet"
+            echo "Using bazel-managed dotnet: $DOTNET"
+        fi
     fi
 fi
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Add validation/guards for integration-boundary inputs (e.g., environment/tool outputs) before constructing paths from them.

Low
Add robust path existence checks
Suggestion Impact:Instead of adding explicit bazel-bin/EXEC_ROOT existence checks, the commit changed the approach to resolving EXEC_ROOT by calling `bazel info execution_root` on both Unix and Windows. This removes reliance on `bazel-bin` being present and avoids the original fragile path derivation that motivated the suggested guards.

code diff:

@@ -35,8 +35,7 @@
 _UNIX_TEMPLATE = """#!/usr/bin/env bash
 set -euo pipefail
 cd "$BUILD_WORKSPACE_DIRECTORY"
-# Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
-EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
+EXEC_ROOT=$(bazel info execution_root)
 exec "$EXEC_ROOT/{dotnet}" exec \
      "$EXEC_ROOT/{docfx}" {config} "$@"
 """
@@ -44,12 +43,10 @@
 _WINDOWS_TEMPLATE = """@echo off
 setlocal
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
-rem Resolve execution root from bazel-bin junction (bin -> config -> bazel-out -> exec_root)
-cd /d "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\.."
-set EXEC_ROOT=%CD%
-cd /d "%BUILD_WORKSPACE_DIRECTORY%"
+for /f "tokens=*" %%i in ('bazel info execution_root') do set "EXEC_ROOT=%%i"
 "%EXEC_ROOT%\\{dotnet}" exec ^
     "%EXEC_ROOT%\\{docfx}" {config} %*
+endlocal

Add explicit existence checks and a clear error message if bazel-bin isn’t
present or the derived EXEC_ROOT is empty/invalid, to avoid confusing failures
when run outside Bazel or before a build.

dotnet/private/docfx.bzl [35-53]

 _UNIX_TEMPLATE = """#!/usr/bin/env bash
 set -euo pipefail
 cd "$BUILD_WORKSPACE_DIRECTORY"
+if [ ! -e "$BUILD_WORKSPACE_DIRECTORY/bazel-bin" ]; then
+  echo "bazel-bin not found; run a Bazel build first." >&2
+  exit 1
+fi
 # Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
 EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
+if [ -z "${EXEC_ROOT}" ] || [ ! -d "${EXEC_ROOT}" ]; then
+  echo "Failed to resolve Bazel execution root." >&2
+  exit 1
+fi
 exec "$EXEC_ROOT/{dotnet}" exec \
      "$EXEC_ROOT/{docfx}" {config} "$@"
 """
 
 _WINDOWS_TEMPLATE = """@echo off
 setlocal
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
+if not exist "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin" (
+  echo bazel-bin not found; run a Bazel build first. 1>&2
+  exit /b 1
+)
 rem Resolve execution root from bazel-bin junction (bin -> config -> bazel-out -> exec_root)
 cd /d "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\.."
 set EXEC_ROOT=%CD%
+if not exist "%EXEC_ROOT%" (
+  echo Failed to resolve Bazel execution root. 1>&2
+  exit /b 1
+)
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
 "%EXEC_ROOT%\\{dotnet}" exec ^
     "%EXEC_ROOT%\\{docfx}" {config} %*
 """
Suggestion importance[1-10]: 5

__

Why:
Relevant best practice - Add validation/guards at integration boundaries when deriving filesystem paths from Bazel/workspace state.

Low
Possible issue
Quote patch file checks

Quote the changes.patch file path in the if condition to handle potential spaces
or special characters in filenames.

.github/workflows/commit-changes.yml [55]

-if [ -f changes.patch ] && [ -s changes.patch ]; then
+if [ -f "changes.patch" ] && [ -s "changes.patch" ]; then
Suggestion importance[1-10]: 4

__

Why: The suggestion correctly points out that quoting file paths in shell tests is a good practice for robustness, although it's a minor issue in this specific context.

Low

@titusfortner titusfortner marked this pull request as draft January 22, 2026 15:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to replace hardcoded bazel-selenium references with dynamic path resolution to support git worktrees and differently-named checkouts. However, it also includes substantial GitHub Actions workflow refactoring that is unrelated to the stated purpose.

Changes:

  • Replaced hardcoded bazel-selenium paths with dynamic resolution using bazel info output_base and bazel-bin symlinks
  • Simplified .gitignore to use /bazel-* pattern instead of individual entries
  • Created a new reusable GitHub Actions workflow for committing changes and refactored five workflow files to use it

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.gitignore Replaced individual bazel-* entries with /bazel-* glob pattern to catch all Bazel convenience symlinks
README.md Updated Ruby development paths to use bazel-bin/external/... instead of bazel-selenium/external/...
dotnet/private/docfx.bzl Implemented dynamic execution root resolution via bazel-bin symlink traversal
dotnet/update-deps.sh Changed to use bazel info output_base for finding external dependencies
.github/workflows/commit-changes.yml Created new reusable workflow for applying and committing patch artifacts
.github/workflows/release.yml Refactored to use new reusable commit-changes workflow
.github/workflows/pre-release.yml Refactored to use new reusable commit-changes workflow
.github/workflows/pin-browsers.yml Refactored to use new reusable commit-changes workflow and improved PR creation logic
.github/workflows/ci-renovate-rbe.yml Refactored to use new reusable commit-changes workflow
.github/workflows/ci-lint.yml Refactored to use new reusable commit-changes workflow and improved fork handling

@titusfortner
Copy link
Copy Markdown
Member Author

this branch was rebased off wrong branch. fixed now.

@titusfortner titusfortner marked this pull request as ready for review January 22, 2026 15:45
@qodo-code-review
Copy link
Copy Markdown
Contributor

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: 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

Generic: Robust Error Handling and Edge Case Management

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

Status:
Missing edge checks: The new execution-root resolution assumes bazel-bin exists and has the expected ../../..
structure, but adds no explicit validation or actionable error message if the
symlink/junction is missing or layout differs.

Referred Code
# Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
exec "$EXEC_ROOT/{dotnet}" exec \
     "$EXEC_ROOT/{docfx}" {config} "$@"

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

@qodo-code-review
Copy link
Copy Markdown
Contributor

Persistent suggestions updated to latest commit 204f8c3

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review bot commented Jan 22, 2026

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Improve path resolution in Windows script
Suggestion Impact:The Windows template was updated to set EXEC_ROOT via a for /f loop (now using `bazel info execution_root`) and `endlocal` was added, matching the suggestion’s intent of more robust path resolution and proper environment scoping.

code diff:

 _WINDOWS_TEMPLATE = """@echo off
 setlocal
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
-rem Resolve execution root from bazel-bin junction (bin -> config -> bazel-out -> exec_root)
-cd /d "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\.."
-set EXEC_ROOT=%CD%
-cd /d "%BUILD_WORKSPACE_DIRECTORY%"
+for /f "tokens=*" %%i in ('bazel info execution_root') do set "EXEC_ROOT=%%i"
 "%EXEC_ROOT%\\{dotnet}" exec ^
     "%EXEC_ROOT%\\{docfx}" {config} %*
+endlocal
 """

Refactor the Windows batch script to use a for loop for more robust path
resolution and add endlocal to properly manage environment variables.

dotnet/private/docfx.bzl [44-53]

 _WINDOWS_TEMPLATE = """@echo off
 setlocal
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
 rem Resolve execution root from bazel-bin junction (bin -> config -> bazel-out -> exec_root)
-cd /d "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\.."
-set EXEC_ROOT=%CD%
-cd /d "%BUILD_WORKSPACE_DIRECTORY%"
+for /f "delims=" %%i in ("%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\..") do set "EXEC_ROOT=%%~fi"
 "%EXEC_ROOT%\\{dotnet}" exec ^
     "%EXEC_ROOT%\\{docfx}" {config} %*
+endlocal
 """

[Suggestion processed]

Suggestion importance[1-10]: 6

__

Why: This is a good suggestion that improves the Windows batch script by using a more idiomatic and robust method for path resolution and by correctly scoping environment variable changes with endlocal.

Low
Warn on bazel info failure

Add a warning message to inform the user if bazel info output_base fails and the
script falls back to the system dotnet.

dotnet/update-deps.sh [6-9]

 OUTPUT_BASE=$(cd "$REPO_ROOT" && bazel info output_base 2>/dev/null)
+if [[ -z "$OUTPUT_BASE" ]]; then
+    echo "Warning: bazel info output_base failed, defaulting to system dotnet"
+fi
 if [[ -n "$OUTPUT_BASE" && -d "$OUTPUT_BASE/external" ]]; then
     EXTERNAL_DIR="$OUTPUT_BASE/external"
     DOTNET_DIR=$(find "$EXTERNAL_DIR" -maxdepth 1 -name "rules_dotnet++dotnet+dotnet_*" -type d 2>/dev/null | head -1)
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why: The suggestion improves user experience by adding a warning message when a command fails silently, which helps in debugging why the script falls back to the system dotnet.

Low
Learned
best practice
Guard and validate exec-root resolution
Suggestion Impact:The patch updates both Unix and Windows templates to resolve EXEC_ROOT via `bazel info execution_root` instead of traversing from bazel-bin. However, it does not add the suggested guards/validation for empty/non-existent paths.

code diff:

 cd "$BUILD_WORKSPACE_DIRECTORY"
-# Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
-EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
+EXEC_ROOT=$(bazel info execution_root)
 exec "$EXEC_ROOT/{dotnet}" exec \
      "$EXEC_ROOT/{docfx}" {config} "$@"
 """
@@ -44,12 +43,10 @@
 _WINDOWS_TEMPLATE = """@echo off
 setlocal
 cd /d "%BUILD_WORKSPACE_DIRECTORY%"
-rem Resolve execution root from bazel-bin junction (bin -> config -> bazel-out -> exec_root)
-cd /d "%BUILD_WORKSPACE_DIRECTORY%\\bazel-bin\\..\\..\\.."
-set EXEC_ROOT=%CD%
-cd /d "%BUILD_WORKSPACE_DIRECTORY%"
+for /f "tokens=*" %%i in ('bazel info execution_root') do set "EXEC_ROOT=%%i"
 "%EXEC_ROOT%\\{dotnet}" exec ^
     "%EXEC_ROOT%\\{docfx}" {config} %*

Avoid assuming the bazel-bin/../../.. traversal is valid; resolve via bazel info
execution_root and validate it’s non-empty and exists before use.

dotnet/private/docfx.bzl [38-41]

-# Resolve execution root from bazel-bin symlink (bin -> config -> bazel-out -> exec_root)
-EXEC_ROOT=$(cd "$BUILD_WORKSPACE_DIRECTORY/bazel-bin/../../.." && pwd -P)
+EXEC_ROOT="$(cd "$BUILD_WORKSPACE_DIRECTORY" && bazel info execution_root 2>/dev/null || true)"
+if [[ -z "$EXEC_ROOT" || ! -d "$EXEC_ROOT" ]]; then
+  echo "Failed to resolve Bazel execution root" >&2
+  exit 1
+fi
 exec "$EXEC_ROOT/{dotnet}" exec \
      "$EXEC_ROOT/{docfx}" {config} "$@"

[Suggestion processed]

Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Add explicit validation/guards at integration boundaries (e.g., filesystem/exec-root resolution) instead of assuming paths exist.

Low
  • More

@titusfortner titusfortner requested a review from Copilot January 22, 2026 15:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.

@titusfortner titusfortner merged commit b9b9c28 into trunk Jan 22, 2026
23 checks passed
@titusfortner titusfortner deleted the selenium-bazel branch January 22, 2026 16:19
titusfortner added a commit that referenced this pull request Jan 22, 2026
…ion (#16976)

* Replace hardcoded bazel-selenium references with dynamic path resolution

* Validate bazel output_base before constructing external path

* Fix EXEC_ROOT path resolution by following symlink before navigating

* Use bazel info execution_root for reliable path resolution

* Keep bazel-selenium in README for readability
titusfortner added a commit that referenced this pull request Jan 23, 2026
…ion (#16976)

* Replace hardcoded bazel-selenium references with dynamic path resolution

* Validate bazel output_base before constructing external path

* Fix EXEC_ROOT path resolution by following symlink before navigating

* Use bazel info execution_root for reliable path resolution

* Keep bazel-selenium in README for readability
This was referenced Feb 22, 2026
PhilipWoulfe pushed a commit to PhilipWoulfe/F1Competition that referenced this pull request Mar 16, 2026
Updated [Selenium.Support](https://github.com/SeleniumHQ/selenium) from
4.31.0 to 4.41.0.

<details>
<summary>Release notes</summary>

_Sourced from [Selenium.Support's
releases](https://github.com/SeleniumHQ/selenium/releases)._

## 4.41.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>

<!-- Release notes generated using configuration in .github/release.yml
at selenium-4.41.0 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Remove type stub packages from runtime dependencies by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16945
* Canonical approach to supporting AI agent directions by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16735
* [build] Pre-release workflow improvements by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16946
* [build] Prevent nightly releases during release window by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16948
* [build] Fix Bazel NuGet push implementation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16950
* [build] Release workflow improvements by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16947
* [build] Fix Bazel JSDocs implementation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16949
* [build] Create config files from environment variables for publishing
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16951
* [js] create task to update dependencies by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16942
* [build] Java release improvements and build verification tasks by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16952
* [py] integrate mypy type checking with Bazel by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16958
* [build] Migrate workflows to use centralized bazel.yml by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16955
* [dotnet] [bidi] Simplify context aware command options by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16954
* [build] simplify release.yml: remove draft, build once during publish
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16960
* [dotnet] [bidi] AOT safe json converter for `Input.Origin` class by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16962
* [dotnet] [bidi] AOT safe json converter for `OptionalConverter` by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16963
* [dotnet] [bidi] Null guard for event handlers by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16967
* [java] Improve error message for died grid by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16938
* [build] combine pre-release dependency updates by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16973
* [rb] remove stored atoms these get generated by build by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16971
* [dotnet] [bidi] Unignore some internal tests by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16968
* [build] run ruff on python files outside py directory by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16957
* [py] Fix return type hint for `alert_is_present` by @​nemowang2003 in
https://github.com/SeleniumHQ/selenium/pull/16975
* Replace hardcoded bazel-selenium references with dynamic path
resolution by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16976
* No More CrazyFun! by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16972
* [build] Remove update_gh_pages in favor of CI workflow by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16977
* [build] Remove legacy rake helpers and unused code by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16978
* [py] make bazel test target names consistent with other languages by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16969
* [dotnet] [bidi] Fix namespace for Permissions module by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16981
* [dotnet] [bidi] Hide Broker as internal implementation by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16982
* [dotnet] [bidi] Refactor BiDi module initialization to pass BiDi
explicitly by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16983
* [build] Add DocFX updater script by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16980
* [build] add reusable commit-changes.yml workflow by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16965
* [java] fix JSON parsing of numbers with exponent by @​joerg1985 in
https://github.com/SeleniumHQ/selenium/pull/16961
* [build] Skip macOS-only archive rules on unsupported platforms by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16985
* [build] Split Rakefile into per-language task files by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16979
* Implement fast bazel target lookup with index caching by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16974
* [build] Remove git.add() calls from rake tasks by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16994
* [js] Add eslint binary target for selenium-webdriver by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16992
 ... (truncated)

## 4.40.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [dotnet] Modernize `EnvironmentManager`, standardize assembly teardown
by @​RenderMichael in https://github.com/SeleniumHQ/selenium/pull/15551
* [java] Refactor tests by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16684
* [ci]: bump cargo lockfile by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16698
* [java][BiDi] change emulation commands return type to void by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16699
* [java] simplify strings processing by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/15309
* Fix few more flaky ruby tests by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16695
* [bazel] Switch to custom `closure_js_deps` rule by @​shs96c in
https://github.com/SeleniumHQ/selenium/pull/16571
* [dotnet] [bidi] Support SetScreenSettingsOverrideAsync method in
Emulation module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16704
* [dotnet] Modernize code patterns in test suites by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16701
* use proper AssertJ asserts that generate a useful error message by
@​asolntsev in https://github.com/SeleniumHQ/selenium/pull/16707
* fix Java language level in IDEA by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16708
* [py] Properly verify Selenium Manager exists by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16711
* fix flaky Ruby test `element_spec.rb` by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16709
* [java][BiDi] implement `emulation.setScreenOrientationOverride` by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16705
* [rb] add synchronization and error handling for socket interactions by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16487
* [rb] mark low level bidi implementation as private api by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16475
* [rb] ensure driver process is always stopped by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/15635
* [rb] create user-friendly method for enabling bidi by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/14284
* [dotnet] [bidi] Added missing Script.RemoteReference LocaclValue type
by @​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16717
* [dotnet] Standardize `IEquatable<T>` implementations across types
overriding Equals by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16665
* [dotnet] Fix nullability warnings in `WebDriver` by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16662
* [py] Don't compare object identity in conftest by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16723
* #​16720 avoid failing because of temporary Chrome internal files by
@​asolntsev in https://github.com/SeleniumHQ/selenium/pull/16722
* [rb] Add force encoding to remove warnings caused by json 3.0 by
@​aguspe in https://github.com/SeleniumHQ/selenium/pull/16728
* [py] Remove deprecated FTP proxy support by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16721
* [py] Bump ruff and mypy versions by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16737
* Create target directories before copying file by @​MohabMohie in
https://github.com/SeleniumHQ/selenium/pull/16739
* [bazel+closure]: Vendor the version of closure library we use by
@​shs96c in https://github.com/SeleniumHQ/selenium/pull/16742
* [closure] Fix failing `//javascript/atoms:test-*` targets by @​shs96c
in https://github.com/SeleniumHQ/selenium/pull/16749
* Avoid sleep in tests by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16713
* [bazel] Bump `rules_closure` and google closure libary to latest
release by @​shs96c in https://github.com/SeleniumHQ/selenium/pull/16755
* [refactor] call WebDriverException constructor instead of using
reflection by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16763
* [build] Pin Browsers in Bazel by default by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16743
* [build] build selenium manager for tests by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16736
* [refactor] replace JUnit assertions by AssertJ by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16765
* [py] Add LocalWebDriver base class by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16730
* Fix bug in FileHandler: it always failed on MacOS by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16771
* [java] add missing bazel artifacts by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16773
 ... (truncated)

## 4.39.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [atoms] fix text node children are always considered as displayed
#​16284 by @​joerg1985 in
https://github.com/SeleniumHQ/selenium/pull/16329
* [grid] Enhance UI with theme integration and improved status
indicators by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/16512
* [py][bidi]: add emulation command - `set_locale_override` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16504
* [py][bidi]: add emulation command `set_scripting_enabled` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16513
* [py] Update docstrings to google pydoc format by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16511
* [java][BiDi] implement `browsingContext.downloadEnd` event by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16347
* Fix typo and minor formatting changes in README.md by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16523
* [py] Update docstrings (remove reST leftovers and resolve D200) by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/16525
* [py] Fix docstring formatting and apply ruff linting rules by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16527
* [py] Fix Ruff D417 warnings in docstrings by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16535
* [py] Fix ruff D415 warnings in docstrings by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16536
* [py][bidi]: add `set_screen_orientation_override` command in Emulation
by @​navin772 in https://github.com/SeleniumHQ/selenium/pull/16522
* [py] Fix D205 ruff warnings for docstrings and add type hints by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/16537
* [py][bidi]: add `set_download_behavior` command by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16556
* [py] Bump pytest and dev dependencies by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16572
* [bazel] Move `rules_rust` to `bzlmod` by @​shs96c in
https://github.com/SeleniumHQ/selenium/pull/16566
* [ci] Make a PR for updating mirror file instead of pushing directly to
trunk by @​bonigarcia in
https://github.com/SeleniumHQ/selenium/pull/16579
* [ci] Update mirror info (2025-11-11T15:26:46Z) by
@​github-actions[bot] in
https://github.com/SeleniumHQ/selenium/pull/16578
* [ci] Revert latest changes related to the mirror workflow by
@​bonigarcia in https://github.com/SeleniumHQ/selenium/pull/16580
* [java]: refactor request interception tests and handle CORS by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16585
* [py][bidi]: enable download event tests for firefox by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16587
* [py] Fix more type annotations by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16551
* [java][BiDi] implement `emulation.setTimezoneOverride` by @​Delta456
in https://github.com/SeleniumHQ/selenium/pull/16530
* [grid] Minimum Docker API 1.44 for Docker Engine v29+ in Dynamic Grid
by @​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16591
* Show file modification time by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16589
* [py][bidi]: add emulation command `set_user_agent_override` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16595
* [grid] Improve Docker client for Dynamic Grid by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/16596
* [py]: reuse driver in case of bidi tests by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16597
* [grid] Improve browser container labels and naming in Dynamic Grid by
@​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16599
* [build] Upgrade rules_dotnet to 0.20.5 by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16592
* [dotnet] [bidi] Simplify namespace for communications by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16602
* [py] Improve type hints with union syntax and native types by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16590
* [py] Use double quotes in generate.py by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/16607
* [ci] Use pagination in mirror workflow to get all Selenium releases by
@​bonigarcia in https://github.com/SeleniumHQ/selenium/pull/16605
* [dotnet] Generate atoms statically by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16608
* [nodejs] Update dev dependencies to fix vulnerabilities by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16610
* [java][BiDi] emulation: allow passing null to GeolocationOverride by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16594
* [grid] Update container label `compose.oneoff` in Dynamic Grid by
@​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16613
 ... (truncated)

## 4.38.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [dotnet] [bidi] Avoid using JsonInclude attribute to include optional
property for DTO by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16413
* [rb] Bump prism to 1.6.0 by @​Earlopain in
https://github.com/SeleniumHQ/selenium/pull/16450
* [java] JSpecify annotations for `ExecuteMethod` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16464
* [rb] Fix Network issue by removing nil values on network requests by
@​aguspe in https://github.com/SeleniumHQ/selenium/pull/16442
* [py] Replaced :param: and :args: from docstrings by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16469
* [java] JSpecify annotations for `org.openqa.selenium.federatedcredent…
by @​mk868 in https://github.com/SeleniumHQ/selenium/pull/16461
* [java] JSpecify annotations for `org.openqa.selenium.interactions` by
@​mk868 in https://github.com/SeleniumHQ/selenium/pull/16462
* [java][rb] Remove cruft from old Travis CI environment by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16473
* [java] JSpecify annotations for `org.openqa.selenium.net` by @​mk868
in https://github.com/SeleniumHQ/selenium/pull/16463
* [rb] remove deprecated classes for previous implementation of log han…
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16474
* [build] minimize number of ruby targets run with bidi by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16477
* [java] JSpecify annotations for `Credential` and `MBean` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16481
* [java] JSpecify annotations for `ScriptKey` and `UnpinnedScriptKey` by
@​mk868 in https://github.com/SeleniumHQ/selenium/pull/16483
* [java] JSpecify annotations for `FileDetector` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16482
* [java] JSpecify annotations for `ExpectedCondition` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16489
* [java] JSpecify annotations for `Response` `SessionId` `HttpSessionId`
by @​mk868 in https://github.com/SeleniumHQ/selenium/pull/16490
* [rb][build] improve ruby local_dev generation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16495
* [build] removing test_tag_filter tag that isn't being used anywhere by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16496
* [rb][build] disable dev shm for Chrome and Edge on RBE by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16497
* [rb] update syntax with rspec linter by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16498
* [java][bidi]: add test for `onHistoryUpdated` event by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16293
* [py] Bump version of ruff formatter/linter by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16502
* [rust] Fixe Edge version test by @​bonigarcia in
https://github.com/SeleniumHQ/selenium/pull/16501
* [py][bidi]: add `set_timezone_override` command in emulation by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16500
* [py] Cleanup and convert more doctrings to google-style by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/16503
* [build] fix update-documentation workflow by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16505
* fix workflows for updating documentation from stage release by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16506

</details>

**Full Changelog**:
https://github.com/SeleniumHQ/selenium/compare/selenium-4.37.0...selenium-4.38.0

## 4.37.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Re-add defaults for Chromium kwargs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16372
* Splitting stress tests by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/16374
* [rb] Update Chrome/Edge args for test environment by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16376
* [dotnet] [bidi] Emulation module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16380
* [py] Remove old test xfail markers from Travis CI by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16377
* [dotnet] [bidi] Implement browsing context download events by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16382
* [dotnet] [bidi] Support browser SetDownloadBehaviour command by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16383
* [dotnet] [bidi] Support network SetExtraHeaders command by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16384
* [py][build] Python CI - add unit test job and windows integration
tests to GH runners by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16362
* [java] Linux ARM "os.arch" system property is "aarch64" by @​mkurz in
https://github.com/SeleniumHQ/selenium/pull/16381
* [dotnet] [bidi] AOT safe enums serialization by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16386
* [dotnet] Handle negative zero BiDi response by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/15898
* [dotnet] Move JSON converter attributes from centralized options into
their respective types by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16393
* [py] Fix Selenium Manager tests on Windows by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16391
* [py] Fix chromedriver/msedgedriver service tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16395
* [dotnet] [bidi] Modules as extensions by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16392
* [dotnet] [bidi] Provide type info immediately when serializing by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16397
* [bidi] [dotnet] Use events JsonTypeInfo for deserialization by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16402
* [dotnet] Replace lazy caching mechanism in BiDi's constructor with
simple initialization by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16399
* [py][build] Re-add Windows to CI workflows by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16396
* [dotnet] Help more .NETFramework projects to copy SM binaries to
output by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16406
* [dotnet] [bidi] Specific result type for any command by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16405
* [dotnet] [bidi] Deserialize message fast instead of defer it by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16403
* [dotnet] [bidi] Remove IEnumerable of command results by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16219
* [dotnet] Remove obsoleted FtpProxy by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16411
* [py] Configure WebSocket timeout and wait interval via ClientConfig by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16248
* [java] Rescuing the remote cause for session creation errors by
@​diemol in https://github.com/SeleniumHQ/selenium/pull/16418
* [py] Add test for BiDi request handlers with classic navigation by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16421
* [java] NullAway added by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16416
* [java] feat: Add native Java 11 HTTP client methods to HttpClient
interface by @​manuelsblanco in
https://github.com/SeleniumHQ/selenium/pull/16412
* [py] Raise NotImplementedError when deleting downloads in driver
subclass by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16423
* [java] refactor(remote/command): Merge overload's business logic by
@​nnnnoel in https://github.com/SeleniumHQ/selenium/pull/14469
* [py] Fix default rpId in virtual authenticator by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16428
* make augmentation of HasBiDi/HasDevTools lazy-loaded by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16338
* [py] Update docstrings style by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16427
* [py] Support Python 3.14 and drop Python 3.9 by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16342
* Removing FF guard for canListenToDownloadWillBeginEvent by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/16439
* Adapting the browser_protocol file fetching to the file structure
change. by @​diemol in https://github.com/SeleniumHQ/selenium/pull/16440
 ... (truncated)

## 4.36.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py]: close ipv6 port in case of error by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16165
* [docs] Update issue label in CONTRIBUTING.md by @​pallavigitwork in
https://github.com/SeleniumHQ/selenium/pull/16169
* [py][docs]: update dead API docs link to API reference in `index.rst`
by @​navin772 in https://github.com/SeleniumHQ/selenium/pull/16170
* [grid] close the HttpClient after the session is gone by @​joerg1985
in https://github.com/SeleniumHQ/selenium/pull/16182
* [py] Update docstring and comments in keys.py by @​Aidoni0797 in
https://github.com/SeleniumHQ/selenium/pull/16187
* [dotnet] [bidi] Simplify type naming of internal command parameters by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16188
* [py] Fix formatting by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16189
* [dotnet] [bidi] Support WebExtension module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15850
* [rb][BiDi] Create browser module, added user context related methods
by @​aguspe in https://github.com/SeleniumHQ/selenium/pull/15371
* [docs] Update bug report section in CONTRIBUTING.md by
@​pallavigitwork in https://github.com/SeleniumHQ/selenium/pull/16191
* [dotnet] Adding flag to enable SafariDriver logging. by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/16196
* [java] extend the scope of the properties of the HttpCommandExecutor
class by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16186
* [dotnet] [bidi] Serialize base64 encoded string directly to bytes by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16203
* [dotnet] [bidi] Make cookie expiry as TimeSpan by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16204
* [grid] Improve readTimeout in handle session between Router and Node
by @​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16163
* [py] Fix type annotation error and raise clearer error message by
@​Paresh-0007 in https://github.com/SeleniumHQ/selenium/pull/16174
* [java] Unifying select class by @​vicky-iv in
https://github.com/SeleniumHQ/selenium/pull/16220
* [rust] Update dependency rules_cc to v0.2.0 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16198
* [js] Update testing-library monorepo by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16173
* [js] Update dependency tmp to ^0.2.5 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16172
* [dotnet] Update dependency System.Text.Json to 8.0.6 by
@​renovate[bot] in https://github.com/SeleniumHQ/selenium/pull/16171
* [js] Update dependency react-router-dom to v6.30.1 by @​renovate[bot]
in https://github.com/SeleniumHQ/selenium/pull/16076
* [js] Update material-ui monorepo to v5.18.0 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16062
* [js] Update dependency ws to ^8.18.3 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16009
* [js] Update react monorepo by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/15949
* [java] Update dependency net.bytebuddy:byte-buddy to v1.17.7 by
@​renovate[bot] in https://github.com/SeleniumHQ/selenium/pull/16237
* [py] Update dependency charset-normalizer to v3.4.3 by @​renovate[bot]
in https://github.com/SeleniumHQ/selenium/pull/16239
* [py] Update dependency cryptography to v45.0.6 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16240
* Revert "[py] Update dependency charset-normalizer to v3.4.3" by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16242
* Revert "[py] Update dependency cryptography to v45.0.6" by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16243
* [py] Bump dependencies for dev and fix script by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16244
* [dotnet] Help old .net framework copy selenium manager to output by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16228
* [java] Add hooks around getScreenshotAs in WebDriverListener #​16232
by @​giulong in https://github.com/SeleniumHQ/selenium/pull/16233
* [py][bidi]: enable `history_updated` event test by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16236
* [py] Bump ruff version for linting/formatting by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16254
* [py][bidi]: use bidi `navigate` command in network tests by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/16251
* [dotnet] Fix find port for IPv4 only environments by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16216
* [dotnet] [bidi] Adjust cookie expiry type according spec (unix
seconds) by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16218
 ... (truncated)

## 4.35.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at 1c58e5028bc5eaa94b12b856c2d4a87efa5363f5 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [dotnet] [bidi] Get tree command returns GetTreeResult object by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15978
* [dotnet] [bidi] Initialize internal modules without Lazy by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15979
* [py] Bump dependencies for building distribution wheel by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15977
* bump zip version 2.6.1 -> 4.2.0 by @​MRTamalampudi in
https://github.com/SeleniumHQ/selenium/pull/15980
* [py][bidi]: add note for `enable_webextensions = False` by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/15981
* [py][bidi]: add high level API for script module - `pin`, `unpin` and
`execute` by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15936
* [py][java][rb][ci]: use pinned browsers in CI by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15987
* [java] Remove deprecated AppCacheStatus enum from the HTML5 package by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15973
* [java] Feat 14291/jspecify nullable annotation edge driver service by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15972
* [java] Fix Unicode value for OPTION key in Keys enum by @​iampopovich
in https://github.com/SeleniumHQ/selenium/pull/15966
* [dotnet][java][js][py][rb][rust] Update rules_jvm_external digest to
aca619b by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/15951
* [java] Removing old stream collectors required by Java 8 by @​zodac in
https://github.com/SeleniumHQ/selenium/pull/15523
* [java] Use static Patterns for regex-matching by @​zodac in
https://github.com/SeleniumHQ/selenium/pull/15499
* [java] Point made as immutable by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/15511
* [java] Feat 14291/jspecify nullable annotation chrome driver såervice
by @​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15998
* [py] Bump dev dependencies by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16002
* [grid] Add "URI" to the list of sort-by choices on Overview UI by
@​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16004
* [java] Add @​Nullable annotations to Firefox and Gecko driver service
by @​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15999
* [java] Add JSpecify nullable annotations to SafariDriverService
parameters by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16000
* [java] Add @​Nullable annotations to InternetExplorerDriverService
parameters by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16001
* use generics for AbstractFindByBuilder to avoid excessive casting by
@​asolntsev in https://github.com/SeleniumHQ/selenium/pull/15526
* [js] Update dependency @​emotion/styled to v11.14.1 by @​renovate[bot]
in https://github.com/SeleniumHQ/selenium/pull/15997
* [rust] Update which from 7.0.3 to 8.0.0 by @​musicinmybrain in
https://github.com/SeleniumHQ/selenium/pull/15965
* Fix various typos by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16012
* [java] JSpecify annotations for By locators by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/14372
* Fix email address in .mailmap by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16017
* Fix typos in javascript & rb by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16019
* [java] JSpecify annotations for capabilities by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/14397
* Fix various typos in comments by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16022
* [dotnet] Fix typos by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16032
* [dotnet] [bidi] Add UnhandledPromptBehavior option to create User
Context by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16034
* [py] Fix path in unit test so it works cross-platform by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16033
* [py][bidi]: implement bidi module - emulation by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15819
* [py] Fix API doc generation script and include BiDi Emulation docs by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16037
* [py] Allow free_port() to bind to IPv6 if IPv4 is unavailable by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16003
* [build] Update base URL for Edge web driver by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16057
* [rust] Update base URL for Edge web driver by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16056
 ... (truncated)

## 4.34.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at 2a4c61c498207b17cdb2f5f987c7c71dca146c2d -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [ci] Clear warning from Grid UI component tests by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/15783
* [py] Fix pytest_ignore_collect hook to respect --ignore by @​mgorny in
https://github.com/SeleniumHQ/selenium/pull/15787
* [py] Increase timeout in devtools test by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15793
* [py] Upgrade type hints by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15784
* [dotnet] [bidi] Add AcceptInsecureCerts and Proxy options when create
new user context by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15795
* [grid] Silent fail on invalid log level by @​Oxilod in
https://github.com/SeleniumHQ/selenium/pull/15796
* Bump setup-bazel action by @​p0deje in
https://github.com/SeleniumHQ/selenium/pull/15802
* Don't silence stderr in format.sh by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15804
* [dotnet] [bidi] Declare allowed nullable objects in constructors type
by @​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15809
* Fix type error for attribute in remote_connection.py by @​Bradltr95 in
https://github.com/SeleniumHQ/selenium/pull/15810
* [py] Lint Python with ruff by @​p0deje in
https://github.com/SeleniumHQ/selenium/pull/15811
* fixed error in selenium/webdriver/common/bidi/common.py:19 by
@​pallavigitwork in https://github.com/SeleniumHQ/selenium/pull/15814
* [py] Fix import for type hint by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15817
* [py] Bump ruff version by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15818
* [dotnet] [bidi] Simplify modules namespace for end users (breaking
change) by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15820
* [dotnet] Remove unnecessary stylecop files by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15824
* [py] Lint and format all python files by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15828
* [py][bidi]: add `enable_webextensions` option for chromium-based
browsers by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15794
* [py] Auto-generate Python API docs from code by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15822
* [py] Fix python API docs publishing at readthedocs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15832
* Change flag for Chrome/Edge headless mode in tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15831
* [py] Cleanup tox config by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15833
* [rb] Add support for beta chrome by @​aguspe in
https://github.com/SeleniumHQ/selenium/pull/15417
* Revert "[rb] Add support for beta chrome" by @​aguspe in
https://github.com/SeleniumHQ/selenium/pull/15837
* [py] Fix: Mypy type annotation errors by @​ShauryaDusht in
https://github.com/SeleniumHQ/selenium/pull/15841
* [py] New script to update Python dependencies by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15845
* fixed errors in browser.py for 15697 by @​pallavigitwork in
https://github.com/SeleniumHQ/selenium/pull/15847
* [py][bidi]: implement bidi permissions module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15830
* [py] Regeneratee py/docs/source/api.rst by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15856
* [dotnet] Align CS projects name to understand the editing context by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15843
* [py][bidi]: enable edge bidi storage test - `test_get_all_cookies` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/15859
* Caching the size/length in loops to slightly improve performance by
@​LuisOsv in https://github.com/SeleniumHQ/selenium/pull/15852
* Update exceptions.py by @​adolfoarmas in
https://github.com/SeleniumHQ/selenium/pull/15862
* Revert "Update exceptions.py" by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15864
* [py] Re-apply #​15862 by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15865
* [py] fix driver_element_finding_tests.py by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/15863
* [py] Fix another broken test by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15866
 ... (truncated)

## 4.33.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at 2c6aaad03a575cd93e4f063f91404e3ae66a7470 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Exclude devtools directory from type checking by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15695
* [py] Add clean_options fixture and remove all Python tests from
.skipped-tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15696
* [java][bidi]: enable tests for storage module for edge by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/15667
* [py][bidi]: add bidi storage module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15669
* [build] allow GitHub Actions runner to use 4GB for JVM Heap by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/15692
* update old freenode channel link to libera by @​t7ru in
https://github.com/SeleniumHQ/selenium/pull/15698
* fixing mypy error from #​15693 by @​bandophahita in
https://github.com/SeleniumHQ/selenium/pull/15705
* [java] Removing deprecated items in Require.java by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/15711
* [java] Removing RemoteStatus as it was deprecated. by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/15712
* [rb] move all guard and zipper tests to unit tests by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/15717
* [rust] Replace WMIC commands (deprecated) by WinAPI in Windows by
@​bonigarcia in https://github.com/SeleniumHQ/selenium/pull/15363
* [py][BiDi] use constant for LogLevel by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/15677
* Let firefox choose the bidi port by default by @​tomhughes in
https://github.com/SeleniumHQ/selenium/pull/15727
* [rb] Upgrade to Ruby 3.2 by @​p0deje in
https://github.com/SeleniumHQ/selenium/pull/15714
* [py] Missing Headers Assignment in Network Class’s _on_request() by
@​shbenzer in https://github.com/SeleniumHQ/selenium/pull/15736
* [py] correct type annotations of default-None params by
@​DeflateAwning in https://github.com/SeleniumHQ/selenium/pull/15341
* [py] Add missing 'id' property to ShadowRoot class by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15739
* [py] Bump Python package requirements to latest versions by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15731
* [py] Use ruff for linting and code formatting by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15746
* [py]: return `message` as part of exception in `execute` method by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/15751
* [py][tests]: check for .txt file in remote download test by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/15758
* [java] Removing deprecated `setScriptTimeout` and `pageLoadTimeout`.
by @​diemol in https://github.com/SeleniumHQ/selenium/pull/15764
* [py][bidi]: add bidi webExtension module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15749
* [py] Better error for downloads on local webdrivers by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15756
* [py] Add missing modules to python API docs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15779
* [ci] Workflow for Grid UI component tests by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/15778
* [grid] UI Sessions capability fields to display as additional columns
by @​VietND96 in https://github.com/SeleniumHQ/selenium/pull/15759
* [grid] UI Overview is able to see live preview per Node by @​VietND96
in https://github.com/SeleniumHQ/selenium/pull/15777

## New Contributors
* @​t7ru made their first contribution in
https://github.com/SeleniumHQ/selenium/pull/15698
* @​tomhughes made their first contribution in
https://github.com/SeleniumHQ/selenium/pull/15727
* @​DeflateAwning made their first contribution in
https://github.com/SeleniumHQ/selenium/pull/15341

</details>

**Full Changelog**:
https://github.com/SeleniumHQ/selenium/compare/selenium-4.32.0...selenium-4.33.0

## 4.32.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at d17c8aa95092dc25ae64f12e7abdc844cf3503f0 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Fix test args for --headless and --bidi by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15567
* [py] Only skip WebKit tests on Windows by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15470
* [dotnet] [bidi] Revisit some core functionality to deserialize without
intermediate `JsonElement` allocation by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15575
* [py] Fix broken test for chromedriver logging by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15579
* [py] Fix test for w3c touch pointer properties by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15580
* [py] Fix FedCM tests leaking state by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15583
* [dotnet] [bidi] Address BiDi's JSON converter AOT warnings by
@​RenderMichael in https://github.com/SeleniumHQ/selenium/pull/15390
* [dotnet] [bidi] Added missing GenericLogEntry log entry type in Script
module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15591
* [grid] Ignored options when they are prefixed, safari specif as well
by @​diemol in https://github.com/SeleniumHQ/selenium/pull/15574
* [py] Remove broken logo from Sphinx generated API docs by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15597
* [py] Fix PyTest configuration for WPEWebKit by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15602
* [py] Fix failing test for Edge logging by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15605
* [rb] Add PrintOptions Implementation for Ruby WebDriver by @​yvsvarma
in https://github.com/SeleniumHQ/selenium/pull/15158
* [py] BiDi Network implementation of Intercepts and Auth in Python by
@​shbenzer in https://github.com/SeleniumHQ/selenium/pull/14592
* [py] Use XWayland for internal Python Firefox tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15601
* [py] Use mock.patch for environment variables in tests by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15607
* [ruby] fix lint for print_options.rb by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/15608
* [py] Configure readthedocs publishing for Python API docs by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15614
* [py] Fix select being able to select options hidden by css rules by
@​FFederi in https://github.com/SeleniumHQ/selenium/pull/15135
* [py][bidi]: Implement BiDi browser module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15616
* [dotnet] [bidi] Combine network interception to apply rules (breaking
change) by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15603
* [dotnet] [bidi] Add strongly-typed `LocalValue.ConvertFrom` overloads
by @​RenderMichael in https://github.com/SeleniumHQ/selenium/pull/15532
* [py] Add missing modules to Python API docs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15624
* [dotnet] [bidi] Do not throw when CallFunction or Evaluate return
exceptional result (breaking change) by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/15521
* [py] Skip bidi tests on browsers that don't support bidi by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15625
* [py] complete
`test_should_throw_an_exception_if_an_alert_has_not_been_dealt_with_and_dismiss_the_alert`
by @​Delta456 in https://github.com/SeleniumHQ/selenium/pull/15559
* [py] Remove unused xfail on chrome/edge service tests by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15637
* [py] Adjust xfail markers for window size/position tests by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15638
* [py] Call service.stop() when session can't be started by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15636
* [dotnet] [bidi] Reuse memory when receiving websocket messages by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15640
* [py] Remove logging API for non-Chromium browsers by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15641
* [py] Raise TypeError when creating webdriver.Remote() without options
by @​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15619
* [py] Upgrade dependencies for mypy tox environment by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15642
* [py] Fix Remote Firefox tests on Linux/Wayland by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15648
* [dotnet] Enhance Selenium Manager platform detection by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/15649
* [dotnet] Use namespace file scoped by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15651
* [py] Fix flaky WebDriverWait tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15650
 ... (truncated)

Commits viewable in [compare
view](https://github.com/SeleniumHQ/selenium/compare/selenium-4.31.0...selenium-4.41.0).
</details>

Updated [Selenium.WebDriver](https://github.com/SeleniumHQ/selenium)
from 4.31.0 to 4.41.0.

<details>
<summary>Release notes</summary>

_Sourced from [Selenium.WebDriver's
releases](https://github.com/SeleniumHQ/selenium/releases)._

## 4.41.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>

<!-- Release notes generated using configuration in .github/release.yml
at selenium-4.41.0 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Remove type stub packages from runtime dependencies by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16945
* Canonical approach to supporting AI agent directions by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16735
* [build] Pre-release workflow improvements by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16946
* [build] Prevent nightly releases during release window by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16948
* [build] Fix Bazel NuGet push implementation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16950
* [build] Release workflow improvements by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16947
* [build] Fix Bazel JSDocs implementation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16949
* [build] Create config files from environment variables for publishing
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16951
* [js] create task to update dependencies by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16942
* [build] Java release improvements and build verification tasks by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16952
* [py] integrate mypy type checking with Bazel by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16958
* [build] Migrate workflows to use centralized bazel.yml by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16955
* [dotnet] [bidi] Simplify context aware command options by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16954
* [build] simplify release.yml: remove draft, build once during publish
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16960
* [dotnet] [bidi] AOT safe json converter for `Input.Origin` class by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16962
* [dotnet] [bidi] AOT safe json converter for `OptionalConverter` by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16963
* [dotnet] [bidi] Null guard for event handlers by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16967
* [java] Improve error message for died grid by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16938
* [build] combine pre-release dependency updates by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16973
* [rb] remove stored atoms these get generated by build by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16971
* [dotnet] [bidi] Unignore some internal tests by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16968
* [build] run ruff on python files outside py directory by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16957
* [py] Fix return type hint for `alert_is_present` by @​nemowang2003 in
https://github.com/SeleniumHQ/selenium/pull/16975
* Replace hardcoded bazel-selenium references with dynamic path
resolution by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16976
* No More CrazyFun! by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16972
* [build] Remove update_gh_pages in favor of CI workflow by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16977
* [build] Remove legacy rake helpers and unused code by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16978
* [py] make bazel test target names consistent with other languages by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16969
* [dotnet] [bidi] Fix namespace for Permissions module by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16981
* [dotnet] [bidi] Hide Broker as internal implementation by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16982
* [dotnet] [bidi] Refactor BiDi module initialization to pass BiDi
explicitly by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16983
* [build] Add DocFX updater script by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16980
* [build] add reusable commit-changes.yml workflow by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16965
* [java] fix JSON parsing of numbers with exponent by @​joerg1985 in
https://github.com/SeleniumHQ/selenium/pull/16961
* [build] Skip macOS-only archive rules on unsupported platforms by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16985
* [build] Split Rakefile into per-language task files by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16979
* Implement fast bazel target lookup with index caching by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16974
* [build] Remove git.add() calls from rake tasks by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16994
* [js] Add eslint binary target for selenium-webdriver by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16992
 ... (truncated)

## 4.40.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images…
PhilipWoulfe added a commit to PhilipWoulfe/F1Competition that referenced this pull request Mar 16, 2026
Updated [Selenium.WebDriver](https://github.com/SeleniumHQ/selenium)
from 4.31.0 to 4.41.0.

<details>
<summary>Release notes</summary>

_Sourced from [Selenium.WebDriver's
releases](https://github.com/SeleniumHQ/selenium/releases)._

## 4.41.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>

<!-- Release notes generated using configuration in .github/release.yml
at selenium-4.41.0 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Remove type stub packages from runtime dependencies by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16945
* Canonical approach to supporting AI agent directions by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16735
* [build] Pre-release workflow improvements by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16946
* [build] Prevent nightly releases during release window by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16948
* [build] Fix Bazel NuGet push implementation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16950
* [build] Release workflow improvements by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16947
* [build] Fix Bazel JSDocs implementation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16949
* [build] Create config files from environment variables for publishing
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16951
* [js] create task to update dependencies by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16942
* [build] Java release improvements and build verification tasks by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16952
* [py] integrate mypy type checking with Bazel by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16958
* [build] Migrate workflows to use centralized bazel.yml by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16955
* [dotnet] [bidi] Simplify context aware command options by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16954
* [build] simplify release.yml: remove draft, build once during publish
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16960
* [dotnet] [bidi] AOT safe json converter for `Input.Origin` class by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16962
* [dotnet] [bidi] AOT safe json converter for `OptionalConverter` by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16963
* [dotnet] [bidi] Null guard for event handlers by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16967
* [java] Improve error message for died grid by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16938
* [build] combine pre-release dependency updates by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16973
* [rb] remove stored atoms these get generated by build by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16971
* [dotnet] [bidi] Unignore some internal tests by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16968
* [build] run ruff on python files outside py directory by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16957
* [py] Fix return type hint for `alert_is_present` by @​nemowang2003 in
https://github.com/SeleniumHQ/selenium/pull/16975
* Replace hardcoded bazel-selenium references with dynamic path
resolution by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16976
* No More CrazyFun! by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16972
* [build] Remove update_gh_pages in favor of CI workflow by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16977
* [build] Remove legacy rake helpers and unused code by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16978
* [py] make bazel test target names consistent with other languages by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16969
* [dotnet] [bidi] Fix namespace for Permissions module by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16981
* [dotnet] [bidi] Hide Broker as internal implementation by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16982
* [dotnet] [bidi] Refactor BiDi module initialization to pass BiDi
explicitly by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16983
* [build] Add DocFX updater script by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16980
* [build] add reusable commit-changes.yml workflow by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16965
* [java] fix JSON parsing of numbers with exponent by @​joerg1985 in
https://github.com/SeleniumHQ/selenium/pull/16961
* [build] Skip macOS-only archive rules on unsupported platforms by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16985
* [build] Split Rakefile into per-language task files by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16979
* Implement fast bazel target lookup with index caching by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16974
* [build] Remove git.add() calls from rake tasks by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16994
* [js] Add eslint binary target for selenium-webdriver by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/16992
 ... (truncated)

## 4.40.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [dotnet] Modernize `EnvironmentManager`, standardize assembly teardown
by @​RenderMichael in https://github.com/SeleniumHQ/selenium/pull/15551
* [java] Refactor tests by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16684
* [ci]: bump cargo lockfile by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16698
* [java][BiDi] change emulation commands return type to void by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16699
* [java] simplify strings processing by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/15309
* Fix few more flaky ruby tests by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16695
* [bazel] Switch to custom `closure_js_deps` rule by @​shs96c in
https://github.com/SeleniumHQ/selenium/pull/16571
* [dotnet] [bidi] Support SetScreenSettingsOverrideAsync method in
Emulation module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16704
* [dotnet] Modernize code patterns in test suites by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16701
* use proper AssertJ asserts that generate a useful error message by
@​asolntsev in https://github.com/SeleniumHQ/selenium/pull/16707
* fix Java language level in IDEA by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16708
* [py] Properly verify Selenium Manager exists by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16711
* fix flaky Ruby test `element_spec.rb` by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16709
* [java][BiDi] implement `emulation.setScreenOrientationOverride` by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16705
* [rb] add synchronization and error handling for socket interactions by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16487
* [rb] mark low level bidi implementation as private api by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16475
* [rb] ensure driver process is always stopped by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/15635
* [rb] create user-friendly method for enabling bidi by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/14284
* [dotnet] [bidi] Added missing Script.RemoteReference LocaclValue type
by @​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16717
* [dotnet] Standardize `IEquatable<T>` implementations across types
overriding Equals by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16665
* [dotnet] Fix nullability warnings in `WebDriver` by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16662
* [py] Don't compare object identity in conftest by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16723
* #​16720 avoid failing because of temporary Chrome internal files by
@​asolntsev in https://github.com/SeleniumHQ/selenium/pull/16722
* [rb] Add force encoding to remove warnings caused by json 3.0 by
@​aguspe in https://github.com/SeleniumHQ/selenium/pull/16728
* [py] Remove deprecated FTP proxy support by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16721
* [py] Bump ruff and mypy versions by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16737
* Create target directories before copying file by @​MohabMohie in
https://github.com/SeleniumHQ/selenium/pull/16739
* [bazel+closure]: Vendor the version of closure library we use by
@​shs96c in https://github.com/SeleniumHQ/selenium/pull/16742
* [closure] Fix failing `//javascript/atoms:test-*` targets by @​shs96c
in https://github.com/SeleniumHQ/selenium/pull/16749
* Avoid sleep in tests by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16713
* [bazel] Bump `rules_closure` and google closure libary to latest
release by @​shs96c in https://github.com/SeleniumHQ/selenium/pull/16755
* [refactor] call WebDriverException constructor instead of using
reflection by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16763
* [build] Pin Browsers in Bazel by default by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16743
* [build] build selenium manager for tests by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16736
* [refactor] replace JUnit assertions by AssertJ by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16765
* [py] Add LocalWebDriver base class by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16730
* Fix bug in FileHandler: it always failed on MacOS by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16771
* [java] add missing bazel artifacts by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16773
 ... (truncated)

## 4.39.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [atoms] fix text node children are always considered as displayed
#​16284 by @​joerg1985 in
https://github.com/SeleniumHQ/selenium/pull/16329
* [grid] Enhance UI with theme integration and improved status
indicators by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/16512
* [py][bidi]: add emulation command - `set_locale_override` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16504
* [py][bidi]: add emulation command `set_scripting_enabled` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16513
* [py] Update docstrings to google pydoc format by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16511
* [java][BiDi] implement `browsingContext.downloadEnd` event by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16347
* Fix typo and minor formatting changes in README.md by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16523
* [py] Update docstrings (remove reST leftovers and resolve D200) by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/16525
* [py] Fix docstring formatting and apply ruff linting rules by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16527
* [py] Fix Ruff D417 warnings in docstrings by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16535
* [py] Fix ruff D415 warnings in docstrings by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16536
* [py][bidi]: add `set_screen_orientation_override` command in Emulation
by @​navin772 in https://github.com/SeleniumHQ/selenium/pull/16522
* [py] Fix D205 ruff warnings for docstrings and add type hints by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/16537
* [py][bidi]: add `set_download_behavior` command by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16556
* [py] Bump pytest and dev dependencies by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16572
* [bazel] Move `rules_rust` to `bzlmod` by @​shs96c in
https://github.com/SeleniumHQ/selenium/pull/16566
* [ci] Make a PR for updating mirror file instead of pushing directly to
trunk by @​bonigarcia in
https://github.com/SeleniumHQ/selenium/pull/16579
* [ci] Update mirror info (2025-11-11T15:26:46Z) by
@​github-actions[bot] in
https://github.com/SeleniumHQ/selenium/pull/16578
* [ci] Revert latest changes related to the mirror workflow by
@​bonigarcia in https://github.com/SeleniumHQ/selenium/pull/16580
* [java]: refactor request interception tests and handle CORS by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16585
* [py][bidi]: enable download event tests for firefox by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16587
* [py] Fix more type annotations by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16551
* [java][BiDi] implement `emulation.setTimezoneOverride` by @​Delta456
in https://github.com/SeleniumHQ/selenium/pull/16530
* [grid] Minimum Docker API 1.44 for Docker Engine v29+ in Dynamic Grid
by @​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16591
* Show file modification time by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16589
* [py][bidi]: add emulation command `set_user_agent_override` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16595
* [grid] Improve Docker client for Dynamic Grid by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/16596
* [py]: reuse driver in case of bidi tests by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16597
* [grid] Improve browser container labels and naming in Dynamic Grid by
@​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16599
* [build] Upgrade rules_dotnet to 0.20.5 by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16592
* [dotnet] [bidi] Simplify namespace for communications by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16602
* [py] Improve type hints with union syntax and native types by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16590
* [py] Use double quotes in generate.py by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/16607
* [ci] Use pagination in mirror workflow to get all Selenium releases by
@​bonigarcia in https://github.com/SeleniumHQ/selenium/pull/16605
* [dotnet] Generate atoms statically by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16608
* [nodejs] Update dev dependencies to fix vulnerabilities by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16610
* [java][BiDi] emulation: allow passing null to GeolocationOverride by
@​Delta456 in https://github.com/SeleniumHQ/selenium/pull/16594
* [grid] Update container label `compose.oneoff` in Dynamic Grid by
@​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16613
 ... (truncated)

## 4.38.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [dotnet] [bidi] Avoid using JsonInclude attribute to include optional
property for DTO by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16413
* [rb] Bump prism to 1.6.0 by @​Earlopain in
https://github.com/SeleniumHQ/selenium/pull/16450
* [java] JSpecify annotations for `ExecuteMethod` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16464
* [rb] Fix Network issue by removing nil values on network requests by
@​aguspe in https://github.com/SeleniumHQ/selenium/pull/16442
* [py] Replaced :param: and :args: from docstrings by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16469
* [java] JSpecify annotations for `org.openqa.selenium.federatedcredent…
by @​mk868 in https://github.com/SeleniumHQ/selenium/pull/16461
* [java] JSpecify annotations for `org.openqa.selenium.interactions` by
@​mk868 in https://github.com/SeleniumHQ/selenium/pull/16462
* [java][rb] Remove cruft from old Travis CI environment by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16473
* [java] JSpecify annotations for `org.openqa.selenium.net` by @​mk868
in https://github.com/SeleniumHQ/selenium/pull/16463
* [rb] remove deprecated classes for previous implementation of log han…
by @​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16474
* [build] minimize number of ruby targets run with bidi by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16477
* [java] JSpecify annotations for `Credential` and `MBean` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16481
* [java] JSpecify annotations for `ScriptKey` and `UnpinnedScriptKey` by
@​mk868 in https://github.com/SeleniumHQ/selenium/pull/16483
* [java] JSpecify annotations for `FileDetector` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16482
* [java] JSpecify annotations for `ExpectedCondition` by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16489
* [java] JSpecify annotations for `Response` `SessionId` `HttpSessionId`
by @​mk868 in https://github.com/SeleniumHQ/selenium/pull/16490
* [rb][build] improve ruby local_dev generation by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16495
* [build] removing test_tag_filter tag that isn't being used anywhere by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16496
* [rb][build] disable dev shm for Chrome and Edge on RBE by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16497
* [rb] update syntax with rspec linter by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16498
* [java][bidi]: add test for `onHistoryUpdated` event by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16293
* [py] Bump version of ruff formatter/linter by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16502
* [rust] Fixe Edge version test by @​bonigarcia in
https://github.com/SeleniumHQ/selenium/pull/16501
* [py][bidi]: add `set_timezone_override` command in emulation by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/16500
* [py] Cleanup and convert more doctrings to google-style by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/16503
* [build] fix update-documentation workflow by @​titusfortner in
https://github.com/SeleniumHQ/selenium/pull/16505
* fix workflows for updating documentation from stage release by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/16506

</details>

**Full Changelog**:
https://github.com/SeleniumHQ/selenium/compare/selenium-4.37.0...selenium-4.38.0

## 4.37.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Re-add defaults for Chromium kwargs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16372
* Splitting stress tests by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/16374
* [rb] Update Chrome/Edge args for test environment by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16376
* [dotnet] [bidi] Emulation module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16380
* [py] Remove old test xfail markers from Travis CI by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16377
* [dotnet] [bidi] Implement browsing context download events by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16382
* [dotnet] [bidi] Support browser SetDownloadBehaviour command by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16383
* [dotnet] [bidi] Support network SetExtraHeaders command by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16384
* [py][build] Python CI - add unit test job and windows integration
tests to GH runners by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16362
* [java] Linux ARM "os.arch" system property is "aarch64" by @​mkurz in
https://github.com/SeleniumHQ/selenium/pull/16381
* [dotnet] [bidi] AOT safe enums serialization by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16386
* [dotnet] Handle negative zero BiDi response by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/15898
* [dotnet] Move JSON converter attributes from centralized options into
their respective types by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16393
* [py] Fix Selenium Manager tests on Windows by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16391
* [py] Fix chromedriver/msedgedriver service tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16395
* [dotnet] [bidi] Modules as extensions by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16392
* [dotnet] [bidi] Provide type info immediately when serializing by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16397
* [bidi] [dotnet] Use events JsonTypeInfo for deserialization by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16402
* [dotnet] Replace lazy caching mechanism in BiDi's constructor with
simple initialization by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/16399
* [py][build] Re-add Windows to CI workflows by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16396
* [dotnet] Help more .NETFramework projects to copy SM binaries to
output by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16406
* [dotnet] [bidi] Specific result type for any command by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16405
* [dotnet] [bidi] Deserialize message fast instead of defer it by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16403
* [dotnet] [bidi] Remove IEnumerable of command results by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/16219
* [dotnet] Remove obsoleted FtpProxy by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16411
* [py] Configure WebSocket timeout and wait interval via ClientConfig by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16248
* [java] Rescuing the remote cause for session creation errors by
@​diemol in https://github.com/SeleniumHQ/selenium/pull/16418
* [py] Add test for BiDi request handlers with classic navigation by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16421
* [java] NullAway added by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/16416
* [java] feat: Add native Java 11 HTTP client methods to HttpClient
interface by @​manuelsblanco in
https://github.com/SeleniumHQ/selenium/pull/16412
* [py] Raise NotImplementedError when deleting downloads in driver
subclass by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16423
* [java] refactor(remote/command): Merge overload's business logic by
@​nnnnoel in https://github.com/SeleniumHQ/selenium/pull/14469
* [py] Fix default rpId in virtual authenticator by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16428
* make augmentation of HasBiDi/HasDevTools lazy-loaded by @​asolntsev in
https://github.com/SeleniumHQ/selenium/pull/16338
* [py] Update docstrings style by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16427
* [py] Support Python 3.14 and drop Python 3.9 by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16342
* Removing FF guard for canListenToDownloadWillBeginEvent by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/16439
* Adapting the browser_protocol file fetching to the file structure
change. by @​diemol in https://github.com/SeleniumHQ/selenium/pull/16440
 ... (truncated)

## 4.36.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>


<!-- Release notes generated using configuration in .github/release.yml
at trunk -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py]: close ipv6 port in case of error by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16165
* [docs] Update issue label in CONTRIBUTING.md by @​pallavigitwork in
https://github.com/SeleniumHQ/selenium/pull/16169
* [py][docs]: update dead API docs link to API reference in `index.rst`
by @​navin772 in https://github.com/SeleniumHQ/selenium/pull/16170
* [grid] close the HttpClient after the session is gone by @​joerg1985
in https://github.com/SeleniumHQ/selenium/pull/16182
* [py] Update docstring and comments in keys.py by @​Aidoni0797 in
https://github.com/SeleniumHQ/selenium/pull/16187
* [dotnet] [bidi] Simplify type naming of internal command parameters by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16188
* [py] Fix formatting by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16189
* [dotnet] [bidi] Support WebExtension module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15850
* [rb][BiDi] Create browser module, added user context related methods
by @​aguspe in https://github.com/SeleniumHQ/selenium/pull/15371
* [docs] Update bug report section in CONTRIBUTING.md by
@​pallavigitwork in https://github.com/SeleniumHQ/selenium/pull/16191
* [dotnet] Adding flag to enable SafariDriver logging. by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/16196
* [java] extend the scope of the properties of the HttpCommandExecutor
class by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16186
* [dotnet] [bidi] Serialize base64 encoded string directly to bytes by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16203
* [dotnet] [bidi] Make cookie expiry as TimeSpan by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16204
* [grid] Improve readTimeout in handle session between Router and Node
by @​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16163
* [py] Fix type annotation error and raise clearer error message by
@​Paresh-0007 in https://github.com/SeleniumHQ/selenium/pull/16174
* [java] Unifying select class by @​vicky-iv in
https://github.com/SeleniumHQ/selenium/pull/16220
* [rust] Update dependency rules_cc to v0.2.0 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16198
* [js] Update testing-library monorepo by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16173
* [js] Update dependency tmp to ^0.2.5 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16172
* [dotnet] Update dependency System.Text.Json to 8.0.6 by
@​renovate[bot] in https://github.com/SeleniumHQ/selenium/pull/16171
* [js] Update dependency react-router-dom to v6.30.1 by @​renovate[bot]
in https://github.com/SeleniumHQ/selenium/pull/16076
* [js] Update material-ui monorepo to v5.18.0 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16062
* [js] Update dependency ws to ^8.18.3 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16009
* [js] Update react monorepo by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/15949
* [java] Update dependency net.bytebuddy:byte-buddy to v1.17.7 by
@​renovate[bot] in https://github.com/SeleniumHQ/selenium/pull/16237
* [py] Update dependency charset-normalizer to v3.4.3 by @​renovate[bot]
in https://github.com/SeleniumHQ/selenium/pull/16239
* [py] Update dependency cryptography to v45.0.6 by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/16240
* Revert "[py] Update dependency charset-normalizer to v3.4.3" by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16242
* Revert "[py] Update dependency cryptography to v45.0.6" by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16243
* [py] Bump dependencies for dev and fix script by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16244
* [dotnet] Help old .net framework copy selenium manager to output by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/16228
* [java] Add hooks around getScreenshotAs in WebDriverListener #​16232
by @​giulong in https://github.com/SeleniumHQ/selenium/pull/16233
* [py][bidi]: enable `history_updated` event test by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/16236
* [py] Bump ruff version for linting/formatting by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16254
* [py][bidi]: use bidi `navigate` command in network tests by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/16251
* [dotnet] Fix find port for IPv4 only environments by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16216
* [dotnet] [bidi] Adjust cookie expiry type according spec (unix
seconds) by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16218
 ... (truncated)

## 4.35.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at 1c58e5028bc5eaa94b12b856c2d4a87efa5363f5 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [dotnet] [bidi] Get tree command returns GetTreeResult object by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15978
* [dotnet] [bidi] Initialize internal modules without Lazy by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15979
* [py] Bump dependencies for building distribution wheel by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15977
* bump zip version 2.6.1 -> 4.2.0 by @​MRTamalampudi in
https://github.com/SeleniumHQ/selenium/pull/15980
* [py][bidi]: add note for `enable_webextensions = False` by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/15981
* [py][bidi]: add high level API for script module - `pin`, `unpin` and
`execute` by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15936
* [py][java][rb][ci]: use pinned browsers in CI by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15987
* [java] Remove deprecated AppCacheStatus enum from the HTML5 package by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15973
* [java] Feat 14291/jspecify nullable annotation edge driver service by
@​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15972
* [java] Fix Unicode value for OPTION key in Keys enum by @​iampopovich
in https://github.com/SeleniumHQ/selenium/pull/15966
* [dotnet][java][js][py][rb][rust] Update rules_jvm_external digest to
aca619b by @​renovate[bot] in
https://github.com/SeleniumHQ/selenium/pull/15951
* [java] Removing old stream collectors required by Java 8 by @​zodac in
https://github.com/SeleniumHQ/selenium/pull/15523
* [java] Use static Patterns for regex-matching by @​zodac in
https://github.com/SeleniumHQ/selenium/pull/15499
* [java] Point made as immutable by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/15511
* [java] Feat 14291/jspecify nullable annotation chrome driver såervice
by @​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15998
* [py] Bump dev dependencies by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16002
* [grid] Add "URI" to the list of sort-by choices on Overview UI by
@​VietND96 in https://github.com/SeleniumHQ/selenium/pull/16004
* [java] Add @​Nullable annotations to Firefox and Gecko driver service
by @​iampopovich in https://github.com/SeleniumHQ/selenium/pull/15999
* [java] Add JSpecify nullable annotations to SafariDriverService
parameters by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16000
* [java] Add @​Nullable annotations to InternetExplorerDriverService
parameters by @​iampopovich in
https://github.com/SeleniumHQ/selenium/pull/16001
* use generics for AbstractFindByBuilder to avoid excessive casting by
@​asolntsev in https://github.com/SeleniumHQ/selenium/pull/15526
* [js] Update dependency @​emotion/styled to v11.14.1 by @​renovate[bot]
in https://github.com/SeleniumHQ/selenium/pull/15997
* [rust] Update which from 7.0.3 to 8.0.0 by @​musicinmybrain in
https://github.com/SeleniumHQ/selenium/pull/15965
* Fix various typos by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16012
* [java] JSpecify annotations for By locators by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/14372
* Fix email address in .mailmap by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/16017
* Fix typos in javascript & rb by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16019
* [java] JSpecify annotations for capabilities by @​mk868 in
https://github.com/SeleniumHQ/selenium/pull/14397
* Fix various typos in comments by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16022
* [dotnet] Fix typos by @​noritaka1166 in
https://github.com/SeleniumHQ/selenium/pull/16032
* [dotnet] [bidi] Add UnhandledPromptBehavior option to create User
Context by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16034
* [py] Fix path in unit test so it works cross-platform by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/16033
* [py][bidi]: implement bidi module - emulation by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15819
* [py] Fix API doc generation script and include BiDi Emulation docs by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16037
* [py] Allow free_port() to bind to IPv6 if IPv4 is unavailable by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/16003
* [build] Update base URL for Edge web driver by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16057
* [rust] Update base URL for Edge web driver by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/16056
 ... (truncated)

## 4.34.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at 2a4c61c498207b17cdb2f5f987c7c71dca146c2d -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [ci] Clear warning from Grid UI component tests by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/15783
* [py] Fix pytest_ignore_collect hook to respect --ignore by @​mgorny in
https://github.com/SeleniumHQ/selenium/pull/15787
* [py] Increase timeout in devtools test by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15793
* [py] Upgrade type hints by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15784
* [dotnet] [bidi] Add AcceptInsecureCerts and Proxy options when create
new user context by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15795
* [grid] Silent fail on invalid log level by @​Oxilod in
https://github.com/SeleniumHQ/selenium/pull/15796
* Bump setup-bazel action by @​p0deje in
https://github.com/SeleniumHQ/selenium/pull/15802
* Don't silence stderr in format.sh by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15804
* [dotnet] [bidi] Declare allowed nullable objects in constructors type
by @​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15809
* Fix type error for attribute in remote_connection.py by @​Bradltr95 in
https://github.com/SeleniumHQ/selenium/pull/15810
* [py] Lint Python with ruff by @​p0deje in
https://github.com/SeleniumHQ/selenium/pull/15811
* fixed error in selenium/webdriver/common/bidi/common.py:19 by
@​pallavigitwork in https://github.com/SeleniumHQ/selenium/pull/15814
* [py] Fix import for type hint by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15817
* [py] Bump ruff version by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15818
* [dotnet] [bidi] Simplify modules namespace for end users (breaking
change) by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15820
* [dotnet] Remove unnecessary stylecop files by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15824
* [py] Lint and format all python files by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15828
* [py][bidi]: add `enable_webextensions` option for chromium-based
browsers by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15794
* [py] Auto-generate Python API docs from code by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15822
* [py] Fix python API docs publishing at readthedocs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15832
* Change flag for Chrome/Edge headless mode in tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15831
* [py] Cleanup tox config by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15833
* [rb] Add support for beta chrome by @​aguspe in
https://github.com/SeleniumHQ/selenium/pull/15417
* Revert "[rb] Add support for beta chrome" by @​aguspe in
https://github.com/SeleniumHQ/selenium/pull/15837
* [py] Fix: Mypy type annotation errors by @​ShauryaDusht in
https://github.com/SeleniumHQ/selenium/pull/15841
* [py] New script to update Python dependencies by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15845
* fixed errors in browser.py for 15697 by @​pallavigitwork in
https://github.com/SeleniumHQ/selenium/pull/15847
* [py][bidi]: implement bidi permissions module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15830
* [py] Regeneratee py/docs/source/api.rst by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15856
* [dotnet] Align CS projects name to understand the editing context by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15843
* [py][bidi]: enable edge bidi storage test - `test_get_all_cookies` by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/15859
* Caching the size/length in loops to slightly improve performance by
@​LuisOsv in https://github.com/SeleniumHQ/selenium/pull/15852
* Update exceptions.py by @​adolfoarmas in
https://github.com/SeleniumHQ/selenium/pull/15862
* Revert "Update exceptions.py" by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15864
* [py] Re-apply #​15862 by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15865
* [py] fix driver_element_finding_tests.py by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/15863
* [py] Fix another broken test by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15866
 ... (truncated)

## 4.33.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at 2c6aaad03a575cd93e4f063f91404e3ae66a7470 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Exclude devtools directory from type checking by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15695
* [py] Add clean_options fixture and remove all Python tests from
.skipped-tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15696
* [java][bidi]: enable tests for storage module for edge by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/15667
* [py][bidi]: add bidi storage module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15669
* [build] allow GitHub Actions runner to use 4GB for JVM Heap by
@​titusfortner in https://github.com/SeleniumHQ/selenium/pull/15692
* update old freenode channel link to libera by @​t7ru in
https://github.com/SeleniumHQ/selenium/pull/15698
* fixing mypy error from #​15693 by @​bandophahita in
https://github.com/SeleniumHQ/selenium/pull/15705
* [java] Removing deprecated items in Require.java by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/15711
* [java] Removing RemoteStatus as it was deprecated. by @​diemol in
https://github.com/SeleniumHQ/selenium/pull/15712
* [rb] move all guard and zipper tests to unit tests by @​titusfortner
in https://github.com/SeleniumHQ/selenium/pull/15717
* [rust] Replace WMIC commands (deprecated) by WinAPI in Windows by
@​bonigarcia in https://github.com/SeleniumHQ/selenium/pull/15363
* [py][BiDi] use constant for LogLevel by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/15677
* Let firefox choose the bidi port by default by @​tomhughes in
https://github.com/SeleniumHQ/selenium/pull/15727
* [rb] Upgrade to Ruby 3.2 by @​p0deje in
https://github.com/SeleniumHQ/selenium/pull/15714
* [py] Missing Headers Assignment in Network Class’s _on_request() by
@​shbenzer in https://github.com/SeleniumHQ/selenium/pull/15736
* [py] correct type annotations of default-None params by
@​DeflateAwning in https://github.com/SeleniumHQ/selenium/pull/15341
* [py] Add missing 'id' property to ShadowRoot class by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15739
* [py] Bump Python package requirements to latest versions by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15731
* [py] Use ruff for linting and code formatting by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15746
* [py]: return `message` as part of exception in `execute` method by
@​navin772 in https://github.com/SeleniumHQ/selenium/pull/15751
* [py][tests]: check for .txt file in remote download test by @​navin772
in https://github.com/SeleniumHQ/selenium/pull/15758
* [java] Removing deprecated `setScriptTimeout` and `pageLoadTimeout`.
by @​diemol in https://github.com/SeleniumHQ/selenium/pull/15764
* [py][bidi]: add bidi webExtension module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15749
* [py] Better error for downloads on local webdrivers by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15756
* [py] Add missing modules to python API docs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15779
* [ci] Workflow for Grid UI component tests by @​VietND96 in
https://github.com/SeleniumHQ/selenium/pull/15778
* [grid] UI Sessions capability fields to display as additional columns
by @​VietND96 in https://github.com/SeleniumHQ/selenium/pull/15759
* [grid] UI Overview is able to see live preview per Node by @​VietND96
in https://github.com/SeleniumHQ/selenium/pull/15777

## New Contributors
* @​t7ru made their first contribution in
https://github.com/SeleniumHQ/selenium/pull/15698
* @​tomhughes made their first contribution in
https://github.com/SeleniumHQ/selenium/pull/15727
* @​DeflateAwning made their first contribution in
https://github.com/SeleniumHQ/selenium/pull/15341

</details>

**Full Changelog**:
https://github.com/SeleniumHQ/selenium/compare/selenium-4.32.0...selenium-4.33.0

## 4.32.0

## Detailed Changelogs by Component

<img src="https://www.selenium.dev/images/programming/java.svg"
width="20" height="20">
**[Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/python.svg" width="20"
height="20">
**[Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/dotnet.svg" width="20"
height="20">
**[DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/ruby.svg" width="20"
height="20">
**[Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)**
&nbsp;&nbsp;&nbsp; | &nbsp;&nbsp;&nbsp;<img
src="https://www.selenium.dev/images/programming/javascript.svg"
width="20" height="20">
**[JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md)**
<br>



<!-- Release notes generated using configuration in .github/release.yml
at d17c8aa95092dc25ae64f12e7abdc844cf3503f0 -->

## What's Changed
<details>
<summary>Click to see all the changes included in this release</summary>

* [py] Fix test args for --headless and --bidi by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15567
* [py] Only skip WebKit tests on Windows by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15470
* [dotnet] [bidi] Revisit some core functionality to deserialize without
intermediate `JsonElement` allocation by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15575
* [py] Fix broken test for chromedriver logging by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15579
* [py] Fix test for w3c touch pointer properties by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15580
* [py] Fix FedCM tests leaking state by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15583
* [dotnet] [bidi] Address BiDi's JSON converter AOT warnings by
@​RenderMichael in https://github.com/SeleniumHQ/selenium/pull/15390
* [dotnet] [bidi] Added missing GenericLogEntry log entry type in Script
module by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15591
* [grid] Ignored options when they are prefixed, safari specif as well
by @​diemol in https://github.com/SeleniumHQ/selenium/pull/15574
* [py] Remove broken logo from Sphinx generated API docs by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15597
* [py] Fix PyTest configuration for WPEWebKit by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15602
* [py] Fix failing test for Edge logging by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15605
* [rb] Add PrintOptions Implementation for Ruby WebDriver by @​yvsvarma
in https://github.com/SeleniumHQ/selenium/pull/15158
* [py] BiDi Network implementation of Intercepts and Auth in Python by
@​shbenzer in https://github.com/SeleniumHQ/selenium/pull/14592
* [py] Use XWayland for internal Python Firefox tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15601
* [py] Use mock.patch for environment variables in tests by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15607
* [ruby] fix lint for print_options.rb by @​Delta456 in
https://github.com/SeleniumHQ/selenium/pull/15608
* [py] Configure readthedocs publishing for Python API docs by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15614
* [py] Fix select being able to select options hidden by css rules by
@​FFederi in https://github.com/SeleniumHQ/selenium/pull/15135
* [py][bidi]: Implement BiDi browser module by @​navin772 in
https://github.com/SeleniumHQ/selenium/pull/15616
* [dotnet] [bidi] Combine network interception to apply rules (breaking
change) by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15603
* [dotnet] [bidi] Add strongly-typed `LocalValue.ConvertFrom` overloads
by @​RenderMichael in https://github.com/SeleniumHQ/selenium/pull/15532
* [py] Add missing modules to Python API docs by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15624
* [dotnet] [bidi] Do not throw when CallFunction or Evaluate return
exceptional result (breaking change) by @​RenderMichael in
https://github.com/SeleniumHQ/selenium/pull/15521
* [py] Skip bidi tests on browsers that don't support bidi by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15625
* [py] complete
`test_should_throw_an_exception_if_an_alert_has_not_been_dealt_with_and_dismiss_the_alert`
by @​Delta456 in https://github.com/SeleniumHQ/selenium/pull/15559
* [py] Remove unused xfail on chrome/edge service tests by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15637
* [py] Adjust xfail markers for window size/position tests by
@​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15638
* [py] Call service.stop() when session can't be started by @​cgoldberg
in https://github.com/SeleniumHQ/selenium/pull/15636
* [dotnet] [bidi] Reuse memory when receiving websocket messages by
@​nvborisenko in https://github.com/SeleniumHQ/selenium/pull/15640
* [py] Remove logging API for non-Chromium browsers by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15641
* [py] Raise TypeError when creating webdriver.Remote() without options
by @​cgoldberg in https://github.com/SeleniumHQ/selenium/pull/15619
* [py] Upgrade dependencies for mypy tox environment by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15642
* [py] Fix Remote Firefox tests on Linux/Wayland by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15648
* [dotnet] Enhance Selenium Manager platform detection by @​nvborisenko
in https://github.com/SeleniumHQ/selenium/pull/15649
* [dotnet] Use namespace file scoped by @​nvborisenko in
https://github.com/SeleniumHQ/selenium/pull/15651
* [py] Fix flaky WebDriverWait tests by @​cgoldberg in
https://github.com/SeleniumHQ/selenium/pull/15650
 ... (truncated)

Commits viewable in [compare
view](https://github.com/SeleniumHQ/selenium/compare/selenium-4.31.0...selenium-4.41.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Selenium.WebDriver&package-manager=nuget&previous-version=4.31.0&new-version=4.41.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: PhilipWoulfe <[email protected]>
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 C-dotnet .NET Bindings Review effort 2/5 Review effort 3/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants