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 2025/05/06 09:48:57 UTC

(airflow) branch main updated: Run parallel tests for ARM platform (#50198)

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 3198aad1bfd Run parallel tests for ARM platform (#50198)
3198aad1bfd is described below

commit 3198aad1bfd7cbf8b3de56c482dc9d96e00d3a69
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Tue May 6 11:48:50 2025 +0200

    Run parallel tests for ARM platform (#50198)
    
    Since we have `ubintu22.04-arm` public runners available, we should
    be able to run a set of parallel tests for ARM - this would make our
    ARM images move out of experimental phase.
    
    We are not running "all" tests - only those that make sense to run
    on ARM for "production" quality.
    
    MySQL tests have some timeouts and run longer on ARM, that's why we
    do not run MySQL tests on ARM as well.
    
    We can also get rid of the "ARM collection" test that was introduced
    to test if just **collection** of tests when we remove packages that
    shoud not be installed on ARM works. But if we are running actual
    pytest tests on ARM, we do not need to run those tests any more.
---
 .github/workflows/additional-ci-image-checks.yml   |  43 +--
 .github/workflows/additional-prod-image-tests.yml  |  22 +-
 .github/workflows/airflow-distributions-tests.yml  |  12 +-
 .github/workflows/basic-tests.yml                  |  16 +-
 .github/workflows/{ci.yml => ci-amd.yml}           | 125 ++++++--
 .github/workflows/{ci.yml => ci-arm.yml}           | 336 +++------------------
 .github/workflows/ci-image-build.yml               |  14 +-
 .github/workflows/ci-image-checks.yml              |  28 +-
 .github/workflows/finalize-tests.yml               |  85 +-----
 .github/workflows/generate-constraints.yml         |  12 +-
 .github/workflows/helm-tests.yml                   |  14 +-
 .github/workflows/integration-system-tests.yml     |  18 +-
 .github/workflows/k8s-tests.yml                    |  10 +-
 .github/workflows/prod-image-build.yml             |   8 +-
 .github/workflows/prod-image-extra-checks.yml      |  16 +-
 .github/workflows/publish-docs-to-s3.yml           |   6 +-
 .github/workflows/push-image-cache.yml             |  20 +-
 .github/workflows/run-unit-tests.yml               |  12 +-
 .github/workflows/special-tests.yml                |  85 ++----
 .github/workflows/test-providers.yml               |  14 +-
 Dockerfile.ci                                      |   7 -
 .../doc/images/output_testing_core-tests.svg       |  90 +++---
 .../doc/images/output_testing_core-tests.txt       |   2 +-
 .../doc/images/output_testing_providers-tests.svg  | 108 ++++---
 .../doc/images/output_testing_providers-tests.txt  |   2 +-
 .../airflow_breeze/commands/testing_commands.py    |  12 -
 .../commands/testing_commands_config.py            |   1 -
 .../src/airflow_breeze/params/shell_params.py      |   2 -
 scripts/ci/testing/run_unit_tests.sh               |  10 -
 scripts/docker/entrypoint_ci.sh                    |   7 -
 scripts/in_container/remove_arm_packages.py        |  50 ---
 31 files changed, 388 insertions(+), 799 deletions(-)

diff --git a/.github/workflows/additional-ci-image-checks.yml b/.github/workflows/additional-ci-image-checks.yml
index 6ef786e8a86..296e58fa23a 100644
--- a/.github/workflows/additional-ci-image-checks.yml
+++ b/.github/workflows/additional-ci-image-checks.yml
@@ -20,12 +20,12 @@ name: Additional CI image checks
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining AMD public runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
-      arm-runners:
-        description: "The array of labels (in json form) determining ARM public runners."
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       python-versions:
@@ -99,12 +99,11 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ inputs.amd-runners }}
-      arm-runners: ${{ inputs.arm-runners }}
+      runners: ${{ inputs.runners }}
       cache-type: "Early"
       include-prod-images: "false"
       push-latest-images: "false"
-      platform: "linux/amd64"
+      platform: ${{ inputs.platform }}
       python-versions: ${{ inputs.python-versions }}
       branch: ${{ inputs.branch }}
       constraints-branch: ${{ inputs.constraints-branch }}
@@ -120,7 +119,7 @@ jobs:
   check-that-image-builds-quickly:
     timeout-minutes: 11
     name: Check that image builds quickly
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       UPGRADE_TO_NEWER_DEPENDENCIES: false
       PYTHON_MAJOR_MINOR_VERSION: ${{ inputs.default-python-version }}
@@ -129,6 +128,7 @@ jobs:
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       GITHUB_USERNAME: ${{ github.actor }}
       VERBOSE: "true"
+      PLATFORM: ${{ inputs.platform }}
     if: inputs.branch == 'main'
     steps:
       - name: "Cleanup repo"
@@ -150,29 +150,4 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         run: echo "$GITHUB_TOKEN" | docker login ghcr.io -u "$actor" --password-stdin
       - name: "Check that image builds quickly"
-        run: breeze shell --max-time 600 --platform "linux/amd64"
-
-# This is only a check if ARM images are successfully building when committer runs PR from
-# Apache repository. This is needed in case you want to fix failing cache job in "canary" run
-# There is no point in running this one in "canary" run, because the above step is doing the
-# same build anyway.
-#  build-ci-arm-images:
-#    name: Build CI ARM images
-#    uses: ./.github/workflows/ci-image-build.yml
-#    permissions:
-#      contents: read
-#      packages: write
-#    with:
-#      amd-runners: ${{ inputs.amd-runners }}
-#      arm-runners: ${{ inputs.arm-runners }}
-#      platform: "linux/arm64"
-#      push-image: "false"
-#      upload-image-artifact: "true"
-#      upload-mount-cache-artifact: ${{ inputs.canary-run }}
-#      python-versions: ${{ inputs.python-versions }}
-#      branch: ${{ inputs.branch }}
-#      constraints-branch: ${{ inputs.constraints-branch }}
-#      use-uv: ${{ inputs.use-uv }}
-#      upgrade-to-newer-dependencies: ${{ inputs.upgrade-to-newer-dependencies }}
-#      docker-cache: ${{ inputs.docker-cache }}
-#      disable-airflow-repo-cache: ${{ inputs.disable-airflow-repo-cache }}
+        run: breeze shell --max-time 600 --platform "${PLATFORM}"
diff --git a/.github/workflows/additional-prod-image-tests.yml b/.github/workflows/additional-prod-image-tests.yml
index 3834efad76e..489b2967af3 100644
--- a/.github/workflows/additional-prod-image-tests.yml
+++ b/.github/workflows/additional-prod-image-tests.yml
@@ -20,8 +20,12 @@ name: Additional PROD image tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining AMD public runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       default-branch:
@@ -63,7 +67,8 @@ jobs:
     name: PROD image extra checks (main)
     uses: ./.github/workflows/prod-image-extra-checks.yml
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       python-versions: "[ '${{ inputs.default-python-version }}' ]"
       default-python-version: ${{ inputs.default-python-version }}
       branch: ${{ inputs.default-branch }}
@@ -78,7 +83,8 @@ jobs:
     name: PROD image extra checks (release)
     uses: ./.github/workflows/prod-image-extra-checks.yml
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       python-versions: "[ '${{ inputs.default-python-version }}' ]"
       default-python-version: ${{ inputs.default-python-version }}
       branch: ${{ inputs.default-branch }}
@@ -92,7 +98,7 @@ jobs:
   test-examples-of-prod-image-building:
     timeout-minutes: 60
     name: "Test examples of PROD image building"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       GITHUB_REPOSITORY: ${{ github.repository }}
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -112,7 +118,7 @@ jobs:
       - name: "Prepare breeze & PROD image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           image-type: "prod"
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
@@ -130,7 +136,7 @@ jobs:
   test-docker-compose-quick-start:
     timeout-minutes: 60
     name: "Docker Compose quick start with PROD image verifying"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
       GITHUB_REPOSITORY: ${{ github.repository }}
@@ -149,7 +155,7 @@ jobs:
       - name: "Prepare breeze & PROD image: ${{ env.PYTHON_MAJOR_MINOR_VERSION }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           image-type: "prod"
           python: ${{ env.PYTHON_MAJOR_MINOR_VERSION }}
           use-uv: ${{ inputs.use-uv }}
diff --git a/.github/workflows/airflow-distributions-tests.yml b/.github/workflows/airflow-distributions-tests.yml
index 77b0e76462a..a7156ef98df 100644
--- a/.github/workflows/airflow-distributions-tests.yml
+++ b/.github/workflows/airflow-distributions-tests.yml
@@ -21,8 +21,12 @@ on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
       # Static inputs defined to choose which distribution to test to run
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       distribution-name:
@@ -59,7 +63,7 @@ jobs:
   distributions-tests:
     timeout-minutes: 80
     name: ${{ inputs.distribution-name }}:P${{ matrix.python-version }} tests
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -82,7 +86,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ matrix.python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ matrix.python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Cleanup dist files"
diff --git a/.github/workflows/basic-tests.yml b/.github/workflows/basic-tests.yml
index cdd619c9f4c..5d931b00186 100644
--- a/.github/workflows/basic-tests.yml
+++ b/.github/workflows/basic-tests.yml
@@ -20,8 +20,8 @@ name: Basic tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
       run-ui-tests:
@@ -66,7 +66,7 @@ jobs:
   run-breeze-tests:
     timeout-minutes: 10
     name: Breeze unit tests
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     steps:
       - name: "Cleanup repo"
         shell: bash
@@ -87,7 +87,7 @@ jobs:
   tests-ui:
     timeout-minutes: 15
     name: React UI tests
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     if: inputs.run-ui-tests == 'true'
     steps:
       - name: "Cleanup repo"
@@ -155,7 +155,7 @@ jobs:
   install-pre-commit:
     timeout-minutes: 5
     name: "Install pre-commit for cache"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
     steps:
@@ -183,7 +183,7 @@ jobs:
   static-checks-basic-checks-only:
     timeout-minutes: 30
     name: "Static checks: basic checks only"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     needs: install-pre-commit
     if: inputs.basic-checks-only == 'true'
     steps:
@@ -236,7 +236,7 @@ jobs:
   upgrade-check:
     timeout-minutes: 45
     name: "Upgrade checks"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     needs: install-pre-commit
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
@@ -306,7 +306,7 @@ jobs:
   test-airflow-release-commands:
     timeout-minutes: 80
     name: "Test Airflow release commands"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
       GITHUB_REPOSITORY: ${{ github.repository }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci-amd.yml
similarity index 90%
copy from .github/workflows/ci.yml
copy to .github/workflows/ci-amd.yml
index ab0e577e944..a788319e496 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci-amd.yml
@@ -16,7 +16,7 @@
 # under the License.
 #
 ---
-name: Tests
+name: Tests AMD
 on:  # yamllint disable-line rule:truthy
   schedule:
     - cron: '28 1,7,13,19 * * *'
@@ -43,7 +43,7 @@ env:
   VERBOSE: "true"
 
 concurrency:
-  group: ci-${{ github.event.pull_request.number || github.ref }}
+  group: ci-amd-${{ github.event.pull_request.number || github.ref }}
   cancel-in-progress: true
 
 jobs:
@@ -173,7 +173,7 @@ jobs:
     needs: [build-info]
     uses: ./.github/workflows/basic-tests.yml
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
       run-ui-tests: ${{needs.build-info.outputs.run-ui-tests}}
       run-www-tests: ${{needs.build-info.outputs.run-www-tests}}
       needs-api-codegen: ${{needs.build-info.outputs.needs-api-codegen}}
@@ -194,8 +194,7 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
       platform: "linux/amd64"
       push-image: "false"
       upload-image-artifact: "true"
@@ -219,8 +218,8 @@ jobs:
       id-token: write
     if: needs.build-info.outputs.canary-run == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       python-versions: ${{ needs.build-info.outputs.python-versions }}
       branch: ${{ needs.build-info.outputs.default-branch }}
       constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }}
@@ -241,7 +240,8 @@ jobs:
     uses: ./.github/workflows/generate-constraints.yml
     if: needs.build-info.outputs.ci-image-build == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
       # generate no providers constraints only in canary builds - they take quite some time to generate
       # they are not needed for regular builds, they are only needed to update constraints in canaries
@@ -257,7 +257,8 @@ jobs:
       id-token: write
       contents: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       needs-mypy: ${{ needs.build-info.outputs.needs-mypy }}
       mypy-checks: ${{ needs.build-info.outputs.mypy-checks }}
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
@@ -293,7 +294,8 @@ jobs:
       needs.build-info.outputs.latest-versions-only != 'true' &&
       needs.build-info.outputs.run-tests == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       canary-run: ${{ needs.build-info.outputs.canary-run }}
       default-python-version: ${{ needs.build-info.outputs.default-python-version }}
       upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
