This repository was archived by the owner on Aug 8, 2024. It is now read-only.
forked from dotnet/msbuild
-
Notifications
You must be signed in to change notification settings - Fork 32
Merge upstream master, in preparation for port to the new build system #49
Merged
radical
merged 570 commits into
mono:xplat-master
from
radical:xm-upstream-master-merge
Apr 20, 2018
Merged
Merge upstream master, in preparation for port to the new build system #49
radical
merged 570 commits into
mono:xplat-master
from
radical:xm-upstream-master-merge
Apr 20, 2018
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fix signing configuration and re-enable signing for CI
…s '--' This issue was similar to dotnet#491, but more specific
Fix preprocessed output when project path specified in import includes `--`
* Throw an exception if an SDK resolver assembly cannot be loaded or SDK resolver type cannot be instantiated * Use MockLogger instead of MockLoggingService with a StringBuilder * Make SdkResolverLoader more mock-able * More unit tests
Allow an API consumer to explicitly specify a subset of properties, items, and metadata names that they care about, allowing inspection of project state after (partial) builds without the overhead of returning uninteresting state.
In The Old Days, binding redirect generation was set to off-by-default. That has caused a great deal of confusion because it's usually the right thing to do but it's not obvious when you need to do it. Unfortunately, we currently think we can't change the default for all projects, because a user could have been avoiding binding redirects intentionally, making creating them a breaking change. Since no projects currently target .NET Framework 4.7.2 (since it's not released), it is not a breaking change to turn on binding redirects by default for this (and higher) versions--a user must explicitly opt into targeting the framework and thus into this new behavior. A user can still specify ```xml <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> ``` to explicitly opt out of binding redirects for a given project. Closes dotnet#2481, in partial support of https://github.com/dotnet/designs/blob/2be39b7e1bc9c4df45b1d51ebb2d1abb0689e4e0/accepted/automatic-redirects-by-default/automatic-redirects-by-default.md
Fixes dotnet#2886 by stripping either case of `v` from `$(TargetFrameworkVersion)` in a single call.
Unit tests for GlobalJsonReader, NuGetSdkLogger, and NuGetSdkResolver
When spawning Windows cmd.exe shell commands, add the /D parameter to avoid the overhead of checking the autorun configuration in the registry Also included escape hatch via MSBUILDUSERAUTORUNINCMD environment variable to bring back the functionality.
…cts-4.7.2 Generate binding redirects for .NET 4.7.2+
Catch that and return null otherwise it crashes MSBuild. See dotnet#2882.
…it-state-return Request explicit properties and items in an API build
All the code was here but the attribute was not allowed on the Import element at project parse time for Version or MinimumVersion. This change allows those attributes and rest of the code worked as expected. Added tests for the scenario and a few others.
CPS expects Project.LastEvaluationId to reflect the id of the ongoing, not yet finished evaluation. This invariant regressed in dotnet#2748 LoggingService now creates an evaluation build event context separate from sending project started events. This allows the Evaluator to set the evaluation Id on Project before the first evaluation event gets fired.
This doesn't appear to be used and is not copied by the build. No idea how this worked before, sync to the last successful build also does not produce this file. This is failing our official build. MSBuild only references System.Diagnostics.Process for netstandard, not for net46 so appears to have been added by mistake.
FI master to 15.7
* Fix preprocessor when imported documents specify Sdk Implicit imports for imported projects are shown in the preprocessor at the top and bottom of the top level project rather than the imported project. To fix this, I've created a mapping of which documents contain the implicit imports. Before processing a document, the imports are then added to that document rather than the top level one. * Add unit test
Delete the isolate context and let the Evaluation context decide what context instance shold be used when a project evaluates.
Fix serialization issue with AssemblyNameExtension
…used (dotnet#3059) * Log an error if MSBuildProjectExtensionsPath is modified after it is used * Add warning for BaseIntermediateOutputPath if specified
…ationContext Cache sdk resolution in evaluation context
When included in this magic path, GitHub will show the CoC in its UI in various places. https://help.github.com/articles/adding-a-code-of-conduct-to-your-project/
📝 Update readme for 15.7
If the file didn't exist Get-ChildItem (what was using to expand the full path) fail and logFile would be null. Moving that to the end.
…e path can't be found (dotnet#3096)
This is distinct from NODE_REUSE; we can now enable node reuse on .NET Core but we may never support running .NET 3.5 tasks there.
Enabling node reuse will require building Microsoft.Build directly against netcoreapp2.1, since the new PipeOptions API is not available in a netstandard yet.
This will have a shorter path on *nix, helping avoid the 108 character pipe path limit there. Prior to this change, `Directory.Build.*` was read from the test output directory, because TEMP was a subfolder of that. This changed that, so create empty versions of each file to stop recursing upward (and possibly finding the repo-root one, causing incredible headache). Co-authored-by: Mihai Codoban <[email protected]>
Some tests failed to specify `EnableNodeReuse=false`, causing worker node processes to live longer than the test process. Because of dotnet#3091, this caused a hang during test execution.
* Shouldly 3.0.0 * Introduce ShouldlyVersion property
On Windows, processes by default inherit standard stream handles from their parent process. This can cause a process that is waiting on termination of a given process to wait on its children as well while waiting for the streams to close. We want our worker nodes (when launched with `/nodeReuse:true`) to entirely disconnect from their parent and live past its lifetime. On Windows, that means we need to avoid inheriting handles. We had code to p/invoke `CreateProcess` instead of using `Process.Start`, but it was #ifdef'ed to full framework only. Changing that to be a runtime check for `IsWindows`. The stdout/stdin/stderr handles are manually disconnected, but handles for IPC must be inherited or the child node can't connect to its parent, so pass `bInheritHandles=true` for the anonymous-pipe communication case (in netcoreapp2.0). Fixes dotnet#3091.
Full-framework MSBuild was resetting the current directory at the end of build requests and at node idle, which helps avoid holding handles to project directories that the user may wish to delete while a worker node is still alive in the background. That wasn't done on .NET Core because at the time of the original port, there wasn't an `Environment.SystemDirectory` to use. That property is now available, but returns the empty string on Linux, which fails `Directory.SetCurrentDirectory()`. So I'm avoiding it by using the current MSBuild tools directory, which should exist as long as the MSBuild process keeps running.
We are still setting `_DebugFileExt` to `.mdb` if `vbnc` is used, because this is a mono specific property for now and we still bundle `vbnc*`. Also, not setting `UseSharedCompilation` any more as it doesn't seem to be required now. Setting `VbcToolExe` and `VbcToolPath` should allow using `vbnc`. Fixes: mono/mono#7756
Member
Author
|
This is the first PR, which is just a merge with no attempt to get a working build. I will open a subsequent PR (like https://github.com/radical/msbuild/pull/1/commits) which gets the build and the rest working again. |
akoeplinger
approved these changes
Apr 20, 2018
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.