Skip to content

Commit

Permalink
[automated] Merge branch 'vs16.11' => 'main' (#6626)
Browse files Browse the repository at this point in the history
* Fix missing project instance in project cache requests (#6568)

Context
Non static graph builds using the project cache didn't set the ProjectInstance on the cache request, leading to crashes in the cache.

Changes Made
Recreate the BuildRequestData for the cache request after the cache service evaluates projects. I was initially using the original BuildSubmission.BuildRequestData which does not contain the project instance.

* Don't launch debugger window for all tests

* Convert static InitializePlugin into non-static BeginBuildAsync

To allow asserting service state transition

* Assert state transitions in ProjectCacheService

* Only initialize once for the VS workaround

* Bravely set DoNotLaunchDebugger only once for all tests

* Simplify branching

* [vs16.11] Update dependencies from dotnet/arcade (#6625)

* Update dependencies from https://github.com/dotnet/arcade build 20210628.3

Microsoft.DotNet.Arcade.Sdk
 From Version 5.0.0-beta.21315.2 -> To Version 5.0.0-beta.21328.3

* Don't schedule proxy builds to inproc node if their configs previously built on oop nodes (#6635)

Fixes a bug in proxy build scheduling introduced by #6386. If a the BuildRequestConfiguration associated with a proxy request has been built before on an out of proc (oop) node then the scheduler will fail with either one of:
- affinity mismatch error. This happens when the proxy build is assigned to the inproc (inp) node but its configuration is already assigned to an oop node `AND` serving other existing requests, either blocked or running.
- unscheduled requests remain even if there's free oop nodes that can serve them. This happens (as far as I can tell) when the proxy's configuration is already assigned to an oop node (because a previously built non proxy request was assigned there) `AND` there's no other existing requests for that configuration

The fix in this PR is to not assign a proxy build to the inproc node if its configuration was previously assigned to another node.

* Localized file check-in by OneLocBuild Task (#6644)

* 16.11 Final Branding (#6656)

Co-authored-by: Rainer Sigwald <raines@microsoft.com>

Co-authored-by: Mihai Codoban <micodoba@microsoft.com>
Co-authored-by: AR-May <67507805+AR-May@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet bot <dotnet-bot@dotnetfoundation.org>
Co-authored-by: Ben Villalobos <4691428+BenVillalobos@users.noreply.github.com>
Co-authored-by: Rainer Sigwald <raines@microsoft.com>
  • Loading branch information
7 people committed Aug 5, 2021
1 parent 1b4b5fb commit 24eea8e
Show file tree
Hide file tree
Showing 24 changed files with 457 additions and 100 deletions.
16 changes: 15 additions & 1 deletion documentation/Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ This version of MSBuild will ship with Visual Studio 2019 version 16.11.0 and .N

#### Added

* Additional properties documented and available for completion in Visual Studio (#6500).
* Additional properties documented and available for completion in Visual Studio (#6500, #6530).
* The `SignFile` task is now available in MSBuild on .NET 5.0 (#6509). Thanks, @Zastai!
* New version properties `MSBuildFileVersion` (4-part, matches file version) and `MSBuildSemanticVersion` (matches package versions) are now available for use (#6534).
#### Changed

* When using the experimental cache API, schedule proxy builds to the in-proc node for performance (#6386).
Expand All @@ -24,15 +25,28 @@ This version of MSBuild will ship with Visual Studio 2019 version 16.11.0 and .N
* Added locking to avoid race conditions in `BuildManager` (#6412).
* Allow `ResolveAssemblyReferences` precomputed cache files to be in read-only locations (#6393).
* 64-bit `al.exe` is used when targeting 64-bit architectures (for real this time) (#6484).
* Builds with `ProduceOnlyReferenceAssembly` no longer expect debug symbols to be produced (#6511). Thanks, @Zastai!

#### Infrastructure

* Use a packaged C# compiler to avoid changes in reference assembly generation caused by compiler changes (#6431).
* Use more resilient test-result upload patterns (#6489).
* Conditional compilation for .NET Core within our repo now includes new .NET 5.0+ runtimes (#6538).
* Switched to OneLocBuild for localization PRs (#6561).
* Moved to latest Ubuntu image for PR test legs (#6573).

#### Documentation

## MSBuild 16.10.2

This version of MSBuild shipped with Visual Studio 2019 version 16.10.2 and will ship with .NET SDK 5.0.302.

#### Fixed

* Fixed a regression in the `MakeRelative` property function that dropped trailing slashes (#6513). Thanks, @dsparkplug and @pmisik!
* Fixed a regression in glob matching where files without extensions were erroneously not matched (#6531).
* Fixed a change in logging that caused crashes in Azure DevOps loggers (#6520).

## MSBuild 16.10.1

This version of MSBuild shipped with Visual Studio 2019 version 16.10.1 and .NET SDK 5.0.301.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ public class BuildRequestConfiguration_Tests : IDisposable
public BuildRequestConfiguration_Tests(ITestOutputHelper testOutput)
{
_env = TestEnvironment.Create(testOutput);
_env.DoNotLaunchDebugger();
}

public void Dispose()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,6 @@ public void PassedInFileSystemShouldBeReusedInSharedContext()
[Fact]
public void IsolatedContextShouldNotSupportBeingPassedAFileSystem()
{
_env.DoNotLaunchDebugger();

var fileSystem = new Helpers.LoggingFileSystem();
Should.Throw<ArgumentException>(() => EvaluationContext.Create(EvaluationContext.SharingPolicy.Isolated, fileSystem));
}
Expand Down
8 changes: 0 additions & 8 deletions src/Build.UnitTests/Graph/GraphLoadedFromSolution_tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ public GraphLoadedFromSolutionTests(ITestOutputHelper output)
[InlineData("1.sln", "2.proj")]
public void ASolutionShouldBeTheSingleEntryPoint(params string[] files)
{
_env.DoNotLaunchDebugger();

for (var i = 0; i < files.Length; i++)
{
files[i] = _env.CreateFile(files[i], string.Empty).Path;
Expand All @@ -52,8 +50,6 @@ public void ASolutionShouldBeTheSingleEntryPoint(params string[] files)
[Fact]
public void GraphConstructionFailsOnNonExistentSolution()
{
_env.DoNotLaunchDebugger();

var exception = Should.Throw<InvalidProjectFileException>(
() =>
{
Expand All @@ -80,8 +76,6 @@ public void StaticGraphShouldNotSupportNestedSolutions()
defaultTargets: null,
extraContent: referenceToSolution);

_env.DoNotLaunchDebugger();

var exception = Should.Throw<InvalidOperationException>(
() =>
{
Expand Down Expand Up @@ -621,8 +615,6 @@ IEnumerable<ProjectItemInstance> GetIncomingEdgeItemsToNode(ProjectGraphNode nod
[Fact]
public void GraphConstructionShouldThrowOnMissingSolutionDependencies()
{
_env.DoNotLaunchDebugger();

var solutionContents = SolutionFileBuilder.FromGraphEdges(
_env,
new Dictionary<int, int[]> {{1, null}, {2, null}},
Expand Down
1 change: 0 additions & 1 deletion src/Build.UnitTests/Graph/ProjectGraph_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ public void ConstructWithSingleNodeWithProjectInstanceFactory()
[Fact]
public void ProjectGraphNodeConstructorNoNullArguments()
{
_env.DoNotLaunchDebugger();
Assert.Throws<InternalErrorException>(() => new ProjectGraphNode(null));
}

Expand Down

0 comments on commit 24eea8e

Please sign in to comment.