Change AKV Provider to target .NET Standard 2.0#4016
Change AKV Provider to target .NET Standard 2.0#4016paulmedynski wants to merge 16 commits intomainfrom
Conversation
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
This PR updates the Always Encrypted Azure Key Vault (AKV) Provider to target .NET Standard 2.0 and modernizes its packaging flow by moving from a standalone .nuspec/custom MSBuild target to SDK-style dotnet pack driven by the AKV Provider .csproj. It also updates build/pipeline wiring to use the new BuildAkvProvider/PackAkvProvider targets.
Changes:
- Removed the legacy AKV
.nuspecandGenerateAkvPackageMSBuild target infrastructure. - Updated the AKV Provider project to
netstandard2.0and embedded NuGet metadata into the.csproj. - Updated build and pipeline steps to build/pack the AKV Provider directly via
dotnet packand newbuild.projtargets.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/targets/add-ons/GenerateAkvPackage.targets | Removes the legacy GenerateAkvPackage target. |
| tools/specs/add-ons/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.nuspec | Deletes the old AKV Provider .nuspec (packaging now via .csproj). |
| tools/specs/Microsoft.Data.SqlClient.nuspec | Adds a header comment documenting required nuget pack properties (contains a small typo). |
| src/Microsoft.Data.SqlClient/add-ons/Directory.Build.props | Removes add-ons-specific props file (AKV now uses standard props chain). |
| src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj | Sets netstandard2.0 and absorbs NuGet package metadata/config into the project. |
| eng/pipelines/onebranch/variables/common-variables.yml | Removes akvNuspecPath variable (no longer applicable). |
| eng/pipelines/onebranch/steps/roslyn-analyzers-akv-step.yml | Updates build target from BuildAkv to BuildAkvProvider. |
| eng/pipelines/onebranch/steps/compound-build-akv-step.yml | Updates build target naming/usage to BuildAkvProvider. |
| eng/pipelines/onebranch/jobs/build-akv-official-job.yml | Switches AKV packaging step from nuspec-based to dotnet pack on the .csproj. |
| eng/pipelines/common/templates/steps/ci-project-build-step.yml | Replaces old AKV build targets with BuildAkvProvider (but introduces a Windows gating issue). |
| eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml | Switches AKV packaging from nuspec-based step to dotnet pack on the .csproj. |
| build.proj | Removes GenerateAkvPackage.targets import; adds BuildAkvProvider/PackAkvProvider; updates BuildSqlClient deps. |
| BUILDGUIDE.md | Documents the new BuildAkvProvider/PackAkvProvider targets and removes obsolete AKV targets. |
Comments suppressed due to low confidence (1)
src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj:78
- Switching AKV Provider packaging from a nuspec to SDK-style
dotnet packmeans the project’s PackageReferences/ProjectReferences now flow into the produced NuGet dependency graph. This project currently referencesMicrosoft.Data.SqlClient.Extensions.Logging, which the removed nuspec did not list, so this change will add/alter external package dependencies for consumers. If the AKV provider doesn’t actually use Logging APIs, remove that reference or mark it asPrivateAssets=allto avoid changing the published dependency set.
<!-- References ====================================================== -->
<!-- MDS Reference -->
<ItemGroup>
<ProjectReference Include="$(RepoRoot)/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj"
Condition="'$(ReferenceType)' != 'Package'" />
<PackageReference Include="Microsoft.Data.SqlClient"
Condition="'$(ReferenceType)' == 'Package'" />
</ItemGroup>
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 17 out of 17 changed files in this pull request and generated 3 comments.
You can also share your feedback on Copilot code review. Take the survey.
Codecov Report✅ All modified and coverable lines are covered by tests.
Additional details and impacted files@@ Coverage Diff @@
## main #4016 +/- ##
==========================================
- Coverage 72.65% 65.36% -7.29%
==========================================
Files 287 275 -12
Lines 43134 65809 +22675
==========================================
+ Hits 31337 43017 +11680
- Misses 11797 22792 +10995
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 22 out of 22 changed files in this pull request and generated 2 comments.
You can also share your feedback on Copilot code review. Take the survey.
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 28 out of 28 changed files in this pull request and generated 1 comment.
You can also share your feedback on Copilot code review. Take the survey.
eng/pipelines/onebranch/steps/build-all-configurations-signed-dlls-step.yml
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 29 out of 29 changed files in this pull request and generated 1 comment.
You can also share your feedback on Copilot code review. Take the survey.
…y to inhibit NuGet.exe download when generating SqlClient package.
- Fixed CI package build flow MDS build steps.
…d removed the obsolete AKV-specific templates.
… and isn't appropriate for library NuGets.
30d23f5 to
39a9974
Compare
src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj
Show resolved
Hide resolved
src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 34 out of 34 changed files in this pull request and generated 2 comments.
You can also share your feedback on Copilot code review. Take the survey.
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
|
@paulmedynski I've opened a new pull request, #4025, to work on those changes. Once the pull request is ready, I'll request review from you. |
|
@paulmedynski I've opened a new pull request, #4026, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: paulmedynski <31868385+paulmedynski@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
…wnstream outputs (#4025) Co-authored-by: paulmedynski <31868385+paulmedynski@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 35 out of 35 changed files in this pull request and generated 1 comment.
You can also share your feedback on Copilot code review. Take the survey.
.../AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 36 out of 36 changed files in this pull request and generated 3 comments.
You can also share your feedback on Copilot code review. Take the survey.
Description
This PR changes the AKV Provider to target .NET Standard 2.0 since it doesn't contain any code specific to .NET or .NET Framework. Changes include:
<TargetFramework>tonetstandard2.0in the AKV Provider project.add-ons/Directory.Build.props.nuspecinto thecsproj.BuildAkvProviderandPackAkvProvidertargets tobuild.proj.GenerateAkvPackagetarget and all references to it.BuildAllPackagesandPackAllPackagestargets.BuildSqlClientandPackSqlClienttargets to help fix the Docs-Build-Pack-Publish pipeline.Testing