This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new b1a69eaeaa1 Fix `uv export` missing `--no-emit-workspace` causing
parallel install lock issues (#64020)
b1a69eaeaa1 is described below
commit b1a69eaeaa1ecdfeeec6f2d1df0899faa2e881b8
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat Mar 21 09:38:47 2026 +0100
Fix `uv export` missing `--no-emit-workspace` causing parallel install lock
issues (#64020)
Without `--no-emit-workspace`, the constraint file generated by
`uv export` included workspace packages which forced installation
of newer versions of dependencies like pyiceberg into the shared
UV cache. When multiple parallel CI tasks ran simultaneously, this
caused installation lock contention in the distributed UV cache.
Adding `--no-emit-workspace` ensures only external dependencies
are emitted in the constraint file, avoiding unnecessary package
resolution that interferes with parallel task execution.
---
Dockerfile.ci | 2 +-
scripts/docker/entrypoint_ci.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 41b95641c1a..1b4e06ca043 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1345,7 +1345,7 @@ function determine_airflow_to_use() {
# via the Python script. --no-cache is needed - otherwise there is
possibility of
# overriding temporary environments by multiple parallel processes
local constraint_file="/tmp/constraints-from-lock.txt"
- uv export --frozen --no-hashes --no-emit-project --no-editable
--no-header \
+ uv export --frozen --no-hashes --no-emit-project --no-emit-workspace
--no-editable --no-header \
--no-annotate > "${constraint_file}" 2>/dev/null || true
uv run --no-cache
/opt/airflow/scripts/in_container/install_development_dependencies.py \
--constraint "${constraint_file}"
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index 38758c4a7d6..b3513b737b5 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -279,7 +279,7 @@ function determine_airflow_to_use() {
# via the Python script. --no-cache is needed - otherwise there is
possibility of
# overriding temporary environments by multiple parallel processes
local constraint_file="/tmp/constraints-from-lock.txt"
- uv export --frozen --no-hashes --no-emit-project --no-editable
--no-header \
+ uv export --frozen --no-hashes --no-emit-project --no-emit-workspace
--no-editable --no-header \
--no-annotate > "${constraint_file}" 2>/dev/null || true
uv run --no-cache
/opt/airflow/scripts/in_container/install_development_dependencies.py \
--constraint "${constraint_file}"