Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check that all Outputs are newer than Inputs after targets run #3817

Open
KirillOsenkov opened this issue Oct 1, 2018 · 1 comment
Open
Labels
Area: Debuggability Issues impacting the diagnosability of builds, including logging and clearer error messages. Feature Request Feature: Warning Waves Warnings to enable in opt-in waves. Formerly "strict mode". triaged

Comments

@KirillOsenkov
Copy link
Member

See KirillOsenkov/MSBuildStructuredLog#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.

@KirillOsenkov KirillOsenkov added Area: Debuggability Issues impacting the diagnosability of builds, including logging and clearer error messages. Feature Request Feature: Warning Waves Warnings to enable in opt-in waves. Formerly "strict mode". labels Oct 1, 2018
@JoshuaRoweMsft
Copy link

Additionally, all Outputs should exist, and all Inputs should exist.

@AR-May AR-May added the triaged label Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Debuggability Issues impacting the diagnosability of builds, including logging and clearer error messages. Feature Request Feature: Warning Waves Warnings to enable in opt-in waves. Formerly "strict mode". triaged
Projects
None yet
Development

No branches or pull requests

3 participants