From 4015680377656412b2edb73f52a563f0de24e1f7 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 16 May 2026 08:52:38 -0500 Subject: [PATCH 1/6] [dotnet] run format against slnx instead of looping csproj --- dotnet/private/dotnet_format.bzl | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/dotnet/private/dotnet_format.bzl b/dotnet/private/dotnet_format.bzl index 5499d8e5a453b..55216422a5551 100644 --- a/dotnet/private/dotnet_format.bzl +++ b/dotnet/private/dotnet_format.bzl @@ -49,14 +49,17 @@ DOTNET="$RUNFILES_DIR/{dotnet}" # Find the workspace root WORKSPACE_ROOT="${{BUILD_WORKSPACE_DIRECTORY:-$RUNFILES_DIR/_main}}" DOTNET_DIR="$WORKSPACE_ROOT/dotnet" +SOLUTION="$DOTNET_DIR/Selenium.slnx" cd "$DOTNET_DIR" -echo "Running dotnet format $@ on all projects..." -find "$DOTNET_DIR/src" "$DOTNET_DIR/test" -name "*.csproj" 2>/dev/null | while read -r proj; do - echo " Formatting $proj..." - "$DOTNET" format "$@" "$proj" || exit 1 -done || exit 1 +if [[ ! -f "$SOLUTION" ]]; then + echo "ERROR: Could not find $SOLUTION" >&2 + exit 1 +fi + +echo "Running dotnet format $@ on Selenium.slnx..." +"$DOTNET" format "$SOLUTION" "$@" || exit 1 echo "Done." """.format( @@ -87,19 +90,18 @@ if defined BUILD_WORKSPACE_DIRECTORY ( set WORKSPACE_ROOT=%RUNFILES_DIR%\\_main ) set DOTNET_DIR=%WORKSPACE_ROOT%\\dotnet +set SOLUTION=%DOTNET_DIR%\\Selenium.slnx cd /d "%DOTNET_DIR%" -echo Running dotnet format %* on all projects... -for /r "%DOTNET_DIR%\\src" %%p in (*.csproj) do ( - echo Formatting %%p... - "%DOTNET%" format %* "%%p" || exit /b 1 -) -for /r "%DOTNET_DIR%\\test" %%p in (*.csproj) do ( - echo Formatting %%p... - "%DOTNET%" format %* "%%p" || exit /b 1 +if not exist "%SOLUTION%" ( + echo ERROR: Could not find %SOLUTION% 1>&2 + exit /b 1 ) +echo Running dotnet format %* on Selenium.slnx... +"%DOTNET%" format "%SOLUTION%" %* || exit /b 1 + echo Done. """.format( dotnet_path = dotnet_runfiles_path, From 34a5b8c6a1ab31c56c8cfad41f8ce99e1650aefb Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 16 May 2026 11:23:12 -0500 Subject: [PATCH 2/6] fix order of execution --- dotnet/private/dotnet_format.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dotnet/private/dotnet_format.bzl b/dotnet/private/dotnet_format.bzl index 55216422a5551..12183cc509356 100644 --- a/dotnet/private/dotnet_format.bzl +++ b/dotnet/private/dotnet_format.bzl @@ -59,7 +59,7 @@ if [[ ! -f "$SOLUTION" ]]; then fi echo "Running dotnet format $@ on Selenium.slnx..." -"$DOTNET" format "$SOLUTION" "$@" || exit 1 +"$DOTNET" format "$@" "$SOLUTION" || exit 1 echo "Done." """.format( @@ -100,7 +100,7 @@ if not exist "%SOLUTION%" ( ) echo Running dotnet format %* on Selenium.slnx... -"%DOTNET%" format "%SOLUTION%" %* || exit /b 1 +"%DOTNET%" format %* "%SOLUTION%" || exit /b 1 echo Done. """.format( From 8df75a356db73a75a9a8976ef1e8889dff92728f Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 16 May 2026 12:25:52 -0500 Subject: [PATCH 3/6] apply fix from c471ccabf9 --- dotnet/private/dotnet_format.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/private/dotnet_format.bzl b/dotnet/private/dotnet_format.bzl index 12183cc509356..98f995c51c8ea 100644 --- a/dotnet/private/dotnet_format.bzl +++ b/dotnet/private/dotnet_format.bzl @@ -81,7 +81,7 @@ def _create_windows_script(ctx, dotnet): script_content = """@echo off setlocal -set RUNFILES_DIR=%~dp0%~n0.runfiles +set RUNFILES_DIR=%~dp0%~nx0.runfiles set DOTNET=%RUNFILES_DIR%\\{dotnet_path} if defined BUILD_WORKSPACE_DIRECTORY ( From 99695da5ba7c708b709faec0ef73631d05a0f44a Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 17 May 2026 08:53:43 -0500 Subject: [PATCH 4/6] [dotnet] temporary diagnostic verbosity for windows lint debug --- rake_tasks/dotnet.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake_tasks/dotnet.rake b/rake_tasks/dotnet.rake index 9a48d9a7db268..fd474296edd62 100644 --- a/rake_tasks/dotnet.rake +++ b/rake_tasks/dotnet.rake @@ -128,7 +128,7 @@ end desc 'Run .NET linter (dotnet format analyzers, docs)' task :lint do puts ' Running dotnet format analyzers...' - Bazel.execute('run', ['--', 'analyzers', '--verify-no-changes'], '//dotnet:format') + Bazel.execute('run', ['--', 'analyzers', '--verify-no-changes', '--verbosity', 'diagnostic'], '//dotnet:format') Rake::Task['dotnet:docs_generate'].invoke # TODO: Identify specific diagnostics that we want to enforce but can't be auto-corrected (e.g., 'IDE0060'): From 3337555fa4ba604d2f97dda41cbb9927bbdc74e0 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 17 May 2026 09:12:59 -0500 Subject: [PATCH 5/6] AllowMissingPrunePackageData --- dotnet/private/dotnet_format.bzl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dotnet/private/dotnet_format.bzl b/dotnet/private/dotnet_format.bzl index 98f995c51c8ea..ebf0f0b954df5 100644 --- a/dotnet/private/dotnet_format.bzl +++ b/dotnet/private/dotnet_format.bzl @@ -53,6 +53,9 @@ SOLUTION="$DOTNET_DIR/Selenium.slnx" cd "$DOTNET_DIR" +# Bazel-bundled SDK ref packs lack prune metadata; opt out of NETSDK1226. +export AllowMissingPrunePackageData=true + if [[ ! -f "$SOLUTION" ]]; then echo "ERROR: Could not find $SOLUTION" >&2 exit 1 @@ -94,6 +97,9 @@ set SOLUTION=%DOTNET_DIR%\\Selenium.slnx cd /d "%DOTNET_DIR%" +rem Bazel-bundled SDK ref packs lack prune metadata; opt out of NETSDK1226. +set AllowMissingPrunePackageData=true + if not exist "%SOLUTION%" ( echo ERROR: Could not find %SOLUTION% 1>&2 exit /b 1 From 09a78e411d67c8d689877fda7cb1f028bb290d67 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 17 May 2026 09:34:27 -0500 Subject: [PATCH 6/6] remove debugging --- rake_tasks/dotnet.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rake_tasks/dotnet.rake b/rake_tasks/dotnet.rake index fd474296edd62..9a48d9a7db268 100644 --- a/rake_tasks/dotnet.rake +++ b/rake_tasks/dotnet.rake @@ -128,7 +128,7 @@ end desc 'Run .NET linter (dotnet format analyzers, docs)' task :lint do puts ' Running dotnet format analyzers...' - Bazel.execute('run', ['--', 'analyzers', '--verify-no-changes', '--verbosity', 'diagnostic'], '//dotnet:format') + Bazel.execute('run', ['--', 'analyzers', '--verify-no-changes'], '//dotnet:format') Rake::Task['dotnet:docs_generate'].invoke # TODO: Identify specific diagnostics that we want to enforce but can't be auto-corrected (e.g., 'IDE0060'):