logoalt Hacker News

plommeyesterday at 3:01 PM11 repliesview on HN

Why not take it further and not update dependencies at all until you need to because of some missing feature or systems compatibility you need? If it works it works.


Replies

skybrianyesterday at 3:10 PM

The arguments for doing frequent releases partially apply to upgrading dependencies. Upgrading gets harder the longer you put it off. It’s better to do it on a regular schedule, so there are fewer changes at once and it preserves knowledge about how to do it.

A cooldown is a good idea, though.

show 1 reply
kunleyyesterday at 4:12 PM

> Why not take it further and not update dependencies at all until you need to because of some missing feature or systems compatibility you need? If it works it works.

Indeed there are people doing that and communities with a consensus such approach makes sense, or at least is not frowned upon. (Hi, Gophers)

jonfwyesterday at 4:00 PM

There is a Goldilocks effect. Dependency just came out a few minutes ago? There is no time for the community to catch the vulnerability, no real coverage from dependency scans, and it's a risk. Dependency came out a few months ago? It likely has a large number of known vulns

bigstrat2003yesterday at 3:27 PM

That is indeed what one should do IMO. We've known for a long time now in the ops world that keeping versions stable is a good way to reduce issues, and it seems to me that the same principle applies quite well to software dev. I've never found the "but then upgrading is more of a pain" argument to be persuasive, as it seems to be equally a pain to upgrade whether you do it once every six months or once every six years.

show 1 reply
SkyPuncheryesterday at 4:08 PM

This works until you consider regular security vulnerability patching (which we have compliance/contractual obligations for).

show 1 reply
tim1994yesterday at 3:31 PM

Because updates don't just include new features but also bug and security fixes. As always, it probably depends on the context how relevant this is to you. I agree that cooldown is a good idea though.

show 3 replies
hinkleyyesterday at 6:08 PM

CI fights this. But that’s peanuts compared to feature branches and nothing compared to lack of a monolith.

We had so many distinct packages on my last project that I had to massively upgrade a tool a coworker started to track the dependency tree so people stopped being afraid of the release process.

I could not think of any way to make lock files not be the absolute worst thing about our entire dev and release process, so the handful of deployables had a lockfile each that was only utilized to do hotfix releases without changing the dep tree out from underneath us. Artifactory helps only a little here.

yupyupyupsyesterday at 4:37 PM

Just make sure to update when new CVEs are revealed.

Also, some software are always buggy and every version is a mixed bag of new features, bugs and regressions. It could be due to the complexity of the problem the software is trying to solve, or because it's just not written well.

Sparkle-sanyesterday at 6:25 PM

Because AppSec requires us to adhere to strict vulnerability SLA guidelines and that's further reinforced by similar demands from our customers.

parliament32yesterday at 6:05 PM

Because if you're too far behind, when you "need" takes days instead of hours.