You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2026/09/07 21:39:35 UTC

(airflow) branch v3-3-test updated: [v3-3-test] Pin devel dependencies to uv.lock in provider compat CI jobs (#72581) (#72671)

This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-3-test by this push:
     new aac71070788 [v3-3-test] Pin devel dependencies to uv.lock in provider compat CI jobs (#72581) (#72671)
aac71070788 is described below

commit aac71070788e8abcc286752a2d35c8c08b553650
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Mon Sep 7 23:39:26 2026 +0200

    [v3-3-test] Pin devel dependencies to uv.lock in provider compat CI jobs (#72581) (#72671)
    
    (cherry picked from commit ab6c60c964b6ff2ac84c1ea52232a547c25d67fa)
    
    Signed-off-by: PoAn Yang <pa...@apache.org>
    Co-authored-by: PoAn Yang <pa...@apache.org>
---
 Dockerfile.ci                   | 6 +++++-
 scripts/docker/entrypoint_ci.sh | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/Dockerfile.ci b/Dockerfile.ci
index 8fd95319e1b..fab1aa1b132 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1402,9 +1402,13 @@ function determine_airflow_to_use() {
         # Generate constraints from uv.lock and use them to install development dependencies
         # via the Python script. --no-cache is needed - otherwise there is possibility of
         # overriding temporary environments by multiple parallel processes
+        # --all-packages: without it the export only covers the root project's dependencies.
+        # Anything that only a workspace member's dependency group pulls in, such
+        # as mcp through common.ai's pydantic-ai-slim[mcp], stays unpinned and resolves fresh
+        # from PyPI instead of following uv.lock.
         local constraint_file="/tmp/constraints-from-lock.txt"
         uv export --frozen --no-hashes --no-emit-project --no-emit-workspace --no-editable --no-header \
-            --no-annotate > "${constraint_file}" 2>/dev/null || true
+            --no-annotate --all-packages > "${constraint_file}" 2>/dev/null || true
         uv run --no-cache /opt/airflow/scripts/in_container/install_development_dependencies.py \
            --constraint "${constraint_file}"
         # Some packages might leave legacy typing module which causes test issues
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index 466b2bdc7b0..771801eee38 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -305,9 +305,13 @@ function determine_airflow_to_use() {
         # Generate constraints from uv.lock and use them to install development dependencies
         # via the Python script. --no-cache is needed - otherwise there is possibility of
         # overriding temporary environments by multiple parallel processes
+        # --all-packages: without it the export only covers the root project's dependencies.
+        # Anything that only a workspace member's dependency group pulls in, such
+        # as mcp through common.ai's pydantic-ai-slim[mcp], stays unpinned and resolves fresh
+        # from PyPI instead of following uv.lock.
         local constraint_file="/tmp/constraints-from-lock.txt"
         uv export --frozen --no-hashes --no-emit-project --no-emit-workspace --no-editable --no-header \
-            --no-annotate > "${constraint_file}" 2>/dev/null || true
+            --no-annotate --all-packages > "${constraint_file}" 2>/dev/null || true
         uv run --no-cache /opt/airflow/scripts/in_container/install_development_dependencies.py \
            --constraint "${constraint_file}"
         # Some packages might leave legacy typing module which causes test issues