-
Notifications
You must be signed in to change notification settings - Fork 10.3k
Move obj and bin directories into repo root #10063
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
Conversation
@jkotalik Said something about installers |
This is a draft PR. Lots of work to do before it's ready to merge. Among other this, hundreds of tests are written to assume the test binary is in a certain folder relative to the source code. |
Test failures on this PR correspond exactly with tests that are disabled in Helix. The root of the problem appears to be the same -- the test code makes assumptions about the location of source code relative to the test binary. These assumptions are not true in Helix and not true in this PR where obj/ and bin/ directories have been moved. Fixing this requires updating a lot of test code. @HaoK opened issues to track most of these test projects months ago, but we haven't seen traction on this. I see some of this issues have been punted or backlogged. @mkArtakMSFT @Eilon @anurse - to move forward on this PR, I see 3 viable options:
Thoughts? By the way, here are the test projects that are broken: |
Sounds like it would be good to chat about this at a build team sync (unfortunately I'll be missing this Thursday's one...). I'd like to get them all fixed up and working (since Helix requires it too) but don't really have the resources right now to do it. |
The good news is I'm somewhat close to finishing Components and Components E2e (those were mostly node issues). Also the two analyzer issues should be a cheap fix, as its just a max file path issue (rename a bunch of files). So the big ones are really just: ProjectTemplates + hosting functionals left I think |
@HaoK what are you doing about NodeJS? I'm wondering if we could re-use the approach I'm taking here to install mssql on-demand and extend it to include installing nodejs on-demand? |
Yeah have to install nodjs on demand was basically their suggestion: https://github.com/dotnet/core-eng/issues/5302#issuecomment-490522509 I was going to try this today since they pinged me |
Let's see if we can combine efforts on this. Will ping you internally. |
We can discuss this more in manager sync today, but I'm favoring option 1
My concern is that we've been kicking the can down the road for months, but as this "can" is scoped to only 10 projects, it's maybe not that big a deal. |
/azp run AspNetCore-ci |
Azure Pipelines successfully started running 1 pipeline(s). |
I'm going to send a PR to the team once this merges. After it goes in, everyone who pulls this change will need to do a
|
Flaky test: InputDateInteractsWithEditContext_NullableDateTimeOffset - appears to be unrelated to this change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR contains a number of non-overlapping changes, making it larger than it needs to be and harder to review. Suggest splitting (say) the C++ settings consolidation, project renames and perhaps .gitignore cleanup into a separate PR.
@dougbu while it's certainly possible to split this PR, the changes made here were done for related reasons - changing the location of build output made the content of some gitignore files irrelevant, required ensuring project names are unique to avoid overlap in artifacts/bin/, and using a shared file for C++ made it easier to ensure all .vcxproj files have the new setting. |
In other words, not planning to split this PR unless this somehow blocking the ability to review it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Think I'm about ready to sign off. Suggest a quick offline chat to make sure I'm not missing anything.
<BaseIntermediateOutputPath /> | ||
<IntermediateOutputPath /> | ||
<BaseOutputPath /> | ||
<OutputPath /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor but why don't $(BaseIntermediateOutputPath)
and $(IntermediateOutputPath)
need to be cleared elsewhere?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blazor build tools and targets are the only thing which expect the obj/ directory to exist in the project dir. See #5486. Everywhere else I tested this change, the projects and tests were okay with obj being moved to
src/Mvc/Extensions.ApiDescription.Client/src/Microsoft.Extensions.ApiDescription.Client.nuspec
Show resolved
Hide resolved
@@ -75,20 +75,15 @@ | |||
<PropertyGroup Label="UserMacros" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | |||
<LinkIncremental>true</LinkIncremental> | |||
<OutDir>$(MSBuildProjectDirectory)\bin\$(Configuration)\$(Platform)\</OutDir> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Going forward, will VS restore these settings when we edit project settings? I've seen it undo changes similar to this…
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I opened VS and built the project and didn't see .vcxproj files change. What would trigger VS to undo this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Change something in the project's property page while in VS. If that update to the project doesn't regurgitate these settings, life is grand.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems to be okay. Didn't run into problems with VS when changing properties via UI.
Should we be concerned about the failing Helix run? |
Helix failed with
I'll rebase on changes Justin merged yesterday to handle this. |
Resolves #9928
Part of #7280 (converging to Arcade)
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. https://github.com/dotnet/arcade/blob/master/Documentation/ArcadeSdk.md#single-build-output Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.
Changes: