dotnet / dotnet/project-system
Incremental build failure message might not contain enough information
- Dominant language
- C#
- Stars
- 1k
- Forks
- 415
- PR merge metrics
- No merged PRs in 30d
Description
@tmat provided a verbose FTUDC log that showed the following:
> 1>FastUpToDate: Project is up-to-date. (Microsoft.CommonLanguageServerProtocol.Framework)
> ...
>
> ...
> WARNING: Potential build performance issue in 'Microsoft.CommonLanguageServerProtocol.Framework.csproj'. The project does not appear up-to-date after a successful build: The set of project items was changed more recently (2022-10-14 09:55:06.405) than the last successful build start time (2022-10-14 09:55:06.363), not up-to-date. See https://aka.ms/incremental-build-failure.
Or in other words:
1. The project is checked and deemed up-to-date.
2. The validation phase decides the project is not up-to-date and logs the warning.
Generally we've found that warnings about item changes can be debugged by looking at the earlier log messages, which list what items were added and/or removed. In this case there were no changes in that output.
Some questions come to mind:
1. Why was the validation running here, given the project was up-to-date?
2. Could the build of projects 2, 3 or 4 have changed the items in project 1 by the time the validation came around? If so, maybe all validation should run at the end of the solution build to better catch these kinds of issues.
3. Can we expose more information about the validation failure? If verbose logging is enabled, perhaps we retain all log messages to be displayed only if validation fails.
Contributor guide
Assessment
This issue has not been assessed yet.