MuxLogger discrepancy introduced by new event
MuxLogger and normal logger have output difference of a blank line with the introduction of new event. The test (here) was made more lenient so we could get work done without this being a blocker. This issue is being created to keep track of this difference and address it in the future.
Context
When adding the new event BuildSubmissionStartedEventArgs (https://github.com/dotnet/msbuild/pull/10424) an unintentional side effect was changing how the logging output looks like. This is happening because there is a difference in event order between loggers.
Using the case of the MockLogger. The MockLogger will receive a BuildStartedEvent, log it, and then receive BuildSubmissionStartedEvent, log it, and then receive ProjectStartedEvent and log it.
flowchart LR
BS[BuildStartedEvent] --> BSS[BuildSubmissionStartedEvent] --> BS2[ProjectStartedEvent]
The MuxLogger will receive a BuildStartedEvent, ignore it, receive a BuildSubmissionStartedEvent, log it, and then receive ProjectStartedEvent when it will create an artificial BuildStartedEvent that will then log before logging ProjectStartedEvent.
flowchart LR
BS[BuildSubmissionStartedEvent] --> BSS[BuildStartedEvent] --> BS2[ProjectStartedEvent]
This causes the general event order to be different and for the outputs to be different.
This different order might result in VS loggers either getting data in different order or not getting events before BuildStartedEvent, which is currently only BuildSubmissionStartedEvent needed for analyzers. This is acceptable until we bring analyzers to VS scenarios (checked with exp VS insertion). At this point, another aspect will surface - how to set up the analyzers along or using the MuxLogger. We will need to figure out ordering issues at that time.