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

[automated] Merge branch 'vs17.7' => 'main' #9023

Merged
merged 6 commits into from
Jul 13, 2023

Conversation

dotnet-maestro-bot
Copy link
Contributor

I detected changes in the vs17.7 branch which have not been merged yet to main. I'm a robot and am configured to help you automatically keep main up to date, so I've opened this PR.

This PR merges commits made on vs17.7 by the following committers:

Instructions for merging from UI

This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.

merge button instructions

If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.

Instructions for merging via command line

Run these commands to merge this pull request from the command line.

git fetch
git checkout vs17.7
git pull --ff-only
git checkout main
git pull --ff-only
git merge --no-ff vs17.7

# If there are merge conflicts, resolve them and then run git merge --continue to complete the merge
# Pushing the changes to the PR branch will re-trigger PR validation.
git push https://github.com/dotnet-maestro-bot/msbuild HEAD:merge/vs17.7-to-main
or if you are using SSH
git push git@github.com:dotnet-maestro-bot/msbuild HEAD:merge/vs17.7-to-main

After PR checks are complete push the branch

git push

Instructions for resolving conflicts

⚠️ If there are merge conflicts, you will need to resolve them manually before merging. You can do this using GitHub or using the command line.

Instructions for updating this pull request

Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs17.7-to-main'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.

git checkout -b merge/vs17.7-to-main main
git pull https://github.com/dotnet-maestro-bot/msbuild merge/vs17.7-to-main
(make changes)
git commit -m "Updated PR with my changes"
git push https://github.com/dotnet-maestro-bot/msbuild HEAD:merge/vs17.7-to-main
or if you are using SSH
git checkout -b merge/vs17.7-to-main main
git pull git@github.com:dotnet-maestro-bot/msbuild merge/vs17.7-to-main
(make changes)
git commit -m "Updated PR with my changes"
git push git@github.com:dotnet-maestro-bot/msbuild HEAD:merge/vs17.7-to-main

Contact .NET Core Engineering if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/master/scripts/GitHubMergeBranches.ps1.

jehhynes and others added 6 commits July 12, 2023 13:33
Fixes dotnet#8595 by storing the embedded-file zip in a temporary directory
(instead of memory or binlog target directory) to avoid problems with
file watchers.
In a recent profile of a graph construction, it was observed that a
large amount of boxing was happening for
ProjectElementSiblingEnumerable. This change simplifies how xml children
are enumerated by adding an internal ChildrenEnumerable property which
directly exposes the ProjectElementSiblingEnumerable which should avoid
boxing, at least in some code paths (the public API makes it hard to
avoid everywhere...).

Additionally, a very common usage of enumerating children was to do
Children.OfType<T> and wrap it in a ReadOnlyCollection<T>, so I
introduced a GetChildrenOfType (and GetChildrenReversedOfType) method
which exposes an ICollection<T> which does the same thing but without
the boxing of ProjectElementSiblingEnumerable and without the OfType
class. It's just 1 collection allocation.
Currently we turn off dynamic platform resolution for a whole solution
if a single project in the solution is assigned a configuration. This is
problematic as some projects are outside of the scope of the solution
but still have certain targets that run on them that are architecture
specific. These projects will build as the wrong architecture because no
configuration is defined and no platform negotiation takes place.

I removed the conditional that turns platform negotiation off on a sln
level. The logic to turn this off on a project level is already in place
through checking is a projectreference has setplatform appended to it.
This will make sure no projects with configurations defined will be
negotiated for as MSbuild adds setplatform metadata to projectreferences
with configurations.
…-enumeration', 'backport/pr-8870-to-vs17.7' and 'dev/michaelshea/sln' into vs17.7
@rainersigwald rainersigwald merged commit 2f8fe45 into dotnet:main Jul 13, 2023
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.

None yet

5 participants