Coder Social home page Coder Social logo

Comments (7)

josephdecock avatar josephdecock commented on June 11, 2024 1

We do test against new versions of .NET as they are released, but I am reluctant to make a commitment that we would make new releases that multi target against each new release of .NET. All of the Microsoft maintained packages that were mentioned in this thread that do that are all on a synchronized release cadence, so it makes sense for them to be released together. In contrast, we make our own decisions about when to release, not tied to Microsoft's release calendar.

Microsoft's support policy also applies to those other packages, so I think maybe they are conveying their support by multi-targeting against those versions of the framework that they want to support. I see why, with all those Microsoft packages doing things that way, you'd get the vibe that packages should multi target all supported versions, but that isn't actually a universal or even particularly common practice for 3rd party packages. E.g., automapper, nunit, stackexhange.redis, and google.protobuff all are examples of actively maintained, very widely used packages that don't have a specific build for .NET 8.

And I think not needing a new build when there is an update is actually a good thing-stability and backward compatibility is good, and so by not making a particular version "the .NET 8 one", we avoid sending the message that if you want to use our stuff on .NET 8, you've gotta upgrade.

If there was a specific dependency problem that you could point to, and multi targeting would solve that problem, I'd be much more interested in multi-targeting. If you are running into a bad combination of dependencies, please share how that comes about - I definitely want to know about it!

Thanks for this though - we definitely want to "do the right thing", not contribute to dependency hell, and keep things working and stable.

from identitymodel.

leastprivilege avatar leastprivilege commented on June 11, 2024

Why? Isn't the library backwards compatible?

from identitymodel.

velocitysystems avatar velocitysystems commented on June 11, 2024

Why? Isn't the library backwards compatible?

It is. However it is fairly typical when a new version of .NET is released that all System dependencies in third-party packages are bumped to their respective dependencies i.e. 7.x, 8.x.

from identitymodel.

leastprivilege avatar leastprivilege commented on June 11, 2024

Is it? Isn't that the job of the host to choose those versions? I am only expressing the minimum versions I require.

I would understand if there would be some sort of conditional compilation required between the .NET versions. Which does not seem to be the case...

Am I missing something?

from identitymodel.

thohng avatar thohng commented on June 11, 2024

Support multi Net Framework could be better than support the lowest Framework for compatiple. Keep the minimum version as compatible may not a good idea. These NuGet dependency change seems start from .NET 7.0.
For example:

This is from System.Text.Json 8.0

image

from identitymodel.

leastprivilege avatar leastprivilege commented on June 11, 2024

Will re-visit once net6 goes out of support.

from identitymodel.

nuttytree avatar nuttytree commented on June 11, 2024

I think this decision should be reconsidered, in general a NuGet should be targeting all currently supported versions of .NET because it gives consumers of the NuGet confidence that the code has been evaluated and tested against the newer versions of .NET, so that any changes in the newer versions of .NET can be accounted for, and to ensure consistent versions of dependencies like System.Text.Json.

from identitymodel.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.