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

Work that needs to happen for .NET 5 TFMs #34173

Closed
13 of 15 tasks
terrajobst opened this issue Mar 26, 2020 · 27 comments
Closed
13 of 15 tasks

Work that needs to happen for .NET 5 TFMs #34173

terrajobst opened this issue Mar 26, 2020 · 27 comments
Assignees
Labels
area-Meta blocking-release tracking This issue is tracking the completion of other related issues.
Milestone

Comments

@terrajobst
Copy link
Member

terrajobst commented Mar 26, 2020

The spec for .NET 5 TFMs can be found here.

Runtime/SDK

NuGet

MSBuild

Project System

  • Pass the correct information to NuGet restore, specifically TFI, TFV, TPI, TPV

@rainersigwald @dsplaisted @rrelyea @ericstj @ViktorHofer Please help me complete the list of items. Also, we would make sure that each item is linked to a corresponding GitHub issue.

@terrajobst terrajobst added area-Meta tracking This issue is tracking the completion of other related issues. labels Mar 26, 2020
@terrajobst terrajobst added this to the 5.0 milestone Mar 26, 2020
@terrajobst terrajobst self-assigned this Mar 26, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Mar 26, 2020
@terrajobst terrajobst removed the untriaged New issue has not been triaged by the area owner label Mar 26, 2020
@marek-safar
Copy link
Contributor

Add shared framework for Xamarin platforms

What do you mean by that?

Add SDK-style build support for Xamarin

Don’t think this should be here, it’s not required for runtime but build on top of that as other workloads

@vitek-karas
Copy link
Member

vitek-karas commented Mar 27, 2020

Should add whatever work comes out of this issue: #34033

@hypeartist
Copy link

Is that related: https://github.com/dotnet/runtime/issues/34060 ?

@terrajobst
Copy link
Member Author

terrajobst commented Mar 27, 2020

Add shared framework for Xamarin platforms

What do you mean by that?

We need to figure out how a project targeting say net5.0-ios13.0 references the platform, which includes both the BCL as well as the Xamarin specific bits on top. Implicit PackageReference? FrameworkReference?

Add SDK-style build support for Xamarin

Don’t think this should be here, it’s not required for runtime but build on top of that as other workloads

The point of this issue to group all the work that is happening for bringer this work to life; the point isn't to design the items themselves. @mhutch, do you want to file a similar uber item for Xamarin work? It should track things like the SDK style project, how the framework is being referenced etc. I would just link this one instead.

@danmoseley
Copy link
Member

cc @ViktorHofer

@steveisok
Copy link
Member

+1 to the uber item for Xamarin.

@dsplaisted
Copy link
Member

@terrajobst Additional item for NuGet (underway now):

  • Update NuGet TargetFramework parsing to parse TargetPlatformIdentifier and TargetPlatformVersion

@danmoseley
Copy link
Member

danmoseley commented Apr 6, 2020

@dsplaisted do you see any work here for the Mono or Libraries teams? My impression is no -- this is what I understand from @terrajobst last week as well (the "Runtime/SDK" section seems all SDK except the last one which is @vitek-karas ). Do I read that right?

@steveisok
Copy link
Member

  • Add shared framework for Xamarin platforms

@terrajobst We're adding runtime packs for Microsoft.NETCore.App.Runtime.<Mobile RID> and Xamarin iOS/Android. What do you mean by 'shared framework'? Did you mean the same thing? I could be misunderstanding the broader view.

@danmoseley
Copy link
Member

Linking the SDK epic dotnet/sdk#11165

@zkat
Copy link

zkat commented Apr 15, 2020

Linking the NuGet epic: NuGet/Home#9090

@plamploika
Copy link

plamploika commented May 23, 2020

Sorry for the intrusion and maybe a stupid question but,
I read this article and I was surprised by the following sentence: "Miguel is building Baby Shark, a popular iOS application. He started with .NET that supported iOS 13 but Apple just released iOS 14. He downloads the updated version of the .NET 5 SDK which now also includes support for iOS 14."
Does this mean that support and bindings for all platforms will ship together .net 5 sdk? Is it possible to ship support and bindings separately, for example through a nuget?
It would bring the following benefits:

  • smaller .net 5 sdk size. For example, I’m a web developer and I will never develop for mobile platforms, so I don’t need support for android and ios
  • updating ios will result in updating the nuget-package, but not .net 5 sdk. For example, if a new ios update is released, the developer needs to update the nuget-package with bindings that will be released quickly, rather than waiting for the platform update

