We need to distinguish restore is happening for the BuildCheck feature (namely for https://github.com/dotnet/msbuild/issues/9747)
This is not currently possible until receiving BuildEvaluationFinished.
Team decided that it's more future wise to add the full event with all the relevant info, rather than reusing BuildEvaluationStarted event.
What should be done
Create new BuildEventArg - named BuildRequestStarted or BuildSubmissionStarted
Add the followind data (they will be sourced from BuildRequestData and GraphBuildRequestData):
ProjectFullPath
TargetNames
Flags (note - the ClearCachesAfterBuild flag might be helpful in the future for BuildCheck dedup)
GlobalProps
SubmissionId (fro the PendBuildRequest functions)
Send the event through logging from a location all requests go through (probably BuildManager.PendBuildRequest - for GraphBuildRequestData and BuildRequestData)
Ensure proper de/serialization in BuildEventsArgReader/Writer
Increment binlog version, Create Binlog viewer PR (todo: give further instructions here)
Prerequisity: Verify that all the build requests go through BuildManager.PendBuildRequest and there are no other possible execution paths of build (through CLI or API) that can avoid this function
Context
We need to distinguish restore is happening for the BuildCheck feature (namely for https://github.com/dotnet/msbuild/issues/9747) This is not currently possible until receiving BuildEvaluationFinished. Team decided that it's more future wise to add the full event with all the relevant info, rather than reusing BuildEvaluationStarted event.
What should be done
BuildRequestData
andGraphBuildRequestData
):PendBuildRequest
functions)BuildManager.PendBuildRequest
- forGraphBuildRequestData
andBuildRequestData
)Prerequisity: Verify that all the build requests go through
BuildManager.PendBuildRequest
and there are no other possible execution paths of build (through CLI or API) that can avoid this function