Explorar el Código

Merge branch 'master' into merge/release/5.0-to-master

Chris Ross hace 5 años
padre
commit
ecf352fbd9

+ 6 - 6
eng/Version.Details.xml

@@ -313,17 +313,17 @@
       <Uri>https://github.com/dotnet/runtime</Uri>
       <Uri>https://github.com/dotnet/runtime</Uri>
       <Sha>4fef87c65e7466000884aeb9dee6498b162fe2fa</Sha>
       <Sha>4fef87c65e7466000884aeb9dee6498b162fe2fa</Sha>
     </Dependency>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="6.0.0-beta.20520.8">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20506.7">
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>7fbf2a7703498067569d07a21776b91e599028e2</Sha>
+      <Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
     </Dependency>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="6.0.0-beta.20520.8">
+    <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="5.0.0-beta.20506.7">
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>7fbf2a7703498067569d07a21776b91e599028e2</Sha>
+      <Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
     </Dependency>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="6.0.0-beta.20520.8">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20506.7">
       <Uri>https://github.com/dotnet/arcade</Uri>
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>7fbf2a7703498067569d07a21776b91e599028e2</Sha>
+      <Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
     </Dependency>
     </Dependency>
   </ToolsetDependencies>
   </ToolsetDependencies>
 </Dependencies>
 </Dependencies>

+ 1 - 1
eng/Versions.props

@@ -137,7 +137,7 @@
     <MicrosoftEntityFrameworkCorePackageVersion>6.0.0-alpha.1.20509.5</MicrosoftEntityFrameworkCorePackageVersion>
     <MicrosoftEntityFrameworkCorePackageVersion>6.0.0-alpha.1.20509.5</MicrosoftEntityFrameworkCorePackageVersion>
     <MicrosoftEntityFrameworkCoreDesignPackageVersion>6.0.0-alpha.1.20509.5</MicrosoftEntityFrameworkCoreDesignPackageVersion>
     <MicrosoftEntityFrameworkCoreDesignPackageVersion>6.0.0-alpha.1.20509.5</MicrosoftEntityFrameworkCoreDesignPackageVersion>
     <!-- Packages from dotnet/arcade -->
     <!-- Packages from dotnet/arcade -->
-    <MicrosoftDotNetBuildTasksInstallersPackageVersion>6.0.0-beta.20520.8</MicrosoftDotNetBuildTasksInstallersPackageVersion>
+    <MicrosoftDotNetBuildTasksInstallersPackageVersion>5.0.0-beta.20506.7</MicrosoftDotNetBuildTasksInstallersPackageVersion>
   </PropertyGroup>
   </PropertyGroup>
   <!--
   <!--
 
 

+ 3 - 3
eng/common/SetupNugetSources.sh

@@ -4,7 +4,7 @@
 # This file should be removed as part of this issue: https://github.com/dotnet/arcade/issues/4080
 # This file should be removed as part of this issue: https://github.com/dotnet/arcade/issues/4080
 #
 #
 # What the script does is iterate over all package sources in the pointed NuGet.config and add a credential entry
 # What the script does is iterate over all package sources in the pointed NuGet.config and add a credential entry
-# under <packageSourceCredentials> for each Maestro's managed private feed. Two additional credential 
+# under <packageSourceCredentials> for each Maestro's managed private feed. Two additional credential
 # entries are also added for the two private static internal feeds: dotnet3-internal and dotnet3-internal-transport.
 # entries are also added for the two private static internal feeds: dotnet3-internal and dotnet3-internal-transport.
 #
 #
 # This script needs to be called in every job that will restore packages and which the base repo has
 # This script needs to be called in every job that will restore packages and which the base repo has
@@ -68,7 +68,7 @@ if [ "$?" != "0" ]; then
     sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile
     sed -i.bak "s|$ConfigNodeHeader|$ConfigNodeHeader${NL}$PackageSourcesTemplate|" $ConfigFile
 fi
 fi
 
 
-# Ensure there is a <packageSourceCredentials>...</packageSourceCredentials> section. 
+# Ensure there is a <packageSourceCredentials>...</packageSourceCredentials> section.
 grep -i "<packageSourceCredentials>" $ConfigFile
 grep -i "<packageSourceCredentials>" $ConfigFile
 if [ "$?" != "0" ]; then
 if [ "$?" != "0" ]; then
     echo "Adding <packageSourceCredentials>...</packageSourceCredentials> section."
     echo "Adding <packageSourceCredentials>...</packageSourceCredentials> section."
@@ -138,7 +138,7 @@ IFS=$PrevIFS
 
 
 for FeedName in ${PackageSources[@]} ; do
 for FeedName in ${PackageSources[@]} ; do
     # Check if there is no existing credential for this FeedName
     # Check if there is no existing credential for this FeedName
-    grep -i "<$FeedName>" $ConfigFile 
+    grep -i "<$FeedName>" $ConfigFile
     if [ "$?" != "0" ]; then
     if [ "$?" != "0" ]; then
         echo "Adding credentials for $FeedName."
         echo "Adding credentials for $FeedName."
 
 

+ 0 - 1
eng/common/cross/build-rootfs.sh

@@ -329,7 +329,6 @@ elif [[ -n $__CodeName ]]; then
     chroot $__RootfsDir apt-get -f -y install
     chroot $__RootfsDir apt-get -f -y install
     chroot $__RootfsDir apt-get -y install $__UbuntuPackages
     chroot $__RootfsDir apt-get -y install $__UbuntuPackages
     chroot $__RootfsDir symlinks -cr /usr
     chroot $__RootfsDir symlinks -cr /usr
