Skip to content

Conversation

paulmedynski
Copy link
Contributor

@paulmedynski paulmedynski commented Sep 23, 2025

Overview

As part of the Azure split work, a new Abstractions package is being created that contains types shared between MDS and its future extensions (Azure will be the first). This PR contains the C# project changes that create that package (with no meaningful content) to setup the MDS dependency.

This supercedes the original PRs #3471 and #3567.

This is depended on by PR #3628, which contains all of the pipeline changes to get the Abstractions package built and tested for CI, and packaged for official release.

Issues

The first step towards #1108.

Testing

  • Unit tests for the sample class to prove that IDE and command-line building and testing work.
  • There are no MDS tests to prove out the new dependency yet. Those will naturally happen when the first real bit of Azure functionality is moved out into the new Azure extension package.

@paulmedynski paulmedynski added this to the 7.0-preview2 milestone Sep 23, 2025
@Copilot Copilot AI review requested due to automatic review settings September 23, 2025 11:07
@paulmedynski paulmedynski requested a review from a team as a code owner September 23, 2025 11:07
@paulmedynski paulmedynski changed the base branch from main to feat/azure-split September 23, 2025 11:07
Copy link
Contributor

@Copilot 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 introduces the initial structure for a Microsoft.Data.SqlClient.Extensions.Abstractions package as part of the Azure split work. The purpose is to create a shared abstractions package that will contain types common to MDS and its future extensions, with Azure being the first extension.

Key changes include:

  • Creation of new Abstractions package structure with basic sample class and tests
  • Reorganization of MSBuild targets for package generation
  • Addition of dependency references to the new Abstractions package across MDS projects

