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

Add target framework 'netcoreapp3.0' or replace target framework 'netcoreapp2.1' with 'netcoreapp3.0' when adding is not possible #37823

Closed
wants to merge 110 commits into from

Conversation

joperator
Copy link

I've tried to build dotnet/source-build which uses dotnet/roslyn on FreeBSD with a bootstrap CLI. Building SoureBuild.sln failed because it targets netcoreapp2.1 on FreeBSD, which is not supported by the bootstrap CLI. Therefore, I've applied the patches mentioned in dotnet/source-build#1139 to build it on FreeBSD. To avoid destroying the build on other platforms, I've changed the target framework in the whole project to netcoreapp3.0, which is also a future goal, I think.
cc: @wfurt

…coreapp2.1' with 'netcoreapp3.0' when adding is not possible.
@joperator joperator requested review from a team as code owners August 8, 2019 06:45
@dnfclas
Copy link

dnfclas commented Aug 8, 2019

CLA assistant check
All CLA requirements met.

Copy link
Member

@jaredpar jaredpar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry but at this point we can't take this change as is. The executables which ship in the .NET SDK, csc, csi, etc ..., must continue to have a netcoreapp2.1 output. That's because our binaries still ship in 2.2 / 2.1 environments. Wholesale switching these to netcoreapp3.0 would break those scenarios.

@jaredpar
Copy link
Member

jaredpar commented Aug 8, 2019

Let me try and elaborate a bit more here. At the moment the compilers ship to a number of different products: .NET SDK 2.2, .NET SDK 3.0, some internal teams, MS.Net.Compiliers.Toolset NuPkg, etc ... Many of these environments continue to use a 2.1 runtime as this is the latest RTM version.

I don't expect them all to update to 3.0 until probably several months after we've shipped 3.0. Even then we'll need to work with various partner teams to ensure they have switched over to netcoreapp3.0 before we can full sale update the product.

Building SoureBuild.sln failed because it targets netcoreapp2.1 on FreeBSD, which is not supported by the bootstrap CLI

That seems odd. The bootstrap CLI should indeed support targeting netcoreapp2.1 at build time. After all we currently participate in source build and this is how our project is setup. Is the problem that the executable's won't run because the runtime.json file lists netcoreapp2.1 and roll forward is disabled? If so then just update the roll forward property to get the compilers to execute.

@wfurt
Copy link
Member

wfurt commented Aug 8, 2019

What do we do for ARM64 @jaredpar ? There is no 2.1 AFAIK?

@jaredpar
Copy link
Member

jaredpar commented Aug 8, 2019

@wfurt

There is no 2.1 AFAIK?

Target or runtime?

@jaredpar
Copy link
Member

jaredpar commented Aug 8, 2019

According to the source build repository ARM support isn't expected yet dotnet/source-build#750 (comment)

@joperator
Copy link
Author

You're right @jaredpar:

The bootstrap CLI should indeed support targeting netcoreapp2.1 at build time.

But it doesn't. Building a simple console app that targets netcoreapp2.1 with the bootstrap CLI leads to error NETSDK1065: Cannot find app host for freebsd-x64. freebsd-x64 could be an invalid runtime identifier (RID). For more information about RID, see https://aka.ms/rid-catalog. If the console app targets netcoreapp3.0, it can be built with the bootstrap CLI. I've already mentioned a similar problem in dotnet/cli#11262.

If it's really planned

to update to 3.0 until probably several months after we've shipped 3.0

this would likely delay the development of .NET Core for FreeBSD until next year. So what about targeting netcoreapp2.1 and netcoreapp3.0 side by side everywhere in the project? This would allow to continue working on .NET Core for FreeBSD and also to facilitate the planned transition to netcoreapp3.0 in the future, as the various partner teams can decide on their own when to switch to netcoreapp3.0. Would that be okay @jaredpar?

@jinujoseph jinujoseph added Area-Infrastructure Community The pull request was submitted by a contributor who is not a Microsoft employee. labels Aug 13, 2019
v-zbsail and others added 28 commits August 14, 2019 09:15
Including more projects that have a dependency on ilasm.
Co-Authored-By: Nick Guerrera <nicholg@microsoft.com>
The desktop ilasm contains features not present in coreclr; specifically
the ability to generate PDB files for net modules. Need to continue
using desktop ilasm as long as our tests depend on this.
for now, it only reports method calls and member references from metadata reference.

it reports data as hash value to protect privacy
…erProvider.cs

Co-Authored-By: Joey Robichaud <joseph.robichaud@microsoft.com>
…erProvider.cs

Co-Authored-By: Joey Robichaud <joseph.robichaud@microsoft.com>
…ocess" rather than "live analysis" to reduce confusion on what "live analysis" means since term "live analysis" has strong association with "errors" in VS.

also, it now shows ## of pending work and whether BG process is paused or not.
This DLL should be marked for splitting in our test runner. When we did
the great assembly rename though this was missed. Fixing.
…rementalAnalyzerProcessor.cs

Co-Authored-By: Sam Harwell <sam@tunnelvisionlabs.com>
…ressReporter.cs

Co-Authored-By: CyrusNajmabadi <cyrus.najmabadi@gmail.com>
@joperator joperator closed this Aug 14, 2019
@joperator joperator deleted the SourceBuild-FreeBSD-Patch branch August 14, 2019 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Infrastructure Community The pull request was submitted by a contributor who is not a Microsoft employee.
Projects
None yet
Development

Successfully merging this pull request may close these issues.