Skip to content

Sync release/7.0 with main — cherry-pick batch#4215

Closed
paulmedynski wants to merge 24 commits intorelease/7.0from
dev/paul/release/7.0/main-sync
Closed

Sync release/7.0 with main — cherry-pick batch#4215
paulmedynski wants to merge 24 commits intorelease/7.0from
dev/paul/release/7.0/main-sync

Conversation

@paulmedynski
Copy link
Copy Markdown
Contributor

@paulmedynski paulmedynski commented Apr 20, 2026

Description

We have let release/7.0 drift from main with many non-driver commits. This PR brings them all over. These are engineering, test, build, project, pipeline, etc changes that we should have cherry-picked as the PRs were committed.

This will pave the way to bring over the symbols publishing changes from #4175 cleanly, which we need to perform the 7.0.1 release.

It's probably best to review each commit, and compare it to the original PR. I will make a note of any changes that aren't obviously non-driver.

Cherry-picked commits from main

Commit Original PR Title
f23848675 #4033 Merge | Pack Mds Target, Wire PR/CI Pipelines to Build2.proj
de86f7a5c #4070 Migrate to slnx solution file format
d359511f3 #4077 Eng | Disable ESRP steps on non-official pipelines
171765a35 #4080 Test | Fix Transient Fault handling and other flaky unit tests
1013cf3b8 #4087 Added CI test stages for SQL Server 16 and 17
721859a35 #4078 Test | Fix Diagnostic Tests and remove Remote Executor
f58d7a825 #3867 Create stress test pipeline
3a7e5c2ba #4095 Changed SBOM package version to use build number
b780ad1de #4068 Merge | Official Builds From Common Project
c85343ce1 #4121 Trim docs using pwsh via dotnet tool
3fcde6a66 #4127 Revert "Trim docs using pwsh via dotnet tool"
e7b0854bd #3805 Test | Connection pool transaction tests
9aad4ec44 #4106 Add GitHub Actions workflow to automate cherry-pick hotfix PRs
26d20f651 #4148 Fix milestone lookup in hotfix workflow
614b41053 #4132 Update prompt tools
f113008f2 #4123 Official Build Cleanup
082497058 #4051 Tests | Add collation transcoding tests
3877beb18 #4103 Fix typo in "Received instance info from UDP Client."
c0b06273e #4155 Official Build Cleanup 2
78634a344 #4145 Merge | Cleanup
4b99276a9 #4050 Tests | Introduce RAII SQL object primitives
67fa5c28c #4003 Add conditional ProjectReference to Microsoft.SqlServer.Server

Notes

benrr101 and others added 22 commits April 20, 2026 19:42
* In progress work for pack target ... kinda working

* Add config to genapi path.
Remove unnecessary dependencies from genapi project

* Fix generation of docs in ref project

* Dump reference type specific builds
Fix xml documentation file generation for implementation project

* Generating a package file works!!!

* Resync pipelines folder in solution

* Add an assembly build number argument?
... it doesn't work

* Wiring up build numbers through build2.proj

* Build number argument

* Maybe wiring it up?!?

* Reinstate the assemblybuildnumber property

* Build all of MDS, once

* PR comments from copilot

* Specify test results folder for CI builds

* TargetFramework => TestFramework

* Fixing a couple more comments

* Couple more comments from copilot

* downgrade back to 7.0.0 :)

* I dunno, fixing some stuff, I guess.

* Fix indenting

* Back out changes to official pipelines

* A couple more comments from CoPilot

* Generate AKV documentation file during CI build ... idk why this is only a problem *now*

* Comments from Copilot ... I'd love it if it could give the same comments across commits.
* Disable ESRP steps on non-official pipelines

* Update copilot instructions

* Skip Signature verification for non-official builds

* Address comments

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* touch-ups

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Test | Fix Transient Fault handling flaky tests

* Attempt to fix

* Fix the MultiPartIdentifier tests getting skipped

* Fix serialization issue of SqlTypeWorkaroundsTests

* Fix one more cases of possible error scenarios
* Task 40503: Create stress test pipeline

- Added initial placeholder pipeline entry point file.
- Wired up the new top-level stress test pipeline to the existing stages/jobs.
- Using human friendly triggering pipeline names.
- Removed PR pipeline as upstream trigger.
- When triggered manually, we must choose one of the upstream pipelines to use for artifact download.
- Temporarily added PR-SqlClient-Package to help with PR-based testing.
- Sorted template parameters alphabetically.
- Added debugging for artifact details.

