You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dependencies in uv come in two shapes: Index dependencies, with a name and a version specifier, and url dependencies, pointing to a remote file, a git repository, local file or local directory. Only url dependencies are allowed to have url dependencies, and of these only local directories are allowed to be editables.
Currently, editables are collected and built separately, and then the lookahead resolver does a DAG traversal through all url requirements and their dependencies to collect a list of the names and urls of all url requirements. This tells us when a name-version requirement elsewhere in the dependency tree is fulfilled by a url requirement and gives us the list of allowed urls.
Instead, we should stop special casing editables and make them a regular path dependency, resolved by the lookahead resolver. Editables are special because we don't store them in the cache (following the spec), so the lookahead resolver needs to return a handle to the editable with non-static metadata it had to build. In addition the lookahead resolver should consider all uv.tool metadata and perform (and cache) workspace discovery for directory dependencies (editable or not). The lookahead resolver will consider workspaces both for static and dynamic metadata, in the latter case building with PEP 517 hooks to use the 517 metadata from the build plus the resolved workspace for lowering the requirements.
The text was updated successfully, but these errors were encountered:
Dependencies in uv come in two shapes: Index dependencies, with a name and a version specifier, and url dependencies, pointing to a remote file, a git repository, local file or local directory. Only url dependencies are allowed to have url dependencies, and of these only local directories are allowed to be editables.
Currently, editables are collected and built separately, and then the lookahead resolver does a DAG traversal through all url requirements and their dependencies to collect a list of the names and urls of all url requirements. This tells us when a name-version requirement elsewhere in the dependency tree is fulfilled by a url requirement and gives us the list of allowed urls.
Instead, we should stop special casing editables and make them a regular path dependency, resolved by the lookahead resolver. Editables are special because we don't store them in the cache (following the spec), so the lookahead resolver needs to return a handle to the editable with non-static metadata it had to build. In addition the lookahead resolver should consider all
uv.tool
metadata and perform (and cache) workspace discovery for directory dependencies (editable or not). The lookahead resolver will consider workspaces both for static and dynamic metadata, in the latter case building with PEP 517 hooks to use the 517 metadata from the build plus the resolved workspace for lowering the requirements.The text was updated successfully, but these errors were encountered: