dotnet / msbuild

The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
https://docs.microsoft.com/visualstudio/msbuild/msbuild
MIT License
5.21k stars 1.35k forks source link

MSBuild TerminalLogger keeps users informed about their build and delights new users #8370

Open baronfel opened 1 year ago

baronfel commented 1 year ago

The LiveLogger is an exciting new feature that MSBuild team has planned for .NET 8. Originally spearheaded by @edvilme, the LiveLogger is intended to be a live-updating, data-heavy view of what is happening in your build right now, using features present in modern terminals to help declutter and organize build results. The goal for this logger is to become the new default experience for all interactive build sessions started by the .NET CLI!

This issue will serve as a centralized way to check on the status of the LiveLogger feature.

Release plan

We are aiming for an initial 'give it a try', opt-in release by the 8.0.100-preview4 time frame. After that, we'll iterate on the logger to meet our goals for user experience and react to user feedback until we're satisfied with the performance and functionality. At that point, we'll enable the live logger by default in the .NET CLI and the feature will be officially released.

Items to tackle for final release

Before we can do that, the following items should be addressed:

edvilme commented 1 year ago

Thank you for the shoutout and including me! 😀

edvilme commented 1 year ago

Regarding the second to last point... before I left I was considering sorting the projects such that the finished ones appear at the top, and that the buffer should scroll to the last added line. However I am unsure if this would hurt performance, and if it would mean a lot of jumping

baronfel commented 1 year ago

Sure thing @edvilme - I'm going to make separate issues for tracking the line items here, so we can go into details on those :+1:

edvilme commented 1 year ago

Consider adding a message to the console logger output advertising LiveLogger during the preview timeframe

Does that mean showing something like "Using Console Logger. Try the new LiveLogger using the switch -livelogger"?

LiveLogger should respond to user themes

Does that mean like dark/light theme?

Zastai commented 8 months ago

Is there a link to documentation on corresponding features in MSBuild tasks, if there are any?

In particular, the "build complete, here is the resulting assembly" message is now retained with the assembly path turned into a hyperlink (or the publish directory for a publish).

Is there a way for build targets that generate other artifacts (in my case, a markdown file with the compiled assembly's public API) to have a similar result, including the hyperlink for the output file? Or is this currently the logger doing "hardcoded" detection of certain messages?

rainersigwald commented 8 months ago

Is there a way for build targets that generate other artifacts (in my case, a markdown file with the compiled assembly's public API) to have a similar result, including the hyperlink for the output file? Or is this currently the logger doing "hardcoded" detection of certain messages?

Currently it's hardcoded, yes. I have a design in my head to fix this, which I've been meaning to write down but hadn't got around to. Thanks for the reason to do so! https://github.com/dotnet/msbuild/issues/9608