News for hackers. Stuff that matters.
Re:Ask HN: Why does every package+module system become a Rub... by verdverm on Monday January 30, 2023 @12:06PM (#34582804)
> crippled constraints

Do you mean ranges on dep versions? The way it is currently, the version you set is the minimum, and the algo finds the highest minimum set across all deps and uses that.

If ranges were introduced, you'd end up with an NP hard problem and need a SAT solver for your deps again

> Release tooling

What are you looking for here? Libraries only need to push a git tag, binaries do require a bit of work, but Goreleaser fills that pretty nicely. It would seem hard to standard where binaries would be pushed

> completely non-existent "x is available, upgrade"

https://go.dev/doc/modules/managing-dependencies#discovering...

"go list -m -u all"

Re:Ask HN: Why does every package+module system become a Rub... by Groxx on Tuesday January 31, 2023 @01:07AM (#34591811)
I'm continually confused why SAT solving is seen as a bad thing. It automatically solves common real-world problems in less than a second even in absurdly extreme cases, and a couple milliseconds normally - why would you avoid it?
Re:Ask HN: Why does every package+module system become a Rub... by verdverm on Tuesday January 31, 2023 @04:09AM (#34592972)
Did I say SAT was bad?

Go's algorithm is much simpler and does not need a lockfile while still giving deterministic results. Ranged deps without a lockfile cannot. There is benefit to two people running the same command and getting the same dependency versions. Most projects do not start with a lockfile, so it is quite easy to have different versions when running getting started commands.

Why choose SAT over simpler deterministic algos?