-
Notifications
You must be signed in to change notification settings - Fork 784
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
Versioning plan for F# in VS 15.6 and moving forward #4113
Comments
What if there's features in the Core library that could be released out of band from language changes? |
I wish we could find a way to sync the nuget version with the dll version |
@isaacabraham In general, I don't think we plan on releasing FSharp.Core functionality out of band from language choices, but the current versioning scheme of the binary and package do open up that possibility. It's up for discussion if that final version will be interpreted as a SemVer-style patch version or "new small features" version. I'd rather keep that version number for bug fixes. @forki / @chillitom I'm not opposed to making the package version the same as the |
I mean nobody cares about the concrete version number of anything. (outside of Redmond that is. Redmond has special rules). Just make it predictable and consistent. Like go over to 4.5 for everything. People will appreciate that. |
@forki do you have feedback on the above plan with respect to predictability? From our vantage point, this buys us that, largely because the compiler and tooling is free to follow SemVer and rev as-needed rather than attempt to align with a language version somehow. |
@forki's suggest to skip to F# 4.5 at next language update (and thus sync the assembly version and nuget package first two digits) looks quite reasonable. There is also a long industry tradition of skipping to .5 on version updates (for no particularly good reason!)
There's a question whether the nuget package version should be |
Any technical concerns with other tools? I like the idea overall. |
I spoke with @KevinRansom today, and we don't currently see a technical issue with aligning the FSharp.Core binary and FSharp.Core package to 4.5.0.0 and 4.5.0, respectively, in a 15.7 timeframe. Let's assume that this is the plan. There is, however, the question that @isaacabraham raised, and @KevinRansom and I spoke about it a bit. Imagine the following situation:
In the current proposal, FSharp.Core is held off from versioning due to the F# language version not being ready. @dsyme, what would be your reasoning for keeping FSharp.Core and F# language versions in lockstep? |
I've created an RFC here: fsharp/fslang-design#249 It's probably best to discuss there |
There's a lot of simplicity value to keeping the versions aligned. So I think we should probably make it that from 4.5 onwards F# minor language revisions can just be "small" or even empty (i.e. F# 4.8 might be the same language as F# 4.7 with some improvements/adjustments to FSharp.Core). |
Traceability is also important. It would be great if there was a way to to get the git commit used for each version produced. Ideally, this information would be available multiple ways:
Today, I'm trying to hunt down a |
@ctaggart In terms of process, tags are the easiest option. We'll have to be disciplined about tagging each release. |
Regardless of the decision here, ordinary users will need this information in accessible form. In order to decide which Nuget package to use and what combination of numbers should be in project files. That information could be the first three rows of the table above and I would suggest putting it in or linking to it from the FSharp.Core nuget description. The most current document that I can find is https://fsharp.github.io/2015/04/18/fsharp-core-notes.html#fsharpcore-version-numbers , but it is out of date and I think lists the wrong FSharp.Core versions for PCL projects with F#4.1. |
Closing this, as we have implemented the RFC. Further discussions around FSharp.Core are here: fsharp/fslang-design#250 As for where version numbers are presented online, this is a matter of the owners of those various web properties updating version numbers accordingly. Release notes for what we control will be updated with links to the RFC. |
See https://github.com/fsharp/fslang-design/blob/master/tooling/FST-1004-versioning-plan.md
This is a more detailed breakdown and tracking issue for #4112.
We have strong motivation to decouple versioning of the F# compiler and tools from the F# language and core library. We also wish to keep the F# language and F# Core library coupled in version numbers. The reasoning is as follows:
Here's what it should look like:
You'll note a few things:
We believe that this will make versioning a bit more sane moving forward, as it gives us the ability to rev tooling at a faster pace than the language, while also laying out a plan to align F# language versions, FSharp.Core versions, and FSharp.Core NuGet package versions.
The text was updated successfully, but these errors were encountered: