fsprojects / ProjectScaffold

A prototypical .NET solution (file system layout and tooling), recommended for F# projects
http://fsprojects.github.io/ProjectScaffold
The Unlicense
515 stars 154 forks source link

fsharp core reference is a little broad #288

Closed KevinRansom closed 7 years ago

KevinRansom commented 7 years ago

/cc @forki @dsyme @cartermp Guys,

I noticed this .. and it probably won't work as well as expected now that we have removed a bunch of profiles from FSharp.Core.nuget version 4.2.*

When we discussed the change we offered the following guidance: <snip> • Existing packages targeting pcls, net20, or net40 use FSharp.Core.nuget versions 4.1.xxx • Existing desktop libraries or projects ... either package is fine, prefer FSharp.Core.nuget versions 4.2.xxx where feasible. • New desktop projects, Xamarin projects, or netstandard projects use: FSharp.Core.nuget versions 4.2.xxx • Library developers --- target as low a version of dotnet standard as your API consumption allows. netstandard1.6 is ideal for libraries not including type providers. Provide a net45 and netstandard build of your libraries, to enable developers who need to deploy to a wide range of existing Windows dotnet installs. FSharp.Core.nuget versions 4.2.xxx • TP developers you will need to target dotnet standard 2.0 and/or net45 --- but the netstandard1.6 profile of FSharp.Core will be ideal to build against use: FSharp.Core.nuget, 4.2.xxx </snip>

In this case use means: <package id="FSharp.Core" version="4.1.*" />

Or: <PackageReference Include="FSharp.Core" Version="4.2.*"></PackageReference>

I would suggest that you tighten down the scaffold templates to restrict the FSharp.Core version to: 4.1.* here: https://github.com/fsprojects/ProjectScaffold/blob/master/paket.dependencies

Kevin

dsyme commented 7 years ago

Fixed by https://github.com/fsprojects/ProjectScaffold/pull/290, default package for libraries created using the scaffold is now 4.0.0.1

KevinRansom commented 7 years ago

@dsyme

Are you not using FSharp.Core 4.1 in scaffold?

dsyme commented 7 years ago

Are you not using FSharp.Core 4.1 in scaffold?

For a library it is better that we just have people default to FSharp.Core for F# 4.0 as it makes the library more broadly usable. They can bump the version in paket.dependencies if they want

KevinRansom commented 7 years ago

@dsyme What makes it more broadly usable? 4.4.1.0 is usable in all of the same places, and has a ton of new Apis? and is 4.0.0.1 even signed. Because I don't believe we ever shipped a signed 4.0.0.1 dll.

Thanks

forki commented 7 years ago

"More broadly" means it would be compatible in more scenarios when a package resolve needs to downgrade Version since some other package is bound to older fsharp.core package. So it is not about the package itself but about the open version range.

Am 08.06.2017 20:00 schrieb "Kevin Ransom (msft)" <notifications@github.com

:

@dsyme https://github.com/dsyme What makes it more broadly usable? 4.4.1.0 is usable in all of the same places, and has a ton of new Apis? and is 4.0.0.1 even signed. Because I don't believe we ever shipped a signed 4.0.0.1 dll.

Thanks

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fsprojects/ProjectScaffold/issues/288#issuecomment-307180994, or mute the thread https://github.com/notifications/unsubscribe-auth/AADgNOToKEkPYeiIUzPNR-HjZZsLV4mWks5sCDbMgaJpZM4NzNwr .