Settings

Theme

If It Quacks Like a Package Manager

nesbitt.io

60 points by jandeboevrie a day ago · 8 comments

Reader

verdverm 19 hours ago

On an aside, the MVS (minimum version selection) is an interesting and understandable algorithm for dependency resolution. Started from Go, CUE uses it now too.

https://research.swtch.com/vgo-mvs

  • amazingman 10 hours ago

    It's wild to me that MVS didn't get picked up everywhere else for their next-gen package managers. Picking up "fixes" automatically turned out to be a boondoggle, if not a security risk. There's no reason we need to write a SAT solver just to manage our library dependencies.

paulddraper 21 hours ago

> If it has transitive execution, it’s a package manager

Not really.

Spreadsheets, programming language functions, database triggers.

To be more accurate, if it downloads artifacts transitively it is a package manager.

  • dataflow 20 hours ago

    Not really, it's not about downloading. If it only works offline given the appropriate files, that's fine too. But a package manager needs to actually install and uninstall packages!

  • Spivak 21 hours ago

    I could see a case being made that programming language functions, especially in ruby where everything is message passing, forms a package manager. A method might actually want to guarantee that when it sends a message foo that the code receiving it remains fixed.

    Being able to declare dependencies that granular might actually be great for doing refactors and upgrades. Maybe we accepted too easily that dependencies for a project are global.

    • nagaiaida 13 hours ago

      in raku, versions are specified for imported packages, not for installed packages; you can specify in the code a dependency on a particular version

    • verdverm 19 hours ago

      We sort of do by bundling them up and pinning them together at some version id.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection