Skip to content

Follow up fix#5755

Merged
Forgind merged 32 commits intodotnet:masterfrom
Forgind:follow-up-fix
Sep 25, 2020
Merged

Follow up fix#5755
Forgind merged 32 commits intodotnet:masterfrom
Forgind:follow-up-fix

Conversation

@Forgind
Copy link
Contributor

@Forgind Forgind commented Sep 25, 2020

I've been trying to come up with a good way to test the full drive globs PR, but the way I can think of to test opting out of that is to make sure we scan the whole drive, which would take rather a long time, so it wouldn't be good for a test. Alternative?

The core count has a different problem: the behavior should be identical if you have <= 32 cores whether or not the change wave is used, and it would be very confusing to have the test sometimes work and sometimes fail.

One idea I came up with is to log a message when using the new core detection logic. For the full drive scan, we could theoretically put in something that logs when we are doing a full drive scan in a test and suppresses it. It would be nice to have a TestSystem that returns very little when you try to look through its drive, but unless that already exists, I'd say the cost outweighs the benefits here.

mfkl and others added 30 commits September 24, 2020 19:22
This reverts commit 4223cc2.
Co-authored-by: Rainer Sigwald <raines@microsoft.com>
Co-authored-by: Rainer Sigwald <raines@microsoft.com>
Works around win32 limitation--a group will report only up to 32 processors on a 32-bit process.
MSBuild normalizes slashes such that a solution file can use backslashes in paths on Linux or iOS. This adds that functionality for solution filter files as well.
Fixes dotnet#5715.
* Added .swr file. Try catching the program to ensure it doesn't fail and thus prevent MSBuild from installing

* Moved exe.swr to its own directory. Otherwise both .swr files are passed to arcade as a semicolon delimited list, which arcade can't deal with

* Sign UnGAC.exe
Fixes dotnet#5736 by keeping a prototype `ImmutableDictionary`-with-comparer
around using the `MSBuildNameIgnoreCaseComparer`, which is the primary
comparer used for all these dictionaries in MSBuild. `OrdinalIgnoreCase` is
also used and gets a special case too.

To make the type system happier, it was easiest to drop the `K` generic
parameter to the type and hard-code it to `string`--all internal non-test
uses were already doing that.
Put under a change wave
Put under a change wave
This prevents a single .sln and a single .slnf from causing an ambiguous .sln error. It prioritizes building the .slnf when we would build a .sln but it is absent.
Simplify search for which files might be solution files, project files, or solution filter files. Also should be *slightly* more performant, but that isn't a serious consideration here.
Test the default behavior when building in a folder with various numbers of solution files, solution filter files, and projects files.
Enable change waves.

Added static ChangeWaves class that contains AreFeaturesEnabled and ApplyChangeWave. Documentation is in the wiki.
Copy link
Member

@benvillalobos benvillalobos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Includes a fix to one of the issues referenced here: #5756

@Forgind Forgind merged commit 0136977 into dotnet:master Sep 25, 2020
@Forgind Forgind deleted the follow-up-fix branch September 25, 2020 07:36
@marcpopMSFT marcpopMSFT added this to the MSBuild 16.8 milestone Sep 25, 2020
@benvillalobos benvillalobos mentioned this pull request Sep 25, 2020
10 tasks
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.

6 participants