Hacker News new | past | comments | ask | show | jobs | submit login

> Solver3 is a fully backtracking dependency solving algorithm that defers choices to as late as possible. It starts with an empty set of packages, then adds the manually installed packages, and then installs packages automatically as necessary to satisfy the dependencies. [...]

> If you have studied SAT solver design, you’ll find that essentially this is a DPLL solver without pure literal elimination

DPLL algorithm: https://en.wikipedia.org/wiki/DPLL_algorithm




prefix-dev/pixi is a successor to Mamba and Conda which wraps libsolv like dnf. https://github.com/prefix-dev/pixi

OpenSUSE/libsolv: https://github.com/openSUSE/libsolv

OpenSUSE/zypper may have wrapped or may still wrap libsolv?

TIL libsolv also supports arch .apk and .deb; there's a deb2solv utility to create libsolv .solv files: https://github.com/openSUSE/libsolv/blob/master/tools/deb2so...

"[mamba-org/rattler:] A new memory-safe SAT solver for package management in Rust (port of libsolv)" (2024) https://prefix.dev/blog/the_new_rattler_resolver https://news.ycombinator.com/item?id=37101862

Pixi is integrating uv: https://github.com/astral-sh/uv/issues/1572#issuecomment-194...

astral-sh/uv [1] solves versions with PubGrub [2], which was written for Dart: [1] https://github.com/astral-sh/uv [2] https://github.com/pubgrub-rs/pubgrub

uv's benchmarks are run with hyperfine, a CLI benchmarking tool: https://github.com/sharkdp/hyperfine

astral-sh/rye was mitsuhiko/rye, and rye wraps uv with "fallback to unearth [resolvelib] and pip-tools": https://github.com/astral-sh/rye https://lucumr.pocoo.org/2024/2/15/rye-grows-with-uv/

So, TIL it looks like rye for python and pixi for conda (python, r, rust, go,) are the latest tools for python packaging, not apt packaging.

fpm is one way to create deb packages from python virtualenvs for install with the new APT solver, which resulted in this research.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: