benaadams / Ben.Demystifier

High performance understanding for stack traces (Make error logs more productive)
Apache License 2.0
2.74k stars 118 forks source link

Dependency on end of life System.Reflection.Metadata 5.0.0 #205

Open TFTomSun opened 1 year ago

TFTomSun commented 1 year ago

The latest Ben.Demystifier package has a dependency on System.Reflection.Metadata 5.0.0.

https://www.nuget.org/packages/Ben.Demystifier#dependencies-tab

.NET 5 is out of support / end of life. https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core

Is it possible to push a new version with a dependency to the latest Dotnet SDK (currently 6)?

Aragas commented 1 year ago

Could the current version be kept? We just integrated it in Bannerlord.ButterLib, a Mount & Blade II: Bannerlord mod that shows a crash report when an unhandled exception occurs. The game uses .NET Framework, so the demystifier really helps with providing a readable stack trace! The issue is, we can't control version dependency version redirects, so we stick to the dependencies that don't cause binding issues. With Microsoft.Extensions.* libraries we target 2.0.0, for example. Same goes with System.Reflection.Metadata!

At least, right now there should be no difference if 5. or 6. versions are used, because the ABI is the same. Users of standard (enterprise) projects could manualy update their System.Reflection.Metadata to the latest available, as it will contain the latest bug fixes avaiable!

mattjohnsonpint commented 1 year ago

Minimal dependencies don't need to be bumped just because they're EOL. That just removes compatibility with older versions, with no benefit to newer ones.

If you want to use a newer version, then take an additional reference to the newer version.

The right path forward here is that Ben.Demystifier should add a net6.0 target that conditionally removes the dependency on System.Reflection.Metadata. Then newer versions of .NET would use the one they ship with.

AartBluestoke commented 1 year ago

The latest Ben.Demystifier package has a dependency on System.Reflection.Metadata 5.0.0.

https://www.nuget.org/packages/Ben.Demystifier#dependencies-tab

.NET 5 is out of support / end of life. https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core

Is it possible to push a new version with a dependency to the latest Dotnet SDK (currently 6)?

the dependency is "System.Reflection.Metadata (>= 5.0.0)" you can use any newer non-end of life version you want.