4 ms·
How does the versioning for F# work? These seem like a bunch of nice quality-of-life improvements, but a major version change doesn't seem warranted in terms of
by sundarurfriend 2y ago
How does the versioning for F# work? These seem like a bunch of nice quality-of-life improvements, but a major version change doesn't seem warranted in terms of semantic versioning - no breaking changes - nor in terms of a major leap in terms of language features that a non-semver project might use as a reason to go version 8 to version 9.
Another comment mentions .NET9 that recently came out, is that the reasoning here, to keep in stride with .NET version numbers?
- guhidalg 2y agoFor both C# and F#, the version of .NET indicates the version of the build tooling (msbuild, compilers, nuget packages, etc...) that will be used to build the code whenever you invoke `dotnet build`. That means, for example, that the F# team _could_ have shipped a language change between versions 8 and 9, but if they didn't then at least they could have shipped a compiler change or an msbuild change that required .NET 9 for whatever reason. For developers, usually you can just update your code to the latest available runtime version unless you have to wait for your deployment environment to have the latest .NET version installed. Nowadays that's not necessary due to MSBuild changes to create self-contained deployments, but something to know.
- WorldMaker 2y agoC# will deliver the 13.0 compiler with .NET 9.0. It is a fun coincidence that F#'s 9.0 release coincides with .NET 9.0.
- jbjbjbjb 2y agoA new NET version comes out yearly and the C# and F# versions align with the yearly version but C# is ahead by 4. Semantic versioning is overrated anyway.
- WorldMaker 2y agoIt is fun to point out that the VB.NET compiler is still at least 3 versions ahead. As far as I am aware VB.NET hasn't had a major version number bump since 16.0 (around .NET Core 3.x or .NET 5, as I recall), but the VB.NET compiler still also claims the 6 versions before .NET. C#'s (lucky) 13.0 in .NET 9 is also just partly related to the non-linear version numbering of .NET itself with the long shadow if .NET 4's many minor releases that were also "major", the Core divide, and the eventual "unfork" at 5.0. F#'s 9.0 matching .NET 9 is a fun coincidence, and also just because F# is younger and missed some of the .NET fun like 4.x "minor number is as important as major number" years.
- sbelskie 2y agoSo .NET and C# have moved recently-ish to yearly single digit incremented releases and I’m guessing F# is doing the same. Not sure if they intentionally made the switch when it would line up with the .NET version or if that’s just a coincidence. C#, for example, released version 13 for .NET 9.