-    chroot $__RootfsDir apt clean
 
 
     if [ $__SkipUnmount == 0 ]; then
     if [ $__SkipUnmount == 0 ]; then
         umount $__RootfsDir/* || true
         umount $__RootfsDir/* || true

+ 0 - 4
eng/common/cross/toolchain.cmake

@@ -139,10 +139,6 @@ function(add_toolchain_linker_flag Flag)
   set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}} ${Flag}" PARENT_SCOPE)
   set("CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}" "${CMAKE_SHARED_LINKER_FLAGS${CONFIG_SUFFIX}} ${Flag}" PARENT_SCOPE)
 endfunction()
 endfunction()
 
 
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-  add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/lib/${TOOLCHAIN}")
-  add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}")
-endif()
 
 
 if(TARGET_ARCH_NAME STREQUAL "armel")
 if(TARGET_ARCH_NAME STREQUAL "armel")
   if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only
   if(DEFINED TIZEN_TOOLCHAIN) # For Tizen only

+ 5 - 22
eng/common/performance/crossgen_perf.proj

@@ -27,18 +27,11 @@
   </PropertyGroup>
   </PropertyGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <SingleAssembly Include="System.Net.WebProxy.dll"/>                 <!-- Approx. 10 KB as of 2020/10 -->
-    <SingleAssembly Include="System.Net.Http.Json.dll"/>                <!-- Approx. 20 KB as of 2020/10 -->
-    <SingleAssembly Include="System.Drawing.Primitives.dll"/>           <!-- Approx. 50 KB as of 2020/10 -->
-    <SingleAssembly Include="System.ServiceModel.Syndication.dll"/>     <!-- Approx. 100 KB as of 2020/10 -->
-    <SingleAssembly Include="System.Net.Sockets.dll"/>                  <!-- Approx. 200 KB as of 2020/10 -->
-    <SingleAssembly Include="System.Linq.Expressions.dll"/>             <!-- Approx. 500 KB as of 2020/10 -->
-    <SingleAssembly Include="System.Data.Common.dll"/>                  <!-- Approx. 1 MB as of 2020/10 -->
-    <SingleAssembly Include="Microsoft.CodeAnalysis.dll"/>              <!-- Approx. 2 MB as of 2020/10 -->
-    <SingleAssembly Include="System.Private.Xml.dll"/>                  <!-- Approx. 3 MB as of 2020/10 -->
-    <SingleAssembly Include="Microsoft.CodeAnalysis.VisualBasic.dll"/>  <!-- Approx. 4 MB as of 2020/10 -->
-    <SingleAssembly Include="Microsoft.CodeAnalysis.CSharp.dll"/>       <!-- Approx. 4 MB as of 2020/10 -->
-    <SingleAssembly Include="System.Private.CoreLib.dll"/>              <!-- Approx. 10 MB as of 2020/10 -->
+    <SingleAssembly Include="System.Private.Xml.dll"/>
+    <SingleAssembly Include="System.Linq.Expressions.dll"/>
+    <SingleAssembly Include="Microsoft.CodeAnalysis.VisualBasic.dll"/>
+    <SingleAssembly Include="Microsoft.CodeAnalysis.CSharp.dll"/>
+    <SingleAssembly Include="System.Private.CoreLib.dll"/>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <Composite Include="framework-r2r.dll.rsp"/>
     <Composite Include="framework-r2r.dll.rsp"/>
@@ -58,13 +51,6 @@
     </Crossgen2WorkItem>
     </Crossgen2WorkItem>
   </ItemGroup>
   </ItemGroup>
 
 
-  <ItemGroup> 
-    <Crossgen2SingleThreadedWorkItem Include="@(SingleAssembly)">
-      <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
-      <Command>$(Python) $(Crossgen2Directory)test.py crossgen2 --core-root $(CoreRoot) --single %(Identity) --singlethreaded True</Command>
-    </Crossgen2SingleThreadedWorkItem>
-  </ItemGroup>
-
   <ItemGroup>
   <ItemGroup>
     <!-- Enable crossgen tests on Windows x64 and Windows x86 -->
     <!-- Enable crossgen tests on Windows x64 and Windows x86 -->
     <HelixWorkItem Include="@(CrossgenWorkItem -> 'Crossgen %(Identity)')" Condition="'$(AGENT_OS)' == 'Windows_NT'">
     <HelixWorkItem Include="@(CrossgenWorkItem -> 'Crossgen %(Identity)')" Condition="'$(AGENT_OS)' == 'Windows_NT'">
@@ -74,9 +60,6 @@
     <HelixWorkItem Include="@(Crossgen2WorkItem -> 'Crossgen2 %(Identity)')" Condition="'$(Architecture)' == 'x64'">
     <HelixWorkItem Include="@(Crossgen2WorkItem -> 'Crossgen2 %(Identity)')" Condition="'$(Architecture)' == 'x64'">
       <Timeout>4:00</Timeout>
       <Timeout>4:00</Timeout>
     </HelixWorkItem>
     </HelixWorkItem>
-    <HelixWorkItem Include="@(Crossgen2SingleThreadedWorkItem -> 'Crossgen2 single-threaded %(Identity)')" Condition="'$(Architecture)' == 'x64'">
-      <Timeout>4:00</Timeout>
-    </HelixWorkItem>
     <HelixWorkItem Include="Crossgen2 Composite Framework R2R" Condition="'$(Architecture)' == 'x64'">
     <HelixWorkItem Include="Crossgen2 Composite Framework R2R" Condition="'$(Architecture)' == 'x64'">
       <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>	
       <PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>	
       <Command>$(Python) $(Crossgen2Directory)test.py crossgen2 --core-root $(CoreRoot) --composite $(Crossgen2Directory)framework-r2r.dll.rsp</Command>
       <Command>$(Python) $(Crossgen2Directory)test.py crossgen2 --core-root $(CoreRoot) --composite $(Crossgen2Directory)framework-r2r.dll.rsp</Command>

+ 0 - 1
eng/common/performance/performance-setup.sh

@@ -201,7 +201,6 @@ if [[ "$internal" == true ]]; then
 fi
 fi
 
 
 if [[ "$mono_dotnet" != "" ]] && [[ "$monointerpreter" == "false" ]]; then
 if [[ "$mono_dotnet" != "" ]] && [[ "$monointerpreter" == "false" ]]; then
-    configurations="$configurations LLVM=$llvm MonoInterpreter=$monointerpreter MonoAOT=$monoaot"
     extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --category-exclusion-filter NoMono"
     extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --category-exclusion-filter NoMono"
 fi
 fi
 
 

+ 7 - 8
eng/common/post-build/sourcelink-validation.ps1

@@ -161,12 +161,9 @@ $ValidatePackage = {
 function CheckJobResult(
 function CheckJobResult(
     $result, 
     $result, 
     $packagePath,
     $packagePath,
-    [ref]$ValidationFailures,
-    [switch]$logErrors) {
-  if ($result -ne '0') {
-    if ($logError) {
-      Write-PipelineTelemetryError -Category 'SourceLink' -Message "$packagePath has broken SourceLink links."
-    }
+    [ref]$ValidationFailures) {
+  if ($jobResult.result -ne '0') {
+    Write-PipelineTelemetryError -Category 'SourceLink' -Message "$packagePath has broken SourceLink links."
     $ValidationFailures.Value++
     $ValidationFailures.Value++
   }
   }
 }
 }
@@ -231,14 +228,16 @@ function ValidateSourceLinkLinks {
 
 
       foreach ($Job in @(Get-Job -State 'Completed')) {
       foreach ($Job in @(Get-Job -State 'Completed')) {
         $jobResult = Wait-Job -Id $Job.Id | Receive-Job
         $jobResult = Wait-Job -Id $Job.Id | Receive-Job
-        CheckJobResult $jobResult.result $jobResult.packagePath ([ref]$ValidationFailures) -LogErrors
+        CheckJobResult $jobResult.result $jobResult.packagePath ([ref]$ValidationFailures)
         Remove-Job -Id $Job.Id
         Remove-Job -Id $Job.Id
       }
       }
     }
     }
 
 
   foreach ($Job in @(Get-Job)) {
   foreach ($Job in @(Get-Job)) {
     $jobResult = Wait-Job -Id $Job.Id | Receive-Job
     $jobResult = Wait-Job -Id $Job.Id | Receive-Job
-    CheckJobResult $jobResult.result $jobResult.packagePath ([ref]$ValidationFailures)
+    if ($jobResult -ne '0') {
+      $ValidationFailures++
+    }
     Remove-Job -Id $Job.Id
     Remove-Job -Id $Job.Id
   }
   }
   if ($ValidationFailures -gt 0) {
   if ($ValidationFailures -gt 0) {

+ 3 - 5
eng/common/templates/job/job.yml

@@ -27,7 +27,6 @@ parameters:
   useBuildManifest: false
   useBuildManifest: false
   mergeTestResults: false
   mergeTestResults: false
   testRunTitle: ''
   testRunTitle: ''
-  testResultsFormat: ''
   name: ''
   name: ''
   preSteps: []
   preSteps: []
   runAsPublic: false
   runAsPublic: false
@@ -132,8 +131,8 @@ jobs:
     - task: RichCodeNavIndexer@0
     - task: RichCodeNavIndexer@0
       displayName: RichCodeNav Upload
       displayName: RichCodeNav Upload
       inputs:
       inputs:
-        languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
-        environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
+        languages: 'csharp'
+        environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'prod') }}
         richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
         richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
       continueOnError: true
       continueOnError: true
 
 
@@ -203,7 +202,7 @@ jobs:
       continueOnError: true
       continueOnError: true
       condition: always()
       condition: always()
 
 
-  - ${{ if or(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, 'xunit')) }}:
+  - ${{ if eq(parameters.enablePublishTestResults, 'true') }}:
     - task: PublishTestResults@2
     - task: PublishTestResults@2
       displayName: Publish XUnit Test Results
       displayName: Publish XUnit Test Results
       inputs:
       inputs:
@@ -214,7 +213,6 @@ jobs:
         mergeTestResults: ${{ parameters.mergeTestResults }}
         mergeTestResults: ${{ parameters.mergeTestResults }}
       continueOnError: true
       continueOnError: true
       condition: always()
       condition: always()
-  - ${{ if or(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, 'vstest')) }}:
     - task: PublishTestResults@2
     - task: PublishTestResults@2
       displayName: Publish TRX Test Results
       displayName: Publish TRX Test Results
       inputs:
       inputs:

+ 0 - 8
eng/common/templates/post-build/common-variables.yml

@@ -29,14 +29,6 @@ variables:
   - name: NetCore_3_Tools_Channel_Id
   - name: NetCore_3_Tools_Channel_Id
     value: 344
     value: 344
 
 
-  # .NET Core 3.0 Internal Servicing
-  - name: InternalServicing_30_Channel_Id
-    value: 184
-
-  # .NET Core 3.0 Release
-  - name: PublicRelease_30_Channel_Id
-    value: 19
-
   # .NET Core 3.1 Release
   # .NET Core 3.1 Release
   - name: PublicRelease_31_Channel_Id
   - name: PublicRelease_31_Channel_Id
     value: 129
     value: 129

+ 177 - 181
eng/common/templates/post-build/post-build.yml

@@ -8,7 +8,7 @@ parameters:
   inline: true
   inline: true
 
 
   # Only used if inline==false. When set to true will stall the current build until
   # Only used if inline==false. When set to true will stall the current build until
-  # the Promotion Pipeline build finishes. Otherwise, the current build will continue 
+  # the Promotion Pipeline build finishes. Otherwise, the current build will continue
   # execution concurrently with the promotion build.
   # execution concurrently with the promotion build.
   waitPublishingFinish: true
   waitPublishingFinish: true
 
 
@@ -37,11 +37,11 @@ parameters:
   # Which stages should finish execution before post-build stages start
   # Which stages should finish execution before post-build stages start
   validateDependsOn:
   validateDependsOn:
   - build
   - build
-  publishDependsOn: 
+  publishDependsOn:
   - Validate
   - Validate
 
 
   # Channel ID's instantiated in this file.
   # Channel ID's instantiated in this file.
-  # When adding a new channel implementation the call to `check-channel-consistency.ps1` 
+  # When adding a new channel implementation the call to `check-channel-consistency.ps1`
   # needs to be updated with the new channel ID
   # needs to be updated with the new channel ID
   NetEngLatestChannelId: 2
   NetEngLatestChannelId: 2
   NetEngValidationChannelId: 9
   NetEngValidationChannelId: 9
@@ -65,182 +65,178 @@ parameters:
   VS167ChannelId: 1011
   VS167ChannelId: 1011
   VS168ChannelId: 1154
   VS168ChannelId: 1154
   VSMasterChannelId: 1012
   VSMasterChannelId: 1012
-  
-stages:
-- ${{ if or(and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')), eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}:
-  - stage: Validate
-    dependsOn: ${{ parameters.validateDependsOn }}
-    displayName: Validate Build Assets
-    variables:
-      - template: common-variables.yml
-    jobs:
-    - template: setup-maestro-vars.yml
-      parameters:
-        BARBuildId: ${{ parameters.BARBuildId }}
-        PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
-
-    - ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}:
-      - job:
-        displayName: Post-build Checks
-        dependsOn: setupMaestroVars
-        variables:
-          - name: TargetChannels
-            value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ]
-        pool:
-          vmImage: 'windows-2019'
-        steps:
-          - task: PowerShell@2
-            displayName: Maestro Channels Consistency
-            inputs:
-              filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1
-              arguments: -PromoteToChannels "$(TargetChannels)"
-                -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}}
-
-    - job:
-      displayName: NuGet Validation
-      dependsOn: setupMaestroVars
-      condition: eq( ${{ parameters.enableNugetValidation }}, 'true')
-      pool:
-        vmImage: 'windows-2019'
-      variables:
-        - name: AzDOProjectName
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ]
-        - name: AzDOPipelineId
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ]
-        - name: AzDOBuildId
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ]
-      steps:
-        - task: DownloadBuildArtifacts@0
-          displayName: Download Package Artifacts
-          inputs:
-            buildType: specific
-            buildVersionToDownload: specific
-            project: $(AzDOProjectName)
-            pipeline: $(AzDOPipelineId)
-            buildId: $(AzDOBuildId)
-            artifactName: PackageArtifacts
 
 
-        - task: PowerShell@2
-          displayName: Validate
-          inputs:
-            filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
-            arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ 
-              -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ 
+stages:
+- stage: Validate
+  dependsOn: ${{ parameters.validateDependsOn }}
+  displayName: Validate Build Assets
+  variables:
+    - template: common-variables.yml
+  jobs:
+  - template: setup-maestro-vars.yml
+    parameters:
+      BARBuildId: ${{ parameters.BARBuildId }}
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
 
 
+  - ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}:
     - job:
     - job:
-      displayName: Signing Validation
+      displayName: Post-build Checks
       dependsOn: setupMaestroVars
       dependsOn: setupMaestroVars
-      condition: eq( ${{ parameters.enableSigningValidation }}, 'true')
       variables:
       variables:
-        - template: common-variables.yml
-        - name: AzDOProjectName
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ]
-        - name: AzDOPipelineId
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ]
-        - name: AzDOBuildId
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ]
+        - name: TargetChannels
+          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ]
       pool:
       pool:
         vmImage: 'windows-2019'
         vmImage: 'windows-2019'
       steps:
       steps:
-        - ${{ if eq(parameters.useBuildManifest, true) }}:
-          - task: DownloadBuildArtifacts@0
-            displayName: Download build manifest
-            inputs:
-              buildType: specific
-              buildVersionToDownload: specific
-              project: $(AzDOProjectName)
-              pipeline: $(AzDOPipelineId)
-              buildId: $(AzDOBuildId)
-              artifactName: BuildManifests
-        - task: DownloadBuildArtifacts@0
-          displayName: Download Package Artifacts
-          inputs:
-            buildType: specific
-            buildVersionToDownload: specific
-            project: $(AzDOProjectName)
-            pipeline: $(AzDOPipelineId)
-            buildId: $(AzDOBuildId)
-            artifactName: PackageArtifacts
-
-        # This is necessary whenever we want to publish/restore to an AzDO private feed
-        # Since sdk-task.ps1 tries to restore packages we need to do this authentication here
-        # otherwise it'll complain about accessing a private feed.
-        - task: NuGetAuthenticate@0
-          displayName: 'Authenticate to AzDO Feeds'
-
         - task: PowerShell@2
         - task: PowerShell@2
-          displayName: Enable cross-org publishing
+          displayName: Maestro Channels Consistency
           inputs:
           inputs:
-            filePath: eng\common\enable-cross-org-publishing.ps1
-            arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
-
-        # Signing validation will optionally work with the buildmanifest file which is downloaded from
-        # Azure DevOps above.
-        - task: PowerShell@2
-          displayName: Validate
-          inputs:
-            filePath: eng\common\sdk-task.ps1
-            arguments: -task SigningValidation -restore -msbuildEngine vs
-              /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
-              /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
-              ${{ parameters.signingValidationAdditionalParameters }}
-
-        - template: ../steps/publish-logs.yml
-          parameters:
-            StageLabel: 'Validation'
-            JobLabel: 'Signing'
-
-    - job:
-      displayName: SourceLink Validation
-      dependsOn: setupMaestroVars
-      condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true')
-      variables:
-        - template: common-variables.yml
-        - name: AzDOProjectName
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ]
-        - name: AzDOPipelineId
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ]
-        - name: AzDOBuildId
-          value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ]
-      pool:
-        vmImage: 'windows-2019'
-      steps:
+            filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1
+            arguments: -PromoteToChannels "$(TargetChannels)"
+              -AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}}
+
+  - job:
+    displayName: NuGet Validation
+    dependsOn: setupMaestroVars
+    condition: eq( ${{ parameters.enableNugetValidation }}, 'true')
+    pool:
+      vmImage: 'windows-2019'
+    variables:
+      - name: AzDOProjectName
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ]
+      - name: AzDOPipelineId
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ]
+      - name: AzDOBuildId
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ]
+    steps:
+      - task: DownloadBuildArtifacts@0
+        displayName: Download Package Artifacts
+        inputs:
+          buildType: specific
+          buildVersionToDownload: specific
+          project: $(AzDOProjectName)
+          pipeline: $(AzDOPipelineId)
+          buildId: $(AzDOBuildId)
+          artifactName: PackageArtifacts
+
+      - task: PowerShell@2
+        displayName: Validate
+        inputs:
+          filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
+          arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
+            -ToolDestinationPath $(Agent.BuildDirectory)/Extract/
+
+  - job:
+    displayName: Signing Validation
+    dependsOn: setupMaestroVars
+    condition: eq( ${{ parameters.enableSigningValidation }}, 'true')
+    variables:
+      - template: common-variables.yml
+      - name: AzDOProjectName
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ]
+      - name: AzDOPipelineId
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ]
+      - name: AzDOBuildId
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ]
+    pool:
+      vmImage: 'windows-2019'
+    steps:
+      - ${{ if eq(parameters.useBuildManifest, true) }}:
         - task: DownloadBuildArtifacts@0
         - task: DownloadBuildArtifacts@0
-          displayName: Download Blob Artifacts
+          displayName: Download build manifest
           inputs:
           inputs:
             buildType: specific
             buildType: specific
             buildVersionToDownload: specific
             buildVersionToDownload: specific
             project: $(AzDOProjectName)
             project: $(AzDOProjectName)
             pipeline: $(AzDOPipelineId)
             pipeline: $(AzDOPipelineId)
             buildId: $(AzDOBuildId)
             buildId: $(AzDOBuildId)
-            artifactName: BlobArtifacts
-
-        - task: PowerShell@2
-          displayName: Validate
-          inputs:
-            filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1
-            arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ 
-              -ExtractPath $(Agent.BuildDirectory)/Extract/ 
-              -GHRepoName $(Build.Repository.Name) 
-              -GHCommit $(Build.SourceVersion)
-              -SourcelinkCliVersion $(SourceLinkCLIVersion)
-          continueOnError: true
-
-    - template: /eng/common/templates/job/execute-sdl.yml
-      parameters:
-        enable: ${{ parameters.SDLValidationParameters.enable }}
-        dependsOn: setupMaestroVars
-        additionalParameters: ${{ parameters.SDLValidationParameters.params }}
-        continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
-        artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }}
-        downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }}
+            artifactName: BuildManifests
+      - task: DownloadBuildArtifacts@0
+        displayName: Download Package Artifacts
+        inputs:
+          buildType: specific
+          buildVersionToDownload: specific
+          project: $(AzDOProjectName)
+          pipeline: $(AzDOPipelineId)
+          buildId: $(AzDOBuildId)
+          artifactName: PackageArtifacts
+
+      # This is necessary whenever we want to publish/restore to an AzDO private feed
+      # Since sdk-task.ps1 tries to restore packages we need to do this authentication here
+      # otherwise it'll complain about accessing a private feed.
+      - task: NuGetAuthenticate@0
+        displayName: 'Authenticate to AzDO Feeds'
+
+      - task: PowerShell@2
+        displayName: Enable cross-org publishing
+        inputs:
+          filePath: eng\common\enable-cross-org-publishing.ps1
+          arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
+
+      # Signing validation will optionally work with the buildmanifest file which is downloaded from
+      # Azure DevOps above.
+      - task: PowerShell@2
+        displayName: Validate
+        inputs:
+          filePath: eng\common\sdk-task.ps1
+          arguments: -task SigningValidation -restore -msbuildEngine vs
+            /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
+            /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
+            ${{ parameters.signingValidationAdditionalParameters }}
+
+      - template: ../steps/publish-logs.yml
+        parameters:
+          StageLabel: 'Validation'
+          JobLabel: 'Signing'
+
+  - job:
+    displayName: SourceLink Validation
+    dependsOn: setupMaestroVars
+    condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true')
+    variables:
+      - template: common-variables.yml
+      - name: AzDOProjectName
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ]
+      - name: AzDOPipelineId
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ]
+      - name: AzDOBuildId
+        value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ]
+    pool:
+      vmImage: 'windows-2019'
+    steps:
+      - task: DownloadBuildArtifacts@0
+        displayName: Download Blob Artifacts
+        inputs:
+          buildType: specific
+          buildVersionToDownload: specific
+          project: $(AzDOProjectName)
+          pipeline: $(AzDOPipelineId)
+          buildId: $(AzDOBuildId)
+          artifactName: BlobArtifacts
+
+      - task: PowerShell@2
+        displayName: Validate
+        inputs:
+          filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1
+          arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/
+            -ExtractPath $(Agent.BuildDirectory)/Extract/
+            -GHRepoName $(Build.Repository.Name)
+            -GHCommit $(Build.SourceVersion)
+            -SourcelinkCliVersion $(SourceLinkCLIVersion)
+        continueOnError: true
+
+  - template: /eng/common/templates/job/execute-sdl.yml
+    parameters:
+      enable: ${{ parameters.SDLValidationParameters.enable }}
+      dependsOn: setupMaestroVars
+      additionalParameters: ${{ parameters.SDLValidationParameters.params }}
+      continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }}
+      artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }}
+      downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }}
 
 
 - ${{ if or(ge(parameters.publishingInfraVersion, 3), eq(parameters.inline, 'false')) }}:
 - ${{ if or(ge(parameters.publishingInfraVersion, 3), eq(parameters.inline, 'false')) }}:
   - stage: publish_using_darc
   - stage: publish_using_darc
-    ${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}:
-      dependsOn: Validate
-    ${{ if and(ne(parameters.enableNugetValidation, 'true'), ne(parameters.enableSigningValidation, 'true'), ne(parameters.enableSourceLinkValidation, 'true'), ne(parameters.SDLValidationParameters.enable, 'true')) }}:
-      dependsOn: ${{ parameters.validateDependsOn }}
+    dependsOn: Validate
     displayName: Publish using Darc
     displayName: Publish using Darc
     variables:
     variables:
       - template: common-variables.yml
       - template: common-variables.yml
@@ -263,7 +259,7 @@ stages:
           displayName: Publish Using Darc
           displayName: Publish Using Darc
           inputs:
           inputs:
             filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
             filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
-            arguments: -BuildId $(BARBuildId) 
+            arguments: -BuildId $(BARBuildId)
               -PublishingInfraVersion ${{ parameters.PublishingInfraVersion }}
               -PublishingInfraVersion ${{ parameters.PublishingInfraVersion }}
               -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
               -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
               -MaestroToken '$(MaestroApiAccessToken)'
               -MaestroToken '$(MaestroApiAccessToken)'
@@ -274,7 +270,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -306,7 +302,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -370,7 +366,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -386,7 +382,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -402,7 +398,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -417,7 +413,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -432,7 +428,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -447,7 +443,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -462,7 +458,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -477,7 +473,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -492,7 +488,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -507,7 +503,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -517,12 +513,12 @@ stages:
       channelId: ${{ parameters.NetCoreSDK314xxInternalChannelId }}
       channelId: ${{ parameters.NetCoreSDK314xxInternalChannelId }}
       transportFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v3/index.json'
       transportFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v3/index.json'
       shippingFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v3/index.json'
       shippingFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v3/index.json'
-      symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-symbols/nuget/v3/index.json' 
+      symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-symbols/nuget/v3/index.json'
 
 
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -537,7 +533,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-internal-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -547,12 +543,12 @@ stages:
       channelId: ${{ parameters.NetCoreSDK313xxInternalChannelId }}
       channelId: ${{ parameters.NetCoreSDK313xxInternalChannelId }}
       transportFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v3/index.json'
       transportFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v3/index.json'
       shippingFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v3/index.json'
       shippingFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v3/index.json'
-      symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-symbols/nuget/v3/index.json' 
+      symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-symbols/nuget/v3/index.json'
 
 
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -567,7 +563,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -578,11 +574,11 @@ stages:
       transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json'
       transportFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-transport/nuget/v3/index.json'
       shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
       shippingFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json'
       symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
       symbolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json'
-      
+
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
@@ -597,7 +593,7 @@ stages:
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
   - template: \eng\common\templates\post-build\channels\generic-public-channel.yml
     parameters:
     parameters:
       BARBuildId: ${{ parameters.BARBuildId }}
       BARBuildId: ${{ parameters.BARBuildId }}
-      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}    
+      PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
       dependsOn: ${{ parameters.publishDependsOn }}
       dependsOn: ${{ parameters.publishDependsOn }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}
       publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }}

+ 1 - 1
eng/common/tools.ps1

@@ -540,7 +540,7 @@ function GetDefaultMSBuildEngine() {
 
 
 function GetNuGetPackageCachePath() {
 function GetNuGetPackageCachePath() {
   if ($env:NUGET_PACKAGES -eq $null) {
   if ($env:NUGET_PACKAGES -eq $null) {
-    # Use local cache on CI to ensure deterministic build. 
+    # Use local cache on CI to ensure deterministic build.
     # Avoid using the http cache as workaround for https://github.com/NuGet/Home/issues/3116
     # Avoid using the http cache as workaround for https://github.com/NuGet/Home/issues/3116
     # use global cache in dev builds to avoid cost of downloading packages.
     # use global cache in dev builds to avoid cost of downloading packages.
     # For directory normalization, see also: https://github.com/NuGet/Home/issues/7968
     # For directory normalization, see also: https://github.com/NuGet/Home/issues/7968

+ 2 - 2
global.json

@@ -30,7 +30,7 @@
   },
   },
   "msbuild-sdks": {
   "msbuild-sdks": {
     "Yarn.MSBuild": "1.15.2",
     "Yarn.MSBuild": "1.15.2",
-    "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.20520.8",
-    "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.20520.8"
+    "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20506.7",
+    "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20506.7"
   }
   }
 }
 }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
src/Components/Web.JS/dist/Release/blazor.server.js


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
src/Components/Web.JS/dist/Release/blazor.webassembly.js


+ 4 - 4
src/Components/Web.JS/src/Platform/Mono/MonoDebugger.ts

@@ -3,16 +3,16 @@ import { WebAssemblyResourceLoader } from '../WebAssemblyResourceLoader';
 const currentBrowserIsChrome = (window as any).chrome
 const currentBrowserIsChrome = (window as any).chrome
   && navigator.userAgent.indexOf('Edge') < 0; // Edge pretends to be Chrome
   && navigator.userAgent.indexOf('Edge') < 0; // Edge pretends to be Chrome
 
 
-
 let hasReferencedPdbs = false;
 let hasReferencedPdbs = false;
+let debugBuild = false;
 
 
 export function hasDebuggingEnabled() {
 export function hasDebuggingEnabled() {
-  return hasReferencedPdbs && currentBrowserIsChrome;
+  return (hasReferencedPdbs || debugBuild) && currentBrowserIsChrome;
 }
 }
 
 
 export function attachDebuggerHotkey(resourceLoader: WebAssemblyResourceLoader) {
 export function attachDebuggerHotkey(resourceLoader: WebAssemblyResourceLoader) {
   hasReferencedPdbs = !!resourceLoader.bootConfig.resources.pdb;
   hasReferencedPdbs = !!resourceLoader.bootConfig.resources.pdb;
-
+  debugBuild = resourceLoader.bootConfig.debugBuild;
   // Use the combination shift+alt+D because it isn't used by the major browsers
   // Use the combination shift+alt+D because it isn't used by the major browsers
   // for anything else by default
   // for anything else by default
   const altKeyName = navigator.platform.match(/^Mac/i) ? 'Cmd' : 'Alt';
   const altKeyName = navigator.platform.match(/^Mac/i) ? 'Cmd' : 'Alt';
@@ -23,7 +23,7 @@ export function attachDebuggerHotkey(resourceLoader: WebAssemblyResourceLoader)
   // Even if debugging isn't enabled, we register the hotkey so we can report why it's not enabled
   // Even if debugging isn't enabled, we register the hotkey so we can report why it's not enabled
   document.addEventListener('keydown', evt => {
   document.addEventListener('keydown', evt => {
     if (evt.shiftKey && (evt.metaKey || evt.altKey) && evt.code === 'KeyD') {
     if (evt.shiftKey && (evt.metaKey || evt.altKey) && evt.code === 'KeyD') {
-      if (!hasReferencedPdbs) {
+      if (!debugBuild && !hasReferencedPdbs) {
         console.error('Cannot start debugging, because the application was not compiled with debugging enabled.');
         console.error('Cannot start debugging, because the application was not compiled with debugging enabled.');
       } else if (!currentBrowserIsChrome) {
       } else if (!currentBrowserIsChrome) {
         console.error('Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging.');
         console.error('Currently, only Microsoft Edge (80+), or Google Chrome, are supported for debugging.');

+ 1 - 0
src/Components/test/E2ETest/Tests/GlobalizationTest.cs

@@ -89,6 +89,7 @@ namespace Microsoft.AspNetCore.Components.E2ETests.Tests
         [Theory]
         [Theory]
         [InlineData("en-US")]
         [InlineData("en-US")]
         [InlineData("fr-FR")]
         [InlineData("fr-FR")]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/27155")]
         public void CanSetCultureAndParseCultureInvariantNumbersAndDatesWithInputFields(string culture)
         public void CanSetCultureAndParseCultureInvariantNumbersAndDatesWithInputFields(string culture)
         {
         {
             var cultureInfo = CultureInfo.GetCultureInfo(culture);
             var cultureInfo = CultureInfo.GetCultureInfo(culture);

+ 2 - 0
src/Components/test/E2ETest/Tests/SignalRClientTest.cs

@@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Components.E2ETest.Infrastructure;
 using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures;
 using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures;
 using Microsoft.AspNetCore.E2ETesting;
 using Microsoft.AspNetCore.E2ETesting;
 using Microsoft.AspNetCore.Http.Connections;
 using Microsoft.AspNetCore.Http.Connections;
+using Microsoft.AspNetCore.Testing;
 using OpenQA.Selenium;
 using OpenQA.Selenium;
 using OpenQA.Selenium.Support.UI;
 using OpenQA.Selenium.Support.UI;
 using TestServer;
 using TestServer;
@@ -40,6 +41,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
         }
         }
 
 
         [Fact]
         [Fact]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/27156")]
         public void SignalRClientWorksWithLongPolling()
         public void SignalRClientWorksWithLongPolling()
         {
         {
             Browser.Exists(By.Id("hub-url")).SendKeys(
             Browser.Exists(By.Id("hub-url")).SendKeys(

+ 3 - 0
src/DefaultBuilder/startvs.cmd

@@ -0,0 +1,3 @@
+@ECHO OFF
+
+%~dp0..\..\startvs.cmd %~dp0DefaultBuilder.slnf

+ 3 - 0
src/Features/JsonPatch/startvs.cmd

@@ -0,0 +1,3 @@
+@ECHO OFF
+
+%~dp0..\..\..\startvs.cmd %~dp0JsonPatch.slnf

+ 2 - 0
src/Razor/Microsoft.AspNetCore.Razor.Language/test/Extensions/DefaultTagHelperOptimizationPassTest.cs

@@ -3,6 +3,7 @@
 
 
 using System.Linq;
 using System.Linq;
 using Microsoft.AspNetCore.Razor.Language.Intermediate;
 using Microsoft.AspNetCore.Razor.Language.Intermediate;
+using Microsoft.AspNetCore.Testing;
 using Xunit;
 using Xunit;
 
 
 namespace Microsoft.AspNetCore.Razor.Language.Extensions
 namespace Microsoft.AspNetCore.Razor.Language.Extensions
@@ -10,6 +11,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Extensions
     public class DefaultTagHelperOptimizationPassTest
     public class DefaultTagHelperOptimizationPassTest
     {
     {
         [Fact]
         [Fact]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/27154")]
         public void DefaultTagHelperOptimizationPass_Execute_ReplacesChildren()
         public void DefaultTagHelperOptimizationPass_Execute_ReplacesChildren()
         {
         {
             // Arrange
             // Arrange

+ 3 - 0
src/Razor/startvs.cmd

@@ -0,0 +1,3 @@
+@ECHO OFF
+
+%~dp0..\..\startvs.cmd %~dp0Razor.slnf

+ 1 - 0
src/Servers/IIS/IIS/test/Common.FunctionalTests/StartupTests.cs

@@ -990,6 +990,7 @@ namespace Microsoft.AspNetCore.Server.IIS.FunctionalTests
 
 
 
 
         [ConditionalTheory]
         [ConditionalTheory]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/27178")]
         [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10_20H1, SkipReason = "Shutdown hangs https://github.com/dotnet/aspnetcore/issues/25107")]
         [MaximumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10_20H1, SkipReason = "Shutdown hangs https://github.com/dotnet/aspnetcore/issues/25107")]
         [InlineData("CheckLargeStdErrWrites")]
         [InlineData("CheckLargeStdErrWrites")]
         [InlineData("CheckLargeStdOutWrites")]
         [InlineData("CheckLargeStdOutWrites")]

+ 1 - 0
src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs

@@ -800,6 +800,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
 
 
         [Theory]
         [Theory]
         [MemberData(nameof(ConnectionMiddlewareData))]
         [MemberData(nameof(ConnectionMiddlewareData))]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/27157")]
         public async Task AppCanHandleClientAbortingConnectionMidRequest(ListenOptions listenOptions)
         public async Task AppCanHandleClientAbortingConnectionMidRequest(ListenOptions listenOptions)
         {
         {
             var readTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
             var readTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);

+ 0 - 3
src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs

@@ -690,7 +690,6 @@ namespace Interop.FunctionalTests
 
 
         [Theory]
         [Theory]
         [MemberData(nameof(SupportedSchemes))]
         [MemberData(nameof(SupportedSchemes))]
-        [QuarantinedTest]
         public async Task ServerReset_BeforeRequestBody_ClientBodyThrows(string scheme)
         public async Task ServerReset_BeforeRequestBody_ClientBodyThrows(string scheme)
         {
         {
             var clientEcho = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
             var clientEcho = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
@@ -1019,7 +1018,6 @@ namespace Interop.FunctionalTests
         }
         }
 
 
         [Theory]
         [Theory]
-        [QuarantinedTest("https://github.com/dotnet/runtime/issues/860")]
         [MemberData(nameof(SupportedSchemes))]
         [MemberData(nameof(SupportedSchemes))]
         public async Task RequestHeaders_MultipleFrames_Accepted(string scheme)
         public async Task RequestHeaders_MultipleFrames_Accepted(string scheme)
         {
         {
@@ -1343,7 +1341,6 @@ namespace Interop.FunctionalTests
         // Settings_MaxFrameSize_Larger_Client - Not configurable
         // Settings_MaxFrameSize_Larger_Client - Not configurable
 
 
         [Theory]
         [Theory]
-        [QuarantinedTest("https://github.com/dotnet/runtime/issues/860")]
         [MemberData(nameof(SupportedSchemes))]
         [MemberData(nameof(SupportedSchemes))]
         public async Task Settings_MaxHeaderListSize_Server(string scheme)
         public async Task Settings_MaxHeaderListSize_Server(string scheme)
         {
         {

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio