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 .NET 10 support #2642

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Add .NET 10 support #2642

wants to merge 2 commits into from

Conversation

am11
Copy link
Member

@am11 am11 commented Sep 22, 2024

This strongly-typed enums based implementation is not scaling very well; but for now, lets add 10.0 and soon after lets see if we can make it less verbose to ease up future updates a bit: dotnet/runtime#106599 (comment)

cc @adamsitnik, @lewing

@am11 am11 marked this pull request as ready for review September 22, 2024 16:49
/// <summary>
/// .NET 10.0
/// </summary>
Net100,
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should we start adding _ here?

Suggested change
Net100,
Net10_0,

Copy link
Member Author

Choose a reason for hiding this comment

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

I think we should really consider moving away from these strong type names. This is too much ceremony to issue a nice message. If the underlying SDK doesn't support the TFM, it issues a very reasonable, comprehensive and googleable error message. For the other use-case, consider string parameter [SupportedFramework("netX.Y")] rather than these unscalable abstractions which we can't get rid of even after the TFM is rendered unsupported by rest of the ecosystem.

Copy link
Member Author

Choose a reason for hiding this comment

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

Added underscore. However, the way SDK (and other parts of ecosystem) is handling these validations is they rely on common implementation in the SDK. If the underlying SDK doesn't support the TFM, it will report the error. Then there is the new concept of "torn SDK" in .NET 9, which makes the tooling download the required SDK. For NativeAOT, LLVMAOT, Mono runtime etc. there are flags like --aot available on command line (e.g. dotnet new console --aot).

BDN has gone in other direction with these dedicated monikers, nativeaot9.0 etc., which IMHO is an unnecessary maintenance headache, one we can easily avoid by using stringly arguments.

@caaavik-msft
Copy link
Contributor

I've tested this PR against a local build from dotnet/runtime#106599 and it fails because it seems that the .NET 10 SDK doesn't actually allow to target .NET 10, rather it only allows targetting .NET 9. To get things to work we do need to make changes to the SDK validator to allow backwards compatibility. However, this change will still be useful to have in once we do have .NET 10 targeting supported

@am11
Copy link
Member Author

am11 commented Sep 23, 2024

Yup, it's a chicken-egg situation atm, and we will soon be on alpha1 in runtime repo (based on how it was done last year, around this time). I think we can pass --corerun option in local builds that points to built corerun under artifacts/bin or artifacts/tests/coreclr/<platform>/Tests/Core_Root to get the ball rolling?

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

Successfully merging this pull request may close these issues.

3 participants