Skip to content

Merge | Cleanup#4145

Open
benrr101 wants to merge 12 commits intomainfrom
dev/russellben/common/cleanup
Open

Merge | Cleanup#4145
benrr101 wants to merge 12 commits intomainfrom
dev/russellben/common/cleanup

Conversation

@benrr101
Copy link
Copy Markdown
Contributor

@benrr101 benrr101 commented Apr 6, 2026

Description

This PR will hopefully bring the separate codebases chapter of SqlClient history to a close. This PR cleans up the old separate projects and all the remaining cruft that was part of it.

  • Separate projects (netfx/netcore) and ref counterparts are deleted
  • Remove lingering reference to BuildAllConfigurations
  • Drop separate project targets from build.proj
  • Change non-production projects to output to the default bin/obj folders to enable ...
  • Drop properties from build.proj and Directory.Build.props that are no longer being used
  • Delete targets files and a couple props files that are no longer used

Issues

N/A

Testing

Local testing suggests this will pass. There's a lot of things intertwined with the directory.build.props and build.proj files so I expect some hiccups. But theoretically it should be easy.

@benrr101 benrr101 added this to the 7.1.0-preview1 milestone Apr 6, 2026
@benrr101 benrr101 requested a review from a team as a code owner April 6, 2026 23:47
Copilot AI review requested due to automatic review settings April 6, 2026 23:47
@benrr101 benrr101 added the Common Project 🚮 Things that relate to the common project project label Apr 6, 2026
@github-project-automation github-project-automation bot moved this to To triage in SqlClient Board Apr 6, 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 removes the remaining legacy netfx/netcore split-project infrastructure and related build/packaging targets, and updates test/tool projects to use the unified repo layout and default bin/obj outputs.

Changes:

  • Deletes obsolete MSBuild targets/props used by the historical netfx/netcore split (contract/not-supported/doc-trim/package-gen, etc.).
  • Updates test and tool .csproj files to reference dependencies via $(RepoRoot) and to use default output/intermediate paths.
  • Simplifies build.proj/OneBranch Roslyn-analyzer integration by removing legacy/default target assumptions.

Reviewed changes

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

Show a summary per file
File Description
tools/targets/TrimDocsForIntelliSense.targets Removed obsolete XML doc trimming target.
tools/targets/ResolveContract.targets Removed legacy contract-resolution target.
tools/targets/NotSupported.targets Removed legacy “platform not supported” assembly generation target.
tools/targets/GenerateMdsPackage.targets Removed legacy nuspec-based MDS package generation target.
tools/props/Tools.props Removed unused tool-related props file.
tools/GenAPI/Directory.Build.props Removed GenAPI-local Directory.Build.props shim.
src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj Updates project references to use $(RepoRoot) paths.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj Simplifies to single TargetFramework and default output paths.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj Updates project references to $(RepoRoot) paths and simplifies TFM/output settings.
src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj Simplifies TFM/output settings and updates project reference paths.
src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj Simplifies to single TargetFramework and default output paths.
src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.ExtUtilities/Microsoft.Data.SqlClient.ExtUtilities.csproj Simplifies to single TargetFramework.
src/Microsoft.Data.SqlClient/tests/PerformanceTests/Microsoft.Data.SqlClient.PerformanceTests.csproj Moves to default output paths and modernizes conditional Project/Package reference selection.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj Removes legacy netfx/netcore output/target-group plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj Removes legacy netfx/netcore output/target-group plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj Removes legacy netfx/netcore output/target-group plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj Removes legacy netfx/netcore output/target-group plumbing.
src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj Updates project references to use $(RepoRoot) paths.
src/Microsoft.Data.SqlClient/tests/FunctionalTests/Microsoft.Data.SqlClient.FunctionalTests.csproj Updates project references to use $(RepoRoot) paths.
src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateAssemblyRef.targets Deletes legacy netfx-only codegen target.
src/Microsoft.Data.SqlClient/netfx/tools/targets/GenerateAssemblyInfo.targets Deletes legacy netfx-only codegen target.
src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj Deletes legacy netfx driver project.
src/Microsoft.Data.SqlClient/netfx/ref/Microsoft.Data.SqlClient.csproj Deletes legacy netfx ref-assembly project.
src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj Deletes legacy netcore driver project.
src/Microsoft.Data.SqlClient/netcore/ref/Microsoft.Data.SqlClient.csproj Deletes legacy netcore ref-assembly project.
src/Microsoft.Data.SqlClient.slnx Updates solution structure to remove legacy netfx/netcore projects and adjust folder layout.
src/Directory.Build.props Removes legacy split-project path/OS properties; keeps minimal repo-wide build settings.
eng/pipelines/onebranch/steps/roslyn-analyzers-csproj-step.yml Removes BuildAllConfigurations default and simplifies analyzer invocation.
build.proj Removes legacy default target and legacy driver build/test orchestration; keeps extension/AKV/SqlServer targets.

