Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
56da973
Fix SqlServer sibling reference handling
paulmedynski May 4, 2026
191c536
Address Copilot review comments in PR 4259
paulmedynski May 4, 2026
8200659
Resolve merge conflicts after rebase
paulmedynski May 5, 2026
088fa13
Fix package-mode local feed mirroring and Versions.props duplicate im…
paulmedynski May 11, 2026
82e400b
Address remaining PR 4259 review feedback
paulmedynski May 11, 2026
5f11e17
Added missing SqlServer package version to Samples.
paulmedynski May 11, 2026
90ba43d
Address remaining Copilot PR 4259 feedback
paulmedynski May 11, 2026
da86109
Fix SqlServer pack output path and gate unsigned net462 UDT tests
paulmedynski May 11, 2026
c9d879a
Added implicit usings to the Test.Common project.
paulmedynski May 12, 2026
4589a76
- Added BuildAll target that builds as many projects in all OS+TFM co…
paulmedynski May 12, 2026
540e8af
Extract Versioning.props and fix PR review feedback
paulmedynski May 13, 2026
f1e8a37
Fix MSB4011: remove duplicate Versioning.props import
paulmedynski May 13, 2026
1c45411
Fold Versioning.props back into Directory.Build.props
paulmedynski May 13, 2026
a0e0233
Tokenize SqlServer.Server version in nuspec and fix BuildTests
paulmedynski May 13, 2026
c9a0238
Quote project paths in BuildTests/BuildSamples/BuildTools
paulmedynski May 13, 2026
26d9eff
Download SqlServer artifacts in Azure Package test jobs
paulmedynski May 13, 2026
dea41a8
Plumb SqlServerPackageVersion through all build and test pipelines
paulmedynski May 13, 2026
57dffbf
Improved docs for the SqlServer assembly checker in the tests.
paulmedynski May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
- name: Run manual build steps
if: matrix.build-mode == 'manual'
shell: bash
run: dotnet build src/Microsoft.Data.SqlClient.slnx
run: dotnet build build.proj -t:BuildAll
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 compiles more code than the bare solution due to our TFM choice via host OS conditionals in some projects.

Comment thread
paulmedynski marked this conversation as resolved.

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
Expand Down
37 changes: 20 additions & 17 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
<Project>

<!-- ===================================================================== -->
<!-- Import Versions.props files when building via Package references -->
<!-- This makes version properties available early for package pinning -->
<ImportGroup Condition="'$(ReferenceType)' == 'Package'">
<Import Project="src/Microsoft.Data.SqlClient/Versions.props" />
<Import Project="src/Microsoft.SqlServer.Server/Versions.props" />
Comment thread
paulmedynski marked this conversation as resolved.
<Import Project="src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props" />
<Import Project="src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props" />
<Import Project="src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props" />
<Import Project="src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props" />
</ImportGroup>

<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<!--
Expand All @@ -14,33 +27,23 @@
<!-- ===================================================================== -->
<!-- Driver Packages -->

<!-- Ordered from least dependent to most dependent, and then alphabetically. -->

<ItemGroup>
<!--
We never reference this package via its project, so we always need a
version specified.
-->
<PackageVersion Include="Microsoft.SqlServer.Server" Version="1.0.0" />
</ItemGroup>

<!--
We only need other driver package versions specified when building via
package references.
-->
<!-- The driver packages need version numbers when we build via Package references. -->
<ItemGroup Condition="'$(ReferenceType)' == 'Package'">
<PackageVersion
Include="Microsoft.SqlServer.Server"
Version="$(SqlServerPackageVersion)" />
<PackageVersion
Include="Microsoft.Data.SqlClient.Internal.Logging"
Version="$(LoggingPackageVersion)" />
<PackageVersion
Include="Microsoft.Data.SqlClient.Extensions.Abstractions"
Version="$(AbstractionsPackageVersion)" />
<PackageVersion
Include="Microsoft.Data.SqlClient.Extensions.Azure"
Version="$(AzurePackageVersion)" />
<PackageVersion
Include="Microsoft.Data.SqlClient"
Version="$(SqlClientPackageVersion)" />
<PackageVersion
Include="Microsoft.Data.SqlClient.Extensions.Azure"
Version="$(AzurePackageVersion)" />
<PackageVersion
Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider"
Version="$(AkvProviderPackageVersion)" />
Expand Down
275 changes: 252 additions & 23 deletions build.proj

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions doc/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
<PackageVersion Include="Microsoft.Data.SqlClient" Version="7.0.0-preview4.26064.3" />
<PackageVersion Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" Version="7.0.0-preview1.26064.3" />
<PackageVersion Include="Microsoft.Data.SqlClient.Extensions.Azure" Version="1.0.0-preview1.26064.3" />
<PackageVersion Include="Microsoft.SqlServer.Server" Version="1.0.0" />
</ItemGroup>
</Project>
13 changes: 9 additions & 4 deletions doc/samples/Microsoft.Data.SqlClient.Samples.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
</PropertyGroup>

