Jesus fucking Christ.
Jesus fucking Christ.
Admittedly, most of what I use `uv` for now is to install PDM, as the uv installation script is much more reliable than PDM's. If PDM had an equivalent to `uv tool install`, I could leave `uv` without looking back.
Replacing `ruff` is harder, and replacing `ty` is almost impossible.
The main reason I was fine using uv was that it did a very good job of following the PEPs when they existed, and giving clear, transparent reasons for not doing so when they made exceptions (like why they didn't adopt pylock.toml).
Other than PDM, though, there's just so little in the way of Python package management tooling that does a good job of bootstrapping and for declaratively managing venvs.
I've said it before, but I'm not happy having `python` on PATH. That's an easy way to have global system state leak into project dependencies. Not having `python` on PATH let me discover where a chain of different build tools escaped the venv and picked up system-wide site-packages.
uv got that right, imho.
God *damn* I'm depressed right now.
@xgranade
Maybe nix can help?
@xgranade I'm pretty happy with pipx. It also does allow you to specify which Python each application should use:
$ pipx install --help
usage: pipx install [-h] [--quiet] [--verbose] [--global] [--include-deps]
[--force] [--suffix SUFFIX] [--python PYTHON]
[--fetch-missing-python] [--preinstall PREINSTALL]
[--system-site-packages] [--index-url INDEX_URL]
[--editable] [--pip-args PIP_ARGS]
package_spec [package_spec ...]
[...]
--python PYTHON Python to install with. Possible values can be the
executable name (python3.11), the version of an
available system Python or to pass to py launcher
(3.11), or the full path to the executable. Requires
Python 3.9 or above.
--fetch-missing-python
Whether to fetch a standalone python build from
GitHub if the specified python version is not found
locally on the system.
I have a mix of stuff installed with Python 3.11, 3.12, and 3.13 using it.
uv tool install is great too, but there is one edge case bug for my use case I keep running into with it. So I've stuck with pipx.
@xgranade I think you mean "forking"
as in, what we should all do on those projects immediately
@xgranade imagine if there was some kind of incentive to say 'no' to this kind of buyout.
Imagine if monopoly-chasing hyper scale companies weren't allowed to roll over in their sleep and murder common-good projects with offers too good to refuse.
Imagine if people cared.
@xgranade best case scenario is they end up leaving the tools alone (I suppose the real best case is they keep getting improved but I won't hold my breath). Worst case scenario is uv will send the requirements to chatgpt for resolution and also upload the files for ruff to use chatgpt for formatting. /s
I just don't see the point of this purchase outside of the talent and letting the original tools languish. I guess that's what I'd hope for anyway.