* Changed the pipeline to expect project-references to SqlClient projects.

* Moved stress test pipeline files into a stress/ directory.

* Fixed expansion errors.

* Addressed Copilot feedback.

* Addressed my own comments.
* Drop compound-* from onebranch step files for my own sanity

* Consolidate compound-publish-symbols and publish-symbols-step into publish-symbols-step.

* Rename code-analyze-step to roslyn-analyzers-csproj-step (for later changes)

* Add mds-specific job/steps

* Swap in build-signed-mds-package-job.yml for build-signed-sqlclient-package-job.yml

* Remove dead job/steps

* Fix folder path for DLL signing steps.

* Addressing comments, round 1

* Addressing comments, round 2

Not sure how the PackBuild target got lost, but I brought it back

* Add the new parameters to the csproj build job

* Use variables artifact names in release stage

* Two more quick fixes as per comments

* ESRP searches recursively?

* Fine, I give up, I will put the package output in PACK_OUTPUT.

* Reinstate job-level apiscan parameter assignment

* Wire isOfficial to MDS build job after rebase

* Rework versioning logic and move package version calculation (outside of pipelines) entirely to MdsVersions.props

* Add build number to PackMds target call in official pipeline

* Remove assembly "file" versions as it is not necessary.

* CI pipelines to automatic versioning system.

* Rework the package version for CI to match the package version for OneBranch. This band-aid avoids completely messing with the CI properties.

* Assembly version = major.0.0.0
File version = major.minor.patch.build
Package version = major.minor.patch[-suffixbuildnumber]

* Comment that Malcolm is holding the build up for.

* Can I please be done with this PR now?
* Cleanup step parameters

* Parameter work for build-signed-csproj-package-job.yml:
* Drop buildConfiguration parameter
* Introduce symbols parameters
* Signing parameters with prefix

* Forward parameter defaults from build-signed-csproj-package-job to build-stages.yml

* Forward default values for symbols/signing parameters in build-stages.yml to parameters.

* Delete debug param from build-stages.yml
Forward default values to parameters on sqlclient-non-official.yml and sqlclient-official.yml

* Don't nest variables files.

* Do not import variables templates outside of the pipeline root

* OneBranch variable libraries moved to onebranch-variables.yml
Replace old libraries with new libraries
Replace old library references with new library references

* Project for manintaining the pipelines folder

* Parameterize package versions from the pipeline to the stages

* Store "effective" package versions in new, parameterized variables file

* Parameterize the artifact names

* Parameterize the assembly versions

* Parameterize the mds validation job

* Sweep remaining $() references that are not to well-known variables.

* Remove unused variables and cleanup remaining variables

* Cleanup SDL parameters

* AKVProvider -> AkvProvider

* MDS -> SqlClient
* Replace CollatedDataReaderTest

This previously only tested Kazakh_90_CI_AI and Georgian_Modern_Sort_CI_AS. The replacement tests every collation.
It also performs a more comprehensive check that the string/byte[] roundtrips with the varbinary/varchar from the database instance.
Finally, it no longer requires permission to drop and create databases: we can just use the COLLATE statement.

* Add collated output parameter test
* PR comments and uh what

* Rely on AssemblyBuildNumber for non-MDS projects, too.
* Delete separate projects

... this was less satisfying than I expected it'd be

* Test output should go to the same folder as the project ... no need to give it a special place.

* Drop targets that aren't necessary from build.proj

* Remove extraneous properties from build.proj

* Remove unused targets

* Test project references from RepoRoot

* Remove unnecessary stuff from Directory.Build.props

* Drop some more unnecessary files

* Remove references to BuildAllConfigurations

* 🤖 Remove separate project stuff from CompareMdsRefAssemblies.targets
* Create DatabaseObject base class for fixture

This contains GenerateLongName and GenerateShortName, which are lifted from DataTestUtility.GetLongName and GetShortName in ManualTests.

* Create derived types, use these in a few locations

This eliminates DropUserDefinedType from DataTestUtility.

* Further removal of ad-hoc utility methods in ParametersTest

* Further removal of ad-hoc CREATE/DROP scripts in ParametersTest

* Use Table type in SqlGraphTables.cs

* Use Table and StoredProcedure types in JsonTest.cs

