-
Notifications
You must be signed in to change notification settings - Fork 500
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
Target .NET 8 #1284
Target .NET 8 #1284
Conversation
Did you just kill .NET Framework my bro?! |
Since @xPaw asked for statistics: Based on latest ASF stable release, which was released 11 days ago:
This makes .NET Framework ASF users around Supportive statistics: I record user agent in ASF STM listing (ASF backend), out of 537 registered ASF instances there, 0 users run generic-netf, making it Worthy use cases for .NET Framework, to the best of my knowledge, include:
If SK2 team decides supporting .NET Framework, I recommend to take a look into my madness project which I use in ASF, that takes away major headache from ifdefs in the code and other crap, and allows rather seemingly to support targetting both modern .NET (Core) and .NET Framework at the same time. My view: it should be determined by project maintainers how much headache they have from supporting .NET Framework. I won't cry if we kill it once and for good, considering it's deprecated and everybody who cares should have a setup capable of running .NET Core by now, but you need to realize that everybody running SK2 or SK2-based projects on e.g. Raspberry Pi 0 & 1, as well as Linux x86, will no longer be able to do that - so it's a decision to make, rather than acting like nobody uses it. |
In other words: let's just kill net framework and standard and save our sanity. |
It’s been four years since https://devblogs.microsoft.com/dotnet/net-core-is-the-future-of-net/ Unless we have some exotic enterprise customer, .NET 8 LTS seems like a great time to make the jump. Many other frameworks like asp.net core and powershell dropped Framework support years ago… |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tentative approval for a v3.0.0 release after .NET 8 lands in 2 weeks time. We should probably bump the version in this PR too.
We should deal with the new Analyzer warnings as well. From discussions on dotnet/csharplang, I think the lowercase identifiers warning is one we should fix rather than suppress.
One of the warnings comes from generate proto.
And I don't really know what to specify there. |
we control the proto generation, so we can tweak it as neccesary. and yeah, I'm not sure what's with SizeConst either, I'd have to read up on it |
It's defined as https://devblogs.microsoft.com/oldnewthing/20040826-00/?p=38043 |
73eda2f
to
5aa4586
Compare
So protobuf-net already has escaping code for all known language identifiers, If I modify that escape function to capitalize if the identifier is all lowercase, it will capitalize all fields. If I remove Created protobuf-net/protobuf-net#1106 to see what they think. |
Since it’s a C compiler shortcut into memory after the struct, I’m not so source that 1 is valid for marshalling. |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Agree with @yaakov-h on waiting for .NET 8 GA.
I posed this question on the SteamDB discord, but do we want to take this major version bump opportunity to make more sweeping changes? Like any wishlisted tech debt cleanup, project structure reorg, etc.
We first need to release 2.5.0 anyway, so it will be a while before 3.0 releases (certainly after GA).
You can if there's anything that needs doing, make issues for these? I have PR open to remove obsoletes. Yaakov was looking at switching to google protobufs for AOT stuff. |
Yep, as far as I can tell Google Protobuf is already trimmable and AOT-ready, and it has better support within the .NET ecosystem than protobuf-net does. (protobuf-net has been blocking us with protobuf-net/protobuf-net#817 on not being trimmable for over two years, and I believe we could need to generate our own serialisation code to support AOT) I'm not making any commitment to switching, but it's something I'm vaguely interested in and would also make sense for a v3.0 bump. Potentially something else we could do is replace the |
That indeed would be good, but ValveResourceFormat/ValveKeyValue#30 needs solving first, ideally somehow making KeyValue a non-breaking change for consumers. |
NET8 is GA, rip framework. |
Target for next major SteamKit version (3.0.0). This drops support for .NET framework.