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

Remove "Core" from .NET SDK, simplify Mono mention #5984

Merged
merged 1 commit into from
Jul 25, 2022

Conversation

31
Copy link
Contributor

@31 31 commented Jul 24, 2022

The .NET Core SDK is simply the .NET SDK as of .NET 5. This is what you see on https://dotnet.microsoft.com/download.

This PR changes the text to remove "Core", and removes the reference to .NET Core 3.1 to avoid confusing people. (Some people see 3.1 and assume they must download that version, rather than the latest stable.)

Also removes the reference to Godot 3.2.3 to make the paragraph simpler to read.


This applies to 3.x.

@YuriSizov
Copy link
Contributor

YuriSizov commented Jul 25, 2022

This PR changes the text to remove "Core", and removes the reference to .NET Core 3.1 to avoid confusing people. (Some people see 3.1 and assume they must download that version, rather than the latest stable.)

I mean, Godot's C# module is indeed built with Core 3.1 specifically, support for 5 and 6 is coming in 4.x (see godotengine/godot-proposals#2333).

@31
Copy link
Contributor Author

31 commented Jul 25, 2022

I mean, Godot's C# module is indeed built with Core 3.1 specifically, support for 5 and 6 is coming in 4.x.

I don't think it matters what the C# module is built with, rather it matters what devs can use to build games. Godot 3.x currently works with the .NET 6.0 SDK and it's good to be able to use new C# versions (C# 10) because of the newer version of Roslyn included in the .NET 6.0 SDK than the .NET Core 3.1 SDK.

The runtime side is different and unrelated. The Godot 3.x runtime is Mono, not .NET Core 3.1. godotengine/godot-proposals#2333 tracks an update to use .NET 6 as the runtime.

@YuriSizov
Copy link
Contributor

YuriSizov commented Jul 25, 2022

rather it matters what devs can use to build games. Godot 3.x currently works with the .NET 6.0 SDK and it's good to be able to use new C# versions (C# 10)

Sure, as long you're sure the bundled Mono runtime will support those newer language features. And as long as the solution format is supported. I guess we call it .NET SDK on the download page anyway, so it's not a big deal.

@31
Copy link
Contributor Author

31 commented Jul 25, 2022

Sure, as long you're sure the bundled Mono runtime will support those newer language features.

Yeah, this is true, it's only a subset. There are some very nice features in there, though!

Something nice about the .NET SDK is that it chooses the default C# version it compiles using on the target framework in the csproj, so using the .NET Core 3.1 SDK actually compiles your code as C# 7.3, and the .NET 6.0 SDK chooses the same C# version. You have to go in and modify the csproj to change the C# version away from that. This means even if someone installs the .NET 6.0 SDK, they can't accidentally use any C# features that won't work in the Mono runtime.

That (and other ways that the .NET SDKs are careful to be backward compatible) ends up making it safe to have people install it rather than an old 3.1 SDK. 🙂

Copy link
Member

@aaronfranke aaronfranke left a comment

Choose a reason for hiding this comment

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

The documentation should still state that Mono is required when building the engine from source.

We should specify "(previously known as the .NET Core SDK)" or similar, to avoid confusing users. We don't want a situation where people install an SDK for .NET Framework 4.x and wonder why it isn't working.

@31
Copy link
Contributor Author

31 commented Jul 25, 2022

The documentation should still state that Mono is required when building the engine from source.

Hmm, is it really necessary to call this out in this particular section? My impression is that this paragraph is for using Godot rather than building it from source. It seems to me the reader might not even know that that term means. The next section (Additional notes) still mentions "If you are building Godot from source, install the latest stable version of Mono".

Regardless, I'll add it in, and I guess I'll just leave that as my suggestion/opinion.

We should specify "(previously known as the .NET Core SDK)" or similar, to avoid confusing users.

👍

@aaronfranke
Copy link
Member

aaronfranke commented Jul 25, 2022

@31 That's a good point, it is stated only slightly further down the page. However, I don't want these different parts of the page to seem to contradict each other, if one place says it's not required as a blanket statement, and another place tells you to go do it to build the engine from source.

@31
Copy link
Contributor Author

31 commented Jul 25, 2022

one place says it's not required as a blanket statement

I've removed this and added the original Mono paragraph back in with the push. I don't really mind this part all that much--the main things I was driving for in this PR are removing "Core" and "3.1" and cleaning up the bigger Mono paragraph a bit now that 3.2.3 is fairly old.

@aaronfranke aaronfranke merged commit 363a498 into godotengine:master Jul 25, 2022
@aaronfranke
Copy link
Member

Thanks!

@31 31 deleted the dev/31/nocore branch July 25, 2022 01:23
@Calinou
Copy link
Member

Calinou commented Jul 25, 2022

Cherry-picked to the 3.5, 3.4 and stable branches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants