destructurama / fsharp

Native support for destructuring F# types when logging to Serilog.
Apache License 2.0
38 stars 10 forks source link

Relax FSharp.Core and Serilog dependencies #13

Closed bartelink closed 4 years ago

bartelink commented 4 years ago

With the release of 1.1.0, I'm running into some conflicts when comparing with those imposed by using Destructurama.FSharp and Destructurama.FSharp.NetCore (for onloookers: which is an externally managed short term package) of the v 1.0.14 range

This applies a standard convention I've used with success across other projects (originally from Enrico and Dave in https://github.com/jet/falanx), whereby:

This also includes some more debatable tidying stuff - please push back and I can remove them

baronfel commented 4 years ago

Lovely! Thank you for pushing through with this. One request: can you please add the upper bounds back on to the serilog dependency? It's a defensive habit to prevent breakages from major versions of dependent packages, and it narrows the search space for clients like paket.

I don't think it needs to be added for the fsharp.core dependency, because those are more and more being locked in by the SDK version you use.

bartelink commented 4 years ago

FYI if you want to cross-validate, the smallest package I know of that applies this scheme is FsCodec. See https://github.com/jet/FsCodec/blob/master/src/FsCodec/FsCodec.fsproj

bartelink commented 4 years ago

3.0 upper limit reinstated; good point (🤔 I should do some more of that)

baronfel commented 4 years ago

Thanks for this 👍

TysonMN commented 3 years ago

One request: can you please add the upper bounds back on to the serilog dependency? It's a defensive habit to prevent breakages from major versions of dependent packages [...]

Unfortunately, you didn't achieve that goal with the code

<PackageReference Include="Serilog" Version="[2.0.0, 3.0.0)" />

because this notation intentially includes all prereleases of 3.0.0, which might include breaking changes.

The only workaround that I know of is to instead use

<PackageReference Include="Serilog" Version="[2.0.0, 2.99]" />

or your favorite number of 9s.