@@ -315,7 +317,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       helm-test-packages: ${{ needs.build-info.outputs.helm-test-packages }}
       default-python-version: ${{ needs.build-info.outputs.default-python-version }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -332,7 +335,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "postgres"
       test-name: "Postgres"
       test-scope: "DB"
@@ -359,7 +363,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "postgres"
       test-name: "Postgres"
       test-scope: "DB"
@@ -386,7 +391,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "mysql"
       test-name: "MySQL"
       test-scope: "DB"
@@ -413,7 +419,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "mysql"
       test-name: "MySQL"
       test-scope: "DB"
@@ -441,7 +448,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "sqlite"
       test-name: "Sqlite"
       test-name-separator: ""
@@ -470,7 +478,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "sqlite"
       test-name: "Sqlite"
       test-name-separator: ""
@@ -500,7 +509,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "sqlite"
       test-name: ""
       test-name-separator: ""
@@ -528,7 +538,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       backend: "sqlite"
       test-name: ""
       test-name-separator: ""
@@ -562,7 +573,8 @@ jobs:
        needs.build-info.outputs.full-tests-needed == 'true')
     with:
       default-branch: ${{ needs.build-info.outputs.default-branch }}
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       core-test-types-list-as-strings-in-json: >
         ${{ needs.build-info.outputs.core-test-types-list-as-strings-in-json }}
       providers-test-types-list-as-strings-in-json: >
@@ -587,7 +599,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       testable-core-integrations: ${{ needs.build-info.outputs.testable-core-integrations }}
       testable-providers-integrations: ${{ needs.build-info.outputs.testable-providers-integrations }}
       run-system-tests: ${{ needs.build-info.outputs.run-tests }}
@@ -610,7 +623,8 @@ jobs:
     if: >
       needs.build-info.outputs.run-tests == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       test-name: "LowestDeps"
       force-lowest-dependencies: "true"
       test-scope: "All"
@@ -638,7 +652,8 @@ jobs:
       packages: read
     if: needs.build-info.outputs.run-tests == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       test-name: "LowestDeps"
       force-lowest-dependencies: "true"
       test-scope: "All"
@@ -667,9 +682,9 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      build-type: "Regular"
+      runners: ${{ needs.build-info.outputs.amd-runners }}
       platform: "linux/amd64"
+      build-type: "Regular"
       push-image: "false"
       upload-image-artifact: "true"
       upload-package-artifact: "true"
@@ -688,7 +703,8 @@ jobs:
     needs: [build-info, build-prod-images, generate-constraints]
     uses: ./.github/workflows/additional-prod-image-tests.yml
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       default-branch: ${{ needs.build-info.outputs.default-branch }}
       constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }}
       upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
@@ -707,8 +723,8 @@ jobs:
       contents: read
       packages: read
     with:
+      runners: ${{ needs.build-info.outputs.amd-runners }}
       platform: "linux/amd64"
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
       include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -726,7 +742,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       default-python-version: ${{ needs.build-info.outputs.default-python-version }}
       python-versions: ${{ needs.build-info.outputs.python-versions }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -747,7 +764,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       default-python-version: ${{ needs.build-info.outputs.default-python-version }}
       python-versions: ${{ needs.build-info.outputs.python-versions }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -794,8 +812,8 @@ jobs:
       - tests-with-lowest-direct-resolution-providers
     uses: ./.github/workflows/finalize-tests.yml
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
+      platform: "linux/amd64"
       python-versions: ${{ needs.build-info.outputs.python-versions }}
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
       branch: ${{ needs.build-info.outputs.default-branch }}
@@ -825,10 +843,51 @@ jobs:
           # yamllint disable rule:line-length
           payload: |
             channel: "internal-airflow-ci-cd"
-            text: "🚨🕒 Scheduled CI Failure Alert 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
+            text: "🚨🕒 Scheduled CI Failure Alert (AMD) 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
             blocks:
               - type: "section"
                 text:
                   type: "mrkdwn"
-                  text: "🚨🕒 Scheduled CI Failure Alert 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
+                  text: "🚨🕒 Scheduled CI Failure Alert (AMD) 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
           # yamllint enable rule:line-length
+
+  summarize-warnings:
+    timeout-minutes: 15
+    name: "Summarize warnings"
+    runs-on: ${{ fromJSON(needs.build-info.outputs.amd-runners) }}
+    if: needs.build-info.outputs.run-tests == 'true'
+    steps:
+      - name: "Cleanup repo"
+        shell: bash
+        run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
+      - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
+        uses: actions/checkout@v4
+        with:
+          persist-credentials: false
+      - name: "Cleanup docker"
+        run: ./scripts/ci/cleanup_docker.sh
+      - name: "Free up disk space"
+        shell: bash
+        run: ./scripts/tools/free_up_disk_space.sh
+      - name: "Download all test warning artifacts from the current build"
+        uses: actions/download-artifact@v4
+        with:
+          path: ./artifacts
+          pattern: test-warnings-*
+      - name: "Setup python"
+        uses: actions/setup-python@v5
+        with:
+          python-version: ${{ inputs.default-python-version }}
+      - name: "Summarize all warnings"
+        run: |
+          ./scripts/ci/testing/summarize_captured_warnings.py ./artifacts \
+            --pattern "**/warnings-*.txt" \
+            --output ./files
+      - name: "Upload artifact for summarized warnings"
+        uses: actions/upload-artifact@v4
+        with:
+          name: test-summarized-amd-runner-warnings
+          path: ./files/warn-summary-*.txt
+          retention-days: 7
+          if-no-files-found: ignore
+          overwrite: true
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci-arm.yml
similarity index 63%
rename from .github/workflows/ci.yml
rename to .github/workflows/ci-arm.yml
index ab0e577e944..5b8cee0a432 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci-arm.yml
@@ -16,21 +16,14 @@
 # under the License.
 #
 ---
-name: Tests
+name: Tests ARM
 on:  # yamllint disable-line rule:truthy
   schedule:
-    - cron: '28 1,7,13,19 * * *'
+    - cron: '28 3,9,15,21 * * *'
   push:
     branches:
       - v[0-9]+-[0-9]+-test
       - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
-  pull_request:
-    branches:
-      - main
-      - v[0-9]+-[0-9]+-test
-      - v[0-9]+-[0-9]+-stable
-      - providers-[a-z]+-?[a-z]*/v[0-9]+-[0-9]+
-    types: [opened, reopened, synchronize, ready_for_review]
   workflow_dispatch:
 permissions:
   # All other permissions are set to none by default
@@ -43,7 +36,7 @@ env:
   VERBOSE: "true"
 
 concurrency:
-  group: ci-${{ github.event.pull_request.number || github.ref }}
+  group: ci-arm-${{ github.event.pull_request.number || github.ref }}
   cancel-in-progress: true
 
 jobs:
@@ -173,7 +166,7 @@ jobs:
     needs: [build-info]
     uses: ./.github/workflows/basic-tests.yml
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
       run-ui-tests: ${{needs.build-info.outputs.run-ui-tests}}
       run-www-tests: ${{needs.build-info.outputs.run-www-tests}}
       needs-api-codegen: ${{needs.build-info.outputs.needs-api-codegen}}
@@ -194,9 +187,8 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
-      platform: "linux/amd64"
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       push-image: "false"
       upload-image-artifact: "true"
       upload-mount-cache-artifact: ${{ needs.build-info.outputs.canary-run }}
@@ -219,8 +211,8 @@ jobs:
       id-token: write
     if: needs.build-info.outputs.canary-run == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       python-versions: ${{ needs.build-info.outputs.python-versions }}
       branch: ${{ needs.build-info.outputs.default-branch }}
       constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }}
@@ -241,7 +233,8 @@ jobs:
     uses: ./.github/workflows/generate-constraints.yml
     if: needs.build-info.outputs.ci-image-build == 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
       # generate no providers constraints only in canary builds - they take quite some time to generate
       # they are not needed for regular builds, they are only needed to update constraints in canaries
@@ -249,37 +242,6 @@ jobs:
       debug-resources: ${{ needs.build-info.outputs.debug-resources }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
 
-  ci-image-checks:
-    name: "CI image checks"
-    needs: [build-info, build-ci-images]
-    uses: ./.github/workflows/ci-image-checks.yml
-    permissions:
-      id-token: write
-      contents: read
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      needs-mypy: ${{ needs.build-info.outputs.needs-mypy }}
-      mypy-checks: ${{ needs.build-info.outputs.mypy-checks }}
-      python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
-      branch: ${{ needs.build-info.outputs.default-branch }}
-      canary-run: ${{ needs.build-info.outputs.canary-run }}
-      default-python-version: ${{ needs.build-info.outputs.default-python-version }}
-      docs-list-as-string: ${{ needs.build-info.outputs.docs-list-as-string }}
-      latest-versions-only: ${{ needs.build-info.outputs.latest-versions-only }}
-      basic-checks-only: ${{ needs.build-info.outputs.basic-checks-only }}
-      upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
-      skip-pre-commits: ${{ needs.build-info.outputs.skip-pre-commits }}
-      ci-image-build: ${{ needs.build-info.outputs.ci-image-build }}
-      include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      docs-build: ${{ needs.build-info.outputs.docs-build }}
-      needs-api-codegen: ${{ needs.build-info.outputs.needs-api-codegen }}
-      default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-    secrets:
-      DOCS_AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_AWS_ACCESS_KEY_ID }}
-      DOCS_AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_AWS_SECRET_ACCESS_KEY }}
 
   providers:
     name: "provider distributions tests"
@@ -290,10 +252,10 @@ jobs:
       packages: read
     if: >
       needs.build-info.outputs.skip-providers-tests != 'true' &&
-      needs.build-info.outputs.latest-versions-only != 'true' &&
-      needs.build-info.outputs.run-tests == 'true'
+      needs.build-info.outputs.latest-versions-only != 'true'
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       canary-run: ${{ needs.build-info.outputs.canary-run }}
       default-python-version: ${{ needs.build-info.outputs.default-python-version }}
       upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
