-
-
Notifications
You must be signed in to change notification settings - Fork 962
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
Switch from .NET Core 3.1 to .NET 5 #912
Comments
Current plan & latest discussions on this:
|
If possible, could we setup the upgrade such that if someone needs to stay on .NET Core they could still do so by just compiling Stride themselves for another target? In other words, can we isolate breaking changes and possibly use if directives before completely dropping .NET Core reliant code in the next release. |
I suppose one thing I didn't think about is that .NET Core 3.1 is an LTS, whereas 5 is not. I don't know what Stride's support policy is, but unless the .NET 6 version comes out a few months after .NET 5 comes out, users may be forced to use an unsupported TFM. Same goes if the .NET 6 version of Stride has breaking changes which may defer an upgrade. |
We are in favor of the two steps strategy with fw and 5 support. Otherwise our fork would be hard to manage and makes pull requests harder. A transition period for existing projects is quite important for us, since upgrading will take us a few months of work. |
The scheduled release date for .NET 6 is november 2021. So a year after .NET 5. .NET 5 support will end 3 months after the .NET 6 release. |
BTW, here is some work I started on .NET 5 a few days ago: https://github.com/xen2/stride/tree/net5 |
Risking saying what you already know but:
I do feel that the stride preprocessor defines are overlapping with those being defined in .NET5. Following the work to make Stride compile and work correctly on .NET 5, I suggest removing all preprocessor defines in favour of those defined by .NET 5, looking into aligning those used for older TFM's with those defined in .NET 5 and to prefer runtime checks for the graphics API rather than preprocessor defines. Finally I think it would be easy to adopt new targets, seeing how they now all use the same SDK and merely require some MSBuild properties to get set, and I would be very interested to see the project reunion type projects (WinUI on Desktop) become a new target that Stride supports. And MAUI, off course, when that will be usable - in favor of Stride's custom UI framework, at the very least to be able to use that, too. |
I think I am mostly done with the prototype. Feel free to try it (from https://github.com/xen2/stride/tree/net5). @ericwj thanks for the feedbacks.
In general, a lot of custom build steps & workaround are probably not necessary anymore and/or can be done in a nicer way. |
For Silk.NET, the solution to the MSBuild.Sdk.Extras was NUKE. Because
dotnet build can’t build old-style projects, we just strip them out as part
of the build process unless you a) have desktop MSBuild on your PC and b)
have specified you want to build Android and iOS feature sets. However, I
appreciate that sounds a bit convoluted.
My personal opinion is just to wait until .NET 6. If Xamarin decide to push
back mobile even further to .NET 7 then I guess we can revisit it.
…On Wed, 25 Nov 2020 at 08:28, xen2 ***@***.***> wrote:
I think I am mostly done with the prototype. Feel free to try it (from
https://github.com/xen2/stride/tree/net5).
@ericwj <https://github.com/ericwj> thanks for the feedbacks.
I would also like to be able to get rid of MSBuild.Sdk.Extras and get
back to a more standard building process.
It seems the two main blockers for that are:
- Switch to .NET 5.0 only (which should happen in 4.1) so that we
don't need RuntimeIdentifiers for .NET Standard anymore
This should remove all our complex steps related to RuntimeIdentifiers
(we might need to unify some code between platforms before)
- Either wait for net6.0-android and net6.0-ios, or wait for
dotnet/sdk#491 <dotnet/sdk#491> to be fixed,
or embed the small part of MSBuild.Sdk.Extras to deal with that
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#912 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACVEYI2CQZKZGOLLGGHNSH3SRS53JANCNFSM4TXK56KA>
.
|
As a developer and user, I would like to move all projects to .Net 5 so that their is less maintenance and bugs supporting multiple development frameworks.
Discussion Items:
Will need some minor changes for MSBuild, such as WPF projects.
All users of stride will have to use .Net 5 not core or framework
Removing any code related to choosing framework or core
The text was updated successfully, but these errors were encountered: