dotnet / dotnet/msbuild

Check that all Outputs are newer than Inputs after targets run

Open
#3,817 1 comment 1 reaction 0 assignees View on GitHub
Area: Debuggability Feature Request Feature: Warning Waves triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

See https://github.com/KirillOsenkov/MSBuildStructuredLog/issues/204 proposed by @garuma.

There are cases where a target runs because some of its inputs are more recent than its outputs but by the end of the target the inputs are still more recent than the outputs (which should not be the case).

This is a widespread problem because a lot of targets authors use some variant of a CopyIfChanged mechanism that break this invariant.

I imagine this check should be off by default, but easy to turn on (either via an environment variable, or setting a property?). There maybe should be a way to turn this check on per target.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.