cake-build / cake

:cake: Cake (C# Make) is a cross platform build automation system.
https://cakebuild.net
MIT License
3.87k stars 729 forks source link

Some warning messages from Cake are showing twice since v1.0.0 #2965

Open augustoproiete opened 3 years ago

augustoproiete commented 3 years ago

What You Are Seeing?

It seems the automatic bootstrapping of Cake in v1.0.0-rc0001 causes warnings to appear twice:

image

What is Expected?

image

What version of Cake are you using?

1.0.0-rc0001

Are you running on a 32 or 64 bit system?

64-bit

What environment are you running on? Windows? Linux? Mac?

Windows 10

Are you running on a CI Server? If so, which one?

No

How Did You Get This To Happen? (Steps to Reproduce)

mkdir cake-tool-1-0-0--rc0001
cd cake-tool-1-0-0--rc0001
dotnet new tool-manifest --force
dotnet tool install cake.tool --version 1.0.0-rc0001
echo #load "optional.cake" > build.cake
dotnet cake --version
dotnet cake

Output Log

Click to expand and see the log...

``` Looking for modules... No scripts found at C:/augustoproiete/cake-tool-1-0-0--rc0001/optional.cake. No modules found to install. Module directory does not exist. Analyzing build script... Analyzing C:/augustoproiete/cake-tool-1-0-0--rc0001/build.cake... No scripts found at C:/augustoproiete/cake-tool-1-0-0--rc0001/optional.cake. Processing build script... Adding assembly reference to System.Private.CoreLib.dll... Adding assembly reference to System.Linq.Expressions.dll... Adding assembly reference to Microsoft.CSharp.dll... Adding assembly reference to Cake.Core.dll... Adding assembly reference to Cake.Common.dll... Adding assembly reference to System.Runtime.dll... Adding assembly reference to System.Collections.dll... Adding assembly reference to System.Linq.dll... Adding assembly reference to System.Console.dll... Adding assembly reference to System.Text.RegularExpressions.dll... Adding assembly reference to System.Security.Cryptography.Algorithms.dll... Adding assembly reference to System.Diagnostics.Process.dll... Adding assembly reference to System.IO.FileSystem.dll... Adding assembly reference to System.Collections.Concurrent.dll... Adding assembly reference to Microsoft.Win32.Registry.dll... Adding assembly reference to System.Threading.dll... Adding assembly reference to System.Security.Cryptography.Primitives.dll... Adding assembly reference to System.Runtime.InteropServices.RuntimeInformation.dll... Adding assembly reference to System.ComponentModel.Primitives.dll... Adding assembly reference to System.Runtime.InteropServices.dll... Adding assembly reference to System.Threading.Thread.dll... Adding assembly reference to System.Xml.ReaderWriter.dll... Adding assembly reference to System.Xml.XDocument.dll... Adding assembly reference to System.Runtime.Serialization.Primitives.dll... Adding assembly reference to System.Runtime.Serialization.Json.dll... Adding assembly reference to System.Net.Http.dll... Adding assembly reference to System.IO.Compression.dll... Adding assembly reference to System.ComponentModel.TypeConverter.dll... Adding assembly reference to System.Text.Encoding.Extensions.dll... Adding assembly reference to System.Runtime.Serialization.Xml.dll... Adding assembly reference to System.Net.Primitives.dll... Adding assembly reference to System.IO.Compression.ZipFile.dll... Importing namespace Cake.Common... Importing namespace Cake.Common.Build... Importing namespace Cake.Common.Build.AppVeyor... Importing namespace Cake.Common.Build.AppVeyor.Data... Importing namespace Cake.Common.Build.AzurePipelines... Importing namespace Cake.Common.Build.AzurePipelines.Data... Importing namespace Cake.Common.Build.Bamboo... Importing namespace Cake.Common.Build.Bamboo.Data... Importing namespace Cake.Common.Build.BitbucketPipelines... Importing namespace Cake.Common.Build.BitbucketPipelines.Data... Importing namespace Cake.Common.Build.Bitrise... Importing namespace Cake.Common.Build.Bitrise.Data... Importing namespace Cake.Common.Build.ContinuaCI... Importing namespace Cake.Common.Build.ContinuaCI.Data... Importing namespace Cake.Common.Build.GitHubActions... Importing namespace Cake.Common.Build.GitHubActions.Data... Importing namespace Cake.Common.Build.GitLabCI... Importing namespace Cake.Common.Build.GitLabCI.Data... Importing namespace Cake.Common.Build.GoCD... Importing namespace Cake.Common.Build.GoCD.Data... Importing namespace Cake.Common.Build.Jenkins... Importing namespace Cake.Common.Build.Jenkins.Data... Importing namespace Cake.Common.Build.MyGet... Importing namespace Cake.Common.Build.TeamCity... Importing namespace Cake.Common.Build.TravisCI... Importing namespace Cake.Common.Build.TravisCI.Data... Importing namespace Cake.Common.Diagnostics... Importing namespace Cake.Common.IO... Importing namespace Cake.Common.IO.Paths... Importing namespace Cake.Common.Net... Importing namespace Cake.Common.Security... Importing namespace Cake.Common.Solution... Importing namespace Cake.Common.Solution.Project... Importing namespace Cake.Common.Solution.Project.Properties... Importing namespace Cake.Common.Solution.Project.XmlDoc... Importing namespace Cake.Common.Text... Importing namespace Cake.Common.Tools.Cake... Importing namespace Cake.Common.Tools.Chocolatey... Importing namespace Cake.Common.Tools.Chocolatey.ApiKey... Importing namespace Cake.Common.Tools.Chocolatey.Config... Importing namespace Cake.Common.Tools.Chocolatey.Download... Importing namespace Cake.Common.Tools.Chocolatey.Features... Importing namespace Cake.Common.Tools.Chocolatey.Install... Importing namespace Cake.Common.Tools.Chocolatey.New... Importing namespace Cake.Common.Tools.Chocolatey.Pack... Importing namespace Cake.Common.Tools.Chocolatey.Pin... Importing namespace Cake.Common.Tools.Chocolatey.Push... Importing namespace Cake.Common.Tools.Chocolatey.Sources... Importing namespace Cake.Common.Tools.Chocolatey.Uninstall... Importing namespace Cake.Common.Tools.Chocolatey.Upgrade... Importing namespace Cake.Common.Tools.DotCover... Importing namespace Cake.Common.Tools.DotCover.Analyse... Importing namespace Cake.Common.Tools.DotCover.Cover... Importing namespace Cake.Common.Tools.DotCover.Merge... Importing namespace Cake.Common.Tools.DotCover.Report... Importing namespace Cake.Common.Tools.DotNetCore... Importing namespace Cake.Common.Tools.DotNetCore.Build... Importing namespace Cake.Common.Tools.DotNetCore.BuildServer... Importing namespace Cake.Common.Tools.DotNetCore.Clean... Importing namespace Cake.Common.Tools.DotNetCore.Execute... Importing namespace Cake.Common.Tools.DotNetCore.MSBuild... Importing namespace Cake.Common.Tools.DotNetCore.NuGet.Delete... Importing namespace Cake.Common.Tools.DotNetCore.NuGet.Push... Importing namespace Cake.Common.Tools.DotNetCore.NuGet.Source... Importing namespace Cake.Common.Tools.DotNetCore.Pack... Importing namespace Cake.Common.Tools.DotNetCore.Publish... Importing namespace Cake.Common.Tools.DotNetCore.Restore... Importing namespace Cake.Common.Tools.DotNetCore.Run... Importing namespace Cake.Common.Tools.DotNetCore.Test... Importing namespace Cake.Common.Tools.DotNetCore.Tool... Importing namespace Cake.Common.Tools.DotNetCore.VSTest... Importing namespace Cake.Common.Tools.DupFinder... Importing namespace Cake.Common.Tools.Fixie... Importing namespace Cake.Common.Tools.GitLink... Importing namespace Cake.Common.Tools.GitReleaseManager... Importing namespace Cake.Common.Tools.GitReleaseManager.AddAssets... Importing namespace Cake.Common.Tools.GitReleaseManager.Close... Importing namespace Cake.Common.Tools.GitReleaseManager.Create... Importing namespace Cake.Common.Tools.GitReleaseManager.Discard... Importing namespace Cake.Common.Tools.GitReleaseManager.Export... Importing namespace Cake.Common.Tools.GitReleaseManager.Label... Importing namespace Cake.Common.Tools.GitReleaseManager.Open... Importing namespace Cake.Common.Tools.GitReleaseManager.Publish... Importing namespace Cake.Common.Tools.GitReleaseNotes... Importing namespace Cake.Common.Tools.GitVersion... Importing namespace Cake.Common.Tools.ILMerge... Importing namespace Cake.Common.Tools.ILRepack... Importing namespace Cake.Common.Tools.InnoSetup... Importing namespace Cake.Common.Tools.InspectCode... Importing namespace Cake.Common.Tools.MSBuild... Importing namespace Cake.Common.Tools.MSpec... Importing namespace Cake.Common.Tools.MSTest... Importing namespace Cake.Common.Tools.NSIS... Importing namespace Cake.Common.Tools.NuGet... Importing namespace Cake.Common.Tools.NuGet.Add... Importing namespace Cake.Common.Tools.NuGet.Delete... Importing namespace Cake.Common.Tools.NuGet.Init... Importing namespace Cake.Common.Tools.NuGet.Install... Importing namespace Cake.Common.Tools.NuGet.List... Importing namespace Cake.Common.Tools.NuGet.Pack... Importing namespace Cake.Common.Tools.NuGet.Push... Importing namespace Cake.Common.Tools.NuGet.Restore... Importing namespace Cake.Common.Tools.NuGet.SetApiKey... Importing namespace Cake.Common.Tools.NuGet.SetProxy... Importing namespace Cake.Common.Tools.NuGet.Sources... Importing namespace Cake.Common.Tools.NuGet.Update... Importing namespace Cake.Common.Tools.NUnit... Importing namespace Cake.Common.Tools.OctopusDeploy... Importing namespace Cake.Common.Tools.OpenCover... Importing namespace Cake.Common.Tools.ReportGenerator... Importing namespace Cake.Common.Tools.ReportUnit... Importing namespace Cake.Common.Tools.Roundhouse... Importing namespace Cake.Common.Tools.SignTool... Importing namespace Cake.Common.Tools.SpecFlow... Importing namespace Cake.Common.Tools.SpecFlow.StepDefinitionReport... Importing namespace Cake.Common.Tools.SpecFlow.TestExecutionReport... Importing namespace Cake.Common.Tools.TextTransform... Importing namespace Cake.Common.Tools.VSTest... Importing namespace Cake.Common.Tools.VSWhere... Importing namespace Cake.Common.Tools.VSWhere.All... Importing namespace Cake.Common.Tools.VSWhere.Latest... Importing namespace Cake.Common.Tools.VSWhere.Legacy... Importing namespace Cake.Common.Tools.VSWhere.Product... Importing namespace Cake.Common.Tools.WiX... Importing namespace Cake.Common.Tools.WiX.Heat... Importing namespace Cake.Common.Tools.XBuild... Importing namespace Cake.Common.Tools.XUnit... Importing namespace Cake.Common.Xml... Importing namespace Cake.Core... Importing namespace Cake.Core.Diagnostics... Importing namespace Cake.Core.IO... Importing namespace Cake.Core.Scripting... Importing namespace System... Importing namespace System.Collections.Generic... Importing namespace System.IO... Importing namespace System.Linq... Importing namespace System.Text... Importing namespace System.Threading.Tasks... Compiling build script... ```

augustoproiete commented 3 years ago

@Edord99 Could you provide more details? What is the repo for this issue or PR 7171?

FrankRay78 commented 1 year ago

I have just repo'd this issue and duplicate warning messages are still appearing on the most recent cake version (ie. 2.2.0), see:

image

augustoproiete commented 1 year ago

Thanks for testing @FrankRay78

FrankRay78 commented 1 year ago

Turning off bootstrapping eliminates the second (duplicate) message, see:

image

Basically, ScriptAnalyzer.Analyze(...) is being called twice, first by BootStrapFeature.Run(...) and then later by BuildFeature.Run(...)

Here is the culprit, Line 102 of Analyzer.cs: context.Analyze(path); which ultimately results in the following call:

FileLoadDirectiveProvider.cs, line 70. _log.Warning("No scripts found at {0}.", path);

Both features seem independent from each other and so wouldn't be aware of the duplicate Analysis/warning message:

image

Any steer what you'd like done with this issue @augustoproiete?