Often it seems that people will make patch releases that add a “feature” of complaining at install time that that major release/minor release/entire package is bad now and should be replaced with something else. It still works, but it annoys everyone who transitively depends on it forevermore.
Comment on Why is the Node ecosystem so demanding?
lysdexic@programming.dev 1 year ago
Something in the dependency tree will yell at you that it is deprecated or discontinued.
Only if you didn’t pinned the dependencies you actually consume, and expect that all your dependencies magically comply with semver.
Blindly replacing dependency versions never worked, at least reliably. If you do not put in the work to ensure things work, more often than not you’ll be surprised by them not working.
planish@sh.itjust.works 1 year ago
agressivelyPassive@feddit.de 1 year ago
Then you’ll end up with tons of vulnerabilities within days. That can’t be the solution either.
lysdexic@programming.dev 1 year ago
You only end up with vulnerabilities if you refuse to update your dependencies. Updating a dependency is something you need to do yourself, along with running build validation tests after a successful update. Just because npm can download newer packages that does not mean those packages are good.
agressivelyPassive@feddit.de 1 year ago
…which is the opposite of the comment above.
So, you still have to go through all the dependencies, vulnerabilities and incompatibilities. Yes, you can now kind of control the timing, but it’s still unacceptable in my opinion, that you have to spend so much time just to not be an active danger to everyone.
NPM is completely alone in that regard. Maven, Pypi, etc. don’t have these problems.
lysdexic@programming.dev 1 year ago
That’s the point. There is no free lunch. Yet, you can live with stable, pinned versions and only upgrade the ones you really need to, and that means exercise your personal criteria instead of mindlessly upgrade everything just because there was a bump in a version number somewhere in an upstream dependency.
Timing, extent, scope, and impact. That’s the point.
You only spend the time you decide to spend. There are already vulnerability scanners that pinpoint exactly which versions need to be updated, and do that automatically for you. Mindlessly opening the floodgate to each and every change is by definition idiocy and a liability.