From d619a10d2f3da08021cb6e6efc149a484af8ba13 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:10:52 +0000 Subject: [PATCH 001/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240130.1 (#5934) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 28d070e5888..9bdb8792483 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 254f6b2591928b0d0955222fd3ff84fca025fee7 + ea5321da3def7bd803c356504e681edc64ca4629 - + https://github.com/dotnet/diagnostics - 254f6b2591928b0d0955222fd3ff84fca025fee7 + ea5321da3def7bd803c356504e681edc64ca4629 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 778be47f0a6..371eb38ec97 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24068.1 - 8.0.0-preview.24079.1 - 8.0.0-preview.24079.1 + 8.0.0-preview.24080.1 + 8.0.0-preview.24080.1 8.0.102-servicing.24073.3 From c6be93c9653b2deb8a90e22cad422c3af86a21f2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:20:50 +0000 Subject: [PATCH 002/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240131.1 (#5941) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9bdb8792483..cbebd3d301f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - ea5321da3def7bd803c356504e681edc64ca4629 + dd6e8b06597454cb532541173a0893fac6b1df32 - + https://github.com/dotnet/diagnostics - ea5321da3def7bd803c356504e681edc64ca4629 + dd6e8b06597454cb532541173a0893fac6b1df32 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 371eb38ec97..69f319e7385 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24068.1 - 8.0.0-preview.24080.1 - 8.0.0-preview.24080.1 + 8.0.0-preview.24081.1 + 8.0.0-preview.24081.1 8.0.102-servicing.24073.3 From cf07da669e913177abea35dbb773b1cd39e0b530 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:21:58 +0000 Subject: [PATCH 003/131] Update dependencies from https://github.com/dotnet/arcade build 20240131.5 (#5942) [main] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cbebd3d301f..a5c305999b3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers b4d9a1334d5189172977ba8fddd00bda70161e4a - + https://github.com/dotnet/arcade - 07cf24f27ee58b5d1a9662334a101d84bd1e07e5 + be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/arcade - 07cf24f27ee58b5d1a9662334a101d84bd1e07e5 + be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/arcade - 07cf24f27ee58b5d1a9662334a101d84bd1e07e5 + be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/arcade - 07cf24f27ee58b5d1a9662334a101d84bd1e07e5 + be88b08c41971b52ec11aec05ef31e72185d4a1f https://github.com/dotnet/installer afd16eda2596624d8611e944923cec4cf883ce63 - + https://github.com/dotnet/arcade - 07cf24f27ee58b5d1a9662334a101d84bd1e07e5 + be88b08c41971b52ec11aec05ef31e72185d4a1f https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 69f319e7385..20153c2c8d1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 8.0.0-beta.24075.5 - 8.0.0-beta.24075.5 - 8.0.0-beta.24075.5 + 8.0.0-beta.24081.5 + 8.0.0-beta.24081.5 + 8.0.0-beta.24081.5 8.0.1 8.0.1-servicing.23580.8 diff --git a/global.json b/global.json index fe709c30168..9258d02db50 100644 --- a/global.json +++ b/global.json @@ -26,7 +26,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24075.5", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24075.5" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24081.5", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24081.5" } } From fc12528dc54bed3e1f3f15540d1d074346e85cbc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 09:12:10 -0800 Subject: [PATCH 004/131] Update dependencies from https://github.com/dotnet/installer build 20240201.2 (#5946) Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24080.9 -> To Version 9.0.100-preview.1.24101.2 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24075.4 -> To Version 9.0.0-preview.1.24081.5 (parent: Microsoft.Dotnet.Sdk.Internal Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7d2e38b934d..c5f7dbd988a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/aspnetcore - 1d58b24591820b2a134cfc0a5e3154bf9fe65cb4 + b1beadfe0ad3d02eb5207681a5328793c4b3822c https://github.com/dotnet/diagnostics @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade b4e9225c6c2f9da42fbb611a5e8942a08476fe89 - + https://github.com/dotnet/installer - 46ba867793d0599759fbb8f1ac07a3f75cb2ea9d + 6bbd460f4db0a37cafeb04a1ed2d798ae56b0283 https://github.com/dotnet/arcade @@ -50,17 +50,17 @@ https://github.com/dotnet/symstore 0c7b75fc18db3a4f9b7737ae55a0d04e913ac40c - + https://github.com/dotnet/runtime - b4aa81d9da52616ac18e6eb584e37a08cfb2ba87 + 1d1bf92fcf43aa6981804dc53c5174445069c9e4 - + https://github.com/dotnet/aspnetcore - 1d58b24591820b2a134cfc0a5e3154bf9fe65cb4 + b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/runtime - b4aa81d9da52616ac18e6eb584e37a08cfb2ba87 + 1d1bf92fcf43aa6981804dc53c5174445069c9e4 diff --git a/eng/Versions.props b/eng/Versions.props index ea393172f65..fd133a55c20 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,20 +57,20 @@ 9.0.0-beta.24080.3 9.0.0-beta.24080.3 - 9.0.0-preview.1.24075.4 - 9.0.0-preview.1.24075.4 + 9.0.0-preview.1.24081.5 + 9.0.0-preview.1.24081.5 2.0.0-beta4.24068.1 8.0.0-preview.24080.1 8.0.0-preview.24080.1 - 9.0.100-preview.1.24080.9 + 9.0.100-preview.1.24101.2 9.0.0-preview.24075.1 - 9.0.0-preview.1.24074.8 - 9.0.0-preview.1.24074.8 + 9.0.0-preview.1.24080.9 + 9.0.0-preview.1.24080.9 1.0.507901 From ad6fe0d708da53f6cb6a8d86e6f6cb51780abf7b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 09:12:28 -0800 Subject: [PATCH 005/131] Update dependencies from https://github.com/dotnet/arcade build 20240131.4 (#5944) Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24080.3 -> To Version 9.0.0-beta.24081.4 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- eng/common/sdk-task.ps1 | 2 +- eng/common/tools.ps1 | 4 ++-- global.json | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c5f7dbd988a..e921eff25e0 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - b4e9225c6c2f9da42fbb611a5e8942a08476fe89 + 438a8e2488313fb3aa1b24a741a85c2669ee7e0d - + https://github.com/dotnet/arcade - b4e9225c6c2f9da42fbb611a5e8942a08476fe89 + 438a8e2488313fb3aa1b24a741a85c2669ee7e0d - + https://github.com/dotnet/arcade - b4e9225c6c2f9da42fbb611a5e8942a08476fe89 + 438a8e2488313fb3aa1b24a741a85c2669ee7e0d - + https://github.com/dotnet/arcade - b4e9225c6c2f9da42fbb611a5e8942a08476fe89 + 438a8e2488313fb3aa1b24a741a85c2669ee7e0d https://github.com/dotnet/installer 6bbd460f4db0a37cafeb04a1ed2d798ae56b0283 - + https://github.com/dotnet/arcade - b4e9225c6c2f9da42fbb611a5e8942a08476fe89 + 438a8e2488313fb3aa1b24a741a85c2669ee7e0d https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index fd133a55c20..a85ddd512b8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24080.3 - 9.0.0-beta.24080.3 - 9.0.0-beta.24080.3 + 9.0.0-beta.24081.4 + 9.0.0-beta.24081.4 + 9.0.0-beta.24081.4 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index 73828dd30d3..091023970f1 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -64,7 +64,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.1-2" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.8.5" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 0da65b5748a..a8f8edb3291 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,8 +379,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.1-2 - $defaultXCopyMSBuildVersion = '17.8.1-2' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.5 + $defaultXCopyMSBuildVersion = '17.8.5' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { diff --git a/global.json b/global.json index f0c6a2282b9..aa1271b9ff9 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24080.3", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24080.3" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24081.4", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24081.4" } } From dcfb7dfb1956905ad77a79d5fa3b1e0a40073eeb Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 09:12:44 -0800 Subject: [PATCH 006/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240131.1 (#5943) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24080.1 -> To Version 8.0.0-preview.24081.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e921eff25e0..92e720372b7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - ea5321da3def7bd803c356504e681edc64ca4629 + dd6e8b06597454cb532541173a0893fac6b1df32 - + https://github.com/dotnet/diagnostics - ea5321da3def7bd803c356504e681edc64ca4629 + dd6e8b06597454cb532541173a0893fac6b1df32 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index a85ddd512b8..b10e7896925 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24068.1 - 8.0.0-preview.24080.1 - 8.0.0-preview.24080.1 + 8.0.0-preview.24081.1 + 8.0.0-preview.24081.1 9.0.100-preview.1.24101.2 From d885e9446040f09b29f7922abe7e4a299b95b599 Mon Sep 17 00:00:00 2001 From: Wiktor Kopec Date: Thu, 1 Feb 2024 11:52:31 -0800 Subject: [PATCH 007/131] Fixup dependencies (#5949) --- eng/dependabot/Versions.props | 2 +- eng/dependabot/net6.0/Versions.props | 2 +- eng/dependabot/net7.0/Versions.props | 2 +- eng/dependabot/net8.0/Packages.props | 2 +- eng/dependabot/net8.0/Versions.props | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/dependabot/Versions.props b/eng/dependabot/Versions.props index e070f1328e9..befaf63d821 100644 --- a/eng/dependabot/Versions.props +++ b/eng/dependabot/Versions.props @@ -5,7 +5,7 @@ 1.10.4 12.19.1 12.17.1 - 2.15.3 + 2.16.1 1.6.11 4.3.2 5.0.0 diff --git a/eng/dependabot/net6.0/Versions.props b/eng/dependabot/net6.0/Versions.props index fef6e983b2a..d3ee0d85e2d 100644 --- a/eng/dependabot/net6.0/Versions.props +++ b/eng/dependabot/net6.0/Versions.props @@ -10,6 +10,6 @@ 6.0.0 - 6.0.25 + 6.0.26 diff --git a/eng/dependabot/net7.0/Versions.props b/eng/dependabot/net7.0/Versions.props index 8e02e196398..9081b609ba5 100644 --- a/eng/dependabot/net7.0/Versions.props +++ b/eng/dependabot/net7.0/Versions.props @@ -10,6 +10,6 @@ 7.0.0 - 7.0.14 + 7.0.15 diff --git a/eng/dependabot/net8.0/Packages.props b/eng/dependabot/net8.0/Packages.props index c625aa444cc..8102a0c8441 100644 --- a/eng/dependabot/net8.0/Packages.props +++ b/eng/dependabot/net8.0/Packages.props @@ -1,6 +1,6 @@ diff --git a/eng/dependabot/net8.0/Versions.props b/eng/dependabot/net8.0/Versions.props index 98e5ea8d781..bd2a060ebc6 100644 --- a/eng/dependabot/net8.0/Versions.props +++ b/eng/dependabot/net8.0/Versions.props @@ -10,6 +10,6 @@ 8.0.0 - 8.0.0 + 8.0.1 From 536bdedf1b8fefc2c9e16b7117421b569834ffc3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 13:37:39 -0800 Subject: [PATCH 008/131] Fixup dependencies (#5949) (#5950) Co-authored-by: Wiktor Kopec --- eng/dependabot/Versions.props | 2 +- eng/dependabot/net6.0/Versions.props | 2 +- eng/dependabot/net7.0/Versions.props | 2 +- eng/dependabot/net8.0/Versions.props | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/dependabot/Versions.props b/eng/dependabot/Versions.props index e070f1328e9..befaf63d821 100644 --- a/eng/dependabot/Versions.props +++ b/eng/dependabot/Versions.props @@ -5,7 +5,7 @@ 1.10.4 12.19.1 12.17.1 - 2.15.3 + 2.16.1 1.6.11 4.3.2 5.0.0 diff --git a/eng/dependabot/net6.0/Versions.props b/eng/dependabot/net6.0/Versions.props index fef6e983b2a..d3ee0d85e2d 100644 --- a/eng/dependabot/net6.0/Versions.props +++ b/eng/dependabot/net6.0/Versions.props @@ -10,6 +10,6 @@ 6.0.0 - 6.0.25 + 6.0.26 diff --git a/eng/dependabot/net7.0/Versions.props b/eng/dependabot/net7.0/Versions.props index 8e02e196398..9081b609ba5 100644 --- a/eng/dependabot/net7.0/Versions.props +++ b/eng/dependabot/net7.0/Versions.props @@ -10,6 +10,6 @@ 7.0.0 - 7.0.14 + 7.0.15 diff --git a/eng/dependabot/net8.0/Versions.props b/eng/dependabot/net8.0/Versions.props index 98e5ea8d781..bd2a060ebc6 100644 --- a/eng/dependabot/net8.0/Versions.props +++ b/eng/dependabot/net8.0/Versions.props @@ -10,6 +10,6 @@ 8.0.0 - 8.0.0 + 8.0.1 From 31385e3dceb2084584324fd011c9678e49439e2d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 15:08:34 +0000 Subject: [PATCH 009/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240201.1 (#5952) [main] Update dependencies from dotnet/command-line-api --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a5c305999b3..0be68fe2d12 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics dd6e8b06597454cb532541173a0893fac6b1df32 - + https://github.com/dotnet/command-line-api - ecd2ce5eafbba3008a7d4f5d04b025d30928c812 + 3674f88896ded1be30c77b14196773372a2ddfac diff --git a/eng/Versions.props b/eng/Versions.props index 20153c2c8d1..ffc409d4f21 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 8.0.1 8.0.1-servicing.23580.8 - 2.0.0-beta4.24068.1 + 2.0.0-beta4.24101.1 8.0.0-preview.24081.1 8.0.0-preview.24081.1 From c1dc0e6f88406062ed4cfb2206b8477e88062dc5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:21:15 -0800 Subject: [PATCH 010/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240201.1 (#5955) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24081.1 -> To Version 8.0.0-preview.24101.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 92e720372b7..91055f56326 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - dd6e8b06597454cb532541173a0893fac6b1df32 + ab997a03a80e55adde06087c1cb810fcfe257f8e - + https://github.com/dotnet/diagnostics - dd6e8b06597454cb532541173a0893fac6b1df32 + ab997a03a80e55adde06087c1cb810fcfe257f8e https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index b10e7896925..33e6fc68743 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24068.1 - 8.0.0-preview.24081.1 - 8.0.0-preview.24081.1 + 8.0.0-preview.24101.1 + 8.0.0-preview.24101.1 9.0.100-preview.1.24101.2 From d5460f7cb310a7dfeaeb1a565081fc098676ba13 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 09:21:33 -0800 Subject: [PATCH 011/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240201.1 (#5956) System.CommandLine From Version 2.0.0-beta4.24068.1 -> To Version 2.0.0-beta4.24101.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 91055f56326..c58acd87755 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics ab997a03a80e55adde06087c1cb810fcfe257f8e - + https://github.com/dotnet/command-line-api - ecd2ce5eafbba3008a7d4f5d04b025d30928c812 + 3674f88896ded1be30c77b14196773372a2ddfac diff --git a/eng/Versions.props b/eng/Versions.props index 33e6fc68743..525d8f98f0d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 - 2.0.0-beta4.24068.1 + 2.0.0-beta4.24101.1 8.0.0-preview.24101.1 8.0.0-preview.24101.1 From 9a0700c774a3dfa5d805565022d55bc96841b039 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 10:59:23 -0800 Subject: [PATCH 012/131] Update dependencies from https://github.com/dotnet/installer build 20240201.4 (#5960) Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.2 -> To Version 9.0.100-preview.1.24101.4 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c58acd87755..00ce636c882 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade 438a8e2488313fb3aa1b24a741a85c2669ee7e0d - + https://github.com/dotnet/installer - 6bbd460f4db0a37cafeb04a1ed2d798ae56b0283 + 103ff6d4866ae1feff84a1865df0c1a7494ceffc https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 525d8f98f0d..d0706ad60fa 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.0-preview.24101.1 8.0.0-preview.24101.1 - 9.0.100-preview.1.24101.2 + 9.0.100-preview.1.24101.4 9.0.0-preview.24075.1 From c0ea0a2de9a20932720093d7df350fccc1d41ff6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 10:59:37 -0800 Subject: [PATCH 013/131] Update dependencies from https://github.com/dotnet/arcade build 20240201.2 (#5957) Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24081.4 -> To Version 9.0.0-beta.24101.2 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 00ce636c882..cf68c52f3a1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - 438a8e2488313fb3aa1b24a741a85c2669ee7e0d + db8765409d91a7ac626f5ff932459876a5bea9c6 - + https://github.com/dotnet/arcade - 438a8e2488313fb3aa1b24a741a85c2669ee7e0d + db8765409d91a7ac626f5ff932459876a5bea9c6 - + https://github.com/dotnet/arcade - 438a8e2488313fb3aa1b24a741a85c2669ee7e0d + db8765409d91a7ac626f5ff932459876a5bea9c6 - + https://github.com/dotnet/arcade - 438a8e2488313fb3aa1b24a741a85c2669ee7e0d + db8765409d91a7ac626f5ff932459876a5bea9c6 https://github.com/dotnet/installer 103ff6d4866ae1feff84a1865df0c1a7494ceffc - + https://github.com/dotnet/arcade - 438a8e2488313fb3aa1b24a741a85c2669ee7e0d + db8765409d91a7ac626f5ff932459876a5bea9c6 https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index d0706ad60fa..bfda5dbb6b7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24081.4 - 9.0.0-beta.24081.4 - 9.0.0-beta.24081.4 + 9.0.0-beta.24101.2 + 9.0.0-beta.24101.2 + 9.0.0-beta.24101.2 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/global.json b/global.json index aa1271b9ff9..fd5699cf856 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24081.4", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24081.4" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24101.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24101.2" } } From 4589e811ad331f85d7d5bbed34d9501b7edd54c1 Mon Sep 17 00:00:00 2001 From: kkeirstead <85592574+kkeirstead@users.noreply.github.com> Date: Fri, 2 Feb 2024 14:50:46 -0800 Subject: [PATCH 014/131] Learning Paths Automation (#5940) * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update learning-path-sha.txt * Update learning-path-sha.txt * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update learning-path-sha.txt * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update learning-path-sha.txt * Create submit-stale-learning-path-issue.yml * Update check-learning-path-links.yml * Update submit-stale-learning-path-issue.yml * Update EgressHelper.cs * Update check-learning-path-links.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update learning-path-sha.txt * Update EgressHelper.cs * Create scan-for-learning-path-update-comments.yml * Create create_learning_path_update_pr.yml * Update and rename create_learning_path_update_pr.yml to create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update scan-for-learning-path-update-comments.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update egress.md * Update configuration.md * Update create-learning-path-update.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update api.md * Update collectionrules.md * Update configuration.md * Update testing.md * Update egress.md * Update learning-path-sha.txt * Update EgressHelper.cs * Update check-learning-path-links.yml * Update EgressHelper.cs * Update EgressHelper.cs * Update learning-path-sha.txt * Update create-learning-path-update.yml * Update check-learning-path-links.yml * Update scan-for-learning-path-update-comments.yml * Update create-learning-path-update.yml * Update scan-for-learning-path-update-comments.yml * Update scan-for-to-do-comments.yml * Update scan-for-to-do-comments.yml * Update scan-for-learning-path-update-comments.yml * Update create-learning-path-update.yml * Update scan-for-learning-path-update-comments.yml * Update scan-for-learning-path-update-comments.yml * Update scan-for-learning-path-update-comments.yml * Update create-learning-path-update.yml * Update create-learning-path-update.yml * Update scan-for-learning-path-update-comments.yml * Update create-learning-path-update.yml * Update scan-for-learning-path-update-comments.yml * Update Learning Path Links * Update submit-stale-learning-path-issue.yml * Update EgressHelper.cs * Update submit-stale-learning-path-issue.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update submit-stale-learning-path-issue.yml * Update check-learning-path-links.yml * Update submit-stale-learning-path-issue.yml * Update configuration.md * Update check-learning-path-links.yml * Update architecture.md * Update configuration.md * Update configuration.md * Update aks.md * Rename EgressHelper.cs to EgressHelperTEMP.cs * Rename EgressHelperTEMP.cs to EgressHelper.cs * Update check-learning-path-links.yml * Update submit-stale-learning-path-issue.yml * Delete .github/workflows/submit-learning-paths-staleness-check.yml * Delete .github/workflows/check-learning-path-links-anchor.yml * Update submit-stale-learning-path-issue.yml * Update submit-stale-learning-path-issue.yml * Update and rename submit-stale-learning-path-issue.yml to submit-learning-path-issue.yml * Update and rename scan-for-learning-path-update-comments.yml to scan-for-learning-path-comments.yml * Update scan-for-learning-path-comments.yml * Update and rename create-learning-path-update.yml to submit-learning-path-pr.yml * Update scan-for-learning-path-comments.yml * Update submit-learning-path-pr.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update configuration.md * Update submit-learning-path-issue.yml * Update scan-for-learning-path-comments.yml * Update submit-learning-path-pr.yml * Update submit-learning-path-pr.yml * Update submit-learning-path-pr.yml * Delete .github/workflows/submit-to-do-issue.yml * Create submit-to-do-issue.yml * Delete .github/workflows/submit-learning-path-issue.yml * Delete .github/workflows/scan-for-learning-path-comments.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update Learning Paths * Update egress.md * Update CollectionRuleOptions.cs * Update collectionrules.md * Update ServiceCollectionExtensions.cs * Update and rename ConfigShowCommandHandler.cs to ConfigShowCommandHandlerTEST.cs * Update CollectCommandHandler.cs * Update TargetFrameworkMonikerTraitAttribute.cs * Update testing.md * Update EgressHelper.cs * Update EgressExtension.cs * Update ServiceCollectionExtensions.cs * Update EgressExtension.cs * Update and rename ConfigShowCommandHandlerTEST.cs to ConfigShowCommandHandler.cs * Update CollectCommandHandler.cs * Update TargetFrameworkMonikerTraitAttribute.cs * Update CollectionRuleOptions.cs * Update CollectionRulePipelineState.cs * Update EgressHelper.cs * Update submit-linter-suggestions.yml * Update submit-to-do-issue.yml * Update testing.md * Update check-learning-path-links.yml * Update submit-learning-path-pr.yml * Update collectionrules.md * Update api.md * Update aks.md * Update configuration.md * Update egress.md * Update testing.md * Update learning-path-sha.txt * Create index.js * Create action.yml * Rename action.yml to action.yml * Rename index.js to index.js * Create index.js * Create action.yml * Rename .github/apply-learning-path-updates/action.yml to .github/actions/apply-learning-path-updates/action.yml * Rename .github/apply-learning-path-updates/index.js to .github/actions/apply-learning-path-updates/index.js * Update index.js * Update index.js * Update submit-learning-path-pr.yml * Update check-learning-path-links.yml * Update ServiceCollectionExtensions.cs * Update ServiceCollectionExtensions.cs * Update api.md * Update collectionrules.md * Update configuration.md * Update egress.md * Update submit-learning-path-pr.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Delete .github/workflows/submit-learning-path-pr.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update ServiceCollectionExtensions.cs * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update ServiceCollectionExtensions.cs * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update ServiceCollectionExtensions.cs * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update ServiceCollectionExtensions.cs * Update check-learning-path-links.yml * Update EgressHelper.cs * Update EgressHelper.cs * Update ServiceCollectionExtensions.cs * Update action.yml * Update index.js * Delete .github/actions/apply-learning-path-updates directory * Update check-learning-path-links.yml * Update collectionrules.md * Update index.js * Update index.js * Update ServiceCollectionExtensions.cs * Update action-utils.js * Update action-utils.js * Update index.js * Update index.js * Update action-utils.js * Update index.js * Update index.js * Update action-utils.js * Update index.js * Update index.js * Update action-utils.js * Update EgressHelper.cs * Update ServiceCollectionExtensions.cs * Update EgressHelper.cs * Update index.js * Update EgressHelper.cs * Update EgressHelper.cs * Flow changes from main to feature branch (#369) * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update check-learning-path-links.yml * Update index.js * Update index.js * Update EgressHelper.cs * Update check-learning-path-links.yml * Flowing bits (#376) * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update check-learning-path-links.yml * Update index.js * Update index.js * Update EgressHelper.cs * Update check-learning-path-links.yml * Update EgressHelper.cs * Update index.js * Update check-learning-path-links.yml * Update action.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update action.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update action.yml * Update index.js * Update check-learning-path-links.yml * Update index.js * Update index.js * Update index.js * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update index.js * Update EgressHelper.cs * Update index.js * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update index.js * Update index.js * Update index.js * Update index.js * Update action-utils.js * Update ServiceCollectionExtensions.cs * Update ServiceCollectionExtensions.cs * Update EgressHelper.cs * Flowing bits (#394) * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update check-learning-path-links.yml * Update index.js * Update index.js * Update EgressHelper.cs * Update check-learning-path-links.yml * Update EgressHelper.cs * Update index.js * Update check-learning-path-links.yml * Update action.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update action.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update action.yml * Update index.js * Update check-learning-path-links.yml * Update index.js * Update index.js * Update index.js * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update index.js * Update EgressHelper.cs * Update index.js * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update index.js * Update index.js * Update index.js * Update index.js * Update action-utils.js * Update ServiceCollectionExtensions.cs * Update ServiceCollectionExtensions.cs * Update EgressHelper.cs * Update action-utils.js * Update index.js * Update EgressHelper.cs * Update ServiceCollectionExtensions.cs * Update index.js * Update index.js * Update index.js * Update index.js * Update ServiceCollectionExtensions.cs * Update EgressHelper.cs * Flowing bits (#395) * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update check-learning-path-links.yml * Update index.js * Update index.js * Update EgressHelper.cs * Update check-learning-path-links.yml * Update EgressHelper.cs * Update index.js * Update check-learning-path-links.yml * Update action.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update action.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update action.yml * Update index.js * Update check-learning-path-links.yml * Update index.js * Update index.js * Update index.js * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update action.yml * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update EgressHelper.cs * Update index.js * Update EgressHelper.cs * Update index.js * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update index.js * Update check-learning-path-links.yml * Update check-learning-path-links.yml * Update index.js * Update index.js * Update index.js * Update index.js * Update action-utils.js * Update ServiceCollectionExtensions.cs * Update ServiceCollectionExtensions.cs * Update EgressHelper.cs * Update action-utils.js * Update index.js * Update EgressHelper.cs * Update ServiceCollectionExtensions.cs * Update index.js * Update index.js * Update index.js * Update index.js * Update ServiceCollectionExtensions.cs * Update EgressHelper.cs * Update index.js --------- Co-authored-by: github-actions --- .github/actions/action-utils.js | 2 +- .../learning-path-staleness-check/action.yml | 30 ++ .../learning-path-staleness-check/index.js | 274 ++++++++++++++++++ .github/learning-path-sha.txt | 1 + .../workflows/check-learning-path-links.yml | 65 +++++ documentation/learningPath/aks.md | 2 +- documentation/learningPath/api.md | 10 +- documentation/learningPath/collectionrules.md | 30 +- documentation/learningPath/configuration.md | 16 +- documentation/learningPath/egress.md | 22 +- documentation/learningPath/testing.md | 56 ++-- 11 files changed, 439 insertions(+), 69 deletions(-) create mode 100644 .github/actions/learning-path-staleness-check/action.yml create mode 100644 .github/actions/learning-path-staleness-check/index.js create mode 100644 .github/learning-path-sha.txt create mode 100644 .github/workflows/check-learning-path-links.yml diff --git a/.github/actions/action-utils.js b/.github/actions/action-utils.js index 88491c7b226..b401cf2a1ba 100644 --- a/.github/actions/action-utils.js +++ b/.github/actions/action-utils.js @@ -51,4 +51,4 @@ module.exports.friendlyDateFromISODate = function(isoDate) { module.exports.splitVersionTag = splitVersionTag; module.exports.readFile = (fileName) => util.promisify(fs.readFile)(fileName, 'utf8'); -module.exports.writeFile = (fileName, contents) => util.promisify(fs.writeFile)(fileName, contents); \ No newline at end of file +module.exports.writeFile = (fileName, contents) => util.promisify(fs.writeFile)(fileName, contents); diff --git a/.github/actions/learning-path-staleness-check/action.yml b/.github/actions/learning-path-staleness-check/action.yml new file mode 100644 index 00000000000..4e651ad6ee8 --- /dev/null +++ b/.github/actions/learning-path-staleness-check/action.yml @@ -0,0 +1,30 @@ +name: 'CheckLearningPathLinks Action' +description: 'Checks the links in the learning paths for staleness' +inputs: + repoURLToSearch: + description: 'The repo referenced in the learning path docs (in URL form)' + required: true + learningPathsDirectory: + description: 'The directory where the learning paths reside (e.g. documentation/learningPath)' + required: true + changedFilePaths: + description: 'Paths to the changed files' + required: false + sourceDirectoryName: + description: 'The name of the top-level directory (e.g. src) - only files inside this directory will be included in the search' + required: true + oldHash: + description: 'The hash currently being used by the learning path' + required: true + newHash: + description: 'The hash to be inserted into the updated learning path' + required: true + learningPathHashFile: + description: 'The file where the commit hash being used for the learning paths is kept' + required: true + excludeLinks: + description: 'Comma separated strings to exclude from processing' + required: false +runs: + using: 'node16' + main: 'index.js' diff --git a/.github/actions/learning-path-staleness-check/index.js b/.github/actions/learning-path-staleness-check/index.js new file mode 100644 index 00000000000..0b8e3891711 --- /dev/null +++ b/.github/actions/learning-path-staleness-check/index.js @@ -0,0 +1,274 @@ +const actionUtils = require('../action-utils.js'); +const fs = require('fs'); +const path = require('path'); +const prevPathPrefix = "prev/"; +const linePrefix = "#L"; +const separator = " | "; + +modifiedFilesPathToLearningPathFile = {}; +modifiedFilesUrlToFileName = {}; + +var outOfSync = new Set(); +var manuallyReview = new Set(); +var suggestions = new Set(); +var modifiedFiles = new Set(); + +const oldNewLinkSeparator = ' -> '; + +function ReplaceOldWithNewText(content, oldText, newText) +{ + return content.replaceAll(oldText, newText); +} + +function UpdateModifiedFiles(fileName, path, learningPathFile) +{ + modifiedFilesUrlToFileName[path] = fileName; + + modifiedFilesPathToLearningPathFile[path] = modifiedFilesPathToLearningPathFile[path] ? modifiedFilesPathToLearningPathFile[path] : new Set();; + modifiedFilesPathToLearningPathFile[path].add(learningPathFile); + + modifiedFiles = new Set(); + for (currPath in modifiedFilesPathToLearningPathFile) + { + const fileName = modifiedFilesUrlToFileName[currPath]; + modifiedFiles.add(AssembleModifiedFilesOutput(fileName, currPath, Array.from(modifiedFilesPathToLearningPathFile[currPath]))); + } +} + +function AssembleModifiedFilesOutput(fileName, path, learningPathFiles) +{ + return CreateLink(fileName, path, undefined) + separator + BoldedText(learningPathFiles.join(" ")); +} + +function BoldedText(text) +{ + return "**" + text + "**"; +} + +function UpdateManuallyReview(fileName, path, learningPathFile, learningPathLineNumber, lineNumber = undefined) +{ + manuallyReview.add(AssembleOutput(fileName, path, undefined, lineNumber, undefined, learningPathFile, learningPathLineNumber)) +} + +function UpdateOutOfSync(link, learningPathFile) +{ + outOfSync.add(link + separator + BoldedText(learningPathFile)) +} + +function UpdateSuggestions(fileName, oldPath, newPath, learningPathFile, learningPathLineNumber, oldLineNumber, newLineNumber) +{ + suggestions.add(AssembleOutput(fileName, oldPath, newPath, oldLineNumber, newLineNumber, learningPathFile, learningPathLineNumber)) +} + +function CreateLink(fileName, path, lineNumber) +{ + var codeFileLink = "[" + fileName + "]" + "(" + path + ")" + return AppendLineNumber(codeFileLink, lineNumber) +} + +function AssembleOutput(fileName, oldPath, newPath, oldLineNumber, newLineNumber, learningPathFile, learningPathLineNumber) +{ + var codeFileLink = CreateLink(fileName, oldPath, oldLineNumber) + + if (newPath && newLineNumber) { + codeFileLink += oldNewLinkSeparator + CreateLink(fileName, newPath, newLineNumber) + } + + return codeFileLink + separator + BoldedText(AppendLineNumber(learningPathFile, learningPathLineNumber, undefined)); +} + +function AppendLineNumber(text, lineNumber) +{ + if (!lineNumber) { return text } + + return text + " " + linePrefix + lineNumber +} + +function CheckForEndOfLink(str, startIndex) +{ + const illegalCharIndex = str.substr(startIndex).search(/[\>\])\s]|$|.$|.\s/m); // This regex isn't perfect, but should cover most cases. + return illegalCharIndex; +} + +function StripLineNumber(link, linePrefixIndex) +{ + return link.substring(0, linePrefixIndex); +} + +function GetContent(path) { + try { + return fs.readFileSync(path, 'utf8'); + } + catch (error) {} + + return undefined; +} + +function ConstructOutputText(core) +{ + var body = ""; + + if (manuallyReview.size > 0) { body += "

Manually Review:

" + Array.from(manuallyReview).join("
") + "
"; } + + if (outOfSync.size > 0) { body += "

Links With Out Of Sync Commit Hashes:

" + Array.from(outOfSync).join("
") + "
"; } + + if (suggestions.size > 0) { body += "

Auto-Applied Suggestions:

" + Array.from(suggestions).join("
") + "
"; } + + if (modifiedFiles.size > 0) { body += "

Modified Files:

" + Array.from(modifiedFiles).join("
") + "
"; } + + console.log("body=" + body); + core.setOutput('outputText', body); +} + +function ValidateLinks(learningPathContents, repoURLToSearch, modifiedPRFiles, learningPathFile, oldHash, newHash, sourceDirectoryName, excludeLinksArray) +{ + // Get all indices where a link to the repo is found within the current learning path file + var linkIndices = []; + for(var pos = learningPathContents.indexOf(repoURLToSearch); pos !== -1; pos = learningPathContents.indexOf(repoURLToSearch, pos + 1)) { + linkIndices.push(pos); + } + + for(let startOfLink of linkIndices) + { + // Clean up the link, determine if it has a line number suffix + let endOfLink = startOfLink + CheckForEndOfLink(learningPathContents, startOfLink) + if (endOfLink < startOfLink) { endOfLink = learningPathContents.length; } // If no illegal characters are found, the link is at the end of the file + + const link = learningPathContents.substring(startOfLink, endOfLink); + + if (excludeLinksArray.some(excludeLink => link.toLowerCase().includes(excludeLink))) { continue; } + + const pathStartIndex = link.indexOf(sourceDirectoryName); + + if (pathStartIndex === -1) { continue } + + if (!link.includes(oldHash)) + { + UpdateOutOfSync(link, learningPathFile); + continue + } + + const linePrefixIndex = link.indexOf(linePrefix); + const linkHasLineNumber = linePrefixIndex !== -1; + const pathEndIndex = linkHasLineNumber ? linePrefixIndex : endOfLink; + + // Check if the file being referenced by the link is one of the modified files in the PR + const linkFilePath = link.substring(pathStartIndex, pathEndIndex); + if (modifiedPRFiles.includes(linkFilePath)) + { + const fileName = linkFilePath.substring(linkFilePath.lastIndexOf('/') + 1); + + UpdateModifiedFiles(fileName, linkHasLineNumber ? StripLineNumber(link, linePrefixIndex) : link, learningPathFile); + + // This is the line number in the learning path file that contains the link - not the #L line number in the link itself + const learningPathLineNumber = learningPathContents.substring(0, startOfLink).split("\n").length; + + var headContent = GetContent(linkFilePath) + if (!headContent) { + UpdateManuallyReview(fileName, link, learningPathFile, learningPathLineNumber); + continue + } + const headContentLines = headContent.toString().split("\n"); + + if (!linkHasLineNumber) { continue; } + const oldLineNumber = Number(link.substring(linePrefixIndex + linePrefix.length, link.length)); + + var prevContent = GetContent(prevPathPrefix + linkFilePath) + if (!prevContent) { continue; } + const prevContentLines = prevContent.toString().split("\n"); + + if (prevContentLines.length < oldLineNumber) + { + UpdateManuallyReview(fileName, link, learningPathFile, learningPathLineNumber, oldLineNumber); + } + else if (headContentLines.length < oldLineNumber || prevContentLines[oldLineNumber - 1].trim() !== headContentLines[oldLineNumber - 1].trim()) + { + const newLineNumberLast = headContentLines.lastIndexOf(prevContentLines[oldLineNumber - 1]) + 1; + const newLineNumberFirst = headContentLines.indexOf(prevContentLines[oldLineNumber - 1]) + 1; + + if (newLineNumberLast !== newLineNumberFirst) // Multiple matches found in the file + { + UpdateManuallyReview(fileName, link, learningPathFile, learningPathLineNumber, oldLineNumber); + } + else + { + let updatedLink = StripLineNumber(link.replace(oldHash, newHash), linePrefixIndex) + linePrefix + newLineNumberFirst; + UpdateSuggestions(fileName, link, updatedLink, learningPathFile, learningPathLineNumber, oldLineNumber, newLineNumberFirst); + } + } + } + } +} + +const main = async () => { + + const [core] = await actionUtils.installAndRequirePackages("@actions/core"); + + try { + const learningPathDirectory = core.getInput('learningPathsDirectory', { required: true }); + const repoURLToSearch = core.getInput('repoURLToSearch', { required: true }); + const changedFilePaths = core.getInput('changedFilePaths', {required: false}); + const learningPathHashFile = core.getInput('learningPathHashFile', { required: true }); + const sourceDirectoryName = core.getInput('sourceDirectoryName', { required: true }); + const oldHash = core.getInput('oldHash', { required: true }); + const newHash = core.getInput('newHash', { required: true }); + const excludeLinks = core.getInput('excludeLinks', { required: false }); + const excludeLinksArray = excludeLinks ? excludeLinks.split(',').map(function(item) { return item.toLowerCase().trim() }) : []; + + if (changedFilePaths === null || changedFilePaths.trim() === "") { return } + + // Scan each file in the learningPaths directory + fs.readdir(learningPathDirectory, (_, files) => { + files.forEach(learningPathFile => { + try { + const learningPathContents = GetContent(path.join(learningPathDirectory, learningPathFile)) + if (learningPathContents) + { + ValidateLinks(learningPathContents, repoURLToSearch, changedFilePaths.split(' '), learningPathFile, oldHash, newHash, sourceDirectoryName, excludeLinksArray) + ConstructOutputText(core); + } + } catch (error) { + console.log("Error: " + error) + console.log("Could not find learning path file: " + learningPathFile) + } + }); + }); + + fs.writeFileSync(learningPathHashFile, newHash); + + // Scan each file in the learningPaths directory + fs.readdir(learningPathDirectory, (_, files) => { + + files.forEach(learningPathFile => { + try { + const fullPath = path.join(learningPathDirectory, learningPathFile) + let content = fs.readFileSync(fullPath, 'utf8') + + let suggestionsArray = Array.from(suggestions); + if (suggestionsArray && suggestionsArray.length > 0) { + suggestionsArray.forEach(suggestion => { + const suggestionArray = suggestion.split(oldNewLinkSeparator) + var oldLink = suggestionArray[0] + var newLink = suggestionArray[1] + oldLink = oldLink.substring(oldLink.indexOf('(') + 1, oldLink.lastIndexOf(')')) + newLink = newLink.substring(newLink.indexOf('(') + 1, newLink.lastIndexOf(')')) + content = ReplaceOldWithNewText(content, oldLink, newLink) + }) + } + + content = ReplaceOldWithNewText(content, oldHash, newHash) + fs.writeFileSync(fullPath, content); + } catch (error) { + console.log("Error: " + error) + console.log("Could not find learning path file: " + learningPathFile) + } + }); + }); + + } catch (error) { + core.setFailed(error.message); + } +} + +// Call the main function to run the action +main(); diff --git a/.github/learning-path-sha.txt b/.github/learning-path-sha.txt new file mode 100644 index 00000000000..8a50ab94965 --- /dev/null +++ b/.github/learning-path-sha.txt @@ -0,0 +1 @@ +341ff64a6097fe0bc66950e254e6160abcf77b84 diff --git a/.github/workflows/check-learning-path-links.yml b/.github/workflows/check-learning-path-links.yml new file mode 100644 index 00000000000..7b9f4f0a6f9 --- /dev/null +++ b/.github/workflows/check-learning-path-links.yml @@ -0,0 +1,65 @@ +name: 'Check Learning Path Links' +on: + schedule: # Run once a month + - cron: '0 0 1 * *' + workflow_dispatch: + +permissions: {} + +jobs: + check-learning-path-links: + name: 'Check Learning Path Links' + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout head + uses: actions/checkout@v4 + with: + persist-credentials: true # need this for opening a PR + fetch-depth: 0 + ref: main + + - name: Get previous update SHA + id: get_sha + run: | + prev_sha=$(cat .github/learning-path-sha.txt) + echo "prev_sha=$prev_sha" >> $GITHUB_ENV + + - name: Checkout previous update + uses: actions/checkout@v4 + with: + persist-credentials: false + ref: ${{ env.prev_sha }} + path: prev + + - name: Get changed files + run: | + changed_source_files=$(git diff-tree --no-commit-id --name-only -r "$prev_sha" "$GITHUB_SHA" | { grep "**.cs$" || test $? = 1; }) + echo "Files to validate: '${changed_source_files}'" + echo "updated_files=$(echo ${changed_source_files})" >> $GITHUB_ENV + + - name: Check Learning Path Links + id: check-links + uses: ./.github/actions/learning-path-staleness-check + with: + repoURLToSearch: 'https://github.com/dotnet/dotnet-monitor' + learningPathsDirectory: 'documentation/learningPath' + changedFilePaths: ${{ env.updated_files }} + sourceDirectoryName: 'src' + oldHash: ${{ env.prev_sha }} + newHash: ${{ github.sha }} + learningPathHashFile: '.github/learning-path-sha.txt' + + - name: Open PR + uses: ./.github/actions/open-pr + with: + files_to_commit: --all -- :!prev + title: "[REQUIRES MANUAL REVIEW] Update Learning Paths" + commit_message: Update Learning Paths + body: This PR was auto generated and will not be automatically merged in - adjustments should be made manually as-needed.
${{ steps.check-links.outputs.outputText }} + branch_name: learningPathUpdates/${{ github.sha }} + fail_if_files_unchanged: true + auth_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/documentation/learningPath/aks.md b/documentation/learningPath/aks.md index 0bb619da2e2..6990c075a32 100644 --- a/documentation/learningPath/aks.md +++ b/documentation/learningPath/aks.md @@ -9,7 +9,7 @@ In addition to its availability as a .NET CLI tool, the `dotnet monitor` tool is This workflow takes your local development copy of `dotnet-monitor`, patches it with a local development copy of the [.NET Core Diagnostics Repo](https://github.com/dotnet/diagnostics#net-core-diagnostics-repo), and makes it available as an image for you to consume in an ACR (Azure Container Registry). Note that there are many other ways to do this - this is meant to serve as a basic template that can be adapted to match your needs. -1. Open `pwsh` and run the [generate-dev-sln script](https://github.com/dotnet/dotnet-monitor/blob/main/generate-dev-sln.ps1), providing a path to your local copy of the diagnostics repo. +1. Open `pwsh` and run the [generate-dev-sln script](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/generate-dev-sln.ps1), providing a path to your local copy of the diagnostics repo. > [!NOTE] > If your changes do not involve the [.NET Core Diagnostics Repo](https://github.com/dotnet/diagnostics#net-core-diagnostics-repo), you don't need to complete this step. diff --git a/documentation/learningPath/api.md b/documentation/learningPath/api.md index de42e4e36d4..333262d5f8f 100644 --- a/documentation/learningPath/api.md +++ b/documentation/learningPath/api.md @@ -7,15 +7,15 @@ dotnet-monitor exposes functionality through both [collection rules](./collectio ## Adding New APIs -The web API surface is defined by a series of controllers [here](../../src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/). It's common for an API to expose functionality also available via [Actions](./collectionrules.md#actions) and so methods in these controllers are often wrappers around a shared implementation. Each controller may have one or more attributes that configure how and where it is exposed, you can learn more about the notable controller attributes [here](#notable-controller-attributes). +The web API surface is defined by a series of controllers [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/). It's common for an API to expose functionality also available via [Actions](./collectionrules.md#actions) and so methods in these controllers are often wrappers around a shared implementation. Each controller may have one or more attributes that configure how and where it is exposed, you can learn more about the notable controller attributes [here](#notable-controller-attributes). -If the new API needs to either accept or return structured data, a dedicated model should be used. Models are defined [here](../../src/Microsoft.Diagnostics.Monitoring.WebApi/Models/). +If the new API needs to either accept or return structured data, a dedicated model should be used. Models are defined [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/). When adding a new API, it's important to also update the [`openapi.json`](../openapi.json) spec which describes the API surface. There are CI tests that will ensure this file has been updated to reflect any API changes. Learn more about updating `openapi.json` [here](./testing.md#openapi-generation). ### Adding Tests -Web APIs in dotnet-monitor are typically tested using functional tests that leverage the [ApiClient](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs) to call a specific API. Learn more about how the functional tests are defined and operate [here](./testing.md#functional-tests). +Web APIs in dotnet-monitor are typically tested using functional tests that leverage the [ApiClient](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs) to call a specific API. Learn more about how the functional tests are defined and operate [here](./testing.md#functional-tests). ## Notable Controller Attributes @@ -35,6 +35,6 @@ dotnet-monitor supports multiple different [authentication modes](../authenticat ### Determining Authentication Mode -When dotnet-monitor starts, the command line arguments are first inspected to see if a specific authentication mode was set (such as `--no-auth`), referred to as the `StartupAuthenticationMode`, this is calculated [here](../../src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L27). If no modes were explicitly set via a command line argument, dotnet-monitor will select `Deferred` as the `StartupAuthenticationMode`. This indicates that the user configuration should be looked at to determine the authentication mode later on in the startup process. +When dotnet-monitor starts, the command line arguments are first inspected to see if a specific authentication mode was set (such as `--no-auth`), referred to as the `StartupAuthenticationMode`, this is calculated [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L29). If no modes were explicitly set via a command line argument, dotnet-monitor will select `Deferred` as the `StartupAuthenticationMode`. This indicates that the user configuration should be looked at to determine the authentication mode later on in the startup process. -After determining the `StartupAuthenticationMode` mode, the relevant [IAuthenticationConfigurator](../../src/Tools/dotnet-monitor/Auth/IAuthenticationConfigurator.cs) is created by the [AuthConfiguratorFactory](../../src/Tools/dotnet-monitor/Auth/AuthConfiguratorFactory.cs). This factory also handles deciding what authentication mode to use when `StartupAuthenticationMode` is `Deferred`. The selected configurator is used to configure various parts of dotnet-monitor that are specific to authentication, such as protecting the web APIs, add authentication-mode specific logging, and configuring the built-in Swagger UI. +After determining the `StartupAuthenticationMode` mode, the relevant [IAuthenticationConfigurator](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Auth/IAuthenticationConfigurator.cs) is created by the [AuthConfiguratorFactory](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Auth/AuthConfiguratorFactory.cs). This factory also handles deciding what authentication mode to use when `StartupAuthenticationMode` is `Deferred`. The selected configurator is used to configure various parts of dotnet-monitor that are specific to authentication, such as protecting the web APIs, add authentication-mode specific logging, and configuring the built-in Swagger UI. diff --git a/documentation/learningPath/collectionrules.md b/documentation/learningPath/collectionrules.md index 6ea6c9ce47e..e1d33904df7 100644 --- a/documentation/learningPath/collectionrules.md +++ b/documentation/learningPath/collectionrules.md @@ -32,49 +32,49 @@ graph LR ### Key Areas Of The Code -* Collection rules are registered [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L100). When adding a new trigger or action, these types need to be added here to take effect. This section is also responsible for making sure options get configured and validated. -* Options for collection rules can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleOptions.cs). -* Rules are applied, removed, and restarted in response to configuration changes [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleService.cs). This is also responsible for generating a description of each collection rule's state for the `/collectionrules` API Endpoint. -* The pipeline responsible for the lifetime of a single executing collection rule can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L55). -* To run collection rules, `dotnet monitor` must be in `Listen` mode - this is set via [DiagnosticPortOptions](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.Options/DiagnosticPortOptions.cs). +* Collection rules are registered [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L140). When adding a new trigger or action, these types need to be added here to take effect. This section is also responsible for making sure options get configured and validated. +* Options for collection rules can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleOptions.cs). +* Rules are applied, removed, and restarted in response to configuration changes [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleService.cs). This is also responsible for generating a description of each collection rule's state for the `/collectionrules` API Endpoint. +* The pipeline responsible for the lifetime of a single executing collection rule can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L54). +* To run collection rules, `dotnet monitor` must be in `Listen` mode - this is set via [DiagnosticPortOptions](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options/DiagnosticPortOptions.cs). * For each type of trigger, the [dotnet diagnostics repo](https://github.com/dotnet/diagnostics/blob/v6.0.351802/src/Microsoft.Diagnostics.Monitoring.EventPipe/Triggers/ITraceEventTrigger.cs#L29) is responsible for determining whether the triggering conditions have been satisfied. ### Triggers -A trigger will monitor for a specific condition in the target application and raise a notification when that condition has been observed. Options for triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleTriggerOptions.cs); the type of `Settings` is determined by which trigger is being used (possible trigger types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers)). The interface for all triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Triggers/ICollectionRuleTrigger.cs) - this allows `dotnet monitor` to start and stop triggers, regardless of the trigger's properties. The collection rule pipeline creates instances of triggers [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L100) before waiting for the trigger to [satisfy its conditions](https://github.com/dotnet/diagnostics/blob/v6.0.351802/src/Microsoft.Diagnostics.Monitoring.EventPipe/Triggers/Pipelines/TraceEventTriggerPipeline.cs#L107) - each trigger has its own set of criteria that determines when a trigger has been satisfied. +A trigger will monitor for a specific condition in the target application and raise a notification when that condition has been observed. Options for triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleTriggerOptions.cs); the type of `Settings` is determined by which trigger is being used (possible trigger types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers)). The interface for all triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Triggers/ICollectionRuleTrigger.cs) - this allows `dotnet monitor` to start and stop triggers, regardless of the trigger's properties. The collection rule pipeline creates instances of triggers [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L99) before waiting for the trigger to [satisfy its conditions](https://github.com/dotnet/diagnostics/blob/v6.0.351802/src/Microsoft.Diagnostics.Monitoring.EventPipe/Triggers/Pipelines/TraceEventTriggerPipeline.cs#L107) - each trigger has its own set of criteria that determines when a trigger has been satisfied. ### Actions -Actions allow executing an operation or an external executable in response to a trigger condition being satisfied. Options for actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleActionOptions.cs); the type of `Settings` is determined by which action is being used (possible action types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/Actions)). The interface for all actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Actions/ICollectionRuleAction.cs) - this allows `dotnet monitor` to start an action, wait for it to complete, and get its output values regardless of the action's properties. The action list is [executed](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L150) once the triggering condition has been met (assuming the action list isn't throttled), with each action by default starting without waiting for prior actions to complete. +Actions allow executing an operation or an external executable in response to a trigger condition being satisfied. Options for actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleActionOptions.cs); the type of `Settings` is determined by which action is being used (possible action types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Actions)). The interface for all actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Actions/ICollectionRuleAction.cs) - this allows `dotnet monitor` to start an action, wait for it to complete, and get its output values regardless of the action's properties. The action list is [executed](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L149) once the triggering condition has been met (assuming the action list isn't throttled), with each action by default starting without waiting for prior actions to complete. ### Filters -Filters can optionally be applied to a collection rule to choose which processes can trigger the rule. This uses the same set of [options](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.Options/ProcessFilterOptions.cs#L47) as setting the default process for `dotnet-monitor`. When starting a collection rule, [these filters are used to check if the current process should have the collection rule applied to it](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleContainer.cs#L189); if so, the collection rule starts. +Filters can optionally be applied to a collection rule to choose which processes can trigger the rule. This uses the same set of [options](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options/ProcessFilterOptions.cs#L47) as setting the default process for `dotnet-monitor`. When starting a collection rule, [these filters are used to check if the current process should have the collection rule applied to it](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleContainer.cs#L187); if so, the collection rule starts. ### Limits -Limits can optionally be applied to a collection rule to constrain the lifetime of the rule and how often its actions can be run before being throttled. Options for limits can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleLimitsOptions.cs). When provided (or when using default values), limits are evaluated in the collection rule pipeline while running. `RuleDuration` is used to [create a token](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L80) that shuts down the pipeline. `ActionCountSlidingWindowDuration` does not rely on setting cancellation tokens; rather, the number of executions within the sliding window are checked on-demand [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L212), and `ActionCount` is referenced to determine whether the rule needs to [terminate](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L195) or [throttle](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L235). +Limits can optionally be applied to a collection rule to constrain the lifetime of the rule and how often its actions can be run before being throttled. Options for limits can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleLimitsOptions.cs). When provided (or when using default values), limits are evaluated in the collection rule pipeline while running. `RuleDuration` is used to [create a token](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L79) that shuts down the pipeline. `ActionCountSlidingWindowDuration` does not rely on setting cancellation tokens; rather, the number of executions within the sliding window are checked on-demand [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L211), and `ActionCount` is referenced to determine whether the rule needs to [terminate](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L194) or [throttle](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L234). ## Miscellaneous ### Trigger Shortcuts -Trigger Shortcuts provide improved defaults, range validation, and a simpler syntax for [several commonly used `EventCounter` triggers](https://github.com/dotnet/dotnet-monitor/tree/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts). These shortcuts provide the same functionality as using the standard `EventCounter` syntax, but have fewer available options (since there is no need to specify the `ProviderName` or the `CounterName`) - as a result, shortcuts do not inherit from `EventCounterOptions`, but rather [IEventCounterShortcuts](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts/IEventCounterShortcuts.cs). Each type of shortcut is registered independently [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L117). After binding with configuration and undergoing validation, shortcuts are then converted to be treated as `EventCounter` triggers [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Triggers/EventCounterTriggerFactory.cs), using their respective defaults instead of the generic ones. +Trigger Shortcuts provide improved defaults, range validation, and a simpler syntax for [several commonly used `EventCounter` triggers](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts). These shortcuts provide the same functionality as using the standard `EventCounter` syntax, but have fewer available options (since there is no need to specify the `ProviderName` or the `CounterName`) - as a result, shortcuts do not inherit from `EventCounterOptions`, but rather [IEventCounterShortcuts](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts/IEventCounterShortcuts.cs). Each type of shortcut is registered independently [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L158). After binding with configuration and undergoing validation, shortcuts are then converted to be treated as `EventCounter` triggers [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Triggers/EventCounterTriggerFactory.cs), using their respective defaults instead of the generic ones. ### Templates -Templates allow users to design reusable collection rule components by associating a name with a piece of configuration. Options for templates can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/TemplateOptions.cs). Before collection rules undergo validation, `dotnet monitor` checks to see if any of the rule's components in configuration [list the name of a template](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Configuration/CollectionRulePostConfigureNamedOptions.cs) - if so, the collection rule's options are populated from the correspondingly named template. Note that templates undergo the same binding process for triggers/actions as collection rules; however, since templates are treated as separate parts of configuration, this binding instead happens [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Configuration/TemplatesConfigureNamedOptions.cs). +Templates allow users to design reusable collection rule components by associating a name with a piece of configuration. Options for templates can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/TemplateOptions.cs). Before collection rules undergo validation, `dotnet monitor` checks to see if any of the rule's components in configuration [list the name of a template](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Configuration/CollectionRulePostConfigureNamedOptions.cs) - if so, the collection rule's options are populated from the correspondingly named template. Note that templates undergo the same binding process for triggers/actions as collection rules; however, since templates are treated as separate parts of configuration, this binding instead happens [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Configuration/TemplatesConfigureNamedOptions.cs). ### Collection Rule Defaults -Defaults can be used to limit the verbosity of configuration, allowing frequently used values for collection rules to be assigned as defaults. Options for collection rule defaults can be found [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleDefaultsOptions.cs). These defaults are merged with the user's provided configuration [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Tools/dotnet-monitor/CollectionRules/Options/DefaultCollectionRulePostConfigureOptions.cs) - any properties that the user hasn't set (that have corresponding default values) will be updated at this point to use the default values. This step occurs prior to `dotnet monitor` attempting to use its built-in defaults, which allows user defaults to take precedence. +Defaults can be used to limit the verbosity of configuration, allowing frequently used values for collection rules to be assigned as defaults. Options for collection rule defaults can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleDefaultsOptions.cs). These defaults are merged with the user's provided configuration [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/DefaultCollectionRulePostConfigureOptions.cs) - any properties that the user hasn't set (that have corresponding default values) will be updated at this point to use the default values. This step occurs prior to `dotnet monitor` attempting to use its built-in defaults, which allows user defaults to take precedence. ### Collection Rule API Endpoint -The Collection Rule API Endpoint allows users to get information about the state of their collection rules, providing general information [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L532) and more specific information about a particular rule [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L557). **This API is solely for viewing the current state of rules, not altering state**. +The Collection Rule API Endpoint allows users to get information about the state of their collection rules, providing general information [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L525) and more specific information about a particular rule [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L550). **This API is solely for viewing the current state of rules, not altering state**. -Each collection rule pipeline has a [state holder](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs) that keeps track of the rule's execution. By keeping track of the pipeline's state in real-time, this state doesn't need to be calculated in response to a user hitting the `/collectionrules` endpoint. However, other user-facing information, such as countdowns, are calculated on-demand - these values are solely for display purposes and not used by `dotnet-monitor` when determining when to change state (see [Limits](#limits) for more information). +Each collection rule pipeline has a [state holder](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs) that keeps track of the rule's execution. By keeping track of the pipeline's state in real-time, this state doesn't need to be calculated in response to a user hitting the `/collectionrules` endpoint. However, other user-facing information, such as countdowns, are calculated on-demand - these values are solely for display purposes and not used by `dotnet-monitor` when determining when to change state (see [Limits](#limits) for more information). ## Keeping Documentation Up-To-Date -When making changes to collection rules that require updates to configuration, these changes should be added [here](https://github.com/dotnet/dotnet-monitor/blob/v7.0.1/documentation/configuration.md#collection-rule-configuration). Additional information on collection rules and examples can be provided [here](https://github.com/dotnet/dotnet-monitor/tree/v7.0.1/documentation/collectionrules). +When making changes to collection rules that require updates to configuration, these changes should be added [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/configuration/collection-rule-configuration.md). Additional information on collection rules and examples can be provided [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/collectionrules). diff --git a/documentation/learningPath/configuration.md b/documentation/learningPath/configuration.md index 53242df9928..728b4582255 100644 --- a/documentation/learningPath/configuration.md +++ b/documentation/learningPath/configuration.md @@ -6,22 +6,22 @@ ## How Configuration Works -`dotnet-monitor` accepts configuration from several different sources, and must [combine these sources for the host builder](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/src/Tools/dotnet-monitor/HostBuilder/HostBuilderHelper.cs#L46). Configuration sources are added in the order of lowest to highest precedence - meaning that if there is a conflict between a property in two configuration sources, the property found in the latter configuration source will be used. +`dotnet-monitor` accepts configuration from several different sources, and must [combine these sources for the host builder](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/HostBuilder/HostBuilderHelper.cs#L47). Configuration sources are added in the order of lowest to highest precedence - meaning that if there is a conflict between a property in two configuration sources, the property found in the latter configuration source will be used. -To see the merged configuration, the user can run the `config show` command (see [here](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/src/Tools/dotnet-monitor/Program.cs#L69) and [here](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/src/Tools/dotnet-monitor/Commands/ConfigShowCommandHandler.cs)); the `--show-sources` flag can be used to reveal which configuration source is responsible for each property. The `config show` command's output is [written out as JSON](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/src/Tools/dotnet-monitor/ConfigurationJsonWriter.cs); this section must be manually updated whenever new options are added (or existing options are changed). +To see the merged configuration, the user can run the `config show` command (see [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Program.cs#L68) and [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Commands/ConfigShowCommandHandler.cs)); the `--show-sources` flag can be used to reveal which configuration source is responsible for each property. The `config show` command's output is [written out as JSON](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ConfigurationJsonWriter.cs); this section must be manually updated whenever new options are added (or existing options are changed). -Once configuration has been merged, any singletons that have been added to the `IServiceCollection` (see [here](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs) and [here](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L80)), such as `IConfigureOptions`, `IPostConfigureOptions`, and `IValidateOptions`, are called when an object of that type is first used, **not on startup**. This step is often used to incorporate defaults for properties that were not explicitly set by configuration, or to validate that options were set correctly. +Once configuration has been merged, any singletons that have been added to the `IServiceCollection` (see [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs) and [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L85)), such as `IConfigureOptions`, `IPostConfigureOptions`, and `IValidateOptions`, are called when an object of that type is first used, **not on startup**. This step is often used to incorporate defaults for properties that were not explicitly set by configuration, or to validate that options were set correctly. -Any changes to the configuration need to be propagated to the [schema](https://github.com/dotnet/dotnet-monitor/blob/ba8c36235943562581b666e74ef07954313eda56/documentation/schema.json). **The updated schema should be generated automatically; you should never need to manually edit the JSON.** To update the schema in Visual Studio: -* Set [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/tree/ba8c36235943562581b666e74ef07954313eda56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema) as the startup project +Any changes to the configuration need to be propagated to the [schema](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/schema.json). **The updated schema should be generated automatically; you should never need to manually edit the JSON.** To update the schema in Visual Studio: +* Set [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema) as the startup project * Build the project, with a single command-line argument for the schema's absolute path -* Validate that the schema was correctly updated using the tests in [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/tree/ba8c36235943562581b666e74ef07954313eda56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests) +* Validate that the schema was correctly updated using the tests in [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests) ## Keeping Documentation Up-To-Date -Our configuration is primarily documented [here](https://github.com/dotnet/dotnet-monitor/tree/main/documentation/configuration). Sections are typically comprised of: +Our configuration is primarily documented [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/configuration). Sections are typically comprised of: * A brief overview of the feature that is being configured * Configuration samples in all supported formats * A list of properties with descriptions, types, and whether a property is required -Types are defined in [definitions.md](https://github.com/dotnet/dotnet-monitor/blob/main/documentation/api/definitions.md), and additional information about configuring collection rules can be found in the [collection rules](https://github.com/dotnet/dotnet-monitor/blob/main/documentation/collectionrules) directory. Where appropriate, indicate if configuration only pertains to a specific version of `dotnet-monitor` (e.g. `7.0+`). +Types are defined in [definitions.md](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/api/definitions.md), and additional information about configuring collection rules can be found in the [collection rules](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/collectionrules) directory. Where appropriate, indicate if configuration only pertains to a specific version of `dotnet-monitor` (e.g. `7.0+`). diff --git a/documentation/learningPath/egress.md b/documentation/learningPath/egress.md index db4d712c490..5d44d615f5b 100644 --- a/documentation/learningPath/egress.md +++ b/documentation/learningPath/egress.md @@ -26,11 +26,11 @@ graph LR class ide2 altColor ``` -1. [User initiates collection of artifact with a designated egress provider](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Microsoft.Diagnostics.Monitoring.WebApi/Operation/EgressOperation.cs#L49) -1. [Locate extension's executable and manifest](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/Extensibility/ExtensionDiscoverer.cs#L28) -1. [Start extension and pass configuration/artifact via StdIn to the other process](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L102) -1. [Connect to egress provider using configuration and send artifact](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Extensions/AzureBlobStorage/AzureBlobEgressProvider.cs#L35) -1. [Provide success/failure information via StdOut to dotnet-monitor](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L77) +1. [User initiates collection of artifact with a designated egress provider](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Operation/EgressOperation.cs#L45) +1. [Locate extension's executable and manifest](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Extensibility/ExtensionDiscoverer.cs#L28) +1. [Start extension and pass configuration/artifact via StdIn to the other process](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L102) +1. [Connect to egress provider using configuration and send artifact](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Extensions/AzureBlobStorage/AzureBlobEgressProvider.cs#L36) +1. [Provide success/failure information via StdOut to dotnet-monitor](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L77) ## Distribution and Acquisition Model @@ -41,7 +41,7 @@ There are two versions of the `dotnet-monitor` image being offered: `monitor` an ### Well Known Egress Provider Locations -There are 3 [locations](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L260) that `dotnet-monitor` scans when looking for the extensions directory (the highest priority location is listed first): +There are 3 [locations](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L279) that `dotnet-monitor` scans when looking for the extensions directory (the highest priority location is listed first): - Next to the executing `dotnet-monitor` assembly - SharedConfigDirectory - On Windows, `%ProgramData%\dotnet-monitor` @@ -59,23 +59,23 @@ The distribution/acquisition model for third-party egress providers is determine ### Extension Manifest -All extensions must include a manifest titled [`extension.json`](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Extensions/AzureBlobStorage/extension.json) that provides `dotnet-monitor` with some basic information about the extension. +All extensions must include a manifest titled [`extension.json`](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Extensions/AzureBlobStorage/extension.json) that provides `dotnet-monitor` with some basic information about the extension. | Name | Required | Type | Description | |---|---|---|---| | `Name` | true | string | The name of the extension (e.g. AzureBlobStorage) that users will use when writing configuration for the egress provider. | | `ExecutableFileName` | false | string | If specified, the executable file (without extension) to be launched when executing the extension; either `AssemblyFileName` or `ExecutableFileName` must be specified. | | `AssemblyFileName` | false | string | If specified, executes the extension using the shared .NET host (e.g. dotnet.exe) with the specified entry point assembly (without extension); either `AssemblyFileName` or `ExecutableFileName` must be specified. | -| `Modes` | false | [[ExtensionMode](../api/definitions.md#extensionmode)] | Additional modes the extension can be configured to run in (see an example of Validation [here](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L80)). | +| `Modes` | false | [[ExtensionMode](../api/definitions.md#extensionmode)] | Additional modes the extension can be configured to run in (see an example of Validation [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L80)). | ### Configuration Extensions are designed to receive all user configuration through `dotnet monitor` - the extension itself should not rely on any additional configuration sources. -In addition to the configuration provided specifically for your egress provider, `dotnet-monitor` also includes the values stored in [`Properties`](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Microsoft.Diagnostics.Monitoring.Options/EgressOptions.cs#L21). Note that `Properties` may include information that is not relevant to the current egress provider, since it is a shared bucket between all configured egress providers. +In addition to the configuration provided specifically for your egress provider, `dotnet-monitor` also includes the values stored in [`Properties`](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options/EgressOptions.cs#L21). Note that `Properties` may include information that is not relevant to the current egress provider, since it is a shared bucket between all configured egress providers. ### Communicating With Dotnet-Monitor -[`dotnet monitor` will pass serialized configuration via `StdIn` to the extension](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L182); an example of how the `AzureBlobStorage` egress provider interprets the egress payload can be found [here](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L139). **It's important to validate the version number at the beginning of the stream; if an extension does not have the same version as `dotnet-monitor`, it should not attempt to continue reading from the stream, and users may need to update to a newer version of the extension.** +[`dotnet monitor` will pass serialized configuration via `StdIn` to the extension](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L182); an example of how the `AzureBlobStorage` egress provider interprets the egress payload can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L141). **It's important to validate the version number at the beginning of the stream; if an extension does not have the same version as `dotnet-monitor`, it should not attempt to continue reading from the stream, and users may need to update to a newer version of the extension.** -All output from the extension will be passed back to `dotnet-monitor`; this is logged [here](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L62). The contents of the `StandardOutput` and `StandardError` streams are handled and logged as seen [here](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L32), with the `StandardOutput` stream being logged at the `Info` level and the `StandardError` stream being logged at the `Warning` level. `Dotnet-Monitor` will continue reading output until it receives a [result](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Tools/dotnet-monitor/Egress/Extension/EgressArtifactResult.cs) from the extension via the `StandardOutput` stream, at which point the extension's process will be terminated and `dotnet-monitor` will display the appropriate log message depending on the success/failure of the operation. Exceptions thrown during the egress operation are caught [here](https://github.com/dotnet/dotnet-monitor/blob/289105261537f3977f7d1886f936d19bb3639d46/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L53); this allows the extension to report a failure message back to `dotnet-monitor` that will be displayed to the user. +All output from the extension will be passed back to `dotnet-monitor`; this is logged [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L62). The contents of the `StandardOutput` and `StandardError` streams are handled and logged as seen [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L32), with the `StandardOutput` stream being logged at the `Info` level and the `StandardError` stream being logged at the `Warning` level. `Dotnet-Monitor` will continue reading output until it receives a [result](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressArtifactResult.cs) from the extension via the `StandardOutput` stream, at which point the extension's process will be terminated and `dotnet-monitor` will display the appropriate log message depending on the success/failure of the operation. Exceptions thrown during the egress operation are caught [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L71); this allows the extension to report a failure message back to `dotnet-monitor` that will be displayed to the user. diff --git a/documentation/learningPath/testing.md b/documentation/learningPath/testing.md index 38a36633348..0d7d0034ad6 100644 --- a/documentation/learningPath/testing.md +++ b/documentation/learningPath/testing.md @@ -7,81 +7,81 @@ Tests can be executed with the command line (via [build.cmd](../../Build.cmd) -test), as part of the PR build, or in Visual Studio. Note that because of limited resources in the build pool, tests ran from the command line or in the build pool are serialized. This avoids test failures associated with parallel testing. Visual Studio does not have such restrictions and is best used for individual tests and test investigations. When running from the command line, using the `-testgroup` parameter can be used to limit the amount of tests executed. For example `build.cmd -test -testgroup PR` will run the same tests as the PR build. -The framework of the test assemblies is controlled by [TestTargetFrameworks](../../eng/Versions.props). The test itself is attributed with a particular framework based on the [TargetFrameworkMonikerTraitAttribute](../../src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/TargetFrameworkMonikerTraitAttribute.cs). +The framework of the test assemblies is controlled by [TestTargetFrameworks](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/eng/Versions.props). The test itself is attributed with a particular framework based on the [TargetFrameworkMonikerTraitAttribute](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/TargetFrameworkMonikerTraitAttribute.cs). ## Unit Tests -- [Microsoft.Diagnostics.Monitoring.Tool.UnitTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests) -- [Microsoft.Diagnostics.Monitoring.WebApi.UnitTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/) -- [CollectionRuleActions.UnitTests](../../src/Tests/CollectionRuleActions.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.Tool.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests) +- [Microsoft.Diagnostics.Monitoring.WebApi.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/) +- [CollectionRuleActions.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/CollectionRuleActions.UnitTests/) Unit test assemblies directly reference types from various dotnet-monitor assemblies. However, since most of dotnet-monitor heavily relies on code injection, there are utility classes to simplify unit test creation. -- [TestHostHelper](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs) can be used to setup a basic unit test scenario using dependency injection. -- [CollectionRuleOptionsExtensions](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Options/CollectionRuleOptionsExtensions.cs) can be used to easily create collection rules from configuration. +- [TestHostHelper](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs) can be used to setup a basic unit test scenario using dependency injection. +- [CollectionRuleOptionsExtensions](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Options/CollectionRuleOptionsExtensions.cs) can be used to easily create collection rules from configuration. ## Functional Tests -- [Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests) -- [Microsoft.Diagnostics.Monitoring.UnitTestApp](../../src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/) +- [Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests) +- [Microsoft.Diagnostics.Monitoring.UnitTestApp](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/) Functional tests are composed of 3 main parts: 1. The test itself, which sets up and validates the results. 1. An instance of dotnet-monitor 1. An instance of an application that is being monitored (from the UnitTestApp assembly) -* [ScenarioRunner](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/ScenarioRunner.cs) is typically used to orchestrate test runs. The class will spawn both an instance of dotnet-monitor and an instance of test application. The app and the test communicate via stdio. The test communicates with dotnet-monitor via its Api surface. -* The dotnet-monitor Api surface can be accessed through the [ApiClient](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs). -* New scenarios can be added [here](../../src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/). -* The [AsyncWaitScenario](../../src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/AsyncWaitScenario.cs) is sufficient for most tests. -* Coordination of the scenario and the test is done via message passing (json over stdio) between the test and the app. To send messages to the app from the test, [AppRunner](../../src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/AppRunner.cs)'s `SendCommandAsync` is used. In the scenario definition, [ScenarioHelpers](../../src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/ScenarioHelpers.cs)'s `WaitForCommandAsync` is used. This can be used to synchronize various points of the test application with the execution of the dotnet-monitor Api from the test itself. +* [ScenarioRunner](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/ScenarioRunner.cs) is typically used to orchestrate test runs. The class will spawn both an instance of dotnet-monitor and an instance of test application. The app and the test communicate via stdio. The test communicates with dotnet-monitor via its Api surface. +* The dotnet-monitor Api surface can be accessed through the [ApiClient](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs). +* New scenarios can be added [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/). +* The [AsyncWaitScenario](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/AsyncWaitScenario.cs) is sufficient for most tests. +* Coordination of the scenario and the test is done via message passing (json over stdio) between the test and the app. To send messages to the app from the test, [AppRunner](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/AppRunner.cs)'s `SendCommandAsync` is used. In the scenario definition, [ScenarioHelpers](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/ScenarioHelpers.cs)'s `WaitForCommandAsync` is used. This can be used to synchronize various points of the test application with the execution of the dotnet-monitor Api from the test itself. ## Native/Profiler Tests -- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTests/) -- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp](../../src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/) +- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/) This test assembly provides a test to make sure the dotnet-monitor profiler can load into a target app. ## Schema Generation -- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/) -- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](../../src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/) -- [Microsoft.Diagnostics.Monitoring.Options](../../src/Microsoft.Diagnostics.Monitoring.Options) +- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/) +- [Microsoft.Diagnostics.Monitoring.Options](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options) -Dotnet-monitor generates [schema.json](../../documentation/schema.json) using unit tests. If dotnet-monitor's configuration changes, the schema.json file needs to be updated. -Note that it is possible to compile option classes directly into the `ConfigurationSchema` project. This may be necessary in order to attribute properties appropriately for schema generation. See [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj](../../src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj). See the [Configuration](./configuration.md#how-configuration-works) learning path for more details. +Dotnet-monitor generates [schema.json](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/schema.json) using unit tests. If dotnet-monitor's configuration changes, the schema.json file needs to be updated. +Note that it is possible to compile option classes directly into the `ConfigurationSchema` project. This may be necessary in order to attribute properties appropriately for schema generation. See [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj). See the [Configuration](./configuration.md#how-configuration-works) learning path for more details. ## OpenAPI generation -- [Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/) -- [Microsoft.Diagnostics.Monitoring.OpenApiGen](../../src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen/) +- [Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.OpenApiGen](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen/) -These assemblies and tests are used to generate the [OpenAPI spec](../../documentation/openapi.json) for the dotnet-monitor API. Changes to the dotnet-monitor api surface require updating `openapi.json`. +These assemblies and tests are used to generate the [OpenAPI spec](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/openapi.json) for the dotnet-monitor API. Changes to the dotnet-monitor api surface require updating `openapi.json`. If using VSCode or Codespaces, you can also use the `Regenerate openapi.json` task. ## Startup hooks / hosting startup -- [Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook/) +- [Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook/) This assembly is injected into a dotnet-monitor runner (using `DOTNET_STARTUP_HOOKS`) to facilitate Assembly resolution during test runs. -- [Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup/) +- [Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup/) Uses `ASPNETCORE_HOSTINGSTARTUPASSEMBLIES` to inject a service into dotnet-monitor during test time. This allows tests to locate files that are not normally part of the test deployment, such as the native profiler. -- [Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests](../../src/Tests/Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests/) Unit tests around features that are injected via `DOTNET_STARTUP_HOOKS` into the target application. This currently includes the Exceptions History feature. ## Misc test assemblies -- [Microsoft.Diagnostics.Monitoring.TestCommon](../../src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/) +- [Microsoft.Diagnostics.Monitoring.TestCommon](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/) Utility classes that are shared between Unit Tests and Functional Tests. -- [Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon](../../src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/) +- [Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/) Utility classes shared between unit test assemblies. From abdf19be811d2c19d4aa4ef3d91e883163580236 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 3 Feb 2024 14:20:32 +0000 Subject: [PATCH 015/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240202.1 (#5963) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0be68fe2d12..e74d06204e1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c
- + https://github.com/dotnet/diagnostics - dd6e8b06597454cb532541173a0893fac6b1df32 + 1ec19cec00fa8b9581f231b16e2d0681b82974bb - + https://github.com/dotnet/diagnostics - dd6e8b06597454cb532541173a0893fac6b1df32 + 1ec19cec00fa8b9581f231b16e2d0681b82974bb https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index ffc409d4f21..d27e7cf92b0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24101.1 - 8.0.0-preview.24081.1 - 8.0.0-preview.24081.1 + 8.0.0-preview.24102.1 + 8.0.0-preview.24102.1 8.0.102-servicing.24073.3 From def0772cfe42698bb5039ba3e3567a4e079511da Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 3 Feb 2024 14:30:27 +0000 Subject: [PATCH 016/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240202.1 (#5964) [main] Update dependencies from dotnet/command-line-api --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e74d06204e1..58c9cde58ee 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics 1ec19cec00fa8b9581f231b16e2d0681b82974bb - + https://github.com/dotnet/command-line-api - 3674f88896ded1be30c77b14196773372a2ddfac + 46fea71e3d98dad0d676950522004b7f295dd372 diff --git a/eng/Versions.props b/eng/Versions.props index d27e7cf92b0..74ab4144bfc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 8.0.1 8.0.1-servicing.23580.8 - 2.0.0-beta4.24101.1 + 2.0.0-beta4.24102.1 8.0.0-preview.24102.1 8.0.0-preview.24102.1 From 2e3dbb0873e118cf6032547709968806828e91e3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 3 Feb 2024 14:39:38 +0000 Subject: [PATCH 017/131] Update dependencies from https://github.com/dotnet/installer build 20240202.2 (#5967) [main] Update dependencies from dotnet/installer --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 58c9cde58ee..4753d34783b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/installer - afd16eda2596624d8611e944923cec4cf883ce63 + 7732f41b2e8465ec8e67069ffa18908c79c354bd https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 74ab4144bfc..d940da60ffc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.0-preview.24102.1 8.0.0-preview.24102.1 - 8.0.102-servicing.24073.3 + 8.0.102-servicing.24102.2 8.0.0-preview.23525.2 From 60ea17521f3aa3751c382c72ec6fd1885db6c67a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 13:27:05 -0800 Subject: [PATCH 018/131] [feature/9.x] Update dependencies from dotnet/arcade (#5970) * Update dependencies from https://github.com/dotnet/arcade build 20240202.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24101.2 -> To Version 9.0.0-beta.24102.4 * Update dependencies from https://github.com/dotnet/arcade build 20240202.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24101.2 -> To Version 9.0.0-beta.24102.4 * Update dependencies from https://github.com/dotnet/arcade build 20240202.4 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24101.2 -> To Version 9.0.0-beta.24102.4 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cf68c52f3a1..bc90e5c8f3b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - db8765409d91a7ac626f5ff932459876a5bea9c6 + 2fb543a45580400a559b5ae41c96a815ea14dac5 - + https://github.com/dotnet/arcade - db8765409d91a7ac626f5ff932459876a5bea9c6 + 2fb543a45580400a559b5ae41c96a815ea14dac5 - + https://github.com/dotnet/arcade - db8765409d91a7ac626f5ff932459876a5bea9c6 + 2fb543a45580400a559b5ae41c96a815ea14dac5 - + https://github.com/dotnet/arcade - db8765409d91a7ac626f5ff932459876a5bea9c6 + 2fb543a45580400a559b5ae41c96a815ea14dac5 https://github.com/dotnet/installer 103ff6d4866ae1feff84a1865df0c1a7494ceffc - + https://github.com/dotnet/arcade - db8765409d91a7ac626f5ff932459876a5bea9c6 + 2fb543a45580400a559b5ae41c96a815ea14dac5 https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index bfda5dbb6b7..26afa01d141 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24101.2 - 9.0.0-beta.24101.2 - 9.0.0-beta.24101.2 + 9.0.0-beta.24102.4 + 9.0.0-beta.24102.4 + 9.0.0-beta.24102.4 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/global.json b/global.json index fd5699cf856..75ae5dc037e 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24101.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24101.2" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24102.4", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24102.4" } } From a381e0cb2e95c1cb4ffce652bfa9723df8d72f73 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 13:27:50 -0800 Subject: [PATCH 019/131] [feature/9.x] Update dependencies from dotnet/command-line-api (#5969) * Update dependencies from https://github.com/dotnet/command-line-api build 20240202.1 System.CommandLine From Version 2.0.0-beta4.24101.1 -> To Version 2.0.0-beta4.24102.1 * Update dependencies from https://github.com/dotnet/command-line-api build 20240202.1 System.CommandLine From Version 2.0.0-beta4.24101.1 -> To Version 2.0.0-beta4.24102.1 * Update dependencies from https://github.com/dotnet/command-line-api build 20240202.1 System.CommandLine From Version 2.0.0-beta4.24101.1 -> To Version 2.0.0-beta4.24102.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bc90e5c8f3b..09fee0022cb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics ab997a03a80e55adde06087c1cb810fcfe257f8e - + https://github.com/dotnet/command-line-api - 3674f88896ded1be30c77b14196773372a2ddfac + 46fea71e3d98dad0d676950522004b7f295dd372 diff --git a/eng/Versions.props b/eng/Versions.props index 26afa01d141..2cefda09428 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 - 2.0.0-beta4.24101.1 + 2.0.0-beta4.24102.1 8.0.0-preview.24101.1 8.0.0-preview.24101.1 From f932b6d93d61d2507af3ac2820a05ec12a76f2a8 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 17:04:12 -0800 Subject: [PATCH 020/131] [feature/9.x] Update dependencies from dotnet/diagnostics (#5968) * Update dependencies from https://github.com/dotnet/diagnostics build 20240202.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24101.1 -> To Version 8.0.0-preview.24102.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240202.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24101.1 -> To Version 8.0.0-preview.24102.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240202.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24101.1 -> To Version 8.0.0-preview.24102.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 09fee0022cb..a0ef15d865f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - ab997a03a80e55adde06087c1cb810fcfe257f8e + 1ec19cec00fa8b9581f231b16e2d0681b82974bb - + https://github.com/dotnet/diagnostics - ab997a03a80e55adde06087c1cb810fcfe257f8e + 1ec19cec00fa8b9581f231b16e2d0681b82974bb https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 2cefda09428..87e1731cc7a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24101.1 - 8.0.0-preview.24101.1 + 8.0.0-preview.24102.1 + 8.0.0-preview.24102.1 9.0.100-preview.1.24101.4 From 162bbcf832aa9913c82029c20030332c79142d65 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 14:15:51 +0000 Subject: [PATCH 021/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240205.2 (#5982) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4753d34783b..7187109eca1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 1ec19cec00fa8b9581f231b16e2d0681b82974bb + 47652575bc89e980d85a9f142a41352ffc391788 - + https://github.com/dotnet/diagnostics - 1ec19cec00fa8b9581f231b16e2d0681b82974bb + 47652575bc89e980d85a9f142a41352ffc391788 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index d940da60ffc..7f1de71d6c3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24102.1 - 8.0.0-preview.24102.1 + 8.0.0-preview.24105.2 + 8.0.0-preview.24105.2 8.0.102-servicing.24102.2 From e197e8fe8b030d0738e3d9493f324c76d52b7ef6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 14:23:30 +0000 Subject: [PATCH 022/131] Update dependencies from https://github.com/dotnet/symstore build 20240205.1 (#5983) [main] Update dependencies from dotnet/symstore --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7187109eca1..67c25d698e9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -46,9 +46,9 @@ https://github.com/dotnet/arcade be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/symstore - 0c7b75fc18db3a4f9b7737ae55a0d04e913ac40c + 36d076932232b23c4e2de271e894b23a16c34ef6 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 7f1de71d6c3..f4eb3c6b447 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -72,7 +72,7 @@ 8.0.1 8.0.1-servicing.23580.1 - 1.0.507901 + 1.0.510501 $(MicrosoftNETCoreApp31Version) From d5bae126953fd6990474313b11f40fd1f20600dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 09:48:36 -0800 Subject: [PATCH 023/131] Bump actions/upload-artifact from 4.3.0 to 4.3.1 (#5988) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/26f96dfa697d77e81fd5907df203aa23a56210a8...5d5d22a31266ced268874388b861e4b58bb5c2f3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add-markdown-feedback.yml | 2 +- .github/workflows/lint-csharp.yml | 2 +- .github/workflows/scan-for-to-do-comments.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/add-markdown-feedback.yml b/.github/workflows/add-markdown-feedback.yml index 2eba99b19ef..5b91541212f 100644 --- a/.github/workflows/add-markdown-feedback.yml +++ b/.github/workflows/add-markdown-feedback.yml @@ -47,7 +47,7 @@ jobs: git diff > ./pr/linter.diff - name: Upload artifacts - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 with: name: pr-linter path: pr/ diff --git a/.github/workflows/lint-csharp.yml b/.github/workflows/lint-csharp.yml index 5dd9a02d517..3fd19cffec7 100644 --- a/.github/workflows/lint-csharp.yml +++ b/.github/workflows/lint-csharp.yml @@ -48,7 +48,7 @@ jobs: git diff > ./pr/linter.diff - name: Upload artifacts - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 with: name: pr-linter path: pr/ diff --git a/.github/workflows/scan-for-to-do-comments.yml b/.github/workflows/scan-for-to-do-comments.yml index e22b7ecf6bf..6aa51353744 100644 --- a/.github/workflows/scan-for-to-do-comments.yml +++ b/.github/workflows/scan-for-to-do-comments.yml @@ -27,7 +27,7 @@ jobs: COMMENT_AUTHOR: ${{ github.event.comment.user.login }} - name: Upload artifacts - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 with: name: issue-todo path: issue/ From 9407c5b87725b2ab0506a024ed1ea238a4584f02 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 18:33:08 +0000 Subject: [PATCH 024/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240205.2 (#5984) [feature/9.x] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a0ef15d865f..9ed3e4b32db 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - 1ec19cec00fa8b9581f231b16e2d0681b82974bb + 47652575bc89e980d85a9f142a41352ffc391788 - + https://github.com/dotnet/diagnostics - 1ec19cec00fa8b9581f231b16e2d0681b82974bb + 47652575bc89e980d85a9f142a41352ffc391788 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 87e1731cc7a..8ef1468da8e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24102.1 - 8.0.0-preview.24102.1 + 8.0.0-preview.24105.2 + 8.0.0-preview.24105.2 9.0.100-preview.1.24101.4 From 965fa721d753404617e990f80165d0585c59cba7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:35:53 -0800 Subject: [PATCH 025/131] Update dependencies from https://github.com/dotnet/symstore build 20240205.1 (#5987) Microsoft.FileFormats From Version 1.0.507901 -> To Version 1.0.510501 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9ed3e4b32db..1eaf2a6a9ae 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -46,9 +46,9 @@ https://github.com/dotnet/arcade 2fb543a45580400a559b5ae41c96a815ea14dac5 - + https://github.com/dotnet/symstore - 0c7b75fc18db3a4f9b7737ae55a0d04e913ac40c + 36d076932232b23c4e2de271e894b23a16c34ef6 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 8ef1468da8e..68165ac02d2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -72,7 +72,7 @@ 9.0.0-preview.1.24080.9 9.0.0-preview.1.24080.9 - 1.0.507901 + 1.0.510501 $(MicrosoftNETCoreApp31Version) From 5f0050af9a5a966afd699a4c69ddf2491dd251cc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:36:03 -0800 Subject: [PATCH 026/131] Update dependencies from https://github.com/dotnet/arcade build 20240205.3 (#5985) Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24102.4 -> To Version 9.0.0-beta.24105.3 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- eng/common/native/init-os-and-arch.sh | 4 ++++ eng/common/tools.ps1 | 6 +++--- global.json | 4 ++-- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1eaf2a6a9ae..110d8e42c39 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - 2fb543a45580400a559b5ae41c96a815ea14dac5 + 8cfc9489d3e51071fedec9dcb99071dc912718bd - + https://github.com/dotnet/arcade - 2fb543a45580400a559b5ae41c96a815ea14dac5 + 8cfc9489d3e51071fedec9dcb99071dc912718bd - + https://github.com/dotnet/arcade - 2fb543a45580400a559b5ae41c96a815ea14dac5 + 8cfc9489d3e51071fedec9dcb99071dc912718bd - + https://github.com/dotnet/arcade - 2fb543a45580400a559b5ae41c96a815ea14dac5 + 8cfc9489d3e51071fedec9dcb99071dc912718bd https://github.com/dotnet/installer 103ff6d4866ae1feff84a1865df0c1a7494ceffc - + https://github.com/dotnet/arcade - 2fb543a45580400a559b5ae41c96a815ea14dac5 + 8cfc9489d3e51071fedec9dcb99071dc912718bd https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 68165ac02d2..10dee6b35d5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24102.4 - 9.0.0-beta.24102.4 - 9.0.0-beta.24102.4 + 9.0.0-beta.24105.3 + 9.0.0-beta.24105.3 + 9.0.0-beta.24105.3 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/eng/common/native/init-os-and-arch.sh b/eng/common/native/init-os-and-arch.sh index e693617a6c2..caa448ff030 100644 --- a/eng/common/native/init-os-and-arch.sh +++ b/eng/common/native/init-os-and-arch.sh @@ -35,6 +35,10 @@ fi case "$CPUName" in arm64|aarch64) arch=arm64 + if [ "$(getconf LONG_BIT)" -lt 64 ]; then + # This is 32-bit OS running on 64-bit CPU (for example Raspberry Pi OS) + arch=arm + fi ;; loongarch64) diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index a8f8edb3291..7d8dc89b919 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,7 +379,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.8.5 + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.8.5 $defaultXCopyMSBuildVersion = '17.8.5' if (!$vsRequirements) { @@ -445,7 +445,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = if ($xcopyMSBuildVersion.Trim() -ine "none") { $vsInstallDir = InitializeXCopyMSBuild $xcopyMSBuildVersion $install if ($vsInstallDir -eq $null) { - throw "Could not xcopy msbuild. Please check that package 'RoslynTools.MSBuild @ $xcopyMSBuildVersion' exists on feed 'dotnet-eng'." + throw "Could not xcopy msbuild. Please check that package 'Microsoft.DotNet.Arcade.MSBuild.Xcopy @ $xcopyMSBuildVersion' exists on feed 'dotnet-eng'." } } if ($vsInstallDir -eq $null) { @@ -482,7 +482,7 @@ function InstallXCopyMSBuild([string]$packageVersion) { } function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install) { - $packageName = 'RoslynTools.MSBuild' + $packageName = 'Microsoft.DotNet.Arcade.MSBuild.Xcopy' $packageDir = Join-Path $ToolsDir "msbuild\$packageVersion" $packagePath = Join-Path $packageDir "$packageName.$packageVersion.nupkg" diff --git a/global.json b/global.json index 75ae5dc037e..a658ae62e0a 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24102.4", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24102.4" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24105.3", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24105.3" } } From 3a88ed1153e773a71b404c1d4a970992ad8bcd9f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 14:11:07 +0000 Subject: [PATCH 027/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240206.1 (#5993) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 67c25d698e9..c857208ddfd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 47652575bc89e980d85a9f142a41352ffc391788 + 38209cc13e871db9deac85b7c469d27b51c9de9b - + https://github.com/dotnet/diagnostics - 47652575bc89e980d85a9f142a41352ffc391788 + 38209cc13e871db9deac85b7c469d27b51c9de9b https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index f4eb3c6b447..b3662769136 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24105.2 - 8.0.0-preview.24105.2 + 8.0.0-preview.24106.1 + 8.0.0-preview.24106.1 8.0.102-servicing.24102.2 From 26235d396948a6fc092865c488a20addefbf4de0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 14:25:40 -0800 Subject: [PATCH 028/131] Add 6.3.5 release notes (#5996) * generate release notes * Update releaseNotes.v6.3.5.md --------- Co-authored-by: github-actions Co-authored-by: Wiktor Kopec --- documentation/releaseNotes/releaseNotes.v6.3.5.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 documentation/releaseNotes/releaseNotes.v6.3.5.md diff --git a/documentation/releaseNotes/releaseNotes.v6.3.5.md b/documentation/releaseNotes/releaseNotes.v6.3.5.md new file mode 100644 index 00000000000..af631589440 --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v6.3.5.md @@ -0,0 +1,4 @@ +Today we are releasing the 6.3.5 build of the `dotnet monitor` tool. This release includes: +- Updated dependencies + +If you would like to provide additional feedback to the team [please fill out this survey](https://aka.ms/dotnet-monitor-survey?src=rn). From cd7dfcd5a20f7562157d7b402a662a3a97eb8d21 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 16:30:13 -0800 Subject: [PATCH 029/131] Add 7.3.3 release notes (#5997) * generate release notes * Update releaseNotes.v7.3.3.md * Update releaseNotes.v7.3.3.md --------- Co-authored-by: github-actions Co-authored-by: Wiktor Kopec --- documentation/releaseNotes/releaseNotes.v7.3.3.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 documentation/releaseNotes/releaseNotes.v7.3.3.md diff --git a/documentation/releaseNotes/releaseNotes.v7.3.3.md b/documentation/releaseNotes/releaseNotes.v7.3.3.md new file mode 100644 index 00000000000..057256caf53 --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v7.3.3.md @@ -0,0 +1,4 @@ +Today we are releasing the 7.3.3 build of the `dotnet monitor` tool. This release includes: +- Updated dependencies + +If you would like to provide additional feedback to the team [please fill out this survey](https://aka.ms/dotnet-monitor-survey?src=rn). From bf402b2509636d7560db4b2405f80ce4b396dc3a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 04:29:21 +0000 Subject: [PATCH 030/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240207.1 (#5999) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c857208ddfd..0292fd7533d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,11 +4,11 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics 38209cc13e871db9deac85b7c469d27b51c9de9b - + https://github.com/dotnet/diagnostics 38209cc13e871db9deac85b7c469d27b51c9de9b diff --git a/eng/Versions.props b/eng/Versions.props index b3662769136..4dc9d83cee4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24106.1 - 8.0.0-preview.24106.1 + 8.0.0-preview.24107.1 + 8.0.0-preview.24107.1 8.0.102-servicing.24102.2 From 44fbfc9b6034dd131a929fdd7a10641d407c2c43 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 15:23:10 +0000 Subject: [PATCH 031/131] [feature/9.x] Update dependencies from dotnet/arcade (#6002) [feature/9.x] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 110d8e42c39..9ab758ed9a8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - 8cfc9489d3e51071fedec9dcb99071dc912718bd + f7eb7794c703dc29a83b414b786e9a154f0ca042 - + https://github.com/dotnet/arcade - 8cfc9489d3e51071fedec9dcb99071dc912718bd + f7eb7794c703dc29a83b414b786e9a154f0ca042 - + https://github.com/dotnet/arcade - 8cfc9489d3e51071fedec9dcb99071dc912718bd + f7eb7794c703dc29a83b414b786e9a154f0ca042 - + https://github.com/dotnet/arcade - 8cfc9489d3e51071fedec9dcb99071dc912718bd + f7eb7794c703dc29a83b414b786e9a154f0ca042 https://github.com/dotnet/installer 103ff6d4866ae1feff84a1865df0c1a7494ceffc - + https://github.com/dotnet/arcade - 8cfc9489d3e51071fedec9dcb99071dc912718bd + f7eb7794c703dc29a83b414b786e9a154f0ca042 https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 10dee6b35d5..f034e195a62 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24105.3 - 9.0.0-beta.24105.3 - 9.0.0-beta.24105.3 + 9.0.0-beta.24106.2 + 9.0.0-beta.24106.2 + 9.0.0-beta.24106.2 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/global.json b/global.json index a658ae62e0a..778c3239044 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24105.3", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24105.3" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24106.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24106.2" } } From 7e046d88a91a961cf2426ab0ebaf22e6aaa0ea8d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:07:16 -0800 Subject: [PATCH 032/131] Add 8.0.1 release notes (#6004) * generate release notes * Update releaseNotes.v8.0.1.md * Update releaseNotes.v8.0.1.md --------- Co-authored-by: github-actions Co-authored-by: Wiktor Kopec --- documentation/releaseNotes/releaseNotes.v8.0.1.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 documentation/releaseNotes/releaseNotes.v8.0.1.md diff --git a/documentation/releaseNotes/releaseNotes.v8.0.1.md b/documentation/releaseNotes/releaseNotes.v8.0.1.md new file mode 100644 index 00000000000..a103051bef4 --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v8.0.1.md @@ -0,0 +1,7 @@ +Today we are releasing the 8.0.1 build of the `dotnet monitor` tool. This release includes: +- Updated dependencies +- ⚠️ Simplify Types in Plain Text Representation ([#5882](https://github.com/dotnet/dotnet-monitor/pull/5882)) + +\*⚠️ **_indicates a breaking change_** \ + +If you would like to provide additional feedback to the team [please fill out this survey](https://aka.ms/dotnet-monitor-survey?src=rn). From 722456e0ba6bc989cb87265c1cf07e0c3f8cc093 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:07:26 -0800 Subject: [PATCH 033/131] Add 9.0.0-preview.1 release notes (#5998) * generate release notes * Update releaseNotes.v9.0.0-preview.1.md --------- Co-authored-by: github-actions Co-authored-by: Wiktor Kopec --- .../releaseNotes/releaseNotes.v9.0.0-preview.1.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 documentation/releaseNotes/releaseNotes.v9.0.0-preview.1.md diff --git a/documentation/releaseNotes/releaseNotes.v9.0.0-preview.1.md b/documentation/releaseNotes/releaseNotes.v9.0.0-preview.1.md new file mode 100644 index 00000000000..015928bcea2 --- /dev/null +++ b/documentation/releaseNotes/releaseNotes.v9.0.0-preview.1.md @@ -0,0 +1,8 @@ +Today we are releasing the next official preview version of the `dotnet monitor` tool. This release includes: + +- 🔬 Support capturing the following parameter types: generics, tuples, and nullable value types ([#5812](https://github.com/dotnet/dotnet-monitor/pull/5812)) +- Add Support for Meter Tags and Instrument Tags for System Diagnostics Metrics ([#5802](https://github.com/dotnet/dotnet-monitor/pull/5802)) + +\*🔬 **_indicates an experimental feature_** + +If you would like to provide additional feedback to the team [please fill out this survey](https://aka.ms/dotnet-monitor-survey?src=rn). From 78564d731ae2679c0f0d227d9dd29e3874a4db15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:32:14 -0800 Subject: [PATCH 034/131] Bump reviewdog/action-setup from 1.2.0 to 1.2.1 (#6007) Bumps [reviewdog/action-setup](https://github.com/reviewdog/action-setup) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/reviewdog/action-setup/releases) - [Commits](https://github.com/reviewdog/action-setup/compare/4ada0d03764db369df4069af8fbc514388a3e4fe...1d18b2938261447f64c39f831d7395e90ef5a40e) --- updated-dependencies: - dependency-name: reviewdog/action-setup dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/submit-linter-suggestions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/submit-linter-suggestions.yml b/.github/workflows/submit-linter-suggestions.yml index 3dfff591640..b2cb14e76a2 100644 --- a/.github/workflows/submit-linter-suggestions.yml +++ b/.github/workflows/submit-linter-suggestions.yml @@ -57,7 +57,7 @@ jobs: path: ./pr-linter - name: 'Setup reviewdog' - uses: reviewdog/action-setup@4ada0d03764db369df4069af8fbc514388a3e4fe + uses: reviewdog/action-setup@1d18b2938261447f64c39f831d7395e90ef5a40e # Manually supply the triggering PR event information since when a PR is from a fork, # this workflow running in the base repo will not be given information about it. From 66629dec8c94e899fa14a6155c24db8d80eea008 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:32:49 -0800 Subject: [PATCH 035/131] [feature/9.x] Update dependencies from dotnet/diagnostics (#6001) * Update dependencies from https://github.com/dotnet/diagnostics build 20240207.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24105.2 -> To Version 8.0.0-preview.24107.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240208.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24105.2 -> To Version 8.0.0-preview.24108.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9ab758ed9a8..22ed2e458bb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - 47652575bc89e980d85a9f142a41352ffc391788 + 6011f2e05c90f928dffbb5c526e28b8a751d44bc - + https://github.com/dotnet/diagnostics - 47652575bc89e980d85a9f142a41352ffc391788 + 6011f2e05c90f928dffbb5c526e28b8a751d44bc https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index f034e195a62..4a23770c401 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24105.2 - 8.0.0-preview.24105.2 + 8.0.0-preview.24108.1 + 8.0.0-preview.24108.1 9.0.100-preview.1.24101.4 From d6ed4b2407a62c97985b4d6b3848ae565f2451e2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:33:11 -0800 Subject: [PATCH 036/131] [main] Update dependencies from dotnet/installer (#6000) * Update dependencies from https://github.com/dotnet/installer build 20240207.12 Microsoft.Dotnet.Sdk.Internal From Version 8.0.102-servicing.24102.2 -> To Version 8.0.103-servicing.24107.12 * Update dependencies from https://github.com/dotnet/installer build 20240208.7 Microsoft.Dotnet.Sdk.Internal From Version 8.0.102-servicing.24102.2 -> To Version 8.0.103-servicing.24108.7 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0292fd7533d..9b2c8b18275 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/installer - 7732f41b2e8465ec8e67069ffa18908c79c354bd + 34ceb5eeb4c8cf1cb42ed943798fd92c643ab7c4 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 4dc9d83cee4..18f76ba3af4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.0-preview.24107.1 8.0.0-preview.24107.1 - 8.0.102-servicing.24102.2 + 8.0.103-servicing.24108.7 8.0.0-preview.23525.2 From ac6b45dea9ed836dbb0c70dfa2964d029c7b183d Mon Sep 17 00:00:00 2001 From: Jeff Handley Date: Fri, 9 Feb 2024 10:45:31 -0800 Subject: [PATCH 037/131] Fix the automation for merged/closed PRs (#6005) --- .github/policies/resourceManagement.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.github/policies/resourceManagement.yml b/.github/policies/resourceManagement.yml index 1a4a75b9ce4..db66955e47d 100644 --- a/.github/policies/resourceManagement.yml +++ b/.github/policies/resourceManagement.yml @@ -93,7 +93,7 @@ configuration: - isAction: action: Edited - isAction: - action: Null + action: Closed - not: isActivitySender: user: msftbot @@ -115,8 +115,6 @@ configuration: action: Reopened - isAction: action: Opened - - isAction: - action: Null - not: hasLabel: label: needs-review @@ -158,14 +156,11 @@ configuration: - payloadType: Pull_Request - hasLabel: label: needs-review - - or: - - isAction: - action: Closed - - isAction: - action: Null + - isAction: + action: Closed then: - removeLabel: label: needs-review - description: Remove needs-review Label On Merge Or Close + description: Remove needs-review Label On Close (merged or not) onFailure: -onSuccess: +onSuccess: From e7dff53c4f9ae849b4e83b24cfbc44c7cb8f80be Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 10 Feb 2024 00:51:37 +0000 Subject: [PATCH 038/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240208.1 (#6006) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9b2c8b18275..6f0e2d2bc04 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 38209cc13e871db9deac85b7c469d27b51c9de9b + 6011f2e05c90f928dffbb5c526e28b8a751d44bc - + https://github.com/dotnet/diagnostics - 38209cc13e871db9deac85b7c469d27b51c9de9b + 6011f2e05c90f928dffbb5c526e28b8a751d44bc https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 18f76ba3af4..884d04b0195 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24107.1 - 8.0.0-preview.24107.1 + 8.0.0-preview.24108.1 + 8.0.0-preview.24108.1 8.0.103-servicing.24108.7 From 5a3f74fc4d867ec135acc21acfbff4b77f1464ef Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 10 Feb 2024 14:02:59 +0000 Subject: [PATCH 039/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240209.1 (#6008) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6f0e2d2bc04..26d880d8f51 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 6011f2e05c90f928dffbb5c526e28b8a751d44bc + b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 - + https://github.com/dotnet/diagnostics - 6011f2e05c90f928dffbb5c526e28b8a751d44bc + b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 884d04b0195..59f2d4dba76 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24108.1 - 8.0.0-preview.24108.1 + 8.0.0-preview.24109.1 + 8.0.0-preview.24109.1 8.0.103-servicing.24108.7 From 9f2461fd2745b72a9f3c13999358cacef9ff52c5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 10 Feb 2024 14:30:47 +0000 Subject: [PATCH 040/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240209.1 (#6009) [feature/9.x] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 22ed2e458bb..fe332ebdeb5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - 6011f2e05c90f928dffbb5c526e28b8a751d44bc + b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 - + https://github.com/dotnet/diagnostics - 6011f2e05c90f928dffbb5c526e28b8a751d44bc + b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 4a23770c401..38a6f489fd5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24108.1 - 8.0.0-preview.24108.1 + 8.0.0-preview.24109.1 + 8.0.0-preview.24109.1 9.0.100-preview.1.24101.4 From afac696ba7ca5f78be024612f50b7c0ecaf36fe1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:03:19 +0000 Subject: [PATCH 041/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240212.1 (#6012) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 26d880d8f51..255309a5176 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 + 85d0d3980355859d0088388fbd4a7749f7e46c21 - + https://github.com/dotnet/diagnostics - b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 + 85d0d3980355859d0088388fbd4a7749f7e46c21 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 59f2d4dba76..b6cd6769d0c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24102.1 - 8.0.0-preview.24109.1 - 8.0.0-preview.24109.1 + 8.0.0-preview.24112.1 + 8.0.0-preview.24112.1 8.0.103-servicing.24108.7 From dde3ade71f37c2f11b113c9767a562b7f41baeaf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:08:41 +0000 Subject: [PATCH 042/131] Update dependencies from https://github.com/dotnet/symstore build 20240212.1 (#6013) [main] Update dependencies from dotnet/symstore --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 255309a5176..664d4af38c2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -46,9 +46,9 @@ https://github.com/dotnet/arcade be88b08c41971b52ec11aec05ef31e72185d4a1f - + https://github.com/dotnet/symstore - 36d076932232b23c4e2de271e894b23a16c34ef6 + 1778fe9f6049bc6ec3c6f810101244c271cbe222 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index b6cd6769d0c..a2bb36c19b7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -72,7 +72,7 @@ 8.0.1 8.0.1-servicing.23580.1 - 1.0.510501 + 1.0.511201 $(MicrosoftNETCoreApp31Version) From bf5252a63d479f488bf31bd381f9c5ee7fb37a38 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:20:30 +0000 Subject: [PATCH 043/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240212.1 (#6014) [main] Update dependencies from dotnet/command-line-api --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 664d4af38c2..05a1d6bc22e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics 85d0d3980355859d0088388fbd4a7749f7e46c21 - + https://github.com/dotnet/command-line-api - 46fea71e3d98dad0d676950522004b7f295dd372 + e9ac4ff4293cf853f3d07eb9e747aef27f5be965 diff --git a/eng/Versions.props b/eng/Versions.props index a2bb36c19b7..c2ae0cfffdd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 8.0.1 8.0.1-servicing.23580.8 - 2.0.0-beta4.24102.1 + 2.0.0-beta4.24112.1 8.0.0-preview.24112.1 8.0.0-preview.24112.1 From 9c8f17e1470d9f8171c624f667408a39f7ebfe59 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:48:41 +0000 Subject: [PATCH 044/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240212.1 (#6019) [feature/9.x] Update dependencies from dotnet/command-line-api --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fe332ebdeb5..90141e27cc1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 - + https://github.com/dotnet/command-line-api - 46fea71e3d98dad0d676950522004b7f295dd372 + e9ac4ff4293cf853f3d07eb9e747aef27f5be965 diff --git a/eng/Versions.props b/eng/Versions.props index 38a6f489fd5..d02ee5a25da 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 - 2.0.0-beta4.24102.1 + 2.0.0-beta4.24112.1 8.0.0-preview.24109.1 8.0.0-preview.24109.1 From e79105c589a7719a38b94352989a1a6118a32dea Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 14:51:31 +0000 Subject: [PATCH 045/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240212.1 (#6018) [feature/9.x] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 90141e27cc1..38277c7e97f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore b1beadfe0ad3d02eb5207681a5328793c4b3822c - + https://github.com/dotnet/diagnostics - b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 + 85d0d3980355859d0088388fbd4a7749f7e46c21 - + https://github.com/dotnet/diagnostics - b190e56e28d67e4d5eb7848e705cb1d5e2bcae17 + 85d0d3980355859d0088388fbd4a7749f7e46c21 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index d02ee5a25da..39adba95853 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24109.1 - 8.0.0-preview.24109.1 + 8.0.0-preview.24112.1 + 8.0.0-preview.24112.1 9.0.100-preview.1.24101.4 From 6438cba996d668adc3fdd7e421ddcc871e36e251 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 13:29:12 -0800 Subject: [PATCH 046/131] Register new release information (#6023) * Register v6.3.5 release information * Register v7.3.3 release information * Register v8.0.1 release information * Register v9.0.0-preview.1.24106.4 release information --------- Co-authored-by: github-actions --- .github/releases.json | 24 +++++++++++++++++------- documentation/releases.md | 13 ++++++++++--- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/.github/releases.json b/.github/releases.json index 496755acdc3..5385f66d27d 100644 --- a/.github/releases.json +++ b/.github/releases.json @@ -3,7 +3,9 @@ "additionalMonthsOfSupportOnNewMinorRelease": 3, "cleanupUnsupportedReleasesAfterMonths": 12 }, - "preview": [], + "preview": [ + "9.0" + ], "supported": [ "8.0", "7.3", @@ -16,9 +18,9 @@ ], "releases": { "6.3": { - "tag": "v6.3.4", + "tag": "v6.3.5", "minorReleaseDate": "2022-10-11T00:00:00.000Z", - "patchReleaseDate": "2023-11-14T00:00:00.000Z", + "patchReleaseDate": "2024-02-13T00:00:00.000Z", "supportedFrameworks": [ "net6.0", "netcoreapp3.1" @@ -45,9 +47,9 @@ "outOfSupportDate": "2023-09-13T00:00:00.000Z" }, "8.0": { - "tag": "v8.0.0", + "tag": "v8.0.1", "minorReleaseDate": "2023-11-14T00:00:00.000Z", - "patchReleaseDate": "2023-11-14T00:00:00.000Z", + "patchReleaseDate": "2024-02-13T00:00:00.000Z", "supportedFrameworks": [ "net8.0" ] @@ -63,13 +65,21 @@ "outOfSupportDate": "2023-11-08T00:00:00.000Z" }, "7.3": { - "tag": "v7.3.2", + "tag": "v7.3.3", "minorReleaseDate": "2023-08-08T00:00:00.000Z", - "patchReleaseDate": "2023-11-14T00:00:00.000Z", + "patchReleaseDate": "2024-02-13T00:00:00.000Z", "supportedFrameworks": [ "net6.0", "net7.0" ] + }, + "9.0": { + "tag": "v9.0.0-preview.1.24106.4", + "minorReleaseDate": "2024-02-13T00:00:00.000Z", + "patchReleaseDate": "2024-02-13T00:00:00.000Z", + "supportedFrameworks": [ + "net9.0" + ] } } } \ No newline at end of file diff --git a/documentation/releases.md b/documentation/releases.md index 676c9b52b9b..22614725b48 100644 --- a/documentation/releases.md +++ b/documentation/releases.md @@ -7,9 +7,9 @@ | Version | Original Release Date | Latest Patch Version | Patch Release Date | End of Support | Runtime Frameworks | | --- | --- | --- | --- | --- | --- | -| 8.0 | November 14, 2023 | [8.0.0](https://github.com/dotnet/dotnet-monitor/releases/tag/v8.0.0) | November 14, 2023 | | net8.0 | -| 7.3 | August 8, 2023 | [7.3.2](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.3.2) | November 14, 2023 | | net6.0
net7.0 | -| 6.3 | October 11, 2022 | [6.3.4](https://github.com/dotnet/dotnet-monitor/releases/tag/v6.3.4) | November 14, 2023 | | net6.0
netcoreapp3.1 | +| 8.0 | November 14, 2023 | [8.0.1](https://github.com/dotnet/dotnet-monitor/releases/tag/v8.0.1) | February 13, 2024 | | net8.0 | +| 7.3 | August 8, 2023 | [7.3.3](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.3.3) | February 13, 2024 | | net6.0
net7.0 | +| 6.3 | October 11, 2022 | [6.3.5](https://github.com/dotnet/dotnet-monitor/releases/tag/v6.3.5) | February 13, 2024 | | net6.0
netcoreapp3.1 | ## Out of support versions @@ -21,3 +21,10 @@ | 7.0 | November 11, 2022 | [7.0.2](https://github.com/dotnet/dotnet-monitor/releases/tag/v7.0.2) | February 14, 2023 | June 14, 2023 | net6.0
net7.0 | +## Preview versions + +| Version | Release Date | Latest Version | Runtime Frameworks | +| --- | --- | --- | --- | +| 9.0 | February 13, 2024 | [9.0.0 preview 1](https://github.com/dotnet/dotnet-monitor/releases/tag/v9.0.0-preview.1.24106.4) | net9.0 | + + From 19d1424a36a808582952f7957098b8e2c0918b10 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:21:25 +0000 Subject: [PATCH 047/131] Update dependencies from https://github.com/dotnet/arcade build 20240209.2 (#6024) [main] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 +++++++++---------- eng/Versions.props | 6 +++--- eng/common/post-build/publish-using-darc.ps1 | 4 ++-- .../templates/job/publish-build-assets.yml | 14 ++++++------- .../templates/post-build/post-build.yml | 16 +++++++-------- .../templates/variables/pool-providers.yml | 12 +++++------ global.json | 4 ++-- 7 files changed, 38 insertions(+), 38 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 05a1d6bc22e..2aa7e148e2b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers b4d9a1334d5189172977ba8fddd00bda70161e4a
- + https://github.com/dotnet/arcade - be88b08c41971b52ec11aec05ef31e72185d4a1f + 26e06f1515561b634abf0f9e511f29d1baf56be5 - + https://github.com/dotnet/arcade - be88b08c41971b52ec11aec05ef31e72185d4a1f + 26e06f1515561b634abf0f9e511f29d1baf56be5 - + https://github.com/dotnet/arcade - be88b08c41971b52ec11aec05ef31e72185d4a1f + 26e06f1515561b634abf0f9e511f29d1baf56be5 - + https://github.com/dotnet/arcade - be88b08c41971b52ec11aec05ef31e72185d4a1f + 26e06f1515561b634abf0f9e511f29d1baf56be5 https://github.com/dotnet/installer 34ceb5eeb4c8cf1cb42ed943798fd92c643ab7c4 - + https://github.com/dotnet/arcade - be88b08c41971b52ec11aec05ef31e72185d4a1f + 26e06f1515561b634abf0f9e511f29d1baf56be5 https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index c2ae0cfffdd..fe2a2566b92 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 8.0.0-beta.24081.5 - 8.0.0-beta.24081.5 - 8.0.0-beta.24081.5 + 8.0.0-beta.24109.2 + 8.0.0-beta.24109.2 + 8.0.0-beta.24109.2 8.0.1 8.0.1-servicing.23580.8 diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 1e779fec4dd..5a3a32ea8d7 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -12,7 +12,7 @@ param( try { . $PSScriptRoot\post-build-utils.ps1 - $darc = Get-Darc + $darc = Get-Darc $optionalParams = [System.Collections.ArrayList]::new() @@ -46,7 +46,7 @@ try { } Write-Host 'done.' -} +} catch { Write-Host $_ Write-PipelineTelemetryError -Category 'PromoteBuild' -Message "There was an error while trying to publish build '$BuildId' to default channels." diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index fa5446c093d..8ec0151def2 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -58,7 +58,7 @@ jobs: demands: Cmd # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: - name: $(DncEngInternalBuildPool) + name: NetCore1ESPool-Publishing-Internal demands: ImageOverride -equals windows.vs2019.amd64 steps: @@ -71,7 +71,7 @@ jobs: checkDownloadedFiles: true condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - + - task: NuGetAuthenticate@1 - task: PowerShell@2 @@ -86,7 +86,7 @@ jobs: /p:OfficialBuildId=$(Build.BuildNumber) condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - + - task: powershell@2 displayName: Create ReleaseConfigs Artifact inputs: @@ -95,7 +95,7 @@ jobs: Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId) Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)" Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild) - + - task: PublishBuildArtifacts@1 displayName: Publish ReleaseConfigs Artifact inputs: @@ -121,7 +121,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish SymbolPublishingExclusionsFile Artifact - condition: eq(variables['SymbolExclusionFile'], 'true') + condition: eq(variables['SymbolExclusionFile'], 'true') inputs: PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' PublishLocation: Container @@ -137,7 +137,7 @@ jobs: displayName: Publish Using Darc inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 - arguments: -BuildId $(BARBuildId) + arguments: -BuildId $(BARBuildId) -PublishingInfraVersion 3 -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' -MaestroToken '$(MaestroApiAccessToken)' @@ -148,4 +148,4 @@ jobs: - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: - template: /eng/common/templates/steps/publish-logs.yml parameters: - JobLabel: 'Publish_Artifacts_Logs' + JobLabel: 'Publish_Artifacts_Logs' diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 3f74abf7ce0..aba44a25a33 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -39,7 +39,7 @@ parameters: displayName: Enable NuGet validation type: boolean default: true - + - name: publishInstallersAndChecksums displayName: Publish installers and checksums type: boolean @@ -131,8 +131,8 @@ stages: displayName: Validate inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 - arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ - -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ + arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ + -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ - job: displayName: Signing Validation @@ -221,9 +221,9 @@ stages: 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) + arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -ExtractPath $(Agent.BuildDirectory)/Extract/ + -GHRepoName $(Build.Repository.Name) -GHCommit $(Build.SourceVersion) -SourcelinkCliVersion $(SourceLinkCLIVersion) continueOnError: true @@ -258,7 +258,7 @@ stages: demands: Cmd # If it's not devdiv, it's dnceng ${{ else }}: - name: $(DncEngInternalBuildPool) + name: NetCore1ESPool-Publishing-Internal demands: ImageOverride -equals windows.vs2019.amd64 steps: - template: setup-maestro-vars.yml @@ -272,7 +272,7 @@ stages: displayName: Publish Using Darc inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 - arguments: -BuildId $(BARBuildId) + arguments: -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' -MaestroToken '$(MaestroApiAccessToken)' diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 9cc5c550d3b..d236f9fdbb1 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -1,15 +1,15 @@ -# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool, +# 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: +# 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 +# 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: +# 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 it can be added to the condition below. # @@ -54,4 +54,4 @@ variables: False, 'NetCore1ESPool-Internal' ) - ] \ No newline at end of file + ] diff --git a/global.json b/global.json index 9258d02db50..a6a1a7dad7d 100644 --- a/global.json +++ b/global.json @@ -26,7 +26,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24081.5", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24081.5" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24109.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24109.2" } } From 136f8cfe4b68152d1fcc09e8399da9871986cb55 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 15:08:25 +0000 Subject: [PATCH 048/131] [main] Update dependencies from dotnet/installer (#6017) [main] Update dependencies from dotnet/installer --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2aa7e148e2b..4a9daec306f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade 26e06f1515561b634abf0f9e511f29d1baf56be5 - + https://github.com/dotnet/installer - 34ceb5eeb4c8cf1cb42ed943798fd92c643ab7c4 + 43e7082a34d849cc77e5e3f760b0aca82e281639 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index fe2a2566b92..c8f0f0ffb0b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.0-preview.24112.1 8.0.0-preview.24112.1 - 8.0.103-servicing.24108.7 + 8.0.103-servicing.24112.7 8.0.0-preview.23525.2 From 7abb3786e4448c6b7d1cdbc05f572e9b25cbf6c1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 21:19:33 +0000 Subject: [PATCH 049/131] Update dependencies from https://github.com/dotnet/arcade build 20240213.2 (#6028) [main] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4a9daec306f..c137bb5d460 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers b4d9a1334d5189172977ba8fddd00bda70161e4a - + https://github.com/dotnet/arcade - 26e06f1515561b634abf0f9e511f29d1baf56be5 + da98edc4c3ea539f109ea320672136ceb32591a7 - + https://github.com/dotnet/arcade - 26e06f1515561b634abf0f9e511f29d1baf56be5 + da98edc4c3ea539f109ea320672136ceb32591a7 - + https://github.com/dotnet/arcade - 26e06f1515561b634abf0f9e511f29d1baf56be5 + da98edc4c3ea539f109ea320672136ceb32591a7 - + https://github.com/dotnet/arcade - 26e06f1515561b634abf0f9e511f29d1baf56be5 + da98edc4c3ea539f109ea320672136ceb32591a7 https://github.com/dotnet/installer 43e7082a34d849cc77e5e3f760b0aca82e281639 - + https://github.com/dotnet/arcade - 26e06f1515561b634abf0f9e511f29d1baf56be5 + da98edc4c3ea539f109ea320672136ceb32591a7 https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index c8f0f0ffb0b..8ec6df4c085 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 8.0.0-beta.24109.2 - 8.0.0-beta.24109.2 - 8.0.0-beta.24109.2 + 8.0.0-beta.24113.2 + 8.0.0-beta.24113.2 + 8.0.0-beta.24113.2 8.0.1 8.0.1-servicing.23580.8 diff --git a/global.json b/global.json index a6a1a7dad7d..6c6da899fbb 100644 --- a/global.json +++ b/global.json @@ -26,7 +26,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24109.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24109.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24113.2", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24113.2" } } From 7d4dfafcef79ec692a0ffb9ee1ca9efb38bfa3fd Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 14:19:31 +0000 Subject: [PATCH 050/131] Update dependencies from https://github.com/dotnet/installer build 20240214.15 (#6030) [main] Update dependencies from dotnet/installer --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c137bb5d460..2b1f1182ebe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade da98edc4c3ea539f109ea320672136ceb32591a7 - + https://github.com/dotnet/installer - 43e7082a34d849cc77e5e3f760b0aca82e281639 + 68e8abb1d3e1a240a6e4c29dcd220aae91681676 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 8ec6df4c085..53b13bbac27 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.0-preview.24112.1 8.0.0-preview.24112.1 - 8.0.103-servicing.24112.7 + 8.0.103-servicing.24114.15 8.0.0-preview.23525.2 From e42eca934c464bafe8238471e348139918c42e3d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 15:12:44 +0000 Subject: [PATCH 051/131] [feature/9.x] Update dependencies from dotnet/arcade (#6026) [feature/9.x] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 +++++++++---------- eng/Versions.props | 6 +++--- eng/common/post-build/publish-using-darc.ps1 | 4 ++-- .../templates/job/publish-build-assets.yml | 16 +++++++-------- .../templates/post-build/post-build.yml | 16 +++++++-------- eng/common/templates/steps/send-to-helix.yml | 6 ++++-- .../templates/variables/pool-providers.yml | 12 +++++------ global.json | 4 ++-- 8 files changed, 43 insertions(+), 41 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 38277c7e97f..e95464dfe31 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - f7eb7794c703dc29a83b414b786e9a154f0ca042 + c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb - + https://github.com/dotnet/arcade - f7eb7794c703dc29a83b414b786e9a154f0ca042 + c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb - + https://github.com/dotnet/arcade - f7eb7794c703dc29a83b414b786e9a154f0ca042 + c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb - + https://github.com/dotnet/arcade - f7eb7794c703dc29a83b414b786e9a154f0ca042 + c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb https://github.com/dotnet/installer 103ff6d4866ae1feff84a1865df0c1a7494ceffc - + https://github.com/dotnet/arcade - f7eb7794c703dc29a83b414b786e9a154f0ca042 + c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 39adba95853..1dc70b35617 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24106.2 - 9.0.0-beta.24106.2 - 9.0.0-beta.24106.2 + 9.0.0-beta.24112.1 + 9.0.0-beta.24112.1 + 9.0.0-beta.24112.1 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/eng/common/post-build/publish-using-darc.ps1 b/eng/common/post-build/publish-using-darc.ps1 index 1e779fec4dd..5a3a32ea8d7 100644 --- a/eng/common/post-build/publish-using-darc.ps1 +++ b/eng/common/post-build/publish-using-darc.ps1 @@ -12,7 +12,7 @@ param( try { . $PSScriptRoot\post-build-utils.ps1 - $darc = Get-Darc + $darc = Get-Darc $optionalParams = [System.Collections.ArrayList]::new() @@ -46,7 +46,7 @@ try { } Write-Host 'done.' -} +} catch { Write-Host $_ Write-PipelineTelemetryError -Category 'PromoteBuild' -Message "There was an error while trying to publish build '$BuildId' to default channels." diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index 3115990d511..bb42240f865 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -58,7 +58,7 @@ jobs: demands: Cmd # If it's not devdiv, it's dnceng ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: - name: $(DncEngInternalBuildPool) + name: NetCore1ESPool-Publishing-Internal demands: ImageOverride -equals windows.vs2019.amd64 steps: @@ -66,7 +66,7 @@ jobs: - checkout: self fetchDepth: 3 clean: true - + - task: DownloadBuildArtifacts@0 displayName: Download artifact inputs: @@ -75,7 +75,7 @@ jobs: checkDownloadedFiles: true condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - + - task: NuGetAuthenticate@1 - task: PowerShell@2 @@ -90,7 +90,7 @@ jobs: /p:OfficialBuildId=$(Build.BuildNumber) condition: ${{ parameters.condition }} continueOnError: ${{ parameters.continueOnError }} - + - task: powershell@2 displayName: Create ReleaseConfigs Artifact inputs: @@ -99,7 +99,7 @@ jobs: Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId) Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)" Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild) - + - task: PublishBuildArtifacts@1 displayName: Publish ReleaseConfigs Artifact inputs: @@ -125,7 +125,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish SymbolPublishingExclusionsFile Artifact - condition: eq(variables['SymbolExclusionFile'], 'true') + condition: eq(variables['SymbolExclusionFile'], 'true') inputs: PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' PublishLocation: Container @@ -141,7 +141,7 @@ jobs: displayName: Publish Using Darc inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 - arguments: -BuildId $(BARBuildId) + arguments: -BuildId $(BARBuildId) -PublishingInfraVersion 3 -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' -MaestroToken '$(MaestroApiAccessToken)' @@ -152,4 +152,4 @@ jobs: - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: - template: /eng/common/templates/steps/publish-logs.yml parameters: - JobLabel: 'Publish_Artifacts_Logs' + JobLabel: 'Publish_Artifacts_Logs' diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index bbc010fe732..ee70e2b399c 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -39,7 +39,7 @@ parameters: displayName: Enable NuGet validation type: boolean default: true - + - name: publishInstallersAndChecksums displayName: Publish installers and checksums type: boolean @@ -131,8 +131,8 @@ stages: displayName: Validate inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 - arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ - -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ + arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ + -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ - job: displayName: Signing Validation @@ -222,9 +222,9 @@ stages: 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) + arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -ExtractPath $(Agent.BuildDirectory)/Extract/ + -GHRepoName $(Build.Repository.Name) -GHCommit $(Build.SourceVersion) -SourcelinkCliVersion $(SourceLinkCLIVersion) continueOnError: true @@ -259,7 +259,7 @@ stages: demands: Cmd # If it's not devdiv, it's dnceng ${{ else }}: - name: $(DncEngInternalBuildPool) + name: NetCore1ESPool-Publishing-Internal demands: ImageOverride -equals windows.vs2019.amd64 steps: - template: setup-maestro-vars.yml @@ -273,7 +273,7 @@ stages: displayName: Publish Using Darc inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 - arguments: -BuildId $(BARBuildId) + arguments: -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' -MaestroToken '$(MaestroApiAccessToken)' diff --git a/eng/common/templates/steps/send-to-helix.yml b/eng/common/templates/steps/send-to-helix.yml index 3eb7e2d5f84..68fa739c4ab 100644 --- a/eng/common/templates/steps/send-to-helix.yml +++ b/eng/common/templates/steps/send-to-helix.yml @@ -5,6 +5,8 @@ parameters: HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number HelixTargetQueues: '' # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group + HelixProjectPath: 'eng/common/helixpublish.proj' # optional -- path to the project file to build relative to BUILD_SOURCESDIRECTORY + HelixProjectArguments: '' # optional -- arguments passed to the build command HelixConfiguration: '' # optional -- additional property attached to a job HelixPreCommands: '' # optional -- commands to run before Helix work item execution HelixPostCommands: '' # optional -- commands to run after Helix work item execution @@ -29,7 +31,7 @@ parameters: continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false steps: - - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' + - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY/${{ parameters.HelixProjectPath }} /restore /p:TreatWarningsAsErrors=false ${{ parameters.HelixProjectArguments }} /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' displayName: ${{ parameters.DisplayNamePrefix }} (Windows) env: BuildConfig: $(_BuildConfig) @@ -59,7 +61,7 @@ steps: SYSTEM_ACCESSTOKEN: $(System.AccessToken) condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) continueOnError: ${{ parameters.continueOnError }} - - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog + - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/${{ parameters.HelixProjectPath }} /restore /p:TreatWarningsAsErrors=false ${{ parameters.HelixProjectArguments }} /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog displayName: ${{ parameters.DisplayNamePrefix }} (Unix) env: BuildConfig: $(_BuildConfig) diff --git a/eng/common/templates/variables/pool-providers.yml b/eng/common/templates/variables/pool-providers.yml index 9cc5c550d3b..d236f9fdbb1 100644 --- a/eng/common/templates/variables/pool-providers.yml +++ b/eng/common/templates/variables/pool-providers.yml @@ -1,15 +1,15 @@ -# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool, +# 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: +# 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 +# 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: +# 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 it can be added to the condition below. # @@ -54,4 +54,4 @@ variables: False, 'NetCore1ESPool-Internal' ) - ] \ No newline at end of file + ] diff --git a/global.json b/global.json index 778c3239044..4923a85b805 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24106.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24106.2" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24112.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24112.1" } } From 241a62b8ff316174951ab2ae7ead7300884e077f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 08:54:45 -0800 Subject: [PATCH 052/131] Bump dawidd6/action-download-artifact from 3.0.0 to 3.1.0 (#6031) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/e7466d1a7587ed14867642c2ca74b5bcc1e19a2d...f6b0bace624032e30a85a8fd9c1a7f8f611f5737) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/submit-linter-suggestions.yml | 2 +- .github/workflows/submit-to-do-issue.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/submit-linter-suggestions.yml b/.github/workflows/submit-linter-suggestions.yml index b2cb14e76a2..25534084f88 100644 --- a/.github/workflows/submit-linter-suggestions.yml +++ b/.github/workflows/submit-linter-suggestions.yml @@ -49,7 +49,7 @@ jobs: # The default artifact download action doesn't support cross-workflow # artifacts, so use a 3rd party one. - name: 'Download linting results' - uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d + uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 with: workflow: ${{env.workflow_name}} run_id: ${{github.event.workflow_run.id }} diff --git a/.github/workflows/submit-to-do-issue.yml b/.github/workflows/submit-to-do-issue.yml index 4732a600536..1e2f37df906 100644 --- a/.github/workflows/submit-to-do-issue.yml +++ b/.github/workflows/submit-to-do-issue.yml @@ -35,7 +35,7 @@ jobs: # The default artifact download action doesn't support cross-workflow # artifacts, so use a 3rd party one. - name: 'Download linting results' - uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d + uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 with: workflow: ${{env.workflow_name}} run_id: ${{github.event.workflow_run.id }} From 7fdbe590a42633a80ffec60ffd0a18e48b159167 Mon Sep 17 00:00:00 2001 From: Wiktor Kopec Date: Thu, 15 Feb 2024 10:45:18 -0800 Subject: [PATCH 053/131] Update sync-branches.yml (#6035) --- .github/workflows/sync-branches.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sync-branches.yml b/.github/workflows/sync-branches.yml index 5840b059dd2..f9f42e92573 100644 --- a/.github/workflows/sync-branches.yml +++ b/.github/workflows/sync-branches.yml @@ -14,7 +14,7 @@ jobs: if: github.repository == 'dotnet/dotnet-monitor' strategy: matrix: - branch: ["release/6.x", "release/7.x"] + branch: ["release/6.x", "release/7.x", "release/8.0"] name: 'Sync ${{ matrix.branch }}' runs-on: ubuntu-latest permissions: From 05faa18261fdb773b7554768264f0bac931ce5fa Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Thu, 15 Feb 2024 13:46:58 -0800 Subject: [PATCH 054/131] Add `Updated dependencies` to release changelog when no other entries found (#6032) * Add updated dependencies entry when no entries found * Formatting * Fix formatting --- .github/actions/generate-release-notes/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/actions/generate-release-notes/index.js b/.github/actions/generate-release-notes/index.js index 739522a8d7c..f981e769965 100644 --- a/.github/actions/generate-release-notes/index.js +++ b/.github/actions/generate-release-notes/index.js @@ -155,6 +155,10 @@ async function generateChangelog(octokit, branch, repoOwner, repoName, minMergeD changelog.push(entry); } + if (changelog.length === 0) { + changelog.push("- Updated dependencies"); + } + return changelog.join("\n"); } From 6cf373c5f93cfde0760cd3ff61ffc254414fc487 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 16:11:15 +0000 Subject: [PATCH 055/131] Update dependencies from https://github.com/dotnet/arcade build 20240214.1 (#6040) [feature/9.x] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- global.json | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e95464dfe31..4d3bf1f0276 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers bf54e2bebc28004dec0311dc4083bcff4fd44cdb - + https://github.com/dotnet/arcade - c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb + d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/arcade - c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb + d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/arcade - c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb + d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/arcade - c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb + d5b02a4900c4d521cb48b8f0d7e3f28175268f7c https://github.com/dotnet/installer 103ff6d4866ae1feff84a1865df0c1a7494ceffc - + https://github.com/dotnet/arcade - c3f5cbfb2829795294f5c2d9fa5a0522f47e91fb + d5b02a4900c4d521cb48b8f0d7e3f28175268f7c https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 1dc70b35617..e8d1129ecba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24112.1 - 9.0.0-beta.24112.1 - 9.0.0-beta.24112.1 + 9.0.0-beta.24114.1 + 9.0.0-beta.24114.1 + 9.0.0-beta.24114.1 9.0.0-preview.1.24081.5 9.0.0-preview.1.24081.5 diff --git a/global.json b/global.json index 4923a85b805..908cf4bae46 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24112.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24112.1" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24114.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24114.1" } } From a11b9d5faf9a3d71c7948486b49ec5eed21ac45f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 17 Feb 2024 14:14:38 +0000 Subject: [PATCH 056/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240216.1 (#6041) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2b1f1182ebe..7f1f1864d77 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 85d0d3980355859d0088388fbd4a7749f7e46c21 + 5eb514a41f900ac1aa1e9a3e12b2931dcb064069 - + https://github.com/dotnet/diagnostics - 85d0d3980355859d0088388fbd4a7749f7e46c21 + 5eb514a41f900ac1aa1e9a3e12b2931dcb064069 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 53b13bbac27..e8e16a5dc63 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24112.1 - 8.0.0-preview.24112.1 + 8.0.0-preview.24116.1 + 8.0.0-preview.24116.1 8.0.103-servicing.24114.15 From 625b07b637cbc234e03e1ba572aea9c26950c678 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:08:27 +0000 Subject: [PATCH 057/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240219.1 (#6049) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7f1f1864d77..c45506f83e9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 5eb514a41f900ac1aa1e9a3e12b2931dcb064069 + 175b855911918ff88e1503085689bbd1482f6103 - + https://github.com/dotnet/diagnostics - 5eb514a41f900ac1aa1e9a3e12b2931dcb064069 + 175b855911918ff88e1503085689bbd1482f6103 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index e8e16a5dc63..967cb362513 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24116.1 - 8.0.0-preview.24116.1 + 8.0.0-preview.24119.1 + 8.0.0-preview.24119.1 8.0.103-servicing.24114.15 From c1b708ddaa65e8da018d0464ed3a874d24d1fd61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 08:59:54 -0800 Subject: [PATCH 058/131] Bump dawidd6/action-download-artifact from 3.1.0 to 3.1.1 (#6048) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/f6b0bace624032e30a85a8fd9c1a7f8f611f5737...72aaadce3bc708349fc665eee3785cbb1b6e51d0) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/submit-linter-suggestions.yml | 2 +- .github/workflows/submit-to-do-issue.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/submit-linter-suggestions.yml b/.github/workflows/submit-linter-suggestions.yml index 25534084f88..5ca3c08215c 100644 --- a/.github/workflows/submit-linter-suggestions.yml +++ b/.github/workflows/submit-linter-suggestions.yml @@ -49,7 +49,7 @@ jobs: # The default artifact download action doesn't support cross-workflow # artifacts, so use a 3rd party one. - name: 'Download linting results' - uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 + uses: dawidd6/action-download-artifact@72aaadce3bc708349fc665eee3785cbb1b6e51d0 with: workflow: ${{env.workflow_name}} run_id: ${{github.event.workflow_run.id }} diff --git a/.github/workflows/submit-to-do-issue.yml b/.github/workflows/submit-to-do-issue.yml index 1e2f37df906..cbfdbb3890e 100644 --- a/.github/workflows/submit-to-do-issue.yml +++ b/.github/workflows/submit-to-do-issue.yml @@ -35,7 +35,7 @@ jobs: # The default artifact download action doesn't support cross-workflow # artifacts, so use a 3rd party one. - name: 'Download linting results' - uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 + uses: dawidd6/action-download-artifact@72aaadce3bc708349fc665eee3785cbb1b6e51d0 with: workflow: ${{env.workflow_name}} run_id: ${{github.event.workflow_run.id }} From da106122009394c318b37dc437c52d24df8b93ba Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Tue, 20 Feb 2024 11:38:45 -0800 Subject: [PATCH 059/131] Fix dependabot's handling of nuget dependencies (#6039) --- .github/dependabot.template.yml | 2 +- .github/dependabot.yml | 6 +++--- eng/Versions.props | 2 +- eng/dependabot/Directory.Build.props | 12 ++++++++++-- eng/dependabot/NuGet.config | 1 - eng/dependabot/dependabot.csproj | 2 -- eng/dependabot/independent/Directory.Build.props | 5 +++++ eng/dependabot/independent/NuGet.config | 1 + eng/dependabot/{ => independent}/Packages.props | 3 +-- eng/dependabot/{ => independent}/Versions.props | 0 eng/dependabot/independent/dependabot.csproj | 6 ++++++ eng/dependabot/net6.0/Directory.Build.props | 3 ++- eng/dependabot/net6.0/NuGet.config | 0 eng/dependabot/net6.0/Packages.props | 7 ++++++- eng/dependabot/net6.0/dependabot.csproj | 6 +++++- eng/dependabot/net7.0/Directory.Build.props | 3 ++- eng/dependabot/net7.0/NuGet.config | 0 eng/dependabot/net7.0/Packages.props | 7 ++++++- eng/dependabot/net7.0/dependabot.csproj | 6 +++++- eng/dependabot/net8.0/Directory.Build.props | 3 ++- eng/dependabot/net8.0/NuGet.config | 0 eng/dependabot/net8.0/Packages.props | 7 ++++++- eng/dependabot/net8.0/dependabot.csproj | 6 +++++- eng/dependabot/netcoreapp3.1/Directory.Build.props | 3 ++- eng/dependabot/netcoreapp3.1/NuGet.config | 0 eng/dependabot/netcoreapp3.1/Packages.props | 7 ++++++- eng/dependabot/netcoreapp3.1/dependabot.csproj | 6 +++++- eng/dependabot/nuget.org/Directory.Build.props | 3 ++- eng/dependabot/nuget.org/Packages.props | 10 +++++----- eng/dependabot/nuget.org/dependabot.csproj | 6 +++++- 30 files changed, 92 insertions(+), 31 deletions(-) delete mode 120000 eng/dependabot/NuGet.config delete mode 100644 eng/dependabot/dependabot.csproj create mode 100644 eng/dependabot/independent/Directory.Build.props create mode 120000 eng/dependabot/independent/NuGet.config rename eng/dependabot/{ => independent}/Packages.props (89%) rename eng/dependabot/{ => independent}/Versions.props (100%) create mode 100644 eng/dependabot/independent/dependabot.csproj mode change 100644 => 120000 eng/dependabot/net6.0/NuGet.config mode change 100644 => 120000 eng/dependabot/net7.0/NuGet.config mode change 100644 => 120000 eng/dependabot/net8.0/NuGet.config mode change 100644 => 120000 eng/dependabot/netcoreapp3.1/NuGet.config diff --git a/.github/dependabot.template.yml b/.github/dependabot.template.yml index 30abd10b697..efb9e8dd046 100644 --- a/.github/dependabot.template.yml +++ b/.github/dependabot.template.yml @@ -34,7 +34,7 @@ updates: #@ for branch in getBranches(): #@ commit_prefix = "[" + branch.name + "] " - package-ecosystem: "nuget" - directory: "/eng/dependabot" + directory: "/eng/dependabot/independent" schedule: interval: "daily" target-branch: #@ branch.name diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 90693540c96..9d7f0b65e9a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,7 +6,7 @@ updates: interval: daily target-branch: main - package-ecosystem: nuget - directory: /eng/dependabot + directory: /eng/dependabot/independent schedule: interval: daily target-branch: main @@ -81,7 +81,7 @@ updates: - Microsoft.Extensions.* - Microsoft.NETCore.App.Runtime.* - package-ecosystem: nuget - directory: /eng/dependabot + directory: /eng/dependabot/independent schedule: interval: daily target-branch: release/7.x @@ -140,7 +140,7 @@ updates: - Microsoft.Extensions.* - Microsoft.NETCore.App.Runtime.* - package-ecosystem: nuget - directory: /eng/dependabot + directory: /eng/dependabot/independent schedule: interval: daily target-branch: release/6.x diff --git a/eng/Versions.props b/eng/Versions.props index 967cb362513..4b3bd1d4cf1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,6 +1,6 @@ - + diff --git a/eng/dependabot/Directory.Build.props b/eng/dependabot/Directory.Build.props index b1987371bd5..30218d4856e 100644 --- a/eng/dependabot/Directory.Build.props +++ b/eng/dependabot/Directory.Build.props @@ -1,4 +1,12 @@ - - + + + false + false + diff --git a/eng/dependabot/NuGet.config b/eng/dependabot/NuGet.config deleted file mode 120000 index f0aeba16780..00000000000 --- a/eng/dependabot/NuGet.config +++ /dev/null @@ -1 +0,0 @@ -../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/dependabot.csproj b/eng/dependabot/dependabot.csproj deleted file mode 100644 index d6029d18934..00000000000 --- a/eng/dependabot/dependabot.csproj +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/eng/dependabot/independent/Directory.Build.props b/eng/dependabot/independent/Directory.Build.props new file mode 100644 index 00000000000..fe86741bd6c --- /dev/null +++ b/eng/dependabot/independent/Directory.Build.props @@ -0,0 +1,5 @@ + + + + + diff --git a/eng/dependabot/independent/NuGet.config b/eng/dependabot/independent/NuGet.config new file mode 120000 index 00000000000..941555881f8 --- /dev/null +++ b/eng/dependabot/independent/NuGet.config @@ -0,0 +1 @@ +../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/Packages.props b/eng/dependabot/independent/Packages.props similarity index 89% rename from eng/dependabot/Packages.props rename to eng/dependabot/independent/Packages.props index 6c90f3e412a..42d9e51d492 100644 --- a/eng/dependabot/Packages.props +++ b/eng/dependabot/independent/Packages.props @@ -1,6 +1,6 @@ @@ -8,7 +8,6 @@ - diff --git a/eng/dependabot/Versions.props b/eng/dependabot/independent/Versions.props similarity index 100% rename from eng/dependabot/Versions.props rename to eng/dependabot/independent/Versions.props diff --git a/eng/dependabot/independent/dependabot.csproj b/eng/dependabot/independent/dependabot.csproj new file mode 100644 index 00000000000..4f10237eb1b --- /dev/null +++ b/eng/dependabot/independent/dependabot.csproj @@ -0,0 +1,6 @@ + + + + net6.0 + + diff --git a/eng/dependabot/net6.0/Directory.Build.props b/eng/dependabot/net6.0/Directory.Build.props index b1987371bd5..fe86741bd6c 100644 --- a/eng/dependabot/net6.0/Directory.Build.props +++ b/eng/dependabot/net6.0/Directory.Build.props @@ -1,4 +1,5 @@ - + + diff --git a/eng/dependabot/net6.0/NuGet.config b/eng/dependabot/net6.0/NuGet.config deleted file mode 100644 index 941555881f8..00000000000 --- a/eng/dependabot/net6.0/NuGet.config +++ /dev/null @@ -1 +0,0 @@ -../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/net6.0/NuGet.config b/eng/dependabot/net6.0/NuGet.config new file mode 120000 index 00000000000..941555881f8 --- /dev/null +++ b/eng/dependabot/net6.0/NuGet.config @@ -0,0 +1 @@ +../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/net6.0/Packages.props b/eng/dependabot/net6.0/Packages.props index 10247d15f81..765df3ba371 100644 --- a/eng/dependabot/net6.0/Packages.props +++ b/eng/dependabot/net6.0/Packages.props @@ -7,6 +7,11 @@ - + + diff --git a/eng/dependabot/net6.0/dependabot.csproj b/eng/dependabot/net6.0/dependabot.csproj index d6029d18934..4f10237eb1b 100644 --- a/eng/dependabot/net6.0/dependabot.csproj +++ b/eng/dependabot/net6.0/dependabot.csproj @@ -1,2 +1,6 @@ - + + + net6.0 + + diff --git a/eng/dependabot/net7.0/Directory.Build.props b/eng/dependabot/net7.0/Directory.Build.props index b1987371bd5..fe86741bd6c 100644 --- a/eng/dependabot/net7.0/Directory.Build.props +++ b/eng/dependabot/net7.0/Directory.Build.props @@ -1,4 +1,5 @@ - + + diff --git a/eng/dependabot/net7.0/NuGet.config b/eng/dependabot/net7.0/NuGet.config deleted file mode 100644 index 941555881f8..00000000000 --- a/eng/dependabot/net7.0/NuGet.config +++ /dev/null @@ -1 +0,0 @@ -../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/net7.0/NuGet.config b/eng/dependabot/net7.0/NuGet.config new file mode 120000 index 00000000000..941555881f8 --- /dev/null +++ b/eng/dependabot/net7.0/NuGet.config @@ -0,0 +1 @@ +../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/net7.0/Packages.props b/eng/dependabot/net7.0/Packages.props index a63f247f84a..58a73e936bb 100644 --- a/eng/dependabot/net7.0/Packages.props +++ b/eng/dependabot/net7.0/Packages.props @@ -7,6 +7,11 @@ - + + diff --git a/eng/dependabot/net7.0/dependabot.csproj b/eng/dependabot/net7.0/dependabot.csproj index d6029d18934..a039286ea55 100644 --- a/eng/dependabot/net7.0/dependabot.csproj +++ b/eng/dependabot/net7.0/dependabot.csproj @@ -1,2 +1,6 @@ - + + + net7.0 + + diff --git a/eng/dependabot/net8.0/Directory.Build.props b/eng/dependabot/net8.0/Directory.Build.props index b1987371bd5..fe86741bd6c 100644 --- a/eng/dependabot/net8.0/Directory.Build.props +++ b/eng/dependabot/net8.0/Directory.Build.props @@ -1,4 +1,5 @@ - + + diff --git a/eng/dependabot/net8.0/NuGet.config b/eng/dependabot/net8.0/NuGet.config deleted file mode 100644 index 941555881f8..00000000000 --- a/eng/dependabot/net8.0/NuGet.config +++ /dev/null @@ -1 +0,0 @@ -../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/net8.0/NuGet.config b/eng/dependabot/net8.0/NuGet.config new file mode 120000 index 00000000000..941555881f8 --- /dev/null +++ b/eng/dependabot/net8.0/NuGet.config @@ -0,0 +1 @@ +../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/net8.0/Packages.props b/eng/dependabot/net8.0/Packages.props index 8102a0c8441..c0b69ea13ce 100644 --- a/eng/dependabot/net8.0/Packages.props +++ b/eng/dependabot/net8.0/Packages.props @@ -7,6 +7,11 @@ - + + diff --git a/eng/dependabot/net8.0/dependabot.csproj b/eng/dependabot/net8.0/dependabot.csproj index d6029d18934..f4ca0368fe9 100644 --- a/eng/dependabot/net8.0/dependabot.csproj +++ b/eng/dependabot/net8.0/dependabot.csproj @@ -1,2 +1,6 @@ - + + + net8.0 + + diff --git a/eng/dependabot/netcoreapp3.1/Directory.Build.props b/eng/dependabot/netcoreapp3.1/Directory.Build.props index b1987371bd5..fe86741bd6c 100644 --- a/eng/dependabot/netcoreapp3.1/Directory.Build.props +++ b/eng/dependabot/netcoreapp3.1/Directory.Build.props @@ -1,4 +1,5 @@ - + + diff --git a/eng/dependabot/netcoreapp3.1/NuGet.config b/eng/dependabot/netcoreapp3.1/NuGet.config deleted file mode 100644 index 941555881f8..00000000000 --- a/eng/dependabot/netcoreapp3.1/NuGet.config +++ /dev/null @@ -1 +0,0 @@ -../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/netcoreapp3.1/NuGet.config b/eng/dependabot/netcoreapp3.1/NuGet.config new file mode 120000 index 00000000000..941555881f8 --- /dev/null +++ b/eng/dependabot/netcoreapp3.1/NuGet.config @@ -0,0 +1 @@ +../../../NuGet.config \ No newline at end of file diff --git a/eng/dependabot/netcoreapp3.1/Packages.props b/eng/dependabot/netcoreapp3.1/Packages.props index 03e49cc458c..ba18bea97f4 100644 --- a/eng/dependabot/netcoreapp3.1/Packages.props +++ b/eng/dependabot/netcoreapp3.1/Packages.props @@ -3,6 +3,11 @@ Packages in this file have versions updated periodically by Dependabot specifically for .NET Core 3.1. --> - + + diff --git a/eng/dependabot/netcoreapp3.1/dependabot.csproj b/eng/dependabot/netcoreapp3.1/dependabot.csproj index d6029d18934..f7ab42ca685 100644 --- a/eng/dependabot/netcoreapp3.1/dependabot.csproj +++ b/eng/dependabot/netcoreapp3.1/dependabot.csproj @@ -1,2 +1,6 @@ - + + + netcoreapp3.1 + + diff --git a/eng/dependabot/nuget.org/Directory.Build.props b/eng/dependabot/nuget.org/Directory.Build.props index 80198295e85..fe86741bd6c 100644 --- a/eng/dependabot/nuget.org/Directory.Build.props +++ b/eng/dependabot/nuget.org/Directory.Build.props @@ -1,4 +1,5 @@ - + + diff --git a/eng/dependabot/nuget.org/Packages.props b/eng/dependabot/nuget.org/Packages.props index d10218b507f..6ec71151d26 100644 --- a/eng/dependabot/nuget.org/Packages.props +++ b/eng/dependabot/nuget.org/Packages.props @@ -5,17 +5,17 @@ - + diff --git a/eng/dependabot/nuget.org/dependabot.csproj b/eng/dependabot/nuget.org/dependabot.csproj index d6029d18934..4f10237eb1b 100644 --- a/eng/dependabot/nuget.org/dependabot.csproj +++ b/eng/dependabot/nuget.org/dependabot.csproj @@ -1,2 +1,6 @@ - + + + net6.0 + + From dfd13a2200ba349e108d23185fbca32a4e83565a Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:02:39 -0800 Subject: [PATCH 060/131] Let dependabot manage `AWSSDK.S3` (#6059) --- eng/dependabot/independent/Packages.props | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/dependabot/independent/Packages.props b/eng/dependabot/independent/Packages.props index 42d9e51d492..e9ae84fb19b 100644 --- a/eng/dependabot/independent/Packages.props +++ b/eng/dependabot/independent/Packages.props @@ -18,5 +18,6 @@ + From a0ed6828f9e18a72ad500eb77413502c101fc866 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:05:08 -0800 Subject: [PATCH 061/131] [feature/9.x] Update dependencies from dotnet/installer (#6033) * Update dependencies from https://github.com/dotnet/installer build 20240215.9 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.4 -> To Version 9.0.100-preview.2.24115.9 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24081.5 -> To Version 9.0.0-preview.2.24114.9 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240216.1 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.4 -> To Version 9.0.100-preview.2.24116.1 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24081.5 -> To Version 9.0.0-preview.2.24114.9 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240216.21 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.4 -> To Version 9.0.100-preview.2.24116.21 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24081.5 -> To Version 9.0.0-preview.2.24114.9 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240216.21 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.4 -> To Version 9.0.100-preview.2.24116.21 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24081.5 -> To Version 9.0.0-preview.2.24114.9 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240216.21 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.4 -> To Version 9.0.100-preview.2.24116.21 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24081.5 -> To Version 9.0.0-preview.2.24114.9 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240219.3 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.1.24101.4 -> To Version 9.0.100-preview.2.24119.3 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.1.24081.5 -> To Version 9.0.0-preview.2.24114.9 (parent: Microsoft.Dotnet.Sdk.Internal --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4d3bf1f0276..1f2a9da6154 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/aspnetcore - b1beadfe0ad3d02eb5207681a5328793c4b3822c + 4ea9f39a3447596ed9bf42320882cc6423e0c60b https://github.com/dotnet/diagnostics @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/installer - 103ff6d4866ae1feff84a1865df0c1a7494ceffc + 709259d8084d7aef80259be1f0ffa7d76923fcfa https://github.com/dotnet/arcade @@ -50,17 +50,17 @@ https://github.com/dotnet/symstore 36d076932232b23c4e2de271e894b23a16c34ef6 - + https://github.com/dotnet/runtime - 1d1bf92fcf43aa6981804dc53c5174445069c9e4 + 963626276e11bf5587aaed69826b62682b05d9c4 - + https://github.com/dotnet/aspnetcore - b1beadfe0ad3d02eb5207681a5328793c4b3822c + 4ea9f39a3447596ed9bf42320882cc6423e0c60b - + https://github.com/dotnet/runtime - 1d1bf92fcf43aa6981804dc53c5174445069c9e4 + 963626276e11bf5587aaed69826b62682b05d9c4 diff --git a/eng/Versions.props b/eng/Versions.props index e8d1129ecba..8aefb71bf51 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,20 +57,20 @@ 9.0.0-beta.24114.1 9.0.0-beta.24114.1 - 9.0.0-preview.1.24081.5 - 9.0.0-preview.1.24081.5 + 9.0.0-preview.2.24114.9 + 9.0.0-preview.2.24114.9 2.0.0-beta4.24112.1 8.0.0-preview.24112.1 8.0.0-preview.24112.1 - 9.0.100-preview.1.24101.4 + 9.0.100-preview.2.24119.3 9.0.0-preview.24075.1 - 9.0.0-preview.1.24080.9 - 9.0.0-preview.1.24080.9 + 9.0.0-preview.2.24115.1 + 9.0.0-preview.2.24115.1 1.0.510501 From 537b89884fda563cf3e2a981881fa876b6e026f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:05:55 -0800 Subject: [PATCH 062/131] [main] Bump Microsoft.OpenApi.Readers in /eng/dependabot/independent (#6058) Bumps [Microsoft.OpenApi.Readers](https://github.com/Microsoft/OpenAPI.NET) from 1.6.11 to 1.6.13. - [Release notes](https://github.com/Microsoft/OpenAPI.NET/releases) - [Commits](https://github.com/Microsoft/OpenAPI.NET/compare/1.6.11...1.6.13) --- updated-dependencies: - dependency-name: Microsoft.OpenApi.Readers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/independent/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/independent/Versions.props b/eng/dependabot/independent/Versions.props index befaf63d821..2dd91a26216 100644 --- a/eng/dependabot/independent/Versions.props +++ b/eng/dependabot/independent/Versions.props @@ -6,7 +6,7 @@ 12.19.1 12.17.1 2.16.1 - 1.6.11 + 1.6.13 4.3.2 5.0.0 From ce8251474421df5fc57cc240d76ad317be14d051 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:06:03 -0800 Subject: [PATCH 063/131] [main] Bump Microsoft.NETCore.DotNetHost in /eng/dependabot/net7.0 (#6053) Bumps [Microsoft.NETCore.DotNetHost](https://github.com/dotnet/runtime) from 7.0.15 to 7.0.16. - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v7.0.15...v7.0.16) --- updated-dependencies: - dependency-name: Microsoft.NETCore.DotNetHost dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/net7.0/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/net7.0/Versions.props b/eng/dependabot/net7.0/Versions.props index 9081b609ba5..4943500e648 100644 --- a/eng/dependabot/net7.0/Versions.props +++ b/eng/dependabot/net7.0/Versions.props @@ -10,6 +10,6 @@ 7.0.0 - 7.0.15 + 7.0.16 From 4c2be5303ccc1dff7c269d9e12bbaef11294e145 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:06:13 -0800 Subject: [PATCH 064/131] [main] Bump Microsoft.Diagnostics.DbgShim in /eng/dependabot/nuget.org (#6051) Bumps [Microsoft.Diagnostics.DbgShim](https://github.com/dotnet/diagnostics) from 8.0.452401 to 8.0.510501. - [Release notes](https://github.com/dotnet/diagnostics/releases) - [Commits](https://github.com/dotnet/diagnostics/compare/v8.0.452401...v8.0.510501) --- updated-dependencies: - dependency-name: Microsoft.Diagnostics.DbgShim dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/nuget.org/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/nuget.org/Versions.props b/eng/dependabot/nuget.org/Versions.props index f6d66dd72ba..285eba92209 100644 --- a/eng/dependabot/nuget.org/Versions.props +++ b/eng/dependabot/nuget.org/Versions.props @@ -2,6 +2,6 @@ - 8.0.452401 + 8.0.510501 From 543ef3ddbec42dd54072d7c48877cb94f64470a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:06:43 -0800 Subject: [PATCH 065/131] [main] Bump Microsoft.NETCore.DotNetHost in /eng/dependabot/net6.0 (#6054) Bumps [Microsoft.NETCore.DotNetHost](https://github.com/dotnet/runtime) from 6.0.26 to 6.0.27. - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v6.0.26...v6.0.27) --- updated-dependencies: - dependency-name: Microsoft.NETCore.DotNetHost dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/net6.0/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/net6.0/Versions.props b/eng/dependabot/net6.0/Versions.props index d3ee0d85e2d..6f61d70caba 100644 --- a/eng/dependabot/net6.0/Versions.props +++ b/eng/dependabot/net6.0/Versions.props @@ -10,6 +10,6 @@ 6.0.0 - 6.0.26 + 6.0.27 From 3cf7ce752a32e1f79d3895d8dc9b6b39f2d75394 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:06:48 -0800 Subject: [PATCH 066/131] [main] Bump Microsoft.NETCore.DotNetHost in /eng/dependabot/net8.0 (#6052) Bumps [Microsoft.NETCore.DotNetHost](https://github.com/dotnet/runtime) from 8.0.1 to 8.0.2. - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v8.0.1...v8.0.2) --- updated-dependencies: - dependency-name: Microsoft.NETCore.DotNetHost dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/net8.0/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/net8.0/Versions.props b/eng/dependabot/net8.0/Versions.props index bd2a060ebc6..64a1ff17ad4 100644 --- a/eng/dependabot/net8.0/Versions.props +++ b/eng/dependabot/net8.0/Versions.props @@ -10,6 +10,6 @@ 8.0.0 - 8.0.1 + 8.0.2 From d6ae7609d085d150dc6ac01afc8784d2c8b3126e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:07:10 -0800 Subject: [PATCH 067/131] Update dependencies from https://github.com/dotnet/symstore build 20240219.1 (#6050) Microsoft.FileFormats From Version 1.0.511201 -> To Version 1.0.511901 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c45506f83e9..c13a472ab54 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -46,9 +46,9 @@ https://github.com/dotnet/arcade da98edc4c3ea539f109ea320672136ceb32591a7 - + https://github.com/dotnet/symstore - 1778fe9f6049bc6ec3c6f810101244c271cbe222 + 96a152a28e86ecc5c68ec9a73e02bb1e93163338 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime diff --git a/eng/Versions.props b/eng/Versions.props index 4b3bd1d4cf1..cf9929c04e2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -72,7 +72,7 @@ 8.0.1 8.0.1-servicing.23580.1 - 1.0.511201 + 1.0.511901 $(MicrosoftNETCoreApp31Version) From 80d63365c328c9c08d786edbb9ce5c24add57c2f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:07:38 -0800 Subject: [PATCH 068/131] [feature/9.x] Update dependencies from dotnet/diagnostics (#6042) * Update dependencies from https://github.com/dotnet/diagnostics build 20240216.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24112.1 -> To Version 8.0.0-preview.24116.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240216.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24112.1 -> To Version 8.0.0-preview.24116.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240216.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24112.1 -> To Version 8.0.0-preview.24116.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240219.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24112.1 -> To Version 8.0.0-preview.24119.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1f2a9da6154..b5d13239c61 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore 4ea9f39a3447596ed9bf42320882cc6423e0c60b - + https://github.com/dotnet/diagnostics - 85d0d3980355859d0088388fbd4a7749f7e46c21 + 175b855911918ff88e1503085689bbd1482f6103 - + https://github.com/dotnet/diagnostics - 85d0d3980355859d0088388fbd4a7749f7e46c21 + 175b855911918ff88e1503085689bbd1482f6103 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 8aefb71bf51..b05b4285ee8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24112.1 - 8.0.0-preview.24112.1 + 8.0.0-preview.24119.1 + 8.0.0-preview.24119.1 9.0.100-preview.2.24119.3 From b987891c4dc1fc145816fee69d5f1aceeddf8bd5 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:11:10 -0800 Subject: [PATCH 069/131] Ignore Moq updates via dependabot (#6061) --- .github/dependabot.template.yml | 1 + .github/dependabot.yml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.github/dependabot.template.yml b/.github/dependabot.template.yml index efb9e8dd046..7e2809c98b7 100644 --- a/.github/dependabot.template.yml +++ b/.github/dependabot.template.yml @@ -41,6 +41,7 @@ updates: ignore: - dependency-name: "Microsoft.Extensions.*" update-types: [ "version-update:semver-major" ] + - dependency-name: "Moq" commit-message: prefix: #@ commit_prefix groups: diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9d7f0b65e9a..86d578d3c7d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -14,6 +14,7 @@ updates: - dependency-name: Microsoft.Extensions.* update-types: - version-update:semver-major + - dependency-name: Moq commit-message: prefix: '[main] ' groups: @@ -89,6 +90,7 @@ updates: - dependency-name: Microsoft.Extensions.* update-types: - version-update:semver-major + - dependency-name: Moq commit-message: prefix: '[release/7.x] ' groups: @@ -148,6 +150,7 @@ updates: - dependency-name: Microsoft.Extensions.* update-types: - version-update:semver-major + - dependency-name: Moq commit-message: prefix: '[release/6.x] ' groups: From f33f3c02709e1dbbd1faf27feeb8cf778c191265 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 14:50:30 -0800 Subject: [PATCH 070/131] [feature/9.x] Update dependencies from dotnet/symstore (#6021) * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240212.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511201 * Update dependencies from https://github.com/dotnet/symstore build 20240219.1 Microsoft.FileFormats From Version 1.0.510501 -> To Version 1.0.511901 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b5d13239c61..86c0e302a9b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -46,9 +46,9 @@ https://github.com/dotnet/arcade d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/symstore - 36d076932232b23c4e2de271e894b23a16c34ef6 + 96a152a28e86ecc5c68ec9a73e02bb1e93163338 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index b05b4285ee8..db7c475e22b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -72,7 +72,7 @@ 9.0.0-preview.2.24115.1 9.0.0-preview.2.24115.1 - 1.0.510501 + 1.0.511901 $(MicrosoftNETCoreApp31Version) From 9b5b2a4223b929f9ddd621c630fec0c5d626f964 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 23:06:01 +0000 Subject: [PATCH 071/131] [feature/9.x] Update dependencies from dotnet/roslyn-analyzers (#6034) * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240209.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24075.1 -> To Version 9.0.0-preview.24109.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240215.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24075.1 -> To Version 9.0.0-preview.24115.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240216.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24075.1 -> To Version 9.0.0-preview.24116.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240217.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24075.1 -> To Version 9.0.0-preview.24117.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240217.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24075.1 -> To Version 9.0.0-preview.24117.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240217.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24075.1 -> To Version 9.0.0-preview.24117.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 86c0e302a9b..bb0880ac2b9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -18,9 +18,9 @@ - + https://github.com/dotnet/roslyn-analyzers - bf54e2bebc28004dec0311dc4083bcff4fd44cdb + ab13ac75d1195a27e3cf7fb990fc3a51615caa95 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index db7c475e22b..dec445fe853 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -67,7 +67,7 @@ 9.0.100-preview.2.24119.3 - 9.0.0-preview.24075.1 + 9.0.0-preview.24117.1 9.0.0-preview.2.24115.1 9.0.0-preview.2.24115.1 From cbc0f41f64027ec28db85c0d297780dd5019eedc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 23:28:05 +0000 Subject: [PATCH 072/131] [main] Bump NJsonSchema from 10.9.0 to 11.0.0 in /eng/dependabot/independent (#6056) * [main] Bump NJsonSchema in /eng/dependabot/independent Bumps [NJsonSchema](https://github.com/RicoSuter/NJsonSchema) from 10.9.0 to 11.0.0. - [Release notes](https://github.com/RicoSuter/NJsonSchema/releases) - [Commits](https://github.com/RicoSuter/NJsonSchema/compare/v10.9.0...v11.0.0) --- updated-dependencies: - dependency-name: NJsonSchema dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * [main] Bump NJsonSchema in /eng/dependabot/independent Bumps [NJsonSchema](https://github.com/RicoSuter/NJsonSchema) from 10.9.0 to 11.0.0. - [Release notes](https://github.com/RicoSuter/NJsonSchema/releases) - [Commits](https://github.com/RicoSuter/NJsonSchema/compare/v10.9.0...v11.0.0) --- updated-dependencies: - dependency-name: NJsonSchema dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Fix schema generator init --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Joe Schmitt --- Directory.Packages.props | 1 + eng/dependabot/independent/Versions.props | 2 +- ...Diagnostics.Monitoring.ConfigurationSchema.csproj | 1 + .../SchemaGenerator.cs | 12 +++++++++--- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 588553accaa..4164bb407ea 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -22,6 +22,7 @@ + diff --git a/eng/dependabot/independent/Versions.props b/eng/dependabot/independent/Versions.props index 2dd91a26216..89487a96455 100644 --- a/eng/dependabot/independent/Versions.props +++ b/eng/dependabot/independent/Versions.props @@ -12,7 +12,7 @@ 13.0.3 - 10.9.0 + 11.0.0 6.5.0 3.5.8.1 diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj index a232376963e..a7af91ecb20 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj @@ -78,6 +78,7 @@ + diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/SchemaGenerator.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/SchemaGenerator.cs index c5a0bcca8e0..3770ce11241 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/SchemaGenerator.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/SchemaGenerator.cs @@ -14,6 +14,7 @@ using Newtonsoft.Json.Converters; using NJsonSchema; using NJsonSchema.Generation; +using NJsonSchema.NewtonsoftJson.Generation; using System; using System.Collections.Generic; using System.Linq; @@ -306,9 +307,14 @@ public GenerationContext(JsonSchema rootSchema) { Schema = rootSchema; - _settings = new JsonSchemaGeneratorSettings(); - _settings.SerializerSettings = new JsonSerializerSettings(); - _settings.SerializerSettings.Converters.Add(new StringEnumConverter()); + JsonSerializerSettings serializerSettings = new(); + serializerSettings.Converters.Add(new StringEnumConverter()); + + _settings = new NewtonsoftJsonSchemaGeneratorSettings + { + SerializerSettings = serializerSettings + }; + _settings.SchemaProcessors.Add(new ExperimentalSchemaProcessor()); _resolver = new JsonSchemaResolver(rootSchema, _settings); From 828334d9583e8f03ab00990f2e6d262d677939a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 00:51:53 +0000 Subject: [PATCH 073/131] [main] Bump the identity-dependencies group (#6055) Bumps the identity-dependencies group in /eng/dependabot/independent with 6 updates: | Package | From | To | | --- | --- | --- | | [Microsoft.Identity.Web](https://github.com/AzureAD/microsoft-identity-web) | `2.16.1` | `2.17.0` | | Microsoft.Extensions.Logging.Abstractions | `$MicrosoftExtensionsLoggingAbstractionsVersion` | `8.0.0` | | Microsoft.Extensions.Configuration.Abstractions | `$MicrosoftExtensionsConfigurationAbstractionsVersion` | `8.0.0` | | Microsoft.Extensions.Logging | `$MicrosoftExtensionsLoggingVersion` | `8.0.0` | | Microsoft.AspNetCore.Authentication.JwtBearer | `$MicrosoftAspNetCoreAuthenticationJwtBearerVersion` | `8.0.0` | | Microsoft.Extensions.Logging.Console | `$MicrosoftExtensionsLoggingConsoleVersion` | `6.0.0` | Updates `Microsoft.Identity.Web` from 2.16.1 to 2.17.0 - [Release notes](https://github.com/AzureAD/microsoft-identity-web/releases) - [Changelog](https://github.com/AzureAD/microsoft-identity-web/blob/master/changelog.md) - [Commits](https://github.com/AzureAD/microsoft-identity-web/compare/2.16.1...2.17.0) Updates `Microsoft.Extensions.Logging.Abstractions` from $MicrosoftExtensionsLoggingAbstractionsVersion to 8.0.0 Updates `Microsoft.Extensions.Configuration.Abstractions` from $MicrosoftExtensionsConfigurationAbstractionsVersion to 8.0.0 Updates `Microsoft.Extensions.Logging` from $MicrosoftExtensionsLoggingVersion to 8.0.0 Updates `Microsoft.AspNetCore.Authentication.JwtBearer` from $MicrosoftAspNetCoreAuthenticationJwtBearerVersion to 8.0.0 Updates `Microsoft.Extensions.Logging.Console` from $MicrosoftExtensionsLoggingConsoleVersion to 6.0.0 --- updated-dependencies: - dependency-name: Microsoft.Identity.Web dependency-type: direct:production update-type: version-update:semver-minor dependency-group: identity-dependencies - dependency-name: Microsoft.Extensions.Logging.Abstractions dependency-type: direct:production dependency-group: identity-dependencies - dependency-name: Microsoft.Extensions.Configuration.Abstractions dependency-type: direct:production dependency-group: identity-dependencies - dependency-name: Microsoft.Extensions.Logging dependency-type: direct:production dependency-group: identity-dependencies - dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer dependency-type: direct:production dependency-group: identity-dependencies - dependency-name: Microsoft.Extensions.Logging.Console dependency-type: direct:production dependency-group: identity-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/independent/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/independent/Versions.props b/eng/dependabot/independent/Versions.props index 89487a96455..661d80a1a0b 100644 --- a/eng/dependabot/independent/Versions.props +++ b/eng/dependabot/independent/Versions.props @@ -5,7 +5,7 @@ 1.10.4 12.19.1 12.17.1 - 2.16.1 + 2.17.0 1.6.13 4.3.2 5.0.0 From 70c399891224b9957dad037fc73be8dff73a2288 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 09:07:20 -0800 Subject: [PATCH 074/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240220.1 (#6067) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24119.1 -> To Version 8.0.0-preview.24120.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c13a472ab54..4f8c6868b9e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 175b855911918ff88e1503085689bbd1482f6103 + d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/diagnostics - 175b855911918ff88e1503085689bbd1482f6103 + d498654de4bf01e02ec689a51923e8c18b9c8d9c https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index cf9929c04e2..4c7bd05bbda 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24119.1 - 8.0.0-preview.24119.1 + 8.0.0-preview.24120.1 + 8.0.0-preview.24120.1 8.0.103-servicing.24114.15 From 59b0ff392962883b8bc4b2f667d9c0362df73226 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 09:07:40 -0800 Subject: [PATCH 075/131] Bump dawidd6/action-download-artifact from 3.1.1 to 3.1.2 (#6070) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/72aaadce3bc708349fc665eee3785cbb1b6e51d0...71072fbb1229e1317f1a8de6b04206afb461bd67) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/submit-linter-suggestions.yml | 2 +- .github/workflows/submit-to-do-issue.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/submit-linter-suggestions.yml b/.github/workflows/submit-linter-suggestions.yml index 5ca3c08215c..bf8211c60b5 100644 --- a/.github/workflows/submit-linter-suggestions.yml +++ b/.github/workflows/submit-linter-suggestions.yml @@ -49,7 +49,7 @@ jobs: # The default artifact download action doesn't support cross-workflow # artifacts, so use a 3rd party one. - name: 'Download linting results' - uses: dawidd6/action-download-artifact@72aaadce3bc708349fc665eee3785cbb1b6e51d0 + uses: dawidd6/action-download-artifact@71072fbb1229e1317f1a8de6b04206afb461bd67 with: workflow: ${{env.workflow_name}} run_id: ${{github.event.workflow_run.id }} diff --git a/.github/workflows/submit-to-do-issue.yml b/.github/workflows/submit-to-do-issue.yml index cbfdbb3890e..31b0793e112 100644 --- a/.github/workflows/submit-to-do-issue.yml +++ b/.github/workflows/submit-to-do-issue.yml @@ -35,7 +35,7 @@ jobs: # The default artifact download action doesn't support cross-workflow # artifacts, so use a 3rd party one. - name: 'Download linting results' - uses: dawidd6/action-download-artifact@72aaadce3bc708349fc665eee3785cbb1b6e51d0 + uses: dawidd6/action-download-artifact@71072fbb1229e1317f1a8de6b04206afb461bd67 with: workflow: ${{env.workflow_name}} run_id: ${{github.event.workflow_run.id }} From cca1dad491aaaa64f8fc41650f3c82cfd3380bb5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 09:13:35 -0800 Subject: [PATCH 076/131] [main] Bump AWSSDK.S3 from 3.5.8.1 to 3.7.305.7 in /eng/dependabot/independent (#6062) * [main] Bump AWSSDK.S3 in /eng/dependabot/independent Bumps [AWSSDK.S3](https://github.com/aws/aws-sdk-net) from 3.5.8.1 to 3.7.305.7. - [Changelog](https://github.com/aws/aws-sdk-net/blob/main/SDK.CHANGELOG.MD) - [Commits](https://github.com/aws/aws-sdk-net/commits) --- updated-dependencies: - dependency-name: AWSSDK.S3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Switched to newer check for whether a bucket exists --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: kkeirstead --- eng/dependabot/independent/Versions.props | 2 +- src/Extensions/S3Storage/S3Storage.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/eng/dependabot/independent/Versions.props b/eng/dependabot/independent/Versions.props index 661d80a1a0b..944b72c0376 100644 --- a/eng/dependabot/independent/Versions.props +++ b/eng/dependabot/independent/Versions.props @@ -14,7 +14,7 @@ 13.0.3 11.0.0 6.5.0 - 3.5.8.1 + 3.7.305.7 - - - - - - + https://github.com/dotnet/dotnet-monitor 8.1.0 diff --git a/eng/dependabot/Versions.props b/eng/dependabot/Versions.props new file mode 100644 index 00000000000..4ce9f25830e --- /dev/null +++ b/eng/dependabot/Versions.props @@ -0,0 +1,8 @@ + + + + + + + + From 7ebcc127f47105b5b3cfc666e5a84545bd2091e3 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Wed, 21 Feb 2024 15:23:19 -0800 Subject: [PATCH 078/131] Fix github-actions commit author (#6072) --- .github/actions/open-pr/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/open-pr/action.yml b/.github/actions/open-pr/action.yml index 565c0b17a4d..079da990a06 100644 --- a/.github/actions/open-pr/action.yml +++ b/.github/actions/open-pr/action.yml @@ -49,8 +49,8 @@ runs: base_branch_name=${BASE_BRANCH_NAME:-${current_branch_name}} - git config user.name "github-actions" - git config user.email "github-actions@github.com" + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git add ${{ inputs.files_to_commit }} are_files_changed="" From ef4e70e84376d45119465339f1dc35aea4dab404 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 14:23:43 +0000 Subject: [PATCH 079/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240221.1 (#6075) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4f8c6868b9e..dc9bfb9c6fd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,11 +4,11 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c diff --git a/eng/Versions.props b/eng/Versions.props index 32db36e2c8a..6a8d86ed969 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24120.1 - 8.0.0-preview.24120.1 + 8.0.0-preview.24121.1 + 8.0.0-preview.24121.1 8.0.103-servicing.24114.15 From 8193fe9831fc4ef5e132183b5622bcc591892a54 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Thu, 22 Feb 2024 08:49:26 -0800 Subject: [PATCH 080/131] Limit learning path automation to main repo (#6078) --- .github/workflows/check-learning-path-links.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/check-learning-path-links.yml b/.github/workflows/check-learning-path-links.yml index 7b9f4f0a6f9..dfe9d2d5e2d 100644 --- a/.github/workflows/check-learning-path-links.yml +++ b/.github/workflows/check-learning-path-links.yml @@ -8,6 +8,7 @@ permissions: {} jobs: check-learning-path-links: + if: github.repository == 'dotnet/dotnet-monitor' name: 'Check Learning Path Links' runs-on: ubuntu-latest permissions: From a159cf84c418de9725f6f8ba7249112601e4571e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 08:54:49 -0800 Subject: [PATCH 081/131] Bump streetsidesoftware/cspell-action from 5.3.0 to 5.4.0 (#6077) Bumps [streetsidesoftware/cspell-action](https://github.com/streetsidesoftware/cspell-action) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/streetsidesoftware/cspell-action/releases) - [Changelog](https://github.com/streetsidesoftware/cspell-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/streetsidesoftware/cspell-action/compare/61139534e14c5c19c4c12c9967771f3f20ce9072...e6f09063780e6ace11d87ce10d818d4e2bad9b66) --- updated-dependencies: - dependency-name: streetsidesoftware/cspell-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/spellcheck.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index c1b9773fa49..92f0a6c3396 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -17,7 +17,7 @@ jobs: with: persist-credentials: false - - uses: streetsidesoftware/cspell-action@61139534e14c5c19c4c12c9967771f3f20ce9072 + - uses: streetsidesoftware/cspell-action@e6f09063780e6ace11d87ce10d818d4e2bad9b66 name: Documentation spellcheck if: ${{ !cancelled() }} with: @@ -25,7 +25,7 @@ jobs: inline: error incremental_files_only: true - - uses: streetsidesoftware/cspell-action@61139534e14c5c19c4c12c9967771f3f20ce9072 + - uses: streetsidesoftware/cspell-action@e6f09063780e6ace11d87ce10d818d4e2bad9b66 name: Resx spellcheck if: ${{ !cancelled() }} with: @@ -33,7 +33,7 @@ jobs: inline: error incremental_files_only: true - - uses: streetsidesoftware/cspell-action@61139534e14c5c19c4c12c9967771f3f20ce9072 + - uses: streetsidesoftware/cspell-action@e6f09063780e6ace11d87ce10d818d4e2bad9b66 name: Source code spellcheck if: ${{ !cancelled() }} with: From c1052c6a4e698a421a687e4389eab62768167ed4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 08:55:10 -0800 Subject: [PATCH 082/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240220.1 (#6068) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24119.1 -> To Version 8.0.0-preview.24120.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index bb0880ac2b9..98fb8a8e52d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore 4ea9f39a3447596ed9bf42320882cc6423e0c60b - + https://github.com/dotnet/diagnostics - 175b855911918ff88e1503085689bbd1482f6103 + d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/diagnostics - 175b855911918ff88e1503085689bbd1482f6103 + d498654de4bf01e02ec689a51923e8c18b9c8d9c https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index dec445fe853..c59441027bd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24119.1 - 8.0.0-preview.24119.1 + 8.0.0-preview.24121.1 + 8.0.0-preview.24121.1 9.0.100-preview.2.24119.3 From 58bcf9c44429a42f78732dc36b0649dd70f395f4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 08:55:33 -0800 Subject: [PATCH 083/131] [feature/9.x] Update dependencies from dotnet/installer (#6069) * Update dependencies from https://github.com/dotnet/installer build 20240221.2 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24119.3 -> To Version 9.0.100-preview.2.24121.2 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24114.9 -> To Version 9.0.0-preview.2.24120.6 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240222.2 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24119.3 -> To Version 9.0.100-preview.2.24122.2 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24114.9 -> To Version 9.0.0-preview.2.24120.6 (parent: Microsoft.Dotnet.Sdk.Internal --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 98fb8a8e52d..e50fe03bf8f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/aspnetcore - 4ea9f39a3447596ed9bf42320882cc6423e0c60b + f26b79eb34d13648bedc5ec98e2151f8c55db978 https://github.com/dotnet/diagnostics @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/installer - 709259d8084d7aef80259be1f0ffa7d76923fcfa + b271530f9cc2c8c0f8dd12d57ffa9cd5255b7fe4 https://github.com/dotnet/arcade @@ -50,17 +50,17 @@ https://github.com/dotnet/symstore 96a152a28e86ecc5c68ec9a73e02bb1e93163338 - + https://github.com/dotnet/runtime - 963626276e11bf5587aaed69826b62682b05d9c4 + 1b1d26ac74e374309fb101382026ba0480d3821d - + https://github.com/dotnet/aspnetcore - 4ea9f39a3447596ed9bf42320882cc6423e0c60b + f26b79eb34d13648bedc5ec98e2151f8c55db978 - + https://github.com/dotnet/runtime - 963626276e11bf5587aaed69826b62682b05d9c4 + 1b1d26ac74e374309fb101382026ba0480d3821d diff --git a/eng/Versions.props b/eng/Versions.props index c59441027bd..a7d6a7659db 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,20 +57,20 @@ 9.0.0-beta.24114.1 9.0.0-beta.24114.1 - 9.0.0-preview.2.24114.9 - 9.0.0-preview.2.24114.9 + 9.0.0-preview.2.24120.6 + 9.0.0-preview.2.24120.6 2.0.0-beta4.24112.1 8.0.0-preview.24121.1 8.0.0-preview.24121.1 - 9.0.100-preview.2.24119.3 + 9.0.100-preview.2.24122.2 9.0.0-preview.24117.1 - 9.0.0-preview.2.24115.1 - 9.0.0-preview.2.24115.1 + 9.0.0-preview.2.24120.11 + 9.0.0-preview.2.24120.11 1.0.511901 From f1f49b605c6cca8515f713db4e7518a38e78bf1b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:55:30 -0800 Subject: [PATCH 084/131] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240221.1 (#6076) Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24117.1 -> To Version 9.0.0-preview.24121.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e50fe03bf8f..ffca66fc952 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -18,9 +18,9 @@ - + https://github.com/dotnet/roslyn-analyzers - ab13ac75d1195a27e3cf7fb990fc3a51615caa95 + 4195460a822168a75aa3d31b4a8d0fa88c42855c https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index a7d6a7659db..09015d3e3ea 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -67,7 +67,7 @@ 9.0.100-preview.2.24122.2 - 9.0.0-preview.24117.1 + 9.0.0-preview.24121.1 9.0.0-preview.2.24120.11 9.0.0-preview.2.24120.11 From e17874e12024e77eee5aa409cc5b35e01d40b7c6 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:47:36 -0800 Subject: [PATCH 085/131] Include release/8.0 in dependabot updates (#6084) --- .github/dependabot.template.yml | 1 + .github/dependabot.yml | 76 +++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/.github/dependabot.template.yml b/.github/dependabot.template.yml index 7e2809c98b7..f16b4a6a91d 100644 --- a/.github/dependabot.template.yml +++ b/.github/dependabot.template.yml @@ -19,6 +19,7 @@ #@ def getBranches(): #@ return [ #@ struct.encode({"name": "main", "majorVersion": "8"}), +#@ struct.encode({"name": "release/8.0", "majorVersion": "8"}), #@ struct.encode({"name": "release/7.x", "majorVersion": "7"}), #@ struct.encode({"name": "release/6.x", "majorVersion": "6"}), #@ ] diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 86d578d3c7d..f11506ebd96 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -81,6 +81,82 @@ updates: patterns: - Microsoft.Extensions.* - Microsoft.NETCore.App.Runtime.* +- package-ecosystem: nuget + directory: /eng/dependabot/independent + schedule: + interval: daily + target-branch: release/8.0 + ignore: + - dependency-name: Microsoft.Extensions.* + update-types: + - version-update:semver-major + - dependency-name: Moq + commit-message: + prefix: '[release/8.0] ' + groups: + azure-storage-dependencies: + patterns: + - Azure.Storage.* + identity-dependencies: + patterns: + - Azure.Identity + - Microsoft.Identity.* + - Microsoft.IdentityModel.* +- package-ecosystem: nuget + directory: /eng/dependabot/nuget.org + schedule: + interval: daily + target-branch: release/8.0 + commit-message: + prefix: '[release/8.0] ' +- package-ecosystem: nuget + directory: /eng/dependabot/net8.0 + schedule: + interval: daily + target-branch: release/8.0 + ignore: + - dependency-name: '*' + update-types: + - version-update:semver-major + commit-message: + prefix: '[release/8.0] ' + groups: + runtime-dependencies: + patterns: + - Microsoft.Extensions.* + - Microsoft.NETCore.App.Runtime.* +- package-ecosystem: nuget + directory: /eng/dependabot/net7.0 + schedule: + interval: daily + target-branch: release/8.0 + ignore: + - dependency-name: '*' + update-types: + - version-update:semver-major + commit-message: + prefix: '[release/8.0] ' + groups: + runtime-dependencies: + patterns: + - Microsoft.Extensions.* + - Microsoft.NETCore.App.Runtime.* +- package-ecosystem: nuget + directory: /eng/dependabot/net6.0 + schedule: + interval: daily + target-branch: release/8.0 + ignore: + - dependency-name: '*' + update-types: + - version-update:semver-major + commit-message: + prefix: '[release/8.0] ' + groups: + runtime-dependencies: + patterns: + - Microsoft.Extensions.* + - Microsoft.NETCore.App.Runtime.* - package-ecosystem: nuget directory: /eng/dependabot/independent schedule: From b9ea224896eba8716b5799bc81a38a5cf51a20ae Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 14:18:34 +0000 Subject: [PATCH 086/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240222.1 (#6100) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index dc9bfb9c6fd..da06966121f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,11 +4,11 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c diff --git a/eng/Versions.props b/eng/Versions.props index 6a8d86ed969..0de16a5b7fe 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24121.1 - 8.0.0-preview.24121.1 + 8.0.0-preview.24122.1 + 8.0.0-preview.24122.1 8.0.103-servicing.24114.15 From 044f827aad717939cd12da13f17f78907f1b6356 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 17:41:31 +0000 Subject: [PATCH 087/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240222.1 (#6101) [feature/9.x] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ffca66fc952..6761086a0da 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,11 +4,11 @@ https://github.com/dotnet/aspnetcore f26b79eb34d13648bedc5ec98e2151f8c55db978 - + https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c diff --git a/eng/Versions.props b/eng/Versions.props index 09015d3e3ea..b81ac06f359 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24121.1 - 8.0.0-preview.24121.1 + 8.0.0-preview.24122.1 + 8.0.0-preview.24122.1 9.0.100-preview.2.24122.2 From 9d9266d64bd57cc2bf2ff921c12b626aa1718aeb Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:59:05 -0800 Subject: [PATCH 088/131] Update dependencies from https://github.com/dotnet/installer build 20240222.4 (#6102) Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24122.2 -> To Version 9.0.100-preview.2.24122.4 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6761086a0da..05e2273038c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade d5b02a4900c4d521cb48b8f0d7e3f28175268f7c - + https://github.com/dotnet/installer - b271530f9cc2c8c0f8dd12d57ffa9cd5255b7fe4 + ed324e09c77034992ce5af746f37d99dd69580f6 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index b81ac06f359..8a0a01adf28 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -65,7 +65,7 @@ 8.0.0-preview.24122.1 8.0.0-preview.24122.1 - 9.0.100-preview.2.24122.2 + 9.0.100-preview.2.24122.4 9.0.0-preview.24121.1 From 8cb9a0ddad59bca43be24c2a939eaaa4ae68085f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 08:58:39 -0800 Subject: [PATCH 089/131] [main] Update dependencies from dotnet/diagnostics (#6104) * Update dependencies from https://github.com/dotnet/diagnostics build 20240223.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24123.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240223.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24123.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240223.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24123.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index da06966121f..ed13b0d2e34 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - d498654de4bf01e02ec689a51923e8c18b9c8d9c + e1bda90d486b5cd17d8e51355891e1d8e8b065fc - + https://github.com/dotnet/diagnostics - d498654de4bf01e02ec689a51923e8c18b9c8d9c + e1bda90d486b5cd17d8e51355891e1d8e8b065fc https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 0de16a5b7fe..c4b13e934be 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24112.1 - 8.0.0-preview.24122.1 - 8.0.0-preview.24122.1 + 8.0.0-preview.24123.1 + 8.0.0-preview.24123.1 8.0.103-servicing.24114.15 From 4e0d81f0d09dd9172c73e7286616f848a86c1883 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:00:27 -0800 Subject: [PATCH 090/131] [main] Update dependencies from dotnet/command-line-api (#6105) * Update dependencies from https://github.com/dotnet/command-line-api build 20240223.1 System.CommandLine From Version 2.0.0-beta4.24112.1 -> To Version 2.0.0-beta4.24123.1 * Update dependencies from https://github.com/dotnet/command-line-api build 20240223.1 System.CommandLine From Version 2.0.0-beta4.24112.1 -> To Version 2.0.0-beta4.24123.1 * Update dependencies from https://github.com/dotnet/command-line-api build 20240223.1 System.CommandLine From Version 2.0.0-beta4.24112.1 -> To Version 2.0.0-beta4.24123.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ed13b0d2e34..5ed15d3adb6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics e1bda90d486b5cd17d8e51355891e1d8e8b065fc - + https://github.com/dotnet/command-line-api - e9ac4ff4293cf853f3d07eb9e747aef27f5be965 + 94ef1b035c73904f2240b3b3b0de6c4890dab6d8 diff --git a/eng/Versions.props b/eng/Versions.props index c4b13e934be..c0ee4f1cbad 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -55,7 +55,7 @@ 8.0.1 8.0.1-servicing.23580.8 - 2.0.0-beta4.24112.1 + 2.0.0-beta4.24123.1 8.0.0-preview.24123.1 8.0.0-preview.24123.1 From 5e722232cf7e7943a62a92355ea47285a2383dfc Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:02:17 -0800 Subject: [PATCH 091/131] [feature/9.x] Update dependencies from dotnet/command-line-api (#6109) * Update dependencies from https://github.com/dotnet/command-line-api build 20240223.1 System.CommandLine From Version 2.0.0-beta4.24112.1 -> To Version 2.0.0-beta4.24123.1 * Update dependencies from https://github.com/dotnet/command-line-api build 20240223.1 System.CommandLine From Version 2.0.0-beta4.24112.1 -> To Version 2.0.0-beta4.24123.1 * Update dependencies from https://github.com/dotnet/command-line-api build 20240223.1 System.CommandLine From Version 2.0.0-beta4.24112.1 -> To Version 2.0.0-beta4.24123.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 05e2273038c..99f4d2064a9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/command-line-api - e9ac4ff4293cf853f3d07eb9e747aef27f5be965 + 94ef1b035c73904f2240b3b3b0de6c4890dab6d8 diff --git a/eng/Versions.props b/eng/Versions.props index 8a0a01adf28..0abdc6438cf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 9.0.0-preview.2.24120.6 9.0.0-preview.2.24120.6 - 2.0.0-beta4.24112.1 + 2.0.0-beta4.24123.1 8.0.0-preview.24122.1 8.0.0-preview.24122.1 From ab8be513e3239d6ae64eeb49dfaff02640d3cab1 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Mon, 26 Feb 2024 09:14:37 -0800 Subject: [PATCH 092/131] Automatically create merge PRs for `feature/9.x` (#6073) --- .github/actions/open-pr/action.yml | 11 ++++-- .github/workflows/sync-branches.yml | 53 +++++++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/.github/actions/open-pr/action.yml b/.github/actions/open-pr/action.yml index 079da990a06..40a0fb84292 100644 --- a/.github/actions/open-pr/action.yml +++ b/.github/actions/open-pr/action.yml @@ -25,6 +25,9 @@ inputs: fail_if_files_unchanged: description: 'Fails the action if all of the specified files_to_commit are unchanged.' required: false + always_create_pr: + description: 'Always try to create a PR, even if there are no uncommitted changes.' + required: false update_if_already_exists: description: 'Allows updating an existing PR, or re-opening it if closed.' required: false @@ -61,10 +64,13 @@ runs: exit 1 fi - exit 0 + if [[ "$ALWAYS_CREATE_PR" != "true" ]]; then + exit 0 + fi + else + git commit -m "$COMMIT_MESSAGE" fi - git commit -m "$COMMIT_MESSAGE" git push --force --set-upstream origin "HEAD:$pr_branch_name" extraArgs="" @@ -81,6 +87,7 @@ runs: COMMIT_MESSAGE: ${{ inputs.commit_message }} DRAFT: ${{ inputs.draft }} LABELS: ${{ inputs.labels }} + ALWAYS_CREATE_PR: ${{ inputs.always_create_pr }} FAIL_IF_FILES_UNCHANGED: ${{ inputs.fail_if_files_unchanged }} UPDATE_IF_ALREADY_EXISTS: ${{ inputs.update_if_already_exists }} TITLE: ${{ inputs.title }} diff --git a/.github/workflows/sync-branches.yml b/.github/workflows/sync-branches.yml index f9f42e92573..e2e957afc37 100644 --- a/.github/workflows/sync-branches.yml +++ b/.github/workflows/sync-branches.yml @@ -10,12 +10,12 @@ env: base_branch: 'origin/main' jobs: - sync-branch: + sync-non-code: if: github.repository == 'dotnet/dotnet-monitor' strategy: matrix: branch: ["release/6.x", "release/7.x", "release/8.0"] - name: 'Sync ${{ matrix.branch }}' + name: 'Sync non-code to ${{ matrix.branch }}' runs-on: ubuntu-latest permissions: contents: write @@ -39,14 +39,61 @@ jobs: "cspell.json" \ "documentation/**.md" + - name: Open PR + uses: ./.github/actions/open-pr + with: + files_to_commit: "*" + title: '[${{ matrix.branch }}] Sync non-code with ${{ env.base_branch }}' + commit_message: sync non-code with ${{ env.base_branch }} + body: Sync non-code with ${{ env.base_branch }}. This PR was auto generated and will not be automatically merged in. + branch_name: sync/${{ matrix.branch }} + fail_if_files_unchanged: false + labels: 'automatic-pr' + auth_token: ${{ secrets.GITHUB_TOKEN }} + + sync-code: + if: github.repository == 'dotnet/dotnet-monitor' + strategy: + matrix: + branch: ["feature/9.x"] + name: 'Sync branch with ${{ matrix.branch }}' + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + - name: Checkout + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 + with: + persist-credentials: true # We need to persist credentials to push the resulting changes upstream. + fetch-depth: 0 # Fetch the entire repo for the below git operations + ref: ${{ matrix.branch }} + + - name: Sync branch + run: | + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + + git merge "$base_branch" --strategy=ort --strategy-option=theirs + + git checkout "origin/${{ matrix.branch }}" -- \ + "global.json" \ + "eng/branch-vscode-config" \ + "eng/common" \ + "eng/Common.props" \ + "eng/Versions.props" \ + "eng/Version.Details.xml" + - name: Open PR uses: ./.github/actions/open-pr with: files_to_commit: "*" title: '[${{ matrix.branch }}] Sync branch with ${{ env.base_branch }}' - commit_message: sync branch with ${{ env.base_branch }} + commit_message: Resolve merge conflicts body: Sync branch with ${{ env.base_branch }}. This PR was auto generated and will not be automatically merged in. branch_name: sync/${{ matrix.branch }} fail_if_files_unchanged: false + always_create_pr: true labels: 'automatic-pr' auth_token: ${{ secrets.GITHUB_TOKEN }} From ad1cd018751a2ccfc2f950cbb0b633d24cb805b7 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:37:22 +0000 Subject: [PATCH 093/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240226.1 (#6122) [main] Update dependencies from dotnet/command-line-api --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5ed15d3adb6..3715a8101d7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics e1bda90d486b5cd17d8e51355891e1d8e8b065fc - + https://github.com/dotnet/command-line-api - 94ef1b035c73904f2240b3b3b0de6c4890dab6d8 + 5ea97af07263ea3ef68a18557c8aa3f7e3200bda diff --git a/eng/Versions.props b/eng/Versions.props index c0ee4f1cbad..3846c66c3d0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -55,7 +55,7 @@ 8.0.1 8.0.1-servicing.23580.8 - 2.0.0-beta4.24123.1 + 2.0.0-beta4.24126.1 8.0.0-preview.24123.1 8.0.0-preview.24123.1 From 331a2cd665234849d1001fc6b7c46e9972d9759d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:20:33 -0800 Subject: [PATCH 094/131] Update dependencies from https://github.com/dotnet/arcade build 20240227.2 (#6126) Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24114.1 -> To Version 9.0.0-beta.24127.2 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 +++---- eng/Versions.props | 6 +- eng/common/native/init-distro-rid.sh | 80 +++++++++++++-------------- eng/common/native/init-os-and-arch.sh | 3 +- eng/common/tools.ps1 | 6 +- eng/common/tools.sh | 6 +- global.json | 6 +- 7 files changed, 66 insertions(+), 61 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 99f4d2064a9..9d7b00fcfd8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers 4195460a822168a75aa3d31b4a8d0fa88c42855c - + https://github.com/dotnet/arcade - d5b02a4900c4d521cb48b8f0d7e3f28175268f7c + d9930e5e9a0069e5b7726c119f614486b8ef438f - + https://github.com/dotnet/arcade - d5b02a4900c4d521cb48b8f0d7e3f28175268f7c + d9930e5e9a0069e5b7726c119f614486b8ef438f - + https://github.com/dotnet/arcade - d5b02a4900c4d521cb48b8f0d7e3f28175268f7c + d9930e5e9a0069e5b7726c119f614486b8ef438f - + https://github.com/dotnet/arcade - d5b02a4900c4d521cb48b8f0d7e3f28175268f7c + d9930e5e9a0069e5b7726c119f614486b8ef438f https://github.com/dotnet/installer ed324e09c77034992ce5af746f37d99dd69580f6 - + https://github.com/dotnet/arcade - d5b02a4900c4d521cb48b8f0d7e3f28175268f7c + d9930e5e9a0069e5b7726c119f614486b8ef438f https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 0abdc6438cf..98acc0db593 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,9 +53,9 @@ --> - 9.0.0-beta.24114.1 - 9.0.0-beta.24114.1 - 9.0.0-beta.24114.1 + 9.0.0-beta.24127.2 + 9.0.0-beta.24127.2 + 9.0.0-beta.24127.2 9.0.0-preview.2.24120.6 9.0.0-preview.2.24120.6 diff --git a/eng/common/native/init-distro-rid.sh b/eng/common/native/init-distro-rid.sh index de1687b2ccb..5dcbfd700f0 100644 --- a/eng/common/native/init-distro-rid.sh +++ b/eng/common/native/init-distro-rid.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh # getNonPortableDistroRid # @@ -11,21 +11,20 @@ # non-portable rid getNonPortableDistroRid() { - local targetOs="$1" - local targetArch="$2" - local rootfsDir="$3" - local nonPortableRid="" + targetOs="$1" + targetArch="$2" + rootfsDir="$3" + nonPortableRid="" if [ "$targetOs" = "linux" ]; then + # shellcheck disable=SC1091 if [ -e "${rootfsDir}/etc/os-release" ]; then - source "${rootfsDir}/etc/os-release" - - if [[ "${ID}" == "rhel" || "${ID}" == "rocky" || "${ID}" == "alpine" ]]; then - # remove the last version digit - VERSION_ID="${VERSION_ID%.*}" + . "${rootfsDir}/etc/os-release" + if [ "${ID}" = "rhel" ] || [ "${ID}" = "rocky" ] || [ "${ID}" = "alpine" ]; then + VERSION_ID="${VERSION_ID%.*}" # Remove the last version digit for these distros fi - if [[ "${VERSION_ID:-}" =~ ^([[:digit:]]|\.)+$ ]]; then + if echo "${VERSION_ID:-}" | grep -qE '^([[:digit:]]|\.)+$'; then nonPortableRid="${ID}.${VERSION_ID}-${targetArch}" else # Rolling release distros either do not set VERSION_ID, set it as blank or @@ -33,45 +32,45 @@ getNonPortableDistroRid() # so omit it here to be consistent with everything else. nonPortableRid="${ID}-${targetArch}" fi - elif [ -e "${rootfsDir}/android_platform" ]; then - source "$rootfsDir"/android_platform + # shellcheck disable=SC1091 + . "${rootfsDir}/android_platform" nonPortableRid="$RID" fi fi if [ "$targetOs" = "freebsd" ]; then - # $rootfsDir can be empty. freebsd-version is shell script and it should always work. - __freebsd_major_version=$($rootfsDir/bin/freebsd-version | { read v; echo "${v%%.*}"; }) + # $rootfsDir can be empty. freebsd-version is a shell script and should always work. + __freebsd_major_version=$("$rootfsDir"/bin/freebsd-version | cut -d'.' -f1) nonPortableRid="freebsd.$__freebsd_major_version-${targetArch}" - elif command -v getprop && getprop ro.product.system.model 2>&1 | grep -qi android; then + elif command -v getprop >/dev/null && getprop ro.product.system.model | grep -qi android; then __android_sdk_version=$(getprop ro.build.version.sdk) nonPortableRid="android.$__android_sdk_version-${targetArch}" elif [ "$targetOs" = "illumos" ]; then __uname_version=$(uname -v) case "$__uname_version" in omnios-*) - __omnios_major_version=$(echo "${__uname_version:8:2}") - nonPortableRid=omnios."$__omnios_major_version"-"$targetArch" - ;; + __omnios_major_version=$(echo "$__uname_version" | cut -c9-10) + nonPortableRid="omnios.$__omnios_major_version-${targetArch}" + ;; joyent_*) - __smartos_major_version=$(echo "${__uname_version:7:4}") - nonPortableRid=smartos."$__smartos_major_version"-"$targetArch" - ;; - illumos_*) - nonPortableRid=openindiana-"$targetArch" - ;; + __smartos_major_version=$(echo "$__uname_version" | cut -c9-10) + nonPortableRid="smartos.$__smartos_major_version-${targetArch}" + ;; + *) + nonPortableRid="illumos-${targetArch}" + ;; esac elif [ "$targetOs" = "solaris" ]; then __uname_version=$(uname -v) - __solaris_major_version=$(echo "${__uname_version%.*}") - nonPortableRid=solaris."$__solaris_major_version"-"$targetArch" + __solaris_major_version=$(echo "$__uname_version" | cut -d'.' -f1) + nonPortableRid="solaris.$__solaris_major_version-${targetArch}" elif [ "$targetOs" = "haiku" ]; then - __uname_release=$(uname -r) + __uname_release="$(uname -r)" nonPortableRid=haiku.r"$__uname_release"-"$targetArch" fi - echo "$(echo $nonPortableRid | tr '[:upper:]' '[:lower:]')" + echo "$nonPortableRid" | tr '[:upper:]' '[:lower:]' } # initDistroRidGlobal @@ -85,26 +84,23 @@ getNonPortableDistroRid() # None # # Notes: -# -# It is important to note that the function does not return anything, but it -# exports the following variables on success: -# -# __DistroRid : Non-portable rid of the target platform. -# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform. -# +# It is important to note that the function does not return anything, but it +# exports the following variables on success: +# __DistroRid : Non-portable rid of the target platform. +# __PortableTargetOS : OS-part of the portable rid that corresponds to the target platform. initDistroRidGlobal() { - local targetOs="$1" - local targetArch="$2" - local rootfsDir="" - if [ "$#" -ge 3 ]; then + targetOs="$1" + targetArch="$2" + rootfsDir="" + if [ $# -ge 3 ]; then rootfsDir="$3" fi if [ -n "${rootfsDir}" ]; then # We may have a cross build. Check for the existence of the rootfsDir if [ ! -e "${rootfsDir}" ]; then - echo "Error rootfsDir has been passed, but the location is not valid." + echo "Error: rootfsDir has been passed, but the location is not valid." exit 1 fi fi @@ -119,7 +115,7 @@ initDistroRidGlobal() STRINGS="$(command -v llvm-strings || true)" fi - # Check for musl-based distros (e.g Alpine Linux, Void Linux). + # Check for musl-based distros (e.g. Alpine Linux, Void Linux). if "${rootfsDir}/usr/bin/ldd" --version 2>&1 | grep -q musl || ( [ -n "$STRINGS" ] && "$STRINGS" "${rootfsDir}/usr/bin/ldd" 2>&1 | grep -q musl ); then __PortableTargetOS="linux-musl" diff --git a/eng/common/native/init-os-and-arch.sh b/eng/common/native/init-os-and-arch.sh index caa448ff030..38921d4338f 100644 --- a/eng/common/native/init-os-and-arch.sh +++ b/eng/common/native/init-os-and-arch.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh # Use uname to determine what the OS is. OSName=$(uname -s | tr '[:upper:]' '[:lower:]') @@ -54,6 +54,7 @@ case "$CPUName" in ;; armv7l|armv8l) + # shellcheck disable=SC1091 if (NAME=""; . /etc/os-release; test "$NAME" = "Tizen"); then arch=armel else diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 7d8dc89b919..269fdb9420d 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -65,6 +65,9 @@ $ErrorActionPreference = 'Stop' # Base-64 encoded SAS token that has permission to storage container described by $runtimeSourceFeed [string]$runtimeSourceFeedKey = if (Test-Path variable:runtimeSourceFeedKey) { $runtimeSourceFeedKey } else { $null } +# True if the build is a product build +[bool]$productBuild = if (Test-Path variable:productBuild) { $productBuild } else { $false } + function Create-Directory ([string[]] $path) { New-Item -Path $path -Force -ItemType 'Directory' | Out-Null } @@ -850,7 +853,8 @@ function MSBuild-Core() { } # When running on Azure Pipelines, override the returned exit code to avoid double logging. - if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null) { + # Skip this when the build is a child of the VMR orchestrator build. + if ($ci -and $env:SYSTEM_TEAMPROJECT -ne $null -and !$productBuild -and $properties -notlike "*DotNetBuildRepo=true*") { Write-PipelineSetResult -Result "Failed" -Message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error diff --git a/eng/common/tools.sh b/eng/common/tools.sh index ece4b730795..803907795c1 100644 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -68,6 +68,9 @@ fi runtime_source_feed=${runtime_source_feed:-''} runtime_source_feed_key=${runtime_source_feed_key:-''} +# True if the build is a product build +product_build=${product_build:-false} + # Resolve any symlinks in the given path. function ResolvePath { local path=$1 @@ -503,7 +506,8 @@ function MSBuild-Core { echo "Build failed with exit code $exit_code. Check errors above." # When running on Azure Pipelines, override the returned exit code to avoid double logging. - if [[ "$ci" == "true" && -n ${SYSTEM_TEAMPROJECT:-} ]]; then + # Skip this when the build is a child of the VMR orchestrator build. + if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$product_build" != true && $properties != *"DotNetBuildRepo=true"* ]]; then Write-PipelineSetResult -result "Failed" -message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error diff --git a/global.json b/global.json index 908cf4bae46..b5f98cea6fe 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "9.0.100-preview.1.24076.14", + "dotnet": "9.0.100-preview.1.24101.2", "runtimes": { "aspnetcore": [ "$(MicrosoftAspNetCoreApp60Version)", @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24114.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24114.1" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24127.2", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24127.2" } } From 2bcfe408505eef380f9f16e20ab607e8e6b0542c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:20:37 -0800 Subject: [PATCH 095/131] Update dependencies from https://github.com/dotnet/command-line-api build 20240226.1 (#6125) System.CommandLine From Version 2.0.0-beta4.24123.1 -> To Version 2.0.0-beta4.24126.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9d7b00fcfd8..c7b62564942 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -12,9 +12,9 @@ https://github.com/dotnet/diagnostics d498654de4bf01e02ec689a51923e8c18b9c8d9c - + https://github.com/dotnet/command-line-api - 94ef1b035c73904f2240b3b3b0de6c4890dab6d8 + 5ea97af07263ea3ef68a18557c8aa3f7e3200bda diff --git a/eng/Versions.props b/eng/Versions.props index 98acc0db593..679bfcb14ff 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -60,7 +60,7 @@ 9.0.0-preview.2.24120.6 9.0.0-preview.2.24120.6 - 2.0.0-beta4.24123.1 + 2.0.0-beta4.24126.1 8.0.0-preview.24122.1 8.0.0-preview.24122.1 From 23c5925a793c9b2e12fed5b627f6b37bac7b172c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:20:49 -0800 Subject: [PATCH 096/131] Update dependencies from https://github.com/dotnet/arcade build 20240223.1 (#6120) Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.24113.2 -> To Version 8.0.0-beta.24123.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- eng/common/templates/steps/generate-sbom.yml | 2 +- global.json | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3715a8101d7..a5fa120fc52 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers b4d9a1334d5189172977ba8fddd00bda70161e4a - + https://github.com/dotnet/arcade - da98edc4c3ea539f109ea320672136ceb32591a7 + 042763a811fd94dc3556253d4c64118dd665216e - + https://github.com/dotnet/arcade - da98edc4c3ea539f109ea320672136ceb32591a7 + 042763a811fd94dc3556253d4c64118dd665216e - + https://github.com/dotnet/arcade - da98edc4c3ea539f109ea320672136ceb32591a7 + 042763a811fd94dc3556253d4c64118dd665216e - + https://github.com/dotnet/arcade - da98edc4c3ea539f109ea320672136ceb32591a7 + 042763a811fd94dc3556253d4c64118dd665216e https://github.com/dotnet/installer 68e8abb1d3e1a240a6e4c29dcd220aae91681676 - + https://github.com/dotnet/arcade - da98edc4c3ea539f109ea320672136ceb32591a7 + 042763a811fd94dc3556253d4c64118dd665216e https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 3846c66c3d0..454bc05c4ea 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,9 +48,9 @@ --> - 8.0.0-beta.24113.2 - 8.0.0-beta.24113.2 - 8.0.0-beta.24113.2 + 8.0.0-beta.24123.1 + 8.0.0-beta.24123.1 + 8.0.0-beta.24123.1 8.0.1 8.0.1-servicing.23580.8 diff --git a/eng/common/templates/steps/generate-sbom.yml b/eng/common/templates/steps/generate-sbom.yml index a06373f38fa..2b21eae4273 100644 --- a/eng/common/templates/steps/generate-sbom.yml +++ b/eng/common/templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 7.0.0 + PackageVersion: 8.0.0 BuildDropPath: '$(Build.SourcesDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/global.json b/global.json index 6c6da899fbb..a1593b9d961 100644 --- a/global.json +++ b/global.json @@ -26,7 +26,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24113.2", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24113.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24123.1", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24123.1" } } From 406da5d45359ae21c2f2da0d925e1cc4cb5f96d3 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:20:54 -0800 Subject: [PATCH 097/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240226.1 (#6119) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24123.1 -> To Version 8.0.0-preview.24126.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a5fa120fc52..3259a9c8b3c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - e1bda90d486b5cd17d8e51355891e1d8e8b065fc + 2be99ebb06f50c2a57ff91e63765e2c29db1b76b - + https://github.com/dotnet/diagnostics - e1bda90d486b5cd17d8e51355891e1d8e8b065fc + 2be99ebb06f50c2a57ff91e63765e2c29db1b76b https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 454bc05c4ea..6973d1e0f1e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24123.1 - 8.0.0-preview.24123.1 + 8.0.0-preview.24126.1 + 8.0.0-preview.24126.1 8.0.103-servicing.24114.15 From 6a8ec331795de54e45aba3cbe593b43b0446631f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 09:20:57 -0800 Subject: [PATCH 098/131] [feature/9.x] Update dependencies from dotnet/diagnostics (#6108) * Update dependencies from https://github.com/dotnet/diagnostics build 20240223.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24123.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240223.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24123.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240223.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24123.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240226.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24122.1 -> To Version 8.0.0-preview.24126.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c7b62564942..0a3e0ffe79e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore f26b79eb34d13648bedc5ec98e2151f8c55db978 - + https://github.com/dotnet/diagnostics - d498654de4bf01e02ec689a51923e8c18b9c8d9c + 2be99ebb06f50c2a57ff91e63765e2c29db1b76b - + https://github.com/dotnet/diagnostics - d498654de4bf01e02ec689a51923e8c18b9c8d9c + 2be99ebb06f50c2a57ff91e63765e2c29db1b76b https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 679bfcb14ff..e68babdec97 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24122.1 - 8.0.0-preview.24122.1 + 8.0.0-preview.24126.1 + 8.0.0-preview.24126.1 9.0.100-preview.2.24122.4 From 7faf8964b57cfbb6ec442e243a3cd0d10bb62642 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:12:09 +0000 Subject: [PATCH 099/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240227.1 (#6131) [main] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3259a9c8b3c..645a3e406a2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 2be99ebb06f50c2a57ff91e63765e2c29db1b76b + aad90b9b830f8694c12ec26ff6ee84fed373d907 - + https://github.com/dotnet/diagnostics - 2be99ebb06f50c2a57ff91e63765e2c29db1b76b + aad90b9b830f8694c12ec26ff6ee84fed373d907 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 6973d1e0f1e..f6b208f7a34 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24126.1 - 8.0.0-preview.24126.1 + 8.0.0-preview.24127.1 + 8.0.0-preview.24127.1 8.0.103-servicing.24114.15 From 4f9931a8f05582dab6108e8b1bf13c06bfd37542 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:18:20 +0000 Subject: [PATCH 100/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240227.1 (#6132) [feature/9.x] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0a3e0ffe79e..fd3c3edc31c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore f26b79eb34d13648bedc5ec98e2151f8c55db978 - + https://github.com/dotnet/diagnostics - 2be99ebb06f50c2a57ff91e63765e2c29db1b76b + aad90b9b830f8694c12ec26ff6ee84fed373d907 - + https://github.com/dotnet/diagnostics - 2be99ebb06f50c2a57ff91e63765e2c29db1b76b + aad90b9b830f8694c12ec26ff6ee84fed373d907 https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index e68babdec97..c2479ee3741 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24126.1 - 8.0.0-preview.24126.1 + 8.0.0-preview.24127.1 + 8.0.0-preview.24127.1 9.0.100-preview.2.24122.4 From 4ce961e78b9a04f597cedf80046d6a754b3b20f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 18:36:56 +0000 Subject: [PATCH 101/131] [main] Bump the identity-dependencies group (#6135) Bumps the identity-dependencies group in /eng/dependabot/independent with 1 update: [Microsoft.Identity.Web](https://github.com/AzureAD/microsoft-identity-web). Updates `Microsoft.Identity.Web` from 2.17.0 to 2.17.1 - [Release notes](https://github.com/AzureAD/microsoft-identity-web/releases) - [Changelog](https://github.com/AzureAD/microsoft-identity-web/blob/master/changelog.md) - [Commits](https://github.com/AzureAD/microsoft-identity-web/compare/2.17.0...2.17.1) --- updated-dependencies: - dependency-name: Microsoft.Identity.Web dependency-type: direct:production update-type: version-update:semver-patch dependency-group: identity-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- eng/dependabot/independent/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/dependabot/independent/Versions.props b/eng/dependabot/independent/Versions.props index 944b72c0376..39b033bb021 100644 --- a/eng/dependabot/independent/Versions.props +++ b/eng/dependabot/independent/Versions.props @@ -5,7 +5,7 @@ 1.10.4 12.19.1 12.17.1 - 2.17.0 + 2.17.1 1.6.13 4.3.2 5.0.0 From 034a8e1636a861e2e4b3651e81358000963112b9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 10:41:46 -0800 Subject: [PATCH 102/131] [feature/9.x] Update dependencies from dotnet/installer (#6111) * Update dependencies from https://github.com/dotnet/installer build 20240223.6 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24122.4 -> To Version 9.0.100-preview.3.24123.6 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24120.6 -> To Version 9.0.0-preview.2.24121.1 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240223.6 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24122.4 -> To Version 9.0.100-preview.3.24123.6 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24120.6 -> To Version 9.0.0-preview.2.24121.1 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240226.2 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24122.4 -> To Version 9.0.100-preview.3.24126.2 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24120.6 -> To Version 9.0.0-preview.2.24121.1 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240227.3 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24122.4 -> To Version 9.0.100-preview.3.24127.3 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24120.6 -> To Version 9.0.0-preview.2.24121.1 (parent: Microsoft.Dotnet.Sdk.Internal * Update dependencies from https://github.com/dotnet/installer build 20240227.13 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.2.24122.4 -> To Version 9.0.100-preview.3.24127.13 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24120.6 -> To Version 9.0.0-preview.2.24121.1 (parent: Microsoft.Dotnet.Sdk.Internal --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fd3c3edc31c..d82585b3ad2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/aspnetcore - f26b79eb34d13648bedc5ec98e2151f8c55db978 + cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba https://github.com/dotnet/diagnostics @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade d9930e5e9a0069e5b7726c119f614486b8ef438f - + https://github.com/dotnet/installer - ed324e09c77034992ce5af746f37d99dd69580f6 + 29abe93c1a0b1feaac240c844df54aeb580e90f1 https://github.com/dotnet/arcade @@ -50,17 +50,17 @@ https://github.com/dotnet/symstore 96a152a28e86ecc5c68ec9a73e02bb1e93163338 - + https://github.com/dotnet/runtime - 1b1d26ac74e374309fb101382026ba0480d3821d + 99b76018b6e4edc4ce185dd5f3c5697c6941d88e - + https://github.com/dotnet/aspnetcore - f26b79eb34d13648bedc5ec98e2151f8c55db978 + cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba - + https://github.com/dotnet/runtime - 1b1d26ac74e374309fb101382026ba0480d3821d + 99b76018b6e4edc4ce185dd5f3c5697c6941d88e diff --git a/eng/Versions.props b/eng/Versions.props index c2479ee3741..9ffa36b5759 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,20 +57,20 @@ 9.0.0-beta.24127.2 9.0.0-beta.24127.2 - 9.0.0-preview.2.24120.6 - 9.0.0-preview.2.24120.6 + 9.0.0-preview.2.24121.1 + 9.0.0-preview.2.24121.1 2.0.0-beta4.24126.1 8.0.0-preview.24127.1 8.0.0-preview.24127.1 - 9.0.100-preview.2.24122.4 + 9.0.100-preview.3.24127.13 9.0.0-preview.24121.1 - 9.0.0-preview.2.24120.11 - 9.0.0-preview.2.24120.11 + 9.0.0-preview.2.24123.1 + 9.0.0-preview.2.24123.1 1.0.511901 From b673b6968c041330619be6fd442946eb91bdc9d1 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:12:20 -0800 Subject: [PATCH 103/131] Have automated merge commits respect branch-specific files (#6130) --- .gitattributes | 11 +++++++++++ .github/workflows/sync-branches.yml | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitattributes b/.gitattributes index e53d317832e..e2a58888b27 100644 --- a/.gitattributes +++ b/.gitattributes @@ -47,3 +47,14 @@ ############################################################################### *.png binary *.snk binary + +############################################################################### +# Define branch specific files by overriding the merge driver +# Must be kept in sync with .github\workflows\sync-branches.yml +############################################################################### +global.json merge=ours +eng/branch-vscode-config merge=ours +eng/common merge=ours +eng/Common.props merge=ours +eng/Versions.props merge=ours +eng/Version.Details.xml merge=ours diff --git a/.github/workflows/sync-branches.yml b/.github/workflows/sync-branches.yml index e2e957afc37..428a43c4ebc 100644 --- a/.github/workflows/sync-branches.yml +++ b/.github/workflows/sync-branches.yml @@ -74,9 +74,11 @@ jobs: run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" - + # Activate the ours merge driver to respect any branch specific files + git config merge.ours.driver true git merge "$base_branch" --strategy=ort --strategy-option=theirs + # Must be kept in sync with .gitattributes git checkout "origin/${{ matrix.branch }}" -- \ "global.json" \ "eng/branch-vscode-config" \ @@ -90,7 +92,7 @@ jobs: with: files_to_commit: "*" title: '[${{ matrix.branch }}] Sync branch with ${{ env.base_branch }}' - commit_message: Resolve merge conflicts + commit_message: Restore branch-specific files body: Sync branch with ${{ env.base_branch }}. This PR was auto generated and will not be automatically merged in. branch_name: sync/${{ matrix.branch }} fail_if_files_unchanged: false From 4e50245c7d74b01b21e95136e8caa4868894641f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:15:44 -0800 Subject: [PATCH 104/131] [feature/9.x] Update dependencies from dotnet/roslyn-analyzers (#6103) * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240222.2 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24121.1 -> To Version 9.0.0-preview.24122.2 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240222.2 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24121.1 -> To Version 9.0.0-preview.24122.2 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240222.2 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24121.1 -> To Version 9.0.0-preview.24122.2 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240222.2 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24121.1 -> To Version 9.0.0-preview.24122.2 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240226.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24121.1 -> To Version 9.0.0-preview.24126.1 * Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240227.1 Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24121.1 -> To Version 9.0.0-preview.24127.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d82585b3ad2..e3f1aba297d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -18,9 +18,9 @@ - + https://github.com/dotnet/roslyn-analyzers - 4195460a822168a75aa3d31b4a8d0fa88c42855c + 6fcb27ca8d798611cc5acabd1a40a483def32d93 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 9ffa36b5759..e38a6710d0a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -67,7 +67,7 @@ 9.0.100-preview.3.24127.13 - 9.0.0-preview.24121.1 + 9.0.0-preview.24127.1 9.0.0-preview.2.24123.1 9.0.0-preview.2.24123.1 From 5f8036619f240191552c7866a11a9ee4ee4b729a Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:28:48 -0800 Subject: [PATCH 105/131] [Parameter Capturing] Add capture limit option (#6060) --- documentation/api/definitions.md | 1 + documentation/api/parameters.md | 3 +- documentation/openapi.json | 7 + .../FunctionProbes/FunctionProbesStub.cs | 2 +- .../FunctionProbes/IFunctionProbes.cs | 7 +- .../FunctionProbes/LogEmittingProbes.cs | 10 +- .../Pipeline/CaptureLimitPolicyProbes.cs | 49 +++++++ .../Pipeline/ParameterCapturingPipeline.cs | 10 +- .../Models/CaptureParametersConfiguration.cs | 4 + .../Pipeline/CaptureLimitPolicyProbesTests.cs | 135 ++++++++++++++++++ .../ParameterCapturingPipelineTests.cs | 89 +++++++++--- .../Pipeline/TestFunctionProbes.cs | 35 +++++ .../FunctionProbes/PerFunctionProbeProxy.cs | 6 +- 13 files changed, 331 insertions(+), 27 deletions(-) create mode 100644 src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/CaptureLimitPolicyProbes.cs create mode 100644 src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/CaptureLimitPolicyProbesTests.cs create mode 100644 src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/TestFunctionProbes.cs diff --git a/documentation/api/definitions.md b/documentation/api/definitions.md index a2365f758d1..822812def9f 100644 --- a/documentation/api/definitions.md +++ b/documentation/api/definitions.md @@ -97,6 +97,7 @@ Object describing the list of methods to capture parameters for. |---|---|---| | `methods` | [MethodDescription](#methoddescription)[] | Array of methods to capture parameters for. | | `useDebuggerDisplayAttribute` | bool | Determines if parameters should be formatted using their [`DebuggerDisplayAttribute`](https://learn.microsoft.com/dotnet/api/system.diagnostics.debuggerdisplayattribute) if available and supported. Expressions in attributes may consist of properties, fields, methods without parameters, or any combination of these. | +| `captureLimit` | int | The number of times to capture parameters before stopping. If the specified duration elapses the operation will stop even if the capture limit is not yet reached. Note that parameters may continue to be captured for a short amount of time after this limit is reached. | ## DotnetMonitorInfo diff --git a/documentation/api/parameters.md b/documentation/api/parameters.md index ed580d79f82..938eda5a08b 100644 --- a/documentation/api/parameters.md +++ b/documentation/api/parameters.md @@ -115,7 +115,8 @@ Authorization: Bearer fffffffffffffffffffffffffffffffffffffffffff= "typeName": "System.String", "methodName": "Concat" } - ] + ], + "captureLimit": 2 } ``` diff --git a/documentation/openapi.json b/documentation/openapi.json index a58ee4ca9ff..ec77348cc84 100644 --- a/documentation/openapi.json +++ b/documentation/openapi.json @@ -1617,6 +1617,13 @@ }, "useDebuggerDisplayAttribute": { "type": "boolean" + }, + "captureLimit": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32", + "nullable": true } }, "additionalProperties": false diff --git a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/FunctionProbesStub.cs b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/FunctionProbesStub.cs index e11f953a567..6d2cb53b482 100644 --- a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/FunctionProbesStub.cs +++ b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/FunctionProbesStub.cs @@ -31,7 +31,7 @@ public static void EnterProbeStub(ulong uniquifier, object[] args) try { s_inProbe = true; - probes.EnterProbe(uniquifier, args); + _ = probes.EnterProbe(uniquifier, args); } finally { diff --git a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/IFunctionProbes.cs b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/IFunctionProbes.cs index 1ddd0a93b48..b33985f23e9 100644 --- a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/IFunctionProbes.cs +++ b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/IFunctionProbes.cs @@ -11,6 +11,11 @@ internal interface IFunctionProbes { public void CacheMethods(IList methods); - public void EnterProbe(ulong uniquifier, object[] args); + /// + /// + /// The uniquifier which identifies the method calling the probe. + /// The arguments passed into the method. + /// True if the the arguments were captured by the probe. + public bool EnterProbe(ulong uniquifier, object[] args); } } diff --git a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/LogEmittingProbes.cs b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/LogEmittingProbes.cs index 52cb68626ba..8a3682925ce 100644 --- a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/LogEmittingProbes.cs +++ b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/FunctionProbes/LogEmittingProbes.cs @@ -27,7 +27,7 @@ public void CacheMethods(IList methods) } } - public void EnterProbe(ulong uniquifier, object[] args) + public bool EnterProbe(ulong uniquifier, object[] args) { // We allow the instrumentation of system types, but these types can also be part of an ILogger implementation. // In addition, certain loggers don't log directly, but into a background thread. @@ -42,7 +42,7 @@ public void EnterProbe(ulong uniquifier, object[] args) if (!_logger.ShouldLog()) { - return; + return false; } FunctionProbesState? state = FunctionProbesStub.State; @@ -51,12 +51,12 @@ public void EnterProbe(ulong uniquifier, object[] args) !state.InstrumentedMethods.TryGetValue(uniquifier, out InstrumentedMethod? instrumentedMethod) || args.Length != instrumentedMethod?.SupportedParameters.Length) { - return; + return false; } if (instrumentedMethod.CaptureMode == ParameterCaptureMode.Disallowed) { - return; + return false; } string[] argValues; @@ -87,6 +87,8 @@ public void EnterProbe(ulong uniquifier, object[] args) } _logger.Log(instrumentedMethod.CaptureMode, instrumentedMethod.MethodTemplateString, argValues); + + return true; } } } diff --git a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/CaptureLimitPolicyProbes.cs b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/CaptureLimitPolicyProbes.cs new file mode 100644 index 00000000000..ea9815e121f --- /dev/null +++ b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/CaptureLimitPolicyProbes.cs @@ -0,0 +1,49 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Diagnostics.Monitoring.HostingStartup.ParameterCapturing.FunctionProbes; +using System.Collections.Generic; +using System.Reflection; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Diagnostics.Monitoring.HostingStartup.ParameterCapturing.Pipeline +{ + internal sealed class CaptureLimitPolicyProbes : IFunctionProbes + { + private readonly IFunctionProbes _probes; + private readonly int _captureLimit; + private readonly TaskCompletionSource _stopRequest; + + private int _captureCount; + private bool _stopped; + + public CaptureLimitPolicyProbes(IFunctionProbes probes, int captureLimit, TaskCompletionSource stopRequest) + { + _probes = probes; + _captureLimit = captureLimit; + _stopRequest = stopRequest; + } + + public void CacheMethods(IList methods) => _probes.CacheMethods(methods); + + public bool EnterProbe(ulong uniquifier, object[] args) + { + // In addition to the stop request, use a flag to more quickly react to the limit being reached, + // limiting the amount of extra data being captured which is important in the case of hot paths. + if (_stopped) + { + return false; + } + + bool didCapture = _probes.EnterProbe(uniquifier, args); + if (didCapture && Interlocked.Increment(ref _captureCount) == _captureLimit) + { + _stopped = true; + _ = _stopRequest.TrySetResult(); + } + + return didCapture; + } + } +} diff --git a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/ParameterCapturingPipeline.cs b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/ParameterCapturingPipeline.cs index 9f5e27dfdbe..d2df9465d73 100644 --- a/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/ParameterCapturingPipeline.cs +++ b/src/Microsoft.Diagnostics.Monitoring.HostingStartup/ParameterCapturing/Pipeline/ParameterCapturingPipeline.cs @@ -22,8 +22,11 @@ private sealed class CapturingRequest public CapturingRequest(StartCapturingParametersPayload payload, IFunctionProbes probes) { Payload = payload; - Probes = probes; StopRequest = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + Probes = payload.Configuration.CaptureLimit.HasValue + ? new CaptureLimitPolicyProbes(probes, payload.Configuration.CaptureLimit.Value, StopRequest) + : probes; } public StartCapturingParametersPayload Payload { get; } @@ -169,6 +172,11 @@ public void SubmitRequest(StartCapturingParametersPayload payload, IFunctionProb throw new ArgumentException(nameof(payload.Configuration.Methods)); } + if (payload.Configuration.CaptureLimit.HasValue && payload.Configuration.CaptureLimit.Value <= 0) + { + throw new ArgumentException(nameof(payload.Configuration.CaptureLimit)); + } + List _deniedMethodDescriptions = new(); foreach (MethodDescription methodDescription in payload.Configuration.Methods) { diff --git a/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/CaptureParametersConfiguration.cs b/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/CaptureParametersConfiguration.cs index 4e4410cfe2b..e967a080b30 100644 --- a/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/CaptureParametersConfiguration.cs +++ b/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/CaptureParametersConfiguration.cs @@ -19,5 +19,9 @@ public class CaptureParametersConfiguration [JsonPropertyName("useDebuggerDisplayAttribute")] public bool UseDebuggerDisplayAttribute { get; set; } = true; + + [JsonPropertyName("captureLimit")] + [Range(1, int.MaxValue)] + public int? CaptureLimit { get; set; } } } diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/CaptureLimitPolicyProbesTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/CaptureLimitPolicyProbesTests.cs new file mode 100644 index 00000000000..1e196a890f3 --- /dev/null +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/CaptureLimitPolicyProbesTests.cs @@ -0,0 +1,135 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Diagnostics.Monitoring.HostingStartup.ParameterCapturing.Pipeline; +using Microsoft.Diagnostics.Monitoring.TestCommon; +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Threading; +using System.Threading.Tasks; +using Xunit; + +namespace Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests.ParameterCapturing.Pipeline +{ + [TargetFrameworkMonikerTrait(TargetFrameworkMonikerExtensions.CurrentTargetFrameworkMoniker)] + public class CaptureLimitPolicyProbesTests + { + [Fact] + public void EnterProbe_RequestStop_OnLimitReached() + { + // Arrange + TaskCompletionSource requestStop = new(); + CaptureLimitPolicyProbes probes = new(new TestFunctionProbes(), captureLimit: 1, requestStop); + + // Act + probes.EnterProbe(1, []); + + // Assert + Assert.True(requestStop.Task.IsCompleted); + } + + [Fact] + public void EnterProbe_DoesNotRequestStop_WhenLimitNotReached() + { + // Arrange + TaskCompletionSource requestStop = new(); + CaptureLimitPolicyProbes probes = new(new TestFunctionProbes(), captureLimit: 2, requestStop); + + // Act + probes.EnterProbe(1, []); + + // Assert + Assert.False(requestStop.Task.IsCompleted); + } + + [Fact] + public void EnterProbe_DoesNotRequestStop_WhenProbeDoesNotCapture() + { + // Arrange + TestFunctionProbes testProbes = new(onEnterProbe: (_, _) => + { + return false; + }); + + TaskCompletionSource requestStop = new(); + CaptureLimitPolicyProbes probes = new(testProbes, captureLimit: 1, requestStop); + + // Act + probes.EnterProbe(1, []); + + // Assert + Assert.False(requestStop.Task.IsCompleted); + } + + [Fact] + public void EnterProbe_ShortCircuits_WhenLimitReached() + { + // Arrange + int invokeCount = 0; + TestFunctionProbes testProbes = new(onEnterProbe: (_, _) => + { + Interlocked.Increment(ref invokeCount); + return true; + }); + + TaskCompletionSource requestStop = new(); + CaptureLimitPolicyProbes probes = new(testProbes, captureLimit: 1, requestStop); + + // Act + probes.EnterProbe(1, []); + probes.EnterProbe(2, []); + + // Assert + Assert.Equal(1, invokeCount); + } + + [Fact] + public void CacheMethods_PassesThrough() + { + // Arrange + List expectedMethods = [(MethodInfo)MethodBase.GetCurrentMethod()]; + IList actualMethods = null; + + TaskCompletionSource requestStop = new(); + CaptureLimitPolicyProbes probes = new(new TestFunctionProbes( + onCacheMethods: (methods) => + { + actualMethods = methods; + }), captureLimit: 1, requestStop); + + // Act + probes.CacheMethods(expectedMethods); + + // Assert + Assert.Equal(expectedMethods, actualMethods); + } + + [Fact] + public void EnterProbe_PassesThrough() + { + // Arrange + const ulong expectedUniquifier = 15; + object[] expectedArgs = [new Uri("https://www.example.com"), 10]; + + ulong? actualUniquifier = null; + object[] actualArgs = null; + + TaskCompletionSource requestStop = new(); + CaptureLimitPolicyProbes probes = new(new TestFunctionProbes( + onEnterProbe: (uniquifier, args) => + { + actualUniquifier = uniquifier; + actualArgs = args; + return true; + }), captureLimit: 1, requestStop); + + // Act + probes.EnterProbe(expectedUniquifier, expectedArgs); + + // Assert + Assert.Equal(expectedUniquifier, actualUniquifier); + Assert.Equal(expectedArgs, actualArgs); + } + } +} diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/ParameterCapturingPipelineTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/ParameterCapturingPipelineTests.cs index d06d57833fe..b703a9b8641 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/ParameterCapturingPipelineTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/ParameterCapturingPipelineTests.cs @@ -19,25 +19,14 @@ namespace Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests.ParameterCapturing.Pipeline { - internal sealed class TestFunctionProbes : IFunctionProbes - { - public void CacheMethods(IList methods) - { - } - - public void EnterProbe(ulong uniquifier, object[] args) - { - } - } - internal sealed class TestFunctionProbesManager : IFunctionProbesManager { - private readonly Action> _onStart; + private readonly Action, IFunctionProbes> _onStart; private readonly Action _onStop; public event EventHandler OnProbeFault; - public TestFunctionProbesManager(Action> onStart = null, Action onStop = null) + public TestFunctionProbesManager(Action, IFunctionProbes> onStart = null, Action onStop = null) { _onStart = onStart; _onStop = onStop; @@ -51,7 +40,7 @@ public void TriggerFault(MethodInfo method) public Task StartCapturingAsync(IList methods, IFunctionProbes probes, CancellationToken token) { - _onStart?.Invoke(methods); + _onStart?.Invoke(methods, probes); return Task.CompletedTask; } @@ -164,7 +153,7 @@ public async Task Request_DoesInstallAndNotify() TestFunctionProbes probes = new(); TestFunctionProbesManager probeManager = new( - onStart: (_) => + onStart: (_, _) => { probeManagerStartSource.TrySetResult(); }); @@ -207,6 +196,20 @@ public void Request_DoesRejectDenyListMatch() Assert.Throws(() => pipeline.SubmitRequest(payload, probes)); } + [Theory] + [InlineData(0)] + [InlineData(-1)] + public void Request_InvalidCaptureLimit_Throws(int captureLimit) + { + // Arrange + ParameterCapturingPipeline pipeline = new(new TestFunctionProbesManager(), new TestParameterCapturingCallbacks(), new TestMethodDescriptionValidator()); + TestFunctionProbes probes = new(); + StartCapturingParametersPayload payload = CreateStartCapturingPayload(Timeout.InfiniteTimeSpan, captureLimit: captureLimit); + + // Act & Assert + Assert.Throws(() => pipeline.SubmitRequest(payload, probes)); + } + [Fact] public async Task UnresolvableMethod_DoesNotify() { @@ -341,6 +344,57 @@ public async Task Request_StopsAfterDuration() Assert.Equal(payload.RequestId, stoppedRequest); } + [Theory] + [InlineData(1)] + [InlineData(2)] + [InlineData(10)] + public async Task Request_StopsAfterCaptureLimit(int captureLimit) + { + // Arrange + using CancellationTokenSource cts = new(); + cts.CancelAfter(CommonTestTimeouts.GeneralTimeout); + + TaskCompletionSource onStopCallbackSource = new(TaskCreationOptions.RunContinuationsAsynchronously); + TaskCompletionSource onStartCallbackSource = new(TaskCreationOptions.RunContinuationsAsynchronously); + + using IDisposable registration = cts.Token.Register(() => + { + _ = onStartCallbackSource.TrySetCanceled(cts.Token); + _ = onStopCallbackSource.TrySetCanceled(cts.Token); + }); + + TestFunctionProbes probes = new(); + TestFunctionProbesManager probeManager = new( + onStart: (_, probes) => + { + onStartCallbackSource.TrySetResult(probes); + }); + + TestParameterCapturingCallbacks callbacks = new( + onCapturingStop: (requestId) => + { + onStopCallbackSource.TrySetResult(requestId); + }); + + ParameterCapturingPipeline pipeline = new(probeManager, callbacks, new TestMethodDescriptionValidator()); + StartCapturingParametersPayload payload = CreateStartCapturingPayload(Timeout.InfiniteTimeSpan, captureLimit: captureLimit); + + Task pipelineTask = pipeline.RunAsync(cts.Token); + pipeline.SubmitRequest(payload, probes); + IFunctionProbes pipelineProbes = await onStartCallbackSource.Task; + + // Act + for (int i = 0; i < captureLimit; i++) + { + pipelineProbes.EnterProbe((ulong)i, []); + } + + + // Assert + Guid stoppedRequest = await onStopCallbackSource.Task; + Assert.Equal(payload.RequestId, stoppedRequest); + } + [Fact] public async Task ProbeFault_DoesNotify() { @@ -417,7 +471,7 @@ public async Task RunAsync_ThrowsOnCapturingStopFailure() Assert.Equal(ex, thrownException); } - private StartCapturingParametersPayload CreateStartCapturingPayload(TimeSpan duration) + private StartCapturingParametersPayload CreateStartCapturingPayload(TimeSpan duration, int? captureLimit = null) { string moduleName = typeof(ParameterCapturingPipelineTests).Module.Name; Assert.NotNull(moduleName); @@ -439,7 +493,8 @@ private StartCapturingParametersPayload CreateStartCapturingPayload(TimeSpan dur TypeName = typeName, MethodName = nameof(CreateStartCapturingPayload) } - } + }, + CaptureLimit = captureLimit } }; } diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/TestFunctionProbes.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/TestFunctionProbes.cs new file mode 100644 index 00000000000..664e6a84473 --- /dev/null +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests/ParameterCapturing/Pipeline/TestFunctionProbes.cs @@ -0,0 +1,35 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Microsoft.Diagnostics.Monitoring.HostingStartup.ParameterCapturing.FunctionProbes; +using System; +using System.Collections.Generic; +using System.Reflection; + +namespace Microsoft.Diagnostics.Monitoring.HostingStartup.UnitTests.ParameterCapturing.Pipeline +{ + internal sealed class TestFunctionProbes : IFunctionProbes + { + private readonly Func _onEnterProbe; + private readonly Action> _onCacheMethods; + + public TestFunctionProbes(Func onEnterProbe = null, Action> onCacheMethods = null) + { + _onEnterProbe = onEnterProbe; + _onCacheMethods = onCacheMethods; + } + + + public void CacheMethods(IList methods) + { + _onCacheMethods?.Invoke(methods); + } + + public bool EnterProbe(ulong uniquifier, object[] args) + { + return _onEnterProbe != null + ? _onEnterProbe(uniquifier, args) + : true; + } + } +} diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/FunctionProbes/PerFunctionProbeProxy.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/FunctionProbes/PerFunctionProbeProxy.cs index cbf1c108457..64fd7b69f5e 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/FunctionProbes/PerFunctionProbeProxy.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/FunctionProbes/PerFunctionProbeProxy.cs @@ -83,14 +83,16 @@ public bool TryGetProbeAssertException(MethodInfo method, out XunitException exc return exception != null; } - public void EnterProbe(ulong uniquifier, object[] args) + public bool EnterProbe(ulong uniquifier, object[] args) { if (!_perFunctionProbes.TryGetValue(uniquifier, out PerFunctionProbeWrapper probe)) { - return; + return false; } probe.Invoke(args); + + return true; } public void CacheMethods(IList methods) From 873e71bba9b16bff70a4c045ebbb4feee3db2abf Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:37:34 -0800 Subject: [PATCH 106/131] Update .gitattributes (#6136) --- .gitattributes | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitattributes b/.gitattributes index e53d317832e..e2a58888b27 100644 --- a/.gitattributes +++ b/.gitattributes @@ -47,3 +47,14 @@ ############################################################################### *.png binary *.snk binary + +############################################################################### +# Define branch specific files by overriding the merge driver +# Must be kept in sync with .github\workflows\sync-branches.yml +############################################################################### +global.json merge=ours +eng/branch-vscode-config merge=ours +eng/common merge=ours +eng/Common.props merge=ours +eng/Versions.props merge=ours +eng/Version.Details.xml merge=ours From 8eff27419c43666570b7377c23cd95a54fd68256 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:17:36 -0800 Subject: [PATCH 107/131] Increase helix test timeouts by 10 minutes (#6137) --- src/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 69e366ef90e..2187f9c914f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -15,7 +15,7 @@ osx-arm64;osx-x64 $(SignOnlyRuntimeIdentifiers);$(SignAndNotarizeRuntimeIdentifiers) false - 15 + 25 From 1ff3650aef832a3d32b25e539b020080594c501b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 00:22:00 +0000 Subject: [PATCH 108/131] Restore branch-specific files --- eng/common/templates/steps/generate-sbom.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/common/templates/steps/generate-sbom.yml b/eng/common/templates/steps/generate-sbom.yml index 2b21eae4273..a06373f38fa 100644 --- a/eng/common/templates/steps/generate-sbom.yml +++ b/eng/common/templates/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 8.0.0 + PackageVersion: 7.0.0 BuildDropPath: '$(Build.SourcesDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom From b30e457aba53766e6b104b5a43190f072b167711 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:27:55 -0800 Subject: [PATCH 109/131] Backport #6071 --- eng/Versions.props | 5 ----- 1 file changed, 5 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index e38a6710d0a..26f8b31e39f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,11 +1,6 @@ - - - - - https://github.com/dotnet/dotnet-monitor 9.0.0 From 9621dde76b7e808f9bffdb6a942f508b9729dc4d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 17:28:47 +0000 Subject: [PATCH 110/131] [feature/9.x] Update dependencies from dotnet/arcade (#6133) [feature/9.x] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 6 +++--- eng/common/tools.ps1 | 2 ++ eng/common/tools.sh | 4 ++-- global.json | 4 ++-- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e3f1aba297d..70801db8095 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers 6fcb27ca8d798611cc5acabd1a40a483def32d93 - + https://github.com/dotnet/arcade - d9930e5e9a0069e5b7726c119f614486b8ef438f + 7582b5deefe451b6453a7693197df02ef1558d4b - + https://github.com/dotnet/arcade - d9930e5e9a0069e5b7726c119f614486b8ef438f + 7582b5deefe451b6453a7693197df02ef1558d4b - + https://github.com/dotnet/arcade - d9930e5e9a0069e5b7726c119f614486b8ef438f + 7582b5deefe451b6453a7693197df02ef1558d4b - + https://github.com/dotnet/arcade - d9930e5e9a0069e5b7726c119f614486b8ef438f + 7582b5deefe451b6453a7693197df02ef1558d4b https://github.com/dotnet/installer 29abe93c1a0b1feaac240c844df54aeb580e90f1 - + https://github.com/dotnet/arcade - d9930e5e9a0069e5b7726c119f614486b8ef438f + 7582b5deefe451b6453a7693197df02ef1558d4b https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 26f8b31e39f..fc0f98aa126 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,9 +48,9 @@ --> - 9.0.0-beta.24127.2 - 9.0.0-beta.24127.2 - 9.0.0-beta.24127.2 + 9.0.0-beta.24128.1 + 9.0.0-beta.24128.1 + 9.0.0-beta.24128.1 9.0.0-preview.2.24121.1 9.0.0-preview.2.24121.1 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 269fdb9420d..9bf873e3c25 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -68,6 +68,8 @@ $ErrorActionPreference = 'Stop' # True if the build is a product build [bool]$productBuild = if (Test-Path variable:productBuild) { $productBuild } else { $false } +[String[]]$properties = if (Test-Path variable:properties) { $properties } else { @() } + function Create-Directory ([string[]] $path) { New-Item -Path $path -Force -ItemType 'Directory' | Out-Null } diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 803907795c1..db64e298ff6 100644 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -144,7 +144,7 @@ function InitializeDotNetCli { if [[ $global_json_has_runtimes == false && -n "${DOTNET_INSTALL_DIR:-}" && -d "$DOTNET_INSTALL_DIR/sdk/$dotnet_sdk_version" ]]; then dotnet_root="$DOTNET_INSTALL_DIR" else - dotnet_root="$repo_root/.dotnet" + dotnet_root="${repo_root}.dotnet" export DOTNET_INSTALL_DIR="$dotnet_root" @@ -507,7 +507,7 @@ function MSBuild-Core { # When running on Azure Pipelines, override the returned exit code to avoid double logging. # Skip this when the build is a child of the VMR orchestrator build. - if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$product_build" != true && $properties != *"DotNetBuildRepo=true"* ]]; then + if [[ "$ci" == true && -n ${SYSTEM_TEAMPROJECT:-} && "$product_build" != true && "$properties" != *"DotNetBuildRepo=true"* ]]; then Write-PipelineSetResult -result "Failed" -message "msbuild execution failed." # Exiting with an exit code causes the azure pipelines task to log yet another "noise" error # The above Write-PipelineSetResult will cause the task to be marked as failure without adding yet another error diff --git a/global.json b/global.json index b5f98cea6fe..244b590d679 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24127.2", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24127.2" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24128.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24128.1" } } From e1b5a0eb78191f171126ea9c22a6c0b5f703e4ab Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 09:29:14 -0800 Subject: [PATCH 111/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240228.1 (#6142) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24127.1 -> To Version 8.0.0-preview.24128.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 645a3e406a2..beaf20bda09 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - aad90b9b830f8694c12ec26ff6ee84fed373d907 + 7093eeb5c6e75fe55c73333b2efebe0154099d2b - + https://github.com/dotnet/diagnostics - aad90b9b830f8694c12ec26ff6ee84fed373d907 + 7093eeb5c6e75fe55c73333b2efebe0154099d2b https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index f6b208f7a34..84917b05ed2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24127.1 - 8.0.0-preview.24127.1 + 8.0.0-preview.24128.1 + 8.0.0-preview.24128.1 8.0.103-servicing.24114.15 From deb530193b6ab536dabceaa0b4874ea773a66a87 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 09:29:23 -0800 Subject: [PATCH 112/131] Update dependencies from https://github.com/dotnet/installer build 20240229.4 (#6144) Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.3.24127.13 -> To Version 9.0.100-preview.3.24129.4 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,Microsoft.NETCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0,VS.Redist.Common.NetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.2.24121.1 -> To Version 9.0.0-preview.3.24128.1 (parent: Microsoft.Dotnet.Sdk.Internal Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 70801db8095..a3eb0aba235 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/aspnetcore - cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba + 099bc84939fec64e803ec173dac6aa8ceb46a8cc https://github.com/dotnet/diagnostics @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade 7582b5deefe451b6453a7693197df02ef1558d4b - + https://github.com/dotnet/installer - 29abe93c1a0b1feaac240c844df54aeb580e90f1 + 3d92d994e433a20b60a918620ce03672bafd8bca https://github.com/dotnet/arcade @@ -50,17 +50,17 @@ https://github.com/dotnet/symstore 96a152a28e86ecc5c68ec9a73e02bb1e93163338 - + https://github.com/dotnet/runtime - 99b76018b6e4edc4ce185dd5f3c5697c6941d88e + f632b55cfe2a8cfa9e1a0867c6fda761646e3601 - + https://github.com/dotnet/aspnetcore - cc5bc6b56dc0a6e6f1ca103acff5afd9c71973ba + 099bc84939fec64e803ec173dac6aa8ceb46a8cc - + https://github.com/dotnet/runtime - 99b76018b6e4edc4ce185dd5f3c5697c6941d88e + f632b55cfe2a8cfa9e1a0867c6fda761646e3601 diff --git a/eng/Versions.props b/eng/Versions.props index fc0f98aa126..297f6fba0c4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -52,20 +52,20 @@ 9.0.0-beta.24128.1 9.0.0-beta.24128.1 - 9.0.0-preview.2.24121.1 - 9.0.0-preview.2.24121.1 + 9.0.0-preview.3.24128.1 + 9.0.0-preview.3.24128.1 2.0.0-beta4.24126.1 8.0.0-preview.24127.1 8.0.0-preview.24127.1 - 9.0.100-preview.3.24127.13 + 9.0.100-preview.3.24129.4 9.0.0-preview.24127.1 - 9.0.0-preview.2.24123.1 - 9.0.0-preview.2.24123.1 + 9.0.0-preview.3.24126.5 + 9.0.0-preview.3.24126.5 1.0.511901 From 963f5824e2e4cef8fb6a969a03abb7d26e7eec56 Mon Sep 17 00:00:00 2001 From: Justin Anderson Date: Thu, 29 Feb 2024 10:27:31 -0800 Subject: [PATCH 113/131] Ignore deleted files when check markdown feedback links (#6147) --- .github/workflows/add-markdown-feedback.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add-markdown-feedback.yml b/.github/workflows/add-markdown-feedback.yml index 5b91541212f..d533cd593ae 100644 --- a/.github/workflows/add-markdown-feedback.yml +++ b/.github/workflows/add-markdown-feedback.yml @@ -28,7 +28,7 @@ jobs: - name: Get changed files run: | - changed_source_files=$(git diff-tree --no-commit-id --name-only -r "$base_sha" "$GITHUB_SHA" -- documentation ':!documentation/releaseNotes/*' | { grep "**.md$" || test $? = 1; }) + changed_source_files=$(git diff-tree --no-commit-id --name-only --diff-filter=d -r "$base_sha" "$GITHUB_SHA" -- documentation ':!documentation/releaseNotes/*' | { grep "**.md$" || test $? = 1; }) echo "Files to validate: '${changed_source_files}'" changed_source_files=$(echo "$changed_source_files" | xargs | sed 's/ documentation/,documentation/g') echo "updated_files=$(echo ${changed_source_files})" >> $GITHUB_ENV From 30ccf90ef37a0802c0a50605f1515637f79719bf Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 29 Feb 2024 18:43:44 +0000 Subject: [PATCH 114/131] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240228.1 (#6145) Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24127.1 -> To Version 9.0.0-preview.24128.1 Co-authored-by: dotnet-maestro[bot] Co-authored-by: Joe Schmitt --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a3eb0aba235..1d2273e7fcf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -18,9 +18,9 @@ - + https://github.com/dotnet/roslyn-analyzers - 6fcb27ca8d798611cc5acabd1a40a483def32d93 + 0e9cb2a3c38706574f2d02fd70ce1e66c7dd4c5f https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 297f6fba0c4..6123495ef81 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,7 +62,7 @@ 9.0.100-preview.3.24129.4 - 9.0.0-preview.24127.1 + 9.0.0-preview.24128.1 9.0.0-preview.3.24126.5 9.0.0-preview.3.24126.5 From 79b242543f4cf2361d802009ed91452b6a56958e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 09:26:27 -0800 Subject: [PATCH 115/131] Update dependencies from https://github.com/dotnet/roslyn-analyzers build 20240301.1 (#6153) Microsoft.CodeAnalysis.NetAnalyzers From Version 9.0.0-preview.24128.1 -> To Version 9.0.0-preview.24151.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1d2273e7fcf..8d73743f2b9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -18,9 +18,9 @@ - + https://github.com/dotnet/roslyn-analyzers - 0e9cb2a3c38706574f2d02fd70ce1e66c7dd4c5f + 59b2d9dc38fcc17dd618e3b3af3ce692aaeedb37 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 6123495ef81..71c820f81fe 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,7 +62,7 @@ 9.0.100-preview.3.24129.4 - 9.0.0-preview.24128.1 + 9.0.0-preview.24151.1 9.0.0-preview.3.24126.5 9.0.0-preview.3.24126.5 From 6a10a7ed7e6640077c31716e405023daea8d087c Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 09:27:56 -0800 Subject: [PATCH 116/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240229.1 (#6149) Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24128.1 -> To Version 8.0.0-preview.24129.1 Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index beaf20bda09..c9c02bf70fb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics - 7093eeb5c6e75fe55c73333b2efebe0154099d2b + 831eee3a9e69dd886fa190a9914a7f66260c653a - + https://github.com/dotnet/diagnostics - 7093eeb5c6e75fe55c73333b2efebe0154099d2b + 831eee3a9e69dd886fa190a9914a7f66260c653a https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index 84917b05ed2..d930214b972 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24128.1 - 8.0.0-preview.24128.1 + 8.0.0-preview.24129.1 + 8.0.0-preview.24129.1 8.0.103-servicing.24114.15 From 95778f1a62143ec3b0bf222d261e12e67f5f3202 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 09:37:40 -0800 Subject: [PATCH 117/131] Update Learning Paths (#6148) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .github/learning-path-sha.txt | 2 +- documentation/learningPath/aks.md | 2 +- documentation/learningPath/api.md | 10 ++-- documentation/learningPath/collectionrules.md | 30 +++++----- documentation/learningPath/configuration.md | 16 +++--- documentation/learningPath/egress.md | 22 ++++---- documentation/learningPath/testing.md | 56 +++++++++---------- 7 files changed, 69 insertions(+), 69 deletions(-) diff --git a/.github/learning-path-sha.txt b/.github/learning-path-sha.txt index 8a50ab94965..908276e089a 100644 --- a/.github/learning-path-sha.txt +++ b/.github/learning-path-sha.txt @@ -1 +1 @@ -341ff64a6097fe0bc66950e254e6160abcf77b84 +963f5824e2e4cef8fb6a969a03abb7d26e7eec56 \ No newline at end of file diff --git a/documentation/learningPath/aks.md b/documentation/learningPath/aks.md index 6990c075a32..918b2678207 100644 --- a/documentation/learningPath/aks.md +++ b/documentation/learningPath/aks.md @@ -9,7 +9,7 @@ In addition to its availability as a .NET CLI tool, the `dotnet monitor` tool is This workflow takes your local development copy of `dotnet-monitor`, patches it with a local development copy of the [.NET Core Diagnostics Repo](https://github.com/dotnet/diagnostics#net-core-diagnostics-repo), and makes it available as an image for you to consume in an ACR (Azure Container Registry). Note that there are many other ways to do this - this is meant to serve as a basic template that can be adapted to match your needs. -1. Open `pwsh` and run the [generate-dev-sln script](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/generate-dev-sln.ps1), providing a path to your local copy of the diagnostics repo. +1. Open `pwsh` and run the [generate-dev-sln script](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/generate-dev-sln.ps1), providing a path to your local copy of the diagnostics repo. > [!NOTE] > If your changes do not involve the [.NET Core Diagnostics Repo](https://github.com/dotnet/diagnostics#net-core-diagnostics-repo), you don't need to complete this step. diff --git a/documentation/learningPath/api.md b/documentation/learningPath/api.md index 333262d5f8f..c86a2731ce2 100644 --- a/documentation/learningPath/api.md +++ b/documentation/learningPath/api.md @@ -7,15 +7,15 @@ dotnet-monitor exposes functionality through both [collection rules](./collectio ## Adding New APIs -The web API surface is defined by a series of controllers [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/). It's common for an API to expose functionality also available via [Actions](./collectionrules.md#actions) and so methods in these controllers are often wrappers around a shared implementation. Each controller may have one or more attributes that configure how and where it is exposed, you can learn more about the notable controller attributes [here](#notable-controller-attributes). +The web API surface is defined by a series of controllers [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/). It's common for an API to expose functionality also available via [Actions](./collectionrules.md#actions) and so methods in these controllers are often wrappers around a shared implementation. Each controller may have one or more attributes that configure how and where it is exposed, you can learn more about the notable controller attributes [here](#notable-controller-attributes). -If the new API needs to either accept or return structured data, a dedicated model should be used. Models are defined [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/). +If the new API needs to either accept or return structured data, a dedicated model should be used. Models are defined [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/Models/). When adding a new API, it's important to also update the [`openapi.json`](../openapi.json) spec which describes the API surface. There are CI tests that will ensure this file has been updated to reflect any API changes. Learn more about updating `openapi.json` [here](./testing.md#openapi-generation). ### Adding Tests -Web APIs in dotnet-monitor are typically tested using functional tests that leverage the [ApiClient](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs) to call a specific API. Learn more about how the functional tests are defined and operate [here](./testing.md#functional-tests). +Web APIs in dotnet-monitor are typically tested using functional tests that leverage the [ApiClient](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs) to call a specific API. Learn more about how the functional tests are defined and operate [here](./testing.md#functional-tests). ## Notable Controller Attributes @@ -35,6 +35,6 @@ dotnet-monitor supports multiple different [authentication modes](../authenticat ### Determining Authentication Mode -When dotnet-monitor starts, the command line arguments are first inspected to see if a specific authentication mode was set (such as `--no-auth`), referred to as the `StartupAuthenticationMode`, this is calculated [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L29). If no modes were explicitly set via a command line argument, dotnet-monitor will select `Deferred` as the `StartupAuthenticationMode`. This indicates that the user configuration should be looked at to determine the authentication mode later on in the startup process. +When dotnet-monitor starts, the command line arguments are first inspected to see if a specific authentication mode was set (such as `--no-auth`), referred to as the `StartupAuthenticationMode`, this is calculated [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L29). If no modes were explicitly set via a command line argument, dotnet-monitor will select `Deferred` as the `StartupAuthenticationMode`. This indicates that the user configuration should be looked at to determine the authentication mode later on in the startup process. -After determining the `StartupAuthenticationMode` mode, the relevant [IAuthenticationConfigurator](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Auth/IAuthenticationConfigurator.cs) is created by the [AuthConfiguratorFactory](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Auth/AuthConfiguratorFactory.cs). This factory also handles deciding what authentication mode to use when `StartupAuthenticationMode` is `Deferred`. The selected configurator is used to configure various parts of dotnet-monitor that are specific to authentication, such as protecting the web APIs, add authentication-mode specific logging, and configuring the built-in Swagger UI. +After determining the `StartupAuthenticationMode` mode, the relevant [IAuthenticationConfigurator](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Auth/IAuthenticationConfigurator.cs) is created by the [AuthConfiguratorFactory](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Auth/AuthConfiguratorFactory.cs). This factory also handles deciding what authentication mode to use when `StartupAuthenticationMode` is `Deferred`. The selected configurator is used to configure various parts of dotnet-monitor that are specific to authentication, such as protecting the web APIs, add authentication-mode specific logging, and configuring the built-in Swagger UI. diff --git a/documentation/learningPath/collectionrules.md b/documentation/learningPath/collectionrules.md index e1d33904df7..219b2b3c9c9 100644 --- a/documentation/learningPath/collectionrules.md +++ b/documentation/learningPath/collectionrules.md @@ -32,49 +32,49 @@ graph LR ### Key Areas Of The Code -* Collection rules are registered [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L140). When adding a new trigger or action, these types need to be added here to take effect. This section is also responsible for making sure options get configured and validated. -* Options for collection rules can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleOptions.cs). -* Rules are applied, removed, and restarted in response to configuration changes [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleService.cs). This is also responsible for generating a description of each collection rule's state for the `/collectionrules` API Endpoint. -* The pipeline responsible for the lifetime of a single executing collection rule can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L54). -* To run collection rules, `dotnet monitor` must be in `Listen` mode - this is set via [DiagnosticPortOptions](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options/DiagnosticPortOptions.cs). +* Collection rules are registered [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L140). When adding a new trigger or action, these types need to be added here to take effect. This section is also responsible for making sure options get configured and validated. +* Options for collection rules can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleOptions.cs). +* Rules are applied, removed, and restarted in response to configuration changes [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleService.cs). This is also responsible for generating a description of each collection rule's state for the `/collectionrules` API Endpoint. +* The pipeline responsible for the lifetime of a single executing collection rule can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L54). +* To run collection rules, `dotnet monitor` must be in `Listen` mode - this is set via [DiagnosticPortOptions](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Options/DiagnosticPortOptions.cs). * For each type of trigger, the [dotnet diagnostics repo](https://github.com/dotnet/diagnostics/blob/v6.0.351802/src/Microsoft.Diagnostics.Monitoring.EventPipe/Triggers/ITraceEventTrigger.cs#L29) is responsible for determining whether the triggering conditions have been satisfied. ### Triggers -A trigger will monitor for a specific condition in the target application and raise a notification when that condition has been observed. Options for triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleTriggerOptions.cs); the type of `Settings` is determined by which trigger is being used (possible trigger types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers)). The interface for all triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Triggers/ICollectionRuleTrigger.cs) - this allows `dotnet monitor` to start and stop triggers, regardless of the trigger's properties. The collection rule pipeline creates instances of triggers [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L99) before waiting for the trigger to [satisfy its conditions](https://github.com/dotnet/diagnostics/blob/v6.0.351802/src/Microsoft.Diagnostics.Monitoring.EventPipe/Triggers/Pipelines/TraceEventTriggerPipeline.cs#L107) - each trigger has its own set of criteria that determines when a trigger has been satisfied. +A trigger will monitor for a specific condition in the target application and raise a notification when that condition has been observed. Options for triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleTriggerOptions.cs); the type of `Settings` is determined by which trigger is being used (possible trigger types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers)). The interface for all triggers can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Triggers/ICollectionRuleTrigger.cs) - this allows `dotnet monitor` to start and stop triggers, regardless of the trigger's properties. The collection rule pipeline creates instances of triggers [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L99) before waiting for the trigger to [satisfy its conditions](https://github.com/dotnet/diagnostics/blob/v6.0.351802/src/Microsoft.Diagnostics.Monitoring.EventPipe/Triggers/Pipelines/TraceEventTriggerPipeline.cs#L107) - each trigger has its own set of criteria that determines when a trigger has been satisfied. ### Actions -Actions allow executing an operation or an external executable in response to a trigger condition being satisfied. Options for actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleActionOptions.cs); the type of `Settings` is determined by which action is being used (possible action types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Actions)). The interface for all actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Actions/ICollectionRuleAction.cs) - this allows `dotnet monitor` to start an action, wait for it to complete, and get its output values regardless of the action's properties. The action list is [executed](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L149) once the triggering condition has been met (assuming the action list isn't throttled), with each action by default starting without waiting for prior actions to complete. +Actions allow executing an operation or an external executable in response to a trigger condition being satisfied. Options for actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleActionOptions.cs); the type of `Settings` is determined by which action is being used (possible action types can be found [here](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/Actions)). The interface for all actions can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Actions/ICollectionRuleAction.cs) - this allows `dotnet monitor` to start an action, wait for it to complete, and get its output values regardless of the action's properties. The action list is [executed](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L149) once the triggering condition has been met (assuming the action list isn't throttled), with each action by default starting without waiting for prior actions to complete. ### Filters -Filters can optionally be applied to a collection rule to choose which processes can trigger the rule. This uses the same set of [options](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options/ProcessFilterOptions.cs#L47) as setting the default process for `dotnet-monitor`. When starting a collection rule, [these filters are used to check if the current process should have the collection rule applied to it](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleContainer.cs#L187); if so, the collection rule starts. +Filters can optionally be applied to a collection rule to choose which processes can trigger the rule. This uses the same set of [options](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Options/ProcessFilterOptions.cs#L47) as setting the default process for `dotnet-monitor`. When starting a collection rule, [these filters are used to check if the current process should have the collection rule applied to it](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/CollectionRuleContainer.cs#L187); if so, the collection rule starts. ### Limits -Limits can optionally be applied to a collection rule to constrain the lifetime of the rule and how often its actions can be run before being throttled. Options for limits can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleLimitsOptions.cs). When provided (or when using default values), limits are evaluated in the collection rule pipeline while running. `RuleDuration` is used to [create a token](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L79) that shuts down the pipeline. `ActionCountSlidingWindowDuration` does not rely on setting cancellation tokens; rather, the number of executions within the sliding window are checked on-demand [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L211), and `ActionCount` is referenced to determine whether the rule needs to [terminate](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L194) or [throttle](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L234). +Limits can optionally be applied to a collection rule to constrain the lifetime of the rule and how often its actions can be run before being throttled. Options for limits can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleLimitsOptions.cs). When provided (or when using default values), limits are evaluated in the collection rule pipeline while running. `RuleDuration` is used to [create a token](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/CollectionRulePipeline.cs#L79) that shuts down the pipeline. `ActionCountSlidingWindowDuration` does not rely on setting cancellation tokens; rather, the number of executions within the sliding window are checked on-demand [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L211), and `ActionCount` is referenced to determine whether the rule needs to [terminate](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L194) or [throttle](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs#L234). ## Miscellaneous ### Trigger Shortcuts -Trigger Shortcuts provide improved defaults, range validation, and a simpler syntax for [several commonly used `EventCounter` triggers](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts). These shortcuts provide the same functionality as using the standard `EventCounter` syntax, but have fewer available options (since there is no need to specify the `ProviderName` or the `CounterName`) - as a result, shortcuts do not inherit from `EventCounterOptions`, but rather [IEventCounterShortcuts](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts/IEventCounterShortcuts.cs). Each type of shortcut is registered independently [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L158). After binding with configuration and undergoing validation, shortcuts are then converted to be treated as `EventCounter` triggers [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Triggers/EventCounterTriggerFactory.cs), using their respective defaults instead of the generic ones. +Trigger Shortcuts provide improved defaults, range validation, and a simpler syntax for [several commonly used `EventCounter` triggers](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts). These shortcuts provide the same functionality as using the standard `EventCounter` syntax, but have fewer available options (since there is no need to specify the `ProviderName` or the `CounterName`) - as a result, shortcuts do not inherit from `EventCounterOptions`, but rather [IEventCounterShortcuts](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/Triggers/EventCounterShortcuts/IEventCounterShortcuts.cs). Each type of shortcut is registered independently [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L158). After binding with configuration and undergoing validation, shortcuts are then converted to be treated as `EventCounter` triggers [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Triggers/EventCounterTriggerFactory.cs), using their respective defaults instead of the generic ones. ### Templates -Templates allow users to design reusable collection rule components by associating a name with a piece of configuration. Options for templates can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/TemplateOptions.cs). Before collection rules undergo validation, `dotnet monitor` checks to see if any of the rule's components in configuration [list the name of a template](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Configuration/CollectionRulePostConfigureNamedOptions.cs) - if so, the collection rule's options are populated from the correspondingly named template. Note that templates undergo the same binding process for triggers/actions as collection rules; however, since templates are treated as separate parts of configuration, this binding instead happens [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Configuration/TemplatesConfigureNamedOptions.cs). +Templates allow users to design reusable collection rule components by associating a name with a piece of configuration. Options for templates can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/TemplateOptions.cs). Before collection rules undergo validation, `dotnet monitor` checks to see if any of the rule's components in configuration [list the name of a template](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Configuration/CollectionRulePostConfigureNamedOptions.cs) - if so, the collection rule's options are populated from the correspondingly named template. Note that templates undergo the same binding process for triggers/actions as collection rules; however, since templates are treated as separate parts of configuration, this binding instead happens [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Configuration/TemplatesConfigureNamedOptions.cs). ### Collection Rule Defaults -Defaults can be used to limit the verbosity of configuration, allowing frequently used values for collection rules to be assigned as defaults. Options for collection rule defaults can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleDefaultsOptions.cs). These defaults are merged with the user's provided configuration [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/CollectionRules/Options/DefaultCollectionRulePostConfigureOptions.cs) - any properties that the user hasn't set (that have corresponding default values) will be updated at this point to use the default values. This step occurs prior to `dotnet monitor` attempting to use its built-in defaults, which allows user defaults to take precedence. +Defaults can be used to limit the verbosity of configuration, allowing frequently used values for collection rules to be assigned as defaults. Options for collection rule defaults can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/CollectionRuleDefaultsOptions.cs). These defaults are merged with the user's provided configuration [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/CollectionRules/Options/DefaultCollectionRulePostConfigureOptions.cs) - any properties that the user hasn't set (that have corresponding default values) will be updated at this point to use the default values. This step occurs prior to `dotnet monitor` attempting to use its built-in defaults, which allows user defaults to take precedence. ### Collection Rule API Endpoint -The Collection Rule API Endpoint allows users to get information about the state of their collection rules, providing general information [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L525) and more specific information about a particular rule [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L550). **This API is solely for viewing the current state of rules, not altering state**. +The Collection Rule API Endpoint allows users to get information about the state of their collection rules, providing general information [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L525) and more specific information about a particular rule [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/Controllers/DiagController.cs#L550). **This API is solely for viewing the current state of rules, not altering state**. -Each collection rule pipeline has a [state holder](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs) that keeps track of the rule's execution. By keeping track of the pipeline's state in real-time, this state doesn't need to be calculated in response to a user hitting the `/collectionrules` endpoint. However, other user-facing information, such as countdowns, are calculated on-demand - these values are solely for display purposes and not used by `dotnet-monitor` when determining when to change state (see [Limits](#limits) for more information). +Each collection rule pipeline has a [state holder](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/CollectionRulePipelineState.cs) that keeps track of the rule's execution. By keeping track of the pipeline's state in real-time, this state doesn't need to be calculated in response to a user hitting the `/collectionrules` endpoint. However, other user-facing information, such as countdowns, are calculated on-demand - these values are solely for display purposes and not used by `dotnet-monitor` when determining when to change state (see [Limits](#limits) for more information). ## Keeping Documentation Up-To-Date -When making changes to collection rules that require updates to configuration, these changes should be added [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/configuration/collection-rule-configuration.md). Additional information on collection rules and examples can be provided [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/collectionrules). +When making changes to collection rules that require updates to configuration, these changes should be added [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/configuration/collection-rule-configuration.md). Additional information on collection rules and examples can be provided [here](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/collectionrules). diff --git a/documentation/learningPath/configuration.md b/documentation/learningPath/configuration.md index 728b4582255..1c5cacf3fc9 100644 --- a/documentation/learningPath/configuration.md +++ b/documentation/learningPath/configuration.md @@ -6,22 +6,22 @@ ## How Configuration Works -`dotnet-monitor` accepts configuration from several different sources, and must [combine these sources for the host builder](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/HostBuilder/HostBuilderHelper.cs#L47). Configuration sources are added in the order of lowest to highest precedence - meaning that if there is a conflict between a property in two configuration sources, the property found in the latter configuration source will be used. +`dotnet-monitor` accepts configuration from several different sources, and must [combine these sources for the host builder](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/HostBuilder/HostBuilderHelper.cs#L47). Configuration sources are added in the order of lowest to highest precedence - meaning that if there is a conflict between a property in two configuration sources, the property found in the latter configuration source will be used. -To see the merged configuration, the user can run the `config show` command (see [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Program.cs#L68) and [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Commands/ConfigShowCommandHandler.cs)); the `--show-sources` flag can be used to reveal which configuration source is responsible for each property. The `config show` command's output is [written out as JSON](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ConfigurationJsonWriter.cs); this section must be manually updated whenever new options are added (or existing options are changed). +To see the merged configuration, the user can run the `config show` command (see [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Program.cs#L68) and [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Commands/ConfigShowCommandHandler.cs)); the `--show-sources` flag can be used to reveal which configuration source is responsible for each property. The `config show` command's output is [written out as JSON](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/ConfigurationJsonWriter.cs); this section must be manually updated whenever new options are added (or existing options are changed). -Once configuration has been merged, any singletons that have been added to the `IServiceCollection` (see [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs) and [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L85)), such as `IConfigureOptions`, `IPostConfigureOptions`, and `IValidateOptions`, are called when an object of that type is first used, **not on startup**. This step is often used to incorporate defaults for properties that were not explicitly set by configuration, or to validate that options were set correctly. +Once configuration has been merged, any singletons that have been added to the `IServiceCollection` (see [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs) and [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L85)), such as `IConfigureOptions`, `IPostConfigureOptions`, and `IValidateOptions`, are called when an object of that type is first used, **not on startup**. This step is often used to incorporate defaults for properties that were not explicitly set by configuration, or to validate that options were set correctly. -Any changes to the configuration need to be propagated to the [schema](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/schema.json). **The updated schema should be generated automatically; you should never need to manually edit the JSON.** To update the schema in Visual Studio: -* Set [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema) as the startup project +Any changes to the configuration need to be propagated to the [schema](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/schema.json). **The updated schema should be generated automatically; you should never need to manually edit the JSON.** To update the schema in Visual Studio: +* Set [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema) as the startup project * Build the project, with a single command-line argument for the schema's absolute path -* Validate that the schema was correctly updated using the tests in [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests) +* Validate that the schema was correctly updated using the tests in [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests) ## Keeping Documentation Up-To-Date -Our configuration is primarily documented [here](https://github.com/dotnet/dotnet-monitor/tree/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/configuration). Sections are typically comprised of: +Our configuration is primarily documented [here](https://github.com/dotnet/dotnet-monitor/tree/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/configuration). Sections are typically comprised of: * A brief overview of the feature that is being configured * Configuration samples in all supported formats * A list of properties with descriptions, types, and whether a property is required -Types are defined in [definitions.md](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/api/definitions.md), and additional information about configuring collection rules can be found in the [collection rules](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/collectionrules) directory. Where appropriate, indicate if configuration only pertains to a specific version of `dotnet-monitor` (e.g. `7.0+`). +Types are defined in [definitions.md](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/api/definitions.md), and additional information about configuring collection rules can be found in the [collection rules](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/collectionrules) directory. Where appropriate, indicate if configuration only pertains to a specific version of `dotnet-monitor` (e.g. `7.0+`). diff --git a/documentation/learningPath/egress.md b/documentation/learningPath/egress.md index 5d44d615f5b..36b9c0894c0 100644 --- a/documentation/learningPath/egress.md +++ b/documentation/learningPath/egress.md @@ -26,11 +26,11 @@ graph LR class ide2 altColor ``` -1. [User initiates collection of artifact with a designated egress provider](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.WebApi/Operation/EgressOperation.cs#L45) -1. [Locate extension's executable and manifest](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Extensibility/ExtensionDiscoverer.cs#L28) -1. [Start extension and pass configuration/artifact via StdIn to the other process](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L102) -1. [Connect to egress provider using configuration and send artifact](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Extensions/AzureBlobStorage/AzureBlobEgressProvider.cs#L36) -1. [Provide success/failure information via StdOut to dotnet-monitor](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L77) +1. [User initiates collection of artifact with a designated egress provider](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.WebApi/Operation/EgressOperation.cs#L45) +1. [Locate extension's executable and manifest](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Extensibility/ExtensionDiscoverer.cs#L28) +1. [Start extension and pass configuration/artifact via StdIn to the other process](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L102) +1. [Connect to egress provider using configuration and send artifact](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Extensions/AzureBlobStorage/AzureBlobEgressProvider.cs#L36) +1. [Provide success/failure information via StdOut to dotnet-monitor](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L77) ## Distribution and Acquisition Model @@ -41,7 +41,7 @@ There are two versions of the `dotnet-monitor` image being offered: `monitor` an ### Well Known Egress Provider Locations -There are 3 [locations](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L279) that `dotnet-monitor` scans when looking for the extensions directory (the highest priority location is listed first): +There are 3 [locations](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/ServiceCollectionExtensions.cs#L279) that `dotnet-monitor` scans when looking for the extensions directory (the highest priority location is listed first): - Next to the executing `dotnet-monitor` assembly - SharedConfigDirectory - On Windows, `%ProgramData%\dotnet-monitor` @@ -59,23 +59,23 @@ The distribution/acquisition model for third-party egress providers is determine ### Extension Manifest -All extensions must include a manifest titled [`extension.json`](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Extensions/AzureBlobStorage/extension.json) that provides `dotnet-monitor` with some basic information about the extension. +All extensions must include a manifest titled [`extension.json`](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Extensions/AzureBlobStorage/extension.json) that provides `dotnet-monitor` with some basic information about the extension. | Name | Required | Type | Description | |---|---|---|---| | `Name` | true | string | The name of the extension (e.g. AzureBlobStorage) that users will use when writing configuration for the egress provider. | | `ExecutableFileName` | false | string | If specified, the executable file (without extension) to be launched when executing the extension; either `AssemblyFileName` or `ExecutableFileName` must be specified. | | `AssemblyFileName` | false | string | If specified, executes the extension using the shared .NET host (e.g. dotnet.exe) with the specified entry point assembly (without extension); either `AssemblyFileName` or `ExecutableFileName` must be specified. | -| `Modes` | false | [[ExtensionMode](../api/definitions.md#extensionmode)] | Additional modes the extension can be configured to run in (see an example of Validation [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L80)). | +| `Modes` | false | [[ExtensionMode](../api/definitions.md#extensionmode)] | Additional modes the extension can be configured to run in (see an example of Validation [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L80)). | ### Configuration Extensions are designed to receive all user configuration through `dotnet monitor` - the extension itself should not rely on any additional configuration sources. -In addition to the configuration provided specifically for your egress provider, `dotnet-monitor` also includes the values stored in [`Properties`](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options/EgressOptions.cs#L21). Note that `Properties` may include information that is not relevant to the current egress provider, since it is a shared bucket between all configured egress providers. +In addition to the configuration provided specifically for your egress provider, `dotnet-monitor` also includes the values stored in [`Properties`](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Options/EgressOptions.cs#L21). Note that `Properties` may include information that is not relevant to the current egress provider, since it is a shared bucket between all configured egress providers. ### Communicating With Dotnet-Monitor -[`dotnet monitor` will pass serialized configuration via `StdIn` to the extension](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L182); an example of how the `AzureBlobStorage` egress provider interprets the egress payload can be found [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L141). **It's important to validate the version number at the beginning of the stream; if an extension does not have the same version as `dotnet-monitor`, it should not attempt to continue reading from the stream, and users may need to update to a newer version of the extension.** +[`dotnet monitor` will pass serialized configuration via `StdIn` to the extension](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.cs#L182); an example of how the `AzureBlobStorage` egress provider interprets the egress payload can be found [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L141). **It's important to validate the version number at the beginning of the stream; if an extension does not have the same version as `dotnet-monitor`, it should not attempt to continue reading from the stream, and users may need to update to a newer version of the extension.** -All output from the extension will be passed back to `dotnet-monitor`; this is logged [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L62). The contents of the `StandardOutput` and `StandardError` streams are handled and logged as seen [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L32), with the `StandardOutput` stream being logged at the `Info` level and the `StandardError` stream being logged at the `Warning` level. `Dotnet-Monitor` will continue reading output until it receives a [result](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tools/dotnet-monitor/Egress/Extension/EgressArtifactResult.cs) from the extension via the `StandardOutput` stream, at which point the extension's process will be terminated and `dotnet-monitor` will display the appropriate log message depending on the success/failure of the operation. Exceptions thrown during the egress operation are caught [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L71); this allows the extension to report a failure message back to `dotnet-monitor` that will be displayed to the user. +All output from the extension will be passed back to `dotnet-monitor`; this is logged [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L62). The contents of the `StandardOutput` and `StandardError` streams are handled and logged as seen [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Egress/Extension/EgressExtension.OutputParser.cs#L32), with the `StandardOutput` stream being logged at the `Info` level and the `StandardError` stream being logged at the `Warning` level. `Dotnet-Monitor` will continue reading output until it receives a [result](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Egress/Extension/EgressArtifactResult.cs) from the extension via the `StandardOutput` stream, at which point the extension's process will be terminated and `dotnet-monitor` will display the appropriate log message depending on the success/failure of the operation. Exceptions thrown during the egress operation are caught [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Extension.Common/EgressHelper.cs#L71); this allows the extension to report a failure message back to `dotnet-monitor` that will be displayed to the user. diff --git a/documentation/learningPath/testing.md b/documentation/learningPath/testing.md index 0d7d0034ad6..9af61a15dd3 100644 --- a/documentation/learningPath/testing.md +++ b/documentation/learningPath/testing.md @@ -7,81 +7,81 @@ Tests can be executed with the command line (via [build.cmd](../../Build.cmd) -test), as part of the PR build, or in Visual Studio. Note that because of limited resources in the build pool, tests ran from the command line or in the build pool are serialized. This avoids test failures associated with parallel testing. Visual Studio does not have such restrictions and is best used for individual tests and test investigations. When running from the command line, using the `-testgroup` parameter can be used to limit the amount of tests executed. For example `build.cmd -test -testgroup PR` will run the same tests as the PR build. -The framework of the test assemblies is controlled by [TestTargetFrameworks](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/eng/Versions.props). The test itself is attributed with a particular framework based on the [TargetFrameworkMonikerTraitAttribute](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/TargetFrameworkMonikerTraitAttribute.cs). +The framework of the test assemblies is controlled by [TestTargetFrameworks](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/eng/Versions.props). The test itself is attributed with a particular framework based on the [TargetFrameworkMonikerTraitAttribute](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/TargetFrameworkMonikerTraitAttribute.cs). ## Unit Tests -- [Microsoft.Diagnostics.Monitoring.Tool.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests) -- [Microsoft.Diagnostics.Monitoring.WebApi.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/) -- [CollectionRuleActions.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/CollectionRuleActions.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.Tool.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests) +- [Microsoft.Diagnostics.Monitoring.WebApi.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.WebApi.UnitTests/) +- [CollectionRuleActions.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/CollectionRuleActions.UnitTests/) Unit test assemblies directly reference types from various dotnet-monitor assemblies. However, since most of dotnet-monitor heavily relies on code injection, there are utility classes to simplify unit test creation. -- [TestHostHelper](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs) can be used to setup a basic unit test scenario using dependency injection. -- [CollectionRuleOptionsExtensions](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Options/CollectionRuleOptionsExtensions.cs) can be used to easily create collection rules from configuration. +- [TestHostHelper](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/TestHostHelper.cs) can be used to setup a basic unit test scenario using dependency injection. +- [CollectionRuleOptionsExtensions](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/Options/CollectionRuleOptionsExtensions.cs) can be used to easily create collection rules from configuration. ## Functional Tests -- [Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests) -- [Microsoft.Diagnostics.Monitoring.UnitTestApp](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/) +- [Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests) +- [Microsoft.Diagnostics.Monitoring.UnitTestApp](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/) Functional tests are composed of 3 main parts: 1. The test itself, which sets up and validates the results. 1. An instance of dotnet-monitor 1. An instance of an application that is being monitored (from the UnitTestApp assembly) -* [ScenarioRunner](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/ScenarioRunner.cs) is typically used to orchestrate test runs. The class will spawn both an instance of dotnet-monitor and an instance of test application. The app and the test communicate via stdio. The test communicates with dotnet-monitor via its Api surface. -* The dotnet-monitor Api surface can be accessed through the [ApiClient](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs). -* New scenarios can be added [here](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/). -* The [AsyncWaitScenario](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/AsyncWaitScenario.cs) is sufficient for most tests. -* Coordination of the scenario and the test is done via message passing (json over stdio) between the test and the app. To send messages to the app from the test, [AppRunner](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/AppRunner.cs)'s `SendCommandAsync` is used. In the scenario definition, [ScenarioHelpers](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/ScenarioHelpers.cs)'s `WaitForCommandAsync` is used. This can be used to synchronize various points of the test application with the execution of the dotnet-monitor Api from the test itself. +* [ScenarioRunner](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/Runners/ScenarioRunner.cs) is typically used to orchestrate test runs. The class will spawn both an instance of dotnet-monitor and an instance of test application. The app and the test communicate via stdio. The test communicates with dotnet-monitor via its Api surface. +* The dotnet-monitor Api surface can be accessed through the [ApiClient](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/HttpApi/ApiClient.cs). +* New scenarios can be added [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/). +* The [AsyncWaitScenario](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/Scenarios/AsyncWaitScenario.cs) is sufficient for most tests. +* Coordination of the scenario and the test is done via message passing (json over stdio) between the test and the app. To send messages to the app from the test, [AppRunner](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/Runners/AppRunner.cs)'s `SendCommandAsync` is used. In the scenario definition, [ScenarioHelpers](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.UnitTestApp/ScenarioHelpers.cs)'s `WaitForCommandAsync` is used. This can be used to synchronize various points of the test application with the execution of the dotnet-monitor Api from the test itself. ## Native/Profiler Tests -- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTests/) -- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/) +- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Profiler.UnitTestApp/) This test assembly provides a test to make sure the dotnet-monitor profiler can load into a target app. ## Schema Generation -- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/) -- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/) -- [Microsoft.Diagnostics.Monitoring.Options](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Microsoft.Diagnostics.Monitoring.Options) +- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.ConfigurationSchema](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/) +- [Microsoft.Diagnostics.Monitoring.Options](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Microsoft.Diagnostics.Monitoring.Options) -Dotnet-monitor generates [schema.json](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/schema.json) using unit tests. If dotnet-monitor's configuration changes, the schema.json file needs to be updated. -Note that it is possible to compile option classes directly into the `ConfigurationSchema` project. This may be necessary in order to attribute properties appropriately for schema generation. See [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj). See the [Configuration](./configuration.md#how-configuration-works) learning path for more details. +Dotnet-monitor generates [schema.json](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/schema.json) using unit tests. If dotnet-monitor's configuration changes, the schema.json file needs to be updated. +Note that it is possible to compile option classes directly into the `ConfigurationSchema` project. This may be necessary in order to attribute properties appropriately for schema generation. See [Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.ConfigurationSchema/Microsoft.Diagnostics.Monitoring.ConfigurationSchema.csproj). See the [Configuration](./configuration.md#how-configuration-works) learning path for more details. ## OpenAPI generation -- [Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/) -- [Microsoft.Diagnostics.Monitoring.OpenApiGen](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen/) +- [Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.OpenApiGen](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.OpenApiGen/) -These assemblies and tests are used to generate the [OpenAPI spec](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/documentation/openapi.json) for the dotnet-monitor API. Changes to the dotnet-monitor api surface require updating `openapi.json`. +These assemblies and tests are used to generate the [OpenAPI spec](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/documentation/openapi.json) for the dotnet-monitor API. Changes to the dotnet-monitor api surface require updating `openapi.json`. If using VSCode or Codespaces, you can also use the `Regenerate openapi.json` task. ## Startup hooks / hosting startup -- [Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook/) +- [Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestStartupHook/) This assembly is injected into a dotnet-monitor runner (using `DOTNET_STARTUP_HOOKS`) to facilitate Assembly resolution during test runs. -- [Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup/) +- [Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.TestHostingStartup/) Uses `ASPNETCORE_HOSTINGSTARTUPASSEMBLIES` to inject a service into dotnet-monitor during test time. This allows tests to locate files that are not normally part of the test deployment, such as the native profiler. -- [Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests/) +- [Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.StartupHook.UnitTests/) Unit tests around features that are injected via `DOTNET_STARTUP_HOOKS` into the target application. This currently includes the Exceptions History feature. ## Misc test assemblies -- [Microsoft.Diagnostics.Monitoring.TestCommon](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/) +- [Microsoft.Diagnostics.Monitoring.TestCommon](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.TestCommon/) Utility classes that are shared between Unit Tests and Functional Tests. -- [Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon](https://github.com/dotnet/dotnet-monitor/blob/341ff64a6097fe0bc66950e254e6160abcf77b84/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/) +- [Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTestCommon/) Utility classes shared between unit test assemblies. From 5e898dacdd8db10b9c4da861cbb41253aeefb487 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:18:22 -0800 Subject: [PATCH 118/131] Skip CollectionRulePipeline_EventMeterTriggerTest_Histogram_GreaterThan (#6155) --- .../CollectionRulePipelineTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs index 758c76ac63f..d2d8f7cedbe 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.UnitTests/CollectionRulePipelineTests.cs @@ -229,7 +229,7 @@ public Task CollectionRulePipeline_EventMeterTriggerTest_Gauge(TargetFrameworkMo /// /// Test that the pipeline works with the EventMeter trigger greater-than (histogram instrument). /// - [Theory] + [Theory(Skip = "https://github.com/dotnet/dotnet-monitor/issues/6154")] [MemberData(nameof(GetCurrentTfm))] public Task CollectionRulePipeline_EventMeterTriggerTest_Histogram_GreaterThan(TargetFrameworkMoniker appTfm) { From 1f2ddc2140978232c0b99992f9fc1a9607a31548 Mon Sep 17 00:00:00 2001 From: Justin Anderson Date: Fri, 1 Mar 2024 11:44:04 -0800 Subject: [PATCH 119/131] Scan all executable files (#6156) --- .../scripts/Copy-ApiScanEligible.ps1 | 43 +------------------ 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/eng/pipelines/scripts/Copy-ApiScanEligible.ps1 b/eng/pipelines/scripts/Copy-ApiScanEligible.ps1 index 4e58cbfcf39..df92d4dfab0 100644 --- a/eng/pipelines/scripts/Copy-ApiScanEligible.ps1 +++ b/eng/pipelines/scripts/Copy-ApiScanEligible.ps1 @@ -29,45 +29,6 @@ function Copy-File() { $script:copyCount++ } -# Check if the file is a ARM64 PE file -function Test-PeArm64() { - param( - [System.IO.FileInfo] $FileInfo - ) - $stream = [System.IO.File]::OpenRead($FileInfo.FullName) - $reader = [System.IO.BinaryReader]($stream) - # https://learn.microsoft.com/en-us/windows/win32/debug/pe-format - # MS DOS Magic Number - if (0x5A4D -ne $reader.ReadUInt16()) { - $reader.Dispose() - return $false - } - $stream.Position = 0x3C # NT Header offset, 4 bytes - $ntHeaderOffset = $reader.ReadUInt32() - $stream.Position = $ntHeaderOffset - # PE Magic Number, 4 bytes - if (0x00004550 -ne $reader.ReadUInt32()) { - $reader.Dispose() - return $false; - } - # Machine type, 2 bytes - # 0xAA64 is ARM64 - $isArm64 = 0xAA64 -eq $reader.ReadUInt16(); - $reader.Dispose() - return $isArm64 -} - -function Copy-Executable() { - param( - [System.IO.FileInfo] $FileInfo - ) - if (Test-PeArm64 -FileInfo $fileInfo) { - Skip-File -FileInfo $fileInfo -Reason "ARM64 PE" # ARM64 is not supported by ApiScan - } else { - Copy-File -FileInfo $fileInfo - } -} - function Skip-File() { param( [System.IO.FileInfo] $FileInfo, @@ -83,9 +44,9 @@ foreach ($fileInfo in (Get-ChildItem $SourcePath -Recurse -Attributes !Directory if ($fileInfo.Directory.FullName.Contains('symbols')) { # Skip symbols packages Skip-File -FileInfo $fileInfo -Reason "Symbols" } elseif ($fileInfo.Extension -eq ".dll") { # Library - Copy-Executable -FileInfo $fileInfo + Copy-File -FileInfo $fileInfo } elseif ($fileInfo.Extension -eq ".exe") { # Executable - Copy-Executable -FileInfo $fileInfo + Copy-File -FileInfo $fileInfo } elseif ($fileInfo.Extension -eq ".pdb") { # Program database Copy-File -FileInfo $fileInfo } else { From 6380db2a550b85b579e66e2fc652a4ed56e88a47 Mon Sep 17 00:00:00 2001 From: Justin Anderson Date: Fri, 1 Mar 2024 13:35:11 -0800 Subject: [PATCH 120/131] Replace SwaggerUI and SwaggerScope option with OpenAPI document (#6146) --- Directory.Packages.props | 1 - documentation/README.md | 2 +- documentation/authentication.md | 10 --- .../azure-ad-authentication-configuration.md | 1 - documentation/learningPath/api.md | 2 +- documentation/openapi.md | 7 ++ documentation/schema.json | 8 +- documentation/swagger-ui.md | 15 ---- eng/Signing.props | 1 - .../AzureAdOptions.cs | 5 -- .../OptionsDisplayStrings.Designer.cs | 9 --- .../OptionsDisplayStrings.resx | 7 +- .../Program.cs | 12 +-- .../Options/OptionsExtensions.cs | 7 +- .../RootTests.cs | 4 +- .../ApiKey/MonitorApiKeyAuthConfigurator.cs | 5 -- .../Auth/AzureAd/AzureAdAuthConfigurator.cs | 74 +++++-------------- .../Auth/IAuthenticationConfigurator.cs | 2 - .../Auth/NoAuth/NoAuthConfigurator.cs | 5 -- src/Tools/dotnet-monitor/Startup.cs | 20 ++--- src/Tools/dotnet-monitor/Strings.Designer.cs | 9 --- src/Tools/dotnet-monitor/Strings.resx | 4 - .../Swagger/SwaggerProviderExtensions.cs | 27 +++++++ .../dotnet-monitor/dotnet-monitor.csproj | 1 - 24 files changed, 72 insertions(+), 166 deletions(-) create mode 100644 documentation/openapi.md delete mode 100644 documentation/swagger-ui.md create mode 100644 src/Tools/dotnet-monitor/Swagger/SwaggerProviderExtensions.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index 4164bb407ea..265fb7bef1d 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -24,7 +24,6 @@ - diff --git a/documentation/README.md b/documentation/README.md index 1f9febac155..e287d4b3d6a 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -17,7 +17,7 @@ When running a dotnet application, differences in diverse local and production e - [Running in Kubernetes](./kubernetes.md) - Enabling SSL - [API Endpoints](./api/README.md) - - [Swagger UI & OpenAPI document](./swagger-ui.md) + - [OpenAPI document](./openapi.md) - [`/processes`](./api/processes.md) - [`/dump`](./api/dump.md) - [`/gcdump`](./api/gcdump.md) diff --git a/documentation/authentication.md b/documentation/authentication.md index 5ffc5886a06..aa58a757870 100644 --- a/documentation/authentication.md +++ b/documentation/authentication.md @@ -53,16 +53,6 @@ curl -H "Authorization: Bearer " https://localhost:52323/p (Invoke-WebRequest -Uri https://localhost:52323/processes -Headers @{ 'Authorization' = 'Bearer ' }).Content | ConvertFrom-Json ``` -### Interactively authenticating using the Swagger UI - -If you want Azure AD users to be able to interactively authenticate with your `dotnet monitor` instance using the in-box Swagger UI you will need to: -- [Add a new scope](https://learn.microsoft.com/azure/active-directory/develop/quickstart-configure-app-expose-web-apis#add-a-scope). This scope will only be used to enable interactive authentication and users will still be required to be part of the configured app role. Custom Application ID URIs are supported. -- [Add a redirect URI to the App Registration](https://learn.microsoft.com/azure/active-directory/develop/quickstart-register-app#add-a-redirect-uri). - 1. Select `Single-page application` as the platform. - 1. For the redirect URI, enter `{dotnet monitor address}/swagger/oauth2-redirect.html`, where `{dotnet monitor address}` is the address of your `dotnet monitor` instance. -> [!NOTE] -> If using `localhost` for the address, you do **not** need to specify the port number. Example: `https://localhost/swagger/oauth2-redirect.html` - ## Windows Authentication We only recommend using Windows Authentication if you're running `dotnet monitor` as a local development tool on Windows; for all other environments using an [API Key](#api-key-authentication) is recommended. diff --git a/documentation/configuration/azure-ad-authentication-configuration.md b/documentation/configuration/azure-ad-authentication-configuration.md index 2ceda3b3b34..6cae163ab41 100644 --- a/documentation/configuration/azure-ad-authentication-configuration.md +++ b/documentation/configuration/azure-ad-authentication-configuration.md @@ -13,7 +13,6 @@ Azure Active Directory authentication must be configured before `dotnet monitor` |---|---|---|---| | ClientId | string | true | The unique application (client) id assigned to the app registration in Azure Active Directory. | | RequiredRole | string | true | The role required to be able to authenticate. | -| SwaggerScope | string | false | The API scope required by users to be able to interactively authenticate using the in-box Swagger UI. If not specified, users will not be able to interactively authenticate. | | AppIdUri | uri | false | The App ID URI of the app registration. Defaults to `api://{ClientId}` if not specified. | | Instance | uri | false | Specifies the Azure cloud instance users are signing in from. Can be either the Azure public cloud or one of the national clouds. Defaults to the Azure public cloud (`https://login.microsoftonline.com`). | | TenantId | string | false | The tenant id of the Azure Active Directory tenant, or its tenant domain. Defaults to `organizations`. | diff --git a/documentation/learningPath/api.md b/documentation/learningPath/api.md index c86a2731ce2..c16ff1b863d 100644 --- a/documentation/learningPath/api.md +++ b/documentation/learningPath/api.md @@ -37,4 +37,4 @@ dotnet-monitor supports multiple different [authentication modes](../authenticat When dotnet-monitor starts, the command line arguments are first inspected to see if a specific authentication mode was set (such as `--no-auth`), referred to as the `StartupAuthenticationMode`, this is calculated [here](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Commands/CollectCommandHandler.cs#L29). If no modes were explicitly set via a command line argument, dotnet-monitor will select `Deferred` as the `StartupAuthenticationMode`. This indicates that the user configuration should be looked at to determine the authentication mode later on in the startup process. -After determining the `StartupAuthenticationMode` mode, the relevant [IAuthenticationConfigurator](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Auth/IAuthenticationConfigurator.cs) is created by the [AuthConfiguratorFactory](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Auth/AuthConfiguratorFactory.cs). This factory also handles deciding what authentication mode to use when `StartupAuthenticationMode` is `Deferred`. The selected configurator is used to configure various parts of dotnet-monitor that are specific to authentication, such as protecting the web APIs, add authentication-mode specific logging, and configuring the built-in Swagger UI. +After determining the `StartupAuthenticationMode` mode, the relevant [IAuthenticationConfigurator](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Auth/IAuthenticationConfigurator.cs) is created by the [AuthConfiguratorFactory](https://github.com/dotnet/dotnet-monitor/blob/963f5824e2e4cef8fb6a969a03abb7d26e7eec56/src/Tools/dotnet-monitor/Auth/AuthConfiguratorFactory.cs). This factory also handles deciding what authentication mode to use when `StartupAuthenticationMode` is `Deferred`. The selected configurator is used to configure various parts of dotnet-monitor that are specific to authentication, such as protecting the web APIs and adding authentication-mode specific logging. diff --git a/documentation/openapi.md b/documentation/openapi.md new file mode 100644 index 00000000000..9cdccf9c05f --- /dev/null +++ b/documentation/openapi.md @@ -0,0 +1,7 @@ +### Was this documentation helpful? [Share feedback](https://www.research.net/r/DGDQWXH?src=documentation%2Fopenapi) + +## OpenAPI documentation + +The OpenAPI definition for the dotnet-monitor API can be found at [openapi.json](openapi.json). This can be used to generate a client stub for calling the API from your own tools. + +Additionally, the document can be accessed from the root route ("/" path) when dotnet-monitor is running. This version of the document includes security scheme information if authentication has been configured. \ No newline at end of file diff --git a/documentation/schema.json b/documentation/schema.json index f3f82545c5f..3f4bca428eb 100644 --- a/documentation/schema.json +++ b/documentation/schema.json @@ -494,13 +494,6 @@ "type": "string", "description": "The role required to be able to authenticate.", "minLength": 1 - }, - "SwaggerScope": { - "type": [ - "null", - "string" - ], - "description": "The API scope required by users to be able to interactively authenticate using the in-box Swagger UI. If not specified, users will not be able to interactively authenticate." } } }, @@ -1768,6 +1761,7 @@ ] }, "Filters": { + "description": "The filters that determine which exceptions should be included/excluded when collecting exceptions.", "oneOf": [ { "type": "null" diff --git a/documentation/swagger-ui.md b/documentation/swagger-ui.md deleted file mode 100644 index 8e1d8f5b14c..00000000000 --- a/documentation/swagger-ui.md +++ /dev/null @@ -1,15 +0,0 @@ -### Was this documentation helpful? [Share feedback](https://www.research.net/r/DGDQWXH?src=documentation%2Fswagger-ui) - -# Swagger API Explorer - -dotnet-monitor includes the Swagger UI for exploring the API surface of dotnet-monitor. It can be accessed from the /swagger path (and at the time of writing, will also be redirected to from the "/" path ). The API explorer enables you to see the API endpoints and try them directly from the browser. - -If dotnet-monitor is configured to use API Key authentication, then JWT token required to access the service can be supplied by clicking on the Authorize button at top right of the page, and pasting the token text into the popup dialog. - -## Known Limitations - -The swagger API explorer is not ideal for large downloads, which can result from collecting dumps. If collecting large dumps, its recommended to use `curl` to make those requests directly. The swagger UI will provide the curl command to make it easy to copy/paste into a terminal window. - -## OpenAPI documentation - -The OpenAPI definition for the dotnet-monitor API can be found at [openapi.json](openapi.json). This can be used to generate a client stub for calling the API from your own tools. \ No newline at end of file diff --git a/eng/Signing.props b/eng/Signing.props index 699b16dfc98..3bbc8889cff 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -6,7 +6,6 @@ - - 9.0.0-preview.3.24128.1 - 9.0.0-preview.3.24128.1 + 9.0.0-preview.3.24129.1 + 9.0.0-preview.3.24129.1 2.0.0-beta4.24126.1 8.0.0-preview.24127.1 8.0.0-preview.24127.1 - 9.0.100-preview.3.24129.4 + 9.0.100-preview.3.24129.12 9.0.0-preview.24151.1 - 9.0.0-preview.3.24126.5 - 9.0.0-preview.3.24126.5 + 9.0.0-preview.3.24129.2 + 9.0.0-preview.3.24129.2 1.0.511901 From 42151adef1aba8a6c4022db72003b2ac21f43904 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 00:17:33 +0000 Subject: [PATCH 122/131] [feature/9.x] Update dependencies from dotnet/diagnostics (#6143) * Update dependencies from https://github.com/dotnet/diagnostics build 20240228.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24127.1 -> To Version 8.0.0-preview.24128.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240229.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24127.1 -> To Version 8.0.0-preview.24129.1 --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8e520fc9fb7..2d029b8d9a5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,13 +4,13 @@ https://github.com/dotnet/aspnetcore 7874b36fd8da2f8e56b23aac48954f14bafba1fe - + https://github.com/dotnet/diagnostics - aad90b9b830f8694c12ec26ff6ee84fed373d907 + 831eee3a9e69dd886fa190a9914a7f66260c653a - + https://github.com/dotnet/diagnostics - aad90b9b830f8694c12ec26ff6ee84fed373d907 + 831eee3a9e69dd886fa190a9914a7f66260c653a https://github.com/dotnet/command-line-api diff --git a/eng/Versions.props b/eng/Versions.props index abd7dcbcf3e..480dfcc08fa 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24127.1 - 8.0.0-preview.24127.1 + 8.0.0-preview.24129.1 + 8.0.0-preview.24129.1 9.0.100-preview.3.24129.12 From 413a2d5818e82943bd685bbc0c1962b9bd412a41 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 00:55:16 +0000 Subject: [PATCH 123/131] Update dependencies from https://github.com/dotnet/arcade build 20240301.1 (#6151) Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24128.1 -> To Version 9.0.0-beta.24151.1 Co-authored-by: dotnet-maestro[bot] Co-authored-by: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> --- eng/Version.Details.xml | 20 +- eng/Versions.props | 6 +- eng/common/templates-official/job/job.yml | 255 ++++++++++++++++ .../templates-official/job/onelocbuild.yml | 112 +++++++ .../job/publish-build-assets.yml | 157 ++++++++++ .../templates-official/job/source-build.yml | 67 ++++ .../job/source-index-stage1.yml | 67 ++++ .../templates-official/jobs/codeql-build.yml | 31 ++ eng/common/templates-official/jobs/jobs.yml | 97 ++++++ .../templates-official/jobs/source-build.yml | 46 +++ .../post-build/common-variables.yml | 24 ++ .../post-build/post-build.yml | 285 ++++++++++++++++++ .../post-build/setup-maestro-vars.yml | 70 +++++ .../post-build/trigger-subscription.yml | 13 + .../steps/add-build-to-channel.yml | 13 + .../steps/component-governance.yml | 13 + .../steps/generate-sbom.yml | 48 +++ .../templates-official/steps/publish-logs.yml | 49 +++ .../templates-official/steps/retain-build.yml | 28 ++ .../steps/send-to-helix.yml | 91 ++++++ .../templates-official/steps/source-build.yml | 129 ++++++++ .../variables/pool-providers.yml | 45 +++ .../variables/sdl-variables.yml | 7 + global.json | 4 +- 24 files changed, 1662 insertions(+), 15 deletions(-) create mode 100644 eng/common/templates-official/job/job.yml create mode 100644 eng/common/templates-official/job/onelocbuild.yml create mode 100644 eng/common/templates-official/job/publish-build-assets.yml create mode 100644 eng/common/templates-official/job/source-build.yml create mode 100644 eng/common/templates-official/job/source-index-stage1.yml create mode 100644 eng/common/templates-official/jobs/codeql-build.yml create mode 100644 eng/common/templates-official/jobs/jobs.yml create mode 100644 eng/common/templates-official/jobs/source-build.yml create mode 100644 eng/common/templates-official/post-build/common-variables.yml create mode 100644 eng/common/templates-official/post-build/post-build.yml create mode 100644 eng/common/templates-official/post-build/setup-maestro-vars.yml create mode 100644 eng/common/templates-official/post-build/trigger-subscription.yml create mode 100644 eng/common/templates-official/steps/add-build-to-channel.yml create mode 100644 eng/common/templates-official/steps/component-governance.yml create mode 100644 eng/common/templates-official/steps/generate-sbom.yml create mode 100644 eng/common/templates-official/steps/publish-logs.yml create mode 100644 eng/common/templates-official/steps/retain-build.yml create mode 100644 eng/common/templates-official/steps/send-to-helix.yml create mode 100644 eng/common/templates-official/steps/source-build.yml create mode 100644 eng/common/templates-official/variables/pool-providers.yml create mode 100644 eng/common/templates-official/variables/sdl-variables.yml diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2d029b8d9a5..79c856e9031 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers 59b2d9dc38fcc17dd618e3b3af3ce692aaeedb37 - + https://github.com/dotnet/arcade - 7582b5deefe451b6453a7693197df02ef1558d4b + d4a7b37f268cb5fe89f4472ef5341629cd040dfe - + https://github.com/dotnet/arcade - 7582b5deefe451b6453a7693197df02ef1558d4b + d4a7b37f268cb5fe89f4472ef5341629cd040dfe - + https://github.com/dotnet/arcade - 7582b5deefe451b6453a7693197df02ef1558d4b + d4a7b37f268cb5fe89f4472ef5341629cd040dfe - + https://github.com/dotnet/arcade - 7582b5deefe451b6453a7693197df02ef1558d4b + d4a7b37f268cb5fe89f4472ef5341629cd040dfe https://github.com/dotnet/installer 001946486060e31dffa0f82a68c4db582c353af0 - + https://github.com/dotnet/arcade - 7582b5deefe451b6453a7693197df02ef1558d4b + d4a7b37f268cb5fe89f4472ef5341629cd040dfe https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 480dfcc08fa..170439603bf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,9 +48,9 @@ --> - 9.0.0-beta.24128.1 - 9.0.0-beta.24128.1 - 9.0.0-beta.24128.1 + 9.0.0-beta.24151.1 + 9.0.0-beta.24151.1 + 9.0.0-beta.24151.1 9.0.0-preview.3.24129.1 9.0.0-preview.3.24129.1 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml new file mode 100644 index 00000000000..352607308fd --- /dev/null +++ b/eng/common/templates-official/job/job.yml @@ -0,0 +1,255 @@ +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + +parameters: +# Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + cancelTimeoutInMinutes: '' + condition: '' + container: '' + continueOnError: false + dependsOn: '' + displayName: '' + pool: '' + steps: [] + strategy: '' + timeoutInMinutes: '' + variables: [] + workspace: '' + +# Job base template specific parameters + # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md + artifacts: '' + enableMicrobuild: false + enablePublishBuildArtifacts: false + enablePublishBuildAssets: false + enablePublishTestResults: false + enablePublishUsingPipelines: false + enableBuildRetry: false + disableComponentGovernance: '' + componentGovernanceIgnoreDirectories: '' + mergeTestResults: false + testRunTitle: '' + testResultsFormat: '' + name: '' + preSteps: [] + runAsPublic: false +# Sbom related params + enableSbom: true + PackageVersion: 7.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + +jobs: +- job: ${{ parameters.name }} + + ${{ if ne(parameters.cancelTimeoutInMinutes, '') }}: + cancelTimeoutInMinutes: ${{ parameters.cancelTimeoutInMinutes }} + + ${{ if ne(parameters.condition, '') }}: + condition: ${{ parameters.condition }} + + ${{ if ne(parameters.container, '') }}: + container: ${{ parameters.container }} + + ${{ if ne(parameters.continueOnError, '') }}: + continueOnError: ${{ parameters.continueOnError }} + + ${{ if ne(parameters.dependsOn, '') }}: + dependsOn: ${{ parameters.dependsOn }} + + ${{ if ne(parameters.displayName, '') }}: + displayName: ${{ parameters.displayName }} + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + + ${{ if ne(parameters.strategy, '') }}: + strategy: ${{ parameters.strategy }} + + ${{ if ne(parameters.timeoutInMinutes, '') }}: + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + + variables: + - ${{ if ne(parameters.enableTelemetry, 'false') }}: + - name: DOTNET_CLI_TELEMETRY_PROFILE + value: '$(Build.Repository.Uri)' + - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: + - name: EnableRichCodeNavigation + value: 'true' + # Retry signature validation up to three times, waiting 2 seconds between attempts. + # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures + - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY + value: 3,2000 + - ${{ each variable in parameters.variables }}: + # handle name-value variable syntax + # example: + # - name: [key] + # value: [value] + - ${{ if ne(variable.name, '') }}: + - name: ${{ variable.name }} + value: ${{ variable.value }} + + # handle variable groups + - ${{ if ne(variable.group, '') }}: + - group: ${{ variable.group }} + + # handle template variable syntax + # example: + # - template: path/to/template.yml + # parameters: + # [key]: [value] + - ${{ if ne(variable.template, '') }}: + - template: ${{ variable.template }} + ${{ if ne(variable.parameters, '') }}: + parameters: ${{ variable.parameters }} + + # handle key-value variable syntax. + # example: + # - [key]: [value] + - ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}: + - ${{ each pair in variable }}: + - name: ${{ pair.key }} + value: ${{ pair.value }} + + # DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds + - ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - group: DotNet-HelixApi-Access + + ${{ if ne(parameters.workspace, '') }}: + workspace: ${{ parameters.workspace }} + + steps: + - ${{ if ne(parameters.preSteps, '') }}: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildSigningPlugin@3 + displayName: Install MicroBuild plugin + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + env: + TeamName: $(_TeamName) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + + - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: + - task: NuGetAuthenticate@1 + + - ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}: + - task: DownloadPipelineArtifact@2 + inputs: + buildType: current + artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }} + targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }} + itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }} + + - ${{ each step in parameters.steps }}: + - ${{ step }} + + - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: + - task: RichCodeNavIndexer@0 + displayName: RichCodeNav Upload + inputs: + languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} + environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} + richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} + continueOnError: true + + - template: /eng/common/templates-official/steps/component-governance.yml + parameters: + ${{ if eq(parameters.disableComponentGovernance, '') }}: + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}: + disableComponentGovernance: false + ${{ else }}: + disableComponentGovernance: true + ${{ else }}: + disableComponentGovernance: ${{ parameters.disableComponentGovernance }} + componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} + + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) + + - ${{ if ne(parameters.artifacts.publish, '') }}: + - ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}: + - task: CopyFiles@2 + displayName: Gather binaries for publish to artifacts + inputs: + SourceFolder: 'artifacts/bin' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin' + - task: CopyFiles@2 + displayName: Gather packages for publish to artifacts + inputs: + SourceFolder: 'artifacts/packages' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages' + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish pipeline artifacts + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} + continueOnError: true + condition: always() + - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: + - publish: artifacts/log + artifact: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }} + displayName: Publish logs + continueOnError: true + condition: always() + + - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + continueOnError: true + condition: always() + + - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: + - task: PublishTestResults@2 + displayName: Publish XUnit Test Results + inputs: + testResultsFormat: 'xUnit' + testResultsFiles: '*.xml' + searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit + mergeTestResults: ${{ parameters.mergeTestResults }} + continueOnError: true + condition: always() + - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'vstest')) }}: + - task: PublishTestResults@2 + displayName: Publish TRX Test Results + inputs: + testResultsFormat: 'VSTest' + testResultsFiles: '*.trx' + searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx + mergeTestResults: ${{ parameters.mergeTestResults }} + continueOnError: true + condition: always() + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}: + - template: /eng/common/templates-official/steps/generate-sbom.yml + parameters: + PackageVersion: ${{ parameters.packageVersion}} + BuildDropPath: ${{ parameters.buildDropPath }} + IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} + + - ${{ if eq(parameters.enableBuildRetry, 'true') }}: + - publish: $(Build.SourcesDirectory)\eng\common\BuildConfiguration + artifact: BuildConfiguration + displayName: Publish build retry configuration + continueOnError: true diff --git a/eng/common/templates-official/job/onelocbuild.yml b/eng/common/templates-official/job/onelocbuild.yml new file mode 100644 index 00000000000..ba9ba493032 --- /dev/null +++ b/eng/common/templates-official/job/onelocbuild.yml @@ -0,0 +1,112 @@ +parameters: + # Optional: dependencies of the job + dependsOn: '' + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: '' + + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex + GithubPat: $(BotAccount-dotnet-bot-repo-PAT) + + SourcesDirectory: $(Build.SourcesDirectory) + CreatePr: true + AutoCompletePr: false + ReusePr: true + UseLfLineEndings: true + UseCheckedInLocProjectJson: false + SkipLocProjectJsonGeneration: false + LanguageSet: VS_Main_Languages + LclSource: lclFilesInRepo + LclPackageId: '' + RepoType: gitHub + GitHubOrg: dotnet + MirrorRepo: '' + MirrorBranch: main + condition: '' + JobNameSuffix: '' + +jobs: +- job: OneLocBuild${{ parameters.JobNameSuffix }} + + dependsOn: ${{ parameters.dependsOn }} + + 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-official/variables/pool-providers.yml + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + ${{ if eq(parameters.pool, '') }}: + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + + steps: + - ${{ 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 + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + inputs: + locProj: eng/Localize/LocProject.json + outDir: $(Build.ArtifactStagingDirectory) + lclSource: ${{ parameters.LclSource }} + lclPackageId: ${{ parameters.LclPackageId }} + isCreatePrSelected: ${{ parameters.CreatePr }} + isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} + ${{ if eq(parameters.CreatePr, true) }}: + isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} + ${{ if eq(parameters.RepoType, 'gitHub') }}: + isShouldReusePrSelected: ${{ parameters.ReusePr }} + packageSourceAuth: patAuth + patVariable: ${{ parameters.CeapexPat }} + ${{ if eq(parameters.RepoType, 'gitHub') }}: + repoType: ${{ parameters.RepoType }} + gitHubPatVariable: "${{ parameters.GithubPat }}" + ${{ if ne(parameters.MirrorRepo, '') }}: + isMirrorRepoSelected: true + gitHubOrganization: ${{ parameters.GitHubOrg }} + mirrorRepo: ${{ parameters.MirrorRepo }} + mirrorBranch: ${{ parameters.MirrorBranch }} + condition: ${{ parameters.condition }} + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Localization Files + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc' + PublishLocation: Container + ArtifactName: Loc + condition: ${{ parameters.condition }} + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish LocProject.json + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PublishLocation: Container + ArtifactName: Loc + condition: ${{ parameters.condition }} \ No newline at end of file diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml new file mode 100644 index 00000000000..432dc92ab27 --- /dev/null +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -0,0 +1,157 @@ +parameters: + configuration: 'Debug' + + # Optional: condition for the job to run + condition: '' + + # Optional: 'true' if future jobs should run even if this job fails + continueOnError: false + + # Optional: dependencies of the job + dependsOn: '' + + # Optional: Include PublishBuildArtifacts task + enablePublishBuildArtifacts: false + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: {} + + # Optional: should run as a public build even in the internal project + # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + runAsPublic: false + + # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing + publishUsingPipelines: false + + # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing + publishAssetsImmediately: false + + artifactsPublishingAdditionalParameters: '' + + signingValidationAdditionalParameters: '' + +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 + + variables: + - template: /eng/common/templates-official/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 + - name: runCodesignValidationInjection + value: false + # unconditional - needed for logs publishing (redactor tool version) + - template: /eng/common/templates-official/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: AzurePipelines-EO + image: 1ESPT-WINDOWS2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - checkout: self + fetchDepth: 3 + clean: true + + - task: DownloadBuildArtifacts@0 + displayName: Download artifact + inputs: + artifactName: AssetManifests + downloadPath: '$(Build.StagingDirectory)/Download' + checkDownloadedFiles: true + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + + - task: NuGetAuthenticate@1 + + - task: PowerShell@2 + displayName: Publish Build Assets + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet + /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:BuildAssetRegistryToken=$(MaestroAccessToken) + /p:MaestroApiEndpoint=https://maestro.dot.net + /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} + /p:OfficialBuildId=$(Build.BuildNumber) + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + + - task: powershell@2 + displayName: Create ReleaseConfigs Artifact + inputs: + targetType: inline + script: | + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId) + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)" + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild) + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish ReleaseConfigs Artifact + inputs: + PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs.txt' + PublishLocation: Container + ArtifactName: ReleaseConfigs + + - task: powershell@2 + displayName: Check if SymbolPublishingExclusionsFile.txt exists + inputs: + targetType: inline + script: | + $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + if(Test-Path -Path $symbolExclusionfile) + { + Write-Host "SymbolExclusionFile exists" + Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true" + } + else{ + Write-Host "Symbols Exclusion file does not exists" + Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false" + } + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish SymbolPublishingExclusionsFile Artifact + condition: eq(variables['SymbolExclusionFile'], 'true') + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PublishLocation: Container + ArtifactName: ReleaseConfigs + + - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - template: /eng/common/templates-official/post-build/setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: PowerShell@2 + displayName: Publish Using Darc + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + arguments: -BuildId $(BARBuildId) + -PublishingInfraVersion 3 + -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' + -MaestroToken '$(MaestroApiAccessToken)' + -WaitPublishingFinish true + -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' + -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + + - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: + - template: /eng/common/templates-official/steps/publish-logs.yml + parameters: + JobLabel: 'Publish_Artifacts_Logs' diff --git a/eng/common/templates-official/job/source-build.yml b/eng/common/templates-official/job/source-build.yml new file mode 100644 index 00000000000..50f04e642a3 --- /dev/null +++ b/eng/common/templates-official/job/source-build.yml @@ -0,0 +1,67 @@ +parameters: + # This template adds arcade-powered source-build to CI. The template produces a server job with a + # default ID 'Source_Build_Complete' to put in a dependency list if necessary. + + # Specifies the prefix for source-build jobs added to pipeline. Use this if disambiguation needed. + jobNamePrefix: 'Source_Build' + + # Defines the platform on which to run the job. By default, a linux-x64 machine, suitable for + # managed-only repositories. This is an object with these properties: + # + # name: '' + # The name of the job. This is included in the job ID. + # targetRID: '' + # The name of the target RID to use, instead of the one auto-detected by Arcade. + # nonPortable: false + # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than + # linux-x64), and compiling against distro-provided packages rather than portable ones. + # skipPublishValidation: false + # Disables publishing validation. By default, a check is performed to ensure no packages are + # published by source-build. + # container: '' + # A container to use. Runs in docker. + # pool: {} + # A pool to use. Runs directly on an agent. + # buildScript: '' + # Specifies the build script to invoke to perform the build in the repo. The default + # './build.sh' should work for typical Arcade repositories, but this is customizable for + # difficult situations. + # jobProperties: {} + # A list of job properties to inject at the top level, for potential extensibility beyond + # container and pool. + platform: {} + +jobs: +- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }} + displayName: Source-Build (${{ parameters.platform.name }}) + + ${{ each property in parameters.platform.jobProperties }}: + ${{ property.key }}: ${{ property.value }} + + ${{ if ne(parameters.platform.container, '') }}: + container: ${{ parameters.platform.container }} + + ${{ 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-official/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: $[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 + + ${{ if eq(variables['System.TeamProject'], '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')] + image: 1es-mariner-2-pt + os: linux + + ${{ if ne(parameters.platform.pool, '') }}: + pool: ${{ parameters.platform.pool }} + + workspace: + clean: all + + steps: + - template: /eng/common/templates-official/steps/source-build.yml + parameters: + platform: ${{ parameters.platform }} diff --git a/eng/common/templates-official/job/source-index-stage1.yml b/eng/common/templates-official/job/source-index-stage1.yml new file mode 100644 index 00000000000..757af7c7c4f --- /dev/null +++ b/eng/common/templates-official/job/source-index-stage1.yml @@ -0,0 +1,67 @@ +parameters: + runAsPublic: false + sourceIndexPackageVersion: 1.0.1-20231213.4 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" + preSteps: [] + binlogPath: artifacts/log/Debug/Build.binlog + condition: '' + dependsOn: '' + pool: '' + +jobs: +- job: SourceIndexStage1 + dependsOn: ${{ parameters.dependsOn }} + condition: ${{ parameters.condition }} + variables: + - name: SourceIndexPackageVersion + value: ${{ parameters.sourceIndexPackageVersion }} + - name: SourceIndexPackageSource + value: ${{ parameters.sourceIndexPackageSource }} + - name: BinlogPath + 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-official/variables/pool-providers.yml + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + ${{ if eq(parameters.pool, '') }}: + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + image: windows.vs2022.amd64.open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: $(DncEngInternalBuildPool) + image: windows.vs2022.amd64 + + steps: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} + + - task: UseDotNet@2 + displayName: Use .NET 8 SDK + inputs: + packageType: sdk + version: 8.0.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + + - script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: Download Tools + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + + - script: ${{ parameters.sourceIndexBuildCommand }} + displayName: Build Repository + + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: Process Binlog into indexable sln + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) + displayName: Upload stage1 artifacts to source index + env: + BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url) diff --git a/eng/common/templates-official/jobs/codeql-build.yml b/eng/common/templates-official/jobs/codeql-build.yml new file mode 100644 index 00000000000..b68d3c2f319 --- /dev/null +++ b/eng/common/templates-official/jobs/codeql-build.yml @@ -0,0 +1,31 @@ +parameters: + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md + continueOnError: false + # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + jobs: [] + # Optional: if specified, restore and use this version of Guardian instead of the default. + overrideGuardianVersion: '' + +jobs: +- template: /eng/common/templates-official/jobs/jobs.yml + parameters: + enableMicrobuild: false + enablePublishBuildArtifacts: false + enablePublishTestResults: false + enablePublishBuildAssets: false + enablePublishUsingPipelines: false + enableTelemetry: true + + variables: + - group: Publish-Build-Assets + # The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in + # sync with the packages.config file. + - name: DefaultGuardianVersion + value: 0.109.0 + - name: GuardianPackagesConfigFile + value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + - name: GuardianVersion + value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} + + jobs: ${{ parameters.jobs }} + diff --git a/eng/common/templates-official/jobs/jobs.yml b/eng/common/templates-official/jobs/jobs.yml new file mode 100644 index 00000000000..857a0f8ba43 --- /dev/null +++ b/eng/common/templates-official/jobs/jobs.yml @@ -0,0 +1,97 @@ +parameters: + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md + continueOnError: false + + # Optional: Include PublishBuildArtifacts task + enablePublishBuildArtifacts: false + + # Optional: Enable publishing using release pipelines + enablePublishUsingPipelines: false + + # Optional: Enable running the source-build jobs to build repo from source + enableSourceBuild: false + + # Optional: Parameters for source-build template. + # See /eng/common/templates-official/jobs/source-build.yml for options + sourceBuildParameters: [] + + graphFileGeneration: + # Optional: Enable generating the graph files at the end of the build + enabled: false + # Optional: Include toolset dependencies in the generated graph files + includeToolset: false + + # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + jobs: [] + + # Optional: Override automatically derived dependsOn value for "publish build assets" job + publishBuildAssetsDependsOn: '' + + # Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage. + publishAssetsImmediately: false + + # Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml) + artifactsPublishingAdditionalParameters: '' + signingValidationAdditionalParameters: '' + + # Optional: should run as a public build even in the internal project + # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + runAsPublic: false + + enableSourceIndex: false + sourceIndexParams: {} + +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + +jobs: +- ${{ each job in parameters.jobs }}: + - template: ../job/job.yml + parameters: + # pass along parameters + ${{ each parameter in parameters }}: + ${{ if ne(parameter.key, 'jobs') }}: + ${{ parameter.key }}: ${{ parameter.value }} + + # pass along job properties + ${{ each property in job }}: + ${{ if ne(property.key, 'job') }}: + ${{ property.key }}: ${{ property.value }} + + name: ${{ job.job }} + +- ${{ if eq(parameters.enableSourceBuild, true) }}: + - template: /eng/common/templates-official/jobs/source-build.yml + parameters: + allCompletedJobId: Source_Build_Complete + ${{ each parameter in parameters.sourceBuildParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} + +- ${{ if eq(parameters.enableSourceIndex, 'true') }}: + - template: ../job/source-index-stage1.yml + parameters: + runAsPublic: ${{ parameters.runAsPublic }} + ${{ each parameter in parameters.sourceIndexParams }}: + ${{ parameter.key }}: ${{ parameter.value }} + +- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - template: ../job/publish-build-assets.yml + parameters: + continueOnError: ${{ parameters.continueOnError }} + dependsOn: + - ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.publishBuildAssetsDependsOn }}: + - ${{ job.job }} + - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.jobs }}: + - ${{ job.job }} + - ${{ if eq(parameters.enableSourceBuild, true) }}: + - Source_Build_Complete + + runAsPublic: ${{ parameters.runAsPublic }} + publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} + publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }} + enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} diff --git a/eng/common/templates-official/jobs/source-build.yml b/eng/common/templates-official/jobs/source-build.yml new file mode 100644 index 00000000000..08e5db9bb11 --- /dev/null +++ b/eng/common/templates-official/jobs/source-build.yml @@ -0,0 +1,46 @@ +parameters: + # This template adds arcade-powered source-build to CI. A job is created for each platform, as + # well as an optional server job that completes when all platform jobs complete. + + # The name of the "join" job for all source-build platforms. If set to empty string, the job is + # not included. Existing repo pipelines can use this job depend on all source-build jobs + # completing without maintaining a separate list of every single job ID: just depend on this one + # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. + allCompletedJobId: '' + + # See /eng/common/templates-official/job/source-build.yml + jobNamePrefix: 'Source_Build' + + # This is the default platform provided by Arcade, intended for use by a managed-only repo. + defaultManagedPlatform: + name: 'Managed' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8' + + # Defines the platforms on which to run build jobs. One job is created for each platform, and the + # object in this array is sent to the job template as 'platform'. If no platforms are specified, + # one job runs on 'defaultManagedPlatform'. + platforms: [] + +jobs: + +- ${{ if ne(parameters.allCompletedJobId, '') }}: + - job: ${{ parameters.allCompletedJobId }} + displayName: Source-Build Complete + pool: server + dependsOn: + - ${{ each platform in parameters.platforms }}: + - ${{ parameters.jobNamePrefix }}_${{ platform.name }} + - ${{ if eq(length(parameters.platforms), 0) }}: + - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} + +- ${{ each platform in parameters.platforms }}: + - template: /eng/common/templates-official/job/source-build.yml + parameters: + jobNamePrefix: ${{ parameters.jobNamePrefix }} + platform: ${{ platform }} + +- ${{ if eq(length(parameters.platforms), 0) }}: + - template: /eng/common/templates-official/job/source-build.yml + parameters: + jobNamePrefix: ${{ parameters.jobNamePrefix }} + platform: ${{ parameters.defaultManagedPlatform }} diff --git a/eng/common/templates-official/post-build/common-variables.yml b/eng/common/templates-official/post-build/common-variables.yml new file mode 100644 index 00000000000..b9ede10bf09 --- /dev/null +++ b/eng/common/templates-official/post-build/common-variables.yml @@ -0,0 +1,24 @@ +variables: + - group: Publish-Build-Assets + + # Whether the build is internal or not + - name: IsInternalBuild + value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }} + + # Default Maestro++ API Endpoint and API Version + - name: MaestroApiEndPoint + value: "https://maestro.dot.net" + - name: MaestroApiAccessToken + value: $(MaestroAccessToken) + - name: MaestroApiVersion + value: "2020-02-20" + + - name: SourceLinkCLIVersion + value: 3.0.0 + - name: SymbolToolVersion + value: 1.0.1 + - name: BinlogToolVersion + value: 1.0.11 + + - name: runCodesignValidationInjection + value: false diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml new file mode 100644 index 00000000000..5c98fe1c0f3 --- /dev/null +++ b/eng/common/templates-official/post-build/post-build.yml @@ -0,0 +1,285 @@ +parameters: + # Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST. + # Publishing V1 is no longer supported + # Publishing V2 is no longer supported + # Publishing V3 is the default + - name: publishingInfraVersion + displayName: Which version of publishing should be used to promote the build definition? + type: number + default: 3 + values: + - 3 + + - name: BARBuildId + displayName: BAR Build Id + type: number + default: 0 + + - name: PromoteToChannelIds + displayName: Channel to promote BARBuildId to + type: string + default: '' + + - name: enableSourceLinkValidation + displayName: Enable SourceLink validation + type: boolean + default: false + + - name: enableSigningValidation + displayName: Enable signing validation + type: boolean + default: true + + - name: enableSymbolValidation + displayName: Enable symbol validation + type: boolean + default: false + + - name: enableNugetValidation + displayName: Enable NuGet validation + type: boolean + default: true + + - name: publishInstallersAndChecksums + displayName: Publish installers and checksums + type: boolean + default: true + + - name: SDLValidationParameters + type: object + default: + enable: false + publishGdn: false + continueOnError: false + params: '' + artifactNames: '' + downloadArtifacts: true + + # These parameters let the user customize the call to sdk-task.ps1 for publishing + # symbols & general artifacts as well as for signing validation + - name: symbolPublishingAdditionalParameters + displayName: Symbol publishing additional parameters + type: string + default: '' + + - name: artifactsPublishingAdditionalParameters + displayName: Artifact publishing additional parameters + type: string + default: '' + + - name: signingValidationAdditionalParameters + displayName: Signing validation additional parameters + type: string + default: '' + + # Which stages should finish execution before post-build stages start + - name: validateDependsOn + type: object + default: + - build + + - name: publishDependsOn + type: object + default: + - Validate + + # Optional: Call asset publishing rather than running in a separate stage + - name: publishAssetsImmediately + type: boolean + default: false + +stages: +- ${{ if or(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 + - template: /eng/common/templates-official/variables/pool-providers.yml + jobs: + - job: + displayName: NuGet Validation + condition: and(succeededOrFailed(), eq( ${{ parameters.enableNugetValidation }}, 'true')) + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + + - 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 + condition: and( eq( ${{ parameters.enableSigningValidation }}, 'true'), ne( variables['PostBuildSign'], 'true')) + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + itemPattern: | + ** + !**/Microsoft.SourceBuild.Intermediate.*.nupkg + + # 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@1 + displayName: 'Authenticate to AzDO Feeds' + + # 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' + BinlogToolVersion: $(BinlogToolVersion) + + - job: + displayName: SourceLink Validation + condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: BlobArtifacts + checkDownloadedFiles: true + + - 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 + +- ${{ if ne(parameters.publishAssetsImmediately, 'true') }}: + - stage: publish_using_darc + ${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: + dependsOn: ${{ parameters.publishDependsOn }} + ${{ else }}: + dependsOn: ${{ parameters.validateDependsOn }} + displayName: Publish using Darc + variables: + - template: common-variables.yml + - template: /eng/common/templates-official/variables/pool-providers.yml + jobs: + - job: + displayName: Publish Using Darc + timeoutInMinutes: 120 + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: NuGetAuthenticate@1 + + - task: PowerShell@2 + displayName: Publish Using Darc + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + arguments: -BuildId $(BARBuildId) + -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} + -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' + -MaestroToken '$(MaestroApiAccessToken)' + -WaitPublishingFinish true + -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' + -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' diff --git a/eng/common/templates-official/post-build/setup-maestro-vars.yml b/eng/common/templates-official/post-build/setup-maestro-vars.yml new file mode 100644 index 00000000000..0c87f149a4a --- /dev/null +++ b/eng/common/templates-official/post-build/setup-maestro-vars.yml @@ -0,0 +1,70 @@ +parameters: + BARBuildId: '' + PromoteToChannelIds: '' + +steps: + - ${{ if eq(coalesce(parameters.PromoteToChannelIds, 0), 0) }}: + - task: DownloadBuildArtifacts@0 + displayName: Download Release Configs + inputs: + buildType: current + artifactName: ReleaseConfigs + checkDownloadedFiles: true + + - task: PowerShell@2 + name: setReleaseVars + displayName: Set Release Configs Vars + inputs: + targetType: inline + pwsh: true + script: | + try { + if (!$Env:PromoteToMaestroChannels -or $Env:PromoteToMaestroChannels.Trim() -eq '') { + $Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt + + $BarId = $Content | Select -Index 0 + $Channels = $Content | Select -Index 1 + $IsStableBuild = $Content | Select -Index 2 + + $AzureDevOpsProject = $Env:System_TeamProject + $AzureDevOpsBuildDefinitionId = $Env:System_DefinitionId + $AzureDevOpsBuildId = $Env:Build_BuildId + } + else { + $buildApiEndpoint = "${Env:MaestroApiEndPoint}/api/builds/${Env:BARBuildId}?api-version=${Env:MaestroApiVersion}" + + $apiHeaders = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]' + $apiHeaders.Add('Accept', 'application/json') + $apiHeaders.Add('Authorization',"Bearer ${Env:MAESTRO_API_TOKEN}") + + $buildInfo = try { Invoke-WebRequest -Method Get -Uri $buildApiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" } + + $BarId = $Env:BARBuildId + $Channels = $Env:PromoteToMaestroChannels -split "," + $Channels = $Channels -join "][" + $Channels = "[$Channels]" + + $IsStableBuild = $buildInfo.stable + $AzureDevOpsProject = $buildInfo.azureDevOpsProject + $AzureDevOpsBuildDefinitionId = $buildInfo.azureDevOpsBuildDefinitionId + $AzureDevOpsBuildId = $buildInfo.azureDevOpsBuildId + } + + Write-Host "##vso[task.setvariable variable=BARBuildId]$BarId" + Write-Host "##vso[task.setvariable variable=TargetChannels]$Channels" + Write-Host "##vso[task.setvariable variable=IsStableBuild]$IsStableBuild" + + Write-Host "##vso[task.setvariable variable=AzDOProjectName]$AzureDevOpsProject" + Write-Host "##vso[task.setvariable variable=AzDOPipelineId]$AzureDevOpsBuildDefinitionId" + Write-Host "##vso[task.setvariable variable=AzDOBuildId]$AzureDevOpsBuildId" + } + catch { + Write-Host $_ + Write-Host $_.Exception + Write-Host $_.ScriptStackTrace + exit 1 + } + env: + MAESTRO_API_TOKEN: $(MaestroApiAccessToken) + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToMaestroChannels: ${{ parameters.PromoteToChannelIds }} diff --git a/eng/common/templates-official/post-build/trigger-subscription.yml b/eng/common/templates-official/post-build/trigger-subscription.yml new file mode 100644 index 00000000000..da669030daf --- /dev/null +++ b/eng/common/templates-official/post-build/trigger-subscription.yml @@ -0,0 +1,13 @@ +parameters: + ChannelId: 0 + +steps: +- task: PowerShell@2 + displayName: Triggering subscriptions + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + arguments: -SourceRepo $(Build.Repository.Uri) + -ChannelId ${{ parameters.ChannelId }} + -MaestroApiAccessToken $(MaestroAccessToken) + -MaestroApiEndPoint $(MaestroApiEndPoint) + -MaestroApiVersion $(MaestroApiVersion) diff --git a/eng/common/templates-official/steps/add-build-to-channel.yml b/eng/common/templates-official/steps/add-build-to-channel.yml new file mode 100644 index 00000000000..f67a210d62f --- /dev/null +++ b/eng/common/templates-official/steps/add-build-to-channel.yml @@ -0,0 +1,13 @@ +parameters: + ChannelId: 0 + +steps: +- task: PowerShell@2 + displayName: Add Build to Channel + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + arguments: -BuildId $(BARBuildId) + -ChannelId ${{ parameters.ChannelId }} + -MaestroApiAccessToken $(MaestroApiAccessToken) + -MaestroApiEndPoint $(MaestroApiEndPoint) + -MaestroApiVersion $(MaestroApiVersion) diff --git a/eng/common/templates-official/steps/component-governance.yml b/eng/common/templates-official/steps/component-governance.yml new file mode 100644 index 00000000000..0ecec47b0c9 --- /dev/null +++ b/eng/common/templates-official/steps/component-governance.yml @@ -0,0 +1,13 @@ +parameters: + disableComponentGovernance: false + componentGovernanceIgnoreDirectories: '' + +steps: +- ${{ if eq(parameters.disableComponentGovernance, 'true') }}: + - script: "echo ##vso[task.setvariable variable=skipComponentGovernanceDetection]true" + displayName: Set skipComponentGovernanceDetection variable +- ${{ if ne(parameters.disableComponentGovernance, 'true') }}: + - task: ComponentGovernanceComponentDetection@0 + continueOnError: true + inputs: + ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} \ No newline at end of file diff --git a/eng/common/templates-official/steps/generate-sbom.yml b/eng/common/templates-official/steps/generate-sbom.yml new file mode 100644 index 00000000000..488b560e8ba --- /dev/null +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -0,0 +1,48 @@ +# BuildDropPath - The root folder of the drop directory for which the manifest file will be generated. +# PackageName - The name of the package this SBOM represents. +# PackageVersion - The version of the package this SBOM represents. +# ManifestDirPath - The path of the directory where the generated manifest files will be placed +# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. + +parameters: + PackageVersion: 7.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + PackageName: '.NET' + ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom + IgnoreDirectories: '' + sbomContinueOnError: true + +steps: +- task: PowerShell@2 + displayName: Prep for SBOM generation in (Non-linux) + condition: or(eq(variables['Agent.Os'], 'Windows_NT'), eq(variables['Agent.Os'], 'Darwin')) + inputs: + filePath: ./eng/common/generate-sbom-prep.ps1 + arguments: ${{parameters.manifestDirPath}} + +# Chmodding is a workaround for https://github.com/dotnet/arcade/issues/8461 +- script: | + chmod +x ./eng/common/generate-sbom-prep.sh + ./eng/common/generate-sbom-prep.sh ${{parameters.manifestDirPath}} + displayName: Prep for SBOM generation in (Linux) + condition: eq(variables['Agent.Os'], 'Linux') + continueOnError: ${{ parameters.sbomContinueOnError }} + +- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0 + displayName: 'Generate SBOM manifest' + continueOnError: ${{ parameters.sbomContinueOnError }} + inputs: + PackageName: ${{ parameters.packageName }} + BuildDropPath: ${{ parameters.buildDropPath }} + PackageVersion: ${{ parameters.packageVersion }} + ManifestDirPath: ${{ parameters.manifestDirPath }} + ${{ if ne(parameters.IgnoreDirectories, '') }}: + AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}' + +- task: 1ES.PublishPipelineArtifact@1 + displayName: Publish SBOM manifest + continueOnError: ${{parameters.sbomContinueOnError}} + inputs: + targetPath: '${{parameters.manifestDirPath}}' + artifactName: $(ARTIFACT_NAME) + diff --git a/eng/common/templates-official/steps/publish-logs.yml b/eng/common/templates-official/steps/publish-logs.yml new file mode 100644 index 00000000000..84b2f559c56 --- /dev/null +++ b/eng/common/templates-official/steps/publish-logs.yml @@ -0,0 +1,49 @@ +parameters: + StageLabel: '' + JobLabel: '' + CustomSensitiveDataList: '' + # A default - in case value from eng/common/templates-official/post-build/common-variables.yml is not passed + BinlogToolVersion: '1.0.11' + +steps: +- task: Powershell@2 + displayName: Prepare Binlogs to Upload + inputs: + targetType: inline + script: | + New-Item -ItemType Directory $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + continueOnError: true + condition: always() + +- task: PowerShell@2 + displayName: Redact Logs + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1 + # For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml + # Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + # If the file exists - sensitive data for redaction will be sourced from it + # (single entry per line, lines starting with '# ' are considered comments and skipped) + arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs' + -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + '$(publishing-dnceng-devdiv-code-r-build-re)' + '$(MaestroAccessToken)' + '$(dn-bot-all-orgs-artifact-feeds-rw)' + '$(akams-client-id)' + '$(akams-client-secret)' + '$(microsoft-symbol-server-pat)' + '$(symweb-symbol-server-pat)' + '$(dn-bot-all-orgs-build-rw-code-rw)' + ${{parameters.CustomSensitiveDataList}} + continueOnError: true + condition: always() + +- task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PublishLocation: Container + ArtifactName: PostBuildLogs + continueOnError: true + condition: always() diff --git a/eng/common/templates-official/steps/retain-build.yml b/eng/common/templates-official/steps/retain-build.yml new file mode 100644 index 00000000000..83d97a26a01 --- /dev/null +++ b/eng/common/templates-official/steps/retain-build.yml @@ -0,0 +1,28 @@ +parameters: + # Optional azure devops PAT with build execute permissions for the build's organization, + # only needed if the build that should be retained ran on a different organization than + # the pipeline where this template is executing from + Token: '' + # Optional BuildId to retain, defaults to the current running build + BuildId: '' + # Azure devops Organization URI for the build in the https://dev.azure.com/ format. + # Defaults to the organization the current pipeline is running on + AzdoOrgUri: '$(System.CollectionUri)' + # Azure devops project for the build. Defaults to the project the current pipeline is running on + AzdoProject: '$(System.TeamProject)' + +steps: + - task: powershell@2 + inputs: + targetType: 'filePath' + filePath: eng/common/retain-build.ps1 + pwsh: true + arguments: > + -AzdoOrgUri: ${{parameters.AzdoOrgUri}} + -AzdoProject ${{parameters.AzdoProject}} + -Token ${{coalesce(parameters.Token, '$env:SYSTEM_ACCESSTOKEN') }} + -BuildId ${{coalesce(parameters.BuildId, '$env:BUILD_ID')}} + displayName: Enable permanent build retention + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + BUILD_ID: $(Build.BuildId) \ No newline at end of file diff --git a/eng/common/templates-official/steps/send-to-helix.yml b/eng/common/templates-official/steps/send-to-helix.yml new file mode 100644 index 00000000000..3eb7e2d5f84 --- /dev/null +++ b/eng/common/templates-official/steps/send-to-helix.yml @@ -0,0 +1,91 @@ +# Please remember to update the documentation if you make changes to these parameters! +parameters: + HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/ + HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/' + HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number + HelixTargetQueues: '' # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues + HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group + HelixConfiguration: '' # optional -- additional property attached to a job + HelixPreCommands: '' # optional -- commands to run before Helix work item execution + HelixPostCommands: '' # optional -- commands to run after Helix work item execution + WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects + WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects + WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects + CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload + XUnitProjects: '' # optional -- semicolon-delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true + XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects + XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects + XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner + XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects + IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion + DotNetCliPackageType: '' # optional -- either 'sdk', 'runtime' or 'aspnetcore-runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json + DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json + WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget." + IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set + HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net ) + Creator: '' # optional -- if the build is external, use this to specify who is sending the job + DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO + condition: succeeded() # optional -- condition for step to execute; defaults to succeeded() + continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false + +steps: + - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' + displayName: ${{ parameters.DisplayNamePrefix }} (Windows) + env: + BuildConfig: $(_BuildConfig) + HelixSource: ${{ parameters.HelixSource }} + HelixType: ${{ parameters.HelixType }} + HelixBuild: ${{ parameters.HelixBuild }} + HelixConfiguration: ${{ parameters.HelixConfiguration }} + HelixTargetQueues: ${{ parameters.HelixTargetQueues }} + HelixAccessToken: ${{ parameters.HelixAccessToken }} + HelixPreCommands: ${{ parameters.HelixPreCommands }} + HelixPostCommands: ${{ parameters.HelixPostCommands }} + WorkItemDirectory: ${{ parameters.WorkItemDirectory }} + WorkItemCommand: ${{ parameters.WorkItemCommand }} + WorkItemTimeout: ${{ parameters.WorkItemTimeout }} + CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }} + XUnitProjects: ${{ parameters.XUnitProjects }} + XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }} + XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }} + XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }} + XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }} + IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }} + DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }} + DotNetCliVersion: ${{ parameters.DotNetCliVersion }} + WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} + Creator: ${{ parameters.Creator }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} + - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog + displayName: ${{ parameters.DisplayNamePrefix }} (Unix) + env: + BuildConfig: $(_BuildConfig) + HelixSource: ${{ parameters.HelixSource }} + HelixType: ${{ parameters.HelixType }} + HelixBuild: ${{ parameters.HelixBuild }} + HelixConfiguration: ${{ parameters.HelixConfiguration }} + HelixTargetQueues: ${{ parameters.HelixTargetQueues }} + HelixAccessToken: ${{ parameters.HelixAccessToken }} + HelixPreCommands: ${{ parameters.HelixPreCommands }} + HelixPostCommands: ${{ parameters.HelixPostCommands }} + WorkItemDirectory: ${{ parameters.WorkItemDirectory }} + WorkItemCommand: ${{ parameters.WorkItemCommand }} + WorkItemTimeout: ${{ parameters.WorkItemTimeout }} + CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }} + XUnitProjects: ${{ parameters.XUnitProjects }} + XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }} + XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }} + XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }} + XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }} + IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }} + DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }} + DotNetCliVersion: ${{ parameters.DotNetCliVersion }} + WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} + Creator: ${{ parameters.Creator }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} diff --git a/eng/common/templates-official/steps/source-build.yml b/eng/common/templates-official/steps/source-build.yml new file mode 100644 index 00000000000..b1db70842f5 --- /dev/null +++ b/eng/common/templates-official/steps/source-build.yml @@ -0,0 +1,129 @@ +parameters: + # This template adds arcade-powered source-build to CI. + + # This is a 'steps' template, and is intended for advanced scenarios where the existing build + # infra has a careful build methodology that must be followed. For example, a repo + # (dotnet/runtime) might choose to clone the GitHub repo only once and store it as a pipeline + # artifact for all subsequent jobs to use, to reduce dependence on a strong network connection to + # GitHub. Using this steps template leaves room for that infra to be included. + + # Defines the platform on which to run the steps. See 'eng/common/templates-official/job/source-build.yml' + # for details. The entire object is described in the 'job' template for simplicity, even though + # the usage of the properties on this object is split between the 'job' and 'steps' templates. + platform: {} + +steps: +# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.) +- script: | + set -x + df -h + + # If building on the internal project, the artifact feeds variable may be available (usually only if needed) + # In that case, call the feed setup script to add internal feeds corresponding to public ones. + # In addition, add an msbuild argument to copy the WIP from the repo to the target build location. + # This is because SetupNuGetSources.sh will alter the current NuGet.config file, and we need to preserve those + # changes. + internalRestoreArgs= + if [ '$(dn-bot-dnceng-artifact-feeds-rw)' != '$''(dn-bot-dnceng-artifact-feeds-rw)' ]; then + # Temporarily work around https://github.com/dotnet/arcade/issues/7709 + chmod +x $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh $(Build.SourcesDirectory)/NuGet.config $(dn-bot-dnceng-artifact-feeds-rw) + internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' + + # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. + # This only works if there is a username/email configured, which won't be the case in most CI runs. + git config --get user.email + if [ $? -ne 0 ]; then + git config user.email dn-bot@microsoft.com + git config user.name dn-bot + fi + fi + + # If building on the internal project, the internal storage variable may be available (usually only if needed) + # In that case, add variables to allow the download of internal runtimes if the specified versions are not found + # in the default public locations. + internalRuntimeDownloadArgs= + if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + fi + + buildConfig=Release + # Check if AzDO substitutes in a build config from a variable, and use it if so. + if [ '$(_BuildConfig)' != '$''(_BuildConfig)' ]; then + buildConfig='$(_BuildConfig)' + fi + + officialBuildArgs= + if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then + officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' + fi + + targetRidArgs= + if [ '${{ parameters.platform.targetRID }}' != '' ]; then + targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' + fi + + runtimeOsArgs= + if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then + runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' + fi + + baseOsArgs= + if [ '${{ parameters.platform.baseOS }}' != '' ]; then + baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' + fi + + publishArgs= + if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then + publishArgs='--publish' + fi + + assetManifestFileName=SourceBuild_RidSpecific.xml + if [ '${{ parameters.platform.name }}' != '' ]; then + assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml + fi + + ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ + --configuration $buildConfig \ + --restore --build --pack $publishArgs -bl \ + $officialBuildArgs \ + $internalRuntimeDownloadArgs \ + $internalRestoreArgs \ + $targetRidArgs \ + $runtimeOsArgs \ + $baseOsArgs \ + /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ + /p:ArcadeBuildFromSource=true \ + /p:AssetManifestFileName=$assetManifestFileName + displayName: Build + +# Upload build logs for diagnosis. +- task: CopyFiles@2 + displayName: Prepare BuildLogs staging directory + inputs: + SourceFolder: '$(Build.SourcesDirectory)' + Contents: | + **/*.log + **/*.binlog + artifacts/sb/prebuilt-report/** + TargetFolder: '$(Build.StagingDirectory)/BuildLogs' + CleanTargetFolder: true + continueOnError: true + condition: succeededOrFailed() + +- task: 1ES.PublishPipelineArtifact@1 + displayName: Publish BuildLogs + inputs: + targetPath: '$(Build.StagingDirectory)/BuildLogs' + artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) + continueOnError: true + condition: succeededOrFailed() + +# Manually inject component detection so that we can ignore the source build upstream cache, which contains +# a nupkg cache of input packages (a local feed). +# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' +# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets +- task: ComponentGovernanceComponentDetection@0 + displayName: Component Detection (Exclude upstream cache) + inputs: + ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml new file mode 100644 index 00000000000..beab7d1bfba --- /dev/null +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -0,0 +1,45 @@ +# 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 it 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-official/variables/pool-providers.yml +# +# ... then anywhere specifying the pool provider use the runtime variables, +# $(DncEngInternalBuildPool) +# +# pool: +# name: $(DncEngInternalBuildPool) +# image: 1es-windows-2022-pt + +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: 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/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml new file mode 100644 index 00000000000..dbdd66d4a4b --- /dev/null +++ b/eng/common/templates-official/variables/sdl-variables.yml @@ -0,0 +1,7 @@ +variables: +# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in +# sync with the packages.config file. +- name: DefaultGuardianVersion + value: 0.109.0 +- name: GuardianPackagesConfigFile + value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/global.json b/global.json index 244b590d679..845141406aa 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24128.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24128.1" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24151.1", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24151.1" } } From 1e9d8be71d1627cbcd42208079bcd4a74630e09f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 14:18:06 +0000 Subject: [PATCH 124/131] Update dependencies from https://github.com/dotnet/arcade build 20240301.4 (#6162) [main] Update dependencies from dotnet/arcade --- eng/Version.Details.xml | 20 +- eng/Versions.props | 6 +- eng/common/templates-official/job/job.yml | 255 ++++++++++++++++ .../templates-official/job/onelocbuild.yml | 112 +++++++ .../job/publish-build-assets.yml | 153 ++++++++++ .../templates-official/job/source-build.yml | 67 ++++ .../job/source-index-stage1.yml | 68 +++++ .../templates-official/jobs/codeql-build.yml | 31 ++ eng/common/templates-official/jobs/jobs.yml | 97 ++++++ .../templates-official/jobs/source-build.yml | 46 +++ .../post-build/common-variables.yml | 22 ++ .../post-build/post-build.yml | 285 ++++++++++++++++++ .../post-build/setup-maestro-vars.yml | 70 +++++ .../post-build/trigger-subscription.yml | 13 + .../steps/add-build-to-channel.yml | 13 + .../templates-official/steps/build-reason.yml | 12 + .../steps/component-governance.yml | 13 + .../steps/execute-codeql.yml | 32 ++ .../templates-official/steps/execute-sdl.yml | 88 ++++++ .../steps/generate-sbom.yml | 48 +++ .../templates-official/steps/publish-logs.yml | 23 ++ .../templates-official/steps/retain-build.yml | 28 ++ .../steps/send-to-helix.yml | 91 ++++++ .../templates-official/steps/source-build.yml | 129 ++++++++ .../variables/pool-providers.yml | 45 +++ .../variables/sdl-variables.yml | 7 + global.json | 4 +- 27 files changed, 1763 insertions(+), 15 deletions(-) create mode 100644 eng/common/templates-official/job/job.yml create mode 100644 eng/common/templates-official/job/onelocbuild.yml create mode 100644 eng/common/templates-official/job/publish-build-assets.yml create mode 100644 eng/common/templates-official/job/source-build.yml create mode 100644 eng/common/templates-official/job/source-index-stage1.yml create mode 100644 eng/common/templates-official/jobs/codeql-build.yml create mode 100644 eng/common/templates-official/jobs/jobs.yml create mode 100644 eng/common/templates-official/jobs/source-build.yml create mode 100644 eng/common/templates-official/post-build/common-variables.yml create mode 100644 eng/common/templates-official/post-build/post-build.yml create mode 100644 eng/common/templates-official/post-build/setup-maestro-vars.yml create mode 100644 eng/common/templates-official/post-build/trigger-subscription.yml create mode 100644 eng/common/templates-official/steps/add-build-to-channel.yml create mode 100644 eng/common/templates-official/steps/build-reason.yml create mode 100644 eng/common/templates-official/steps/component-governance.yml create mode 100644 eng/common/templates-official/steps/execute-codeql.yml create mode 100644 eng/common/templates-official/steps/execute-sdl.yml create mode 100644 eng/common/templates-official/steps/generate-sbom.yml create mode 100644 eng/common/templates-official/steps/publish-logs.yml create mode 100644 eng/common/templates-official/steps/retain-build.yml create mode 100644 eng/common/templates-official/steps/send-to-helix.yml create mode 100644 eng/common/templates-official/steps/source-build.yml create mode 100644 eng/common/templates-official/variables/pool-providers.yml create mode 100644 eng/common/templates-official/variables/sdl-variables.yml diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c9c02bf70fb..6495dea886f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers b4d9a1334d5189172977ba8fddd00bda70161e4a - + https://github.com/dotnet/arcade - 042763a811fd94dc3556253d4c64118dd665216e + cbb61c3a9a42e7c3cce17ee453ff5ecdc7f69282 - + https://github.com/dotnet/arcade - 042763a811fd94dc3556253d4c64118dd665216e + cbb61c3a9a42e7c3cce17ee453ff5ecdc7f69282 - + https://github.com/dotnet/arcade - 042763a811fd94dc3556253d4c64118dd665216e + cbb61c3a9a42e7c3cce17ee453ff5ecdc7f69282 - + https://github.com/dotnet/arcade - 042763a811fd94dc3556253d4c64118dd665216e + cbb61c3a9a42e7c3cce17ee453ff5ecdc7f69282 https://github.com/dotnet/installer 68e8abb1d3e1a240a6e4c29dcd220aae91681676 - + https://github.com/dotnet/arcade - 042763a811fd94dc3556253d4c64118dd665216e + cbb61c3a9a42e7c3cce17ee453ff5ecdc7f69282 https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index d930214b972..800a75ed226 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,9 +48,9 @@ --> - 8.0.0-beta.24123.1 - 8.0.0-beta.24123.1 - 8.0.0-beta.24123.1 + 8.0.0-beta.24151.4 + 8.0.0-beta.24151.4 + 8.0.0-beta.24151.4 8.0.1 8.0.1-servicing.23580.8 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml new file mode 100644 index 00000000000..9e7bebe9af8 --- /dev/null +++ b/eng/common/templates-official/job/job.yml @@ -0,0 +1,255 @@ +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + +parameters: +# Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + cancelTimeoutInMinutes: '' + condition: '' + container: '' + continueOnError: false + dependsOn: '' + displayName: '' + pool: '' + steps: [] + strategy: '' + timeoutInMinutes: '' + variables: [] + workspace: '' + +# Job base template specific parameters + # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md + artifacts: '' + enableMicrobuild: false + enablePublishBuildArtifacts: false + enablePublishBuildAssets: false + enablePublishTestResults: false + enablePublishUsingPipelines: false + enableBuildRetry: false + disableComponentGovernance: '' + componentGovernanceIgnoreDirectories: '' + mergeTestResults: false + testRunTitle: '' + testResultsFormat: '' + name: '' + preSteps: [] + runAsPublic: false +# Sbom related params + enableSbom: true + PackageVersion: 7.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + +jobs: +- job: ${{ parameters.name }} + + ${{ if ne(parameters.cancelTimeoutInMinutes, '') }}: + cancelTimeoutInMinutes: ${{ parameters.cancelTimeoutInMinutes }} + + ${{ if ne(parameters.condition, '') }}: + condition: ${{ parameters.condition }} + + ${{ if ne(parameters.container, '') }}: + container: ${{ parameters.container }} + + ${{ if ne(parameters.continueOnError, '') }}: + continueOnError: ${{ parameters.continueOnError }} + + ${{ if ne(parameters.dependsOn, '') }}: + dependsOn: ${{ parameters.dependsOn }} + + ${{ if ne(parameters.displayName, '') }}: + displayName: ${{ parameters.displayName }} + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + + ${{ if ne(parameters.strategy, '') }}: + strategy: ${{ parameters.strategy }} + + ${{ if ne(parameters.timeoutInMinutes, '') }}: + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + + variables: + - ${{ if ne(parameters.enableTelemetry, 'false') }}: + - name: DOTNET_CLI_TELEMETRY_PROFILE + value: '$(Build.Repository.Uri)' + - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: + - name: EnableRichCodeNavigation + value: 'true' + # Retry signature validation up to three times, waiting 2 seconds between attempts. + # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures + - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY + value: 3,2000 + - ${{ each variable in parameters.variables }}: + # handle name-value variable syntax + # example: + # - name: [key] + # value: [value] + - ${{ if ne(variable.name, '') }}: + - name: ${{ variable.name }} + value: ${{ variable.value }} + + # handle variable groups + - ${{ if ne(variable.group, '') }}: + - group: ${{ variable.group }} + + # handle template variable syntax + # example: + # - template: path/to/template.yml + # parameters: + # [key]: [value] + - ${{ if ne(variable.template, '') }}: + - template: ${{ variable.template }} + ${{ if ne(variable.parameters, '') }}: + parameters: ${{ variable.parameters }} + + # handle key-value variable syntax. + # example: + # - [key]: [value] + - ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}: + - ${{ each pair in variable }}: + - name: ${{ pair.key }} + value: ${{ pair.value }} + + # DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds + - ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - group: DotNet-HelixApi-Access + + ${{ if ne(parameters.workspace, '') }}: + workspace: ${{ parameters.workspace }} + + steps: + - ${{ if ne(parameters.preSteps, '') }}: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildSigningPlugin@3 + displayName: Install MicroBuild plugin + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + env: + TeamName: $(_TeamName) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + + - ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}: + - task: NuGetAuthenticate@1 + + - ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}: + - task: DownloadPipelineArtifact@2 + inputs: + buildType: current + artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }} + targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }} + itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }} + + - ${{ each step in parameters.steps }}: + - ${{ step }} + + - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: + - task: RichCodeNavIndexer@0 + displayName: RichCodeNav Upload + inputs: + languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} + environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} + richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} + continueOnError: true + + - template: /eng/common/templates-official/steps/component-governance.yml + parameters: + ${{ if eq(parameters.disableComponentGovernance, '') }}: + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}: + disableComponentGovernance: false + ${{ else }}: + disableComponentGovernance: true + ${{ else }}: + disableComponentGovernance: ${{ parameters.disableComponentGovernance }} + componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} + + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) + + - ${{ if ne(parameters.artifacts.publish, '') }}: + - ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}: + - task: CopyFiles@2 + displayName: Gather binaries for publish to artifacts + inputs: + SourceFolder: 'artifacts/bin' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin' + - task: CopyFiles@2 + displayName: Gather packages for publish to artifacts + inputs: + SourceFolder: 'artifacts/packages' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages' + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish pipeline artifacts + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} + continueOnError: true + condition: always() + - ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}: + - publish: artifacts/log + artifact: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }} + displayName: Publish logs + continueOnError: true + condition: always() + + - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + continueOnError: true + condition: always() + + - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: + - task: PublishTestResults@2 + displayName: Publish XUnit Test Results + inputs: + testResultsFormat: 'xUnit' + testResultsFiles: '*.xml' + searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit + mergeTestResults: ${{ parameters.mergeTestResults }} + continueOnError: true + condition: always() + - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'vstest')) }}: + - task: PublishTestResults@2 + displayName: Publish TRX Test Results + inputs: + testResultsFormat: 'VSTest' + testResultsFiles: '*.trx' + searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx + mergeTestResults: ${{ parameters.mergeTestResults }} + continueOnError: true + condition: always() + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}: + - template: /eng/common/templates-official/steps/generate-sbom.yml + parameters: + PackageVersion: ${{ parameters.packageVersion}} + BuildDropPath: ${{ parameters.buildDropPath }} + IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} + + - ${{ if eq(parameters.enableBuildRetry, 'true') }}: + - publish: $(Build.SourcesDirectory)\eng\common\BuildConfiguration + artifact: BuildConfiguration + displayName: Publish build retry configuration + continueOnError: true diff --git a/eng/common/templates-official/job/onelocbuild.yml b/eng/common/templates-official/job/onelocbuild.yml new file mode 100644 index 00000000000..ba9ba493032 --- /dev/null +++ b/eng/common/templates-official/job/onelocbuild.yml @@ -0,0 +1,112 @@ +parameters: + # Optional: dependencies of the job + dependsOn: '' + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: '' + + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex + GithubPat: $(BotAccount-dotnet-bot-repo-PAT) + + SourcesDirectory: $(Build.SourcesDirectory) + CreatePr: true + AutoCompletePr: false + ReusePr: true + UseLfLineEndings: true + UseCheckedInLocProjectJson: false + SkipLocProjectJsonGeneration: false + LanguageSet: VS_Main_Languages + LclSource: lclFilesInRepo + LclPackageId: '' + RepoType: gitHub + GitHubOrg: dotnet + MirrorRepo: '' + MirrorBranch: main + condition: '' + JobNameSuffix: '' + +jobs: +- job: OneLocBuild${{ parameters.JobNameSuffix }} + + dependsOn: ${{ parameters.dependsOn }} + + 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-official/variables/pool-providers.yml + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + ${{ if eq(parameters.pool, '') }}: + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + + steps: + - ${{ 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 + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + inputs: + locProj: eng/Localize/LocProject.json + outDir: $(Build.ArtifactStagingDirectory) + lclSource: ${{ parameters.LclSource }} + lclPackageId: ${{ parameters.LclPackageId }} + isCreatePrSelected: ${{ parameters.CreatePr }} + isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} + ${{ if eq(parameters.CreatePr, true) }}: + isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} + ${{ if eq(parameters.RepoType, 'gitHub') }}: + isShouldReusePrSelected: ${{ parameters.ReusePr }} + packageSourceAuth: patAuth + patVariable: ${{ parameters.CeapexPat }} + ${{ if eq(parameters.RepoType, 'gitHub') }}: + repoType: ${{ parameters.RepoType }} + gitHubPatVariable: "${{ parameters.GithubPat }}" + ${{ if ne(parameters.MirrorRepo, '') }}: + isMirrorRepoSelected: true + gitHubOrganization: ${{ parameters.GitHubOrg }} + mirrorRepo: ${{ parameters.MirrorRepo }} + mirrorBranch: ${{ parameters.MirrorBranch }} + condition: ${{ parameters.condition }} + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Localization Files + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc' + PublishLocation: Container + ArtifactName: Loc + condition: ${{ parameters.condition }} + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish LocProject.json + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PublishLocation: Container + ArtifactName: Loc + condition: ${{ parameters.condition }} \ No newline at end of file diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml new file mode 100644 index 00000000000..ea5104625fa --- /dev/null +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -0,0 +1,153 @@ +parameters: + configuration: 'Debug' + + # Optional: condition for the job to run + condition: '' + + # Optional: 'true' if future jobs should run even if this job fails + continueOnError: false + + # Optional: dependencies of the job + dependsOn: '' + + # Optional: Include PublishBuildArtifacts task + enablePublishBuildArtifacts: false + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: {} + + # Optional: should run as a public build even in the internal project + # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + runAsPublic: false + + # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing + publishUsingPipelines: false + + # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing + publishAssetsImmediately: false + + artifactsPublishingAdditionalParameters: '' + + signingValidationAdditionalParameters: '' + +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 + + variables: + - template: /eng/common/templates-official/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 + - name: runCodesignValidationInjection + value: false + - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - template: /eng/common/templates-official/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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: DownloadBuildArtifacts@0 + displayName: Download artifact + inputs: + artifactName: AssetManifests + downloadPath: '$(Build.StagingDirectory)/Download' + checkDownloadedFiles: true + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + + - task: NuGetAuthenticate@1 + + - task: PowerShell@2 + displayName: Publish Build Assets + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet + /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:BuildAssetRegistryToken=$(MaestroAccessToken) + /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com + /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} + /p:OfficialBuildId=$(Build.BuildNumber) + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + + - task: powershell@2 + displayName: Create ReleaseConfigs Artifact + inputs: + targetType: inline + script: | + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId) + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)" + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild) + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish ReleaseConfigs Artifact + inputs: + PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs.txt' + PublishLocation: Container + ArtifactName: ReleaseConfigs + + - task: powershell@2 + displayName: Check if SymbolPublishingExclusionsFile.txt exists + inputs: + targetType: inline + script: | + $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + if(Test-Path -Path $symbolExclusionfile) + { + Write-Host "SymbolExclusionFile exists" + Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true" + } + else{ + Write-Host "Symbols Exclusion file does not exists" + Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false" + } + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish SymbolPublishingExclusionsFile Artifact + condition: eq(variables['SymbolExclusionFile'], 'true') + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PublishLocation: Container + ArtifactName: ReleaseConfigs + + - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: + - template: /eng/common/templates-official/post-build/setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: PowerShell@2 + displayName: Publish Using Darc + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + arguments: -BuildId $(BARBuildId) + -PublishingInfraVersion 3 + -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' + -MaestroToken '$(MaestroApiAccessToken)' + -WaitPublishingFinish true + -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' + -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' + + - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: + - template: /eng/common/templates-official/steps/publish-logs.yml + parameters: + JobLabel: 'Publish_Artifacts_Logs' diff --git a/eng/common/templates-official/job/source-build.yml b/eng/common/templates-official/job/source-build.yml new file mode 100644 index 00000000000..8aba3b44bb2 --- /dev/null +++ b/eng/common/templates-official/job/source-build.yml @@ -0,0 +1,67 @@ +parameters: + # This template adds arcade-powered source-build to CI. The template produces a server job with a + # default ID 'Source_Build_Complete' to put in a dependency list if necessary. + + # Specifies the prefix for source-build jobs added to pipeline. Use this if disambiguation needed. + jobNamePrefix: 'Source_Build' + + # Defines the platform on which to run the job. By default, a linux-x64 machine, suitable for + # managed-only repositories. This is an object with these properties: + # + # name: '' + # The name of the job. This is included in the job ID. + # targetRID: '' + # The name of the target RID to use, instead of the one auto-detected by Arcade. + # nonPortable: false + # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than + # linux-x64), and compiling against distro-provided packages rather than portable ones. + # skipPublishValidation: false + # Disables publishing validation. By default, a check is performed to ensure no packages are + # published by source-build. + # container: '' + # A container to use. Runs in docker. + # pool: {} + # A pool to use. Runs directly on an agent. + # buildScript: '' + # Specifies the build script to invoke to perform the build in the repo. The default + # './build.sh' should work for typical Arcade repositories, but this is customizable for + # difficult situations. + # jobProperties: {} + # A list of job properties to inject at the top level, for potential extensibility beyond + # container and pool. + platform: {} + +jobs: +- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }} + displayName: Source-Build (${{ parameters.platform.name }}) + + ${{ each property in parameters.platform.jobProperties }}: + ${{ property.key }}: ${{ property.value }} + + ${{ if ne(parameters.platform.container, '') }}: + container: ${{ parameters.platform.container }} + + ${{ 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-official/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: $[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: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] + image: 1es-mariner-2-pt + os: linux + + ${{ if ne(parameters.platform.pool, '') }}: + pool: ${{ parameters.platform.pool }} + + workspace: + clean: all + + steps: + - template: /eng/common/templates-official/steps/source-build.yml + parameters: + platform: ${{ parameters.platform }} diff --git a/eng/common/templates-official/job/source-index-stage1.yml b/eng/common/templates-official/job/source-index-stage1.yml new file mode 100644 index 00000000000..4b633739170 --- /dev/null +++ b/eng/common/templates-official/job/source-index-stage1.yml @@ -0,0 +1,68 @@ +parameters: + runAsPublic: false + sourceIndexPackageVersion: 1.0.1-20230228.2 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" + preSteps: [] + binlogPath: artifacts/log/Debug/Build.binlog + condition: '' + dependsOn: '' + pool: '' + +jobs: +- job: SourceIndexStage1 + dependsOn: ${{ parameters.dependsOn }} + condition: ${{ parameters.condition }} + variables: + - name: SourceIndexPackageVersion + value: ${{ parameters.sourceIndexPackageVersion }} + - name: SourceIndexPackageSource + value: ${{ parameters.sourceIndexPackageSource }} + - name: BinlogPath + 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-official/variables/pool-providers.yml + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + ${{ if eq(parameters.pool, '') }}: + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + demands: ImageOverride -equals windows.vs2019.amd64.open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + + steps: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} + + - task: UseDotNet@2 + displayName: Use .NET Core SDK 6 + inputs: + packageType: sdk + version: 6.0.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + + - script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: Download Tools + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + + - script: ${{ parameters.sourceIndexBuildCommand }} + displayName: Build Repository + + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: Process Binlog into indexable sln + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) + displayName: Upload stage1 artifacts to source index + env: + BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url) diff --git a/eng/common/templates-official/jobs/codeql-build.yml b/eng/common/templates-official/jobs/codeql-build.yml new file mode 100644 index 00000000000..b68d3c2f319 --- /dev/null +++ b/eng/common/templates-official/jobs/codeql-build.yml @@ -0,0 +1,31 @@ +parameters: + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md + continueOnError: false + # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + jobs: [] + # Optional: if specified, restore and use this version of Guardian instead of the default. + overrideGuardianVersion: '' + +jobs: +- template: /eng/common/templates-official/jobs/jobs.yml + parameters: + enableMicrobuild: false + enablePublishBuildArtifacts: false + enablePublishTestResults: false + enablePublishBuildAssets: false + enablePublishUsingPipelines: false + enableTelemetry: true + + variables: + - group: Publish-Build-Assets + # The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in + # sync with the packages.config file. + - name: DefaultGuardianVersion + value: 0.109.0 + - name: GuardianPackagesConfigFile + value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + - name: GuardianVersion + value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} + + jobs: ${{ parameters.jobs }} + diff --git a/eng/common/templates-official/jobs/jobs.yml b/eng/common/templates-official/jobs/jobs.yml new file mode 100644 index 00000000000..857a0f8ba43 --- /dev/null +++ b/eng/common/templates-official/jobs/jobs.yml @@ -0,0 +1,97 @@ +parameters: + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md + continueOnError: false + + # Optional: Include PublishBuildArtifacts task + enablePublishBuildArtifacts: false + + # Optional: Enable publishing using release pipelines + enablePublishUsingPipelines: false + + # Optional: Enable running the source-build jobs to build repo from source + enableSourceBuild: false + + # Optional: Parameters for source-build template. + # See /eng/common/templates-official/jobs/source-build.yml for options + sourceBuildParameters: [] + + graphFileGeneration: + # Optional: Enable generating the graph files at the end of the build + enabled: false + # Optional: Include toolset dependencies in the generated graph files + includeToolset: false + + # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + jobs: [] + + # Optional: Override automatically derived dependsOn value for "publish build assets" job + publishBuildAssetsDependsOn: '' + + # Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage. + publishAssetsImmediately: false + + # Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml) + artifactsPublishingAdditionalParameters: '' + signingValidationAdditionalParameters: '' + + # Optional: should run as a public build even in the internal project + # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + runAsPublic: false + + enableSourceIndex: false + sourceIndexParams: {} + +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + +jobs: +- ${{ each job in parameters.jobs }}: + - template: ../job/job.yml + parameters: + # pass along parameters + ${{ each parameter in parameters }}: + ${{ if ne(parameter.key, 'jobs') }}: + ${{ parameter.key }}: ${{ parameter.value }} + + # pass along job properties + ${{ each property in job }}: + ${{ if ne(property.key, 'job') }}: + ${{ property.key }}: ${{ property.value }} + + name: ${{ job.job }} + +- ${{ if eq(parameters.enableSourceBuild, true) }}: + - template: /eng/common/templates-official/jobs/source-build.yml + parameters: + allCompletedJobId: Source_Build_Complete + ${{ each parameter in parameters.sourceBuildParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} + +- ${{ if eq(parameters.enableSourceIndex, 'true') }}: + - template: ../job/source-index-stage1.yml + parameters: + runAsPublic: ${{ parameters.runAsPublic }} + ${{ each parameter in parameters.sourceIndexParams }}: + ${{ parameter.key }}: ${{ parameter.value }} + +- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - template: ../job/publish-build-assets.yml + parameters: + continueOnError: ${{ parameters.continueOnError }} + dependsOn: + - ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.publishBuildAssetsDependsOn }}: + - ${{ job.job }} + - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.jobs }}: + - ${{ job.job }} + - ${{ if eq(parameters.enableSourceBuild, true) }}: + - Source_Build_Complete + + runAsPublic: ${{ parameters.runAsPublic }} + publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} + publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }} + enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} diff --git a/eng/common/templates-official/jobs/source-build.yml b/eng/common/templates-official/jobs/source-build.yml new file mode 100644 index 00000000000..08e5db9bb11 --- /dev/null +++ b/eng/common/templates-official/jobs/source-build.yml @@ -0,0 +1,46 @@ +parameters: + # This template adds arcade-powered source-build to CI. A job is created for each platform, as + # well as an optional server job that completes when all platform jobs complete. + + # The name of the "join" job for all source-build platforms. If set to empty string, the job is + # not included. Existing repo pipelines can use this job depend on all source-build jobs + # completing without maintaining a separate list of every single job ID: just depend on this one + # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. + allCompletedJobId: '' + + # See /eng/common/templates-official/job/source-build.yml + jobNamePrefix: 'Source_Build' + + # This is the default platform provided by Arcade, intended for use by a managed-only repo. + defaultManagedPlatform: + name: 'Managed' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8' + + # Defines the platforms on which to run build jobs. One job is created for each platform, and the + # object in this array is sent to the job template as 'platform'. If no platforms are specified, + # one job runs on 'defaultManagedPlatform'. + platforms: [] + +jobs: + +- ${{ if ne(parameters.allCompletedJobId, '') }}: + - job: ${{ parameters.allCompletedJobId }} + displayName: Source-Build Complete + pool: server + dependsOn: + - ${{ each platform in parameters.platforms }}: + - ${{ parameters.jobNamePrefix }}_${{ platform.name }} + - ${{ if eq(length(parameters.platforms), 0) }}: + - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} + +- ${{ each platform in parameters.platforms }}: + - template: /eng/common/templates-official/job/source-build.yml + parameters: + jobNamePrefix: ${{ parameters.jobNamePrefix }} + platform: ${{ platform }} + +- ${{ if eq(length(parameters.platforms), 0) }}: + - template: /eng/common/templates-official/job/source-build.yml + parameters: + jobNamePrefix: ${{ parameters.jobNamePrefix }} + platform: ${{ parameters.defaultManagedPlatform }} diff --git a/eng/common/templates-official/post-build/common-variables.yml b/eng/common/templates-official/post-build/common-variables.yml new file mode 100644 index 00000000000..c24193acfc9 --- /dev/null +++ b/eng/common/templates-official/post-build/common-variables.yml @@ -0,0 +1,22 @@ +variables: + - group: Publish-Build-Assets + + # Whether the build is internal or not + - name: IsInternalBuild + value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }} + + # Default Maestro++ API Endpoint and API Version + - name: MaestroApiEndPoint + value: "https://maestro-prod.westus2.cloudapp.azure.com" + - name: MaestroApiAccessToken + value: $(MaestroAccessToken) + - name: MaestroApiVersion + value: "2020-02-20" + + - name: SourceLinkCLIVersion + value: 3.0.0 + - name: SymbolToolVersion + value: 1.0.1 + + - name: runCodesignValidationInjection + value: false diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml new file mode 100644 index 00000000000..5c98fe1c0f3 --- /dev/null +++ b/eng/common/templates-official/post-build/post-build.yml @@ -0,0 +1,285 @@ +parameters: + # Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST. + # Publishing V1 is no longer supported + # Publishing V2 is no longer supported + # Publishing V3 is the default + - name: publishingInfraVersion + displayName: Which version of publishing should be used to promote the build definition? + type: number + default: 3 + values: + - 3 + + - name: BARBuildId + displayName: BAR Build Id + type: number + default: 0 + + - name: PromoteToChannelIds + displayName: Channel to promote BARBuildId to + type: string + default: '' + + - name: enableSourceLinkValidation + displayName: Enable SourceLink validation + type: boolean + default: false + + - name: enableSigningValidation + displayName: Enable signing validation + type: boolean + default: true + + - name: enableSymbolValidation + displayName: Enable symbol validation + type: boolean + default: false + + - name: enableNugetValidation + displayName: Enable NuGet validation + type: boolean + default: true + + - name: publishInstallersAndChecksums + displayName: Publish installers and checksums + type: boolean + default: true + + - name: SDLValidationParameters + type: object + default: + enable: false + publishGdn: false + continueOnError: false + params: '' + artifactNames: '' + downloadArtifacts: true + + # These parameters let the user customize the call to sdk-task.ps1 for publishing + # symbols & general artifacts as well as for signing validation + - name: symbolPublishingAdditionalParameters + displayName: Symbol publishing additional parameters + type: string + default: '' + + - name: artifactsPublishingAdditionalParameters + displayName: Artifact publishing additional parameters + type: string + default: '' + + - name: signingValidationAdditionalParameters + displayName: Signing validation additional parameters + type: string + default: '' + + # Which stages should finish execution before post-build stages start + - name: validateDependsOn + type: object + default: + - build + + - name: publishDependsOn + type: object + default: + - Validate + + # Optional: Call asset publishing rather than running in a separate stage + - name: publishAssetsImmediately + type: boolean + default: false + +stages: +- ${{ if or(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 + - template: /eng/common/templates-official/variables/pool-providers.yml + jobs: + - job: + displayName: NuGet Validation + condition: and(succeededOrFailed(), eq( ${{ parameters.enableNugetValidation }}, 'true')) + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + + - 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 + condition: and( eq( ${{ parameters.enableSigningValidation }}, 'true'), ne( variables['PostBuildSign'], 'true')) + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + itemPattern: | + ** + !**/Microsoft.SourceBuild.Intermediate.*.nupkg + + # 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@1 + displayName: 'Authenticate to AzDO Feeds' + + # 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' + BinlogToolVersion: $(BinlogToolVersion) + + - job: + displayName: SourceLink Validation + condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: BlobArtifacts + checkDownloadedFiles: true + + - 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 + +- ${{ if ne(parameters.publishAssetsImmediately, 'true') }}: + - stage: publish_using_darc + ${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: + dependsOn: ${{ parameters.publishDependsOn }} + ${{ else }}: + dependsOn: ${{ parameters.validateDependsOn }} + displayName: Publish using Darc + variables: + - template: common-variables.yml + - template: /eng/common/templates-official/variables/pool-providers.yml + jobs: + - job: + displayName: Publish Using Darc + timeoutInMinutes: 120 + 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: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: NuGetAuthenticate@1 + + - task: PowerShell@2 + displayName: Publish Using Darc + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + arguments: -BuildId $(BARBuildId) + -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} + -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' + -MaestroToken '$(MaestroApiAccessToken)' + -WaitPublishingFinish true + -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' + -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' diff --git a/eng/common/templates-official/post-build/setup-maestro-vars.yml b/eng/common/templates-official/post-build/setup-maestro-vars.yml new file mode 100644 index 00000000000..0c87f149a4a --- /dev/null +++ b/eng/common/templates-official/post-build/setup-maestro-vars.yml @@ -0,0 +1,70 @@ +parameters: + BARBuildId: '' + PromoteToChannelIds: '' + +steps: + - ${{ if eq(coalesce(parameters.PromoteToChannelIds, 0), 0) }}: + - task: DownloadBuildArtifacts@0 + displayName: Download Release Configs + inputs: + buildType: current + artifactName: ReleaseConfigs + checkDownloadedFiles: true + + - task: PowerShell@2 + name: setReleaseVars + displayName: Set Release Configs Vars + inputs: + targetType: inline + pwsh: true + script: | + try { + if (!$Env:PromoteToMaestroChannels -or $Env:PromoteToMaestroChannels.Trim() -eq '') { + $Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt + + $BarId = $Content | Select -Index 0 + $Channels = $Content | Select -Index 1 + $IsStableBuild = $Content | Select -Index 2 + + $AzureDevOpsProject = $Env:System_TeamProject + $AzureDevOpsBuildDefinitionId = $Env:System_DefinitionId + $AzureDevOpsBuildId = $Env:Build_BuildId + } + else { + $buildApiEndpoint = "${Env:MaestroApiEndPoint}/api/builds/${Env:BARBuildId}?api-version=${Env:MaestroApiVersion}" + + $apiHeaders = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]' + $apiHeaders.Add('Accept', 'application/json') + $apiHeaders.Add('Authorization',"Bearer ${Env:MAESTRO_API_TOKEN}") + + $buildInfo = try { Invoke-WebRequest -Method Get -Uri $buildApiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" } + + $BarId = $Env:BARBuildId + $Channels = $Env:PromoteToMaestroChannels -split "," + $Channels = $Channels -join "][" + $Channels = "[$Channels]" + + $IsStableBuild = $buildInfo.stable + $AzureDevOpsProject = $buildInfo.azureDevOpsProject + $AzureDevOpsBuildDefinitionId = $buildInfo.azureDevOpsBuildDefinitionId + $AzureDevOpsBuildId = $buildInfo.azureDevOpsBuildId + } + + Write-Host "##vso[task.setvariable variable=BARBuildId]$BarId" + Write-Host "##vso[task.setvariable variable=TargetChannels]$Channels" + Write-Host "##vso[task.setvariable variable=IsStableBuild]$IsStableBuild" + + Write-Host "##vso[task.setvariable variable=AzDOProjectName]$AzureDevOpsProject" + Write-Host "##vso[task.setvariable variable=AzDOPipelineId]$AzureDevOpsBuildDefinitionId" + Write-Host "##vso[task.setvariable variable=AzDOBuildId]$AzureDevOpsBuildId" + } + catch { + Write-Host $_ + Write-Host $_.Exception + Write-Host $_.ScriptStackTrace + exit 1 + } + env: + MAESTRO_API_TOKEN: $(MaestroApiAccessToken) + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToMaestroChannels: ${{ parameters.PromoteToChannelIds }} diff --git a/eng/common/templates-official/post-build/trigger-subscription.yml b/eng/common/templates-official/post-build/trigger-subscription.yml new file mode 100644 index 00000000000..da669030daf --- /dev/null +++ b/eng/common/templates-official/post-build/trigger-subscription.yml @@ -0,0 +1,13 @@ +parameters: + ChannelId: 0 + +steps: +- task: PowerShell@2 + displayName: Triggering subscriptions + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + arguments: -SourceRepo $(Build.Repository.Uri) + -ChannelId ${{ parameters.ChannelId }} + -MaestroApiAccessToken $(MaestroAccessToken) + -MaestroApiEndPoint $(MaestroApiEndPoint) + -MaestroApiVersion $(MaestroApiVersion) diff --git a/eng/common/templates-official/steps/add-build-to-channel.yml b/eng/common/templates-official/steps/add-build-to-channel.yml new file mode 100644 index 00000000000..f67a210d62f --- /dev/null +++ b/eng/common/templates-official/steps/add-build-to-channel.yml @@ -0,0 +1,13 @@ +parameters: + ChannelId: 0 + +steps: +- task: PowerShell@2 + displayName: Add Build to Channel + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + arguments: -BuildId $(BARBuildId) + -ChannelId ${{ parameters.ChannelId }} + -MaestroApiAccessToken $(MaestroApiAccessToken) + -MaestroApiEndPoint $(MaestroApiEndPoint) + -MaestroApiVersion $(MaestroApiVersion) diff --git a/eng/common/templates-official/steps/build-reason.yml b/eng/common/templates-official/steps/build-reason.yml new file mode 100644 index 00000000000..eba58109b52 --- /dev/null +++ b/eng/common/templates-official/steps/build-reason.yml @@ -0,0 +1,12 @@ +# build-reason.yml +# Description: runs steps if build.reason condition is valid. conditions is a string of valid build reasons +# to include steps (',' separated). +parameters: + conditions: '' + steps: [] + +steps: + - ${{ if and( not(startsWith(parameters.conditions, 'not')), contains(parameters.conditions, variables['build.reason'])) }}: + - ${{ parameters.steps }} + - ${{ if and( startsWith(parameters.conditions, 'not'), not(contains(parameters.conditions, variables['build.reason']))) }}: + - ${{ parameters.steps }} diff --git a/eng/common/templates-official/steps/component-governance.yml b/eng/common/templates-official/steps/component-governance.yml new file mode 100644 index 00000000000..0ecec47b0c9 --- /dev/null +++ b/eng/common/templates-official/steps/component-governance.yml @@ -0,0 +1,13 @@ +parameters: + disableComponentGovernance: false + componentGovernanceIgnoreDirectories: '' + +steps: +- ${{ if eq(parameters.disableComponentGovernance, 'true') }}: + - script: "echo ##vso[task.setvariable variable=skipComponentGovernanceDetection]true" + displayName: Set skipComponentGovernanceDetection variable +- ${{ if ne(parameters.disableComponentGovernance, 'true') }}: + - task: ComponentGovernanceComponentDetection@0 + continueOnError: true + inputs: + ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} \ No newline at end of file diff --git a/eng/common/templates-official/steps/execute-codeql.yml b/eng/common/templates-official/steps/execute-codeql.yml new file mode 100644 index 00000000000..9b4a5ffa30a --- /dev/null +++ b/eng/common/templates-official/steps/execute-codeql.yml @@ -0,0 +1,32 @@ +parameters: + # Language that should be analyzed. Defaults to csharp + language: csharp + # Build Commands + buildCommands: '' + overrideParameters: '' # Optional: to override values for parameters. + additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")' + # Optional: if specified, restore and use this version of Guardian instead of the default. + overrideGuardianVersion: '' + # Optional: if true, publish the '.gdn' folder as a pipeline artifact. This can help with in-depth + # diagnosis of problems with specific tool configurations. + publishGuardianDirectoryToPipeline: false + # The script to run to execute all SDL tools. Use this if you want to use a script to define SDL + # parameters rather than relying on YAML. It may be better to use a local script, because you can + # reproduce results locally without piecing together a command based on the YAML. + executeAllSdlToolsScript: 'eng/common/sdl/execute-all-sdl-tools.ps1' + # There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named + # 'continueOnError', the parameter value is not correctly picked up. + # This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter + # optional: determines whether to continue the build if the step errors; + sdlContinueOnError: false + +steps: +- template: /eng/common/templates-official/steps/execute-sdl.yml + parameters: + overrideGuardianVersion: ${{ parameters.overrideGuardianVersion }} + executeAllSdlToolsScript: ${{ parameters.executeAllSdlToolsScript }} + overrideParameters: ${{ parameters.overrideParameters }} + additionalParameters: '${{ parameters.additionalParameters }} + -CodeQLAdditionalRunConfigParams @("BuildCommands < ${{ parameters.buildCommands }}", "Language < ${{ parameters.language }}")' + publishGuardianDirectoryToPipeline: ${{ parameters.publishGuardianDirectoryToPipeline }} + sdlContinueOnError: ${{ parameters.sdlContinueOnError }} \ No newline at end of file diff --git a/eng/common/templates-official/steps/execute-sdl.yml b/eng/common/templates-official/steps/execute-sdl.yml new file mode 100644 index 00000000000..07426fde05d --- /dev/null +++ b/eng/common/templates-official/steps/execute-sdl.yml @@ -0,0 +1,88 @@ +parameters: + overrideGuardianVersion: '' + executeAllSdlToolsScript: '' + overrideParameters: '' + additionalParameters: '' + publishGuardianDirectoryToPipeline: false + sdlContinueOnError: false + condition: '' + +steps: +- task: NuGetAuthenticate@1 + inputs: + nuGetServiceConnections: GuardianConnect + +- task: NuGetToolInstaller@1 + displayName: 'Install NuGet.exe' + +- ${{ if ne(parameters.overrideGuardianVersion, '') }}: + - pwsh: | + Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + . .\sdl.ps1 + $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} + Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" + displayName: Install Guardian (Overridden) + +- ${{ if eq(parameters.overrideGuardianVersion, '') }}: + - pwsh: | + Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + . .\sdl.ps1 + $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts + Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" + displayName: Install Guardian + +- ${{ if ne(parameters.overrideParameters, '') }}: + - powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }} + displayName: Execute SDL (Overridden) + continueOnError: ${{ parameters.sdlContinueOnError }} + condition: ${{ parameters.condition }} + +- ${{ if eq(parameters.overrideParameters, '') }}: + - powershell: ${{ parameters.executeAllSdlToolsScript }} + -GuardianCliLocation $(GuardianCliLocation) + -NugetPackageDirectory $(Build.SourcesDirectory)\.packages + -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw) + ${{ parameters.additionalParameters }} + displayName: Execute SDL + continueOnError: ${{ parameters.sdlContinueOnError }} + condition: ${{ parameters.condition }} + +- ${{ if ne(parameters.publishGuardianDirectoryToPipeline, 'false') }}: + # We want to publish the Guardian results and configuration for easy diagnosis. However, the + # '.gdn' dir is a mix of configuration, results, extracted dependencies, and Guardian default + # tooling files. Some of these files are large and aren't useful during an investigation, so + # exclude them by simply deleting them before publishing. (As of writing, there is no documented + # way to selectively exclude a dir from the pipeline artifact publish task.) + - task: DeleteFiles@1 + displayName: Delete Guardian dependencies to avoid uploading + inputs: + SourceFolder: $(Agent.BuildDirectory)/.gdn + Contents: | + c + i + condition: succeededOrFailed() + + - publish: $(Agent.BuildDirectory)/.gdn + artifact: GuardianConfiguration + displayName: Publish GuardianConfiguration + condition: succeededOrFailed() + + # Publish the SARIF files in a container named CodeAnalysisLogs to enable integration + # with the "SARIF SAST Scans Tab" Azure DevOps extension + - task: CopyFiles@2 + displayName: Copy SARIF files + inputs: + flattenFolders: true + sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/ + contents: '**/*.sarif' + targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs + condition: succeededOrFailed() + + # Use PublishBuildArtifacts because the SARIF extension only checks this case + # see microsoft/sarif-azuredevops-extension#4 + - task: PublishBuildArtifacts@1 + displayName: Publish SARIF files to CodeAnalysisLogs container + inputs: + pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs + artifactName: CodeAnalysisLogs + condition: succeededOrFailed() \ No newline at end of file diff --git a/eng/common/templates-official/steps/generate-sbom.yml b/eng/common/templates-official/steps/generate-sbom.yml new file mode 100644 index 00000000000..1bf43bf807a --- /dev/null +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -0,0 +1,48 @@ +# BuildDropPath - The root folder of the drop directory for which the manifest file will be generated. +# PackageName - The name of the package this SBOM represents. +# PackageVersion - The version of the package this SBOM represents. +# ManifestDirPath - The path of the directory where the generated manifest files will be placed +# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. + +parameters: + PackageVersion: 8.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + PackageName: '.NET' + ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom + IgnoreDirectories: '' + sbomContinueOnError: true + +steps: +- task: PowerShell@2 + displayName: Prep for SBOM generation in (Non-linux) + condition: or(eq(variables['Agent.Os'], 'Windows_NT'), eq(variables['Agent.Os'], 'Darwin')) + inputs: + filePath: ./eng/common/generate-sbom-prep.ps1 + arguments: ${{parameters.manifestDirPath}} + +# Chmodding is a workaround for https://github.com/dotnet/arcade/issues/8461 +- script: | + chmod +x ./eng/common/generate-sbom-prep.sh + ./eng/common/generate-sbom-prep.sh ${{parameters.manifestDirPath}} + displayName: Prep for SBOM generation in (Linux) + condition: eq(variables['Agent.Os'], 'Linux') + continueOnError: ${{ parameters.sbomContinueOnError }} + +- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0 + displayName: 'Generate SBOM manifest' + continueOnError: ${{ parameters.sbomContinueOnError }} + inputs: + PackageName: ${{ parameters.packageName }} + BuildDropPath: ${{ parameters.buildDropPath }} + PackageVersion: ${{ parameters.packageVersion }} + ManifestDirPath: ${{ parameters.manifestDirPath }} + ${{ if ne(parameters.IgnoreDirectories, '') }}: + AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}' + +- task: 1ES.PublishPipelineArtifact@1 + displayName: Publish SBOM manifest + continueOnError: ${{parameters.sbomContinueOnError}} + inputs: + targetPath: '${{parameters.manifestDirPath}}' + artifactName: $(ARTIFACT_NAME) + diff --git a/eng/common/templates-official/steps/publish-logs.yml b/eng/common/templates-official/steps/publish-logs.yml new file mode 100644 index 00000000000..04012fed182 --- /dev/null +++ b/eng/common/templates-official/steps/publish-logs.yml @@ -0,0 +1,23 @@ +parameters: + StageLabel: '' + JobLabel: '' + +steps: +- task: Powershell@2 + displayName: Prepare Binlogs to Upload + inputs: + targetType: inline + script: | + New-Item -ItemType Directory $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + continueOnError: true + condition: always() + +- task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PublishLocation: Container + ArtifactName: PostBuildLogs + continueOnError: true + condition: always() diff --git a/eng/common/templates-official/steps/retain-build.yml b/eng/common/templates-official/steps/retain-build.yml new file mode 100644 index 00000000000..83d97a26a01 --- /dev/null +++ b/eng/common/templates-official/steps/retain-build.yml @@ -0,0 +1,28 @@ +parameters: + # Optional azure devops PAT with build execute permissions for the build's organization, + # only needed if the build that should be retained ran on a different organization than + # the pipeline where this template is executing from + Token: '' + # Optional BuildId to retain, defaults to the current running build + BuildId: '' + # Azure devops Organization URI for the build in the https://dev.azure.com/ format. + # Defaults to the organization the current pipeline is running on + AzdoOrgUri: '$(System.CollectionUri)' + # Azure devops project for the build. Defaults to the project the current pipeline is running on + AzdoProject: '$(System.TeamProject)' + +steps: + - task: powershell@2 + inputs: + targetType: 'filePath' + filePath: eng/common/retain-build.ps1 + pwsh: true + arguments: > + -AzdoOrgUri: ${{parameters.AzdoOrgUri}} + -AzdoProject ${{parameters.AzdoProject}} + -Token ${{coalesce(parameters.Token, '$env:SYSTEM_ACCESSTOKEN') }} + -BuildId ${{coalesce(parameters.BuildId, '$env:BUILD_ID')}} + displayName: Enable permanent build retention + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + BUILD_ID: $(Build.BuildId) \ No newline at end of file diff --git a/eng/common/templates-official/steps/send-to-helix.yml b/eng/common/templates-official/steps/send-to-helix.yml new file mode 100644 index 00000000000..3eb7e2d5f84 --- /dev/null +++ b/eng/common/templates-official/steps/send-to-helix.yml @@ -0,0 +1,91 @@ +# Please remember to update the documentation if you make changes to these parameters! +parameters: + HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/ + HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/' + HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number + HelixTargetQueues: '' # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues + HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group + HelixConfiguration: '' # optional -- additional property attached to a job + HelixPreCommands: '' # optional -- commands to run before Helix work item execution + HelixPostCommands: '' # optional -- commands to run after Helix work item execution + WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects + WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects + WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects + CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload + XUnitProjects: '' # optional -- semicolon-delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true + XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects + XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects + XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner + XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects + IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion + DotNetCliPackageType: '' # optional -- either 'sdk', 'runtime' or 'aspnetcore-runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json + DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json + WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget." + IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set + HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net ) + Creator: '' # optional -- if the build is external, use this to specify who is sending the job + DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO + condition: succeeded() # optional -- condition for step to execute; defaults to succeeded() + continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false + +steps: + - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' + displayName: ${{ parameters.DisplayNamePrefix }} (Windows) + env: + BuildConfig: $(_BuildConfig) + HelixSource: ${{ parameters.HelixSource }} + HelixType: ${{ parameters.HelixType }} + HelixBuild: ${{ parameters.HelixBuild }} + HelixConfiguration: ${{ parameters.HelixConfiguration }} + HelixTargetQueues: ${{ parameters.HelixTargetQueues }} + HelixAccessToken: ${{ parameters.HelixAccessToken }} + HelixPreCommands: ${{ parameters.HelixPreCommands }} + HelixPostCommands: ${{ parameters.HelixPostCommands }} + WorkItemDirectory: ${{ parameters.WorkItemDirectory }} + WorkItemCommand: ${{ parameters.WorkItemCommand }} + WorkItemTimeout: ${{ parameters.WorkItemTimeout }} + CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }} + XUnitProjects: ${{ parameters.XUnitProjects }} + XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }} + XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }} + XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }} + XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }} + IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }} + DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }} + DotNetCliVersion: ${{ parameters.DotNetCliVersion }} + WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} + Creator: ${{ parameters.Creator }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} + - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog + displayName: ${{ parameters.DisplayNamePrefix }} (Unix) + env: + BuildConfig: $(_BuildConfig) + HelixSource: ${{ parameters.HelixSource }} + HelixType: ${{ parameters.HelixType }} + HelixBuild: ${{ parameters.HelixBuild }} + HelixConfiguration: ${{ parameters.HelixConfiguration }} + HelixTargetQueues: ${{ parameters.HelixTargetQueues }} + HelixAccessToken: ${{ parameters.HelixAccessToken }} + HelixPreCommands: ${{ parameters.HelixPreCommands }} + HelixPostCommands: ${{ parameters.HelixPostCommands }} + WorkItemDirectory: ${{ parameters.WorkItemDirectory }} + WorkItemCommand: ${{ parameters.WorkItemCommand }} + WorkItemTimeout: ${{ parameters.WorkItemTimeout }} + CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }} + XUnitProjects: ${{ parameters.XUnitProjects }} + XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }} + XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }} + XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }} + XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }} + IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }} + DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }} + DotNetCliVersion: ${{ parameters.DotNetCliVersion }} + WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} + Creator: ${{ parameters.Creator }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} diff --git a/eng/common/templates-official/steps/source-build.yml b/eng/common/templates-official/steps/source-build.yml new file mode 100644 index 00000000000..829f17c34d1 --- /dev/null +++ b/eng/common/templates-official/steps/source-build.yml @@ -0,0 +1,129 @@ +parameters: + # This template adds arcade-powered source-build to CI. + + # This is a 'steps' template, and is intended for advanced scenarios where the existing build + # infra has a careful build methodology that must be followed. For example, a repo + # (dotnet/runtime) might choose to clone the GitHub repo only once and store it as a pipeline + # artifact for all subsequent jobs to use, to reduce dependence on a strong network connection to + # GitHub. Using this steps template leaves room for that infra to be included. + + # Defines the platform on which to run the steps. See 'eng/common/templates-official/job/source-build.yml' + # for details. The entire object is described in the 'job' template for simplicity, even though + # the usage of the properties on this object is split between the 'job' and 'steps' templates. + platform: {} + +steps: +# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.) +- script: | + set -x + df -h + + # If building on the internal project, the artifact feeds variable may be available (usually only if needed) + # In that case, call the feed setup script to add internal feeds corresponding to public ones. + # In addition, add an msbuild argument to copy the WIP from the repo to the target build location. + # This is because SetupNuGetSources.sh will alter the current NuGet.config file, and we need to preserve those + # changes. + internalRestoreArgs= + if [ '$(dn-bot-dnceng-artifact-feeds-rw)' != '$''(dn-bot-dnceng-artifact-feeds-rw)' ]; then + # Temporarily work around https://github.com/dotnet/arcade/issues/7709 + chmod +x $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh $(Build.SourcesDirectory)/NuGet.config $(dn-bot-dnceng-artifact-feeds-rw) + internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' + + # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. + # This only works if there is a username/email configured, which won't be the case in most CI runs. + git config --get user.email + if [ $? -ne 0 ]; then + git config user.email dn-bot@microsoft.com + git config user.name dn-bot + fi + fi + + # If building on the internal project, the internal storage variable may be available (usually only if needed) + # In that case, add variables to allow the download of internal runtimes if the specified versions are not found + # in the default public locations. + internalRuntimeDownloadArgs= + if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + fi + + buildConfig=Release + # Check if AzDO substitutes in a build config from a variable, and use it if so. + if [ '$(_BuildConfig)' != '$''(_BuildConfig)' ]; then + buildConfig='$(_BuildConfig)' + fi + + officialBuildArgs= + if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then + officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' + fi + + targetRidArgs= + if [ '${{ parameters.platform.targetRID }}' != '' ]; then + targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' + fi + + runtimeOsArgs= + if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then + runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' + fi + + baseOsArgs= + if [ '${{ parameters.platform.baseOS }}' != '' ]; then + baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' + fi + + publishArgs= + if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then + publishArgs='--publish' + fi + + assetManifestFileName=SourceBuild_RidSpecific.xml + if [ '${{ parameters.platform.name }}' != '' ]; then + assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml + fi + + ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ + --configuration $buildConfig \ + --restore --build --pack $publishArgs -bl \ + $officialBuildArgs \ + $internalRuntimeDownloadArgs \ + $internalRestoreArgs \ + $targetRidArgs \ + $runtimeOsArgs \ + $baseOsArgs \ + /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ + /p:ArcadeBuildFromSource=true \ + /p:AssetManifestFileName=$assetManifestFileName + displayName: Build + +# Upload build logs for diagnosis. +- task: CopyFiles@2 + displayName: Prepare BuildLogs staging directory + inputs: + SourceFolder: '$(Build.SourcesDirectory)' + Contents: | + **/*.log + **/*.binlog + artifacts/source-build/self/prebuilt-report/** + TargetFolder: '$(Build.StagingDirectory)/BuildLogs' + CleanTargetFolder: true + continueOnError: true + condition: succeededOrFailed() + +- task: 1ES.PublishPipelineArtifact@1 + displayName: Publish BuildLogs + inputs: + targetPath: '$(Build.StagingDirectory)/BuildLogs' + artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) + continueOnError: true + condition: succeededOrFailed() + +# Manually inject component detection so that we can ignore the source build upstream cache, which contains +# a nupkg cache of input packages (a local feed). +# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir' +# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets +- task: ComponentGovernanceComponentDetection@0 + displayName: Component Detection (Exclude upstream cache) + inputs: + ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/templates-official/variables/pool-providers.yml b/eng/common/templates-official/variables/pool-providers.yml new file mode 100644 index 00000000000..beab7d1bfba --- /dev/null +++ b/eng/common/templates-official/variables/pool-providers.yml @@ -0,0 +1,45 @@ +# 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 it 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-official/variables/pool-providers.yml +# +# ... then anywhere specifying the pool provider use the runtime variables, +# $(DncEngInternalBuildPool) +# +# pool: +# name: $(DncEngInternalBuildPool) +# image: 1es-windows-2022-pt + +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: 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/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml new file mode 100644 index 00000000000..dbdd66d4a4b --- /dev/null +++ b/eng/common/templates-official/variables/sdl-variables.yml @@ -0,0 +1,7 @@ +variables: +# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in +# sync with the packages.config file. +- name: DefaultGuardianVersion + value: 0.109.0 +- name: GuardianPackagesConfigFile + value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/global.json b/global.json index a1593b9d961..97f1dec4ea4 100644 --- a/global.json +++ b/global.json @@ -26,7 +26,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24123.1", - "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24123.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24151.4", + "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.24151.4" } } From 7c060fecfa5d59484dbf3a37ad84aa7ae62a89e0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 15:10:09 +0000 Subject: [PATCH 125/131] Update dependencies from https://github.com/dotnet/diagnostics build 20240301.1 (#6164) [feature/9.x] Update dependencies from dotnet/diagnostics --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 79c856e9031..141e45febbe 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,11 +4,11 @@ https://github.com/dotnet/aspnetcore 7874b36fd8da2f8e56b23aac48954f14bafba1fe - + https://github.com/dotnet/diagnostics 831eee3a9e69dd886fa190a9914a7f66260c653a - + https://github.com/dotnet/diagnostics 831eee3a9e69dd886fa190a9914a7f66260c653a diff --git a/eng/Versions.props b/eng/Versions.props index 170439603bf..9f517c5332c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24129.1 - 8.0.0-preview.24129.1 + 8.0.0-preview.24151.1 + 8.0.0-preview.24151.1 9.0.100-preview.3.24129.12 From 900effa7a947ec0477e6f44fcf87367fd330d704 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 08:41:35 -0800 Subject: [PATCH 126/131] Bump streetsidesoftware/cspell-action from 5.4.0 to 6.0.0 (#6169) Bumps [streetsidesoftware/cspell-action](https://github.com/streetsidesoftware/cspell-action) from 5.4.0 to 6.0.0. - [Release notes](https://github.com/streetsidesoftware/cspell-action/releases) - [Changelog](https://github.com/streetsidesoftware/cspell-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/streetsidesoftware/cspell-action/compare/e6f09063780e6ace11d87ce10d818d4e2bad9b66...214db1e3138f326d33b7a6a51c92852e89ab0618) --- updated-dependencies: - dependency-name: streetsidesoftware/cspell-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/spellcheck.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 92f0a6c3396..ef16257b7e8 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -17,7 +17,7 @@ jobs: with: persist-credentials: false - - uses: streetsidesoftware/cspell-action@e6f09063780e6ace11d87ce10d818d4e2bad9b66 + - uses: streetsidesoftware/cspell-action@214db1e3138f326d33b7a6a51c92852e89ab0618 name: Documentation spellcheck if: ${{ !cancelled() }} with: @@ -25,7 +25,7 @@ jobs: inline: error incremental_files_only: true - - uses: streetsidesoftware/cspell-action@e6f09063780e6ace11d87ce10d818d4e2bad9b66 + - uses: streetsidesoftware/cspell-action@214db1e3138f326d33b7a6a51c92852e89ab0618 name: Resx spellcheck if: ${{ !cancelled() }} with: @@ -33,7 +33,7 @@ jobs: inline: error incremental_files_only: true - - uses: streetsidesoftware/cspell-action@e6f09063780e6ace11d87ce10d818d4e2bad9b66 + - uses: streetsidesoftware/cspell-action@214db1e3138f326d33b7a6a51c92852e89ab0618 name: Source code spellcheck if: ${{ !cancelled() }} with: From 1b90490a79faba491367abfd5d84478e0aca0a7f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 08:43:03 -0800 Subject: [PATCH 127/131] [feature/9.x] Update dependencies from dotnet/installer (#6167) * Update dependencies from https://github.com/dotnet/installer build 20240301.6 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.3.24129.12 -> To Version 9.0.100-preview.3.24151.6 * Update dependencies from https://github.com/dotnet/installer build 20240301.6 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.3.24129.12 -> To Version 9.0.100-preview.3.24151.6 * Update dependencies from https://github.com/dotnet/installer build 20240303.2 Microsoft.Dotnet.Sdk.Internal From Version 9.0.100-preview.3.24129.12 -> To Version 9.0.100-preview.3.24153.2 Dependency coherency updates Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0 From Version 9.0.0-preview.3.24129.1 -> To Version 9.0.0-preview.3.24151.1 (parent: Microsoft.Dotnet.Sdk.Internal --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 141e45febbe..9e0570a2793 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,8 +1,8 @@ - + https://github.com/dotnet/aspnetcore - 7874b36fd8da2f8e56b23aac48954f14bafba1fe + 3e5155276f3d486ef49e1f06ee875d6757983695 https://github.com/dotnet/diagnostics @@ -38,9 +38,9 @@ https://github.com/dotnet/arcade d4a7b37f268cb5fe89f4472ef5341629cd040dfe - + https://github.com/dotnet/installer - 001946486060e31dffa0f82a68c4db582c353af0 + 893b762b6e36d558df7ae6fccdfd8034f83a1c2e https://github.com/dotnet/arcade @@ -54,9 +54,9 @@ https://github.com/dotnet/runtime 5e603d595e63ddc5cdce9777a40608279abdcc37 - + https://github.com/dotnet/aspnetcore - 7874b36fd8da2f8e56b23aac48954f14bafba1fe + 3e5155276f3d486ef49e1f06ee875d6757983695 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 9f517c5332c..0e67716609f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -52,15 +52,15 @@ 9.0.0-beta.24151.1 9.0.0-beta.24151.1 - 9.0.0-preview.3.24129.1 - 9.0.0-preview.3.24129.1 + 9.0.0-preview.3.24151.1 + 9.0.0-preview.3.24151.1 2.0.0-beta4.24126.1 8.0.0-preview.24151.1 8.0.0-preview.24151.1 - 9.0.100-preview.3.24129.12 + 9.0.100-preview.3.24153.2 9.0.0-preview.24151.1 From 26aafad0806d18c4eac1c02be7a686ac74ffa787 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 08:43:29 -0800 Subject: [PATCH 128/131] [feature/9.x] Update dependencies from dotnet/arcade (#6165) * Update dependencies from https://github.com/dotnet/arcade build 20240301.5 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24151.1 -> To Version 9.0.0-beta.24151.5 * Update dependencies from https://github.com/dotnet/arcade build 20240301.5 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24151.1 -> To Version 9.0.0-beta.24151.5 * Update dependencies from https://github.com/dotnet/arcade build 20240301.5 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Archives , Microsoft.DotNet.CodeAnalysis , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XUnitExtensions From Version 9.0.0-beta.24151.1 -> To Version 9.0.0-beta.24151.5 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 20 +++++++++---------- eng/Versions.props | 6 +++--- .../job/publish-build-assets.yml | 2 +- global.json | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9e0570a2793..bb0f45a56e2 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -22,29 +22,29 @@ https://github.com/dotnet/roslyn-analyzers 59b2d9dc38fcc17dd618e3b3af3ce692aaeedb37 - + https://github.com/dotnet/arcade - d4a7b37f268cb5fe89f4472ef5341629cd040dfe + 87d89025bdd8827c016e4083660d31f497670e5c - + https://github.com/dotnet/arcade - d4a7b37f268cb5fe89f4472ef5341629cd040dfe + 87d89025bdd8827c016e4083660d31f497670e5c - + https://github.com/dotnet/arcade - d4a7b37f268cb5fe89f4472ef5341629cd040dfe + 87d89025bdd8827c016e4083660d31f497670e5c - + https://github.com/dotnet/arcade - d4a7b37f268cb5fe89f4472ef5341629cd040dfe + 87d89025bdd8827c016e4083660d31f497670e5c https://github.com/dotnet/installer 893b762b6e36d558df7ae6fccdfd8034f83a1c2e - + https://github.com/dotnet/arcade - d4a7b37f268cb5fe89f4472ef5341629cd040dfe + 87d89025bdd8827c016e4083660d31f497670e5c https://github.com/dotnet/symstore diff --git a/eng/Versions.props b/eng/Versions.props index 0e67716609f..dacf34b8f28 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -48,9 +48,9 @@ --> - 9.0.0-beta.24151.1 - 9.0.0-beta.24151.1 - 9.0.0-beta.24151.1 + 9.0.0-beta.24151.5 + 9.0.0-beta.24151.5 + 9.0.0-beta.24151.5 9.0.0-preview.3.24151.1 9.0.0-preview.3.24151.1 diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml index 432dc92ab27..5f54135569b 100644 --- a/eng/common/templates-official/job/publish-build-assets.yml +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -55,7 +55,7 @@ jobs: # 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: AzurePipelines-EO - image: 1ESPT-WINDOWS2022 + image: 1ESPT-Windows2022 demands: Cmd os: windows # If it's not devdiv, it's dnceng diff --git a/global.json b/global.json index 845141406aa..f4ec64626fe 100644 --- a/global.json +++ b/global.json @@ -31,7 +31,7 @@ }, "msbuild-sdks": { "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24151.1", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24151.1" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24151.5", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.24151.5" } } From dc02b474f09377891fb36d21f4447146176735e5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 08:43:40 -0800 Subject: [PATCH 129/131] [main] Update dependencies from dotnet/diagnostics (#6161) * Update dependencies from https://github.com/dotnet/diagnostics build 20240301.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24129.1 -> To Version 8.0.0-preview.24151.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240301.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24129.1 -> To Version 8.0.0-preview.24151.1 * Update dependencies from https://github.com/dotnet/diagnostics build 20240301.1 Microsoft.Diagnostics.Monitoring , Microsoft.Diagnostics.Monitoring.EventPipe From Version 8.0.0-preview.24129.1 -> To Version 8.0.0-preview.24151.1 --------- Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6495dea886f..8ab79c434dd 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -4,11 +4,11 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore 8e941eb42f819adb116b881195158b3887a70a1c - + https://github.com/dotnet/diagnostics 831eee3a9e69dd886fa190a9914a7f66260c653a - + https://github.com/dotnet/diagnostics 831eee3a9e69dd886fa190a9914a7f66260c653a diff --git a/eng/Versions.props b/eng/Versions.props index 800a75ed226..769dce43415 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -57,8 +57,8 @@ 2.0.0-beta4.24126.1 - 8.0.0-preview.24129.1 - 8.0.0-preview.24129.1 + 8.0.0-preview.24151.1 + 8.0.0-preview.24151.1 8.0.103-servicing.24114.15 From 66b7d1a39480cb707c86655daf75f1647b44e1f7 Mon Sep 17 00:00:00 2001 From: Joe Schmitt <1146681+schmittjoseph@users.noreply.github.com> Date: Mon, 4 Mar 2024 14:53:05 -0800 Subject: [PATCH 130/131] Sync branch improvements (#6172) --- .gitattributes | 1 - .github/workflows/sync-branches.yml | 16 +++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.gitattributes b/.gitattributes index e2a58888b27..fb4bf66a4d0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -50,7 +50,6 @@ ############################################################################### # Define branch specific files by overriding the merge driver -# Must be kept in sync with .github\workflows\sync-branches.yml ############################################################################### global.json merge=ours eng/branch-vscode-config merge=ours diff --git a/.github/workflows/sync-branches.yml b/.github/workflows/sync-branches.yml index 428a43c4ebc..0a2e22e001a 100644 --- a/.github/workflows/sync-branches.yml +++ b/.github/workflows/sync-branches.yml @@ -31,7 +31,7 @@ jobs: - name: Sync branch run: | - git checkout "$base_branch" -- \ + git checkout --no-overlay "$base_branch" -- \ ".github" \ ".devcontainer" \ ".vscode" \ @@ -78,14 +78,12 @@ jobs: git config merge.ours.driver true git merge "$base_branch" --strategy=ort --strategy-option=theirs - # Must be kept in sync with .gitattributes - git checkout "origin/${{ matrix.branch }}" -- \ - "global.json" \ - "eng/branch-vscode-config" \ - "eng/common" \ - "eng/Common.props" \ - "eng/Versions.props" \ - "eng/Version.Details.xml" + matches=$(perl -ne '/^([^\s]+)\s+merge=ours/gm && print "$1 "' .gitattributes) + for match in $matches; do + git checkout --no-overlay "$target_branch" -- "$match" + done + env: + target_branch: origin/${{ matrix.branch }} - name: Open PR uses: ./.github/actions/open-pr From 404c7ee233a6d930ce0c31e2a490e3a3e7a4a957 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 22:53:58 +0000 Subject: [PATCH 131/131] Restore branch-specific files --- eng/common/templates-official/job/job.yml | 2 +- .../job/publish-build-assets.yml | 10 ++- .../templates-official/job/source-build.yml | 2 +- .../job/source-index-stage1.yml | 11 ++- .../post-build/common-variables.yml | 4 +- .../templates-official/steps/build-reason.yml | 12 --- .../steps/execute-codeql.yml | 32 ------- .../templates-official/steps/execute-sdl.yml | 88 ------------------- .../steps/generate-sbom.yml | 2 +- .../templates-official/steps/publish-logs.yml | 28 +++++- .../templates-official/steps/source-build.yml | 4 +- 11 files changed, 47 insertions(+), 148 deletions(-) delete mode 100644 eng/common/templates-official/steps/build-reason.yml delete mode 100644 eng/common/templates-official/steps/execute-codeql.yml delete mode 100644 eng/common/templates-official/steps/execute-sdl.yml diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 9e7bebe9af8..352607308fd 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -154,7 +154,7 @@ jobs: displayName: RichCodeNav Upload inputs: languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} - environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} + environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }} richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} continueOnError: true diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml index ea5104625fa..5f54135569b 100644 --- a/eng/common/templates-official/job/publish-build-assets.yml +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -48,8 +48,8 @@ jobs: - group: AzureDevOps-Artifact-Feeds-Pats - name: runCodesignValidationInjection value: false - - ${{ if eq(parameters.publishAssetsImmediately, 'true') }}: - - template: /eng/common/templates-official/post-build/common-variables.yml + # unconditional - needed for logs publishing (redactor tool version) + - template: /eng/common/templates-official/post-build/common-variables.yml pool: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) @@ -65,6 +65,10 @@ jobs: os: windows steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - checkout: self + fetchDepth: 3 + clean: true + - task: DownloadBuildArtifacts@0 displayName: Download artifact inputs: @@ -83,7 +87,7 @@ jobs: arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' /p:BuildAssetRegistryToken=$(MaestroAccessToken) - /p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com + /p:MaestroApiEndpoint=https://maestro.dot.net /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} /p:OfficialBuildId=$(Build.BuildNumber) condition: ${{ parameters.condition }} diff --git a/eng/common/templates-official/job/source-build.yml b/eng/common/templates-official/job/source-build.yml index 8aba3b44bb2..50f04e642a3 100644 --- a/eng/common/templates-official/job/source-build.yml +++ b/eng/common/templates-official/job/source-build.yml @@ -48,7 +48,7 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], '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 + demands: ImageOverride -equals build.ubuntu.1804.amd64 ${{ if eq(variables['System.TeamProject'], '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')] diff --git a/eng/common/templates-official/job/source-index-stage1.yml b/eng/common/templates-official/job/source-index-stage1.yml index 4b633739170..757af7c7c4f 100644 --- a/eng/common/templates-official/job/source-index-stage1.yml +++ b/eng/common/templates-official/job/source-index-stage1.yml @@ -1,6 +1,6 @@ parameters: runAsPublic: false - sourceIndexPackageVersion: 1.0.1-20230228.2 + sourceIndexPackageVersion: 1.0.1-20231213.4 sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" preSteps: [] @@ -30,21 +30,20 @@ jobs: pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: name: $(DncEngPublicBuildPool) - demands: ImageOverride -equals windows.vs2019.amd64.open + image: windows.vs2022.amd64.open ${{ if eq(variables['System.TeamProject'], 'internal') }}: name: $(DncEngInternalBuildPool) - image: 1es-windows-2022-pt - os: windows + image: windows.vs2022.amd64 steps: - ${{ each preStep in parameters.preSteps }}: - ${{ preStep }} - task: UseDotNet@2 - displayName: Use .NET Core SDK 6 + displayName: Use .NET 8 SDK inputs: packageType: sdk - version: 6.0.x + version: 8.0.x installationPath: $(Agent.TempDirectory)/dotnet workingDirectory: $(Agent.TempDirectory) diff --git a/eng/common/templates-official/post-build/common-variables.yml b/eng/common/templates-official/post-build/common-variables.yml index c24193acfc9..b9ede10bf09 100644 --- a/eng/common/templates-official/post-build/common-variables.yml +++ b/eng/common/templates-official/post-build/common-variables.yml @@ -7,7 +7,7 @@ variables: # Default Maestro++ API Endpoint and API Version - name: MaestroApiEndPoint - value: "https://maestro-prod.westus2.cloudapp.azure.com" + value: "https://maestro.dot.net" - name: MaestroApiAccessToken value: $(MaestroAccessToken) - name: MaestroApiVersion @@ -17,6 +17,8 @@ variables: value: 3.0.0 - name: SymbolToolVersion value: 1.0.1 + - name: BinlogToolVersion + value: 1.0.11 - name: runCodesignValidationInjection value: false diff --git a/eng/common/templates-official/steps/build-reason.yml b/eng/common/templates-official/steps/build-reason.yml deleted file mode 100644 index eba58109b52..00000000000 --- a/eng/common/templates-official/steps/build-reason.yml +++ /dev/null @@ -1,12 +0,0 @@ -# build-reason.yml -# Description: runs steps if build.reason condition is valid. conditions is a string of valid build reasons -# to include steps (',' separated). -parameters: - conditions: '' - steps: [] - -steps: - - ${{ if and( not(startsWith(parameters.conditions, 'not')), contains(parameters.conditions, variables['build.reason'])) }}: - - ${{ parameters.steps }} - - ${{ if and( startsWith(parameters.conditions, 'not'), not(contains(parameters.conditions, variables['build.reason']))) }}: - - ${{ parameters.steps }} diff --git a/eng/common/templates-official/steps/execute-codeql.yml b/eng/common/templates-official/steps/execute-codeql.yml deleted file mode 100644 index 9b4a5ffa30a..00000000000 --- a/eng/common/templates-official/steps/execute-codeql.yml +++ /dev/null @@ -1,32 +0,0 @@ -parameters: - # Language that should be analyzed. Defaults to csharp - language: csharp - # Build Commands - buildCommands: '' - overrideParameters: '' # Optional: to override values for parameters. - additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")' - # Optional: if specified, restore and use this version of Guardian instead of the default. - overrideGuardianVersion: '' - # Optional: if true, publish the '.gdn' folder as a pipeline artifact. This can help with in-depth - # diagnosis of problems with specific tool configurations. - publishGuardianDirectoryToPipeline: false - # The script to run to execute all SDL tools. Use this if you want to use a script to define SDL - # parameters rather than relying on YAML. It may be better to use a local script, because you can - # reproduce results locally without piecing together a command based on the YAML. - executeAllSdlToolsScript: 'eng/common/sdl/execute-all-sdl-tools.ps1' - # There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named - # 'continueOnError', the parameter value is not correctly picked up. - # This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter - # optional: determines whether to continue the build if the step errors; - sdlContinueOnError: false - -steps: -- template: /eng/common/templates-official/steps/execute-sdl.yml - parameters: - overrideGuardianVersion: ${{ parameters.overrideGuardianVersion }} - executeAllSdlToolsScript: ${{ parameters.executeAllSdlToolsScript }} - overrideParameters: ${{ parameters.overrideParameters }} - additionalParameters: '${{ parameters.additionalParameters }} - -CodeQLAdditionalRunConfigParams @("BuildCommands < ${{ parameters.buildCommands }}", "Language < ${{ parameters.language }}")' - publishGuardianDirectoryToPipeline: ${{ parameters.publishGuardianDirectoryToPipeline }} - sdlContinueOnError: ${{ parameters.sdlContinueOnError }} \ No newline at end of file diff --git a/eng/common/templates-official/steps/execute-sdl.yml b/eng/common/templates-official/steps/execute-sdl.yml deleted file mode 100644 index 07426fde05d..00000000000 --- a/eng/common/templates-official/steps/execute-sdl.yml +++ /dev/null @@ -1,88 +0,0 @@ -parameters: - overrideGuardianVersion: '' - executeAllSdlToolsScript: '' - overrideParameters: '' - additionalParameters: '' - publishGuardianDirectoryToPipeline: false - sdlContinueOnError: false - condition: '' - -steps: -- task: NuGetAuthenticate@1 - inputs: - nuGetServiceConnections: GuardianConnect - -- task: NuGetToolInstaller@1 - displayName: 'Install NuGet.exe' - -- ${{ if ne(parameters.overrideGuardianVersion, '') }}: - - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl - . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} - Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" - displayName: Install Guardian (Overridden) - -- ${{ if eq(parameters.overrideGuardianVersion, '') }}: - - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl - . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts - Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" - displayName: Install Guardian - -- ${{ if ne(parameters.overrideParameters, '') }}: - - powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }} - displayName: Execute SDL (Overridden) - continueOnError: ${{ parameters.sdlContinueOnError }} - condition: ${{ parameters.condition }} - -- ${{ if eq(parameters.overrideParameters, '') }}: - - powershell: ${{ parameters.executeAllSdlToolsScript }} - -GuardianCliLocation $(GuardianCliLocation) - -NugetPackageDirectory $(Build.SourcesDirectory)\.packages - -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw) - ${{ parameters.additionalParameters }} - displayName: Execute SDL - continueOnError: ${{ parameters.sdlContinueOnError }} - condition: ${{ parameters.condition }} - -- ${{ if ne(parameters.publishGuardianDirectoryToPipeline, 'false') }}: - # We want to publish the Guardian results and configuration for easy diagnosis. However, the - # '.gdn' dir is a mix of configuration, results, extracted dependencies, and Guardian default - # tooling files. Some of these files are large and aren't useful during an investigation, so - # exclude them by simply deleting them before publishing. (As of writing, there is no documented - # way to selectively exclude a dir from the pipeline artifact publish task.) - - task: DeleteFiles@1 - displayName: Delete Guardian dependencies to avoid uploading - inputs: - SourceFolder: $(Agent.BuildDirectory)/.gdn - Contents: | - c - i - condition: succeededOrFailed() - - - publish: $(Agent.BuildDirectory)/.gdn - artifact: GuardianConfiguration - displayName: Publish GuardianConfiguration - condition: succeededOrFailed() - - # Publish the SARIF files in a container named CodeAnalysisLogs to enable integration - # with the "SARIF SAST Scans Tab" Azure DevOps extension - - task: CopyFiles@2 - displayName: Copy SARIF files - inputs: - flattenFolders: true - sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/ - contents: '**/*.sarif' - targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs - condition: succeededOrFailed() - - # Use PublishBuildArtifacts because the SARIF extension only checks this case - # see microsoft/sarif-azuredevops-extension#4 - - task: PublishBuildArtifacts@1 - displayName: Publish SARIF files to CodeAnalysisLogs container - inputs: - pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs - artifactName: CodeAnalysisLogs - condition: succeededOrFailed() \ No newline at end of file diff --git a/eng/common/templates-official/steps/generate-sbom.yml b/eng/common/templates-official/steps/generate-sbom.yml index 1bf43bf807a..488b560e8ba 100644 --- a/eng/common/templates-official/steps/generate-sbom.yml +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -5,7 +5,7 @@ # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. parameters: - PackageVersion: 8.0.0 + PackageVersion: 7.0.0 BuildDropPath: '$(Build.SourcesDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom diff --git a/eng/common/templates-official/steps/publish-logs.yml b/eng/common/templates-official/steps/publish-logs.yml index 04012fed182..84b2f559c56 100644 --- a/eng/common/templates-official/steps/publish-logs.yml +++ b/eng/common/templates-official/steps/publish-logs.yml @@ -1,6 +1,9 @@ parameters: StageLabel: '' JobLabel: '' + CustomSensitiveDataList: '' + # A default - in case value from eng/common/templates-official/post-build/common-variables.yml is not passed + BinlogToolVersion: '1.0.11' steps: - task: Powershell@2 @@ -12,7 +15,30 @@ steps: Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - + +- task: PowerShell@2 + displayName: Redact Logs + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1 + # For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml + # Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + # If the file exists - sensitive data for redaction will be sourced from it + # (single entry per line, lines starting with '# ' are considered comments and skipped) + arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs' + -BinlogToolVersion ${{parameters.BinlogToolVersion}} + -TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + '$(publishing-dnceng-devdiv-code-r-build-re)' + '$(MaestroAccessToken)' + '$(dn-bot-all-orgs-artifact-feeds-rw)' + '$(akams-client-id)' + '$(akams-client-secret)' + '$(microsoft-symbol-server-pat)' + '$(symweb-symbol-server-pat)' + '$(dn-bot-all-orgs-build-rw-code-rw)' + ${{parameters.CustomSensitiveDataList}} + continueOnError: true + condition: always() + - task: 1ES.PublishBuildArtifacts@1 displayName: Publish Logs inputs: diff --git a/eng/common/templates-official/steps/source-build.yml b/eng/common/templates-official/steps/source-build.yml index 829f17c34d1..b1db70842f5 100644 --- a/eng/common/templates-official/steps/source-build.yml +++ b/eng/common/templates-official/steps/source-build.yml @@ -105,7 +105,7 @@ steps: Contents: | **/*.log **/*.binlog - artifacts/source-build/self/prebuilt-report/** + artifacts/sb/prebuilt-report/** TargetFolder: '$(Build.StagingDirectory)/BuildLogs' CleanTargetFolder: true continueOnError: true @@ -126,4 +126,4 @@ steps: - task: ComponentGovernanceComponentDetection@0 displayName: Component Detection (Exclude upstream cache) inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' + ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache'