From f23cd2e219a14cd80ff89f43286c57d16c3ed3b7 Mon Sep 17 00:00:00 2001 From: Pascal Berger Date: Sun, 5 Jan 2025 12:33:06 +0100 Subject: [PATCH] Switch build to Cake Frosting --- .appveyor.yml | 2 +- .../stages/build-for-integration-tests.yml | 2 +- .config/dotnet-tools.json | 12 - .github/renovate.json | 13 + .github/workflows/integrationtests.yml | 2 +- .gitignore | 1 + build.ps1 | 17 +- build.sh | 11 +- build/Build.csproj | 19 + build/BuildLifetime.cs | 52 + build/Context/BuildContext.cs | 25 + build/Context/Parameters/BuildParameters.cs | 18 + .../Parameters/CodeCoverageParameters.cs | 7 + build/Context/Parameters/MsBuildParameters.cs | 15 + .../Context/Parameters/PackagingParameters.cs | 7 + build/Context/Paths.cs | 31 + build/Context/State/BuildState.cs | 11 + build/Extensions/ServiceProviderExtensions.cs | 11 + build/Program.cs | 18 + build/Tasks/Build/BuildSolutionTask.cs | 32 + build/Tasks/Build/BuildTask.cs | 7 + build/Tasks/Build/RestoreSolutionTask.cs | 21 + build/Tasks/DefaultTask.cs | 9 + build/Tasks/Lint/LintTask.cs | 8 + build/Tasks/Lint/RunInspectCodeTask.cs | 41 + .../Tasks/Package/CreateNuGetPackagesTask.cs | 30 + build/Tasks/Package/PackageTask.cs | 7 + build/Tasks/Publish/PublishCodeCoverage.cs | 28 + .../Tasks/Publish/PublishNuGetPackagesTask.cs | 29 + build/Tasks/Publish/PublishTask.cs | 8 + build/Tasks/Test/TestSolutionTask.cs | 22 + build/Tasks/Test/TestTask.cs | 7 + build/packages.lock.json | 1702 +++++++++++++++++ .../contributing/how-to-build.md | 10 +- nuspec/nuget/Cake.Issues.DocFx.nuspec | 6 +- nuspec/nuget/Cake.Issues.EsLint.nuspec | 6 +- nuspec/nuget/Cake.Issues.GitRepository.nuspec | 6 +- nuspec/nuget/Cake.Issues.InspectCode.nuspec | 6 +- nuspec/nuget/Cake.Issues.Markdownlint.nuspec | 6 +- nuspec/nuget/Cake.Issues.MsBuild.nuspec | 14 +- .../Cake.Issues.PullRequests.AppVeyor.nuspec | 6 +- ...ake.Issues.PullRequests.AzureDevOps.nuspec | 6 +- ...e.Issues.PullRequests.GitHubActions.nuspec | 6 +- nuspec/nuget/Cake.Issues.PullRequests.nuspec | 6 +- .../Cake.Issues.Reporting.Console.nuspec | 8 +- .../Cake.Issues.Reporting.Generic.nuspec | 10 +- .../nuget/Cake.Issues.Reporting.Sarif.nuspec | 8 +- nuspec/nuget/Cake.Issues.Reporting.nuspec | 6 +- nuspec/nuget/Cake.Issues.Sarif.nuspec | 8 +- nuspec/nuget/Cake.Issues.Tap.nuspec | 8 +- nuspec/nuget/Cake.Issues.Terraform.nuspec | 6 +- nuspec/nuget/Cake.Issues.Testing.nuspec | 6 +- nuspec/nuget/Cake.Issues.nuspec | 10 +- recipe.cake | 216 --- .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + .../packages.lock.json | 12 + src/Cake.Issues.Tap.Tests/packages.lock.json | 12 + .../packages.lock.json | 12 + src/Cake.Issues.Tests/packages.lock.json | 12 + src/Directory.Build.props | 1 + src/Directory.Build.targets | 27 - src/Directory.Packages.props | 1 + 75 files changed, 2477 insertions(+), 357 deletions(-) delete mode 100644 .config/dotnet-tools.json create mode 100644 build/Build.csproj create mode 100644 build/BuildLifetime.cs create mode 100644 build/Context/BuildContext.cs create mode 100644 build/Context/Parameters/BuildParameters.cs create mode 100644 build/Context/Parameters/CodeCoverageParameters.cs create mode 100644 build/Context/Parameters/MsBuildParameters.cs create mode 100644 build/Context/Parameters/PackagingParameters.cs create mode 100644 build/Context/Paths.cs create mode 100644 build/Context/State/BuildState.cs create mode 100644 build/Extensions/ServiceProviderExtensions.cs create mode 100644 build/Program.cs create mode 100644 build/Tasks/Build/BuildSolutionTask.cs create mode 100644 build/Tasks/Build/BuildTask.cs create mode 100644 build/Tasks/Build/RestoreSolutionTask.cs create mode 100644 build/Tasks/DefaultTask.cs create mode 100644 build/Tasks/Lint/LintTask.cs create mode 100644 build/Tasks/Lint/RunInspectCodeTask.cs create mode 100644 build/Tasks/Package/CreateNuGetPackagesTask.cs create mode 100644 build/Tasks/Package/PackageTask.cs create mode 100644 build/Tasks/Publish/PublishCodeCoverage.cs create mode 100644 build/Tasks/Publish/PublishNuGetPackagesTask.cs create mode 100644 build/Tasks/Publish/PublishTask.cs create mode 100644 build/Tasks/Test/TestSolutionTask.cs create mode 100644 build/Tasks/Test/TestTask.cs create mode 100644 build/packages.lock.json delete mode 100644 recipe.cake delete mode 100644 src/Directory.Build.targets diff --git a/.appveyor.yml b/.appveyor.yml index 3c530bc81..851db569a 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -29,7 +29,7 @@ install: # Build Script # #---------------------------------# build_script: - - ps: .\build.ps1 --target=CI + - ps: .\build.ps1 --target=Publish # Tests test: off diff --git a/.azuredevops/pipelines/templates/stages/build-for-integration-tests.yml b/.azuredevops/pipelines/templates/stages/build-for-integration-tests.yml index a8d7479da..f2845e80b 100644 --- a/.azuredevops/pipelines/templates/stages/build-for-integration-tests.yml +++ b/.azuredevops/pipelines/templates/stages/build-for-integration-tests.yml @@ -12,7 +12,7 @@ stages: vmImage: 'ubuntu-22.04' steps: - template: ../steps/install-required-dotnet-versions-for-building.yml - - bash: ./build.sh --target=Create-NuGet-Packages + - bash: ./build.sh --target=Package displayName: 'Build' - publish: $(Build.SourcesDirectory)/BuildArtifacts/Packages/NuGet artifact: NuGet Package diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json deleted file mode 100644 index 4903ba5f5..000000000 --- a/.config/dotnet-tools.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "version": 1, - "isRoot": true, - "tools": { - "cake.tool": { - "version": "1.3.0", - "commands": [ - "dotnet-cake" - ] - } - } -} \ No newline at end of file diff --git a/.github/renovate.json b/.github/renovate.json index 6de79dbc0..abde24633 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -24,6 +24,19 @@ ], "datasourceTemplate": "nuget", "versioningTemplate": "nuget" + }, + { + "customType": "regex", + "description": "Update NuGet package versions in C# files", + "fileMatch": [ + "build/{{arg0}}$", + "src/{{arg1}}$" + ], + "matchStrings": [ + "// renovate:( datasource=(?.*?))? depName=(?.*?)( versioning=(?.*?))?( extractVersion=(?.*?))?\\s*const string \\w*[vV]ersion = \"(?\\S*)\";\\s?" + ], + "datasourceTemplate": "nuget", + "versioningTemplate": "nuget" } ], "packageRules": [ diff --git a/.github/workflows/integrationtests.yml b/.github/workflows/integrationtests.yml index 3a4fe34cf..c46fa6361 100644 --- a/.github/workflows/integrationtests.yml +++ b/.github/workflows/integrationtests.yml @@ -32,7 +32,7 @@ jobs: 8.x 9.x - name: Build - run: ./build.sh --target=Create-NuGet-Packages + run: ./build.sh --target=Package shell: bash - name: Publish NuGet package as build artifact uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4 diff --git a/.gitignore b/.gitignore index 3068af6bf..25659b0fb 100644 --- a/.gitignore +++ b/.gitignore @@ -305,4 +305,5 @@ __pycache__/ # Project specific BuildArtifacts/ +build/tools/* docs/.cache/ \ No newline at end of file diff --git a/build.ps1 b/build.ps1 index 0940a3114..a7077190a 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1,15 +1,2 @@ -$ErrorActionPreference = 'Stop' - -$SCRIPT_NAME = "recipe.cake" - -Write-Host "Restoring .NET Core tools" -dotnet tool restore -if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - -Write-Host "Bootstrapping Cake" -dotnet cake $SCRIPT_NAME --bootstrap -if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } - -Write-Host "Running Build" -dotnet cake $SCRIPT_NAME @args -if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } \ No newline at end of file +dotnet run --project build/Build.csproj -- $args +exit $LASTEXITCODE; \ No newline at end of file diff --git a/build.sh b/build.sh index ba5d0c95c..811a6b134 100755 --- a/build.sh +++ b/build.sh @@ -1,11 +1,2 @@ #!/bin/bash -SCRIPT_NAME="recipe.cake" - -echo "Restoring .NET Core tools" -dotnet tool restore - -echo "Bootstrapping Cake" -dotnet cake $SCRIPT_NAME --bootstrap - -echo "Running Build" -dotnet cake $SCRIPT_NAME "$@" \ No newline at end of file +dotnet run --project ./build/Build.csproj -- "$@" \ No newline at end of file diff --git a/build/Build.csproj b/build/Build.csproj new file mode 100644 index 000000000..6bc11f4c5 --- /dev/null +++ b/build/Build.csproj @@ -0,0 +1,19 @@ + + + Exe + net9.0 + enable + true + + + + $(MSBuildProjectDirectory) + + + + + + + + + diff --git a/build/BuildLifetime.cs b/build/BuildLifetime.cs new file mode 100644 index 000000000..4a9c0789d --- /dev/null +++ b/build/BuildLifetime.cs @@ -0,0 +1,52 @@ +using Cake.Common; +using Cake.Common.Build; +using Cake.Common.Diagnostics; +using Cake.Common.IO; +using Cake.Common.Tools.GitVersion; +using Cake.Core; +using Cake.Frosting; +using Spectre.Console; + +public class BuildLifetime : FrostingLifetime +{ + public override void Setup(BuildContext context, ISetupContext info) + { + AnsiConsole.Write(new FigletText("Cake.Issues").Centered()); + + // Determine version + DetermineVersion(context); + + // Cleanup "dist" folder + context.CleanDirectory(context.Parameters.OutputDirectory); + } + + public override void Teardown(BuildContext context, ITeardownContext info) + { + } + + private static void DetermineVersion(BuildContext context) + { + var settings = new GitVersionSettings + { + ToolPath = context.Tools.Resolve("dotnet-gitversion.exe") + }; + + if (settings.ToolPath == null) + { + settings.ToolPath = context.Tools.Resolve("dotnet-gitversion"); + } + + if (!context.BuildSystem().IsLocalBuild) + { + settings.UpdateAssemblyInfo = true; + settings.UpdateAssemblyInfoFilePath = + context.State.RepositoryRootDirectory + .GetRelativePath(context.Paths.SrcDirectoryPath) + .CombineWithFilePath("SolutionInfo.cs"); + } + + context.State.Version = context.GitVersion(settings); + + context.Information("Building version {0}", context.State.Version.FullSemVer); + } +} diff --git a/build/Context/BuildContext.cs b/build/Context/BuildContext.cs new file mode 100644 index 000000000..60d8f2b3e --- /dev/null +++ b/build/Context/BuildContext.cs @@ -0,0 +1,25 @@ +using Cake.Core; + +/// +/// Class holding state during execution of build. +/// +public class BuildContext : IssuesContext +{ + public Paths Paths { get; } + + public BuildContext(ICakeContext context) + : base(context) + { + Paths = new Paths(this); + } + + protected override BuildParameters CreateIssuesParameters() + { + return new BuildParameters(this); + } + + protected override BuildState CreateIssuesState() + { + return new BuildState(this); + } +} diff --git a/build/Context/Parameters/BuildParameters.cs b/build/Context/Parameters/BuildParameters.cs new file mode 100644 index 000000000..d249c2b4c --- /dev/null +++ b/build/Context/Parameters/BuildParameters.cs @@ -0,0 +1,18 @@ +using Cake.Core; + +public class BuildParameters : IssuesParameters +{ + public CodeCoverageParameters CodeCoverage { get; } + + public MsBuildParameters Build { get; } + + public PackagingParameters Packaging { get; } + + public BuildParameters(ICakeContext context) + { + this.OutputDirectory = "../BuildArtifacts"; + this.CodeCoverage = new CodeCoverageParameters(context); + this.Build = new MsBuildParameters(context); + this.Packaging = new PackagingParameters(context); + } +} diff --git a/build/Context/Parameters/CodeCoverageParameters.cs b/build/Context/Parameters/CodeCoverageParameters.cs new file mode 100644 index 000000000..4ba983362 --- /dev/null +++ b/build/Context/Parameters/CodeCoverageParameters.cs @@ -0,0 +1,7 @@ +using Cake.Common; +using Cake.Core; + +public class CodeCoverageParameters(ICakeContext context) +{ + public string CodecovRepoToken { get; } = context.EnvironmentVariable("CODECOV_REPO_TOKEN"); +} \ No newline at end of file diff --git a/build/Context/Parameters/MsBuildParameters.cs b/build/Context/Parameters/MsBuildParameters.cs new file mode 100644 index 000000000..016d24340 --- /dev/null +++ b/build/Context/Parameters/MsBuildParameters.cs @@ -0,0 +1,15 @@ +using Cake.Common.Build; +using Cake.Common.Tools.DotNet.MSBuild; +using Cake.Core; + +public class MsBuildParameters(ICakeContext context) +{ + public string Configuration { get; } = "Release"; // Configuration is also hardcoded in nuspec files + + public DotNetMSBuildSettings GetSettings() + { + return new DotNetMSBuildSettings() + .SetConfiguration(this.Configuration) + .WithProperty("ContinuousIntegrationBuild", (!context.BuildSystem().IsLocalBuild).ToString()); + } +} \ No newline at end of file diff --git a/build/Context/Parameters/PackagingParameters.cs b/build/Context/Parameters/PackagingParameters.cs new file mode 100644 index 000000000..8cd182811 --- /dev/null +++ b/build/Context/Parameters/PackagingParameters.cs @@ -0,0 +1,7 @@ +using Cake.Common; +using Cake.Core; + +public class PackagingParameters(ICakeContext context) +{ + public string NuGetApiKey { get; } = context.EnvironmentVariable("NUGET_API_KEY"); +} \ No newline at end of file diff --git a/build/Context/Paths.cs b/build/Context/Paths.cs new file mode 100644 index 000000000..e93bb598e --- /dev/null +++ b/build/Context/Paths.cs @@ -0,0 +1,31 @@ +using Cake.Common.IO; +using Cake.Core.IO; + +public class Paths +{ + public FilePath SolutionFilePath { get; } + + public DirectoryPath SrcDirectoryPath { get; } + + public DirectoryPath NuspecDirectoryPath { get; } + + public DirectoryPath OutputLogsDirectoryPath { get; } + + public DirectoryPath OutputPackagesNuGetDirectoryPath { get; } + + public DirectoryPath OutputTestResultsDirectoryPath { get; } + + public Paths(BuildContext context) + { + this.SrcDirectoryPath = context.State.RepositoryRootDirectory.Combine("src"); + this.NuspecDirectoryPath = context.State.RepositoryRootDirectory.Combine("nuspec").Combine("nuget"); + + this.OutputLogsDirectoryPath = context.Parameters.OutputDirectory.Combine("logs"); + this.OutputPackagesNuGetDirectoryPath = context.Parameters.OutputDirectory.Combine("Packages").Combine("NuGet"); + this.OutputTestResultsDirectoryPath = context.Parameters.OutputDirectory.Combine("TestResults"); + + this.SolutionFilePath = this.SrcDirectoryPath.CombineWithFilePath("Cake.Issues.sln"); + + context.EnsureDirectoryExists(context.Parameters.OutputDirectory); + } +} diff --git a/build/Context/State/BuildState.cs b/build/Context/State/BuildState.cs new file mode 100644 index 000000000..017cffa2b --- /dev/null +++ b/build/Context/State/BuildState.cs @@ -0,0 +1,11 @@ +using Cake.Common.Tools.GitVersion; + +public class BuildState : IssuesState +{ + public GitVersion Version { get; set; } + + public BuildState(BuildContext context) + : base(context, RepositoryInfoProviderType.CakeGit) + { + } +} diff --git a/build/Extensions/ServiceProviderExtensions.cs b/build/Extensions/ServiceProviderExtensions.cs new file mode 100644 index 000000000..ed0966b56 --- /dev/null +++ b/build/Extensions/ServiceProviderExtensions.cs @@ -0,0 +1,11 @@ +using Cake.Core.Packaging; +using Cake.Frosting; + +internal static class ServiceProviderExtensions +{ + public static void InstallTool(this IServiceProvider provider, string packageName, string packageVersion) + { + var toolInstaller = (IToolInstaller)provider.GetService(typeof(IToolInstaller)); + toolInstaller.Install(new PackageReference($"nuget:?package={packageName}&version={packageVersion}")); + } +} \ No newline at end of file diff --git a/build/Program.cs b/build/Program.cs new file mode 100644 index 000000000..03e649de1 --- /dev/null +++ b/build/Program.cs @@ -0,0 +1,18 @@ +using Cake.Frosting; +using System.Reflection; + +public static class Program +{ + public static int Main(string[] args) + { + // renovate: depName=GitVersion.Tool + const string nuGetVersion = "6.1.0"; + + return new CakeHost() + .UseContext() + .UseLifetime() + .AddAssembly(Assembly.GetAssembly(typeof(IssuesTask))) + .InstallTool(new Uri($"dotnet:?package=GitVersion.Tool&version={nuGetVersion}")) + .Run(args); + } +} diff --git a/build/Tasks/Build/BuildSolutionTask.cs b/build/Tasks/Build/BuildSolutionTask.cs new file mode 100644 index 000000000..457bf4bc6 --- /dev/null +++ b/build/Tasks/Build/BuildSolutionTask.cs @@ -0,0 +1,32 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Build; +using Cake.Common.Tools.DotNet.MSBuild; +using Cake.Frosting; + +[TaskName("Build-Solution")] +[IsDependentOn(typeof(RestoreSolutionTask))] +[IsDependeeOf(typeof(ReadIssuesTask))] +public sealed class BuildSolutionTask : FrostingTask +{ + public override void Run(BuildContext context) + { + var msBuildLogFilePath = context.Paths.OutputLogsDirectoryPath.CombineWithFilePath("build.binlog"); + + var settings = new DotNetBuildSettings + { + NoRestore = true, + MSBuildSettings = + context.Parameters.Build.GetSettings() + .WithLogger( + "BinaryLogger," + context.Environment.ApplicationRoot.CombineWithFilePath("StructuredLogger.dll"), + "", + msBuildLogFilePath.FullPath) + .WithTarget("Rebuild"), + }; + + context.DotNetBuild(context.Paths.SolutionFilePath.FullPath, settings); + + // Read issues + context.Parameters.InputFiles.AddMsBuildBinaryLogFilePath(msBuildLogFilePath); + } +} diff --git a/build/Tasks/Build/BuildTask.cs b/build/Tasks/Build/BuildTask.cs new file mode 100644 index 000000000..4f72313b3 --- /dev/null +++ b/build/Tasks/Build/BuildTask.cs @@ -0,0 +1,7 @@ +using Cake.Frosting; + +[TaskName("Build")] +[IsDependentOn(typeof(BuildSolutionTask))] +public sealed class BuildTask : FrostingTask +{ +} diff --git a/build/Tasks/Build/RestoreSolutionTask.cs b/build/Tasks/Build/RestoreSolutionTask.cs new file mode 100644 index 000000000..804bcd4f4 --- /dev/null +++ b/build/Tasks/Build/RestoreSolutionTask.cs @@ -0,0 +1,21 @@ +using Cake.Common.Build; +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Restore; +using Cake.Frosting; + +[TaskName("Restore-Solution")] +public sealed class RestoreSolutionTask : FrostingTask +{ + public override void Run(BuildContext context) + { + // Enforce up to date lock files in CI builds. + // On local builds lock files will be updated if necessary. + var settings = new DotNetRestoreSettings + { + LockedMode = !context.BuildSystem().IsLocalBuild, + MSBuildSettings = context.Parameters.Build.GetSettings(), + }; + + context.DotNetRestore(context.Paths.SolutionFilePath.FullPath, settings); + } +} diff --git a/build/Tasks/DefaultTask.cs b/build/Tasks/DefaultTask.cs new file mode 100644 index 000000000..7535e6ab5 --- /dev/null +++ b/build/Tasks/DefaultTask.cs @@ -0,0 +1,9 @@ +using Cake.Frosting; + +[TaskName("Default")] +[IsDependentOn(typeof(LintTask))] +[IsDependentOn(typeof(PackageTask))] +[IsDependentOn(typeof(TestTask))] +public sealed class DefaultTask : FrostingTask +{ +} diff --git a/build/Tasks/Lint/LintTask.cs b/build/Tasks/Lint/LintTask.cs new file mode 100644 index 000000000..8fd177e88 --- /dev/null +++ b/build/Tasks/Lint/LintTask.cs @@ -0,0 +1,8 @@ +using Cake.Frosting; + +[TaskName("Lint")] +[IsDependentOn(typeof(RunInspectCodeTask))] +[IsDependentOn(typeof(IssuesTask))] +public class LintTask : FrostingTask +{ +} diff --git a/build/Tasks/Lint/RunInspectCodeTask.cs b/build/Tasks/Lint/RunInspectCodeTask.cs new file mode 100644 index 000000000..7fae335cd --- /dev/null +++ b/build/Tasks/Lint/RunInspectCodeTask.cs @@ -0,0 +1,41 @@ +using Cake.Common.Tools.InspectCode; +using Cake.Core; +using Cake.Frosting; + +[TaskName("Run-InspectCodeTask")] +[IsDependeeOf(typeof(ReadIssuesTask))] +public sealed class RunInspectCodeTask(IServiceProvider provider) : FrostingTask +{ + public override bool ShouldRun(BuildContext context) + { + return context.Environment.Platform.Family == PlatformFamily.Windows; + } + + public override void Run(BuildContext context) + { + // renovate: depName=JetBrains.ReSharper.CommandLineTools + const string inspectCodeVersion = "2024.3.3"; + provider.InstallTool("JetBrains.ReSharper.CommandLineTools", inspectCodeVersion); + + var inspectCodeLogFilePath = context.Paths.OutputLogsDirectoryPath.CombineWithFilePath("inspectcode.sarif"); + + // Run InspectCode. + var settings = new InspectCodeSettings() + { + SolutionWideAnalysis = true, + OutputFile = inspectCodeLogFilePath, + SkipOutputAnalysis = true, + }; + context.InspectCode( + context.Paths.SolutionFilePath, + settings); + + // Read issues + context.Parameters.InputFiles.AddSarifLogFilePath( + inspectCodeLogFilePath, + new ReadIssuesSettings(context.State.RepositoryRootDirectory) + { + Run = "InspectCode", + }); + } +} diff --git a/build/Tasks/Package/CreateNuGetPackagesTask.cs b/build/Tasks/Package/CreateNuGetPackagesTask.cs new file mode 100644 index 000000000..cf9edbdd7 --- /dev/null +++ b/build/Tasks/Package/CreateNuGetPackagesTask.cs @@ -0,0 +1,30 @@ +using Cake.Common.IO; +using Cake.Common.Tools.NuGet; +using Cake.Common.Tools.NuGet.Pack; +using Cake.Frosting; + +[TaskName("Create-NuGetPackages")] +[IsDependentOn(typeof(BuildSolutionTask))] +public sealed class CreateNuGetPackagesTask(IServiceProvider provider) : FrostingTask +{ + public override void Run(BuildContext context) + { + // renovate: depName=NuGet.CommandLine + const string nuGetVersion = "6.12.2"; + provider.InstallTool("NuGet.CommandLine", nuGetVersion); + + var nuspecFiles = context.GetFiles(context.Paths.NuspecDirectoryPath + "/**/*.nuspec"); + foreach (var nuspecFile in nuspecFiles) + { + context.EnsureDirectoryExists(context.Paths.OutputPackagesNuGetDirectoryPath); + + var settings = new NuGetPackSettings + { + Version = context.State.Version.SemVer, + OutputDirectory = context.Paths.OutputPackagesNuGetDirectoryPath, + }; + + context.NuGetPack(nuspecFile, settings); + } + } +} diff --git a/build/Tasks/Package/PackageTask.cs b/build/Tasks/Package/PackageTask.cs new file mode 100644 index 000000000..56d7d54c7 --- /dev/null +++ b/build/Tasks/Package/PackageTask.cs @@ -0,0 +1,7 @@ +using Cake.Frosting; + +[TaskName("Package")] +[IsDependentOn(typeof(CreateNuGetPackagesTask))] +public sealed class PackageTask : FrostingTask +{ +} diff --git a/build/Tasks/Publish/PublishCodeCoverage.cs b/build/Tasks/Publish/PublishCodeCoverage.cs new file mode 100644 index 000000000..04e6b8f7c --- /dev/null +++ b/build/Tasks/Publish/PublishCodeCoverage.cs @@ -0,0 +1,28 @@ +using Cake.Codecov; +using Cake.Common.IO; +using Cake.Frosting; + +[TaskName("Publish-CodeCoverage")] +[IsDependentOn(typeof(TestSolutionTask))] +public sealed class PublishCodeCoverageTask(IServiceProvider provider) : FrostingTask +{ + public override void Run(BuildContext context) + { + // renovate: depName=CodecovUploader + const string nuGetVersion = "0.8.0"; + provider.InstallTool("CodecovUploader", nuGetVersion); + + var coverageFiles = context.GetFiles(context.Paths.OutputTestResultsDirectoryPath + "/**/coverage.cobertura.xml"); + foreach (var coverageFile in coverageFiles) + { + var settings = new CodecovSettings + { + Files = coverageFiles.Select(f => f.FullPath), + NonZero = true, + Token = context.Parameters.CodeCoverage.CodecovRepoToken + }; + + context.Codecov(settings); + } + } +} diff --git a/build/Tasks/Publish/PublishNuGetPackagesTask.cs b/build/Tasks/Publish/PublishNuGetPackagesTask.cs new file mode 100644 index 000000000..71abe65fd --- /dev/null +++ b/build/Tasks/Publish/PublishNuGetPackagesTask.cs @@ -0,0 +1,29 @@ +using Cake.Common.IO; +using Cake.Common.Tools.NuGet; +using Cake.Common.Tools.NuGet.Push; +using Cake.Frosting; + +[TaskName("Publish-NuGetPackages")] +[IsDependentOn(typeof(BuildSolutionTask))] +public sealed class PublishNuGetPackagesTask(IServiceProvider provider) : FrostingTask +{ + public override void Run(BuildContext context) + { + // renovate: depName=NuGet.CommandLine + const string nuGetVersion = "6.12.2"; + provider.InstallTool("NuGet.CommandLine", nuGetVersion); + + var nuspecFiles = context.GetFiles(context.Paths.OutputPackagesNuGetDirectoryPath + "/*.nupkg"); + foreach (var nuspecFile in nuspecFiles) + { + var settings = new NuGetPushSettings + { + ApiKey = context.Parameters.Packaging.NuGetApiKey, + Source = "https://api.nuget.org/v3/index.json", + SkipDuplicate = true, + }; + + context.NuGetPush(nuspecFile, settings); + } + } +} diff --git a/build/Tasks/Publish/PublishTask.cs b/build/Tasks/Publish/PublishTask.cs new file mode 100644 index 000000000..b8a126f9b --- /dev/null +++ b/build/Tasks/Publish/PublishTask.cs @@ -0,0 +1,8 @@ +using Cake.Frosting; + +[TaskName("Publish")] +[IsDependentOn(typeof(PublishCodeCoverageTask))] +[IsDependentOn(typeof(PublishNuGetPackagesTask))] +public sealed class PublishTask : FrostingTask +{ +} diff --git a/build/Tasks/Test/TestSolutionTask.cs b/build/Tasks/Test/TestSolutionTask.cs new file mode 100644 index 000000000..d4101be9f --- /dev/null +++ b/build/Tasks/Test/TestSolutionTask.cs @@ -0,0 +1,22 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Test; +using Cake.Frosting; + +[TaskName("Test-Solution")] +[IsDependentOn(typeof(BuildSolutionTask))] +public sealed class TestSolutionTask : FrostingTask +{ + public override void Run(BuildContext context) + { + var settings = new DotNetTestSettings + { + Configuration = context.Parameters.Build.Configuration, + NoRestore = true, + NoBuild = true, + Collectors = ["XPlat Code Coverage"], + ResultsDirectory = context.Paths.OutputTestResultsDirectoryPath, + }; + + context.DotNetTest(context.Paths.SolutionFilePath.FullPath, settings); + } +} diff --git a/build/Tasks/Test/TestTask.cs b/build/Tasks/Test/TestTask.cs new file mode 100644 index 000000000..b8b77ad5c --- /dev/null +++ b/build/Tasks/Test/TestTask.cs @@ -0,0 +1,7 @@ +using Cake.Frosting; + +[TaskName("Test")] +[IsDependentOn(typeof(TestSolutionTask))] +public sealed class TestTask : FrostingTask +{ +} diff --git a/build/packages.lock.json b/build/packages.lock.json new file mode 100644 index 000000000..0789fe037 --- /dev/null +++ b/build/packages.lock.json @@ -0,0 +1,1702 @@ +{ + "version": 1, + "dependencies": { + "net9.0": { + "Cake.Codecov": { + "type": "Direct", + "requested": "[3.0.0, )", + "resolved": "3.0.0", + "contentHash": "MxbIO+ow/+RmBxvTGan1K+dUDhTZTYze+dJK2icNs+efkPE8W3cNON1JMxVz/y+j9ItIJI7Vmg8ZtwxH7vRrZg==" + }, + "Cake.Frosting": { + "type": "Direct", + "requested": "[5.0.0, )", + "resolved": "5.0.0", + "contentHash": "jbukBg11yFrsa5dqmvVoMdkkQUlV7tAlYbBgorVwvB7iMKUu3kQj8Q38OEdAJYkAyxYiaBkRaQ/7UkiXbVkIJw==", + "dependencies": { + "Autofac": "8.1.1", + "Cake.Cli": "5.0.0", + "Cake.Common": "5.0.0", + "Cake.Core": "5.0.0", + "Cake.DotNetTool.Module": "5.0.0", + "Cake.NuGet": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Extensions.DependencyInjection": "9.0.0", + "Microsoft.IdentityModel.JsonWebTokens": "8.2.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0", + "Newtonsoft.Json": "13.0.3", + "NuGet.Common": "6.11.1", + "NuGet.Frameworks": "6.11.1", + "NuGet.Packaging": "6.11.1", + "NuGet.Protocol": "6.11.1", + "NuGet.Resolver": "6.11.1", + "NuGet.Versioning": "6.11.1", + "Spectre.Console": "0.49.1", + "Spectre.Console.Cli": "0.49.1", + "System.Security.Cryptography.Pkcs": "9.0.0" + } + }, + "Cake.Frosting.Issues.Recipe": { + "type": "Direct", + "requested": "[5.1.1, )", + "resolved": "5.1.1", + "contentHash": "cuc4yrnOB+guWEAryLHzWPq/UGZMHPnmsnB2iKRIGb2ZkjPCHO5aA02wWzMzwOBwzeA9aWLYZMw54CUhk0fVCQ==", + "dependencies": { + "Cake.Frosting.AzureDevOps": "5.0.0", + "Cake.Frosting.Git": "5.0.1", + "Cake.Frosting.Issues.EsLint": "5.1.1", + "Cake.Frosting.Issues.InspectCode": "5.1.1", + "Cake.Frosting.Issues.Markdownlint": "5.1.1", + "Cake.Frosting.Issues.MsBuild": "5.1.1", + "Cake.Frosting.Issues.PullRequests": "5.1.1", + "Cake.Frosting.Issues.PullRequests.AppVeyor": "5.1.1", + "Cake.Frosting.Issues.PullRequests.AzureDevOps": "5.1.1", + "Cake.Frosting.Issues.PullRequests.GitHubActions": "5.1.1", + "Cake.Frosting.Issues.Reporting": "5.1.1", + "Cake.Frosting.Issues.Reporting.Console": "5.1.1", + "Cake.Frosting.Issues.Reporting.Generic": "5.1.1", + "Cake.Frosting.Issues.Reporting.Sarif": "5.1.1", + "Cake.Frosting.Issues.Sarif": "5.1.1", + "Cake.Issues": "5.1.1" + } + }, + "Autofac": { + "type": "Transitive", + "resolved": "8.1.1", + "contentHash": "lhHjVB/XJtxPDUQ/FAHWAC7Spu+P9TNfDbyx2W0ABqD1eTRo7TkcZ7l7Oq1S5pKNg7NXswdk9uH73qbOzSwQFA==", + "dependencies": { + "System.Diagnostics.DiagnosticSource": "8.0.1" + } + }, + "Cake.Cli": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "B6blV4M8UHqPjyqDOVJNutEox0jXiGo34CzbqU9FiD3cI33jTdJrclZIfJXURFfF/hQcOHdnX+BBWNOpFk3p5g==", + "dependencies": { + "Autofac": "8.1.1", + "Cake.Core": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0", + "Spectre.Console": "0.49.1", + "Spectre.Console.Cli": "0.49.1" + } + }, + "Cake.Common": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "xRJT+g5lX8iYt7jygqyrN9h/3b4H69QsChTHtRr3h76718Kw4ctZdXQnBydH8TqfDWMbfMpthfrOjReQC1RUzQ==", + "dependencies": { + "Cake.Core": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.IdentityModel.JsonWebTokens": "8.2.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Cake.Core": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "hq0HlI6bdRoMjUQTKioVjJZxQRxT7SuIjLjfTXO7fWe/alEU4OJumxq6LhTqz06pTRC7e5OrQqXyGKJnq5I+rw==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Cake.DotNetTool.Module": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "EKxW6eWwxtgrz4Tw4hVR+CWiZGy6mKBCXSPQhvs3vDsqibK8esfQklQu7JNUVujsmPvS0lD+Qwi6//+EkPb0/w==", + "dependencies": { + "Cake.Core": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.NETCore.Platforms": "7.0.4", + "Microsoft.Win32.Registry": "5.0.0" + } + }, + "Cake.Frosting.AzureDevOps": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "P0WE3e2Z1pmfIdrRG7vuWQE+29vNZzuWUprvi5inOc08pPBe0HfmOnK6Bkd4cY1yFw6tBaPStUDFjG+wQSKafQ==", + "dependencies": { + "Cake.Core": "5.0.0", + "Microsoft.Identity.Client": "4.66.2", + "Microsoft.TeamFoundationServer.Client": "19.225.1", + "Microsoft.VisualStudio.Services.InteractiveClient": "19.225.1", + "System.Data.SqlClient": "4.9.0", + "System.Formats.Asn1": "9.0.0", + "System.IdentityModel.Tokens.Jwt": "8.2.1", + "System.Net.Http": "4.3.4", + "System.Text.RegularExpressions": "4.3.1", + "TfsUrlParser": "1.5.0" + } + }, + "Cake.Frosting.Git": { + "type": "Transitive", + "resolved": "5.0.1", + "contentHash": "85K0OGIEHj2oBvhITAJXRix7sUXLMLJmv5CNygH5LDIB3IubW5v7DxHZlyR16+gVgLygSx+DEVPzYLGqRRsR2Q==", + "dependencies": { + "Cake.Core": "5.0.0", + "LibGit2Sharp": "0.30.0" + } + }, + "Cake.Frosting.Issues.EsLint": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "Olw3Du1qMkZ/3VsoDRiXOcl0XpPVNjXwYBEehVtlQll3nwbDyPghRlK3LYdWw452K4zcdqtgqNk8bhgtAeyQ0g==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.InspectCode": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "jceK1RIgq6HIy+5MFNxFz4t1X76/IV0QQvdaGjh/QHfVCeKRwbINUVG9fs6MnpG6AtLN8Hnnbl4NpZ53UlAttQ==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.Markdownlint": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "P4YrLTcekIeciT1k21vyZJNf3AeBFx0U/iOGKme/xkPhK+5bm96LBkpyPwURIzxkkOe4wXo2KUF5ADNJ4de3WA==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.MsBuild": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "e0XamneIEwa83zKtcYYZs+YselPbt+oOMz8MIgqzBGXVmta1JRoy6LToONyyM9XwABaJPD0h1EZaDUclA3LLpA==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)", + "MSBuild.StructuredLogger": "2.2.386" + } + }, + "Cake.Frosting.Issues.PullRequests": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "thGnv4nMIM9+dR17CICqYG0NSVmdnQeW9KW7Csy+QLOSpZOvFyLFybZMyZxhAiknTVu8qt3nD6LKmpBmhaOA9w==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)", + "Spectre.Console": "0.49.1" + } + }, + "Cake.Frosting.Issues.PullRequests.AppVeyor": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "bKeZ7KlZft/Uqdzj1iGa+2UjTKygRrc5F5LvoV7stuk2WKaBY2XYHBZSfejDdphdBMwYOzBXRb/R2ixzKNGUvQ==", + "dependencies": { + "Cake.Common": "5.0.0", + "Cake.Frosting.Issues.PullRequests": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.PullRequests.AzureDevOps": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "1eUwnDZtENuxGgkrnxxiO9iG0yjgcvBLI7gIVumlgfLfNEbKQjANzUmRLd2v5xF1qBBIRV7/b7VkyDCpE1uJAA==", + "dependencies": { + "Cake.Frosting.AzureDevOps": "5.0.0", + "Cake.Frosting.Issues.PullRequests": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.PullRequests.GitHubActions": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "S6WDHo7TSp/flR+ffU67YET6aMZt4RwmHfg9TJJN1/fXG4A2sx+zh+b3vnDjdluDDDctmES9Uoya9tCgyOMrKA==", + "dependencies": { + "Cake.Frosting.Issues.PullRequests": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.Reporting": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "YWCpOx6GMoGCqhaqX9do+5MjgsIfHqWkKHXnS7r8AZMOuq9N0I765m3LEBhnxqK0oiLLNScriqeEO2jupYaoZA==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)" + } + }, + "Cake.Frosting.Issues.Reporting.Console": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "lfRTutCDph+G3cq7I4N6TeeypDle7VoydCrg4gs3B2vFL4vzXnJpNIWi8QCLUCK9W4DWIhrQvZqi86keLR2gbA==", + "dependencies": { + "Cake.Frosting.Issues.Reporting": "[5.0.0-beta0001, 6.0.0)", + "Errata": "0.13.0" + } + }, + "Cake.Frosting.Issues.Reporting.Generic": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "ixvAGtd7nEHuLh8w3EaToiy9lbnbGwYKcpgNaLsYgaQN7/TbYgLlbu5DdAZ6QVWe7ICoqfkgd7NA/nvhre3sOQ==", + "dependencies": { + "Cake.Frosting.Issues.Reporting": "[5.0.0-beta0001, 6.0.0)", + "Gazorator": "0.5.2", + "System.Text.Encodings.Web": "4.7.2" + } + }, + "Cake.Frosting.Issues.Reporting.Sarif": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "8U31fSJwf1hYgReDn7aJHXbDqN9ehBoDBQ29x6Na2/0oLac3wEcUlkoLYpmMNfJGV8sJkz3wVBMvWl2+4delGA==", + "dependencies": { + "Cake.Frosting.Issues.Reporting": "[5.0.0-beta0001, 6.0.0)", + "Sarif.Sdk": "4.5.4" + } + }, + "Cake.Frosting.Issues.Sarif": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "DTYXPE/Dgr540ycVYUjt238d+MIYljsakD2lOMT3klB1tMwOHOh5IDe6JYuHvlKO/kO2eCdMAES4NA7Fv1wp/w==", + "dependencies": { + "Cake.Core": "5.0.0", + "Cake.Issues": "[5.0.0-beta0001, 6.0.0)", + "Newtonsoft.Json": "13.0.1", + "Sarif.Sdk": "4.5.4" + } + }, + "Cake.Issues": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "HZZWnMYpjoJ+RAovPddapFjR98tuAB6qYyFf2csADWrMfUqe1ju4KPSQ1yTTZFngUe2BHbPoM+TU03D0rNNhuA==" + }, + "Cake.NuGet": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "r3OWcPymtowozvr2NjToWbDDpayG+ynC2Rwcz8dqxhpnnCnZ3xAhNXELiQQKaVsSaEofZ6AINRvkwJ76Sq/hoQ==", + "dependencies": { + "Cake.Core": "5.0.0", + "Microsoft.CSharp": "4.7.0", + "Microsoft.Win32.Registry": "5.0.0", + "Newtonsoft.Json": "13.0.3", + "NuGet.Common": "6.11.1", + "NuGet.Frameworks": "6.11.1", + "NuGet.Packaging": "6.11.1", + "NuGet.Protocol": "6.11.1", + "NuGet.Resolver": "6.11.1", + "NuGet.Versioning": "6.11.1", + "System.Security.Cryptography.Pkcs": "9.0.0" + } + }, + "Errata": { + "type": "Transitive", + "resolved": "0.13.0", + "contentHash": "Nt8Tj8LnDE4vZ9DG6m2yO+zT+yUbqxbCTXnYFacBxDIdrQNqeglPMsm8cuiEzMR6jwQ7pxZW8OzhjomnFFfGZw==", + "dependencies": { + "Spectre.Console": "0.47.0" + } + }, + "Gazorator": { + "type": "Transitive", + "resolved": "0.5.2", + "contentHash": "uklfp4SJm7yLrpo4U+ZaCuK/1FRwx/BxQESwyZ6KtBQAi5OHe0Zh/+sOAAed8e/cATbSav1ZSCar3haslPiO/A==", + "dependencies": { + "Microsoft.AspNetCore.Razor.Language": "3.1.5", + "Microsoft.CSharp": "4.7.0", + "Microsoft.CodeAnalysis.CSharp.Scripting": "3.6.0", + "System.Text.Encodings.Web": "4.7.1" + } + }, + "LibGit2Sharp": { + "type": "Transitive", + "resolved": "0.30.0", + "contentHash": "1cBg/7nz6q+yzvComhqQaTS4nbXloLp/x29ZgY/Rr82ohpkuaWT8ZYzsPLFvs1zmCh/4xQbVt5sQxazGblgRig==", + "dependencies": { + "LibGit2Sharp.NativeBinaries": "[2.0.322]" + } + }, + "LibGit2Sharp.NativeBinaries": { + "type": "Transitive", + "resolved": "2.0.322", + "contentHash": "EWQaEevzc8uS1ZGS6T83jqUPBY//2WUSCHwbZHBoHOjlfSehqr30nm/VAhJPzjam/69sv7nlLKVcho9t2XuR/Q==" + }, + "Microsoft.AspNet.WebApi.Client": { + "type": "Transitive", + "resolved": "5.2.7", + "contentHash": "/76fAHknzvFqbznS6Uj2sOyE9rJB3PltY+f53TH8dX9RiGhk02EhuFCWljSj5nnqKaTsmma8DFR50OGyQ4yJ1g==", + "dependencies": { + "Newtonsoft.Json": "10.0.1", + "Newtonsoft.Json.Bson": "1.0.1" + } + }, + "Microsoft.AspNetCore.Razor.Language": { + "type": "Transitive", + "resolved": "3.1.5", + "contentHash": "/3eAIITTRDwTeT2AM9vB55VBkIA22mWByrJlPrd3OVKzOShpOtVzIIPnVjZ+543bu8aqfJspOs/wyBLx+//BmA==" + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "17.5.0", + "contentHash": "j1AJfnCY8+dfc8rB3P/9o8P4174kZbEKwhLdkvLObvTGM6kfIZEgWYgd3IN7xJbNdxDfr9rT8Vr7/DaevyWKNg==", + "dependencies": { + "System.Security.Permissions": "6.0.0" + } + }, + "Microsoft.Build.Utilities.Core": { + "type": "Transitive", + "resolved": "17.5.0", + "contentHash": "fKsS1AND9Jk8etIze+0PRK0OoxeUWEK3Ulrc+MFQr+1aekvLztnC1Tdpwt3Edp2485l0lGWFz+oSn/BIoxJV8A==", + "dependencies": { + "Microsoft.Build.Framework": "17.5.0", + "Microsoft.NET.StringTools": "17.5.0", + "System.Collections.Immutable": "6.0.0", + "System.Configuration.ConfigurationManager": "6.0.0" + } + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.0.0", + "contentHash": "ojG5pGAhTPmjxRGTNvuszO3H8XPZqksDwr9xLd4Ae/JBjZZdl6GuoLk7uLMf+o7yl5wO0TAqoWcEKkEWqrZE5g==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "3.6.0", + "contentHash": "jQxDeYyQbNZwx/9O8hiyApTqZ7+KR3xVA6Ogbb50qsODfjAKRWuH7z3lGkU/62PYUz4yiDtgXlRtntWNdhFPfQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.0.0", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Reflection.Metadata": "1.6.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.0", + "System.Text.Encoding.CodePages": "4.5.1", + "System.Threading.Tasks.Extensions": "4.5.3" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "3.6.0", + "contentHash": "kflVAdezWxqIfKNvEi4cmWZchX0Cgm3bRk1asYSnAQWQPTMddecrHzb9D8+ZDfYUeyYKkF4DETwjmONeSChCqA==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[3.6.0]" + } + }, + "Microsoft.CodeAnalysis.CSharp.Scripting": { + "type": "Transitive", + "resolved": "3.6.0", + "contentHash": "XAp7xqEdjrH8LvdjZSXesmh1GiGY1n8pgWTyKzCEppbErX4K61KousT2SKS4NXCDQ5rkaHQtuZ2ptgxUIVEeIQ==", + "dependencies": { + "Microsoft.CSharp": "4.3.0", + "Microsoft.CodeAnalysis.CSharp": "[3.6.0]", + "Microsoft.CodeAnalysis.Common": "[3.6.0]", + "Microsoft.CodeAnalysis.Scripting.Common": "[3.6.0]" + } + }, + "Microsoft.CodeAnalysis.Scripting.Common": { + "type": "Transitive", + "resolved": "3.6.0", + "contentHash": "xC8O1XmEjufDQrY3Ppzmnpufm/YBZb1/vhQwc3xd9/Aio5sL+PCfHNANkcGlCONs5EZQNCEK+K0eYs+S6pdQvQ==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[3.6.0]" + } + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Diagnostics.Tracing.EventRegister": { + "type": "Transitive", + "resolved": "1.1.28", + "contentHash": "VXTPYySeOmpMFejW2t4uau3t5h92LYKT9zM3kR06qeUNM9vQxG3S5nB6EhuKyf+F7Ze92Y6614MvjkxH14NJkQ==" + }, + "Microsoft.Diagnostics.Tracing.TraceEvent": { + "type": "Transitive", + "resolved": "3.1.3", + "contentHash": "0i45LzMkHfWKcDZxzyGbE0TiRVRNvr8k+Snrgf1OT/8txwBi6opm3G8rCB7OAM6G4m61Jzd+ZaJ6YAyRGlE9TQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "9.0.0", + "contentHash": "MCPrg7v3QgNMr0vX4vzRXvkNGgLg8vKWX0nKCWUxu2uPyMsaRgiRc1tHBnbTcfJMhMKj2slE/j2M9oGkd25DNw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "9.0.0", + "contentHash": "+6f2qv2a3dLwd5w6JanPIPs47CxRbnk+ZocMJUhv9NxP88VlOcJYZs9jY+MYSjxvady08bUZn6qgiNh7DadGgg==" + }, + "Microsoft.Identity.Client": { + "type": "Transitive", + "resolved": "4.66.2", + "contentHash": "OsWRWpJs5iY9DxAF7DfWRGVNeFhjz75x+/bpHKB9Hbnu3THUgqYfQrYeQMgwx30ctweiV7h00aQpEua2kLeUpg==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "6.35.0", + "System.Diagnostics.DiagnosticSource": "6.0.1" + } + }, + "Microsoft.IdentityModel.Abstractions": { + "type": "Transitive", + "resolved": "8.2.1", + "contentHash": "8sMlmHhh5HdP3+yCSCUpJpN1yYrJ6J/V39df9siY8PeMckRMrSBRL/TMs/Jex6P1ly/Ie2mFqvhcPHHrNmCd/w==" + }, + "Microsoft.IdentityModel.JsonWebTokens": { + "type": "Transitive", + "resolved": "8.2.1", + "contentHash": "Oo0SBOzK6p3YIUcc1YTJCaYezVUa5HyUJ/AAB35QwxhhD6Blei5tNjNYDR0IbqHdb5EPUIiKcIbQGoj2b1mIbg==", + "dependencies": { + "Microsoft.IdentityModel.Tokens": "8.2.1" + } + }, + "Microsoft.IdentityModel.Logging": { + "type": "Transitive", + "resolved": "8.2.1", + "contentHash": "EgSEAtBoWBynACdhKnMlVAFGGWqOIdmbpW7Vvx2SQ7u7ogZ50NcEGSoGljEsQoGIRYpo0UxXYktKcYMp+G/Bcg==", + "dependencies": { + "Microsoft.IdentityModel.Abstractions": "8.2.1" + } + }, + "Microsoft.IdentityModel.Tokens": { + "type": "Transitive", + "resolved": "8.2.1", + "contentHash": "oQeLWCATuVXOCdIvouM4GG2xl1YNng+uAxYwu7CG6RuW+y+1+slXrOBq5csTU2pnV2SH3B1GmugDf6Jv/lexjw==", + "dependencies": { + "Microsoft.IdentityModel.Logging": "8.2.1" + } + }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.5.0", + "contentHash": "EWy7NK9ZYYBDkUDyh087ML9ygKA30aFtWwxubAewyj9dxsEME85rrv4Vu6a8O9hgbLPtyN91lyWBzpVrUPuqwA==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.NETCore.Targets": { + "type": "Transitive", + "resolved": "1.1.3", + "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" + }, + "Microsoft.TeamFoundation.DistributedTask.Common.Contracts": { + "type": "Transitive", + "resolved": "19.225.1", + "contentHash": "mqh3vcsrGlFPNLiKH1gVT6LphRWI9jUFUYBGHuUFj8XapAE4hhlJdoNB0S09TuwgMDtO0v2c/TXhUZQkjJFVJQ==", + "dependencies": { + "Microsoft.VisualStudio.Services.Client": "[19.225.1]" + } + }, + "Microsoft.TeamFoundationServer.Client": { + "type": "Transitive", + "resolved": "19.225.1", + "contentHash": "ky43eNIAf2Z2xzYNpL/FYQ8Y8e17/3vZYvrr7FYozga8Hm0uVAN3OuEth5qZ/wLVW1vF5/YWgjSKvH98q+Y33g==", + "dependencies": { + "Microsoft.AspNet.WebApi.Client": "5.2.7", + "Microsoft.TeamFoundation.DistributedTask.Common.Contracts": "[19.225.1]", + "Microsoft.VisualStudio.Services.Client": "[19.225.1]", + "Newtonsoft.Json": "13.0.2", + "System.ComponentModel.Annotations": "5.0.0" + } + }, + "Microsoft.VisualStudio.Services.Client": { + "type": "Transitive", + "resolved": "19.225.1", + "contentHash": "hfUkXEnTLS35rBwPuiEduLYpItWL+b7H8jb2VauXYZ5G35tiRvAvWGzb5fcoi6CxIk3u5FMXQTqxpi8fVgG9Zg==", + "dependencies": { + "Microsoft.AspNet.WebApi.Client": "5.2.7", + "Newtonsoft.Json": "13.0.2", + "System.Configuration.ConfigurationManager": "6.0.1", + "System.Data.SqlClient": "4.8.5", + "System.Security.Cryptography.Cng": "5.0.0", + "System.Security.Cryptography.OpenSsl": "5.0.0", + "System.Security.Cryptography.ProtectedData": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Xml.XPath.XmlDocument": "4.3.0" + } + }, + "Microsoft.VisualStudio.Services.InteractiveClient": { + "type": "Transitive", + "resolved": "19.225.1", + "contentHash": "L/BbcsuGdTSG4ioNO+HBeVPyk9zYaTOXBBdTzV5r/cBEwsn8k4D92ceG5WLr56l88C7UWlFOkXuZCa2TFvFosg==", + "dependencies": { + "Microsoft.Identity.Client": "4.54.1", + "Microsoft.VisualStudio.Services.Client": "[19.225.1]", + "Newtonsoft.Json": "13.0.2", + "System.IdentityModel.Tokens.Jwt": "6.30.1" + } + }, + "Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "Microsoft.Win32.Registry": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "Microsoft.Win32.SystemEvents": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==" + }, + "MSBuild.StructuredLogger": { + "type": "Transitive", + "resolved": "2.2.386", + "contentHash": "ehLAYNDXZq3NPRBLZ7XOI48s7zc5wdCfUk+nuyMqf+tH3f2GSDvewFbhkGeLb4wGOhLMqFczCVoOnDbtf5qtDQ==", + "dependencies": { + "Microsoft.Build.Framework": "17.5.0", + "Microsoft.Build.Utilities.Core": "17.5.0", + "System.Collections.Immutable": "8.0.0" + } + }, + "NETStandard.Library": { + "type": "Transitive", + "resolved": "1.6.1", + "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.Win32.Primitives": "4.3.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.Compression.ZipFile": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Net.Http": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Sockets": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Timer": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "Newtonsoft.Json.Bson": { + "type": "Transitive", + "resolved": "1.0.1", + "contentHash": "5PYT/IqQ+UK31AmZiSS102R6EsTo+LGTSI8bp7WAUqDKaF4wHXD8U9u4WxTI1vc64tYi++8p3dk3WWNqPFgldw==", + "dependencies": { + "NETStandard.Library": "1.6.1", + "Newtonsoft.Json": "10.0.1" + } + }, + "NuGet.Common": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "6ouw0UC3TGaFHNJyoEK2/Q5jSryRHzcbKGv9C0+t/TPnTP8PoLqnyFxO1dwmQUmJkWuKAUo6Vu0kIXHY/8LyKQ==", + "dependencies": { + "NuGet.Frameworks": "6.11.1" + } + }, + "NuGet.Configuration": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "vbEe2acKrI2QmNx9U94ewhgUt6cLpwBeQfMtrie6NMz+GkJcX/4qIkKsX3SeBO4gFgCf8eeTyURl5hxPtiUctw==", + "dependencies": { + "NuGet.Common": "6.11.1", + "System.Security.Cryptography.ProtectedData": "4.4.0" + } + }, + "NuGet.Frameworks": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "plTZ3ariSWQVsFn2mk83SsdmSg1VpgIMTSZpP/eSE/NNQF02p+M9ItxAYeUZBMX+cQ2nFkSwxQRJ0/fkaV9Hbg==" + }, + "NuGet.Packaging": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "wiofIUUr7khwuaGXiOibMb7+dEkF97EVsAmzlaNc188HV9ujjqweQMuVCoAK2/MqXdhnrKjvicUfKo9CPsNnfg==", + "dependencies": { + "Newtonsoft.Json": "13.0.3", + "NuGet.Configuration": "6.11.1", + "NuGet.Versioning": "6.11.1", + "System.Security.Cryptography.Pkcs": "6.0.4" + } + }, + "NuGet.Protocol": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "WkYlSuNHNt/j1tbHp/xjvwk2EsIdSM3raEjk3EfIFd62ER1+x4eC8/J1VKqnve6cTupF4LsuwD3Z4YCumnfCXw==", + "dependencies": { + "NuGet.Packaging": "6.11.1" + } + }, + "NuGet.Resolver": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "MkfKq2o2t/pfpDgRjfSqKzSUBKO4M6C45F9Ooybpr1jrndigDikqZ7k09j2v0OXzjQHqTZ83OhA0VP3k6kfEzA==", + "dependencies": { + "NuGet.Protocol": "6.11.1" + } + }, + "NuGet.Versioning": { + "type": "Transitive", + "resolved": "6.11.1", + "contentHash": "YNn3BB71F+guJW42TbAhGcMh3gpyqFMZcPVD9pm5vcvGivTALtRely/VCPWQQ6JQ5PfwIrjPaJMO7VnqyeK3rg==" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" + }, + "runtime.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Data.SqlClient.sni": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "A8v6PGmk+UGbfWo5Ixup0lPM4swuSwOiayJExZwKIOjTlFFQIsu3QnDXECosBEyrWSPryxBVrdqtJyhK3BaupQ==", + "dependencies": { + "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0", + "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0", + "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0" + } + }, + "runtime.native.System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.native.System.Security.Cryptography.Apple": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" + }, + "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==" + }, + "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==" + }, + "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": { + "type": "Transitive", + "resolved": "4.4.0", + "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==" + }, + "Sarif.Sdk": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "uUDLxfcEsRRlUz6I6Vtqz0PmTwujNkRCNFXYyM7WtJ7Rr2LAJ/MhlJXfkfrUcFo/sigpyM9z9sORIUYm/sJBXg==", + "dependencies": { + "Microsoft.Diagnostics.Tracing.EventRegister": "1.1.28", + "Microsoft.Diagnostics.Tracing.TraceEvent": "3.1.3", + "Newtonsoft.Json": "9.0.1", + "System.Collections.Immutable": "5.0.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Text.Encoding.CodePages": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0" + } + }, + "Spectre.Console": { + "type": "Transitive", + "resolved": "0.49.1", + "contentHash": "USV+pdu49OJ3nCjxNuw1K9Zw/c1HCBbwbjXZp0EOn6wM99tFdAtN34KEBZUMyRuJuXlUMDqhd8Yq9obW2MslYA==" + }, + "Spectre.Console.Cli": { + "type": "Transitive", + "resolved": "0.49.1", + "contentHash": "wBZzyEbKqfPFFUPhV5E7/k4Kwy4UDO42IVzvzk0C4Pkjjw+NSd0EOBkIutYET4vJY4X81pD9ooQO9gfBGXj4+g==", + "dependencies": { + "Spectre.Console": "0.49.1" + } + }, + "System.AppContext": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Collections": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" + }, + "System.ComponentModel.Annotations": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==" + }, + "System.Configuration.ConfigurationManager": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "jXw9MlUu/kRfEU0WyTptAVueupqIeE3/rl0EZDMlf8pcvJnitQ8HeVEp69rZdaStXwTV72boi/Bhw8lOeO+U2w==", + "dependencies": { + "System.Security.Cryptography.ProtectedData": "6.0.0", + "System.Security.Permissions": "6.0.0" + } + }, + "System.Console": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Data.SqlClient": { + "type": "Transitive", + "resolved": "4.9.0", + "contentHash": "j4KJO+vC62NyUtNHz854njEqXbT8OmAa5jb1nrGfYWBOcggyYUQE0w/snXeaCjdvkSKWuUD+hfvlbN8pTrJTXg==", + "dependencies": { + "runtime.native.System.Data.SqlClient.sni": "4.4.0" + } + }, + "System.Diagnostics.Debug": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==" + }, + "System.Diagnostics.Tools": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Drawing.Common": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==", + "dependencies": { + "Microsoft.Win32.SystemEvents": "6.0.0" + } + }, + "System.Formats.Asn1": { + "type": "Transitive", + "resolved": "9.0.0", + "contentHash": "VRDjgfqV0hCma5HBQa46nZTRuqfYMWZClwxUtvLJVTCeDp9Esdvr91AfEWP98IMO8ooSv1yXb6/oCc6jApoXvQ==" + }, + "System.Globalization": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IdentityModel.Tokens.Jwt": { + "type": "Transitive", + "resolved": "8.2.1", + "contentHash": "GVQmbjr2N8awFWPTWyThLxgKnFINObG1P+oX7vFrBY8um3V7V7Dh3wnxaGxNH6v6lSTeVQrY+SaUUBX9H3TPcw==", + "dependencies": { + "Microsoft.IdentityModel.JsonWebTokens": "8.2.1", + "Microsoft.IdentityModel.Tokens": "8.2.1" + } + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Buffers": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + } + }, + "System.IO.Compression.ZipFile": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", + "dependencies": { + "System.Buffers": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.IO.FileSystem": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "dependencies": { + "System.Runtime": "4.3.0" + } + }, + "System.Linq": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==" + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" + } + }, + "System.Net.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Net.Sockets": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.ObjectModel": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.ILGeneration": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" + }, + "System.Reflection.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Resources.ResourceManager": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==" + }, + "System.Runtime.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Runtime.Numerics": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==" + }, + "System.Security.Cryptography.Algorithms": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "jIMXsKn94T9JY7PvPq/tMfqa6GAaHpElRDpmG+SuL+D3+sTw2M8VhnibKnN8Tq+4JqbPJ/f+BwtLeDMEnzAvRg==", + "dependencies": { + "System.Formats.Asn1": "5.0.0" + } + }, + "System.Security.Cryptography.Csp": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "D3aDrPOPBORUl6V/WJ2AtN3Ae48aSH0W7yChBIecvu1lyoAhopPORmMpNTjv5/Kay7Z+h3KXpfbvteIm7x7miA==", + "dependencies": { + "System.Formats.Asn1": "5.0.0" + } + }, + "System.Security.Cryptography.Pkcs": { + "type": "Transitive", + "resolved": "9.0.0", + "contentHash": "8tluJF8w9si+2yoHeL8rgVJS6lKvWomTDC8px65Z8MCzzdME5eaPtEQf4OfVGrAxB5fW93ncucy1+221O9EQaw==" + }, + "System.Security.Cryptography.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.Cryptography.ProtectedData": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==" + }, + "System.Security.Cryptography.X509Certificates": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Permissions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Windows.Extensions": "6.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encoding": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", + "dependencies": { + "Microsoft.NETCore.Platforms": "2.1.2", + "System.Runtime.CompilerServices.Unsafe": "4.5.2" + } + }, + "System.Text.Encoding.Extensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "4.7.2", + "contentHash": "iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==" + }, + "System.Text.RegularExpressions": { + "type": "Transitive", + "resolved": "4.3.1", + "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Threading": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.3", + "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==" + }, + "System.Threading.Timer": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0", + "System.Runtime": "4.3.0" + } + }, + "System.Windows.Extensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==", + "dependencies": { + "System.Drawing.Common": "6.0.0" + } + }, + "System.Xml.ReaderWriter": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + } + }, + "System.Xml.XDocument": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XmlDocument": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XPath": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, + "System.Xml.XPath.XmlDocument": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XPath": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + } + }, + "TfsUrlParser": { + "type": "Transitive", + "resolved": "1.5.0", + "contentHash": "tirXtR8maG+zsPHMNMIOu07ixymf6NC6N5Y3aU+wNxHAV0kzcBSQ8sz5Q5bvmoTTnsQmepbgfrxR0/S8VruonA==" + } + } + } +} \ No newline at end of file diff --git a/docs/input/documentation/contributing/how-to-build.md b/docs/input/documentation/contributing/how-to-build.md index 2203b04dc..1a40f4c58 100644 --- a/docs/input/documentation/contributing/how-to-build.md +++ b/docs/input/documentation/contributing/how-to-build.md @@ -31,11 +31,11 @@ To build the addins and run unit tests [Cake] is used: To run only part of the build a task can be passed using the `--target=` syntax: -| Task | Description | -|-------------------------|-------------------------------------------------------------------------------------------------------------------------------------| -| `DotNetCore-Build` | Builds all addins | -| `Create-NuGet-Packages` | Builds an creates NuGet packages for all addins. The NuGet packages are available in the `BuildArtifacts\Packages\NuGet` directory. | -| `Test` | Builds all addins and runs unit tests. Coverage report is available in the `BuildArtifacts\TestCoverage` directory. | +| Task | Description | +|-----------|-------------------------------------------------------------------------------------------------------------------------------------| +| `Build` | Builds all addins | +| `Package` | Builds an creates NuGet packages for all addins. The NuGet packages are available in the `BuildArtifacts\Packages\NuGet` directory. | +| `Test` | Builds all addins and runs unit tests. Coverage report is available in the `BuildArtifacts\TestCoverage` directory. | ## Building and running website locally diff --git a/nuspec/nuget/Cake.Issues.DocFx.nuspec b/nuspec/nuget/Cake.Issues.DocFx.nuspec index 4156f5922..56d209d5c 100644 --- a/nuspec/nuget/Cake.Issues.DocFx.nuspec +++ b/nuspec/nuget/Cake.Issues.DocFx.nuspec @@ -38,8 +38,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.DocFx. - - - + + + diff --git a/nuspec/nuget/Cake.Issues.EsLint.nuspec b/nuspec/nuget/Cake.Issues.EsLint.nuspec index 2582830a7..49af7cd3b 100644 --- a/nuspec/nuget/Cake.Issues.EsLint.nuspec +++ b/nuspec/nuget/Cake.Issues.EsLint.nuspec @@ -38,8 +38,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.EsLint. - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.GitRepository.nuspec b/nuspec/nuget/Cake.Issues.GitRepository.nuspec index 4c2443dab..a06c5b866 100644 --- a/nuspec/nuget/Cake.Issues.GitRepository.nuspec +++ b/nuspec/nuget/Cake.Issues.GitRepository.nuspec @@ -38,8 +38,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.GitRepository. - - - + + + diff --git a/nuspec/nuget/Cake.Issues.InspectCode.nuspec b/nuspec/nuget/Cake.Issues.InspectCode.nuspec index 91932609e..921e2a112 100644 --- a/nuspec/nuget/Cake.Issues.InspectCode.nuspec +++ b/nuspec/nuget/Cake.Issues.InspectCode.nuspec @@ -38,8 +38,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.InspectCode. - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.Markdownlint.nuspec b/nuspec/nuget/Cake.Issues.Markdownlint.nuspec index 23d69905b..d0dc9d867 100644 --- a/nuspec/nuget/Cake.Issues.Markdownlint.nuspec +++ b/nuspec/nuget/Cake.Issues.Markdownlint.nuspec @@ -38,8 +38,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Markdownlint. - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.MsBuild.nuspec b/nuspec/nuget/Cake.Issues.MsBuild.nuspec index c12636032..22f0c6aaa 100644 --- a/nuspec/nuget/Cake.Issues.MsBuild.nuspec +++ b/nuspec/nuget/Cake.Issues.MsBuild.nuspec @@ -38,12 +38,12 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.MsBuild. - - - - - - - + + + + + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec index 699a992a1..152319c72 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.AppVeyor.nuspec @@ -36,8 +36,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests.Ap - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec index aee5151e5..d272c25d5 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.AzureDevOps.nuspec @@ -37,8 +37,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests.Az - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec index 1ddfe6afe..5f141df4d 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.GitHubActions.nuspec @@ -36,8 +36,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests.Gi - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.PullRequests.nuspec b/nuspec/nuget/Cake.Issues.PullRequests.nuspec index 215fcd8ea..514d5f736 100644 --- a/nuspec/nuget/Cake.Issues.PullRequests.nuspec +++ b/nuspec/nuget/Cake.Issues.PullRequests.nuspec @@ -36,8 +36,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.PullRequests. - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec b/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec index 11b8c8b87..65a5bd320 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.Console.nuspec @@ -38,9 +38,9 @@ The addin requires Cake 1.2.0 or higher. - - - - + + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec b/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec index 11d756959..75c61e635 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.Generic.nuspec @@ -36,10 +36,10 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Reporting.Gener - - - - - + + + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec b/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec index 1c3f92af9..fd53cb88f 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.Sarif.nuspec @@ -36,9 +36,9 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Reporting.Sarif - - - - + + + + diff --git a/nuspec/nuget/Cake.Issues.Reporting.nuspec b/nuspec/nuget/Cake.Issues.Reporting.nuspec index 0e9c042ad..462892c56 100644 --- a/nuspec/nuget/Cake.Issues.Reporting.nuspec +++ b/nuspec/nuget/Cake.Issues.Reporting.nuspec @@ -36,8 +36,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Reporting. - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.Sarif.nuspec b/nuspec/nuget/Cake.Issues.Sarif.nuspec index 0ac7932bb..551a58389 100644 --- a/nuspec/nuget/Cake.Issues.Sarif.nuspec +++ b/nuspec/nuget/Cake.Issues.Sarif.nuspec @@ -38,9 +38,9 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Sarif. - - - - + + + + diff --git a/nuspec/nuget/Cake.Issues.Tap.nuspec b/nuspec/nuget/Cake.Issues.Tap.nuspec index 6d768636f..9a9ba2edb 100644 --- a/nuspec/nuget/Cake.Issues.Tap.nuspec +++ b/nuspec/nuget/Cake.Issues.Tap.nuspec @@ -38,9 +38,9 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Tap. - - - - + + + + diff --git a/nuspec/nuget/Cake.Issues.Terraform.nuspec b/nuspec/nuget/Cake.Issues.Terraform.nuspec index fbcac80f6..7de4e88e5 100644 --- a/nuspec/nuget/Cake.Issues.Terraform.nuspec +++ b/nuspec/nuget/Cake.Issues.Terraform.nuspec @@ -38,8 +38,8 @@ For addin compatible with Cake Frosting see Cake.Frosting.Issues.Terraform. - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.Testing.nuspec b/nuspec/nuget/Cake.Issues.Testing.nuspec index fef3018e6..b37d078b3 100644 --- a/nuspec/nuget/Cake.Issues.Testing.nuspec +++ b/nuspec/nuget/Cake.Issues.Testing.nuspec @@ -27,8 +27,8 @@ Common helpers for testing add-ins based on Cake.Issues - - - + + + \ No newline at end of file diff --git a/nuspec/nuget/Cake.Issues.nuspec b/nuspec/nuget/Cake.Issues.nuspec index 526f1fb23..97623947f 100644 --- a/nuspec/nuget/Cake.Issues.nuspec +++ b/nuspec/nuget/Cake.Issues.nuspec @@ -34,10 +34,10 @@ See the Project Site for an overview of the whole ecosystem of addins for workin - - - - - + + + + + \ No newline at end of file diff --git a/recipe.cake b/recipe.cake deleted file mode 100644 index c0e49bee6..000000000 --- a/recipe.cake +++ /dev/null @@ -1,216 +0,0 @@ -#load nuget:?package=Cake.Recipe&version=3.1.1 - -//************************************************************************************************* -// Settings -//************************************************************************************************* - -Environment.SetVariableNames(); - -BuildParameters.SetParameters( - context: Context, - buildSystem: BuildSystem, - sourceDirectoryPath: "./src", - title: "Cake.Issues", - repositoryOwner: "cake-contrib", - repositoryName: "Cake.Issues", - appVeyorAccountName: "cakecontrib", - shouldUseDeterministicBuilds: true, - shouldGenerateDocumentation: false, // Documentation is generated from Cake.Issues.Website - shouldRunInspectCode: false, - shouldRunCoveralls: false, // Disabled because it's currently failing - shouldPostToGitter: false, // Disabled because it's currently failing - nuGetSources: new [] { "https://api.nuget.org/v3/index.json" }); // Don't use additional MyGet feed, since CPM only supports one feed - -BuildParameters.PrintParameters(Context); - -ToolSettings.SetToolPreprocessorDirectives( - gitReleaseManagerGlobalTool: "#tool dotnet:?package=GitReleaseManager.Tool&version=0.17.0", - nugetTool: "#tool nuget:?package=NuGet.CommandLine&version=6.9.1", - gitVersionGlobalTool: "#tool dotnet:?package=GitVersion.Tool&version=5.12.0" -); - -ToolSettings.SetToolSettings( - context: Context, - skipDuplicatePackages: true, - testCoverageFilter: "+[*]* -[xunit.*]* -[Cake.Core]* -[Cake.Testing]* -[*.Tests]* -[Cake.Issues.Reporting.Generic]LitJson.* -[Shouldly]* -[DiffEngine]* -[EmptyFiles]*", - testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*", - testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs"); - -//************************************************************************************************* -// Setup -//************************************************************************************************* - -Setup(context => -{ - // Addins are backwards compatible to latest major version. - // Since we are using project references, we need to fix assembly version to the latest - // major version to avoid requiring exact minor versions at runtime. - var settings = context.Data.Get(); - var version = new Version(settings.Properties["AssemblyVersion"].First()); - settings.Properties["AssemblyVersion"] = new List { $"{version.Major}.0.0.0" }; - - context.Log.Information("AssemblyVersion changed to {0}", settings.Properties["AssemblyVersion"].First()); -}); - -//************************************************************************************************* -// Task overrides -//************************************************************************************************* - -// Since Cake.Recipe does not detect the correct settings when using Directory.Build.pros we need -// to override the test task -((CakeTask)BuildParameters.Tasks.DotNetCoreTestTask.Task).Actions.Clear(); -BuildParameters.Tasks.DotNetCoreTestTask.Does((context, msBuildSettings) => { - var projects = GetFiles(BuildParameters.TestDirectoryPath + (BuildParameters.TestFilePattern ?? "/**/*Tests.csproj")); - // We create the coverlet settings here so we don't have to create the filters several times - var coverletSettings = new CoverletSettings - { - CollectCoverage = true, - // It is problematic to merge the reports into one, as such we use a custom directory for coverage results - CoverletOutputDirectory = BuildParameters.Paths.Directories.TestCoverage.Combine("coverlet"), - CoverletOutputFormat = CoverletOutputFormat.opencover, - ExcludeByFile = ToolSettings.TestCoverageExcludeByFile.Split(new [] {';' }, StringSplitOptions.None).ToList(), - ExcludeByAttribute = ToolSettings.TestCoverageExcludeByAttribute.Split(new [] {';' }, StringSplitOptions.None).ToList() - }; - - foreach (var filter in ToolSettings.TestCoverageFilter.Split(new [] {' ' }, StringSplitOptions.None)) - { - if (filter[0] == '+') - { - coverletSettings.WithInclusion(filter.TrimStart('+')); - } - else if (filter[0] == '-') - { - coverletSettings.WithFilter(filter.TrimStart('-')); - } - } - var settings = new DotNetCoreTestSettings - { - Configuration = BuildParameters.Configuration, - NoBuild = true - }; - - foreach (var project in projects) - { - var parsedProject = ParseProject(project, BuildParameters.Configuration); - - settings.ArgumentCustomization = args => { - args.AppendMSBuildSettings(msBuildSettings, context.Environment); - args.Append("/p:UseSourceLink=true"); - return args; - }; - - coverletSettings.CoverletOutputName = parsedProject.RootNameSpace.Replace('.', '-'); - DotNetCoreTest(project.FullPath, settings, coverletSettings); - } -}); - -// Update to latest InspectCode version which generates a SARIF file -((CakeTask)BuildParameters.Tasks.InspectCodeTask.Task).Actions.Clear(); -BuildParameters.Tasks.InspectCodeTask - .WithCriteria(() => BuildParameters.BuildAgentOperatingSystem == PlatformFamily.Windows, "Skipping due to not running on Windows") - .WithCriteria(() => BuildParameters.ShouldRunInspectCode, "Skipping because InspectCode has been disabled") - .Does(data => RequireTool(ToolSettings.ReSharperTools, () => { - var inspectCodeLogFilePath = BuildParameters.Paths.Directories.InspectCodeTestResults.CombineWithFilePath("inspectcode.xml"); - - var settings = new InspectCodeSettings() { - SolutionWideAnalysis = true, - OutputFile = inspectCodeLogFilePath, - ArgumentCustomization = x => x.Append("--no-build").Append("-f=xml") - }; - - if (FileExists(BuildParameters.SourceDirectoryPath.CombineWithFilePath(BuildParameters.ResharperSettingsFileName))) - { - settings.Profile = BuildParameters.SourceDirectoryPath.CombineWithFilePath(BuildParameters.ResharperSettingsFileName); - } - - InspectCode(BuildParameters.SolutionFilePath, settings); - - // Pass path to InspectCode log file to Cake.Issues.Recipe - IssuesParameters.InputFiles.AddInspectCodeLogFile(inspectCodeLogFilePath); - }) -); - -// Upload only .NET 9 coverage results to avoid issues with files being too large -((CakeTask)BuildParameters.Tasks.UploadCodecovReportTask.Task).Actions.Clear(); -BuildParameters.Tasks.UploadCodecovReportTask - .WithCriteria(() => BuildParameters.IsMainRepository, "Skipping because not running from the main repository") - .WithCriteria(() => BuildParameters.ShouldRunCodecov, "Skipping because uploading to codecov is disabled") - .WithCriteria(() => BuildParameters.CanPublishToCodecov, "Skipping because repo token is missing, or not running on appveyor") - .Does((context, buildVersion) => RequireTool(BuildParameters.IsDotNetCoreBuild ? ToolSettings.CodecovGlobalTool : ToolSettings.CodecovTool, () => { - var coverageFiles = GetFiles(BuildParameters.Paths.Directories.TestCoverage + "/coverlet/*.net9.0.opencover.xml"); - if (FileExists(BuildParameters.Paths.Files.TestCoverageOutputFilePath)) - { - coverageFiles += BuildParameters.Paths.Files.TestCoverageOutputFilePath; - } - - if (coverageFiles.Any()) - { - var settings = new CodecovSettings { - Files = coverageFiles.Select(f => f.FullPath), - Required = true - }; - if (buildVersion != null && - !string.IsNullOrEmpty(buildVersion.FullSemVersion) && - BuildParameters.IsRunningOnAppVeyor) - { - // Required to work correctly with appveyor because environment changes isn't detected until cake is done running. - var localBuildVersion = string.Format("{0}.build.{1}", - buildVersion.FullSemVersion, - BuildSystem.AppVeyor.Environment.Build.Number); - settings.EnvironmentVariables = new Dictionary { { "APPVEYOR_BUILD_VERSION", localBuildVersion }}; - } - - Codecov(settings); - } - }) -); - -//************************************************************************************************* -// Custom tasks -//************************************************************************************************* - -Task("Install-WebsiteDependencies") - .Description("Install dependencies required for building website.") - .Does(() => -{ - StartProcess( - "pip", - new ProcessSettings { - Arguments = "install -r requirements.txt", - WorkingDirectory = "./docs" - } - ); -}); - -Task("Website") - .Description("Previews website.") - .IsDependentOn("Install-WebsiteDependencies") - .Does(() => -{ - StartProcess( - "mkdocs", - new ProcessSettings { - Arguments = "serve", - WorkingDirectory = "./docs" - } - ); -}); - -Task("BreakBuildOnIssues") - .Description("Breaks build if any issues in the code are found.") - .Does((data) => -{ - if (data.Issues.Any()) - { - throw new Exception("Issues found in code."); - } -}); - -IssuesBuildTasks.IssuesTask - .IsDependentOn("BreakBuildOnIssues"); - -//************************************************************************************************* -// Execution -//************************************************************************************************* - -Build.RunDotNetCore(); diff --git a/src/Cake.Issues.DocFx.Tests/packages.lock.json b/src/Cake.Issues.DocFx.Tests/packages.lock.json index 6cd732b5d..1e1fef16b 100644 --- a/src/Cake.Issues.DocFx.Tests/packages.lock.json +++ b/src/Cake.Issues.DocFx.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.EsLint.Tests/packages.lock.json b/src/Cake.Issues.EsLint.Tests/packages.lock.json index 646a6d310..c5725440c 100644 --- a/src/Cake.Issues.EsLint.Tests/packages.lock.json +++ b/src/Cake.Issues.EsLint.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.GitRepository.Tests/packages.lock.json b/src/Cake.Issues.GitRepository.Tests/packages.lock.json index 0d0726183..936082ea7 100644 --- a/src/Cake.Issues.GitRepository.Tests/packages.lock.json +++ b/src/Cake.Issues.GitRepository.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.InspectCode.Tests/packages.lock.json b/src/Cake.Issues.InspectCode.Tests/packages.lock.json index 29fbeba1a..1eba6de3b 100644 --- a/src/Cake.Issues.InspectCode.Tests/packages.lock.json +++ b/src/Cake.Issues.InspectCode.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Markdownlint.Tests/packages.lock.json b/src/Cake.Issues.Markdownlint.Tests/packages.lock.json index b9c6ae470..8a65c15a8 100644 --- a/src/Cake.Issues.Markdownlint.Tests/packages.lock.json +++ b/src/Cake.Issues.Markdownlint.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.MsBuild.Tests/packages.lock.json b/src/Cake.Issues.MsBuild.Tests/packages.lock.json index d57592162..57fe8d316 100644 --- a/src/Cake.Issues.MsBuild.Tests/packages.lock.json +++ b/src/Cake.Issues.MsBuild.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -345,6 +351,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json index 8167d00ae..26759dbb3 100644 --- a/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.AppVeyor.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -349,6 +355,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json index 27f812a6f..b1a5f3cf9 100644 --- a/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.AzureDevOps.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -1440,6 +1446,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json index 968bcacce..e9e59900f 100644 --- a/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.GitHubActions.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -277,6 +283,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.PullRequests.Tests/packages.lock.json b/src/Cake.Issues.PullRequests.Tests/packages.lock.json index e702d81f4..2baf6f4cd 100644 --- a/src/Cake.Issues.PullRequests.Tests/packages.lock.json +++ b/src/Cake.Issues.PullRequests.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -330,6 +336,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json index 029be6e00..102605813 100644 --- a/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Console.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -294,6 +300,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json index 830580e8c..685b382fb 100644 --- a/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Generic.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -377,6 +383,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json index 98fb565e9..1ca85664a 100644 --- a/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Sarif.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -501,6 +507,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Reporting.Tests/packages.lock.json b/src/Cake.Issues.Reporting.Tests/packages.lock.json index b4b9095d5..e40839395 100644 --- a/src/Cake.Issues.Reporting.Tests/packages.lock.json +++ b/src/Cake.Issues.Reporting.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Sarif.Tests/packages.lock.json b/src/Cake.Issues.Sarif.Tests/packages.lock.json index 9eed4f1d5..ed6c649d2 100644 --- a/src/Cake.Issues.Sarif.Tests/packages.lock.json +++ b/src/Cake.Issues.Sarif.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -495,6 +501,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Tap.Tests/packages.lock.json b/src/Cake.Issues.Tap.Tests/packages.lock.json index 997978fba..7e0a55d36 100644 --- a/src/Cake.Issues.Tap.Tests/packages.lock.json +++ b/src/Cake.Issues.Tap.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -271,6 +277,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Terraform.Tests/packages.lock.json b/src/Cake.Issues.Terraform.Tests/packages.lock.json index aad4732c2..5fbdecf2e 100644 --- a/src/Cake.Issues.Terraform.Tests/packages.lock.json +++ b/src/Cake.Issues.Terraform.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -264,6 +270,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Cake.Issues.Tests/packages.lock.json b/src/Cake.Issues.Tests/packages.lock.json index c7b11b3d9..ac4e48cfb 100644 --- a/src/Cake.Issues.Tests/packages.lock.json +++ b/src/Cake.Issues.Tests/packages.lock.json @@ -2,6 +2,12 @@ "version": 2, "dependencies": { "net8.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", @@ -258,6 +264,12 @@ } }, "net9.0": { + "coverlet.collector": { + "type": "Direct", + "requested": "[6.0.3, )", + "resolved": "6.0.3", + "contentHash": "SvLbRq7gjzE34BI90vP6ge812+PAjinNoKhdFZHwVEu/ozJgZY+0KyDh1K0teDeMeuzQJuF8OvleRBYXsZDz0A==" + }, "coverlet.msbuild": { "type": "Direct", "requested": "[6.0.3, )", diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 118a3e9ff..07bbfd8e4 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -30,6 +30,7 @@ + diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets deleted file mode 100644 index 36e5046b7..000000000 --- a/src/Directory.Build.targets +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb - true - true - $([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)')) - - - - - - - - - - - <_LocalTopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''"/> - - - \ No newline at end of file diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index afcffa384..d26e70287 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -8,6 +8,7 @@ +