dotnet / dotnet/project-system

Incremental build failure message might not contain enough information

Open
#8,610 9 comments 0 reactions 0 assignees View on GitHub
Feature-Up-to-date Triage-Approved
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.