Open
Description
Just creating this as a placeholder for discussions and documenting some thoughts/findings. rules_uv
is doing its job well and replicating the functionality in rules_python
would be duplicate effort. However, rules_uv
does not support WORKSPACE
installations (at least the releases don't advertise such support) and rules_python
needs to support WORKSPACE
installations.
As a result I see the following options:
- Do not support
uv
. This has a drawback of longer compilation times with the includedpip-compile
tooling.uv
is just a binary and could in theory be later reused for common operations with whl packages. - Support
uv
only onbzlmod
by includingrules_uv
as a dependency. This would require us to exposerules_uv
via@python_versions
or something similar so that we don't have loads that loadrules_uv
within the main//python/*.bzl
files to avoid breakingWORKSPACE
users. However this would not allow us to use it for our own example testing because they should produce the same output with and without bzlmod. Since we cannot dog-foodrules_uv
, it makes it a hard proposition. - Write the
WORKSPACE
deps.bzl
implementation forrules_uv
so that we can depend on it. - Support
uv
by copying/reimplementing theuv
support as a separate rule/macro whilst not relying onrules_uv
. The drawback is that we would have to reimplement parts of it, but the benefit would be that the extra tests that we would need to have would be next to the implementation. We could also provide Windows support in this way asrules_uv
does not support Windows yet due to relying onbash
scripting forpip_compile
.