@svick
Copy link
Contributor

svick commented May 23, 2020

@plamploika As far as I can tell, the plan is to distribute support for iOS and similar platforms separate from the SDK, using a new concept called "workload".

@plamploika
Copy link

plamploika commented May 23, 2020

@svick, yes, it is great
But the problem remains with the long wait for the new version of the framework, which includes bundles for the new version of the OS.

I'm also interested in what will happen to a new version of bindings after release of a new version of the .net. For example, in the future, where there is .net9.0, the Apple provides iOS 16. Will .net5.0 be updated to support the bindings for iOS (in case I do not want to update the platform, but want to use the new features of iOS)?

Imho, separation contributes to general simplification: for example, you can leave only net5.0 tfm and install additional bindings through a nuget, if necessary

@svick
Copy link
Contributor

svick commented May 23, 2020

@plamploika

But the problem remains with the long wait for the new version of the framework, which includes bundles for the new version of the OS.

I don't think you will have to wait long. From the document I linked above:

Workloads will be updatable. The SDK will include a mechanism to discover if a workload manifest pack has been updated. An updated manifest could represent bug fixes or new features (like updated bindings for an operating system update). If a manifest has been updated, the user will be notified, and have the opportunity to acquire the new version. Updates will not be automatic.


I'm also interested in what will happen to a new version of bindings after the release of the new version of the .net. For example, in the future, where there is .net9.0, the Apple provides iOS 16. Will .net5.0 be updated to support the bindings for iOS (in case I do not want to update the platform, but want to use the new features of iOS)?

If the release schedule proceeds according to the current plan, .Net 9.0 will be released in 2024. By then, .Net 5.0 (which is not an LTS release) will be long out of support, and .Net 6.0 (which is LTS) will just slip out of support. So I don't think those will be updated with new iOS bindings at that point.


Imho, separation contributes to general simplification

It's definitely not simpler to develop, if MS has to make new code compatible with many old frameworks.

@richlander richlander added the Epic Groups multiple user stories. Can be grouped under a theme. label Jun 1, 2020
@plamploika
Copy link

@svick, thanks for the answers, but I would like to clarify something else.
OS-bindings can be delivered through a special moniker or nuget.

It's definitely not simpler to develop, if MS has to make new code compatible with many old frameworks.

So, how does delivering bindings through nuget lead to code incompatibility?

@danmoseley
Copy link
Member

@terrajobst can you confirm there's no remaining 5.0 work on platform (ie., dotnet/runtime) here? That seems to be the case. I'd like to know we're done at that layer.

@joperezr
Copy link
Member

joperezr commented Aug 26, 2020

ping @terrajobst 😃

Can we consider this done for 5.0 in terms of dotnet/runtime side?

@terrajobst
Copy link
Member Author

Confirmed

@ericstj
Copy link
Member

ericstj commented Sep 8, 2020

@terrajobst is there any work remaining here for any repos in 5.0 or should we close this?

@danmoseley
Copy link
Member

@terrajobst ?

@zkat
Copy link

zkat commented Sep 10, 2020

NuGet/Home#9215 is still open, as is NuGet/Home#9441, and we're still having discussions on how exactly to fix them, but they're relatively minor and imo shouldn't block things?

@danmoseley
Copy link
Member

If we have open issues for the last remaining work then we should close this epic issue as it is no longer useful...

@danmoseley
Copy link
Member

@zkat any objection to closing this? Are those appropriately tagged so they won't get lost for 5.0?

@ericstj
Copy link
Member

ericstj commented Sep 16, 2020

Ping @zkat @terrajobst -- trying to close down active issues for 5.0 and need to understand if this needs to remain open.

@terrajobst
Copy link
Member Author

terrajobst commented Sep 17, 2020

I'm closing this as the only remaining work is in NuGet and that work is in-progress.

@danmoseley danmoseley removed the Epic Groups multiple user stories. Can be grouped under a theme. label Nov 24, 2020
@danmoseley
Copy link
Member

Removing Epic so it's not pulling active children into the themes tree.

@ghost ghost locked as resolved and limited conversation to collaborators Dec 24, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Meta blocking-release tracking This issue is tracking the completion of other related issues.
Projects
None yet
Development

No branches or pull requests