Lol no I just forgot I had nix-ld enabled 馃槄
Lol no I just forgot I had nix-ld enabled 馃槄
@nobodyinperson: in my experience, there were still many things that fail. (python-magic, if I remember correctly?)
We just build derivations for our Python projects these days. With some limited knowledge and some basic tooling (or slightly more knowledge to not require the tooling), it is pretty easy to form an overlay and use that in a `python3.withPackages` invocation. The big problematic libraries are mostly packaged and the smaller ones are trivial to add.
But I totally understand not wanting to do that :P
@BryanBennett Yeah that's what I'd do if I was the only one using it, but I want/need to keep it compatible with a non-nix workflow. I just tried #uv2nix but of course it failed on some super weird "license" key in pyproject.toml in a downstream depencency ("calver"!?) and of course there is no documentation on how to fix that 馃檮
I'll see if uv on its own works well enough on NixOS and non-NixOS. For now it seems so.
@nobodyinperson: it REALLY isnt that hard. The python native pin is often something very loose that nix can fulfill, such as the major version. Just something we can somewhat rely on to tell us if they drift too far apart.
In the other cases, it is an exact pin (which is eminently scriptable) that means that they all get invalidated when the nixpkgs revision gets updated and because we have scripted the initial pinning, we scripted the update pinning too. I think I might like this one better overall as it is a very natural fallout of the nix environment.
Basically, you build the nix environment once and then iterate all your dependencies and parse the version string out of the nix store path and pin to that +/- some exceptional libraries that need different versions because the nix provided version doesn't match their pypi version. It is a bit tedious but not hard and the bulk of the tediousness is done exactly once.