* Use Table type in JsonStreamTest.cs

* Remove duplicate helper function from ApiShould.cs
Copilot AI review requested due to automatic review settings April 20, 2026 22:54
@github-project-automation github-project-automation Bot moved this to To triage in SqlClient Board Apr 20, 2026
@paulmedynski paulmedynski added Area\Tests Issues that are targeted to tests or test projects Area\Engineering Use this for issues that are targeted for changes in the 'eng' folder or build systems. labels Apr 20, 2026
@paulmedynski paulmedynski moved this from To triage to In progress in SqlClient Board Apr 20, 2026
@paulmedynski paulmedynski added this to the 7.0.1 milestone Apr 20, 2026
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 syncs release/7.0 with main via a cherry-pick batch, bringing in build/pipeline modernization (including build2.proj wiring), solution format migration to .slnx, new stress-test pipeline infrastructure, and multiple test reliability fixes.

Changes:

  • Consolidates/modernizes build & versioning (new MdsVersions.props, updated output paths, removes legacy targets/props).
  • Improves test stability and cleanup (TDS simulated server counters, reduced flakiness, RAII DB objects, additional collation/codepage coverage).
  • Updates CI/CD automation (new stress pipeline templates, OneBranch pipeline cleanup, GitHub Actions hotfix cherry-pick workflow, prompt tooling updates).

Reviewed changes

