Remix.run Logo
vintagedave 5 hours ago

Sometimes I think the issue here is churn. Security fixes aside, what is it that updated dependencies really give? Can't some of these projects just... stop?

chrisweekly 8 minutes ago | parent | next [-]

"Security fixes aside" is too dismissive. Transitive dependencies with real CVEs can feel like the tail wagging the dog, but ignore them at your peril.

zelphirkalt 3 hours ago | parent | prev | next [-]

The issue with that is, that the longer you wait to upgrade dependencies, the more pronounced the problems upgrading it will become generally speaking, because more incompatibilities accumulate. If those 5-6 year old projects were updated every now and then, then the pain to get them updated would be far less. As you point out, security is an aspect too, so you can leave the project inactive, but then you might hit that problem.

igsomething 3 hours ago | parent | prev | next [-]

Dependency hell. Usually how it goes is you have to develop a new feature, you find a library or a newer version of the framework that solves the problem but it depends on a version of another library that is incompatible with the one in your project. You update the conflicting dependency and get 3 new conflicts, and when you fix those conflicts you get 5 new conflicts, and repeat.

vintagedave 3 hours ago | parent [-]

So churn causes more churn.

Also breaking APIs should be regarded very poorly. It isn’t. But it should be.

comboy 4 hours ago | parent | prev | next [-]

I agree, but let's say you are looking for a library to solve your problem - you see one repo updated 2 weeks ago and the other one updated 5 years ago - which one do you choose?

vintagedave 3 hours ago | parent | next [-]

Perhaps some kind of ‘this code is still alive’ flag is key. Even just updating the project. Watching issues. Anything showing ‘active but done’.

9rx 2 hours ago | parent | prev [-]

That depends. What problem do I have, exactly?

Do I need a library to sort an array? The 5 years ago option is going to be the more likely choice. A library updated 2 weeks ago is highly suspicious.

Do I need a library to provide timezone information? The 2 weeks ago option, unquestionably. The 5 years ago option will now be woefully out of date.

jmusall 4 hours ago | parent | prev | next [-]

I think you could only get around this by forcing your whole dependency chain to only add non-breaking security fixes (or backport them for all versions in existence). Otherwise small changes will propagate upwards and snowball into major updates.

ch4s3 4 hours ago | parent | prev [-]

Indeed that’s what a lot of Elixir and Erlang packages do, if it’s done then it’s done.