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

Backport fast up to date check to 15.3.x #2346

Merged
merged 3 commits into from
Jun 1, 2017
Merged

Backport fast up to date check to 15.3.x #2346

merged 3 commits into from
Jun 1, 2017

Conversation

panopticoncentral
Copy link
Contributor

Customer scenario

When the user requests a build in VS, CPS will call the project system to see if we believe it can skip calling MSBuild. This is faster than running MSBuild and having it determine that everything is up to date.

Bugs this fixes:

Fixes #62

Workarounds, if any

This is a performance optimization, it is not required for functionality, just speed.

Risk

Fast up to date checks carry a level of risk because if the check is wrong, we will either build when we didn't need to, or won't build when we need to. The former situation isn't any worse than what we have now. The latter situation is bad but can be mitigated in several ways:

  • The user can elect to perform a Rebuild.
  • We are adding a VS option to disable .NET Core project fast up to date checks entirely. (VS Option setting UI coming in a separate PR today.)
  • The project can be marked with a DisableFastUpToDateCheck property that will disable the check for that project
  • The user can add UpToDateCheckInput and UpToDateCheckOutput items to their project to work around missing checks.

This PR also adds logging to a "Project" output window that should help easily diagnose where problems are.

Performance impact

Build performance should improve, especially for solutions with many .NET Core projects.

Is this a regression from a previous update?

No

Paul Vick and others added 3 commits May 31, 2017 12:56
@panopticoncentral
Copy link
Contributor Author

@dotnet-bot retest this please

@panopticoncentral
Copy link
Contributor Author

@dotnet-bot retest this please

@panopticoncentral panopticoncentral merged commit 0fb4841 into dotnet:dev15.3.x Jun 1, 2017
@panopticoncentral panopticoncentral deleted the backportuptodate branch June 1, 2017 05:23
@ebonato
Copy link

ebonato commented Jun 9, 2017

Hi @panopticoncentral,
This is not only about performance... our builds are failing, as our pre-build scripts aren't triggering our code generators.
At least on build servers, it relies on update check from msbuild only....

https://developercommunity.visualstudio.com/content/problem/46717/disablefastuptodatecheck-in-project-file-no-longer.html?childToView=67043#comment-67043

@ebonato ebonato mentioned this pull request Jun 9, 2017
13 tasks
@panopticoncentral
Copy link
Contributor Author

@ebonato This PR only affects the project system that is used by .NET Core and .NET Standard projects. If your problem is with a project that is just a .NET Framework project, then this doesn't apply to that situation. If your project was created prior to 2017, which it sounds like it was, then this has no affect on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants