KirillOsenkov / MSBuildStructuredLog

A logger for MSBuild that records a structured representation of executed targets, tasks, property and item values.
MIT License
1.41k stars 188 forks source link

Add Double Write detection to binlogtool #719

Open KirillOsenkov opened 7 months ago

KirillOsenkov commented 7 months ago

The Roslyn team (@jaredpar) has a tool called BuildBoss, and one of the things it does is reports whether there are any double-writes in the binlog. https://github.com/dotnet/roslyn/tree/main/src/Tools/BuildBoss

At the same time @JustinSchneiderPBI has also written such a tool internally.

We should perhaps extract the functionality that is useful for both cases and add it to binlogtool so other people don't have to reinvent this.

You can install the binlogtool via dotnet tool update -g binlogtool and it's published from this source: https://github.com/KirillOsenkov/MSBuildStructuredLog/tree/main/src/BinlogTool

to here: https://www.nuget.org/packages/binlogtool

We should support both the basic case (report if there are any double-writes at all), as well as the advanced case (have a baseline of allowed double-writes and diff). Make the tool CLI easily consumable by a typical yaml build task.