Reviewed Changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tools/targets/add-ons/GenerateAkvPackage.targets New MSBuild target for generating AKV packages
tools/targets/GenerateSqlServerPackage.targets Removed old package generation target
tools/targets/GenerateMdsPackage.targets New MSBuild target for generating MDS packages
tools/specs/Microsoft.Data.SqlClient.nuspec Added dependency on Abstractions package
tools/props/Versions.props Reorganized version properties and added package-specific versioning
src/Microsoft.Data.SqlClient/*/Microsoft.Data.SqlClient.csproj Added conditional references to Abstractions package
src/Microsoft.Data.SqlClient.sln Added Abstractions project structure to solution
src/Microsoft.Data.SqlClient.Extensions/Abstractions/* New Abstractions package source files with sample class and tests
src/Directory.Packages.props Added Abstractions package version configuration
src/Directory.Build.props Added configuration for embedding debug symbols in packages
build.proj Updated build targets and dependencies for Abstractions package
NuGet.config Updated package source configuration and documentation
BUILDGUIDE.md Updated build documentation to include Abstractions package
.editorconfig Added additional file types for consistent formatting

@paulmedynski paulmedynski marked this pull request as draft September 23, 2025 11:09
Copy link
Contributor Author

@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.

Adding commentary for reviewers.

Copy link

codecov bot commented Sep 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.67%. Comparing base (37d8a3f) to head (0bf8d66).
⚠️ Report is 1 commits behind head on feat/azure-split.

Additional details and impacted files
@@                 Coverage Diff                  @@
##           feat/azure-split    #3626      +/-   ##
====================================================
+ Coverage             66.13%   66.67%   +0.54%     
====================================================
  Files                   276      276              
  Lines                 60765    60765              
====================================================
+ Hits                  40184    40515     +331     
+ Misses                20581    20250     -331     
Flag Coverage Δ
addons 90.82% <ø> (ø)
netcore 69.91% <ø> (+1.83%) ⬆️
netfx 68.70% <ø> (-1.26%) ⬇️

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.

Copy link
Contributor Author

@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.

Tracking my own review progress, and GitHub requires a comment.

Copy link
Contributor Author

@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.

More commentary.

@priyankatiwari08 priyankatiwari08 self-assigned this Sep 23, 2025
  - Removed MDS package ref dependency on Abstractions until pipelines are ready.
  - Renamed AbstractionsPackage to Abstractions in targets.
  - Updated BUILDGUIDE based on project ref behaviour.
  - Fixing Abstractions package version specification throughout the different builds.
  - Minimal YAML pipeline changes to accomodate Abstractions package versioning.
  - Removed ReferenceType as a variable in all .nuspec files.
  - Updated Nuget package generation targets to provide appropriate dependent package versions.
@paulmedynski paulmedynski force-pushed the dev/paul/azure-split/abstractions-code branch from 96b8487 to 383a354 Compare September 23, 2025 20:42
Copy link
Contributor Author

@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.

More commentary.

@paulmedynski paulmedynski changed the title [DRAFT] Abstractions Package - C# project changes Abstractions Package - C# project changes Sep 24, 2025
@paulmedynski paulmedynski marked this pull request as ready for review September 24, 2025 12:57
@mdaigle mdaigle self-assigned this Sep 26, 2025
benrr101
benrr101 previously approved these changes Sep 26, 2025
Copy link
Contributor

@benrr101 benrr101 left a comment

Choose a reason for hiding this comment

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

I think in general I am ok with these changes

@paulmedynski paulmedynski merged commit c96942d into feat/azure-split Sep 30, 2025
252 checks passed
@paulmedynski paulmedynski deleted the dev/paul/azure-split/abstractions-code branch September 30, 2025 18:11
paulmedynski added a commit that referenced this pull request Sep 30, 2025
- Fixed expansion of split expression in version numbers.
- Removed addition of PDBs from <AllowedOutputExtensionsInPackageBuildOutputFolder>.
- Removed MDS package ref dependency on Abstractions until pipelines are ready.
- Renamed AbstractionsPackage to Abstractions in targets.
- Updated BUILDGUIDE based on project ref behaviour.
- Added feature branches to CI pipeline triggers.
- Added missing/incomplete paths to the trigger.
- Added dev/* branches to the CI triggers so PRs that target other dev/ branches can run CI.
- Added missing MdsPackageVersion property to signed build pipeline job.
- Commented-out failing NuGet tool installer task.
- Re-ordered Guardian analysis step _before_ build step to avoid clobbering versioned DLLs.
- Added MDS package version to AKV build/package steps.
- Restored AKV nuspec ReferenceType property for AKV Official builds.
- Explicitly building tooling before analysis.
- Fixing validation steps to match XML props files.
- Added PR automation triggers, and documented other pipeline sections.
- Added ReferenceType throughout the MDS/AKV CI build steps.
- Added NuGet.config update to main CI build step for Package reference mode.
- Swapped Abstractions download and NuGet.config update to ensure packages/ exists before attempting to re-configure NuGet.
- Clean target no longer removes packages/
- Uncommented package refs to Abstractions.
- Added separate MDS and AKV project builds to support Package mode.
- Added $ReferenceType$ property to MDS .nuspec like it is for AKV.
paulmedynski added a commit that referenced this pull request Sep 30, 2025
- Fixed expansion of split expression in version numbers.
- Removed addition of PDBs from <AllowedOutputExtensionsInPackageBuildOutputFolder>.
- Removed MDS package ref dependency on Abstractions until pipelines are ready.
- Renamed AbstractionsPackage to Abstractions in targets.
- Updated BUILDGUIDE based on project ref behaviour.
- Added feature branches to CI pipeline triggers.
- Added missing/incomplete paths to the trigger.
- Added dev/* branches to the CI triggers so PRs that target other dev/ branches can run CI.
- Added missing MdsPackageVersion property to signed build pipeline job.
- Commented-out failing NuGet tool installer task.
- Re-ordered Guardian analysis step _before_ build step to avoid clobbering versioned DLLs.
- Added MDS package version to AKV build/package steps.
- Restored AKV nuspec ReferenceType property for AKV Official builds.
- Explicitly building tooling before analysis.
- Fixing validation steps to match XML props files.
- Added PR automation triggers, and documented other pipeline sections.
- Added ReferenceType throughout the MDS/AKV CI build steps.
- Added NuGet.config update to main CI build step for Package reference mode.
- Swapped Abstractions download and NuGet.config update to ensure packages/ exists before attempting to re-configure NuGet.
- Clean target no longer removes packages/
- Uncommented package refs to Abstractions.
- Added separate MDS and AKV project builds to support Package mode.
- Added $ReferenceType$ property to MDS .nuspec like it is for AKV.
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.

4 participants