@paulmedynski paulmedynski self-assigned this Apr 7, 2026
@paulmedynski paulmedynski moved this from To triage to In review in SqlClient Board Apr 7, 2026
paulmedynski
paulmedynski previously approved these changes Apr 7, 2026
Copy link
Copy Markdown
Contributor

@paulmedynski paulmedynski left a comment

Choose a reason for hiding this comment

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

Nothing better than waking up to a PR that deletes 3000+ lines of obsolete code!

mdaigle
mdaigle previously approved these changes Apr 7, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.44%. Comparing base (52c7149) to head (94fbbaa).
⚠️ Report is 3 commits behind head on main.

❗ There is a different number of reports uploaded between BASE (52c7149) and HEAD (94fbbaa). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (52c7149) HEAD (94fbbaa)
CI-SqlClient 1 0
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4145      +/-   ##
==========================================
- Coverage   74.27%   66.44%   -7.83%     
==========================================
  Files         279      274       -5     
  Lines       42980    65799   +22819     
==========================================
+ Hits        31922    43723   +11801     
- Misses      11058    22076   +11018     
Flag Coverage Δ
CI-SqlClient ?
PR-SqlClient-Project 66.44% <ø> (?)

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.

@benrr101 benrr101 dismissed stale reviews from mdaigle and paulmedynski via 051d157 April 7, 2026 19:57
mdaigle
mdaigle previously approved these changes Apr 7, 2026
Copy link
Copy Markdown
Contributor

@mdaigle mdaigle left a comment

Choose a reason for hiding this comment

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

Looks ok to me. We can revisit the API compatibility target later and get it better integrated.

paulmedynski
paulmedynski previously approved these changes Apr 8, 2026
apoorvdeshmukh
apoorvdeshmukh previously approved these changes Apr 8, 2026
Copilot AI review requested due to automatic review settings April 8, 2026 16:43
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 30 out of 30 changed files in this pull request and generated 2 comments.

Comment on lines 39 to 45
<!-- SqlServer Targets -->
<PropertyGroup>
<SqlServerProperties>$(CommonProperties)</SqlServerProperties>

<SqlServerProperties
Condition="'$(SqlServerPackageVersion)' != ''">
<SqlServerProperties Condition="'$(SqlServerPackageVersion)' != ''">
$(SqlServerProperties);SqlServerPackageVersion=$(SqlServerPackageVersion)
</SqlServerProperties>
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

$(CommonProperties) is referenced to build up SqlServerProperties/AbstractionsProperties/LoggingProperties/AzureProperties/AkvProviderProperties, but CommonProperties is no longer defined anywhere (not in this file nor src/Directory.Build.props). Either reintroduce the property (if it’s meant to carry shared globals like Configuration/ReferenceType) or remove these expansions to avoid misleading no-op property plumbing.

Copilot uses AI. Check for mistakes.
@benrr101 benrr101 enabled auto-merge (squash) April 8, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Common Project 🚮 Things that relate to the common project project

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

5 participants