Skip to content

Conversation

@paulmedynski
Copy link
Contributor

@paulmedynski paulmedynski commented Jan 27, 2026

Description

This PR includes any remaining cleanup:

  • Addresses some suggestions/comments from the previous 3 PRs.
  • Fixes any issues with the downstream pipelines (CI, MDS Main, Official, AKV).
  • Anything else I've noticed along the way.

PR series:

Testing

  • Normal PR/CI pipeline runs will validate most changes.
  • Manual runs of the ADO.Net pipelines (MDS Main, Official, AKV).
  • Manual inspection of pipeline logs and artifacts will confirm some of the fiddly parts.

Copy link
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

Final cleanup pass for the Azure split work, focusing on small code tidy-ups and pipeline/template adjustments for Azure/AKV/signing/PR validation.

Changes:

  • Minor test/source cleanup (namespace alignment, formatting, retry-after millisecond conversion).
  • Pipeline/template refactors to consolidate .NET SDK installation and simplify signing/package validation steps.
  • Updates to PR validation and CodeQL trigger configuration.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/SqlClient/SqlAuthenticationProviderManagerTests.cs Aligns unit test namespace/formatting with the rest of the UnitTests tree.
src/Microsoft.Data.SqlClient.Extensions/Azure/test/StringExtensions.cs Adds XML docs for Empty() (currently attached to the wrong symbol).
src/Microsoft.Data.SqlClient.Extensions/Azure/src/ActiveDirectoryAuthenticationProvider.cs Fixes retry-after delta conversion to use total milliseconds; whitespace cleanup.
src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/SqlAuthenticationProviderException.cs Formatting-only change for ternary expression.
eng/pipelines/steps/compound-build-akv-step.yml Removes redundant SDK install step from the AKV compound step.
eng/pipelines/sqlclient-pr-project-ref-pipeline.yml Adjusts PR branch include pattern for dev/*.
eng/pipelines/sqlclient-pr-package-ref-pipeline.yml Adjusts PR branch include pattern for dev/*.
eng/pipelines/jobs/test-azure-package-ci-job.yml YAML formatting cleanup (folded block style) for debug output step.
eng/pipelines/jobs/build-akv-official-job.yml Adds explicit .NET SDK install before AKV build/analyzers.
eng/pipelines/dotnet-sqlclient-signing-pipeline.yml Updates artifact folder naming and simplifies validation job invocation.
eng/pipelines/common/templates/steps/code-analyze-step.yml Changes analyzer MSBuild invocation to explicitly target BuildAllConfigurations.
eng/pipelines/common/templates/steps/build-all-configurations-signed-dlls-step.yml Removes redundant SDK install from this step template.
eng/pipelines/common/templates/jobs/validate-signed-package-job.yml Simplifies parameters and inlines the artifact download step.
eng/pipelines/common/templates/jobs/build-signed-package-job.yml Switches to pwsh, installs SDK, passes Abstractions version property, and sets build-type output variable (currently broken).
.github/workflows/codeql.yml Updates CodeQL triggers/comments (push trigger now unscoped).

Comment on lines +9 to 11
/// <param name="str">The string to check; must not be null</param>
internal static class StringExtensions
{
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

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

The XML doc <param name="str"> is attached to the StringExtensions class, but param tags are only valid on members that have parameters (methods/constructors/indexers/delegates). This will generate an XML-doc compiler warning (and can fail builds if warnings are treated as errors). Move the <param> doc to the Empty(this string str) method (and optionally add <summary>/<returns> there).

Suggested change
/// <param name="str">The string to check; must not be null</param>
internal static class StringExtensions
{
internal static class StringExtensions
{
/// <summary>
/// Determines whether the specified string is empty without performing a null check.
/// </summary>
/// <param name="str">The string to check; must not be null.</param>
/// <returns><see langword="true"/> if the string is empty; otherwise, <see langword="false"/>.</returns>

Copilot uses AI. Check for mistakes.

- powershell: |
- pwsh: |
Write-Host "##vso[task.setvariable variable=CDP_BUILD_TYPE_COPY;isOutput=true]$($env:CDP_BUILD_TYPE)"
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

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

This step sets an output variable (isOutput=true), but it no longer has a name:. Downstream references use stageDependencies...outputs['GetBuildType.CDP_BUILD_TYPE_COPY'], which requires the step name to be GetBuildType. Add name: GetBuildType (keep displayName if desired) so the output can be consumed.

Suggested change
Write-Host "##vso[task.setvariable variable=CDP_BUILD_TYPE_COPY;isOutput=true]$($env:CDP_BUILD_TYPE)"
Write-Host "##vso[task.setvariable variable=CDP_BUILD_TYPE_COPY;isOutput=true]$($env:CDP_BUILD_TYPE)"
name: GetBuildType

Copilot uses AI. Check for mistakes.
Comment on lines +15 to +17
# Scan on pushes to the default branch and any protected branches.
push:
branches: [ "main", "feat/*", "dev/**/*" ]

Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

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

