▲ | Octoth0rpe 4 days ago | ||||||||||||||||||||||
> Each dependency is a potential liability. I mean, sure. So what does the solution look like? From my perspective it looks like a tool that is able to update your dependencies so that you can easily pick up bug fixes in your dependencies, which sounds an awful lot like a package manager. > JavaScript is great example of this as there are multiple different package managers for the language (npm being one of the most popular), but because each package manager defines the concept of a package differently, it results in the need for a package manager manager. This doesn't seem like a strong point to me. Yes, there are things like yarn, pnpm, etc. But IIUC practically all npm alternatives still define packages in the same way (a package.json at the root hosted by npmjs (or your private repo)), and the differences are ergonomic/performance related. > [that each package manager defines the concept of a package differently] is why I am saying it is evil, as it will send you to hell quicker. Then I think it's more of a language problem, not a problem with the concept of a package manager. | |||||||||||||||||||||||
▲ | bluGill 4 days ago | parent | next [-] | ||||||||||||||||||||||
> t looks like a tool that is able to update your dependencies so that you can easily pick up bug fixes in your dependencies, which sounds an awful lot like a package manager. If only it where that easy. Often the update isn't source compatible with the package that uses it so you can't update. There are some projects I use that I can't update because I use 6 different plugins, and each updates to the main project on a different schedule on their own terms - meaning the only version I can use is 10 years out of date and there appears no chance they will all update. (if this was critical I'd update it myself, but there are always more important things to work on so I never will in practice) Sometimes a package will change license and you need to check the legalese before you update. Sometimes a package is hijacked (see xv) and so you really should be doing an audit of every update you apply. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | zdragnar 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||
Yeah, yarn and co came about because npm was slow, buggy and didn't honor its own lockfile. Nowadays it is mostly improved, and the others differentiate by enchantments to workspaces (better monorepo support) or more aggressive caching by playing games with where the installed packages physically exist on the system. The core functionality- what a package is- has always been the same across the package managers though, because the runtime behavior is defined by node, not the package manager. | |||||||||||||||||||||||
▲ | gingerBill 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||
> So what does the solution look like? There are no solutions, only trade-offs. And the point is that not everything needs to be, nor ought to be, automated. And package managers are a good point of this. And yes, a language with an ill-defined concept of a package in the language itself is a problem of the language, but the package managers are not making it any better. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | smw 4 days ago | parent | prev | next [-] | ||||||||||||||||||||||
"I mean, sure. So what does the solution look like? From my perspective it looks like a tool that is able to update your dependencies so that you can easily pick up bug fixes in your dependencies, which sounds an awful lot like a package manager." Exactly! Who has the time or the discipline to do that manually? | |||||||||||||||||||||||
▲ | Sesse__ 4 days ago | parent | prev [-] | ||||||||||||||||||||||
> I mean, sure. So what does the solution look like? Obviously taking on fewer such liabilities? | |||||||||||||||||||||||
|