<!-- The Samples only support referencing the SqlClient suite via package reference. -->
<ItemGroup>
<PackageReference Include="Azure.Identity" />
<PackageReference Include="Azure.Core" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Microsoft.SqlServer.Server" />
<PackageReference Include="Microsoft.Data.SqlClient" />
<PackageReference Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" />
<PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure" />
<PackageReference Include="Microsoft.SqlServer.Server" />
</ItemGroup>

<!-- Other package references. -->
<ItemGroup>
<PackageReference Include="Azure.Identity" />
<PackageReference Include="Azure.Core" />
<PackageReference Include="Microsoft.Identity.Client" />
<PackageReference Include="Newtonsoft.Json" />
<PackageReference Include="System.Configuration.ConfigurationManager" />
</ItemGroup>
Expand Down
19 changes: 19 additions & 0 deletions eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,16 @@ parameters:
- name: akvPackageVersion
type: string

# The version of the SqlServer package to depend on when referenceType is 'Package'.
- name: sqlServerPackageVersion
type: string
default: $(sqlServerPackageVersion)

# The name of the SqlServer pipeline artifact to download when referenceType is 'Package'.
- name: sqlServerArtifactsName
type: string
default: SqlServer.Artifacts

jobs:
- job: build_mds_akv_packages_job
displayName: Build MDS & AKV Packages
Expand Down Expand Up @@ -116,6 +126,12 @@ jobs:
artifactName: ${{ parameters.loggingArtifactsName }}
targetPath: $(localFeedPath)

- task: DownloadPipelineArtifact@2
displayName: Download SqlServer Package Artifacts
inputs:
artifactName: ${{ parameters.sqlServerArtifactsName }}
targetPath: $(localFeedPath)

# Install the .NET SDK.
- template: /eng/pipelines/steps/install-dotnet.yml@self

Expand All @@ -142,6 +158,7 @@ jobs:
assemblyBuildNumber: $(assemblyBuildNumber)
abstractionsPackageVersion: ${{parameters.abstractionsPackageVersion}}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}

- task: DotNetCoreCLI@2
displayName: 'Create MDS NuGet Package'
Expand All @@ -156,6 +173,7 @@ jobs:
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}

# PackSqlClient outputs to artifacts/Microsoft.Data.SqlClient/<ReferenceType>-<Configuration>/.
# Downstream steps (local feed copy, AKV pack, artifact publish) all expect packages at
Expand Down Expand Up @@ -188,6 +206,7 @@ jobs:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
akvPackageVersion: ${{ parameters.akvPackageVersion }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}

- task: DotNetCoreCLI@2
displayName: 'Create AKV Provider NuGet Package'
Expand Down
18 changes: 18 additions & 0 deletions eng/pipelines/common/templates/jobs/ci-run-tests-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@ parameters:
- name: mdsPackageVersion
type: string

# The name of the SqlServer pipeline artifact to download when referenceType is 'Package'.
- name: sqlServerArtifactsName
type: string
default: SqlServer.Artifacts

# The version of the SqlServer package to depend on when referenceType is 'Package'.
- name: sqlServerPackageVersion
type: string
default: $(sqlServerPackageVersion)

# TODO: What is this for?
- name: netcoreVersionTestUtils
type: string
Expand Down Expand Up @@ -194,6 +204,12 @@ jobs:
artifactName: ${{ parameters.mdsArtifactsName }}
targetPath: $(Build.SourcesDirectory)/packages

- task: DownloadPipelineArtifact@2
displayName: Download SqlServer Package Artifacts
inputs:
artifactName: ${{ parameters.sqlServerArtifactsName }}
targetPath: $(Build.SourcesDirectory)/packages

# Install the .NET SDK and Runtimes.
- template: /eng/pipelines/steps/install-dotnet.yml@self
parameters:
Expand Down Expand Up @@ -365,6 +381,7 @@ jobs:
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}

- ${{ if and(eq(parameters.enableX86Test, true), eq(parameters.operatingSystem, 'Windows')) }}:
- template: /eng/pipelines/common/templates/steps/run-all-tests-step.yml@self
Expand All @@ -380,6 +397,7 @@ jobs:
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}

- template: /eng/pipelines/common/templates/steps/publish-test-results-step.yml@self
parameters:
Expand Down
14 changes: 14 additions & 0 deletions eng/pipelines/common/templates/stages/ci-run-tests-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,16 @@ parameters:
- name: mdsPackageVersion
type: string

# The name of the SqlServer pipeline artifacts to download.
- name: sqlServerArtifactsName
type: string
default: SqlServer.Artifacts

# The version of the SqlServer package to depend on when referenceType is 'Package'.
- name: sqlServerPackageVersion
type: string
default: $(sqlServerPackageVersion)

# Jobs to run after the test jobs complete, if any.
- name: postTestJobs
type: jobList
Expand Down Expand Up @@ -114,6 +124,8 @@ stages:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
prebuildSteps: ${{ parameters.prebuildSteps }}
targetFramework: ${{ targetFramework }}
netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }}
Expand Down Expand Up @@ -150,6 +162,8 @@ stages:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
prebuildSteps: ${{ parameters.prebuildSteps }}
targetFramework: ${{ targetFramework }}
netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ parameters:
type: string
default: $(akvPackageVersion)

# Necessary when referenceType is Package. Ignored when referenceType is Project.
- name: sqlServerPackageVersion
type: string
default: $(sqlServerPackageVersion)

steps:
# Build MDS
- ${{ if or(eq(parameters.build, 'MDS'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
Expand All @@ -90,6 +95,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}

# Build AKV Provider
- ${{ if or(eq(parameters.build, 'AkvProvider'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
Expand All @@ -108,4 +114,5 @@ steps:
-p:AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }}
-p:LoggingPackageVersion=${{ parameters.loggingPackageVersion }}
-p:SqlClientPackageVersion=${{ parameters.mdsPackageVersion }}
-p:SqlServerPackageVersion=${{ parameters.sqlServerPackageVersion }}

18 changes: 18 additions & 0 deletions eng/pipelines/common/templates/steps/run-all-tests-step.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ parameters:
- name: mdsPackageVersion
type: string

- name: sqlServerPackageVersion
type: string
default: $(sqlServerPackageVersion)

- name: platform
type: string
default: $(Platform)
Expand Down Expand Up @@ -142,6 +146,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
${{ else }}: # x86
msbuildArguments: >-
Expand All @@ -151,6 +156,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestResultsFolderPath=TestResults

Expand All @@ -170,6 +176,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
-p:TestCodeCoverage=false
Expand All @@ -181,6 +188,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
Expand All @@ -204,6 +212,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
${{ else }}: # x86
msbuildArguments: >-
Expand All @@ -214,6 +223,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestResultsFolderPath=TestResults
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
Expand All @@ -235,6 +245,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
-p:TestCodeCoverage=false
Expand All @@ -247,6 +258,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
Expand All @@ -269,6 +281,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:TestResultsFolderPath=TestResults
verbosityRestore: Detailed
Expand All @@ -288,6 +301,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
Expand All @@ -310,6 +324,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:TestResultsFolderPath=TestResults
verbosityRestore: Detailed
Expand All @@ -329,6 +344,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
Expand All @@ -351,6 +367,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:TestResultsFolderPath=TestResults
verbosityRestore: Detailed
Expand All @@ -372,6 +389,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:Configuration=${{ parameters.buildConfiguration }}
-p:TestFilters="category=flaky"
-p:TestResultsFolderPath=TestResults
Expand Down
Loading