uv: lock() .run target for uv.lock omits existing lock and writes to runfiles
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 68/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- build-system
Direzione di ricerca
Start with _common_lock in python/uv/private/lock.bzl and the uv_lock.sh and uv_lock.bat launchers. Check how the existing lock is added to runfiles and how the launcher handles BUILD_WORKSPACE_DIRECTORY, then reproduce with the provided bazel run command. Done means the existing lock is available to uv and the command updates dev/uv.lock in the source tree.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Running bazel run <name>.run on a lock() target with a uv.lock output
(e.g. bazel run //dev:uv_lock.run -- --upgrade-package certifi==2026.1.4)
fails to update the workspace lockfile in place due to two bugs:
- Missing existing lock in runfiles:
_common_lockin
python/uv/private/lock.bzlpassesctx.files.existing_outputto the build
action'sinputs, but omits it from_RunLockInfo.runfiles. Becauseuv
runs in.runfiles/_mainwhere nouv.lockis present,uv lock
re-resolves all dependencies from scratch instead of incrementally updating
the existing lock. - Output written to
.runfilesinstead of the source tree: Unlike
uv pip compile(which accepts--output-file),uv lockalways reads and
writesuv.lockin the project directory relative to its working directory.
WhenBUILD_WORKSPACE_DIRECTORYis set,uv_lock.shanduv_lock.bat
executeuvimmediately without linking or copying{{project_lock}}to
${BUILD_WORKSPACE_DIRECTORY}/{{src_out}}. The updated lockfile is written
tobazel-bin/.../*.run.runfiles/_main/.../uv.lock, leaving the source tree
untouched.
Reproduction
#!/usr/bin/env bash
set -euo pipefail
git checkout -- dev/uv.lock
bazel run //dev:uv_lock.run -- --upgrade-package certifi==2026.1.4
changes=$(git diff dev/uv.lock | grep -c '^-version = ' || true)
if [[ "$changes" -eq 1 ]]; then
echo "PASS: dev/uv.lock updated 1 package as expected"
else
echo "FAIL: expected 1 package updated in dev/uv.lock, got $changes"
exit 1
fi
Running this prints:
FAIL: expected 1 package updated in dev/uv.lock, got 0
while bazel-bin/dev/uv_lock.run.runfiles/_main/dev/uv.lock contains a full
re-resolution of 18 packages.
- Lingua principale
- Starlark
- Stelle
- 688
- Fork
- 728
- Merge medio
- 18h
- PR unite (30g)
- 118
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bazel-contrib/rules_python
-
Broken links in the docsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
bazel-contrib/rules_python#4319 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
bazel-contrib/rules_python#4251 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bazel-contrib/rules_python#4164 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
need: repro
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
bazel-contrib/rules_python#4315 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
bazel-contrib/rules_python#4311 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bazel-contrib/rules_python
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
agent:Windows bug code-review MEDIUM tooling
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
mgradwohl/tasksmack#2960 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Link Checker ReportApertaautomated issue linkchecker report
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
QuantEcon/lecture-dp#68 ·
-
Area: Instruments Bug Difficulty: Low Priority: Low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DouglasNeuroInformatics/OpenDataCapture#1824 ·
I maintainer di solito rispondono entro 1 giorno
-
package_info fails analysis with --incompatible_stop_exporting_build_file_pathForse già presa @mkanat l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
bazelbuild/rules_license#184 ·