Skip to content

Commit 7e4d15f

Browse files
committed
Merge remote-tracking branch 'upstream/main' into sspi-writer
2 parents 7d99053 + ac1012a commit 7e4d15f

File tree

190 files changed

+7123
-3831
lines changed

Some content is hidden

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

190 files changed

+7123
-3831
lines changed

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,18 @@ This update brings the below changes over the previous release:
660660
- Optimized async method allocations in .NET Framework by porting changes from .NET Core. [#1084](https://github.com/dotnet/SqlClient/pull/1084)
661661
- Various code improvements [#902](https://github.com/dotnet/SqlClient/pull/902) [#925](https://github.com/dotnet/SqlClient/pull/925) [#933](https://github.com/dotnet/SqlClient/pull/933) [#934](https://github.com/dotnet/SqlClient/pull/934) [#1024](https://github.com/dotnet/SqlClient/pull/1024) [#1057](https://github.com/dotnet/SqlClient/pull/1057) [#1122](https://github.com/dotnet/SqlClient/pull/1122) [#1133](https://github.com/dotnet/SqlClient/pull/1133) [#1134](https://github.com/dotnet/SqlClient/pull/1134) [#1141](https://github.com/dotnet/SqlClient/pull/1141) [#1187](https://github.com/dotnet/SqlClient/pull/1187) [#1188](https://github.com/dotnet/SqlClient/pull/1188) [#1223](https://github.com/dotnet/SqlClient/pull/1223) [#1225](https://github.com/dotnet/SqlClient/pull/1225) [#1226](https://github.com/dotnet/SqlClient/pull/1226)
662662

663+
## [Stable release 3.1.6] - 2024-08-15
664+
665+
### Fixed
666+
667+
- Fixed connection to unsubscribe from transaction completion events before returning it to the connection pool. [#2301](https://github.com/dotnet/SqlClient/pull/2301) [#2434](https://github.com/dotnet/SqlClient/pull/2434)
668+
- Fixed `AcquireTokenAsync` timeout handling for edge cases in `ActiveDirectoryAuthenticationProvider`. [#2709](https://github.com/dotnet/SqlClient/pull/2709)
669+
670+
### Changed
671+
672+
- Updated Microsoft.Data.SqlClient.SNI version 3.0.1 to 3.0.2 [#2676](https://github.com/dotnet/SqlClient/pull/2676) which includes the fix for AppDomain crashing in issue [#1418](https://github.com/dotnet/SqlClient/issues/1418) and various code refactors.
673+
- Code health improvements: [#2147](https://github.com/dotnet/SqlClient/pull/2147), [#2515](https://github.com/dotnet/SqlClient/pull/2515), [#2517](https://github.com/dotnet/SqlClient/pull/2517) addresses [CVE-2019-0545](https://github.com/advisories/GHSA-2xjx-v99w-gqf3), [#2539](https://github.com/dotnet/SqlClient/pull/2539)
674+
663675
## [Stable release 3.1.5] - 2024-01-09
664676

665677
### Fixed

build.proj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,16 +180,16 @@
180180
<Target Name="RunTests" DependsOnTargets="RunFunctionalTests;RunManualTests"/>
181181
<Target Name="RunFunctionalTests">
182182
<!-- Windows -->
183-
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(FunctionalTestsProj)&quot; -p:Configuration=$(Configuration) -p:Target$(TFGroup)Version=$(TF) --no-build -v n --collect &quot;Code coverage&quot; -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Windows$(TargetGroup) --filter &quot;category!=non$(TargetGroup)tests&amp;category!=failing&amp;category!=nonwindowstests&quot; &quot;--logger:trx;LogFilePrefix=Functional-Windows$(TargetGroup)-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' == 'true'"/>
183+
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(FunctionalTestsProj)&quot; -p:Configuration=$(Configuration) -p:Target$(TFGroup)Version=$(TF) -p:ReferenceType=$(ReferenceType) --no-build -v n --collect &quot;Code coverage&quot; -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Windows$(TargetGroup) --filter &quot;category!=non$(TargetGroup)tests&amp;category!=failing&amp;category!=nonwindowstests&quot; &quot;--logger:trx;LogFilePrefix=Functional-Windows$(TargetGroup)-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' == 'true'"/>
184184
<!-- Unix -->
185-
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(FunctionalTestsProj)&quot; -p:Configuration=$(Configuration) -p:TargetNetCoreVersion=$(TF) --no-build -v n -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Unixnetcoreapp --collect &quot;Code coverage&quot; --filter &quot;category!=nonnetcoreapptests&amp;category!=failing&amp;category!=nonlinuxtests&amp;category!=nonuaptests&quot; &quot;--logger:trx;LogFilePrefix=Functional-Unixnetcoreapp-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' != 'true'"/>
185+
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(FunctionalTestsProj)&quot; -p:Configuration=$(Configuration) -p:TargetNetCoreVersion=$(TF) -p:ReferenceType=$(ReferenceType) --no-build -v n -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Unixnetcoreapp --collect &quot;Code coverage&quot; --filter &quot;category!=nonnetcoreapptests&amp;category!=failing&amp;category!=nonlinuxtests&amp;category!=nonuaptests&quot; &quot;--logger:trx;LogFilePrefix=Functional-Unixnetcoreapp-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' != 'true'"/>
186186
</Target>
187187

188188
<Target Name="RunManualTests">
189189
<!-- Windows -->
190-
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(ManualTestsProj)&quot; -p:Configuration=$(Configuration) -p:Target$(TFGroup)Version=$(TF) --no-build -l &quot;console;verbosity=normal&quot; --collect &quot;Code coverage&quot; -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Windows$(TargetGroup) --filter &quot;category!=non$(TargetGroup)tests&amp;category!=failing&amp;category!=nonwindowstests&quot; &quot;--logger:trx;LogFilePrefix=Manual-Windows$(TargetGroup)-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' == 'true'"/>
190+
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(ManualTestsProj)&quot; -p:Configuration=$(Configuration) -p:Target$(TFGroup)Version=$(TF) -p:ReferenceType=$(ReferenceType) --no-build -l &quot;console;verbosity=normal&quot; --collect &quot;Code coverage&quot; -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Windows$(TargetGroup) --filter &quot;category!=non$(TargetGroup)tests&amp;category!=failing&amp;category!=nonwindowstests&quot; &quot;--logger:trx;LogFilePrefix=Manual-Windows$(TargetGroup)-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' == 'true'"/>
191191
<!-- Unix -->
192-
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(ManualTestsProj)&quot; -p:Configuration=$(Configuration) -p:TargetNetCoreVersion=$(TF) --no-build -l &quot;console;verbosity=normal&quot; --collect &quot;Code coverage&quot; -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Unixnetcoreapp --filter &quot;category!=nonnetcoreapptests&amp;category!=failing&amp;category!=nonlinuxtests&amp;category!=nonuaptests&quot; &quot;--logger:trx;LogFilePrefix=Manual-Unixnetcoreapp-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' != 'true'"/>
192+
<Exec ConsoleToMsBuild="true" Command="$(DotnetPath)dotnet test &quot;@(ManualTestsProj)&quot; -p:Configuration=$(Configuration) -p:TargetNetCoreVersion=$(TF) -p:ReferenceType=$(ReferenceType) --no-build -l &quot;console;verbosity=normal&quot; --collect &quot;Code coverage&quot; -p:TestSet=$(TestSet) --results-directory $(ResultsDirectory) -p:TestTargetOS=Unixnetcoreapp --filter &quot;category!=nonnetcoreapptests&amp;category!=failing&amp;category!=nonlinuxtests&amp;category!=nonuaptests&quot; &quot;--logger:trx;LogFilePrefix=Manual-Unixnetcoreapp-$(TestSet)&quot;" Condition="'$(IsEnabledWindows)' != 'true'"/>
193193
</Target>
194194

195195
<Target Name="Clean">

eng/pipelines/common/templates/jobs/build-signed-akv-package-job.yml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ parameters:
1717

1818
jobs:
1919
- job: build_signed_akv_package
20+
displayName: 'Build Signed AKV Provider Package'
2021
pool:
2122
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs
2223

@@ -59,20 +60,11 @@ jobs:
5960
product: AKV
6061
referenceType: package
6162

62-
# Publish symbols to private server
63+
# Publish symbols to servers
6364
- template: ../steps/publish-symbols-step.yml@self
6465
parameters:
65-
SymAccount: $(PrivateSymAccount)
66-
referenceType: package
67-
symbolsVersion: ${{variables.AKVNuGetPackageVersion }}
68-
product: AKV
69-
publishSymbols: ${{ parameters['PublishSymbols'] }}
70-
71-
# Publish symbols to public server
72-
- template: ../steps/publish-symbols-step.yml@self
73-
parameters:
74-
SymAccount: $(PublicSymAccount)
7566
referenceType: package
7667
symbolsVersion: ${{variables.AKVNuGetPackageVersion }}
7768
product: AKV
7869
publishSymbols: ${{ parameters['PublishSymbols'] }}
70+
symbolsArtifactName: akv_symbols_$(System.TeamProject)_$(Build.Repository.Name)_$(Build.SourceBranchName)_$(NuGetPackageVersion)_$(System.TimelineId)

eng/pipelines/common/templates/jobs/build-signed-package-job.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ parameters:
1717

1818
jobs:
1919
- job: build_signed_package
20+
displayName: 'Build Signed MDS Package'
2021
pool:
2122
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs
2223

@@ -49,14 +50,8 @@ jobs:
4950
parameters:
5051
product: MDS
5152

52-
# Publish symbols to private server
53+
# Publish symbols to servers
5354
- template: ../steps/publish-symbols-step.yml@self
5455
parameters:
55-
SymAccount: $(PrivateSymAccount)
56-
publishSymbols: ${{ parameters['PublishSymbols'] }}
57-
58-
# Publish symbols to public server
59-
- template: ../steps/publish-symbols-step.yml@self
60-
parameters:
61-
SymAccount: $(PublicSymAccount)
6256
publishSymbols: ${{ parameters['PublishSymbols'] }}
57+
symbolsArtifactName: mds_symbols_$(System.TeamProject)_$(Build.Repository.Name)_$(Build.SourceBranchName)_$(NuGetPackageVersion)_$(System.TimelineId)
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#################################################################################
2+
# Licensed to the .NET Foundation under one or more agreements. #
3+
# The .NET Foundation licenses this file to you under the MIT license. #
4+
# See the LICENSE file in the project root for more information. #
5+
#################################################################################
6+
parameters:
7+
- name: poolName
8+
type: string
9+
default: $(ci_var_defaultPoolName)
10+
11+
- name: imageOverride
12+
type: string
13+
default: ADO-MMS22-SQL19
14+
15+
- name: artifactName
16+
type: string
17+
default: Artifacts
18+
19+
- name: platform
20+
type: string
21+
default: $(Platform)
22+
23+
- name: configuration
24+
type: string
25+
default: $(Configuration)
26+
27+
- name: prebuildSteps
28+
type: stepList
29+
default: []
30+
31+
jobs:
32+
- job: build_nugets
33+
34+
pool:
35+
name: ${{parameters.poolName }}
36+
demands:
37+
- imageOverride -equals ${{ parameters.imageOverride }}
38+
- msbuild
39+
40+
variables:
41+
- template: ../../../libraries/ci-build-variables.yml@self
42+
43+
steps:
44+
- ${{ if ne(parameters.prebuildSteps, '') }}:
45+
- ${{ parameters.prebuildSteps }} # extra steps to run before the build like downloading sni and the required configuration
46+
47+
- template: ../steps/ci-project-build-step.yml@self
48+
parameters:
49+
platform: ${{ parameters.platform }}
50+
configuration: ${{ parameters.configuration }}
51+
operatingSystem: Windows
52+
build: all
53+
54+
- template: ../steps/generate-nuget-package-step.yml@self
55+
parameters:
56+
NugetPackageVersion: $(NugetPackageVersion)
57+
configuration: $(Configuration)
58+
nuspecPath: 'tools/specs/Microsoft.Data.SqlClient.nuspec'
59+
OutputDirectory: $(packagePath)
60+
generateSymbolsPackage: false
61+
displayName: 'Generate NuGet package M.D.SqlClient'
62+
63+
- template: ../steps/generate-nuget-package-step.yml@self
64+
parameters:
65+
NugetPackageVersion: $(NugetPackageVersion)
66+
configuration: $(Configuration)
67+
nuspecPath: 'tools/specs/add-ons/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.nuspec'
68+
OutputDirectory: $(packagePath)
69+
generateSymbolsPackage: false
70+
installNuget: false
71+
displayName: 'Generate NuGet package AKV Provider'
72+
73+
- task: PublishBuildArtifacts@1
74+
displayName: 'Publish Artifact: Artifacts'
75+
inputs:
76+
PathtoPublish: $(packagePath)
77+
ArtifactName: ${{ parameters.artifactName }}
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
#################################################################################
2+
# Licensed to the .NET Foundation under one or more agreements. #
3+
# The .NET Foundation licenses this file to you under the MIT license. #
4+
# See the LICENSE file in the project root for more information. #
5+
#################################################################################
6+
parameters:
7+
- name: debug
8+
type: boolean
9+
default: false
10+
11+
- name: upload
12+
type: string
13+
default: $(ci_var_uploadTestResult)
14+
15+
- name: poolName
16+
type: string
17+
default: $(defaultHostedPoolName)
18+
19+
- name: image
20+
type: string
21+
default: 'windows-2022'
22+
23+
- name: downloadArtifactsSteps
24+
type: stepList
25+
default: []
26+
27+
jobs:
28+
- job: CodeCoverage
29+
displayName: 'Merge Code Coverage'
30+
31+
variables:
32+
uploadTestResult: ${{ parameters.upload }}
33+
34+
pool:
35+
name: '${{ parameters.poolName }}'
36+
vmImage: ${{ parameters.image }}
37+
38+
steps:
39+
- ${{if eq(parameters.debug, true)}}:
40+
- powershell: |
41+
Get-ChildItem env: | Sort-Object Name
42+
displayName: 'List Environment Variables [debug]'
43+
44+
- task: NuGetAuthenticate@1
45+
displayName: 'NuGet Authenticate'
46+
47+
- task: UseDotNet@2
48+
displayName: 'Use .NET SDK 7.0.x'
49+
inputs:
50+
version: 7.0.x
51+
52+
- ${{ parameters.downloadArtifactsSteps }}
53+
54+
- ${{ if eq(parameters.debug, true)}}:
55+
- powershell: |
56+
Get-ChildItem $(Build.SourcesDirectory)\coverageNetFx\ -Recurse -File -Filter *.coverage
57+
displayName: 'List coverageNetFx files [debug]'
58+
59+
- powershell: |
60+
Get-ChildItem $(Build.SourcesDirectory)\coverageNetCore\ -Recurse -File -Filter *.coverage
61+
displayName: 'List coverageNetCore files [debug]'
62+
63+
- powershell: |
64+
dotnet tool install --global dotnet-coverage
65+
66+
$files = Get-ChildItem $(Build.SourcesDirectory)\coverageNetFx\ -Recurse -File -Filter *.coverage
67+
# echo $files
68+
mkdir coverageNetFxXml
69+
$counter=0
70+
foreach ($file in $files) {
71+
& dotnet-coverage merge $file.FullName --output coverageNetFxXml\$((++$counter)).coveragexml --output-format xml
72+
}
73+
74+
$files = Get-ChildItem $(Build.SourcesDirectory)\coverageNetCore\ -Recurse -File -Filter *.coverage
75+
# echo $files
76+
mkdir coverageNetCoreXml
77+
$counter=0
78+
foreach ($file in $files) {
79+
& dotnet-coverage merge $file.FullName --output coverageNetCoreXml\$((++$counter)).coveragexml --output-format xml
80+
}
81+
82+
# dir coverageNetFxXml\
83+
# dir coverageNetCoreXml\
84+
85+
Write-Host "Clean up disk ... [removing coverageNetFx & coverageNetCore]"
86+
87+
Remove-Item $(Build.SourcesDirectory)\coverageNetFx -Recurse -Force
88+
Remove-Item $(Build.SourcesDirectory)\coverageNetCore -Recurse -Force
89+
90+
displayName: 'Convert coverage files to xml'
91+
92+
- ${{ if eq(parameters.debug, true)}}:
93+
- powershell: |
94+
dir coverageNetFxXml\
95+
dir coverageNetCoreXml\
96+
displayName: 'List converted files [debug]'
97+
98+
- script: |
99+
dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools
100+
101+
tools\reportgenerator "-reports:coverageNetFxXml\*.coveragexml" "-targetdir:coveragereportNetFx" "-reporttypes:Cobertura;" "-assemblyfilters:+microsoft.data.sqlclient.dll" "-sourcedirs:$(Build.SourcesDirectory)\src\Microsoft.Data.SqlClient\netfx\src;$(Build.SourcesDirectory)\src\Microsoft.Data.SqlClient\src" "-classfilters:+Microsoft.Data.*"
102+
103+
tools\reportgenerator "-reports:coverageNetCoreXml\*.coveragexml" "-targetdir:coveragereportAddOns" "-reporttypes:Cobertura;" "-assemblyfilters:+microsoft.data.sqlclient.alwaysencrypted.azurekeyvaultprovider.dll" "-sourcedirs:$(Build.SourcesDirectory)\src\Microsoft.Data.SqlClient\add-ons\AzureKeyVaultProvider" "-classfilters:+Microsoft.Data.*"
104+
105+
tools\reportgenerator "-reports:coverageNetCoreXml\*.coveragexml" "-targetdir:coveragereportNetCore" "-reporttypes:Cobertura;" "-assemblyfilters:+microsoft.data.sqlclient.dll" "-sourcedirs:$(Build.SourcesDirectory)\src\Microsoft.Data.SqlClient\netcore\src;$(Build.SourcesDirectory)\src\Microsoft.Data.SqlClient\src" "-classfilters:+Microsoft.Data.*"
106+
displayName: 'Run ReportGenerator'
107+
108+
- task: PublishCodeCoverageResults@2
109+
displayName: 'Publish code coverage from netcore'
110+
inputs:
111+
summaryFileLocation: '*\Cobertura.xml'
112+
113+
- powershell: |
114+
#download Codecov CLI
115+
$ProgressPreference = 'SilentlyContinue'
116+
Invoke-WebRequest -Uri https://cli.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe
117+
118+
./codecov --verbose upload-process --fail-on-error -t $(CODECOV_TOKEN) -f "coveragereportNetFx\Cobertura.xml" -F netfx
119+
./codecov --verbose upload-process --fail-on-error -t $(CODECOV_TOKEN) -f "coveragereportNetCore\Cobertura.xml" -F netcore
120+
./codecov --verbose upload-process --fail-on-error -t $(CODECOV_TOKEN) -f "coveragereportAddOns\Cobertura.xml" -F addons
121+
displayName: 'Upload to CodeCov'
122+
condition: and(succeeded(), eq(variables['uploadTestResult'], 'true'))

0 commit comments

Comments
 (0)