-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove (or ensure) git system requirement #4847
Comments
I was under the impression that this PR(#3833) remove embedded Git support. |
We may eventually move to gitoxide if it grows to fit our needs, but otherwise this is sort of a non-goal right now. |
Our git operations are definitely non-trivial too as we need to support resolving all sorts of references, various authentication schemes, and optimizations like sparse checkouts. Once a suitable library is available we could consider support again but the system |
I am confused about the README of uv saying
and then cargo's README
Thus I expected there would be no need to have git installed |
We don't use libgit2 anymore, it doesn't support enough functionality. Originally, we copied much of Cargo's implementation though — Cargo can fallback to git if you ask it to. |
As far as I can tell, Git is required to be installed on the host system in order for pip git sources to work. This is bad, from a software engineering perspective, because a program should not require other programs in order to work. It is also bad because when you install
uv
usingpip
, you do not getgit
as well (which would be another way of avoiding the dependency failure).This behavior is understandable, because pip also works like this, but unless using the git executable as pip would is crucial for compatibility reasons, I think uv should just support the git operations itself (and also, I guess, the Mercurial, Subversion, and Bazaar operations, detailed on https://pip.pypa.io/en/stable/topics/vcs-support/). As I understand it, the required operations are basically just downloading and unpacking the repo, so it shouldn't be that hard™.
Example
The text was updated successfully, but these errors were encountered: