Skip to content

Commit 231dc2b

Browse files
committed
Merge branch 'main' into dev/russellben/config-jsonc
# Conflicts: # src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj
2 parents bb9b5d7 + 8afb242 commit 231dc2b

50 files changed

Lines changed: 625 additions & 228 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,3 +377,6 @@ MigrationBackup/
377377

378378
# MDS "Not Supported" GenAPI code
379379
**/notsupported/*.cs
380+
381+
# C# language server cache
382+
*.lscache

Directory.Packages.props

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,33 @@
11
<Project>
2+
3+
<!-- ===================================================================== -->
4+
<!--
5+
Versions.props import strategy:
6+
7+
Each product has a Versions.props that computes its version properties (e.g.
8+
SqlClientPackageVersion). These files can be imported from two places:
9+
10+
1. Here, in Directory.Packages.props (Package mode only) — imports ALL
11+
Versions.props early so that centrally-managed PackageVersion items can
12+
reference the computed version values for sibling package pinning.
13+
14+
2. In each product's own csproj (conditional) — imports the product's own
15+
Versions.props so standalone / Project-mode builds still get versions.
16+
17+
To prevent double-evaluation when both paths fire, every Versions.props sets
18+
an import-guard property (e.g. SqlClientVersionsImported=true) on first load.
19+
The csproj-level import checks that guard and becomes a no-op if the file was
20+
already imported here.
21+
-->
22+
<ImportGroup Condition="'$(ReferenceType)' == 'Package'">
23+
<Import Project="src/Microsoft.Data.SqlClient/Versions.props" />
24+
<Import Project="src/Microsoft.SqlServer.Server/Versions.props" />
25+
<Import Project="src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props" />
26+
<Import Project="src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props" />
27+
<Import Project="src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props" />
28+
<Import Project="src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props" />
29+
</ImportGroup>
30+
231
<PropertyGroup>
332
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
433
<!--
@@ -14,33 +43,23 @@
1443
<!-- ===================================================================== -->
1544
<!-- Driver Packages -->
1645

17-
<!-- Ordered from least dependent to most dependent, and then alphabetically. -->
18-
19-
<ItemGroup>
20-
<!--
21-
We never reference this package via its project, so we always need a
22-
version specified.
23-
-->
24-
<PackageVersion Include="Microsoft.SqlServer.Server" Version="1.0.0" />
25-
</ItemGroup>
26-
27-
<!--
28-
We only need other driver package versions specified when building via
29-
package references.
30-
-->
46+
<!-- The driver packages need version numbers when we build via Package references. -->
3147
<ItemGroup Condition="'$(ReferenceType)' == 'Package'">
48+
<PackageVersion
49+
Include="Microsoft.SqlServer.Server"
50+
Version="$(SqlServerPackageVersion)" />
3251
<PackageVersion
3352
Include="Microsoft.Data.SqlClient.Internal.Logging"
3453
Version="$(LoggingPackageVersion)" />
3554
<PackageVersion
3655
Include="Microsoft.Data.SqlClient.Extensions.Abstractions"
3756
Version="$(AbstractionsPackageVersion)" />
38-
<PackageVersion
39-
Include="Microsoft.Data.SqlClient.Extensions.Azure"
40-
Version="$(AzurePackageVersion)" />
4157
<PackageVersion
4258
Include="Microsoft.Data.SqlClient"
4359
Version="$(SqlClientPackageVersion)" />
60+
<PackageVersion
61+
Include="Microsoft.Data.SqlClient.Extensions.Azure"
62+
Version="$(AzurePackageVersion)" />
4463
<PackageVersion
4564
Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider"
4665
Version="$(AkvProviderPackageVersion)" />

build.proj

Lines changed: 149 additions & 21 deletions
Large diffs are not rendered by default.

doc/Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
<PackageVersion Include="Microsoft.Data.SqlClient" Version="7.0.0-preview4.26064.3" />
77
<PackageVersion Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" Version="7.0.0-preview1.26064.3" />
88
<PackageVersion Include="Microsoft.Data.SqlClient.Extensions.Azure" Version="1.0.0-preview1.26064.3" />
9+
<PackageVersion Include="Microsoft.SqlServer.Server" Version="1.0.0" />
910
</ItemGroup>
1011
</Project>

doc/samples/Microsoft.Data.SqlClient.Samples.csproj

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@
1010
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
1111
</PropertyGroup>
1212

13+
<!-- The Samples only support referencing the SqlClient suite via package reference. -->
1314
<ItemGroup>
14-
<PackageReference Include="Azure.Identity" />
15-
<PackageReference Include="Azure.Core" />
16-
<PackageReference Include="Microsoft.Identity.Client" />
17-
<PackageReference Include="Microsoft.SqlServer.Server" />
1815
<PackageReference Include="Microsoft.Data.SqlClient" />
1916
<PackageReference Include="Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider" />
2017
<PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure" />
18+
<PackageReference Include="Microsoft.SqlServer.Server" />
19+
</ItemGroup>
20+
21+
<!-- Other package references. -->
22+
<ItemGroup>
23+
<PackageReference Include="Azure.Identity" />
24+
<PackageReference Include="Azure.Core" />
25+
<PackageReference Include="Microsoft.Identity.Client" />
2126
<PackageReference Include="Newtonsoft.Json" />
2227
<PackageReference Include="System.Configuration.ConfigurationManager" />
2328
</ItemGroup>

eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ parameters:
7777
- name: akvPackageVersion
7878
type: string
7979

80+
# The version of the SqlServer package to depend on when referenceType is 'Package'.
81+
- name: sqlServerPackageVersion
82+
type: string
83+
default: $(sqlServerPackageVersion)
84+
85+
# The name of the SqlServer pipeline artifact to download when referenceType is 'Package'.
86+
- name: sqlServerArtifactsName
87+
type: string
88+
default: SqlServer.Artifacts
89+
8090
jobs:
8191
- job: build_mds_akv_packages_job
8292
displayName: Build MDS & AKV Packages
@@ -115,6 +125,12 @@ jobs:
115125
artifactName: ${{ parameters.loggingArtifactsName }}
116126
targetPath: $(localFeedPath)
117127

128+
- task: DownloadPipelineArtifact@2
129+
displayName: Download SqlServer Package Artifacts
130+
inputs:
131+
artifactName: ${{ parameters.sqlServerArtifactsName }}
132+
targetPath: $(localFeedPath)
133+
118134
# Install the .NET SDK.
119135
- template: /eng/pipelines/steps/install-dotnet.yml@self
120136

@@ -139,6 +155,7 @@ jobs:
139155
build: MDS
140156
abstractionsPackageVersion: ${{parameters.abstractionsPackageVersion}}
141157
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
158+
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
142159

143160
- task: DotNetCoreCLI@2
144161
displayName: 'Create MDS NuGet Package'
@@ -153,6 +170,7 @@ jobs:
153170
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
154171
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
155172
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
173+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
156174
157175
# PackSqlClient outputs to artifacts/Microsoft.Data.SqlClient/<ReferenceType>-<Configuration>/.
158176
# Downstream steps (local feed copy, AKV pack, artifact publish) all expect packages at
@@ -184,6 +202,7 @@ jobs:
184202
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
185203
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
186204
akvPackageVersion: ${{ parameters.akvPackageVersion }}
205+
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
187206

188207
- task: DotNetCoreCLI@2
189208
displayName: 'Create AKV Provider NuGet Package'
@@ -199,6 +218,7 @@ jobs:
199218
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
200219
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
201220
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
221+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
202222
-p:PackageVersionAkvProvider=${{ parameters.akvPackageVersion }}
203223
204224
- task: CopyFiles@2

eng/pipelines/common/templates/jobs/ci-run-tests-job.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,16 @@ parameters:
8888
- name: mdsPackageVersion
8989
type: string
9090

91+
# The name of the SqlServer pipeline artifact to download when referenceType is 'Package'.
92+
- name: sqlServerArtifactsName
93+
type: string
94+
default: SqlServer.Artifacts
95+
96+
# The version of the SqlServer package to depend on when referenceType is 'Package'.
97+
- name: sqlServerPackageVersion
98+
type: string
99+
default: $(sqlServerPackageVersion)
100+
91101
# TODO: What is this for?
92102
- name: netcoreVersionTestUtils
93103
type: string
@@ -194,6 +204,12 @@ jobs:
194204
artifactName: ${{ parameters.mdsArtifactsName }}
195205
targetPath: $(Build.SourcesDirectory)/packages
196206

207+
- task: DownloadPipelineArtifact@2
208+
displayName: Download SqlServer Package Artifacts
209+
inputs:
210+
artifactName: ${{ parameters.sqlServerArtifactsName }}
211+
targetPath: $(Build.SourcesDirectory)/packages
212+
197213
# Install the .NET SDK and Runtimes.
198214
- template: /eng/pipelines/steps/install-dotnet.yml@self
199215
parameters:
@@ -364,6 +380,7 @@ jobs:
364380
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
365381
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
366382
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
383+
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
367384

368385
- ${{ if and(eq(parameters.enableX86Test, true), eq(parameters.operatingSystem, 'Windows')) }}:
369386
- template: /eng/pipelines/common/templates/steps/run-all-tests-step.yml@self
@@ -379,6 +396,7 @@ jobs:
379396
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
380397
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
381398
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
399+
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
382400

383401
- template: /eng/pipelines/common/templates/steps/publish-test-results-step.yml@self
384402
parameters:

eng/pipelines/common/templates/stages/ci-run-tests-stage.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@ parameters:
5050
- name: mdsPackageVersion
5151
type: string
5252

53+
# The name of the SqlServer pipeline artifacts to download.
54+
- name: sqlServerArtifactsName
55+
type: string
56+
default: SqlServer.Artifacts
57+
58+
# The version of the SqlServer package to depend on when referenceType is 'Package'.
59+
- name: sqlServerPackageVersion
60+
type: string
61+
default: $(sqlServerPackageVersion)
62+
5363
# Jobs to run after the test jobs complete, if any.
5464
- name: postTestJobs
5565
type: jobList
@@ -114,6 +124,8 @@ stages:
114124
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
115125
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
116126
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
127+
sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
128+
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
117129
prebuildSteps: ${{ parameters.prebuildSteps }}
118130
targetFramework: ${{ targetFramework }}
119131
netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }}
@@ -150,6 +162,8 @@ stages:
150162
loggingPackageVersion: ${{ parameters.loggingPackageVersion }}
151163
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
152164
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
165+
sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }}
166+
sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }}
153167
prebuildSteps: ${{ parameters.prebuildSteps }}
154168
targetFramework: ${{ targetFramework }}
155169
netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }}

eng/pipelines/common/templates/steps/ci-project-build-step.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ parameters:
6868
type: string
6969
default: $(akvPackageVersion)
7070

71+
# Necessary when referenceType is Package. Ignored when referenceType is Project.
72+
- name: sqlServerPackageVersion
73+
type: string
74+
default: $(sqlServerPackageVersion)
75+
7176
steps:
7277
# Build MDS
7378
- ${{ if or(eq(parameters.build, 'MDS'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
@@ -85,6 +90,7 @@ steps:
8590
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
8691
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
8792
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
93+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
8894
8995
# Build AKV Provider
9096
- ${{ if or(eq(parameters.build, 'AkvProvider'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}:
@@ -103,3 +109,4 @@ steps:
103109
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
104110
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
105111
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
112+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}

eng/pipelines/common/templates/steps/run-all-tests-step.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ parameters:
2222
- name: mdsPackageVersion
2323
type: string
2424

25+
- name: sqlServerPackageVersion
26+
type: string
27+
2528
- name: platform
2629
type: string
2730
default: $(Platform)
@@ -137,6 +140,7 @@ steps:
137140
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
138141
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
139142
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
143+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
140144
-p:TestResultsFolderPath=TestResults
141145
${{ else }}: # x86
142146
arguments: >-
@@ -147,6 +151,7 @@ steps:
147151
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
148152
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
149153
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
154+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
150155
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
151156
-p:TestResultsFolderPath=TestResults
152157
@@ -165,6 +170,7 @@ steps:
165170
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
166171
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
167172
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
173+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
168174
-p:TestFilters="category=flaky"
169175
-p:TestResultsFolderPath=TestResults
170176
-p:TestCodeCoverage=false
@@ -177,6 +183,7 @@ steps:
177183
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
178184
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
179185
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
186+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
180187
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
181188
-p:TestFilters="category=flaky"
182189
-p:TestResultsFolderPath=TestResults
@@ -199,6 +206,7 @@ steps:
199206
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
200207
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
201208
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
209+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
202210
-p:TestResultsFolderPath=TestResults
203211
${{ else }}: # x86
204212
arguments: >-
@@ -210,6 +218,7 @@ steps:
210218
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
211219
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
212220
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
221+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
213222
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
214223
-p:TestResultsFolderPath=TestResults
215224
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
@@ -230,6 +239,7 @@ steps:
230239
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
231240
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
232241
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
242+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
233243
-p:TestFilters="category=flaky"
234244
-p:TestResultsFolderPath=TestResults
235245
-p:TestCodeCoverage=false
@@ -243,6 +253,7 @@ steps:
243253
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
244254
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
245255
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
256+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
246257
-p:DotnetPath=${{ parameters.dotnetx86RootPath }}
247258
-p:TestFilters="category=flaky"
248259
-p:TestResultsFolderPath=TestResults
@@ -292,6 +303,7 @@ steps:
292303
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
293304
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
294305
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
306+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
295307
-p:TestResultsFolderPath=TestResults
296308
297309
- task: DotNetCoreCLI@2
@@ -308,6 +320,7 @@ steps:
308320
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
309321
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
310322
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
323+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
311324
-p:TestFilters="category=flaky"
312325
-p:TestResultsFolderPath=TestResults
313326
-p:TestCodeCoverage=false
@@ -327,6 +340,7 @@ steps:
327340
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
328341
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
329342
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
343+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
330344
-p:TestResultsFolderPath=TestResults
331345
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
332346

@@ -345,6 +359,7 @@ steps:
345359
-p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }}
346360
-p:PackageVersionLogging=${{ parameters.loggingPackageVersion }}
347361
-p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }}
362+
-p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }}
348363
-p:TestFilters="category=flaky"
349364
-p:TestResultsFolderPath=TestResults
350365
-p:TestCodeCoverage=false

0 commit comments

Comments
 (0)