@@ -315,7 +277,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       helm-test-packages: ${{ needs.build-info.outputs.helm-test-packages }}
       default-python-version: ${{ needs.build-info.outputs.default-python-version }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -332,7 +295,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       backend: "postgres"
       test-name: "Postgres"
       test-scope: "DB"
@@ -359,7 +323,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       backend: "postgres"
       test-name: "Postgres"
       test-scope: "DB"
@@ -378,61 +343,6 @@ jobs:
       use-uv: ${{ needs.build-info.outputs.use-uv }}
     if: needs.build-info.outputs.run-tests == 'true'
 
-  tests-mysql-core:
-    name: "MySQL tests: core"
-    uses: ./.github/workflows/run-unit-tests.yml
-    needs: [build-info, build-ci-images]
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      backend: "mysql"
-      test-name: "MySQL"
-      test-scope: "DB"
-      test-group: "core"
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      backend-versions: ${{ needs.build-info.outputs.mysql-versions }}
-      excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
-      excludes: ${{ needs.build-info.outputs.mysql-exclude }}
-      test-types-as-strings-in-json: >
-        ${{ needs.build-info.outputs.core-test-types-list-as-strings-in-json }}
-      include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      run-migration-tests: "true"
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      skip-providers-tests: ${{ needs.build-info.outputs.skip-providers-tests }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-    if: needs.build-info.outputs.run-tests == 'true'
-
-  tests-mysql-providers:
-    name: "MySQL tests: providers"
-    uses: ./.github/workflows/run-unit-tests.yml
-    needs: [build-info, build-ci-images]
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      backend: "mysql"
-      test-name: "MySQL"
-      test-scope: "DB"
-      test-group: "providers"
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      backend-versions: ${{ needs.build-info.outputs.mysql-versions }}
-      excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
-      excludes: ${{ needs.build-info.outputs.mysql-exclude }}
-      test-types-as-strings-in-json: >
-        ${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
-      include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      run-migration-tests: "true"
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      skip-providers-tests: ${{ needs.build-info.outputs.skip-providers-tests }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-    if: needs.build-info.outputs.run-tests == 'true'
-
-
   tests-sqlite-core:
     name: "Sqlite tests: core"
     uses: ./.github/workflows/run-unit-tests.yml
@@ -441,7 +351,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       backend: "sqlite"
       test-name: "Sqlite"
       test-name-separator: ""
@@ -470,7 +381,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       backend: "sqlite"
       test-name: "Sqlite"
       test-name-separator: ""
@@ -500,7 +412,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       backend: "sqlite"
       test-name: ""
       test-name-separator: ""
@@ -528,7 +441,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       backend: "sqlite"
       test-name: ""
       test-name-separator: ""
@@ -548,115 +462,6 @@ jobs:
       use-uv: ${{ needs.build-info.outputs.use-uv }}
     if: needs.build-info.outputs.run-tests == 'true'
 
-  tests-special:
-    name: "Special tests"
-    uses: ./.github/workflows/special-tests.yml
-    needs: [build-info, build-ci-images]
-    permissions:
-      contents: read
-      packages: read
-    if: >
-      needs.build-info.outputs.run-tests == 'true' &&
-      (needs.build-info.outputs.canary-run == 'true' ||
-       needs.build-info.outputs.upgrade-to-newer-dependencies != 'false' ||
-       needs.build-info.outputs.full-tests-needed == 'true')
-    with:
-      default-branch: ${{ needs.build-info.outputs.default-branch }}
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      core-test-types-list-as-strings-in-json: >
-        ${{ needs.build-info.outputs.core-test-types-list-as-strings-in-json }}
-      providers-test-types-list-as-strings-in-json: >
-        ${{ needs.build-info.outputs.providers-test-types-list-as-strings-in-json }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      default-python-version: ${{ needs.build-info.outputs.default-python-version }}
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }}
-      excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
-      canary-run: ${{ needs.build-info.outputs.canary-run }}
-      upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
-      include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
-      skip-providers-tests: ${{ needs.build-info.outputs.skip-providers-tests }}
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-
-  tests-integration-system:
-    name: Integration and System Tests
-    needs: [build-info, build-ci-images]
-    uses: ./.github/workflows/integration-system-tests.yml
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      testable-core-integrations: ${{ needs.build-info.outputs.testable-core-integrations }}
-      testable-providers-integrations: ${{ needs.build-info.outputs.testable-providers-integrations }}
-      run-system-tests: ${{ needs.build-info.outputs.run-tests }}
-      default-python-version: ${{ needs.build-info.outputs.default-python-version }}
-      default-postgres-version: ${{ needs.build-info.outputs.default-postgres-version }}
-      default-mysql-version: ${{ needs.build-info.outputs.default-mysql-version }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      skip-providers-tests: ${{ needs.build-info.outputs.skip-providers-tests }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-    if: needs.build-info.outputs.run-tests == 'true'
-
-  tests-with-lowest-direct-resolution-core:
-    name: "Low dep tests:core"
-    needs: [build-info, build-ci-images]
-    uses: ./.github/workflows/run-unit-tests.yml
-    permissions:
-      contents: read
-      packages: read
-    if: >
-      needs.build-info.outputs.run-tests == 'true'
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      test-name: "LowestDeps"
-      force-lowest-dependencies: "true"
-      test-scope: "All"
-      test-group: "core"
-      backend: "sqlite"
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      backend-versions: "['${{ needs.build-info.outputs.default-postgres-version }}']"
-      excluded-providers-as-string: ""
-      excludes: "[]"
-      test-types-as-strings-in-json: >
-        ${{ needs.build-info.outputs.core-test-types-list-as-strings-in-json }}
-      include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      monitor-delay-time-in-seconds: 120
-      skip-providers-tests: ${{ needs.build-info.outputs.skip-providers-tests }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-
-  tests-with-lowest-direct-resolution-providers:
-    name: "Low dep tests: providers"
-    needs: [build-info, build-ci-images]
-    uses: ./.github/workflows/run-unit-tests.yml
-    permissions:
-      contents: read
-      packages: read
-    if: needs.build-info.outputs.run-tests == 'true'
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      test-name: "LowestDeps"
-      force-lowest-dependencies: "true"
-      test-scope: "All"
-      test-group: "providers"
-      backend: "sqlite"
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      backend-versions: "['${{ needs.build-info.outputs.default-postgres-version }}']"
-      excluded-providers-as-string: ${{ needs.build-info.outputs.excluded-providers-as-string }}
-      excludes: "[]"
-      test-types-as-strings-in-json: >
-        ${{ needs.build-info.outputs.individual-providers-test-types-list-as-strings-in-json }}
-      include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
-      run-coverage: ${{ needs.build-info.outputs.run-coverage }}
-      debug-resources: ${{ needs.build-info.outputs.debug-resources }}
-      monitor-delay-time-in-seconds: 120
-      skip-providers-tests: ${{ needs.build-info.outputs.skip-providers-tests }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-
   build-prod-images:
     name: Build PROD images
     needs: [build-info, build-ci-images, generate-constraints]
@@ -667,9 +472,9 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       build-type: "Regular"
-      platform: "linux/amd64"
       push-image: "false"
       upload-image-artifact: "true"
       upload-package-artifact: "true"
@@ -683,22 +488,6 @@ jobs:
       disable-airflow-repo-cache: ${{ needs.build-info.outputs.disable-airflow-repo-cache }}
       prod-image-build: ${{ needs.build-info.outputs.prod-image-build }}
 
-  additional-prod-image-tests:
-    name: "Additional PROD image tests"
-    needs: [build-info, build-prod-images, generate-constraints]
-    uses: ./.github/workflows/additional-prod-image-tests.yml
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      default-branch: ${{ needs.build-info.outputs.default-branch }}
-      constraints-branch: ${{ needs.build-info.outputs.default-constraints-branch }}
-      upgrade-to-newer-dependencies: ${{ needs.build-info.outputs.upgrade-to-newer-dependencies }}
-      docker-cache: ${{ needs.build-info.outputs.docker-cache }}
-      disable-airflow-repo-cache: ${{ needs.build-info.outputs.disable-airflow-repo-cache }}
-      default-python-version: ${{ needs.build-info.outputs.default-python-version }}
-      canary-run: ${{ needs.build-info.outputs.canary-run }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-    if: needs.build-info.outputs.prod-image-build == 'true'
-
   tests-kubernetes:
     name: "Kubernetes tests"
     uses: ./.github/workflows/k8s-tests.yml
@@ -707,8 +496,8 @@ jobs:
       contents: read
       packages: read
     with:
-      platform: "linux/amd64"
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
       include-success-outputs: ${{ needs.build-info.outputs.include-success-outputs }}
       use-uv: ${{ needs.build-info.outputs.use-uv }}
@@ -718,48 +507,6 @@ jobs:
       ( needs.build-info.outputs.run-kubernetes-tests == 'true' ||
       needs.build-info.outputs.needs-helm-tests == 'true')
 
-  tests-task-sdk:
-    name: "Task SDK tests"
-    uses: ./.github/workflows/airflow-distributions-tests.yml
-    needs: [build-info, build-ci-images]
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      default-python-version: ${{ needs.build-info.outputs.default-python-version }}
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-      canary-run: ${{ needs.build-info.outputs.canary-run }}
-      distribution-name: "task-sdk"
-      distribution-cmd-format: "prepare-task-sdk-distributions"
-      test-type: "task-sdk-tests"
-    if: >
-      ( needs.build-info.outputs.run-task-sdk-tests == 'true' ||
-      needs.build-info.outputs.run-tests == 'true' &&
-      needs.build-info.outputs.only-new-ui-files != 'true')
-
-  tests-airflow-ctl:
-    name: "Airflow CTL tests"
-    uses: ./.github/workflows/airflow-distributions-tests.yml
-    needs: [build-info, build-ci-images]
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      default-python-version: ${{ needs.build-info.outputs.default-python-version }}
-      python-versions: ${{ needs.build-info.outputs.python-versions }}
-      use-uv: ${{ needs.build-info.outputs.use-uv }}
-      canary-run: ${{ needs.build-info.outputs.canary-run }}
-      distribution-name: "airflow-ctl"
-      distribution-cmd-format: "prepare-airflow-ctl-distributions"
-      test-type: "airflow-ctl-tests"
-    if: >
-      ( needs.build-info.outputs.run-airflow-ctl-tests == 'true' ||
-      needs.build-info.outputs.run-tests == 'true' &&
-      needs.build-info.outputs.only-new-ui-files != 'true')
-
   finalize-tests:
     name: Finalize tests
     permissions:
@@ -769,33 +516,24 @@ jobs:
     if: always() && !failure() && !cancelled()
     needs:
       - additional-ci-image-checks
-      - additional-prod-image-tests
       - basic-tests
       - build-info
-      - build-prod-images
-      - ci-image-checks
+      - basic-tests
       - generate-constraints
+      - build-prod-images
       - providers
       - tests-helm
-      - tests-integration-system
       - tests-kubernetes
-      - tests-mysql-core
-      - tests-mysql-providers
       - tests-non-db-core
       - tests-non-db-providers
       - tests-postgres-core
       - tests-postgres-providers
-      # - tests-special
       - tests-sqlite-core
       - tests-sqlite-providers
-      - tests-task-sdk
-      - tests-airflow-ctl
-      - tests-with-lowest-direct-resolution-core
-      - tests-with-lowest-direct-resolution-providers
     uses: ./.github/workflows/finalize-tests.yml
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
+      runners: ${{ needs.build-info.outputs.arm-runners }}
+      platform: "linux/arm64"
       python-versions: ${{ needs.build-info.outputs.python-versions }}
       python-versions-list-as-string: ${{ needs.build-info.outputs.python-versions-list-as-string }}
       branch: ${{ needs.build-info.outputs.default-branch }}
@@ -825,10 +563,10 @@ jobs:
           # yamllint disable rule:line-length
           payload: |
             channel: "internal-airflow-ci-cd"
-            text: "🚨🕒 Scheduled CI Failure Alert 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
+            text: "🚨🕒 Scheduled CI Failure Alert (ARM) 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
             blocks:
               - type: "section"
                 text:
                   type: "mrkdwn"
-                  text: "🚨🕒 Scheduled CI Failure Alert 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
+                  text: "🚨🕒 Scheduled CI Failure Alert (ARM) 🕒🚨\n\n*Details:* <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|View the failure log>"
           # yamllint enable rule:line-length
diff --git a/.github/workflows/ci-image-build.yml b/.github/workflows/ci-image-build.yml
index 9c032fbff37..d531ffebebf 100644
--- a/.github/workflows/ci-image-build.yml
+++ b/.github/workflows/ci-image-build.yml
@@ -20,12 +20,8 @@ name: Build CI images
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
-        required: true
-        type: string
-      arm-runners:
-        description: "The array of labels (in json form) determining public ARM runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
       target-commit-sha:
@@ -106,11 +102,7 @@ jobs:
         python-version: ${{ fromJSON(inputs.python-versions) || fromJSON('[""]') }}
     timeout-minutes: 110
     name: "Build CI ${{ inputs.platform }} image ${{ matrix.python-version }}"
-    # NOTE!!!!! This has to be put in one line for runs-on to recognize the "fromJSON" properly !!!!
-    # adding space before (with >) apparently turns the `runs-on` processed line into a string "Array"
-    # instead of an array of strings.
-    # yamllint disable-line rule:line-length
-    runs-on: ${{ (inputs.platform == 'linux/amd64') && fromJSON(inputs.amd-runners) || fromJSON(inputs.arm-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       BACKEND: sqlite
       PYTHON_MAJOR_MINOR_VERSION: ${{ matrix.python-version }}
diff --git a/.github/workflows/ci-image-checks.yml b/.github/workflows/ci-image-checks.yml
index 70d1e2b8470..7e5a7029117 100644
--- a/.github/workflows/ci-image-checks.yml
+++ b/.github/workflows/ci-image-checks.yml
@@ -20,8 +20,12 @@ name: CI Image Checks
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       needs-mypy:
@@ -113,7 +117,7 @@ jobs:
   install-pre-commit:
     timeout-minutes: 5
     name: "Install pre-commit for cache (only canary runs)"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
     if: inputs.basic-checks-only == 'false'
@@ -157,7 +161,7 @@ jobs:
   static-checks:
     timeout-minutes: 45
     name: "Static checks"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     needs: install-pre-commit
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
@@ -175,7 +179,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
         id: breeze
@@ -197,7 +201,7 @@ jobs:
   mypy:
     timeout-minutes: 45
     name: "MyPy checks"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     needs: install-pre-commit
     if: inputs.needs-mypy == 'true'
     strategy:
@@ -218,7 +222,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
         id: breeze
@@ -241,7 +245,7 @@ jobs:
   build-docs:
     timeout-minutes: 150
     name: "Build documentation"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     if: inputs.docs-build == 'true'
     strategy:
       fail-fast: false
@@ -266,7 +270,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Restore docs inventory cache"
@@ -344,7 +348,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Publish docs"
@@ -382,7 +386,7 @@ jobs:
   test-python-api-client:
     timeout-minutes: 60
     name: "Test Python API client"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     if: inputs.needs-api-codegen == 'true'
     env:
       BACKEND: "postgres"
@@ -416,7 +420,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Generate airflow python client"
diff --git a/.github/workflows/finalize-tests.yml b/.github/workflows/finalize-tests.yml
index ae1d77e0741..082744fd6fa 100644
--- a/.github/workflows/finalize-tests.yml
+++ b/.github/workflows/finalize-tests.yml
@@ -20,12 +20,12 @@ name: Finalize tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
-      arm-runners:
-        description: "The array of labels (in json form) determining public ARM runners."
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       python-versions:
@@ -80,7 +80,7 @@ permissions:
   contents: read
 jobs:
   update-constraints:
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     timeout-minutes: 80
     name: "Update constraints"
     permissions:
@@ -93,7 +93,7 @@ jobs:
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       GITHUB_USERNAME: ${{ github.actor }}
       VERBOSE: "true"
-    if: inputs.upgrade-to-newer-dependencies != 'false'
+    if: inputs.upgrade-to-newer-dependencies != 'false' && inputs.platform == 'linux/amd64'
     steps:
       - name: "Cleanup repo"
         shell: bash
@@ -132,8 +132,8 @@ jobs:
         run:
           git push
 
-  push-buildx-cache-to-github-registry-amd:
-    name: Push Regular AMD Image Cache
+  push-buildx-cache-to-github-registry:
+    name: Push Regular Image Cache ${{ inputs.platform }}
     needs: [update-constraints]
     uses: ./.github/workflows/push-image-cache.yml
     permissions:
@@ -142,12 +142,11 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ inputs.amd-runners }}
-      arm-runners: ${{ inputs.arm-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${ { inputs.platform }}
       cache-type: "Regular AMD"
       include-prod-images: "true"
       push-latest-images: "true"
-      platform: "linux/amd64"
       python-versions: ${{ inputs.python-versions }}
       branch: ${{ inputs.branch }}
       constraints-branch: ${{ inputs.constraints-branch }}
@@ -158,67 +157,3 @@ jobs:
     if: >
       inputs.canary-run == 'true' &&
       (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
-
-  #    push-buildx-cache-to-github-registry-arm:
-  #      name: Push Regular ARM Image Cache
-  #      needs: [update-constraints]
-  #      uses: ./.github/workflows/push-image-cache.yml
-  #      permissions:
-  #        contents: read
-  #        packages: write
-  #      with:
-  #        amd-runners: ${{ inputs.amd-runners }}
-  #        arm-runners: ${{ inputs.arm-runners }}
-  #        cache-type: "Regular ARM"
-  #        include-prod-images: "true"
-  #        push-latest-images: "true"
-  #        platform: "linux/arm64"
-  #        python-versions: ${{ inputs.python-versions }}
-  #        branch: ${{ inputs.branch }}
-  #        constraints-branch: ${{ inputs.constraints-branch }}
-  #        use-uv: "true"
-  #        include-success-outputs: ${{ inputs.include-success-outputs }}
-  #        docker-cache: ${{ inputs.docker-cache }}
-  #      if: >
-  #        inputs.canary-run == 'true' &&
-  #        (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
-
-  summarize-warnings:
-    timeout-minutes: 15
-    name: "Summarize warnings"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
-    steps:
-      - name: "Cleanup repo"
-        shell: bash
-        run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
-      - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
-        uses: actions/checkout@v4
-        with:
-          persist-credentials: false
-      - name: "Cleanup docker"
-        run: ./scripts/ci/cleanup_docker.sh
-      - name: "Free up disk space"
-        shell: bash
-        run: ./scripts/tools/free_up_disk_space.sh
-      - name: "Download all test warning artifacts from the current build"
-        uses: actions/download-artifact@v4
-        with:
-          path: ./artifacts
-          pattern: test-warnings-*
-      - name: "Setup python"
-        uses: actions/setup-python@v5
-        with:
-          python-version: ${{ inputs.default-python-version }}
-      - name: "Summarize all warnings"
-        run: |
-          ./scripts/ci/testing/summarize_captured_warnings.py ./artifacts \
-            --pattern "**/warnings-*.txt" \
-            --output ./files
-      - name: "Upload artifact for summarized warnings"
-        uses: actions/upload-artifact@v4
-        with:
-          name: test-summarized-warnings
-          path: ./files/warn-summary-*.txt
-          retention-days: 7
-          if-no-files-found: ignore
-          overwrite: true
diff --git a/.github/workflows/generate-constraints.yml b/.github/workflows/generate-constraints.yml
index 91b56942454..363888ff297 100644
--- a/.github/workflows/generate-constraints.yml
+++ b/.github/workflows/generate-constraints.yml
@@ -20,8 +20,12 @@ name: Generate constraints
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       python-versions-list-as-string:
@@ -46,7 +50,7 @@ jobs:
       contents: read
     timeout-minutes: 70
     name: Generate constraints ${{ inputs.python-versions-list-as-string }}
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       DEBUG_RESOURCES: ${{ inputs.debug-resources }}
       GITHUB_REPOSITORY: ${{ github.repository }}
@@ -74,7 +78,7 @@ jobs:
       - name: "Prepare all CI images: ${{ inputs.python-versions-list-as-string}}"
         uses: ./.github/actions/prepare_all_ci_images
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python-versions-list-as-string: ${{ inputs.python-versions-list-as-string }}
           docker-volume-location: ""  # TODO(jscheffl): Understand why it fails here and fix it
       - name: "Verify all CI images ${{ inputs.python-versions-list-as-string }}"
diff --git a/.github/workflows/helm-tests.yml b/.github/workflows/helm-tests.yml
index 21c7f01a528..e00ac14506a 100644
--- a/.github/workflows/helm-tests.yml
+++ b/.github/workflows/helm-tests.yml
@@ -20,8 +20,12 @@ name: Helm tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       helm-test-packages:
@@ -42,7 +46,7 @@ jobs:
   tests-helm:
     timeout-minutes: 80
     name: "Unit tests Helm: ${{ matrix.helm-test-package }}"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -70,7 +74,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Helm Unit Tests: ${{ matrix.helm-test-package }}"
@@ -81,7 +85,7 @@ jobs:
   tests-helm-release:
     timeout-minutes: 80
     name: "Release Helm"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{inputs.default-python-version}}"
     steps:
diff --git a/.github/workflows/integration-system-tests.yml b/.github/workflows/integration-system-tests.yml
index 9c3480432b5..bf75cc87f31 100644
--- a/.github/workflows/integration-system-tests.yml
+++ b/.github/workflows/integration-system-tests.yml
@@ -20,10 +20,14 @@ name: Integration and system tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
+      runners:
         description: "The array of labels (in json form) determining public runners."
         required: true
         type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
+        required: true
+        type: string
       testable-core-integrations:
         description: "The list of testable core integrations as JSON array."
         required: true
@@ -71,7 +75,7 @@ jobs:
     timeout-minutes: 30
     if: inputs.testable-core-integrations != '[]'
     name: "Integration core ${{ matrix.integration }}"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -99,7 +103,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Integration: core ${{ matrix.integration }}"
@@ -120,7 +124,7 @@ jobs:
     timeout-minutes: 30
     if: inputs.testable-providers-integrations != '[]' && inputs.skip-providers-tests != 'true'
     name: "Integration: providers ${{ matrix.integration }}"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -148,7 +152,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Integration: providers ${{ matrix.integration }}"
@@ -168,7 +172,7 @@ jobs:
     timeout-minutes: 30
     if: inputs.run-system-tests == 'true'
     name: "System Tests"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     env:
       BACKEND: "postgres"
       BACKEND_VERSION: ${{ inputs.default-postgres-version }}"
@@ -192,7 +196,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "System Tests"
diff --git a/.github/workflows/k8s-tests.yml b/.github/workflows/k8s-tests.yml
index 43b30e40a97..6ed0c79d187 100644
--- a/.github/workflows/k8s-tests.yml
+++ b/.github/workflows/k8s-tests.yml
@@ -20,12 +20,12 @@ name: K8s tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      platform:
-        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       python-versions-list-as-string:
@@ -54,7 +54,7 @@ jobs:
   tests-kubernetes:
     timeout-minutes: 60
     name: "K8S System:${{ matrix.executor }}-${{ matrix.kubernetes-combo }}-${{ matrix.use-standard-naming }}"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       matrix:
         executor: [KubernetesExecutor, CeleryExecutor, LocalExecutor]
diff --git a/.github/workflows/prod-image-build.yml b/.github/workflows/prod-image-build.yml
index bf4ead70add..14d836c094f 100644
--- a/.github/workflows/prod-image-build.yml
+++ b/.github/workflows/prod-image-build.yml
@@ -20,8 +20,8 @@ name: Build PROD images
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining default runner for AMD build."
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
       build-type:
@@ -114,7 +114,7 @@ jobs:
   build-prod-packages:
     name: "Build Airflow and provider distributions"
     timeout-minutes: 10
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     if: inputs.prod-image-build == 'true'
     env:
       PYTHON_MAJOR_MINOR_VERSION: "${{ inputs.default-python-version }}"
@@ -186,7 +186,7 @@ jobs:
         python-version: ${{ fromJSON(inputs.python-versions) || fromJSON('[""]') }}
     timeout-minutes: 80
     name: "Build PROD ${{ inputs.build-type }} image ${{ matrix.python-version }}"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     needs:
       - build-prod-packages
     env:
diff --git a/.github/workflows/prod-image-extra-checks.yml b/.github/workflows/prod-image-extra-checks.yml
index 640d924d873..4f6ce6c7629 100644
--- a/.github/workflows/prod-image-extra-checks.yml
+++ b/.github/workflows/prod-image-extra-checks.yml
@@ -20,8 +20,12 @@ name: PROD images extra checks
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       python-versions:
@@ -62,14 +66,14 @@ jobs:
   myssql-client-image:
     uses: ./.github/workflows/prod-image-build.yml
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       build-type: "MySQL Client"
       upload-image-artifact: "false"
       upload-package-artifact: "false"
       install-mysql-client-type: "mysql"
       python-versions: ${{ inputs.python-versions }}
       default-python-version: ${{ inputs.default-python-version }}
-      platform: "linux/amd64"
       branch: ${{ inputs.branch }}
       # Always build images during the extra checks and never push them
       push-image: "false"
@@ -83,14 +87,14 @@ jobs:
   pip-image:
     uses: ./.github/workflows/prod-image-build.yml
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       build-type: "pip"
       upload-image-artifact: "false"
       upload-package-artifact: "false"
       install-mysql-client-type: "mysql"
       python-versions: ${{ inputs.python-versions }}
       default-python-version: ${{ inputs.default-python-version }}
-      platform: "linux/amd64"
       branch: ${{ inputs.branch }}
       # Always build images during the extra checks and never push them
       push-image: "false"
diff --git a/.github/workflows/publish-docs-to-s3.yml b/.github/workflows/publish-docs-to-s3.yml
index 71cd4e2d290..23e644a286d 100644
--- a/.github/workflows/publish-docs-to-s3.yml
+++ b/.github/workflows/publish-docs-to-s3.yml
@@ -49,8 +49,7 @@ jobs:
     name: "Build Info"
     runs-on: ["ubuntu-24.04"]
     outputs:
-      amd-runners: ${{ steps.selective-checks.outputs.amd-runners }}
-      arm-runners: ${{ steps.selective-checks.outputs.arm-runners }}
+      runners: ${{ steps.selective-checks.outputs.amd-runners }}
     env:
       GITHUB_CONTEXT: ${{ toJson(github) }}
       VERBOSE: true
@@ -109,8 +108,7 @@ jobs:
       # from forks. This is to prevent malicious PRs from creating images in the "apache/airflow" repo.
       packages: write
     with:
-      amd-runners: ${{ needs.build-info.outputs.amd-runners }}
-      arm-runners: ${{ needs.build-info.outputs.arm-runners }}
+      runners: ${{ needs.build-info.outputs.amd-runners }}
       platform: "linux/amd64"
       push-image: "false"
       upload-image-artifact: "true"
diff --git a/.github/workflows/push-image-cache.yml b/.github/workflows/push-image-cache.yml
index 2dc539956d7..d562f798c77 100644
--- a/.github/workflows/push-image-cache.yml
+++ b/.github/workflows/push-image-cache.yml
@@ -20,12 +20,8 @@ name: Push image cache
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
-        required: true
-        type: string
-      arm-runners:
-        description: "The array of labels (in json form) determining public ARM runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
         required: true
         type: string
       cache-type:
@@ -83,11 +79,7 @@ on:  # yamllint disable-line rule:truthy
 jobs:
   push-ci-image-cache:
     name: "Push CI ${{ inputs.cache-type }}:${{ matrix.python }} image cache "
-    # NOTE!!!!! This has to be put in one line for runs-on to recognize the "fromJSON" properly !!!!
-    # adding space before (with >) apparently turns the `runs-on` processed line into a string "Array"
-    # instead of an array of strings.
-    # yamllint disable-line rule:line-length
-    runs-on: ${{ (inputs.platform == 'linux/amd64') && fromJSON(inputs.amd-runners) || fromJSON(inputs.arm-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     permissions:
       contents: read
       packages: write
@@ -158,11 +150,7 @@ jobs:
 
   push-prod-image-cache:
     name: "Push PROD ${{ inputs.cache-type }}:${{ matrix.python }} image cache"
-    # NOTE!!!!! This has to be put in one line for runs-on to recognize the "fromJSON" properly !!!!
-    # adding space before (with >) apparently turns the `runs-on` processed line into a string "Array"
-    # instead of an array of strings.
-    # yamllint disable-line rule:line-length
-    runs-on: ${{ (inputs.platform == 'linux/amd64') && fromJSON(inputs.amd-runners) || fromJSON(inputs.arm-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     permissions:
       contents: read
       packages: write
diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml
index cdfb7b58f0d..2fbdb568cdd 100644
--- a/.github/workflows/run-unit-tests.yml
+++ b/.github/workflows/run-unit-tests.yml
@@ -20,10 +20,14 @@ name: Unit tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
+      runners:
         description: "The array of labels (in json form) determining public AMD runners."
         required: true
         type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
+        required: true
+        type: string
       test-group:
         description: "Test group to run: ('core', 'providers')"
         required: true
@@ -37,7 +41,7 @@ on:  # yamllint disable-line rule:truthy
         required: true
         type: string
       test-scope:
-        description: "The scope of the test to run: ('DB', 'Non-DB', 'All', 'ARM collection')"
+        description: "The scope of the test to run: ('DB', 'Non-DB', 'All')"
         required: true
         type: string
       test-name:
@@ -125,7 +129,7 @@ jobs:
       ${{ inputs.test-scope }}-${{ inputs.test-group }}:\
       ${{ inputs.test-name }}${{ inputs.test-name-separator }}${{ matrix.backend-version }}:\
       ${{ matrix.python-version}}:${{ matrix.test-types.description }}"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -168,7 +172,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ matrix.python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ matrix.python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: >
diff --git a/.github/workflows/special-tests.yml b/.github/workflows/special-tests.yml
index 7f20ce11111..a41ab1693c8 100644
--- a/.github/workflows/special-tests.yml
+++ b/.github/workflows/special-tests.yml
@@ -20,8 +20,12 @@ name: Special tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
-        description: "The array of labels (in json form) determining public AMD runners."
+      runners:
+        description: "The array of labels (in json form) determining runners."
+        required: true
+        type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
         required: true
         type: string
       default-branch:
@@ -90,7 +94,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       downgrade-sqlalchemy: "true"
       test-name: "MinSQLAlchemy-Postgres"
       test-scope: "DB"
@@ -113,7 +118,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       downgrade-sqlalchemy: "true"
       test-name: "MinSQLAlchemy-Postgres"
       test-scope: "DB"
@@ -136,7 +142,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       upgrade-boto: "true"
       test-name: "LatestBoto-Postgres"
       test-scope: "All"
@@ -160,7 +167,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       upgrade-boto: "true"
       test-name: "LatestBoto-Postgres"
       test-scope: "All"
@@ -185,7 +193,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       downgrade-pendulum: "true"
       test-name: "Pendulum2-Postgres"
       test-scope: "All"
@@ -209,7 +218,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       downgrade-pendulum: "true"
       test-name: "Pendulum2-Postgres"
       test-scope: "All"
@@ -233,7 +243,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       test-name: "Postgres"
       test-scope: "Quarantined"
       test-group: "core"
@@ -256,7 +267,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       test-name: "Postgres"
       test-scope: "Quarantined"
       test-group: "providers"
@@ -272,56 +284,6 @@ jobs:
       skip-providers-tests: ${{ inputs.skip-providers-tests }}
       use-uv: ${{ inputs.use-uv }}
 
-
-  tests-arm-collection-core:
-    name: "ARM Collection test: core"
-    uses: ./.github/workflows/run-unit-tests.yml
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ inputs.amd-runners }}
-      test-name: "Postgres"
-      test-scope: "ARM collection"
-      test-group: "core"
-      backend: "postgres"
-      python-versions: "['${{ inputs.default-python-version }}']"
-      backend-versions: "['${{ inputs.default-postgres-version }}']"
-      excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }}
-      excludes: "[]"
-      test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }}
-      include-success-outputs: ${{ inputs.include-success-outputs }}
-      run-coverage: ${{ inputs.run-coverage }}
-      debug-resources: ${{ inputs.debug-resources }}
-      skip-providers-tests: ${{ inputs.skip-providers-tests }}
-      use-uv: ${{ inputs.use-uv }}
-    if: ${{ inputs.default-branch == 'main' }}
-
-  tests-arm-collection-providers:
-    name: "ARM Collection test: providers"
-    uses: ./.github/workflows/run-unit-tests.yml
-    permissions:
-      contents: read
-      packages: read
-    with:
-      amd-runners: ${{ inputs.amd-runners }}
-      test-name: "Postgres"
-      test-scope: "ARM collection"
-      test-group: "providers"
-      backend: "postgres"
-      python-versions: "['${{ inputs.default-python-version }}']"
-      backend-versions: "['${{ inputs.default-postgres-version }}']"
-      excluded-providers-as-string: ${{ inputs.excluded-providers-as-string }}
-      excludes: "[]"
-      test-types-as-strings-in-json: ${{ inputs.core-test-types-list-as-strings-in-json }}
-      include-success-outputs: ${{ inputs.include-success-outputs }}
-      run-coverage: ${{ inputs.run-coverage }}
-      debug-resources: ${{ inputs.debug-resources }}
-      skip-providers-tests: ${{ inputs.skip-providers-tests }}
-      use-uv: ${{ inputs.use-uv }}
-    if: ${{ inputs.default-branch == 'main' }}
-
-
   tests-system-core:
     name: "System test: ${{ matrix.test-group }}"
     uses: ./.github/workflows/run-unit-tests.yml
@@ -329,7 +291,8 @@ jobs:
       contents: read
       packages: read
     with:
-      amd-runners: ${{ inputs.amd-runners }}
+      runners: ${{ inputs.runners }}
+      platform: ${{ inputs.platform }}
       test-name: "SystemTest"
       test-scope: "System"
       test-group: "core"
diff --git a/.github/workflows/test-providers.yml b/.github/workflows/test-providers.yml
index 0fbeaaee052..411b18daaa7 100644
--- a/.github/workflows/test-providers.yml
+++ b/.github/workflows/test-providers.yml
@@ -20,10 +20,14 @@ name: Provider tests
 on:  # yamllint disable-line rule:truthy
   workflow_call:
     inputs:
-      amd-runners:
+      runners:
         description: "The array of labels (in json form) determining public AMD runners."
         required: true
         type: string
+      platform:
+        description: "Platform for the build - 'linux/amd64' or 'linux/arm64'"
+        required: true
+        type: string
       canary-run:
         description: "Whether this is a canary run"
         required: true
@@ -68,7 +72,7 @@ jobs:
   prepare-install-verify-provider-distributions:
     timeout-minutes: 80
     name: "Providers ${{ matrix.package-format }} tests"
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -91,7 +95,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ inputs.default-python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ inputs.default-python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Cleanup dist files"
@@ -163,7 +167,7 @@ jobs:
     timeout-minutes: 80
     # yamllint disable rule:line-length
     name: Compat ${{ matrix.compat.airflow-version }}:P${{ matrix.compat.python-version }}:${{ matrix.compat.test-types.description }}
-    runs-on: ${{ fromJSON(inputs.amd-runners) }}
+    runs-on: ${{ fromJSON(inputs.runners) }}
     strategy:
       fail-fast: false
       matrix:
@@ -189,7 +193,7 @@ jobs:
       - name: "Prepare breeze & CI image: ${{ matrix.compat.python-version }}"
         uses: ./.github/actions/prepare_breeze_and_image
         with:
-          platform: "linux/amd64"
+          platform: ${{ inputs.platform }}
           python: ${{ matrix.compat.python-version }}
           use-uv: ${{ inputs.use-uv }}
       - name: "Cleanup dist files"
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 86bb4738785..3f14908eb0a 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1071,13 +1071,6 @@ function check_run_tests() {
         return
     fi
 
-    if [[ ${REMOVE_ARM_PACKAGES:="false"} == "true" ]]; then
-        # Test what happens if we do not have ARM packages installed.
-        # This is useful to see if pytest collection works without ARM packages which is important
-        # for the MacOS M1 users running tests in their ARM machines with `breeze testing *-tests` command
-        python "${IN_CONTAINER_DIR}/remove_arm_packages.py"
-    fi
-
     if [[ ${TEST_GROUP:=""} == "system" ]]; then
         exec "${IN_CONTAINER_DIR}/run_system_tests.sh" "${@}"
     else
diff --git a/dev/breeze/doc/images/output_testing_core-tests.svg b/dev/breeze/doc/images/output_testing_core-tests.svg
index c148fbe9712..987c862dd1f 100644
--- a/dev/breeze/doc/images/output_testing_core-tests.svg
+++ b/dev/breeze/doc/images/output_testing_core-tests.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2660.7999999999997" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2636.3999999999996" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-testing-core-tests-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="2609.7999999999997" />
+      <rect x="0" y="0" width="1463.0" height="2585.3999999999996" />
     </clipPath>
     <clipPath id="breeze-testing-core-tests-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -360,12 +360,9 @@
 <clipPath id="breeze-testing-core-tests-line-104">
     <rect x="0" y="2539.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-testing-core-tests-line-105">
-    <rect x="0" y="2563.5" width="1464" height="24.65"/>
-            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2658.8" rx="8"/><text class="breeze-testing-core-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;testing&#160;core-tests</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2634.4" rx="8"/><text class="breeze-testing-core-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;testing&#160;core-tests</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -441,47 +438,46 @@
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-63)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1557.2" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-63)">--upgrade-boto</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1557.2" textLength="866.2" clip-path="url(#breeze-testing-core-tests-line-63)">Remove&#160;aiobotocore&#160;and&#160;upgrade&#160;botoco [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-64)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1581.6" textLength="268.4" clip-path="url(#breeze-testing-core-tests-line-64)">--downgrade-sqlalchemy</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1581.6" textLength="610" clip-path="url(#breeze-testing-core-tests-line-64)">Downgrade&#160;SQLAlchemy&#160;to&#160;minimum&#160 [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-65)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1606" textLength="244" clip-path="url(#breeze-testing-core-tests-line-65)">--downgrade-pendulum</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1606" textLength="585.6" clip-path="url(#breeze-testing-core-tests-line-65)">Downgrade&#160;Pendulum&#160;to&#160;minimum&#160;supported [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-66)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1630.4" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-66)">--remove-arm-packages</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1630.4" textLength="817.4" clip-path="url(#breeze-testing-core-tests-line-66)">Removes&#160;arm&#160;packages&#160;from&#160;the& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1654.8" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-67)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1679.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-68)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1679.2" textLength="402.6" clip-path="url(#breeze-testing-core-tests-line-68)">&#160;Advanced&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-core-tests-r5" x="427" y="1679.2" textLength="1012.6" clip-path="url(#breeze-testing-core-tests-line-68)">──────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-69)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1703.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-69)">--github-repository</text><text class="breeze-testing-core-tests-r7" x="366" y="1703.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-69)">-g</text><text class="breeze-testing-core-tests-r1" x=" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-70)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1728" textLength="183" clip-path="url(#breeze-testing-core-tests-line-70)">--mount-sources</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1728" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-70)">Choose&#160;scope&#160;of&#160;local&#160;sources&#160;that&#16 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-71)">│</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1752.4" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-71)">selected).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-72)">│</text><text class="breeze-testing-core-tests-r6" x="414.8" y="1776.8" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-72)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove&#160;|&#160;tests&#160;|&#160;providers-and-tests)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-73)">│</text><text class="breeze-testing-core-tests-r5" x="414.8" y="1801.2" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-73)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-74)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1825.6" textLength="317.2" clip-path="url(#breeze-testing-core-tests-line-74)">--skip-docker-compose-down</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1825.6" textLength="549" clip-path="url(#breeze-testing-core-tests-line-74)">Skips&#160;running&#160;docker-compose&#160;dow [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-75)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1850" textLength="244" clip-path="url(#breeze-testing-core-tests-line-75)">--keep-env-variables</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1850" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-75)">Do&#160;not&#160;clear&#160;environment&#160;variables&#16 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1874.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-76)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-76)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1898.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-77)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1898.8" textLength="622.2" clip-path="url(#breeze-testing-core-tests-line-77)">&#160;Advanced&#160;flag&#160;for&#160;installing&#160;airflow&#160;in&#160;container&#160;</text><text class="breeze-testing-core-tests-r5" x="646.6" y="1898.8" textLength="793" clip-path="url(#breeze-testing-co [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-78)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1923.2" textLength="378.2" clip-path="url(#breeze-testing-core-tests-line-78)">--airflow-constraints-reference</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1923.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-78)">Constraint&#160;reference&#160;to&#160;u [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-79)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1947.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-79)">(used&#160;in&#160;calculated&#160;constraints&#160;URL).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-t [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-80)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="1972" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-80)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-81)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1996.4" textLength="341.6" clip-path="url(#breeze-testing-core-tests-line-81)">--clean-airflow-installation</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1996.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-81)">Clean&#160;the&#160;airflow&#160;installati [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-82)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2020.8" textLength="158.6" clip-path="url(#breeze-testing-core-tests-line-82)">specified&#160;by&#160;</text><text class="breeze-testing-core-tests-r4" x="915" y="2020.8" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-82)">--use-airflow-version</text><text class="breeze-t [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-83)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2045.2" textLength="329.4" clip-path="url(#breeze-testing-core-tests-line-83)">--force-lowest-dependencies</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2045.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-83)">Run&#160;tests&#160;for&#160;the&#160;lowest [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-84)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2069.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-84)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing- [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-85)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2094" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-85)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-86)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2118.4" textLength="414.8" clip-path="url(#breeze-testing-core-tests-line-86)">--install-airflow-with-constraints</text><text class="breeze-testing-core-tests-r1" x="439.2" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-86)">/</text><text class="breeze-testing-co [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-87)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2142.8" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-87)">with-constraints</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2142.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-87)">determined&#160;from&#160;package&#160;or&#160;airflow& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-88)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2167.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-88)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2167.2" textLength="12.2" clip-path=" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2191.6" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-89)">--distribution-format</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2191.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-89)">Format&#160;of&#160;packages.</text><text class="b [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2216" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-90)">[default:&#160;wheel]&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2216" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text class="breeze-testing-c [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-91)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2240.4" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-91)">--use-airflow-version</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2240.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-91)">Use&#160;(reinstall&#160;at&#160;entry)&#160;Airfl [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-92)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2264.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-92)">can&#160;also&#160;be&#160;version&#160;(to&#160;install&#160;from&#160;PyPI),&#160;`none`,&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2264.8" textLength="12.2" c [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-93)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2289.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-93)">`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#160;`dist`&#160;folder,&#160;or&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2289.2" textLength="12.2" clip-path=" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-94)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-94)">VCS&#160;URL&#160;to&#160;install&#160;from&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-95)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2338" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-95)">(https://pip.pypa.io/en/stable/topics/vcs-support/).&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-95)"> [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-96)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2362.4" textLength="97.6" clip-path="url(#breeze-testing-core-tests-line-96)">Implies&#160;</text><text class="breeze-testing-core-tests-r4" x="854" y="2362.4" textLength="183" clip-path="url(#breeze-testing-core-tests-line-96)">--mount-sources</text><text class="breeze-testing-core-tests-r [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-97)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="2386.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-97)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5"  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-98)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2411.2" textLength="353.8" clip-path="url(#breeze-testing-core-tests-line-98)">--use-distributions-from-dist</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2411.2" textLength="402.6" clip-path="url(#breeze-testing-core-tests-line-98)">Install&#160;all&#160;found&#160;distribut [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-99)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2435.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-99)">determines&#160;type)&#160;from&#160;&#x27;dist&#x27;&#160;folder&#160;when&#160;entering&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2435.6" textLengt [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-100)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2460" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-100)">breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2484.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-101)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-101)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2508.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-102)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="2508.8" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-102)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-core-tests-r5" x="219.6" y="2508.8" textLength="1220" clip-path="url(#breeze-testing-core-tests-line-102)">───────────────────────────────────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-103)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2533.2" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-103)">--dry-run</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2533.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-103)">-D</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-104)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2557.6" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-104)">--verbose</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2557.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-104)">-v</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-105)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2582" textLength="73.2" clip-path="url(#breeze-testing-core-tests-line-105)">--help</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2582" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-105)">-h</text><text class="breeze-testing-core-tests-r1" x="207.4" y="2582" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2606.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-106)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-106)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1630.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-66)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-66)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1654.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-67)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1654.8" textLength="402.6" clip-path="url(#breeze-testing-core-tests-line-67)">&#160;Advanced&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-core-tests-r5" x="427" y="1654.8" textLength="1012.6" clip-path="url(#breeze-testing-core-tests-line-67)">──────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-68)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1679.2" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-68)">--github-repository</text><text class="breeze-testing-core-tests-r7" x="366" y="1679.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-68)">-g</text><text class="breeze-testing-core-tests-r1" x=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-69)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1703.6" textLength="183" clip-path="url(#breeze-testing-core-tests-line-69)">--mount-sources</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1703.6" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-69)">Choose&#160;scope&#160;of&#160;local&#160;sources&#160;th [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-70)">│</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1728" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-70)">selected).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-71)">│</text><text class="breeze-testing-core-tests-r6" x="414.8" y="1752.4" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-71)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove&#160;|&#160;tests&#160;|&#160;providers-and-tests)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-72)">│</text><text class="breeze-testing-core-tests-r5" x="414.8" y="1776.8" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-72)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-73)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1801.2" textLength="317.2" clip-path="url(#breeze-testing-core-tests-line-73)">--skip-docker-compose-down</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1801.2" textLength="549" clip-path="url(#breeze-testing-core-tests-line-73)">Skips&#160;running&#160;docker-compose&#160;dow [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-74)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1825.6" textLength="244" clip-path="url(#breeze-testing-core-tests-line-74)">--keep-env-variables</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1825.6" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-74)">Do&#160;not&#160;clear&#160;environment&#160;variabl [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1850" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-75)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1850" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-75)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1874.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-76)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1874.4" textLength="622.2" clip-path="url(#breeze-testing-core-tests-line-76)">&#160;Advanced&#160;flag&#160;for&#160;installing&#160;airflow&#160;in&#160;container&#160;</text><text class="breeze-testing-core-tests-r5" x="646.6" y="1874.4" textLength="793" clip-path="url(#breeze-testing-co [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-77)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1898.8" textLength="378.2" clip-path="url(#breeze-testing-core-tests-line-77)">--airflow-constraints-reference</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1898.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-77)">Constraint&#160;reference&#160;to&#160;u [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-78)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1923.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-78)">(used&#160;in&#160;calculated&#160;constraints&#160;URL).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-t [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-79)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="1947.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-79)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-80)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1972" textLength="341.6" clip-path="url(#breeze-testing-core-tests-line-80)">--clean-airflow-installation</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1972" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-80)">Clean&#160;the&#160;airflow&#160;installation&#16 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-81)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1996.4" textLength="158.6" clip-path="url(#breeze-testing-core-tests-line-81)">specified&#160;by&#160;</text><text class="breeze-testing-core-tests-r4" x="915" y="1996.4" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-81)">--use-airflow-version</text><text class="breeze-t [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-82)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2020.8" textLength="329.4" clip-path="url(#breeze-testing-core-tests-line-82)">--force-lowest-dependencies</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2020.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-82)">Run&#160;tests&#160;for&#160;the&#160;lowest [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-83)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2045.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-83)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing- [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-84)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2069.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-84)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-85)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2094" textLength="414.8" clip-path="url(#breeze-testing-core-tests-line-85)">--install-airflow-with-constraints</text><text class="breeze-testing-core-tests-r1" x="439.2" y="2094" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-85)">/</text><text class="breeze-testing-core-tes [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-86)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2118.4" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-86)">with-constraints</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2118.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-86)">determined&#160;from&#160;package&#160;or&#160;airflow& [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-87)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2142.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-87)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2142.8" textLength="12.2" clip-path=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-88)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2167.2" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-88)">--distribution-format</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2167.2" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-88)">Format&#160;of&#160;packages.</text><text class="b [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2191.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-89)">[default:&#160;wheel]&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text class="breeze-tes [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2216" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-90)">--use-airflow-version</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2216" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-90)">Use&#160;(reinstall&#160;at&#160;entry)&#160;Airflow&#16 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-91)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2240.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-91)">can&#160;also&#160;be&#160;version&#160;(to&#160;install&#160;from&#160;PyPI),&#160;`none`,&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2240.4" textLength="12.2" c [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-92)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2264.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-92)">`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#160;`dist`&#160;folder,&#160;or&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2264.8" textLength="12.2" clip-path=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-93)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2289.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-93)">VCS&#160;URL&#160;to&#160;install&#160;from&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-94)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-94)">(https://pip.pypa.io/en/stable/topics/vcs-support/).&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-95)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2338" textLength="97.6" clip-path="url(#breeze-testing-core-tests-line-95)">Implies&#160;</text><text class="breeze-testing-core-tests-r4" x="854" y="2338" textLength="183" clip-path="url(#breeze-testing-core-tests-line-95)">--mount-sources</text><text class="breeze-testing-core-tests-r1" x=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-96)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="2362.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-96)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5"  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-97)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2386.8" textLength="353.8" clip-path="url(#breeze-testing-core-tests-line-97)">--use-distributions-from-dist</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2386.8" textLength="402.6" clip-path="url(#breeze-testing-core-tests-line-97)">Install&#160;all&#160;found&#160;distribut [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-98)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2411.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-98)">determines&#160;type)&#160;from&#160;&#x27;dist&#x27;&#160;folder&#160;when&#160;entering&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2411.2" textLengt [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-99)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2435.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-99)">breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2460" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-100)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2460" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-100)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2484.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-101)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="2484.4" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-101)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-core-tests-r5" x="219.6" y="2484.4" textLength="1220" clip-path="url(#breeze-testing-core-tests-line-101)">───────────────────────────────────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-102)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2508.8" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-102)">--dry-run</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2508.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-102)">-D</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-103)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2533.2" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-103)">--verbose</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2533.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-103)">-v</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-104)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2557.6" textLength="73.2" clip-path="url(#breeze-testing-core-tests-line-104)">--help</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2557.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-104)">-h</text><text class="breeze-testing-core-tests-r1" x="207.4" y= [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2582" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-105)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2582" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-105)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_testing_core-tests.txt b/dev/breeze/doc/images/output_testing_core-tests.txt
index 487da1bfda8..3566b8e3996 100644
--- a/dev/breeze/doc/images/output_testing_core-tests.txt
+++ b/dev/breeze/doc/images/output_testing_core-tests.txt
@@ -1 +1 @@
-331eca8b67a16ab128433a30e769290b
+e17e8722da2c099cb96f37dc51c279e0
diff --git a/dev/breeze/doc/images/output_testing_providers-tests.svg b/dev/breeze/doc/images/output_testing_providers-tests.svg
index f27f952546e..b792161dabf 100644
--- a/dev/breeze/doc/images/output_testing_providers-tests.svg
+++ b/dev/breeze/doc/images/output_testing_providers-tests.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2904.7999999999997" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2880.3999999999996" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-testing-providers-tests-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="2853.7999999999997" />
+      <rect x="0" y="0" width="1463.0" height="2829.3999999999996" />
     </clipPath>
     <clipPath id="breeze-testing-providers-tests-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -390,12 +390,9 @@
 <clipPath id="breeze-testing-providers-tests-line-114">
     <rect x="0" y="2783.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-testing-providers-tests-line-115">
-    <rect x="0" y="2807.5" width="1464" height="24.65"/>
-            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2902.8" rx="8"/><text class="breeze-testing-providers-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;testing&#160;providers-tests</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2878.4" rx="8"/><text class="breeze-testing-providers-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;testing&#160;providers-tests</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -472,56 +469,55 @@
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-64)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1581.6" textLength="170.8" clip-path="url(#breeze-testing-providers-tests-line-64)">--upgrade-boto</text><text class="breeze-testing-providers-tests-r1" x="341.6" y="1581.6" textLength="866.2" clip-path="url(#breeze-testing-providers-tests-line-64)">Remove&#160;aiobotocore&#16 [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-65)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1606" textLength="268.4" clip-path="url(#breeze-testing-providers-tests-line-65)">--downgrade-sqlalchemy</text><text class="breeze-testing-providers-tests-r1" x="341.6" y="1606" textLength="610" clip-path="url(#breeze-testing-providers-tests-line-65)">Downgrade&#160;SQLAlchemy&# [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-66)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1630.4" textLength="244" clip-path="url(#breeze-testing-providers-tests-line-66)">--downgrade-pendulum</text><text class="breeze-testing-providers-tests-r1" x="341.6" y="1630.4" textLength="585.6" clip-path="url(#breeze-testing-providers-tests-line-66)">Downgrade&#160;Pendulum [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-67)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1654.8" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-67)">--remove-arm-packages</text><text class="breeze-testing-providers-tests-r1" x="341.6" y="1654.8" textLength="817.4" clip-path="url(#breeze-testing-providers-tests-line-67)">Removes&#160;arm&#16 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1679.2" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-68)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-68)">
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1703.6" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-69)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="1703.6" textLength="402.6" clip-path="url(#breeze-testing-providers-tests-line-69)">&#160;Advanced&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-providers-tests-r5" x="427" y="1703.6" textLength="1012.6" clip-path="url(#breeze-testing-prov [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-70)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1728" textLength="231.8" clip-path="url(#breeze-testing-providers-tests-line-70)">--github-repository</text><text class="breeze-testing-providers-tests-r6" x="366" y="1728" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-70)">-g</text><text class="breeze-te [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-71)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1752.4" textLength="183" clip-path="url(#breeze-testing-providers-tests-line-71)">--mount-sources</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1752.4" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-71)">Choose&#160;scope&#160;of&# [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-72)">│</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1776.8" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-72)">selected).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-73)">│</text><text class="breeze-testing-providers-tests-r7" x="414.8" y="1801.2" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-73)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove&#160;|&#160;tests&#160;|&#160;providers-and-tests)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-74)">│</text><text class="breeze-testing-providers-tests-r5" x="414.8" y="1825.6" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-74)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-75)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1850" textLength="317.2" clip-path="url(#breeze-testing-providers-tests-line-75)">--skip-docker-compose-down</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1850" textLength="549" clip-path="url(#breeze-testing-providers-tests-line-75)">Skips&#160;running&#160 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-76)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1874.4" textLength="244" clip-path="url(#breeze-testing-providers-tests-line-76)">--keep-env-variables</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1874.4" textLength="1000.4" clip-path="url(#breeze-testing-providers-tests-line-76)">Do&#160;not&#160;clear [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1898.8" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-77)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-77)">
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1923.2" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-78)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="1923.2" textLength="622.2" clip-path="url(#breeze-testing-providers-tests-line-78)">&#160;Advanced&#160;flag&#160;for&#160;installing&#160;airflow&#160;in&#160;container&#160;</text><text class="breeze-testing-providers-tests-r5" x="646.6" y="1923.2" textLength="793" clip-pat [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-79)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1947.6" textLength="378.2" clip-path="url(#breeze-testing-providers-tests-line-79)">--airflow-constraints-reference</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="1947.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-79)">Constraint [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-80)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="1972" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-80)">(used&#160;in&#160;calculated&#160;constraints&#160;URL).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breez [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-81)">│</text><text class="breeze-testing-providers-tests-r7" x="756.4" y="1996.4" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-81)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-82)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2020.8" textLength="341.6" clip-path="url(#breeze-testing-providers-tests-line-82)">--clean-airflow-installation</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2020.8" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-82)">Clean&#160;th [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-83)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2045.2" textLength="158.6" clip-path="url(#breeze-testing-providers-tests-line-83)">specified&#160;by&#160;</text><text class="breeze-testing-providers-tests-r4" x="915" y="2045.2" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-83)">--use-airflow-versi [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-84)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2069.6" textLength="329.4" clip-path="url(#breeze-testing-providers-tests-line-84)">--force-lowest-dependencies</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2069.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-84)">Run&#160;tests [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-85)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2094" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-85)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2094" textLength="12.2" clip-path="u [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-86)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2118.4" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-86)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-87)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2142.8" textLength="414.8" clip-path="url(#breeze-testing-providers-tests-line-87)">--install-airflow-with-constraints</text><text class="breeze-testing-providers-tests-r1" x="439.2" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-87)">/</text> [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-88)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2167.2" textLength="195.2" clip-path="url(#breeze-testing-providers-tests-line-88)">with-constraints</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2167.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-88)">determined&#160;from&#160 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-89)">│</text><text class="breeze-testing-providers-tests-r5" x="756.4" y="2191.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-89)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2191.6" text [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-90)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2216" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-90)">--distribution-format</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2216" textLength="231.8" clip-path="url(#breeze-testing-providers-tests-line-90)">Format&#160;of&#160;packag [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-91)">│</text><text class="breeze-testing-providers-tests-r5" x="756.4" y="2240.4" textLength="231.8" clip-path="url(#breeze-testing-providers-tests-line-91)">[default:&#160;wheel]&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-91)">│ [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-92)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2264.8" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-92)">--use-airflow-version</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2264.8" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-92)">Use&#160;(reinstall& [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-93)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2289.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-93)">can&#160;also&#160;be&#160;version&#160;(to&#160;install&#160;from&#160;PyPI),&#160;`none`,&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="22 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-94)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-94)">`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#160;`dist`&#160;folder,&#160;or&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2313.6" text [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-95)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2338" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-95)">VCS&#160;URL&#160;to&#160;install&#160;from&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-96)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2362.4" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-96)">(https://pip.pypa.io/en/stable/topics/vcs-support/).&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2362.4" textLength="12.2" clip-path="url(#breez [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-97)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2386.8" textLength="97.6" clip-path="url(#breeze-testing-providers-tests-line-97)">Implies&#160;</text><text class="breeze-testing-providers-tests-r4" x="854" y="2386.8" textLength="183" clip-path="url(#breeze-testing-providers-tests-line-97)">--mount-sources</text><text clas [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-98)">│</text><text class="breeze-testing-providers-tests-r7" x="756.4" y="2411.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-98)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-tes [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-99)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2435.6" textLength="353.8" clip-path="url(#breeze-testing-providers-tests-line-99)">--use-distributions-from-dist</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2435.6" textLength="402.6" clip-path="url(#breeze-testing-providers-tests-line-99)">Install&#160 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-100)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2460" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-100)">determines&#160;type)&#160;from&#160;&#x27;dist&#x27;&#160;folder&#160;when&#160;entering&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451. [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-101)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2484.4" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-101)">breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2508.8" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-102)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-102)">
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2533.2" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-103)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="2533.2" textLength="512.4" clip-path="url(#breeze-testing-providers-tests-line-103)">&#160;Advanced&#160;flag&#160;for&#160;provider&#160;tests&#160;command&#160;</text><text class="breeze-testing-providers-tests-r5" x="536.8" y="2533.2" textLength="902.8" clip-path="url(#br [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-104)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2557.6" textLength="244" clip-path="url(#breeze-testing-providers-tests-line-104)">--excluded-providers</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2557.6" textLength="976" clip-path="url(#breeze-testing-providers-tests-line-104)">JSON-string&#160;of&#1 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-105)">│</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2582" textLength="976" clip-path="url(#breeze-testing-providers-tests-line-105)">({&#x27;3.12&#x27;:&#160;[&#x27;provider&#x27;]})&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-106)">│</text><text class="breeze-testing-providers-tests-r7" x="463.6" y="2606.4" textLength="976" clip-path="url(#breeze-testing-providers-tests-line-106)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-107)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2630.8" textLength="390.4" clip-path="url(#breeze-testing-providers-tests-line-107)">--providers-constraints-location</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2630.8" textLength="927.2" clip-path="url(#breeze-testing-providers-tests-line-107)">Locati [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-108)">│</text><text class="breeze-testing-providers-tests-r7" x="463.6" y="2655.2" textLength="927.2" clip-path="url(#breeze-testing-providers-tests-line-108)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-109)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2679.6" textLength="341.6" clip-path="url(#breeze-testing-providers-tests-line-109)">--providers-skip-constraints</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2679.6" textLength="597.8" clip-path="url(#breeze-testing-providers-tests-line-109)">Do&#160;no [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-110)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2704" textLength="195.2" clip-path="url(#breeze-testing-providers-tests-line-110)">--skip-providers</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2704" textLength="768.6" clip-path="url(#breeze-testing-providers-tests-line-110)">Space-separated&#160;list&#1 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2728.4" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-111)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="2728.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-111)">
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2752.8" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-112)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="2752.8" textLength="195.2" clip-path="url(#breeze-testing-providers-tests-line-112)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-providers-tests-r5" x="219.6" y="2752.8" textLength="1220" clip-path="url(#breeze-testing-providers-tests-line-112)">─────── [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-113)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2777.2" textLength="109.8" clip-path="url(#breeze-testing-providers-tests-line-113)">--dry-run</text><text class="breeze-testing-providers-tests-r6" x="158.6" y="2777.2" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-113)">-D</text><text class="breeze-t [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-114)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2801.6" textLength="109.8" clip-path="url(#breeze-testing-providers-tests-line-114)">--verbose</text><text class="breeze-testing-providers-tests-r6" x="158.6" y="2801.6" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-114)">-v</text><text class="breeze-t [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-115)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2826" textLength="73.2" clip-path="url(#breeze-testing-providers-tests-line-115)">--help</text><text class="breeze-testing-providers-tests-r6" x="158.6" y="2826" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-115)">-h</text><text class="breeze-testing-pro [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2850.4" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-116)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="2850.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-116)">
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1654.8" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-67)">
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1679.2" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-68)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="1679.2" textLength="402.6" clip-path="url(#breeze-testing-providers-tests-line-68)">&#160;Advanced&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-providers-tests-r5" x="427" y="1679.2" textLength="1012.6" clip-path="url(#breeze-testing-prov [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-69)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1703.6" textLength="231.8" clip-path="url(#breeze-testing-providers-tests-line-69)">--github-repository</text><text class="breeze-testing-providers-tests-r6" x="366" y="1703.6" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-69)">-g</text><text class="bre [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-70)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1728" textLength="183" clip-path="url(#breeze-testing-providers-tests-line-70)">--mount-sources</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1728" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-70)">Choose&#160;scope&#160;of&#160;lo [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-71)">│</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1752.4" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-71)">selected).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-72)">│</text><text class="breeze-testing-providers-tests-r7" x="414.8" y="1776.8" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-72)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove&#160;|&#160;tests&#160;|&#160;providers-and-tests)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-73)">│</text><text class="breeze-testing-providers-tests-r5" x="414.8" y="1801.2" textLength="1024.8" clip-path="url(#breeze-testing-providers-tests-line-73)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-74)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1825.6" textLength="317.2" clip-path="url(#breeze-testing-providers-tests-line-74)">--skip-docker-compose-down</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1825.6" textLength="549" clip-path="url(#breeze-testing-providers-tests-line-74)">Skips&#160;runnin [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-75)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1850" textLength="244" clip-path="url(#breeze-testing-providers-tests-line-75)">--keep-env-variables</text><text class="breeze-testing-providers-tests-r1" x="414.8" y="1850" textLength="1000.4" clip-path="url(#breeze-testing-providers-tests-line-75)">Do&#160;not&#160;clear&#160; [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1874.4" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-76)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-76)">
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1898.8" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-77)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="1898.8" textLength="622.2" clip-path="url(#breeze-testing-providers-tests-line-77)">&#160;Advanced&#160;flag&#160;for&#160;installing&#160;airflow&#160;in&#160;container&#160;</text><text class="breeze-testing-providers-tests-r5" x="646.6" y="1898.8" textLength="793" clip-pat [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-78)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1923.2" textLength="378.2" clip-path="url(#breeze-testing-providers-tests-line-78)">--airflow-constraints-reference</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="1923.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-78)">Constraint [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-79)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="1947.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-79)">(used&#160;in&#160;calculated&#160;constraints&#160;URL).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="b [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-80)">│</text><text class="breeze-testing-providers-tests-r7" x="756.4" y="1972" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-80)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-81)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="1996.4" textLength="341.6" clip-path="url(#breeze-testing-providers-tests-line-81)">--clean-airflow-installation</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="1996.4" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-81)">Clean&#160;th [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-82)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2020.8" textLength="158.6" clip-path="url(#breeze-testing-providers-tests-line-82)">specified&#160;by&#160;</text><text class="breeze-testing-providers-tests-r4" x="915" y="2020.8" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-82)">--use-airflow-versi [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-83)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2045.2" textLength="329.4" clip-path="url(#breeze-testing-providers-tests-line-83)">--force-lowest-dependencies</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2045.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-83)">Run&#160;tests [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-84)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2069.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-84)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2069.6" textLength="12.2" clip-p [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-85)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2094" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-85)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-86)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2118.4" textLength="414.8" clip-path="url(#breeze-testing-providers-tests-line-86)">--install-airflow-with-constraints</text><text class="breeze-testing-providers-tests-r1" x="439.2" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-86)">/</text> [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-87)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2142.8" textLength="195.2" clip-path="url(#breeze-testing-providers-tests-line-87)">with-constraints</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2142.8" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-87)">determined&#160;from&#160 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-88)">│</text><text class="breeze-testing-providers-tests-r5" x="756.4" y="2167.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-88)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2167.2" text [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-89)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2191.6" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-89)">--distribution-format</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2191.6" textLength="231.8" clip-path="url(#breeze-testing-providers-tests-line-89)">Format&#160;of&#160; [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-90)">│</text><text class="breeze-testing-providers-tests-r5" x="756.4" y="2216" textLength="231.8" clip-path="url(#breeze-testing-providers-tests-line-90)">[default:&#160;wheel]&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2216" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-90)">│</text [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-91)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2240.4" textLength="256.2" clip-path="url(#breeze-testing-providers-tests-line-91)">--use-airflow-version</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2240.4" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-91)">Use&#160;(reinstall& [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-92)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2264.8" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-92)">can&#160;also&#160;be&#160;version&#160;(to&#160;install&#160;from&#160;PyPI),&#160;`none`,&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="22 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-93)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2289.2" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-93)">`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#160;`dist`&#160;folder,&#160;or&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2289.2" text [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-94)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-94)">VCS&#160;URL&#160;to&#160;install&#160;from&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-95)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2338" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-95)">(https://pip.pypa.io/en/stable/topics/vcs-support/).&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url(#breeze-test [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-96)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2362.4" textLength="97.6" clip-path="url(#breeze-testing-providers-tests-line-96)">Implies&#160;</text><text class="breeze-testing-providers-tests-r4" x="854" y="2362.4" textLength="183" clip-path="url(#breeze-testing-providers-tests-line-96)">--mount-sources</text><text clas [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-97)">│</text><text class="breeze-testing-providers-tests-r7" x="756.4" y="2386.8" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-97)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-tes [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-98)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2411.2" textLength="353.8" clip-path="url(#breeze-testing-providers-tests-line-98)">--use-distributions-from-dist</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2411.2" textLength="402.6" clip-path="url(#breeze-testing-providers-tests-line-98)">Install&#160 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-99)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2435.6" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-99)">determines&#160;type)&#160;from&#160;&#x27;dist&#x27;&#160;folder&#160;when&#160;entering&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-providers-tests-r5" x="145 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-100)">│</text><text class="breeze-testing-providers-tests-r1" x="756.4" y="2460" textLength="683.2" clip-path="url(#breeze-testing-providers-tests-line-100)">breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2484.4" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-101)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-101)">
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2508.8" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-102)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="2508.8" textLength="512.4" clip-path="url(#breeze-testing-providers-tests-line-102)">&#160;Advanced&#160;flag&#160;for&#160;provider&#160;tests&#160;command&#160;</text><text class="breeze-testing-providers-tests-r5" x="536.8" y="2508.8" textLength="902.8" clip-path="url(#br [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-103)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2533.2" textLength="244" clip-path="url(#breeze-testing-providers-tests-line-103)">--excluded-providers</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2533.2" textLength="976" clip-path="url(#breeze-testing-providers-tests-line-103)">JSON-string&#160;of&#1 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-104)">│</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2557.6" textLength="976" clip-path="url(#breeze-testing-providers-tests-line-104)">({&#x27;3.12&#x27;:&#160;[&#x27;provider&#x27;]})&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-105)">│</text><text class="breeze-testing-providers-tests-r7" x="463.6" y="2582" textLength="976" clip-path="url(#breeze-testing-providers-tests-line-105)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-106)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2606.4" textLength="390.4" clip-path="url(#breeze-testing-providers-tests-line-106)">--providers-constraints-location</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2606.4" textLength="927.2" clip-path="url(#breeze-testing-providers-tests-line-106)">Locati [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-107)">│</text><text class="breeze-testing-providers-tests-r7" x="463.6" y="2630.8" textLength="927.2" clip-path="url(#breeze-testing-providers-tests-line-107)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-108)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2655.2" textLength="341.6" clip-path="url(#breeze-testing-providers-tests-line-108)">--providers-skip-constraints</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2655.2" textLength="597.8" clip-path="url(#breeze-testing-providers-tests-line-108)">Do&#160;no [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-109)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2679.6" textLength="195.2" clip-path="url(#breeze-testing-providers-tests-line-109)">--skip-providers</text><text class="breeze-testing-providers-tests-r1" x="463.6" y="2679.6" textLength="768.6" clip-path="url(#breeze-testing-providers-tests-line-109)">Space-separated&#160;l [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2704" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-110)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="2704" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-110)">
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2728.4" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-111)">╭─</text><text class="breeze-testing-providers-tests-r5" x="24.4" y="2728.4" textLength="195.2" clip-path="url(#breeze-testing-providers-tests-line-111)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-providers-tests-r5" x="219.6" y="2728.4" textLength="1220" clip-path="url(#breeze-testing-providers-tests-line-111)">─────── [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-112)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2752.8" textLength="109.8" clip-path="url(#breeze-testing-providers-tests-line-112)">--dry-run</text><text class="breeze-testing-providers-tests-r6" x="158.6" y="2752.8" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-112)">-D</text><text class="breeze-t [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-113)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2777.2" textLength="109.8" clip-path="url(#breeze-testing-providers-tests-line-113)">--verbose</text><text class="breeze-testing-providers-tests-r6" x="158.6" y="2777.2" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-113)">-v</text><text class="breeze-t [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-114)">│</text><text class="breeze-testing-providers-tests-r4" x="24.4" y="2801.6" textLength="73.2" clip-path="url(#breeze-testing-providers-tests-line-114)">--help</text><text class="breeze-testing-providers-tests-r6" x="158.6" y="2801.6" textLength="24.4" clip-path="url(#breeze-testing-providers-tests-line-114)">-h</text><text class="breeze-testi [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2826" textLength="1464" clip-path="url(#breeze-testing-providers-tests-line-115)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-providers-tests-r1" x="1464" y="2826" textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-115)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_testing_providers-tests.txt b/dev/breeze/doc/images/output_testing_providers-tests.txt
index a6a3dba70f1..e3969eae7d7 100644
--- a/dev/breeze/doc/images/output_testing_providers-tests.txt
+++ b/dev/breeze/doc/images/output_testing_providers-tests.txt
@@ -1 +1 @@
-9b35c720976b2923e8d34d51919c16ea
+e38e20ca833d2fc03b5f6a8fb746f47c
diff --git a/dev/breeze/src/airflow_breeze/commands/testing_commands.py b/dev/breeze/src/airflow_breeze/commands/testing_commands.py
index a133b7593e2..cdaaa3c11c3 100644
--- a/dev/breeze/src/airflow_breeze/commands/testing_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/testing_commands.py
@@ -545,12 +545,6 @@ option_use_xdist = click.option(
     is_flag=True,
     envvar="USE_XDIST",
 )
-option_remove_arm_packages = click.option(
-    "--remove-arm-packages",
-    help="Removes arm packages from the image to test if ARM collection works",
-    is_flag=True,
-    envvar="REMOVE_ARM_PACKAGES",
-)
 option_force_sa_warnings = click.option(
     "--force-sa-warnings/--no-force-sa-warnings",
     help="Enable `sqlalchemy.exc.MovedIn20Warning` during the tests runs.",
@@ -604,7 +598,6 @@ option_total_test_timeout = click.option(
 @option_parallelism
 @option_postgres_version
 @option_python
-@option_remove_arm_packages
 @option_run_db_tests_only
 @option_run_in_parallel
 @option_skip_cleanup
@@ -668,7 +661,6 @@ def core_tests(**kwargs):
 @option_providers_constraints_location
 @option_providers_skip_constraints
 @option_python
-@option_remove_arm_packages
 @option_run_db_tests_only
 @option_run_in_parallel
 @option_skip_cleanup
@@ -735,7 +727,6 @@ def task_sdk_tests(**kwargs):
         distribution_format="wheel",
         providers_constraints_location="",
         providers_skip_constraints=False,
-        remove_arm_packages=False,
         skip_cleanup=False,
         skip_providers="",
         test_type=ALL_TEST_TYPE,
@@ -794,7 +785,6 @@ def airflow_ctl_tests(**kwargs):
         distribution_format="wheel",
         providers_constraints_location="",
         providers_skip_constraints=False,
-        remove_arm_packages=False,
         skip_cleanup=False,
         skip_providers="",
         test_type=ALL_TEST_TYPE,
@@ -1295,7 +1285,6 @@ def _run_test_command(
     providers_constraints_location: str,
     providers_skip_constraints: bool,
     python: str,
-    remove_arm_packages: bool,
     run_db_tests_only: bool,
     run_in_parallel: bool,
     skip_cleanup: bool,
@@ -1346,7 +1335,6 @@ def _run_test_command(
         providers_constraints_location=providers_constraints_location,
         providers_skip_constraints=providers_skip_constraints,
         python=python,
-        remove_arm_packages=remove_arm_packages,
         run_db_tests_only=run_db_tests_only,
         skip_db_tests=skip_db_tests,
         test_type=test_type,
diff --git a/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py b/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
index 6469e576549..77d92f0cd95 100644
--- a/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
@@ -67,7 +67,6 @@ TEST_UPGRADING_PACKAGES: dict[str, str | list[str]] = {
         "--upgrade-boto",
         "--downgrade-sqlalchemy",
         "--downgrade-pendulum",
-        "--remove-arm-packages",
     ],
 }
 
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 78e22751cfb..35a7f633f19 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -196,7 +196,6 @@ class ShellParams:
     python: str = ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[0]
     quiet: bool = False
     regenerate_missing_docs: bool = False
-    remove_arm_packages: bool = False
     restart: bool = False
     run_db_tests_only: bool = False
     run_tests: bool = False
@@ -615,7 +614,6 @@ class ShellParams:
         _set_var(_env, "QUIET", self.quiet)
         _set_var(_env, "REDIS_HOST_PORT", None, REDIS_HOST_PORT)
         _set_var(_env, "REGENERATE_MISSING_DOCS", self.regenerate_missing_docs)
-        _set_var(_env, "REMOVE_ARM_PACKAGES", self.remove_arm_packages)
         _set_var(_env, "RUN_TESTS", self.run_tests)
         _set_var(_env, "SKIP_ENVIRONMENT_INITIALIZATION", self.skip_environment_initialization)
         _set_var(_env, "SKIP_SSH_SETUP", self.skip_ssh_setup)
diff --git a/scripts/ci/testing/run_unit_tests.sh b/scripts/ci/testing/run_unit_tests.sh
index 13ebf302672..9db2b44b9b2 100755
--- a/scripts/ci/testing/run_unit_tests.sh
+++ b/scripts/ci/testing/run_unit_tests.sh
@@ -52,11 +52,6 @@ function core_tests() {
         breeze testing core-tests --test-type "All-Quarantined" || true
         RESULT=$?
         set +x
-    elif [[ "${TEST_SCOPE}" == "ARM collection" ]]; then
-        set -x
-        breeze testing core-tests --collect-only --remove-arm-packages --test-type "All" --no-db-reset
-        RESULT=$?
-        set +x
     elif [[  "${TEST_SCOPE}" == "System" ]]; then
         set -x
         breeze testing system-tests airflow-core/tests/system/example_empty.py
@@ -100,11 +95,6 @@ function providers_tests() {
         breeze testing providers-tests --test-type "All-Quarantined" || true
         RESULT=$?
         set +x
-    elif [[ "${TEST_SCOPE}" == "ARM collection" ]]; then
-        set -x
-        breeze testing providers-tests --collect-only --remove-arm-packages --test-type "All" --no-db-reset
-        RESULT=$?
-        set +x
     else
         echo "Unknown test scope: ${TEST_SCOPE}"
         set -e
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index e89c40d3f29..367a7825348 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -305,13 +305,6 @@ function check_run_tests() {
         return
     fi
 
-    if [[ ${REMOVE_ARM_PACKAGES:="false"} == "true" ]]; then
-        # Test what happens if we do not have ARM packages installed.
-        # This is useful to see if pytest collection works without ARM packages which is important
-        # for the MacOS M1 users running tests in their ARM machines with `breeze testing *-tests` command
-        python "${IN_CONTAINER_DIR}/remove_arm_packages.py"
-    fi
-
     if [[ ${TEST_GROUP:=""} == "system" ]]; then
         exec "${IN_CONTAINER_DIR}/run_system_tests.sh" "${@}"
     else
diff --git a/scripts/in_container/remove_arm_packages.py b/scripts/in_container/remove_arm_packages.py
deleted file mode 100644
index 7b12ad5d57e..00000000000
--- a/scripts/in_container/remove_arm_packages.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-from __future__ import annotations
-
-import json
-import re
-import subprocess
-from pathlib import Path
-
-from rich.console import Console
-
-AIRFLOW_ROOT_PATH = Path(__file__).parents[2].resolve()
-console = Console(width=400, color_system="standard")
-
-
-def remove_packages_missing_on_arm():
-    console.print("[bright_blue]Removing packages missing on ARM.")
-    provider_dependencies = json.loads(
-        (AIRFLOW_ROOT_PATH / "generated" / "provider_dependencies.json").read_text()
-    )
-    all_dependencies_to_remove = []
-    for provider in provider_dependencies:
-        for dependency in provider_dependencies[provider]["deps"]:
-            if 'platform_machine != "aarch64"' in dependency:
-                all_dependencies_to_remove.append(re.split(r"[~<>=;]", dependency)[0])
-    console.print(
-        "\n[bright_blue]Uninstalling ARM-incompatible libraries "
-        + " ".join(all_dependencies_to_remove)
-        + "\n"
-    )
-    subprocess.run(["pip", "uninstall", "-y"] + all_dependencies_to_remove)
-
-
-if __name__ == "__main__":
-    remove_packages_missing_on_arm()