diff --git a/NuGet.config b/NuGet.config
index 386a0a813f85..5a69dbe9068f 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -4,10 +4,10 @@
-
+
-
+
@@ -26,10 +26,10 @@
-
+
-
+
diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props
index 85bfbc5f8f04..da411aa20037 100644
--- a/eng/Baseline.Designer.props
+++ b/eng/Baseline.Designer.props
@@ -2,138 +2,138 @@
$(MSBuildAllProjects);$(MSBuildThisFileFullPath)
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
-
-
+
+
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
@@ -141,263 +141,263 @@
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
-
-
+
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
-
+
+
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
-
-
-
+
+
+
- 7.0.2
+ 7.0.3
-
-
-
+
+
+
- 7.0.2
+ 7.0.3
-
-
+
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
-
-
+
+
+
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
-
+
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
@@ -406,15 +406,15 @@
- 0.3.2
+ 0.3.3
-
+
- 7.0.2
+ 7.0.3
@@ -422,71 +422,71 @@
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
-
+
+
-
+
-
-
+
+
- 7.0.2
+ 7.0.3
-
-
+
+
- 7.0.2
+ 7.0.3
-
-
+
+
- 7.0.2
+ 7.0.3
@@ -502,27 +502,27 @@
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
@@ -531,254 +531,254 @@
- 7.0.2
+ 7.0.3
-
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
-
+
+
-
-
+
+
-
-
+
+
- 7.0.2
+ 7.0.3
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
- 7.0.2
+ 7.0.3
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
-
-
-
+
+
+
+
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
@@ -794,46 +794,46 @@
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
-
-
+
+
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
@@ -843,7 +843,7 @@
- 7.0.2
+ 7.0.3
@@ -852,73 +852,73 @@
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
@@ -947,35 +947,35 @@
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
-
+
-
+
- 7.0.2
+ 7.0.3
- 7.0.2
+ 7.0.3
-
+
\ No newline at end of file
diff --git a/eng/Baseline.xml b/eng/Baseline.xml
index 839f499bd11f..a0f8fab4c27d 100644
--- a/eng/Baseline.xml
+++ b/eng/Baseline.xml
@@ -4,109 +4,109 @@ This file contains a list of all the packages and their versions which were rele
Update this list when preparing for a new patch.
-->
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 3245c9737666..2314f2d65fa2 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -9,37 +9,37 @@
-->
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-efcore
- 01a74ccf9db71c23785f6a6ace038fed2ee7ae41
+ e2a4877d7a05d5cf6e6c790913a9aa73d4e89494
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
@@ -53,9 +53,9 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
d099f075e45d2aa6007a22b71b45a08758559f80
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
@@ -177,9 +177,9 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
d099f075e45d2aa6007a22b71b45a08758559f80
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
https://github.com/dotnet/source-build-externals
@@ -190,9 +190,9 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
d099f075e45d2aa6007a22b71b45a08758559f80
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
@@ -206,17 +206,17 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
d099f075e45d2aa6007a22b71b45a08758559f80
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- d099f075e45d2aa6007a22b71b45a08758559f80
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
d099f075e45d2aa6007a22b71b45a08758559f80
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- d099f075e45d2aa6007a22b71b45a08758559f80
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
@@ -262,33 +262,33 @@
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
d099f075e45d2aa6007a22b71b45a08758559f80
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- 0a2bda10e81d901396c3cff95533529e3a93ad47
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
https://github.com/dotnet/xdt
@@ -298,26 +298,26 @@
-
+
https://dev.azure.com/dnceng/internal/_git/dotnet-runtime
- d099f075e45d2aa6007a22b71b45a08758559f80
+ 0a396acafe9a7d46bce11f4338dbb3dd0d99b1b4
-
+
https://github.com/dotnet/arcade
- 5f8519337c864af63b8692754ca0fa971bfc55d4
+ 4625a29565a94d3b8c5c680c8f1f1d53b2f216f5
-
+
https://github.com/dotnet/arcade
- 5f8519337c864af63b8692754ca0fa971bfc55d4
+ 4625a29565a94d3b8c5c680c8f1f1d53b2f216f5
-
+
https://github.com/dotnet/arcade
- 5f8519337c864af63b8692754ca0fa971bfc55d4
+ 4625a29565a94d3b8c5c680c8f1f1d53b2f216f5
-
+
https://github.com/dotnet/arcade
- 5f8519337c864af63b8692754ca0fa971bfc55d4
+ 4625a29565a94d3b8c5c680c8f1f1d53b2f216f5
diff --git a/eng/Versions.props b/eng/Versions.props
index 399f7712ab30..12deff6791ee 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -8,7 +8,7 @@
7
0
- 3
+ 4
true
7.0.0
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3-servicing.23069.10
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4-servicing.23115.8
7.0.0
7.0.0
7.0.0
- 7.0.3
+ 7.0.4
7.0.0
7.0.0
7.0.0
@@ -103,15 +103,15 @@
7.0.0
7.0.1
7.0.0
- 7.0.3-servicing.23069.10
+ 7.0.4-servicing.23115.8
7.0.0
- 7.0.1
+ 7.0.2
7.0.0
7.0.0
7.0.0
- 7.0.0
+ 7.0.1
7.0.0
- 7.0.0
+ 7.0.1
7.0.0
7.0.1
7.0.1
@@ -123,19 +123,19 @@
7.0.0
7.0.0
- 7.0.0
+ 7.0.1
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
- 7.0.3
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
+ 7.0.4
- 7.0.0-beta.23073.6
- 7.0.0-beta.23073.6
+ 7.0.0-beta.23114.3
+ 7.0.0-beta.23114.3
7.0.0-alpha.1.22505.1
@@ -238,7 +238,7 @@
5.0.17-servicing-22215-7
$(MicrosoftAspNetCoreAzureAppServicesSiteExtension50Version)
$(MicrosoftAspNetCoreAzureAppServicesSiteExtension50Version)
- 6.0.13-servicing-22580-13
+ 6.0.14-servicing-23074-3
$(MicrosoftAspNetCoreAzureAppServicesSiteExtension60Version)
$(MicrosoftAspNetCoreAzureAppServicesSiteExtension60Version)
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
index bab18543d6c4..bcb579e37a91 100644
--- a/eng/common/generate-locproject.ps1
+++ b/eng/common/generate-locproject.ps1
@@ -34,6 +34,25 @@ $jsonTemplateFiles | ForEach-Object {
$jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
$wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them
+if (-not $wxlFiles) {
+ $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files
+ if ($wxlEnFiles) {
+ $wxlFiles = @()
+ $wxlEnFiles | ForEach-Object {
+ $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
+ $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
+ }
+ }
+}
+
+$macosHtmlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\.lproj\\.+\.html" } # add installer HTML files
+$macosHtmlFiles = @()
+if ($macosHtmlEnFiles) {
+ $macosHtmlEnFiles | ForEach-Object {
+ $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
+ $macosHtmlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
+ }
+}
$xlfFiles = @()
@@ -91,6 +110,7 @@ $locJson = @{
)
},
@{
+ LanguageSet = $LanguageSet
CloneLanguageSet = "WiX_CloneLanguages"
LssFiles = @( "wxl_loc.lss" )
LocItems = @(
@@ -98,8 +118,7 @@ $locJson = @{
$outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
$continue = $true
foreach ($exclusion in $exclusions.Exclusions) {
- if ($_.FullName.Contains($exclusion))
- {
+ if ($_.FullName.Contains($exclusion)) {
$continue = $false
}
}
@@ -110,7 +129,30 @@ $locJson = @{
SourceFile = $sourceFile
CopyOption = "LangIDOnPath"
OutputPath = $outputPath
- Languages = "cs-CZ;de-DE;es-ES;fr-FR;it-IT;ja-JP;ko-KR;pl-PL;pt-BR;ru-RU;tr-TR;zh-CN;zh-TW"
+ }
+ }
+ }
+ )
+ },
+ @{
+ LanguageSet = $LanguageSet
+ CloneLanguageSet = "VS_macOS_CloneLanguages"
+ LssFiles = @( ".\eng\common\loc\P22DotNetHtmlLocalization.lss" )
+ LocItems = @(
+ $macosHtmlFiles | ForEach-Object {
+ $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
+ $continue = $true
+ foreach ($exclusion in $exclusions.Exclusions) {
+ if ($_.FullName.Contains($exclusion)) {
+ $continue = $false
+ }
+ }
+ $sourceFile = ($_.FullName | Resolve-Path -Relative)
+ if ($continue) {
+ return @{
+ SourceFile = $sourceFile
+ CopyOption = "LangIDOnPath"
+ OutputPath = $outputPath
}
}
}
diff --git a/eng/common/loc/P22DotNetHtmlLocalization.lss b/eng/common/loc/P22DotNetHtmlLocalization.lss
new file mode 100644
index 000000000000..6661fed566e4
Binary files /dev/null and b/eng/common/loc/P22DotNetHtmlLocalization.lss differ
diff --git a/eng/common/templates/job/execute-sdl.yml b/eng/common/templates/job/execute-sdl.yml
index aaeb83b4dcbd..7c164ac02f4d 100644
--- a/eng/common/templates/job/execute-sdl.yml
+++ b/eng/common/templates/job/execute-sdl.yml
@@ -46,6 +46,7 @@ jobs:
- template: /eng/common/templates/variables/sdl-variables.yml
- name: GuardianVersion
value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }}
+ - template: /eng/common/templates/variables/pool-providers.yml
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
@@ -53,7 +54,7 @@ jobs:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
- checkout: self
diff --git a/eng/common/templates/job/onelocbuild.yml b/eng/common/templates/job/onelocbuild.yml
index 6b8fc9970808..60ab00c4de3a 100644
--- a/eng/common/templates/job/onelocbuild.yml
+++ b/eng/common/templates/job/onelocbuild.yml
@@ -14,6 +14,7 @@ parameters:
ReusePr: true
UseLfLineEndings: true
UseCheckedInLocProjectJson: false
+ SkipLocProjectJsonGeneration: false
LanguageSet: VS_Main_Languages
LclSource: lclFilesInRepo
LclPackageId: ''
@@ -22,13 +23,25 @@ parameters:
MirrorRepo: ''
MirrorBranch: main
condition: ''
+ JobNameSuffix: ''
jobs:
-- job: OneLocBuild
+- job: OneLocBuild${{ parameters.JobNameSuffix }}
dependsOn: ${{ parameters.dependsOn }}
- displayName: OneLocBuild
+ displayName: OneLocBuild${{ parameters.JobNameSuffix }}
+
+ variables:
+ - group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
+ - name: _GenerateLocProjectArguments
+ value: -SourcesDirectory ${{ parameters.SourcesDirectory }}
+ -LanguageSet "${{ parameters.LanguageSet }}"
+ -CreateNeutralXlfs
+ - ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}:
+ - name: _GenerateLocProjectArguments
+ value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson
+ - template: /eng/common/templates/variables/pool-providers.yml
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
@@ -40,27 +53,17 @@ jobs:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
- variables:
- - group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
- - name: _GenerateLocProjectArguments
- value: -SourcesDirectory ${{ parameters.SourcesDirectory }}
- -LanguageSet "${{ parameters.LanguageSet }}"
- -CreateNeutralXlfs
- - ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}:
- - name: _GenerateLocProjectArguments
- value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson
-
-
steps:
- - task: Powershell@2
- inputs:
- filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
- arguments: $(_GenerateLocProjectArguments)
- displayName: Generate LocProject.json
- condition: ${{ parameters.condition }}
+ - ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}:
+ - task: Powershell@2
+ inputs:
+ filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
+ arguments: $(_GenerateLocProjectArguments)
+ displayName: Generate LocProject.json
+ condition: ${{ parameters.condition }}
- task: OneLocBuild@2
displayName: OneLocBuild
diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml
index 1cbb6a0c5600..c5fedd7f70ce 100644
--- a/eng/common/templates/job/publish-build-assets.yml
+++ b/eng/common/templates/job/publish-build-assets.yml
@@ -34,15 +34,15 @@ jobs:
- job: Asset_Registry_Publish
dependsOn: ${{ parameters.dependsOn }}
+ timeoutInMinutes: 150
${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
displayName: Publish Assets
${{ else }}:
displayName: Publish to Build Asset Registry
- pool: ${{ parameters.pool }}
-
variables:
+ - template: /eng/common/templates/variables/pool-providers.yml
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: Publish-Build-Assets
- group: AzureDevOps-Artifact-Feeds-Pats
@@ -51,6 +51,16 @@ jobs:
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
- template: /eng/common/templates/post-build/common-variables.yml
+ pool:
+ # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
+ ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
+ name: VSEngSS-MicroBuild2022-1ES
+ demands: Cmd
+ # If it's not devdiv, it's dnceng
+ ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
+ name: $(DncEngInternalBuildPool)
+ demands: ImageOverride -equals windows.vs2019.amd64
+
steps:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: DownloadBuildArtifacts@0
diff --git a/eng/common/templates/job/source-build.yml b/eng/common/templates/job/source-build.yml
index b6137f44ada1..8a3deef2b727 100644
--- a/eng/common/templates/job/source-build.yml
+++ b/eng/common/templates/job/source-build.yml
@@ -44,13 +44,16 @@ jobs:
${{ if eq(parameters.platform.pool, '') }}:
# The default VM host AzDO pool. This should be capable of running Docker containers: almost all
# source-build builds run in Docker, including the default managed platform.
+ # /eng/common/templates/variables/pool-providers.yml can't be used here (some customers declare variables already), so duplicate its logic
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
- name: NetCore-Svc-Public
+ name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')]
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
+
${{ if eq(variables['System.TeamProject'], 'internal') }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')]
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
+
${{ if ne(parameters.platform.pool, '') }}:
pool: ${{ parameters.platform.pool }}
diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml
index 59a42c338ab1..09c506d11855 100644
--- a/eng/common/templates/job/source-index-stage1.yml
+++ b/eng/common/templates/job/source-index-stage1.yml
@@ -22,16 +22,17 @@ jobs:
value: ${{ parameters.binlogPath }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: source-dot-net stage1 variables
+ - template: /eng/common/templates/variables/pool-providers.yml
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
- name: NetCore-Svc-Public
+ name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml
index 297e7946b0be..289bb2396ce8 100644
--- a/eng/common/templates/jobs/jobs.yml
+++ b/eng/common/templates/jobs/jobs.yml
@@ -88,15 +88,6 @@ jobs:
- ${{ job.job }}
- ${{ if eq(parameters.enableSourceBuild, true) }}:
- Source_Build_Complete
- pool:
- # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- name: VSEngSS-MicroBuild2022-1ES
- demands: Cmd
- # If it's not devdiv, it's dnceng
- ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
- name: NetCore1ESPool-Svc-Internal
- demands: ImageOverride -equals windows.vs2019.amd64
runAsPublic: ${{ parameters.runAsPublic }}
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml
index 957375c1c1a6..c051f1b65e9c 100644
--- a/eng/common/templates/post-build/post-build.yml
+++ b/eng/common/templates/post-build/post-build.yml
@@ -95,6 +95,7 @@ stages:
displayName: Validate Build Assets
variables:
- template: common-variables.yml
+ - template: /eng/common/templates/variables/pool-providers.yml
jobs:
- job:
displayName: NuGet Validation
@@ -106,7 +107,7 @@ stages:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ else }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
@@ -143,7 +144,7 @@ stages:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ else }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
@@ -203,7 +204,7 @@ stages:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ else }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
@@ -251,6 +252,7 @@ stages:
displayName: Publish using Darc
variables:
- template: common-variables.yml
+ - template: /eng/common/templates/variables/pool-providers.yml
jobs:
- job:
displayName: Publish Using Darc
@@ -262,7 +264,7 @@ stages:
demands: Cmd
# If it's not devdiv, it's dnceng
${{ else }}:
- name: NetCore1ESPool-Svc-Internal
+ name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
- template: setup-maestro-vars.yml
@@ -282,4 +284,4 @@ stages:
-MaestroToken '$(MaestroApiAccessToken)'
-WaitPublishingFinish true
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
- -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
\ No newline at end of file
+ -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml
new file mode 100644
index 000000000000..99c80212bac1
--- /dev/null
+++ b/eng/common/templates/variables/pool-providers.yml
@@ -0,0 +1,57 @@
+# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool,
+# otherwise it should go into the "normal" pools. This separates out the queueing and billing of released branches.
+
+# Motivation:
+# Once a given branch of a repository's output has been officially "shipped" once, it is then considered to be COGS
+# (Cost of goods sold) and should be moved to a servicing pool provider. This allows both separation of queueing
+# (allowing release builds and main PR builds to not intefere with each other) and billing (required for COGS)
+# Additionally, the pool provider name itself may be subject to change when the .NET Core Engineering Services
+# team needs to move resources around and create new and potentially differently-named pools. Using this template
+# file from an Arcade-ified repo helps guard against both having to update one's release/* branches and renaming.
+
+# How to use:
+# This yaml assumes your shipped product branches use the naming convention "release/..." (which many do).
+# If we find alternate naming conventions in broad usage these can be added to the condition below.
+#
+# First, import the template in an arcade-ified repo to pick up the variables, e.g.:
+#
+# variables:
+# - template: /eng/common/templates/variables/pool-providers.yml
+#
+# ... then anywhere specifying the pool provider use the runtime variables,
+# $(DncEngInternalBuildPool) and $ (DncEngPublicBuildPool), e.g.:
+#
+# pool:
+# name: $(DncEngInternalBuildPool)
+# demands: ImageOverride -equals windows.vs2019.amd64
+
+variables:
+ # Coalesce the target and source branches so we know when a PR targets a release branch
+ # If these variables are somehow missing, fall back to main (tends to have more capacity)
+
+ # Any new -Svc alternative pools should have variables added here to allow for splitting work
+ - name: DncEngPublicBuildPool
+ value: $[
+ replace(
+ replace(
+ eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'),
+ True,
+ 'NetCore-Svc-Public'
+ ),
+ False,
+ 'NetCore-Public'
+ )
+ ]
+
+ - name: DncEngInternalBuildPool
+ value: $[
+ replace(
+ replace(
+ eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'),
+ True,
+ 'NetCore1ESPool-Svc-Internal'
+ ),
+ False,
+ 'NetCore1ESPool-Internal'
+ )
+ ]
\ No newline at end of file
diff --git a/global.json b/global.json
index 956c20ef2193..4648b9ed9518 100644
--- a/global.json
+++ b/global.json
@@ -1,9 +1,9 @@
{
"sdk": {
- "version": "7.0.102"
+ "version": "7.0.103"
},
"tools": {
- "dotnet": "7.0.102",
+ "dotnet": "7.0.103",
"runtimes": {
"dotnet/x86": [
"$(MicrosoftNETCoreBrowserDebugHostTransportVersion)"
@@ -27,7 +27,7 @@
},
"msbuild-sdks": {
"Yarn.MSBuild": "1.22.10",
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.23073.6",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.23073.6"
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.23114.3",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.23114.3"
}
}
diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs
index 76be10479af3..296eed5cb569 100644
--- a/src/Framework/test/TargetingPackTests.cs
+++ b/src/Framework/test/TargetingPackTests.cs
@@ -199,7 +199,10 @@ public void AssembliesAreReferenceAssemblies()
Assert.True(hasRefAssemblyAttribute, $"{path} should have {nameof(ReferenceAssemblyAttribute)}");
#pragma warning disable SYSLIB0037 // AssemblyName.ProcessorArchitecture is obsolete
- Assert.Equal(ProcessorArchitecture.None, assemblyName.ProcessorArchitecture);
+ // MSIL and None represent platform neutral assemblies such that reference assemblies can always be loaded.
+ Assert.True(assemblyName.ProcessorArchitecture == ProcessorArchitecture.MSIL ||
+ assemblyName.ProcessorArchitecture == ProcessorArchitecture.None
+ );
#pragma warning restore SYSLIB0037
});
}
diff --git a/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs b/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs
index 6ab377f47815..7029c532f15b 100644
--- a/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs
+++ b/src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs
@@ -1353,15 +1353,16 @@ public async Task Settings_MaxHeaderListSize_Server(string scheme)
{
ConfigureKestrel(webHostBuilder, scheme);
webHostBuilder.ConfigureServices(AddTestLogging)
- .Configure(app => app.Run(context => throw new NotImplementedException()));
+ .Configure(app => app.Run(context => context.Response.WriteAsync("Hello World")));
});
using var host = await hostBuilder.StartAsync().DefaultTimeout();
var url = host.MakeUrl(scheme);
using var client = CreateClient();
- // There's no point in waiting for the settings to sync, the client doesn't check the header list size setting.
- // https://github.com/dotnet/runtime/blob/48a78bfa13e9c710851690621fc2c0fe1637802c/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs#L467-L494
+ // Send an initial request to ensure the settings get synced before the real test.
+ var responseBody = await client.GetStringAsync(url).DefaultTimeout();
+ Assert.Equal("Hello World", responseBody);
var request = CreateRequestMessage(HttpMethod.Get, url, content: null);
// The default size limit is 32kb.
@@ -1369,10 +1370,10 @@ public async Task Settings_MaxHeaderListSize_Server(string scheme)
{
request.Headers.Add("header" + i, oneKbString + i);
}
- var response = await client.SendAsync(request).DefaultTimeout();
- await host.StopAsync().DefaultTimeout();
+ var ex = await Assert.ThrowsAsync(() => client.SendAsync(request).DefaultTimeout());
+ Assert.Equal("The HTTP request headers length exceeded the server limit of 32768 bytes.", ex.Message);
- Assert.Equal(HttpStatusCode.RequestHeaderFieldsTooLarge, response.StatusCode);
+ await host.StopAsync().DefaultTimeout();
}
[Theory]
diff --git a/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs b/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs
index 230af87fc33e..48f04e5265d6 100644
--- a/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs
+++ b/src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs
@@ -3,7 +3,6 @@
using System.Collections.Concurrent;
using System.Diagnostics.CodeAnalysis;
-using System.Globalization;
using System.Linq;
using Microsoft.AspNetCore.SignalR.Internal;
using Microsoft.AspNetCore.SignalR.Protocol;
@@ -340,7 +339,10 @@ public override async Task InvokeConnectionAsync(string connectionId, stri
throw new IOException($"Connection '{connectionId}' does not exist.");
}
- var invocationId = Interlocked.Increment(ref _lastInvocationId).ToString(NumberFormatInfo.InvariantInfo);
+ var id = Interlocked.Increment(ref _lastInvocationId);
+ // prefix the client result ID with 's' for server, so that it won't conflict with other CompletionMessage's from the client
+ // e.g. Stream IDs when completing
+ var invocationId = $"s{id}";
using var _ = CancellationTokenUtils.CreateLinkedToken(cancellationToken,
connection.ConnectionAborted, out var linkedToken);
diff --git a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs
index 3b30eb6f6b10..da5078458fa2 100644
--- a/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs
+++ b/src/SignalR/server/SignalR/test/HubConnectionHandlerTests.ClientResult.cs
@@ -453,11 +453,17 @@ public async Task ClientResultInUploadStreamingMethodWorks()
{
var connectionHandlerTask = await client.ConnectAsync(connectionHandler).DefaultTimeout();
- var invocationId = await client.BeginUploadStreamAsync("1", nameof(MethodHub.GetClientResultWithStream), new[] { "id" }, Array.Empty