This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch fallback-no-constraints-context-files in repository https://gitbox.apache.org/repos/asf/airflow.git
commit d8f22192ce98c9bd8c4bb94f222a64798bba4461 Author: Jarek Potiuk <[email protected]> AuthorDate: Sat Mar 7 20:13:21 2026 +0100 Fallback to no constraint builds for docker-context-files installation When building PROD from docker-context-files - i.e. when we run main build with providers built from sources, we should fall back to no constraints build when there is a conflict with constraints. This is a follow up after #62378 --- Dockerfile | 22 ++++++++++++++++++++-- .../docker/install_from_docker_context_files.sh | 22 ++++++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index faeef2b3b54..46c22cb91c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -991,10 +991,28 @@ function install_airflow_and_providers_from_docker_context_files(){ fi set -x - ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} \ + if ! ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} \ ${ADDITIONAL_PIP_INSTALL_FLAGS} \ "${flags[@]}" \ - "${install_airflow_distribution[@]}" "${install_airflow_core_distribution[@]}" "${airflow_distributions[@]}" + "${install_airflow_distribution[@]}" "${install_airflow_core_distribution[@]}" "${airflow_distributions[@]}"; then + set +x + if [[ ${AIRFLOW_FALLBACK_NO_CONSTRAINTS_INSTALLATION} != "true" ]]; then + echo + echo "${COLOR_RED}Failing because constraints installation failed and fallback is disabled.${COLOR_RESET}" + echo + exit 1 + fi + echo + echo "${COLOR_YELLOW}Likely there are new dependencies conflicting with constraints.${COLOR_RESET}" + echo + echo "${COLOR_BLUE}Falling back to no-constraints installation.${COLOR_RESET}" + echo + set -x + ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} \ + ${ADDITIONAL_PIP_INSTALL_FLAGS} \ + "${install_airflow_distribution[@]}" "${install_airflow_core_distribution[@]}" \ + "${airflow_distributions[@]}" + fi set +x common::install_packaging_tools # We use pip check here to make sure that whatever `uv` installs, is also "correct" according to `pip` diff --git a/scripts/docker/install_from_docker_context_files.sh b/scripts/docker/install_from_docker_context_files.sh index 987582f35b6..0dc4262aa1a 100644 --- a/scripts/docker/install_from_docker_context_files.sh +++ b/scripts/docker/install_from_docker_context_files.sh @@ -116,10 +116,28 @@ function install_airflow_and_providers_from_docker_context_files(){ fi set -x - ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} \ + if ! ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} \ ${ADDITIONAL_PIP_INSTALL_FLAGS} \ "${flags[@]}" \ - "${install_airflow_distribution[@]}" "${install_airflow_core_distribution[@]}" "${airflow_distributions[@]}" + "${install_airflow_distribution[@]}" "${install_airflow_core_distribution[@]}" "${airflow_distributions[@]}"; then + set +x + if [[ ${AIRFLOW_FALLBACK_NO_CONSTRAINTS_INSTALLATION} != "true" ]]; then + echo + echo "${COLOR_RED}Failing because constraints installation failed and fallback is disabled.${COLOR_RESET}" + echo + exit 1 + fi + echo + echo "${COLOR_YELLOW}Likely there are new dependencies conflicting with constraints.${COLOR_RESET}" + echo + echo "${COLOR_BLUE}Falling back to no-constraints installation.${COLOR_RESET}" + echo + set -x + ${PACKAGING_TOOL_CMD} install ${EXTRA_INSTALL_FLAGS} \ + ${ADDITIONAL_PIP_INSTALL_FLAGS} \ + "${install_airflow_distribution[@]}" "${install_airflow_core_distribution[@]}" \ + "${airflow_distributions[@]}" + fi set +x common::install_packaging_tools # We use pip check here to make sure that whatever `uv` installs, is also "correct" according to `pip`
