Allow runnable lock targets to reuse the `uv` cache
Nobody has claimed this yet.
Assessment
This issue has not been assessed yet.
Description
🚀 feature request
Relevant Rules
Description
The runnable targets generated by lock pass --no-cache to uv:
https://github.com/bazel-contrib/rules_python/blob/9cc620ebf92d9afaa1c0535968d82d5a7d7e4522/python/uv/private/lock.bzl#L146
This flag applies to both build actions and runnable targets. As a result, repeated invocations of bazel run //path:requirements.run (in our case via multirun), use temporary caches instead of reusing registry metadata, Git checkouts, and build metadata.
Describe the solution you'd like
Drop the --no-cache flag from .run target but keep it on build actions. This way runnable targets would use the caller's environment and write the lockfile into the workspace, so they could also reuse the cache. Callers could still pass --no-cache or select a cache with UV_CACHE_DIR if they want.
Describe alternatives you've considered
Patching rules_python downstream. I'll open up a PR to show what my patch looks like.
- Dominant language
- Starlark
- Stars
- 690
- Forks
- 722
- Avg merge
- 1d 55m
- Merged PRs (30d)
- 38
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from bazel-contrib/rules_python
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
bazel-contrib/rules_python#4164 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
bazel-contrib/rules_python#3821 ·
-
bazel-contrib/rules_python#4181 ·
-
Release 2.4.0 Opentype: release
Difficulty 4/5 3-5 days Newbie friendliness 25/100
bazel-contrib/rules_python#4175 · 3 comments ·
-
Release 2.3.4 Opentype: release
Difficulty 2/5 1-3 hours Newbie friendliness 35/100
bazel-contrib/rules_python#4173 · 2 comments ·