Copilot reviewed 143 out of 145 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tools/targets/TrimDocsForIntelliSense.targets Removed legacy MSBuild target (now in ref csproj).
tools/targets/ResolveContract.targets Removed legacy contract-resolution target.
tools/targets/NotSupported.targets Removed legacy not-supported generation target (replaced by notsupported project logic).
tools/targets/GenerateThisAssemblyCs.targets Ensures AssemblyFileVersion defaults correctly.
tools/targets/GenerateMdsPackage.targets Removed legacy nuspec pack target (build2-based flow).
tools/props/Versions.props Moves build-number usage to AssemblyBuildNumber; removes MDS versioning block in favor of MdsVersions.props.
tools/props/Tools.props Removed redundant tooling props.
tools/intellisense/TrimDocs.ps1 Hard-fails on missing XML via exception for better build signaling.
tools/GenAPI/Directory.Build.props Removed GenAPI-local props import (centralized build plumbing).
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj Simplifies project properties for slnx migration.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TransientTdsErrorTdsServer.cs Adds Login7 counting for deterministic retry assertions.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj Fixes project references and simplifies TFM declaration.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/GenericTdsServer.cs Adds Login7Count/abandoned prelogin tracking; minor object initializer cleanup.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj Adjusts references/TFM and simplifies paths.
src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj Simplifies TFM declaration and removes custom output paths.
src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.ExtUtilities/Microsoft.Data.SqlClient.ExtUtilities.csproj Simplifies TFM declaration.
src/Microsoft.Data.SqlClient/tests/UnitTests/SimulatedServerTests/ConnectionRoutingTestsAzure.cs Removes flaky quarantine and stabilizes assertions using abandoned-prelogin logic.
src/Microsoft.Data.SqlClient/tests/UnitTests/SimulatedServerTests/ConnectionRoutingTests.cs Removes flaky quarantine and stabilizes assertions using abandoned-prelogin logic.
src/Microsoft.Data.SqlClient/tests/UnitTests/SimulatedServerTests/ConnectionFailoverTests.cs Removes flaky quarantine; disables pooling in targeted scenarios; stabilizes counts and pool behavior.
src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/SqlTypes/SqlTypeWorkaroundsTests.cs Disables discovery enumeration for theory data to improve stability/discovery behavior.
src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft/Data/Common/MultipartIdentifierTests.cs Deduplicates generated theory data to prevent xUnit duplicate-ID skips.
src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj Converts project references to use $(RepoRoot) paths.
src/Microsoft.Data.SqlClient/tests/UnitTests/ConnectionPool/TransactedConnectionPoolTest.cs Updates mock interface implementation for nullable TCS and new pool property.
src/Microsoft.Data.SqlClient/tests/StressTests/StressTests.slnx Removed stress solution in slnx form (stress pipeline now elsewhere).
src/Microsoft.Data.SqlClient/tests/StressTests/SqlClient.Stress.Tests/SqlClientTestGroup.cs Adds System.Transactions usage for stress scenarios.
src/Microsoft.Data.SqlClient/tests/PerformanceTests/Microsoft.Data.SqlClient.PerformanceTests.csproj Refactors references for project/package mode and cleans item groups.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj Removes legacy per-target output plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj Removes legacy per-target output plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj Removes legacy per-target output plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj Removes legacy per-target output plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlBulkCopyTest/SqlGraphTables.cs Switches table lifecycle to RAII fixture types.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ParameterTest/OutputParameterTests.cs Adds output-parameter collation/codepage roundtrip coverage.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/JsonTest/JsonStreamTest.cs Ensures file cleanup via try/finally; uses RAII table fixture.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderTest.cs Reworks collation test to cover all collations without creating/dropping DBs.
src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj Adjusts references; removes RemoteExecutor dependency; makes ProjectReference private.
src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/ApiShould.cs Uses RAII table fixture; refactors table-definition generation and query building.
src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.FunctionalTests.csproj Converts references to $(RepoRoot) paths.
src/Microsoft.Data.SqlClient/tests/Directory.Packages.props Removes RemoteExecutor package version pin.
src/Microsoft.Data.SqlClient/tests/Common/Fixtures/DatabaseObjects/UserDefinedType.cs Adds RAII UDT fixture.
src/Microsoft.Data.SqlClient/tests/Common/Fixtures/DatabaseObjects/Table.cs Adds RAII table fixture with helper operations.
src/Microsoft.Data.SqlClient/tests/Common/Fixtures/DatabaseObjects/StoredProcedure.cs Adds RAII stored-procedure fixture.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlTypes/SqlVector.cs Whitespace cleanup.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlTypes/SqlJson.cs Formatting cleanup.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlDataReader.cs Whitespace/comment formatting cleanup.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnection.cs Adjusts ContinueWith to be synchronous and not cancelled with the original operation.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ManagedSni/SsrpClient.netcore.cs Fixes typo in event log message (“instnace” → “instance”).
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/WaitHandleDbConnectionPool.cs Exposes pool sizing and transacted pool; clarifies enlistment comment.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/TransactedConnectionPool.cs Refactors transacted connection tracking; exposes list type internally; renames dictionary.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/IDbConnectionPool.cs Adds TransactedConnectionPool property and nullable TCS in signature.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/DbConnectionPoolOptions.cs Adds documentation for CreationTimeout.
src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/ConnectionPool/ChannelDbConnectionPool.cs Instantiates/exposes transacted pool.
src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj Adds MDS versioning import; adjusts output path and conditional SqlServer.Server reference mode.
src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj Adds versioning import and trims docs post-build with new target; adjusts output path.
src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.cs Fixes XML include paths and formatting in ref surface.
src/Microsoft.Data.SqlClient/notsupported/Microsoft.Data.SqlClient.csproj Adds versioning import and adjusts ref artifact output path for ReferenceType.
src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateAssemblyRef.targets Deleted legacy netfx tooling target.
src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateAssemblyInfo.targets Deleted legacy netfx tooling target.
src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj Deleted legacy netfx ref project.
src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj Deleted legacy netcore ref project.
src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/AkvProviderVersions.props Uses AssemblyBuildNumber for defaults; documentation updated.
src/Microsoft.Data.SqlClient/MdsVersions.props Introduces centralized MDS versioning logic for package/file/assembly versions.
src/Microsoft.Data.SqlClient.Internal/Logging/src/LoggingVersions.props Uses AssemblyBuildNumber for defaults; documentation updated.
src/Microsoft.Data.SqlClient.Extensions/Azure/src/AzureVersions.props Uses AssemblyBuildNumber for defaults; documentation updated.
src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/AbstractionsVersions.props Uses AssemblyBuildNumber for defaults; documentation updated.
eng/pipelines/stress/stress-tests-stage.yml Adds cross-platform stress test stage template.
eng/pipelines/stress/stress-tests-pipeline.yml Adds dedicated stress-test pipeline triggered by upstream pipelines.
eng/pipelines/stress-tests-pipeline.yml Removes legacy placeholder stress pipeline.
eng/pipelines/sqlclient-pr-project-ref-pipeline.yml PR pipeline path updates; excludes stress; disables legacy SQL stages.
eng/pipelines/sqlclient-pr-package-ref-pipeline.yml PR pipeline path updates; excludes stress; disables legacy SQL stages.
eng/pipelines/onebranch/variables/sqlclient-validation-variables.yml Deleted legacy validation variables file.
eng/pipelines/onebranch/variables/onebranch-variables.yml Updates variable groups for signing/symbols; streamlines variables.
eng/pipelines/onebranch/steps/roslyn-analyzers-sqlclient-step.yml Adds build2-based Roslyn analyzer step for SqlClient.
eng/pipelines/onebranch/steps/roslyn-analyzers-csproj-step.yml Improves parameterization and display naming for analyzer steps.
eng/pipelines/onebranch/steps/pack-sqlclient-step.yml Adds build2-based pack step for SqlClient and copies packages to output.
eng/pipelines/onebranch/steps/pack-csproj-step.yml Simplifies pack step and hardcodes Release for OneBranch packaging.
eng/pipelines/onebranch/steps/esrp-nuget-signing-step.yml Refactors signing step to use explicit search path/pattern parameters.
eng/pipelines/onebranch/steps/esrp-dll-signing-step.yml Adjusts signing to scan under $(BUILD_OUTPUT) and improves quoting.
eng/pipelines/onebranch/steps/esrp-code-signing-step.yml Deleted legacy combined signing step template.
eng/pipelines/onebranch/steps/copy-apiscan-files-sqlclient-step.yml Adds APIScan file copy step for SqlClient binaries/PDBs.
eng/pipelines/onebranch/steps/compound-nuget-pack-step.yml Deleted legacy compound packing template.
eng/pipelines/onebranch/steps/build-sqlclient-step.yml Adds build2-based SqlClient build step with signing key download.
eng/pipelines/onebranch/steps/build-csproj-step.yml Simplifies build step and hardcodes Release for OneBranch build.
eng/pipelines/onebranch/steps/build-all-configurations-signed-dlls-step.yml Deleted legacy “build all configurations” step.
eng/pipelines/onebranch/jobs/publish-nuget-package-job.yml Publishes artifacts from $(PACK_OUTPUT) for OneBranch releases.
eng/pipelines/libraries/ci-build-variables.yml Adjusts MDS CI version string to fit new versioning behavior.
eng/pipelines/jobs/test-azure-package-ci-job.yml Fixes display-name doc comment and clarifies PLATFORM unset note.
eng/pipelines/jobs/test-abstractions-package-ci-job.yml Fixes display-name doc comment and clarifies PLATFORM unset note.
eng/pipelines/jobs/pack-azure-package-ci-job.yml Clarifies PLATFORM unset note.
eng/pipelines/jobs/pack-abstractions-package-ci-job.yml Clarifies PLATFORM unset note.
eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml Removes stress parameter from CI pipelines; typo fix.
eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml Removes stress parameter from CI pipelines; typo fix.
eng/pipelines/dotnet-sqlclient-ci-core.yml Adds legacy SQL Server 2016/2017 CI stages behind parameter; removes stress stage wiring.
eng/pipelines/Pipelines.csproj Adds no-build project to surface pipeline files in IDE/solution.
AGENTS.md Documents AI-agent branch naming convention.
.github/workflows/codeql.yml Updates CodeQL build to use .slnx.
.github/workflows/cherry-pick-hotfix.yml Adds automation to cherry-pick hotfix-labeled PRs into release branches.
.github/prompts/update-build-pipelines.prompt.md Updates tool scoping for prompts.
.github/prompts/refine-test-overlap.prompt.md Renames prompt and scopes tools; fixes paths.
.github/prompts/generate-skill.prompt.md Adds tool scoping and agent metadata.
.github/prompts/generate-prompt.prompt.md Adds tool scoping guidance and frontmatter updates.
.github/prompts/generate-doc-comments.prompt.md Renames prompt to generate-doc-comments.
.github/prompts/code-review.prompt.md Updates prompt to support PR number or branch and scopes tools.
.github/copilot-instructions.md Adds branch naming requirement for AI agents.
.devcontainer/devcontainer.json Updates default solution to .slnx.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 20, 2026

Codecov Report

❌ Patch coverage is 90.90909% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.82%. Comparing base (f7b955c) to head (0b54d6b).

Files with missing lines Patch % Lines
...qlClient/ConnectionPool/ChannelDbConnectionPool.cs 50.00% 1 Missing ⚠️
...ft/Data/SqlClient/ManagedSni/SsrpClient.netcore.cs 0.00% 1 Missing ⚠️

❗ There is a different number of reports uploaded between BASE (f7b955c) and HEAD (0b54d6b). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (f7b955c) HEAD (0b54d6b)
CI-SqlClient 1 0
Additional details and impacted files
@@               Coverage Diff               @@
##           release/7.0    #4215      +/-   ##
===============================================
- Coverage        73.02%   64.82%   -8.21%     
===============================================
  Files              280      275       -5     
  Lines            43025    65861   +22836     
===============================================
+ Hits             31421    42692   +11271     
- Misses           11604    23169   +11565     
Flag Coverage Δ
CI-SqlClient ?
PR-SqlClient-Project 64.82% <90.90%> (?)

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.

{
result.Task.ContinueWith(
continuationAction: s_openAsyncComplete,
continuationAction: static (task, state) => s_openAsyncComplete(task, state),
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is a behaviour change. Do we want to keep this on release/7.0?

Identity = identity;
AuthenticationContexts = new();
MaxPoolSize = Convert.ToUInt32(PoolGroupOptions.MaxPoolSize);
TransactedConnectionPool = new(this);
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

These connection pool changes look fine to keep on release/7.0.

{
currentTimeOut = ReceiveTimeoutsForCLNT_BCAST_EX;
SqlClientEventSource.Log.TrySNITraceEvent(nameof(SsrpClient), EventType.INFO, "Received instnace info from UDP Client.");
SqlClientEventSource.Log.TrySNITraceEvent(nameof(SsrpClient), EventType.INFO, "Received instance info from UDP Client.");
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Typo fix in a log message; fine to keep on release/7.0.

@paulmedynski paulmedynski marked this pull request as ready for review April 21, 2026 11:07
@paulmedynski paulmedynski requested a review from a team as a code owner April 21, 2026 11:07
Copilot AI review requested due to automatic review settings April 21, 2026 11:07
@paulmedynski paulmedynski moved this from In progress to In review in SqlClient Board Apr 21, 2026
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 143 out of 145 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

eng/pipelines/onebranch/jobs/publish-nuget-package-job.yml:75

  • packagePath defaults to an empty string, but packageToPush is computed with coalesce(parameters.packagePath, ...). In Azure Pipelines template expressions, coalesce does not treat '' as null, so the default will likely resolve to an empty path instead of the intended ${packageName}.*.nupkg pattern. Consider either defaulting packagePath to null (omit the default) or using an explicit empty-string check when building packageToPush.

Comment thread src/Microsoft.Data.SqlClient/MdsVersions.props
/// <summary>
/// Generates the definition of a table with the number of bit columns specified.
/// </summary>
/// <param name="tableName">The name of the table</param>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fix for Copilot comment to avoid XML docs generation errors.

/// </summary>
/// <param name="collation">Name of a SQL Server collation which encodes text in the given code page.</param>
/// <param name="codePage">ID of the codepage which should be used by SQL Server and the driver to encode and decode text.</param>
[Theory]
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Made this Theory use conditions consistent with the other tests, per Copilot.

sqlConnection.Open();
roundtripCollationCommand.ExecuteNonQuery();

// Resolve the encoding after Open() so that SqlClient's internal registration of
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Robustness fix, per Copilot.


# Abstractions library assembly file version
- name: abstractionsAssemblyFileVersion
value: 1.0.0.$(assemblyBuildNumber)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

We're not necessarily going to release all of these packages, but now their version numbers make sense for this branch.

protected override void DropObject()
{
using SqlCommand dropCommand = new($"IF (OBJECT_ID('{Name}') IS NOT NULL) DROP TYPE {Name}", Connection);
// Use TYPE_ID instead of OBJECT_ID because OBJECT_ID does not resolve
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fix suggested by Copilot.

@cheenamalhotra
Copy link
Copy Markdown
Member

Are all these changes really necessary to get into 7.0 branch? And what about the PRs we have opened for each of these too? Are we not merging them?

You shouldn't be squashing them together fyi to retain history and all commits should be cherry-picks in the same order of having them in main. And if that means taking them one at a time - that should be the right way.

@github-project-automation github-project-automation Bot moved this from In review to Done in SqlClient Board Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area\Engineering Use this for issues that are targeted for changes in the 'eng' folder or build systems. Area\Tests Issues that are targeted to tests or test projects

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

7 participants