serilog / serilog-settings-configuration

A Serilog configuration provider that reads from Microsoft.Extensions.Configuration
Apache License 2.0
446 stars 129 forks source link

v7.0 - pin to MEC v7, including matching target frameworks #377

Closed nblumhardt closed 1 year ago

nblumhardt commented 1 year ago

See also: https://github.com/serilog/serilog-extensions-logging/pull/222, https://github.com/serilog/serilog-extensions-hosting/pull/71, https://github.com/serilog/serilog-aspnetcore/pull/325

Unfortunately we've had some maintainability problems given the wide spread of target frameworks and dependencies across the Serilog sub-projects.

My aim's to kick through some RTM versions of all of these packages, pinned to their latest Microsoft.Extensions.* counterparts, ASAP.

I know we have https://github.com/serilog/serilog-settings-configuration/pull/343 open here (I've also held up the works there), my proposal is that we "rip the Band-Aid off" and merge this, then merge the release PR as v7.

Note that targeting v7 of the Microsoft.Extensions. packages doesn't mean dropping earlier TFMs - the majority of the ME packages continue supporting net462+, netstandard2.0+, and net6.0+.

On the release of .NET 8, the plan would then be to sim-ship Serilog.Extensions.* and Serilog.Settings.Configuration v8.0 versions that depend on the v8.0 dependencies (and so on, for the foreseeable future).

Numpsy commented 1 year ago

On the release of .NET 8

Would the versions built with the v7 libs roll forward to work with the v8 libs (say, if you wanted to test with ASP.Net Core 8 before it's released), or does 'pinned' actually mean '7 only' ?

nblumhardt commented 1 year ago

@Numpsy thanks for checking this out! Roll-forward would work exactly as it does today. All I mean by "pinned" is that v7 of this library will have a dependency on v7 of Microsoft.Extensions.Configuration, and v8 of this library will build against v8 of M.E.C.

This probably sounds like a bigger change than it is - the main benefit is that the package's dependency graph is predictable and consistent, irrespective of the target framework and any other factors.