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}"

Reply via email to