Build more projects during source-build#57165
Conversation
Use Roslyn.sln, not Compilers.sln, to build more projects during source-build. Update ExcludeFromSourceBuild properties to include more projects and exclude a few projects that shouldn't be in source-build. The newly included projects are used by downstream repos.
This makes source-build stop producing the Microsoft.CodeAnalysis.Collections package. Downstream repos (MSBuild) can't safely use a source-built version.
|
In the context of a current 6.0 tarball build, By default, the project targets Microsoft.Build 16.5.0, which has netcoreapp2.1 and net472 support. The new 17.0.0-... only has net6.0. Adding 16.5.0 to SBRP and dodging the override is the safe way forward here. |
|
@333fred PTAL |
|
FYI @lbussell is working on the Microsoft.Build |
|
Roslyn folks, would you be ok with a global rename of these version properties to add a Lines 63 to 67 in 16c658a Basically, this opts out of the source-built versions. (Renaming prevents source-build from forcing them to the 17.0 version by not matching the override properties that source-build passes in.) This strategy was used in dotnet/runtime 5.0: There is an opt-in approach that dotnet/roslyn-analyzers went for when onboarding ArPow: https://github.com/dotnet/roslyn-analyzers/blob/01f57af818ca7b93e1c27b69e7ad6cfb3d275f82/eng/Versions.props#L2. Maybe this is something Roslyn would be interested in, too. It seems risky and potentially a time sink to switch Roslyn from opt-out to opt-in for 6.0, so what I'm thinking is:
For now we're going forward with that first point to get prebuilt removal unblocked. Any thoughts? |
This seems fine to me. |
|
I moved this back to draft status because it needs more work per the plan. Right now, it causes |
Can anyone confirm this is actually wanted? Procedure-wise, it would be better to get the property-renaming approach in |
The If someone is interested in changing to an opt-in approach rather than this |
Use Roslyn.sln, not Compilers.sln, to build more projects during source-build. Update
ExcludeFromSourceBuildproperties to include more projects and exclude a few projects that shouldn't be in source-build.The newly included projects are used by downstream repos.
Here's the diff of
nupkgs built before/after this PR in a local./build.sh --restore --build --pack /p:ArcadeBuildFromSource=true:This is for:
@eerhardt @MichaelSimons /cc @dotnet/source-build-internal
FYI @lbussell, I haven't looked at how this affects prebuilts. (RE: Roslyn prebuilt removal: dotnet/source-build#2419)