FsConfig
FsConfig copied to clipboard
Split Microsoft.Extensions.Configuration-dependent features into a separate NuGet
Description
FsConfig depends on Microsoft.Extensions.Configuration
but this dependency is only needed when using IConfigurationRoot
. Wouldn't it make sense to split the package in two so the users not using Microsoft's extension do not need to needlessly deal with this dependency?
Repro steps
Add FsConfig package to a project and do dotnet restore
.
Expected behavior
Can reference a "core" FsConfig without dependency on Microsoft.Extensions.Configuration
and the NU1603 warning does not appear.
Actual behavior
Getting this warning:
warning NU1603: FsConfig 2.1.5 depends on Microsoft.Extensions.Configuration (>= 0.0.0) but Microsoft.Extensions.Configuration 0.0.0 was not found. An approximate best match of Microsoft.Extensions.Configuration 1.0.0 was resolved.
Context
- Os: Ubuntu 18.04
- .NET Core 3.1.101
- FsConfig 2.1.5
Thanks, @queil for raising this issue and sorry for the delayed response.
I agree with you on the dependency, and I also felt the same when adding the support for IConfigurationRoot
. Then I found that FsConfig
is most likely going to be used in the ASP.NET Core
applications (either Giraffe or Saturn) and hence I left it like that.
I am just curious to know the nature of the application in which you are using FsConfig and also why this extra dependency is a real concern?
@demystifyfp I think your assumption is mostly correct in typical enterprise apps. However, I mostly use F# in Suave-based DevOps apps and only setting config via env. variables. The extra dependency is a concern mostly from the purity point of view.
Thanks, @queil It makes sense to have a NuGet package without the dependency.
Currently, I don't have the bandwidth to work on this. Feel free to fork this repo and publish a new NuGet Package.
As this library is narrow and stable, I don't foresee a challenge maintaining a separate fork.