push: is now configured without a branches: filter, so CodeQL will run on pushes to all branches. That contradicts the comment (“default branch and any protected branches”) and can significantly increase CI load. Add an explicit push.branches filter (e.g., main, dev/**, feat/**) or update the comment/logic to match the intended scope.

Copilot uses AI. Check for mistakes.
Comment on lines +33 to 35
- dev/*
- feat/*
- main
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

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

This changes the PR trigger include pattern from dev/**/* to dev/*, which no longer matches nested dev branches like dev/foo/bar (Azure Pipelines glob semantics treat * as a single path segment). If nested dev/ branches are used, PR validation will stop running for them; consider using dev/** to preserve previous behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +33 to 35
- dev/*
- feat/*
- main
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

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

This changes the PR trigger include pattern from dev/**/* to dev/*, which no longer matches nested dev branches like dev/foo/bar (Azure Pipelines glob semantics treat * as a single path segment). If nested dev/ branches are used, PR validation will stop running for them; consider using dev/** to preserve previous behavior.

Copilot uses AI. Check for mistakes.
Comment on lines +369 to +376
if (retryAfter.Delta.Value.TotalMilliseconds > int.MaxValue)
{
retryPeriod = int.MaxValue;
}
else
{
retryPeriod = Convert.ToInt32(retryAfter.Delta.Value.TotalMilliseconds);
}
Copy link

Copilot AI Jan 27, 2026

Choose a reason for hiding this comment

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

Both branches of this 'if' statement write to the same variable - consider using '?' to express intent better.

Suggested change
if (retryAfter.Delta.Value.TotalMilliseconds > int.MaxValue)
{
retryPeriod = int.MaxValue;
}
else
{
retryPeriod = Convert.ToInt32(retryAfter.Delta.Value.TotalMilliseconds);
}
double totalMilliseconds = retryAfter.Delta.Value.TotalMilliseconds;
retryPeriod = totalMilliseconds > int.MaxValue
? int.MaxValue
: Convert.ToInt32(totalMilliseconds);

Copilot uses AI. Check for mistakes.
@codecov
Copy link

codecov bot commented Jan 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 67.41%. Comparing base (16a3cd8) to head (ea41b39).
⚠️ Report is 11 commits behind head on dev/paul/azure/step3.

Additional details and impacted files
@@                   Coverage Diff                    @@
##           dev/paul/azure/step3    #3917      +/-   ##
========================================================
- Coverage                 69.78%   67.41%   -2.38%     
========================================================
  Files                       260      260              
  Lines                     65694    65691       -3     
========================================================
- Hits                      45844    44284    -1560     
- Misses                    19850    21407    +1557     
Flag Coverage Δ
netcore 67.38% <ø> (-2.36%) ⬇️
netfx 66.43% <ø> (-2.55%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants