Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -376,3 +376,6 @@ MigrationBackup/

# MDS "Not Supported" GenAPI code
**/notsupported/*.cs

# C# language server cache
*.lscache
Comment thread
paulmedynski marked this conversation as resolved.
53 changes: 36 additions & 17 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,33 @@
<Project>

<!-- ===================================================================== -->
<!--
Versions.props import strategy:

Each product has a Versions.props that computes its version properties (e.g.
SqlClientPackageVersion). These files can be imported from two places:

1. Here, in Directory.Packages.props (Package mode only) — imports ALL
Versions.props early so that centrally-managed PackageVersion items can
reference the computed version values for sibling package pinning.

2. In each product's own csproj (conditional) — imports the product's own
Versions.props so standalone / Project-mode builds still get versions.

To prevent double-evaluation when both paths fire, every Versions.props sets
an import-guard property (e.g. SqlClientVersionsImported=true) on first load.
The csproj-level import checks that guard and becomes a no-op if the file was
already imported here.
-->
<ImportGroup Condition="'$(ReferenceType)' == 'Package'">
<Import Project="src/Microsoft.Data.SqlClient/Versions.props" />
<Import Project="src/Microsoft.SqlServer.Server/Versions.props" />
<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 +43,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
157 changes: 136 additions & 21 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
20 changes: 20 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'.
Comment thread
paulmedynski marked this conversation as resolved.
- 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 @@ -115,6 +125,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 @@ -139,6 +155,7 @@ jobs:
build: MDS
abstractionsPackageVersion: ${{parameters.abstractionsPackageVersion}}
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}

- task: DotNetCoreCLI@2
displayName: 'Create MDS NuGet Package'
Expand All @@ -153,6 +170,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 @@ -184,6 +202,7 @@ jobs:
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
akvPackageVersion: ${{ parameters.akvPackageVersion }}
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}

- task: DotNetCoreCLI@2
displayName: 'Create AKV Provider NuGet Package'
Expand All @@ -199,6 +218,7 @@ jobs:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:PackageVersionAkvProvider=${{ parameters.akvPackageVersion }}

- task: CopyFiles@2
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 @@ -364,6 +380,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 @@ -379,6 +396,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 @@ -68,6 +68,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 @@ -85,6 +90,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 @@ -103,3 +109,4 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
15 changes: 15 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,9 @@ parameters:
- name: mdsPackageVersion
type: string

- name: sqlServerPackageVersion
type: string

- name: platform
type: string
default: $(Platform)
Expand Down Expand Up @@ -137,6 +140,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
${{ else }}: # x86
arguments: >-
Expand All @@ -147,6 +151,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 @@ -165,6 +170,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 @@ -177,6 +183,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 @@ -199,6 +206,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
${{ else }}: # x86
arguments: >-
Expand All @@ -210,6 +218,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 @@ -230,6 +239,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 @@ -243,6 +253,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 Down Expand Up @@ -292,6 +303,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults

- task: DotNetCoreCLI@2
Expand All @@ -308,6 +320,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 @@ -327,6 +340,7 @@ steps:
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
-p:TestResultsFolderPath=TestResults
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}

Expand All @@ -345,6 +359,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 Down
Loading
Loading