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 2023/12/10 15:07:17 UTC

(airflow) branch main updated: Unify how docker commands get executed in Breeze (#36131)

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 2d15dbfe18 Unify how docker commands get executed in Breeze (#36131)
2d15dbfe18 is described below

commit 2d15dbfe18f3eab0fbedb32af8e527bcf753f442
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Sun Dec 10 16:07:06 2023 +0100

    Unify how docker commands get executed in Breeze (#36131)
    
    So far we executed commands in CI image in breeze in two ways:
    
    * entering the shell (which runs docker-compose under the hood)
    * running `docker run` with the CI image
    
    This requires rather complex mapping of environment variables
    between `docker-compose` and `docker`. Since recently (#35862)
    we can use `shell` command to run commands in very similar way
    as docker run (with docker-compose, without database and extra
    components - just using the same `breeze shell` mechanisms.
    
    This PR converts all the usages of docker run CI_IMAGE we had
    and converts them to use modified `enter_shell` method that has
    been moved to "docker_command_utils". This also simplified
    passing arguments to the "enter_shell" command - no longer need
    to filter out none parameters and **kwargs - all parameters are
    passed explicitly.
    
    This also allowed to remove some of the code (extracting args,
    filtering_out_none) that are not used anymore.
    
    The entypoint CI has been slightly refactored - to provide
    a bit better structure and handle `--skip-environment-initialization`
    better - we can now both set `--use-airflow-version` and
    `--skip-environment-initialization` which was not possible
    before.
---
 Dockerfile.ci                                      | 122 +++++-----
 .../airflow_breeze/commands/developer_commands.py  | 168 ++------------
 .../commands/release_management_commands.py        | 156 +++----------
 .../commands/release_management_commands_config.py |   3 -
 dev/breeze/src/airflow_breeze/global_constants.py  |   5 +-
 .../src/airflow_breeze/params/shell_params.py      |  33 ++-
 .../src/airflow_breeze/utils/common_options.py     |   3 +
 .../airflow_breeze/utils/docker_command_utils.py   | 255 +++++++++++++++++----
 dev/breeze/src/airflow_breeze/utils/path_utils.py  |   6 +
 dev/breeze/src/airflow_breeze/utils/run_utils.py   |   5 -
 dev/breeze/tests/test_commands.py                  |  55 -----
 dev/breeze/tests/test_run_utils.py                 |   8 -
 images/breeze/output_ci-image_build.txt            |   2 +-
 images/breeze/output_prod-image_build.txt          |   2 +-
 ...put_release-management_generate-constraints.svg |  44 ++--
 ...put_release-management_generate-constraints.txt |   2 +-
 ...elease-management_install-provider-packages.svg | 110 +++++----
 ...elease-management_install-provider-packages.txt |   2 +-
 ...release-management_verify-provider-packages.svg |  92 ++++----
 ...release-management_verify-provider-packages.txt |   2 +-
 images/breeze/output_shell.svg                     |  86 +++----
 images/breeze/output_shell.txt                     |   2 +-
 images/breeze/output_start-airflow.txt             |   2 +-
 ...ve-sources.yml => backend-sqlite-no-volume.yml} |  13 +-
 scripts/ci/docker-compose/remove-sources.yml       |   4 +-
 scripts/docker/entrypoint_ci.sh                    | 136 ++++++-----
 .../in_container/install_airflow_and_providers.py  |  19 +-
 27 files changed, 607 insertions(+), 730 deletions(-)

diff --git a/Dockerfile.ci b/Dockerfile.ci
index b569c47e41..845a1c8f44 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -710,7 +710,7 @@ PYTHON_MAJOR_MINOR_VERSION=${PYTHON_MAJOR_MINOR_VERSION:=3.8}
 
 export AIRFLOW_HOME=${AIRFLOW_HOME:=${HOME}}
 
-: "${AIRFLOW_SOURCES:?"ERROR: AIRFLOW_SOURCES not set !!!!"}"
+mkdir "${AIRFLOW_HOME}/sqlite" -p || true
 
 ASSET_COMPILATION_WAIT_MULTIPLIER=${ASSET_COMPILATION_WAIT_MULTIPLIER:=1}
 
@@ -755,8 +755,10 @@ If it does not complete soon, you might want to stop it and remove file lock:
     fi
 }
 
-if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
-
+function environment_initialization() {
+    if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} == "true" ]]; then
+        return
+    fi
     if [[ $(uname -m) == "arm64" || $(uname -m) == "aarch64" ]]; then
         if [[ ${BACKEND:=} == "mssql" ]]; then
             echo "${COLOR_RED}ARM platform is not supported for ${BACKEND} backend. Exiting.${COLOR_RESET}"
@@ -778,6 +780,7 @@ if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
         echo
         export AIRFLOW__SCHEDULER__STANDALONE_DAG_PROCESSOR=True
     fi
+
     if [[ ${DATABASE_ISOLATION=} == "true" ]]; then
         echo "${COLOR_BLUE}Force database isolation configuration:${COLOR_RESET}"
         export AIRFLOW__CORE__DATABASE_ACCESS_ISOLATION=True
@@ -787,33 +790,10 @@ if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
 
     RUN_TESTS=${RUN_TESTS:="false"}
     CI=${CI:="false"}
-    USE_AIRFLOW_VERSION="${USE_AIRFLOW_VERSION:=""}"
-
-    if [[ ${USE_AIRFLOW_VERSION} == "" && ${USE_PACKAGES_FROM_DIST=} != "true" ]]; then
-        export PYTHONPATH=${AIRFLOW_SOURCES}
-        echo
-        echo "${COLOR_BLUE}Using airflow version from current sources${COLOR_RESET}"
-        echo
-        # Cleanup the logs, tmp when entering the environment
-        sudo rm -rf "${AIRFLOW_SOURCES}"/logs/*
-        sudo rm -rf "${AIRFLOW_SOURCES}"/tmp/*
-        mkdir -p "${AIRFLOW_SOURCES}"/logs/
-        mkdir -p "${AIRFLOW_SOURCES}"/tmp/
-    else
-        python "${IN_CONTAINER_DIR}/install_airflow_and_providers.py"
-    fi
-
-    if [[ "${USE_AIRFLOW_VERSION}" =~ ^2\.2\..*|^2\.1\..*|^2\.0\..* && "${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=}" != "" ]]; then
-        # make sure old variable is used for older airflow versions
-        export AIRFLOW__CORE__SQL_ALCHEMY_CONN="${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN}"
-    fi
 
     # Added to have run-tests on path
     export PATH=${PATH}:${AIRFLOW_SOURCES}
 
-    # This is now set in conftest.py - only for pytest tests
-    unset AIRFLOW__CORE__UNIT_TEST_MODE
-
     mkdir -pv "${AIRFLOW_HOME}/logs/"
 
     # Change the default worker_concurrency for tests
@@ -869,54 +849,86 @@ if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
         # shellcheck source=scripts/in_container/bin/run_tmux
         exec run_tmux
     fi
-fi
+}
+
+function determine_airflow_to_use() {
+    USE_AIRFLOW_VERSION="${USE_AIRFLOW_VERSION:=""}"
+    if [[ ${USE_AIRFLOW_VERSION} == "" && ${USE_PACKAGES_FROM_DIST=} != "true" ]]; then
+        export PYTHONPATH=${AIRFLOW_SOURCES}
+        echo
+        echo "${COLOR_BLUE}Using airflow version from current sources${COLOR_RESET}"
+        echo
+        # Cleanup the logs, tmp when entering the environment
+        sudo rm -rf "${AIRFLOW_SOURCES}"/logs/*
+        sudo rm -rf "${AIRFLOW_SOURCES}"/tmp/*
+        mkdir -p "${AIRFLOW_SOURCES}"/logs/
+        mkdir -p "${AIRFLOW_SOURCES}"/tmp/
+    else
+        python "${IN_CONTAINER_DIR}/install_airflow_and_providers.py"
+    fi
 
-rm -f "${AIRFLOW_SOURCES}/pytest.ini"
-rm -f "${AIRFLOW_SOURCES}/.coveragerc"
+    if [[ "${USE_AIRFLOW_VERSION}" =~ ^2\.2\..*|^2\.1\..*|^2\.0\..* && "${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=}" != "" ]]; then
+        # make sure old variable is used for older airflow versions
+        export AIRFLOW__CORE__SQL_ALCHEMY_CONN="${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN}"
+    fi
+}
 
-if [[ ${UPGRADE_BOTO=} == "true" ]]; then
+function check_boto_upgrade() {
+    if [[ ${UPGRADE_BOTO=} != "true" ]]; then
+        return
+    fi
     echo
     echo "${COLOR_BLUE}Upgrading boto3, botocore to latest version to run Amazon tests with them${COLOR_RESET}"
     echo
     pip uninstall --root-user-action ignore aiobotocore s3fs -y || true
     pip install --root-user-action ignore --upgrade boto3 botocore
     pip check
-fi
-if [[ ${DOWNGRADE_SQLALCHEMY=} == "true" ]]; then
+}
+
+function check_download_sqlalchemy() {
+    if [[ ${DOWNGRADE_SQLALCHEMY=} != "true" ]]; then
+        return
+    fi
     min_sqlalchemy_version=$(grep "sqlalchemy>=" setup.cfg | sed "s/.*>=\([0-9\.]*\).*/\1/")
     echo
     echo "${COLOR_BLUE}Downgrading sqlalchemy to minimum supported version: ${min_sqlalchemy_version}${COLOR_RESET}"
     echo
     pip install --root-user-action ignore "sqlalchemy==${min_sqlalchemy_version}"
     pip check
-fi
+}
 
-pip uninstall --root-user-action ignore "pytest-capture-warnings" -y >/dev/null 2>&1 || true
+function check_run_tests() {
+    if [[ ${RUN_TESTS=} != "true" ]]; then
+        return
+    fi
 
-set +u
-if [[ "${RUN_TESTS}" != "true" ]]; then
-    exec /bin/bash "${@}"
-fi
-set -u
+    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 [[ ${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_TYPE} == "PlainAsserts" ]]; then
+       # Plain asserts should be converted to env variable to make sure they are taken into account
+       # otherwise they will not be effective during test collection when plain assert is breaking collection
+       export PYTEST_PLAIN_ASSERTS="true"
+    fi
 
-if [[ ${TEST_TYPE} == "PlainAsserts" ]]; then
-   # Plain asserts should be converted to env variable to make sure they are taken into account
-   # otherwise they will not be effective during test collection when plain assert is breaking collection
-   export PYTEST_PLAIN_ASSERTS="true"
-fi
+    if [[ ${RUN_SYSTEM_TESTS:="false"} == "true" ]]; then
+        exec "${IN_CONTAINER_DIR}/run_system_tests.sh" "${@}"
+    else
+        exec "${IN_CONTAINER_DIR}/run_ci_tests.sh" "${@}"
+    fi
+}
 
-if [[ ${RUN_SYSTEM_TESTS:="false"} == "true" ]]; then
-    "${IN_CONTAINER_DIR}/run_system_tests.sh" "${@}"
-else
-    "${IN_CONTAINER_DIR}/run_ci_tests.sh" "${@}"
-fi
+determine_airflow_to_use
+environment_initialization
+check_boto_upgrade
+check_download_sqlalchemy
+check_run_tests "${@}"
+
+exec /bin/bash "${@}"
 EOF
 
 # The content below is automatically copied from scripts/docker/entrypoint_exec.sh
diff --git a/dev/breeze/src/airflow_breeze/commands/developer_commands.py b/dev/breeze/src/airflow_breeze/commands/developer_commands.py
index 9e1d50a33e..050bc02271 100644
--- a/dev/breeze/src/airflow_breeze/commands/developer_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/developer_commands.py
@@ -18,6 +18,7 @@ from __future__ import annotations
 
 import os
 import re
+import shlex
 import shutil
 import sys
 import threading
@@ -33,14 +34,11 @@ from airflow_breeze.commands.main_command import main
 from airflow_breeze.global_constants import (
     ALLOWED_TTY,
     DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
-    DOCKER_DEFAULT_PLATFORM,
-    MOUNT_SELECTED,
 )
 from airflow_breeze.params.build_ci_params import BuildCiParams
 from airflow_breeze.params.doc_build_params import DocBuildParams
 from airflow_breeze.params.shell_params import ShellParams
 from airflow_breeze.pre_commit_ids import PRE_COMMIT_LIST
-from airflow_breeze.utils.cache import read_from_cache_file
 from airflow_breeze.utils.coertions import one_or_none_set
 from airflow_breeze.utils.common_options import (
     argument_doc_packages,
@@ -98,26 +96,24 @@ from airflow_breeze.utils.common_options import (
 from airflow_breeze.utils.console import get_console
 from airflow_breeze.utils.custom_param_types import BetterChoice
 from airflow_breeze.utils.docker_command_utils import (
+    bring_compose_project_down,
     check_docker_resources,
+    enter_shell,
+    execute_command_in_shell,
     fix_ownership_using_docker,
-    get_extra_docker_flags,
     perform_environment_checks,
 )
 from airflow_breeze.utils.packages import expand_all_provider_packages
 from airflow_breeze.utils.path_utils import (
     AIRFLOW_SOURCES_ROOT,
     cleanup_python_generated_files,
-    create_mypy_volume_if_needed,
 )
 from airflow_breeze.utils.run_utils import (
-    RunCommandResult,
     assert_pre_commit_installed,
-    filter_out_none,
     run_command,
     run_compile_www_assets,
 )
 from airflow_breeze.utils.shared_options import get_dry_run, get_verbose, set_forced_answer
-from airflow_breeze.utils.visuals import ASCIIART, ASCIIART_STYLE, CHEATSHEET, CHEATSHEET_STYLE
 
 
 def _determine_constraint_branch_used(airflow_constraints_reference: str, use_airflow_version: str | None):
@@ -288,11 +284,12 @@ def shell(
     airflow_constraints_reference = _determine_constraint_branch_used(
         airflow_constraints_reference, use_airflow_version
     )
-    result = enter_shell(
+    shell_params = ShellParams(
         airflow_constraints_location=airflow_constraints_location,
         airflow_constraints_mode=airflow_constraints_mode,
         airflow_constraints_reference=airflow_constraints_reference,
         airflow_extras=airflow_extras,
+        airflow_skip_constraints=airflow_skip_constraints,
         backend=backend,
         builder=builder,
         celery_broker=celery_broker,
@@ -320,6 +317,7 @@ def shell(
         providers_constraints_location=providers_constraints_location,
         providers_constraints_mode=providers_constraints_mode,
         providers_constraints_reference=providers_constraints_reference,
+        providers_skip_constraints=providers_skip_constraints,
         python=python,
         quiet=quiet,
         run_db_tests_only=run_db_tests_only,
@@ -335,6 +333,8 @@ def shell(
         restart=restart,
         warn_image_upgrade_needed=warn_image_upgrade_needed,
     )
+    rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
+    result = enter_shell(shell_params=shell_params)
     fix_ownership_using_docker()
     sys.exit(result.returncode)
 
@@ -450,12 +450,12 @@ def start_airflow(
         airflow_constraints_reference, use_airflow_version
     )
 
-    result = enter_shell(
+    shell_params = ShellParams(
         airflow_constraints_location=airflow_constraints_location,
         airflow_constraints_mode=airflow_constraints_mode,
         airflow_constraints_reference=airflow_constraints_reference,
-        airflow_skip_constraints=airflow_skip_constraints,
         airflow_extras=airflow_extras,
+        airflow_skip_constraints=airflow_skip_constraints,
         backend=backend,
         builder=builder,
         celery_broker=celery_broker,
@@ -492,6 +492,8 @@ def start_airflow(
         use_airflow_version=use_airflow_version,
         use_packages_from_dist=use_packages_from_dist,
     )
+    rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
+    result = enter_shell(shell_params=shell_params)
     fix_ownership_using_docker()
     sys.exit(result.returncode)
 
@@ -549,7 +551,6 @@ def build_docs(
             for directory in docs_dir.rglob(dir_name):
                 get_console().print(f"[info]Removing {directory}")
                 shutil.rmtree(directory, ignore_errors=True)
-    ci_image_name = build_params.airflow_image_name
     doc_builder = DocBuildParams(
         package_filter=package_filter,
         docs_only=docs_only,
@@ -557,32 +558,20 @@ def build_docs(
         one_pass_only=one_pass_only,
         short_doc_packages=expand_all_provider_packages(doc_packages),
     )
+    cmd = "/opt/airflow/scripts/in_container/run_docs_build.sh " + " ".join(
+        [shlex.quote(arg) for arg in doc_builder.args_doc_builder]
+    )
     shell_params = ShellParams(
         github_repository=github_repository,
         python=DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
-        quiet=True,
-        skip_environment_initialization=True,
-        skip_image_upgrade_check=True,
     )
-    extra_docker_flags = get_extra_docker_flags(mount_sources=MOUNT_SELECTED)
-    cmd = [
-        "docker",
-        "run",
-        "-t",
-        *extra_docker_flags,
-        "--pull",
-        "never",
-        ci_image_name,
-        "/opt/airflow/scripts/in_container/run_docs_build.sh",
-        *doc_builder.args_doc_builder,
-    ]
-    process = run_command(cmd, text=True, check=False, env=shell_params.env_variables_for_docker_commands)
+    result = execute_command_in_shell(shell_params, project_name="docs", command=cmd)
     fix_ownership_using_docker()
-    if process.returncode == 0:
+    if result.returncode == 0:
         get_console().print(
             "[info]Start the webserver in breeze and view the built docs at http://localhost:28080/docs/[/]"
         )
-    sys.exit(process.returncode)
+    sys.exit(result.returncode)
 
 
 @main.command(
@@ -861,125 +850,6 @@ def exec(exec_args: tuple):
         sys.exit(process.returncode)
 
 
-def enter_shell(**kwargs) -> RunCommandResult:
-    """
-    Executes entering shell using the parameters passed as kwargs:
-
-    * checks if docker version is good
-    * checks if docker-compose version is good
-    * updates kwargs with cached parameters
-    * displays ASCIIART and CHEATSHEET unless disabled
-    * build ShellParams from the updated kwargs
-    * shuts down existing project
-    * executes the command to drop the user to Breeze shell
-
-    """
-    quiet: bool = kwargs.get("quiet") or False
-    perform_environment_checks(quiet=quiet)
-    fix_ownership_using_docker(quiet=quiet)
-    cleanup_python_generated_files()
-    if read_from_cache_file("suppress_asciiart") is None and not quiet:
-        get_console().print(ASCIIART, style=ASCIIART_STYLE)
-    if read_from_cache_file("suppress_cheatsheet") is None and not quiet:
-        get_console().print(CHEATSHEET, style=CHEATSHEET_STYLE)
-    shell_params = ShellParams(**filter_out_none(**kwargs))
-    rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
-    if shell_params.use_airflow_version:
-        # in case you use specific version of Airflow, you want to bring airflow down automatically before
-        # using it. This prevents the problem that if you have newer DB, airflow will not know how
-        # to migrate to it and fail with "Can't locate revision identified by 'xxxx'".
-        get_console().print(
-            f"[warning]Bringing the project down as {shell_params.use_airflow_version} "
-            f"airflow version is used[/]"
-        )
-        bring_compose_project_down(preserve_volumes=False, shell_params=shell_params)
-    if shell_params.backend == "sqlite":
-        get_console().print(
-            f"\n[warning]backend: sqlite is not "
-            f"compatible with executor: {shell_params.executor}. "
-            f"Changing the executor to SequentialExecutor.\n"
-        )
-        shell_params.executor = "SequentialExecutor"
-
-    if shell_params.executor == "CeleryExecutor" and shell_params.use_airflow_version:
-        if shell_params.airflow_extras and "celery" not in shell_params.airflow_extras.split():
-            get_console().print(
-                f"\n[warning]CeleryExecutor requires airflow_extras: celery. "
-                f"Adding celery to extras: '{shell_params.airflow_extras}'.\n"
-            )
-            shell_params.airflow_extras += ",celery"
-        elif not shell_params.airflow_extras:
-            get_console().print(
-                "\n[warning]CeleryExecutor requires airflow_extras: celery. "
-                "Setting airflow extras to 'celery'.\n"
-            )
-            shell_params.airflow_extras = "celery"
-    if shell_params.restart:
-        bring_compose_project_down(preserve_volumes=False, shell_params=shell_params)
-    if shell_params.include_mypy_volume:
-        create_mypy_volume_if_needed()
-    shell_params.print_badge_info()
-    cmd = ["docker", "compose"]
-    if shell_params.quiet:
-        cmd.extend(["--progress", "quiet"])
-    if shell_params.project_name:
-        cmd.extend(["--project-name", shell_params.project_name])
-    cmd.extend(["run", "--service-ports", "--rm"])
-    if shell_params.tty == "disabled":
-        cmd.append("--no-TTY")
-    elif shell_params.tty == "enabled":
-        cmd.append("--tty")
-    cmd.append("airflow")
-    cmd_added = shell_params.command_passed
-    if cmd_added is not None:
-        cmd.extend(["-c", cmd_added])
-    if "arm64" in DOCKER_DEFAULT_PLATFORM:
-        if shell_params.backend == "mysql":
-            get_console().print("\n[warn]MySQL use MariaDB client binaries on ARM architecture.[/]\n")
-        elif shell_params.backend == "mssql":
-            get_console().print("\n[error]MSSQL is not supported on ARM architecture[/]\n")
-            sys.exit(1)
-
-    if "openlineage" in shell_params.integration or "all" in shell_params.integration:
-        if shell_params.backend != "postgres" or shell_params.postgres_version not in ["12", "13", "14"]:
-            get_console().print(
-                "\n[error]Only PostgreSQL 12, 13, and 14 are supported "
-                "as a backend with OpenLineage integration via Breeze[/]\n"
-            )
-            sys.exit(1)
-
-    command_result = run_command(
-        cmd,
-        text=True,
-        check=False,
-        env=shell_params.env_variables_for_docker_commands,
-        output_outside_the_group=True,
-    )
-    if command_result.returncode == 0:
-        return command_result
-    else:
-        get_console().print(f"[red]Error {command_result.returncode} returned[/]")
-        if get_verbose():
-            get_console().print(command_result.stderr)
-        return command_result
-
-
-def bring_compose_project_down(preserve_volumes: bool, shell_params: ShellParams):
-    down_command_to_execute = ["docker", "compose"]
-    if shell_params.project_name:
-        down_command_to_execute.extend(["--project-name", shell_params.project_name])
-    down_command_to_execute.extend(["down", "--remove-orphans"])
-    if not preserve_volumes:
-        down_command_to_execute.append("--volumes")
-    run_command(
-        down_command_to_execute,
-        text=True,
-        check=False,
-        capture_output=shell_params.quiet,
-        env=shell_params.env_variables_for_docker_commands,
-    )
-
-
 def stop_exec_on_error(returncode: int):
     get_console().print("\n[error]ERROR in finding the airflow docker-compose process id[/]\n")
     sys.exit(returncode)
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index ad3df865f5..ff3f9bf9c7 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -20,7 +20,6 @@ import glob
 import operator
 import os
 import re
-import shlex
 import shutil
 import sys
 import textwrap
@@ -107,8 +106,8 @@ from airflow_breeze.utils.console import MessageType, Output, get_console
 from airflow_breeze.utils.custom_param_types import BetterChoice
 from airflow_breeze.utils.docker_command_utils import (
     check_remote_ghcr_io_commands,
+    execute_command_in_shell,
     fix_ownership_using_docker,
-    get_extra_docker_flags,
     perform_environment_checks,
 )
 from airflow_breeze.utils.github import download_constraints_file, get_active_airflow_versions
@@ -144,7 +143,6 @@ from airflow_breeze.utils.provider_dependencies import (
 from airflow_breeze.utils.publish_docs_builder import PublishDocsBuilder
 from airflow_breeze.utils.python_versions import get_python_version_list
 from airflow_breeze.utils.run_utils import (
-    RunCommandResult,
     clean_www_assets,
     run_command,
     run_compile_www_assets,
@@ -152,13 +150,6 @@ from airflow_breeze.utils.run_utils import (
 from airflow_breeze.utils.shared_options import get_dry_run, get_verbose
 from airflow_breeze.utils.versions import is_pre_release
 
-option_debug_release_management = click.option(
-    "--debug",
-    is_flag=True,
-    help="Drop user in shell instead of running the command. Useful for debugging.",
-    envvar="DEBUG",
-)
-
 if TYPE_CHECKING:
     from packaging.version import Version
 
@@ -171,60 +162,6 @@ class VersionedFile(NamedTuple):
     comparable_version: Version
 
 
-def run_docker_command_with_debug(
-    shell_params: ShellParams,
-    command: list[str],
-    debug: bool,
-    enable_input: bool = False,
-    output_outside_the_group: bool = False,
-    **kwargs,
-) -> RunCommandResult:
-    env = shell_params.env_variables_for_docker_commands
-    extra_docker_flags = get_extra_docker_flags(mount_sources=shell_params.mount_sources)
-    if enable_input or debug:
-        term_flag = "-it"
-    else:
-        term_flag = "-t"
-    base_command = [
-        "docker",
-        "run",
-        term_flag,
-        *extra_docker_flags,
-        "--pull",
-        "never",
-        shell_params.airflow_image_name_with_tag,
-    ]
-    if debug:
-        cmd_string = " ".join([shlex.quote(s) for s in command if s != "-c"])
-        base_command.extend(
-            [
-                "-c",
-                f"""
-echo -e '\\e[34mRun this command to debug:
-
-    {cmd_string}
-
-\\e[0m\n'; exec bash
-""",
-            ]
-        )
-        return run_command(
-            base_command,
-            output_outside_the_group=output_outside_the_group,
-            env=env,
-            **kwargs,
-        )
-    else:
-        base_command.extend(command)
-        return run_command(
-            base_command,
-            check=False,
-            env=env,
-            output_outside_the_group=output_outside_the_group,
-            **kwargs,
-        )
-
-
 AIRFLOW_PIP_VERSION = "23.3.1"
 WHEEL_VERSION = "0.36.2"
 GITPYTHON_VERSION = "3.1.40"
@@ -627,22 +564,16 @@ def prepare_provider_packages(
 
 def run_generate_constraints(
     shell_params: ShellParams,
-    debug: bool,
     output: Output | None,
 ) -> tuple[int, str]:
-    cmd_to_run = [
-        "/opt/airflow/scripts/in_container/run_generate_constraints.sh",
-    ]
-    generate_constraints_result = run_docker_command_with_debug(
-        shell_params=shell_params,
-        command=cmd_to_run,
-        debug=debug,
-        output=output,
-        output_outside_the_group=True,
+    result = execute_command_in_shell(
+        shell_params,
+        project_name="constraints",
+        command="/opt/airflow/scripts/in_container/run_generate_constraints.sh",
     )
     fix_ownership_using_docker()
     return (
-        generate_constraints_result.returncode,
+        result.returncode,
         f"Constraints {shell_params.airflow_constraints_mode}:{shell_params.python}",
     )
 
@@ -679,7 +610,6 @@ def run_generate_constraints_in_parallel(
                     run_generate_constraints,
                     kwds={
                         "shell_params": shell_params,
-                        "debug": False,
                         "output": outputs[index],
                     },
                 )
@@ -707,7 +637,6 @@ def run_generate_constraints_in_parallel(
 @option_debug_resources
 @option_python_versions
 @option_image_tag_for_running
-@option_debug_release_management
 @option_airflow_constraints_mode_ci
 @option_chicken_egg_providers
 @option_github_repository
@@ -716,7 +645,6 @@ def run_generate_constraints_in_parallel(
 @option_answer
 def generate_constraints(
     airflow_constraints_mode: str,
-    debug: bool,
     debug_resources: bool,
     github_repository: str,
     image_tag: str | None,
@@ -731,9 +659,6 @@ def generate_constraints(
     check_remote_ghcr_io_commands()
     fix_ownership_using_docker()
     cleanup_python_generated_files()
-    if debug and run_in_parallel:
-        get_console().print("\n[error]Cannot run --debug and --run-in-parallel at the same time[/]\n")
-        sys.exit(1)
     if run_in_parallel:
         given_answer = user_confirm(
             f"Did you build all CI images {python_versions} with --upgrade-to-newer-dependencies flag set?",
@@ -765,37 +690,33 @@ def generate_constraints(
         python_version_list = get_python_version_list(python_versions)
         shell_params_list = [
             ShellParams(
-                image_tag=image_tag,
-                python=python,
-                github_repository=github_repository,
                 airflow_constraints_mode=airflow_constraints_mode,
                 chicken_egg_providers=chicken_egg_providers,
+                github_repository=github_repository,
+                image_tag=image_tag,
+                python=python,
             )
             for python in python_version_list
         ]
         run_generate_constraints_in_parallel(
-            shell_params_list=shell_params_list,
-            parallelism=parallelism,
-            skip_cleanup=skip_cleanup,
             debug_resources=debug_resources,
             include_success_outputs=True,
+            parallelism=parallelism,
             python_version_list=python_version_list,
+            shell_params_list=shell_params_list,
+            skip_cleanup=skip_cleanup,
         )
     else:
         shell_params = ShellParams(
-            image_tag=image_tag,
-            python=python,
-            github_repository=github_repository,
-            skip_environment_initialization=True,
-            skip_image_upgrade_check=True,
-            quiet=True,
             airflow_constraints_mode=airflow_constraints_mode,
             chicken_egg_providers=chicken_egg_providers,
+            github_repository=github_repository,
+            image_tag=image_tag,
+            python=python,
         )
         return_code, info = run_generate_constraints(
             shell_params=shell_params,
             output=None,
-            debug=debug,
         )
         if return_code != 0:
             get_console().print(f"[error]There was an error when generating constraints: {info}[/]")
@@ -849,17 +770,11 @@ def get_all_providers_in_dist(package_format: str, install_selected_providers: s
 
 def _run_command_for_providers(
     shell_params: ShellParams,
-    cmd_to_run: list[str],
     list_of_providers: list[str],
     output: Output | None,
 ) -> tuple[int, str]:
     shell_params.install_selected_providers = " ".join(list_of_providers)
-    result_command = run_docker_command_with_debug(
-        shell_params=shell_params,
-        command=cmd_to_run,
-        debug=False,
-        output=output,
-    )
+    result_command = execute_command_in_shell(shell_params, project_name="providers")
     return result_command.returncode, f"{list_of_providers}"
 
 
@@ -875,7 +790,6 @@ SDIST_INSTALL_PROGRESS_REGEXP = r"Processing .*|Requirement already satisfied:.*
 @option_airflow_constraints_reference
 @option_airflow_extras
 @option_airflow_skip_constraints
-@option_debug_release_management
 @option_debug_resources
 @option_dry_run
 @option_github_repository
@@ -900,7 +814,6 @@ def install_provider_packages(
     airflow_constraints_reference: str,
     airflow_skip_constraints: bool,
     airflow_extras: str,
-    debug: bool,
     debug_resources: bool,
     github_repository: str,
     include_success_outputs: bool,
@@ -927,12 +840,15 @@ def install_provider_packages(
         airflow_constraints_reference=airflow_constraints_reference,
         airflow_extras=airflow_extras,
         airflow_skip_constraints=airflow_skip_constraints,
+        # We just want to install the providers by entrypoint
+        # we do not need to run any command in the container
+        extra_args=("exit 0",),
         github_repository=github_repository,
         install_selected_providers=install_selected_providers,
         mount_sources=mount_sources,
         package_format=package_format,
-        providers_constraints_mode=providers_constraints_mode,
         providers_constraints_location=providers_constraints_location,
+        providers_constraints_mode=providers_constraints_mode,
         providers_constraints_reference=providers_constraints_reference,
         providers_skip_constraints=providers_skip_constraints,
         python=python,
@@ -940,11 +856,6 @@ def install_provider_packages(
         use_packages_from_dist=use_packages_from_dist,
     )
     rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
-    # We just want to install the providers by entrypoint, we do not need to run any command in the container
-    cmd_to_run = [
-        "-c",
-        "exit 0",
-    ]
     if run_in_parallel:
         list_of_all_providers = get_all_providers_in_dist(
             package_format=package_format, install_selected_providers=install_selected_providers
@@ -995,7 +906,6 @@ def install_provider_packages(
                         _run_command_for_providers,
                         kwds={
                             "shell_params": shell_params,
-                            "cmd_to_run": cmd_to_run,
                             "list_of_providers": list_of_providers,
                             "output": outputs[index],
                         },
@@ -1010,12 +920,7 @@ def install_provider_packages(
             skip_cleanup=skip_cleanup,
         )
     else:
-        result_command = run_docker_command_with_debug(
-            shell_params=shell_params,
-            command=cmd_to_run,
-            debug=debug,
-            output_outside_the_group=True,
-        )
+        result_command = execute_command_in_shell(shell_params, project_name="providers")
         fix_ownership_using_docker()
         sys.exit(result_command.returncode)
 
@@ -1029,7 +934,6 @@ def install_provider_packages(
 @option_airflow_constraints_reference
 @option_airflow_extras
 @option_airflow_skip_constraints
-@option_debug_release_management
 @option_dry_run
 @option_github_repository
 @option_install_selected_providers
@@ -1048,7 +952,6 @@ def verify_provider_packages(
     airflow_constraints_mode: str,
     airflow_constraints_reference: str,
     airflow_extras: str,
-    debug: bool,
     github_repository: str,
     install_selected_providers: str,
     mount_sources: str,
@@ -1074,13 +977,11 @@ def verify_provider_packages(
         airflow_constraints_reference=airflow_constraints_reference,
         airflow_extras=airflow_extras,
         airflow_skip_constraints=airflow_skip_constraints,
-        backend="sqlite",
-        executor="SequentialExecutor",
         github_repository=github_repository,
         mount_sources=mount_sources,
         package_format=package_format,
-        providers_constraints_mode=providers_constraints_mode,
         providers_constraints_location=providers_constraints_location,
+        providers_constraints_mode=providers_constraints_mode,
         providers_constraints_reference=providers_constraints_reference,
         providers_skip_constraints=providers_skip_constraints,
         python=python,
@@ -1088,15 +989,10 @@ def verify_provider_packages(
         use_packages_from_dist=use_packages_from_dist,
     )
     rebuild_or_pull_ci_image_if_needed(command_params=shell_params)
-    cmd_to_run = [
-        "-c",
-        "python /opt/airflow/scripts/in_container/verify_providers.py",
-    ]
-    result_command = run_docker_command_with_debug(
-        shell_params=shell_params,
-        command=cmd_to_run,
-        debug=debug,
-        output_outside_the_group=True,
+    result_command = execute_command_in_shell(
+        shell_params,
+        project_name="providers",
+        command="python /opt/airflow/scripts/in_container/verify_providers.py",
     )
     fix_ownership_using_docker()
     sys.exit(result_command.returncode)
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index d51aa8722e..bf03085e99 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -67,7 +67,6 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
                 "--python",
                 "--mount-sources",
                 "--github-repository",
-                "--debug",
             ],
         },
         {
@@ -96,7 +95,6 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
                 "--python",
                 "--mount-sources",
                 "--github-repository",
-                "--debug",
             ],
         },
         {
@@ -163,7 +161,6 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
                 "--python",
                 "--airflow-constraints-mode",
                 "--chicken-egg-providers",
-                "--debug",
                 "--github-repository",
             ],
         },
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py b/dev/breeze/src/airflow_breeze/global_constants.py
index 6d8306058d..f336900d04 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -86,6 +86,9 @@ ALLOWED_EXECUTORS = [
 DEFAULT_ALLOWED_EXECUTOR = ALLOWED_EXECUTORS[0]
 START_AIRFLOW_ALLOWED_EXECUTORS = ["LocalExecutor", "CeleryExecutor", "SequentialExecutor"]
 START_AIRFLOW_DEFAULT_ALLOWED_EXECUTOR = START_AIRFLOW_ALLOWED_EXECUTORS[0]
+
+SEQUENTIAL_EXECUTOR = "SequentialExecutor"
+
 ALLOWED_KIND_OPERATIONS = ["start", "stop", "restart", "status", "deploy", "test", "shell", "k9s"]
 ALLOWED_CONSTRAINTS_MODES_CI = ["constraints-source-providers", "constraints", "constraints-no-providers"]
 ALLOWED_CONSTRAINTS_MODES_PROD = ["constraints", "constraints-no-providers", "constraints-source-providers"]
@@ -196,7 +199,7 @@ ALL_HISTORICAL_PYTHON_VERSIONS = ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
 def get_default_platform_machine() -> str:
     machine = platform.uname().machine
     # Some additional conversion for various platforms...
-    machine = {"AMD64": "x86_64"}.get(machine, machine)
+    machine = {"x86_64": "amd64"}.get(machine, machine)
     return machine
 
 
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 311e2497fa..58c49ecf9b 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -52,8 +52,8 @@ from airflow_breeze.global_constants import (
     get_airflow_version,
 )
 from airflow_breeze.utils.console import get_console
+from airflow_breeze.utils.docker_command_utils import is_docker_rootless
 from airflow_breeze.utils.host_info_utils import get_host_group_id, get_host_os, get_host_user_id
-from airflow_breeze.utils.packages import get_suspended_provider_folders
 from airflow_breeze.utils.path_utils import (
     AIRFLOW_SOURCES_ROOT,
     BUILD_CACHE_DIR,
@@ -153,7 +153,7 @@ class ShellParams:
     executor: str = START_AIRFLOW_DEFAULT_ALLOWED_EXECUTOR
     extra_args: tuple = ()
     force_build: bool = False
-    forward_credentials: str = "false"
+    forward_credentials: bool = False
     forward_ports: bool = True
     github_actions: str = os.environ.get("GITHUB_ACTIONS", "false")
     github_repository: str = APACHE_AIRFLOW_GITHUB_REPOSITORY
@@ -198,7 +198,7 @@ class ShellParams:
     skip_provider_tests: bool = False
     skip_ssh_setup: bool = os.environ.get("SKIP_SSH_SETUP", "false") == "true"
     standalone_dag_processor: bool = False
-    start_airflow: str = "false"
+    start_airflow: bool = False
     test_type: str | None = None
     tty: str = "auto"
     upgrade_boto: bool = False
@@ -298,7 +298,13 @@ class ShellParams:
             get_console().print(f"[info]Airflow used at runtime: {self.use_airflow_version}[/]")
 
     def get_backend_compose_files(self, backend: str) -> list[Path]:
-        backend_docker_compose_file = DOCKER_COMPOSE_DIR / f"backend-{backend}.yml"
+        if backend == "sqlite" and self.project_name != "breeze":
+            # When running scripts, we do not want to mount the volume to make sure that the
+            # sqlite database is not persisted between runs of the script and that the
+            # breeze database is not cleaned accidentally
+            backend_docker_compose_file = DOCKER_COMPOSE_DIR / f"backend-{backend}-no-volume.yml"
+        else:
+            backend_docker_compose_file = DOCKER_COMPOSE_DIR / f"backend-{backend}.yml"
         if backend in ("sqlite", "none") or not self.forward_ports:
             return [backend_docker_compose_file]
         if self.project_name == "pre-commit":
@@ -344,8 +350,6 @@ class ShellParams:
             compose_file_list.append(DOCKER_COMPOSE_DIR / "remove-sources.yml")
         if self.forward_credentials:
             compose_file_list.append(DOCKER_COMPOSE_DIR / "forward-credentials.yml")
-        if self.use_airflow_version is not None:
-            compose_file_list.append(DOCKER_COMPOSE_DIR / "remove-sources.yml")
         if self.include_mypy_volume:
             compose_file_list.append(DOCKER_COMPOSE_DIR / "mypy.yml")
         if "all-testable" in self.integration:
@@ -383,6 +387,8 @@ class ShellParams:
 
     @cached_property
     def suspended_providers_folders(self):
+        from airflow_breeze.utils.packages import get_suspended_provider_folders
+
         return " ".join(get_suspended_provider_folders()).strip()
 
     @cached_property
@@ -453,20 +459,7 @@ class ShellParams:
 
     @cached_property
     def rootless_docker(self) -> bool:
-        try:
-            response = run_command(
-                ["docker", "info", "-f", "{{println .SecurityOptions}}"],
-                capture_output=True,
-                check=False,
-                text=True,
-            )
-            if response.returncode == 0 and "rootless" in response.stdout.strip():
-                get_console().print("[info]Docker is running in rootless mode.[/]\n")
-                return True
-        except FileNotFoundError:
-            # we ignore if docker is missing
-            pass
-        return False
+        return is_docker_rootless()
 
     @cached_property
     def env_variables_for_docker_commands(self) -> dict[str, str]:
diff --git a/dev/breeze/src/airflow_breeze/utils/common_options.py b/dev/breeze/src/airflow_breeze/utils/common_options.py
index 2be5db94c4..bf6288658e 100644
--- a/dev/breeze/src/airflow_breeze/utils/common_options.py
+++ b/dev/breeze/src/airflow_breeze/utils/common_options.py
@@ -48,6 +48,7 @@ from airflow_breeze.global_constants import (
     AUTOCOMPLETE_INTEGRATIONS,
     DEFAULT_ALLOWED_EXECUTOR,
     DEFAULT_CELERY_BROKER,
+    DOCKER_DEFAULT_PLATFORM,
     SINGLE_PLATFORMS,
     START_AIRFLOW_ALLOWED_EXECUTORS,
     START_AIRFLOW_DEFAULT_ALLOWED_EXECUTOR,
@@ -276,12 +277,14 @@ option_platform_multiple = click.option(
     "--platform",
     help="Platform for Airflow image.",
     envvar="PLATFORM",
+    default=DOCKER_DEFAULT_PLATFORM if not generating_command_images() else "linux/amd64",
     type=BetterChoice(ALLOWED_PLATFORMS),
 )
 option_platform_single = click.option(
     "--platform",
     help="Platform for Airflow image.",
     envvar="PLATFORM",
+    default=DOCKER_DEFAULT_PLATFORM if not generating_command_images() else "linux/amd64",
     type=BetterChoice(SINGLE_PLATFORMS),
 )
 option_upgrade_to_newer_dependencies = click.option(
diff --git a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
index 10e628ba5d..c3c5b3ef81 100644
--- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
@@ -26,9 +26,15 @@ from subprocess import DEVNULL, CalledProcessError, CompletedProcess
 from typing import TYPE_CHECKING
 
 from airflow_breeze.params.build_prod_params import BuildProdParams
-from airflow_breeze.utils.host_info_utils import get_host_os
-from airflow_breeze.utils.image import find_available_ci_image
-from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, GENERATED_DOCKER_ENV_FILE
+from airflow_breeze.utils.cache import read_from_cache_file
+from airflow_breeze.utils.host_info_utils import get_host_group_id, get_host_os, get_host_user_id
+from airflow_breeze.utils.path_utils import (
+    AIRFLOW_SOURCES_ROOT,
+    cleanup_python_generated_files,
+    create_mypy_volume_if_needed,
+)
+from airflow_breeze.utils.shared_options import get_verbose
+from airflow_breeze.utils.visuals import ASCIIART, ASCIIART_STYLE, CHEATSHEET, CHEATSHEET_STYLE
 
 try:
     from packaging import version
@@ -39,13 +45,11 @@ except ImportError:
 from airflow_breeze.global_constants import (
     ALLOWED_CELERY_BROKERS,
     ALLOWED_DEBIAN_VERSIONS,
-    APACHE_AIRFLOW_GITHUB_REPOSITORY,
     DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
+    DOCKER_DEFAULT_PLATFORM,
     MIN_DOCKER_COMPOSE_VERSION,
     MIN_DOCKER_VERSION,
-    MOUNT_ALL,
-    MOUNT_REMOVE,
-    MOUNT_SELECTED,
+    SEQUENTIAL_EXECUTOR,
 )
 from airflow_breeze.utils.console import Output, get_console
 from airflow_breeze.utils.run_utils import (
@@ -56,6 +60,7 @@ from airflow_breeze.utils.run_utils import (
 
 if TYPE_CHECKING:
     from airflow_breeze.params.common_build_params import CommonBuildParams
+    from airflow_breeze.params.shell_params import ShellParams
 
 # Those are volumes that are mounted when MOUNT_SELECTED is chosen (which is the default when
 # entering Breeze. MOUNT_SELECTED prevents to mount the files that you can have accidentally added
@@ -99,39 +104,6 @@ VOLUMES_FOR_SELECTED_MOUNTS = [
 ]
 
 
-def get_extra_docker_flags(mount_sources: str, include_mypy_volume: bool = False) -> list[str]:
-    """
-    Returns extra docker flags based on the type of mounting we want to do for sources.
-
-    :param mount_sources: type of mounting we want to have
-    :param env: environment variables to pass to docker
-    :param include_mypy_volume: includes mypy_volume
-    :return: extra flag as list of strings
-    """
-    extra_docker_flags = []
-    if mount_sources == MOUNT_ALL:
-        extra_docker_flags.extend(["--mount", f"type=bind,src={AIRFLOW_SOURCES_ROOT},dst=/opt/airflow/"])
-    elif mount_sources == MOUNT_SELECTED:
-        for src, dst in VOLUMES_FOR_SELECTED_MOUNTS:
-            if (AIRFLOW_SOURCES_ROOT / src).exists():
-                extra_docker_flags.extend(
-                    ["--mount", f"type=bind,src={AIRFLOW_SOURCES_ROOT / src},dst={dst}"]
-                )
-        if include_mypy_volume:
-            extra_docker_flags.extend(
-                ["--mount", "type=volume,src=mypy-cache-volume,dst=/opt/airflow/.mypy_cache"]
-            )
-    elif mount_sources == MOUNT_REMOVE:
-        extra_docker_flags.extend(
-            ["--mount", f"type=bind,src={AIRFLOW_SOURCES_ROOT / 'empty'},dst=/opt/airflow/airflow"]
-        )
-    extra_docker_flags.extend(["--mount", f"type=bind,src={AIRFLOW_SOURCES_ROOT / 'files'},dst=/files"])
-    extra_docker_flags.extend(["--mount", f"type=bind,src={AIRFLOW_SOURCES_ROOT / 'dist'},dst=/dist"])
-    extra_docker_flags.extend(["--rm"])
-    extra_docker_flags.extend(["--env-file", GENERATED_DOCKER_ENV_FILE.as_posix()])
-    return extra_docker_flags
-
-
 def check_docker_resources(airflow_image_name: str) -> RunCommandResult:
     """
     Check if we have enough resources to run docker. This is done via running script embedded in our image.
@@ -563,21 +535,26 @@ def fix_ownership_using_docker(quiet: bool = False):
     if get_host_os() != "linux":
         # no need to even attempt fixing ownership on MacOS/Windows
         return
-    shell_params = find_available_ci_image(
-        github_repository=APACHE_AIRFLOW_GITHUB_REPOSITORY,
-    )
-    extra_docker_flags = get_extra_docker_flags(mount_sources=MOUNT_ALL)
     cmd = [
         "docker",
         "run",
+        "-v",
+        "./scripts/in_container:/opt/airflow/scripts/in_container",
+        "-e",
+        f"HOST_OS={get_host_os()}",
+        "-e",
+        f"HOST_USER_ID={get_host_user_id()}",
+        "-e",
+        f"HOST_GROUP_ID={get_host_group_id()}",
+        "-e",
+        f"DOCKER_IS_ROOTLESS={is_docker_rootless()}",
+        "-e",
+        f"VERBOSE_COMMANDS={str(not quiet).lower()}",
         "-t",
-        *extra_docker_flags,
         OWNERSHIP_CLEANUP_DOCKER_TAG,
         "/opt/airflow/scripts/in_container/run_fix_ownership.py",
     ]
-    run_command(
-        cmd, text=True, check=False, env=shell_params.env_variables_for_docker_commands, capture_output=quiet
-    )
+    run_command(cmd, text=True, check=False, capture_output=quiet)
 
 
 def remove_docker_networks(networks: list[str] | None = None) -> None:
@@ -671,3 +648,185 @@ def get_docker_build_env(image_params: CommonBuildParams) -> dict[str, str]:
     if image_params.docker_host:
         env["DOCKER_HOST"] = image_params.docker_host
     return env
+
+
+def bring_compose_project_down(preserve_volumes: bool, shell_params: ShellParams):
+    down_command_to_execute = ["docker", "compose"]
+    if shell_params.project_name:
+        down_command_to_execute.extend(["--project-name", shell_params.project_name])
+    down_command_to_execute.extend(["down", "--remove-orphans"])
+    if not preserve_volumes:
+        down_command_to_execute.append("--volumes")
+    run_command(
+        down_command_to_execute,
+        text=True,
+        check=False,
+        capture_output=shell_params.quiet,
+        env=shell_params.env_variables_for_docker_commands,
+    )
+
+
+def execute_command_in_shell(
+    shell_params: ShellParams, project_name: str, command: str | None = None
+) -> RunCommandResult:
+    """Executes command in shell.
+
+    When you want to execute a script/bash command inside the CI container and want to use `enter_shell`
+    for this purpose, the helper methods sets the following parameters of shell_params:
+
+    * backend - to force sqlite backend
+    * clean_sql_db=True - to clean the sqlite DB
+    * executor - to force SequentialExecutor
+    * forward_ports=False - to avoid forwarding ports from the container to the host - again that will
+      allow to avoid clashes with other commands and opened breeze shell
+    * project_name - to avoid name clashes with default "breeze" project name used
+    * quiet=True - avoid displaying all "interactive" parts of Breeze: ASCIIART, CHEATSHEET, some diagnostics
+    * skip_environment_initialization - to avoid initializing interactive environment
+    * skip_image_upgrade_check - to avoid checking if the image is up to date
+
+    if command is passed as parameter, extra_args - to pass the command to execute in the shell
+
+    :param shell_params: shell parameters to use
+    :param project_name: Name of the project to use. This avoids name clashes with default 'breeze"
+        project name used - this way you will be able to run the command in parallel to regular
+        "breeze" shell opened in parallel
+    :param command:
+    """
+    shell_params.backend = "sqlite"
+    shell_params.executor = SEQUENTIAL_EXECUTOR
+    shell_params.forward_ports = False
+    shell_params.project_name = project_name
+    shell_params.quiet = True
+    shell_params.skip_environment_initialization = True
+    shell_params.skip_image_upgrade_check = True
+    if get_verbose():
+        get_console().print(f"[warning]Backend forced to: sqlite and {SEQUENTIAL_EXECUTOR}[/]")
+        get_console().print("[warning]Sqlite DB is cleaned[/]")
+        get_console().print(f"[warning]Executor forced to {SEQUENTIAL_EXECUTOR}[/]")
+        get_console().print("[warning]Disabled port forwarding[/]")
+        get_console().print(f"[warning]Project name set to: {project_name}[/]")
+        get_console().print("[warning]Forced quiet mode[/]")
+        get_console().print("[warning]Forced skipping environment initialization[/]")
+        get_console().print("[warning]Forced skipping upgrade check[/]")
+    if command:
+        shell_params.extra_args = (command,)
+        if get_verbose():
+            get_console().print(f"[info]Command to execute: '{command}'[/]")
+    return enter_shell(shell_params)
+
+
+def enter_shell(shell_params: ShellParams) -> RunCommandResult:
+    """
+    Executes entering shell using the parameters passed as kwargs:
+
+    * checks if docker version is good
+    * checks if docker-compose version is good
+    * updates kwargs with cached parameters
+    * displays ASCIIART and CHEATSHEET unless disabled
+    * build ShellParams from the updated kwargs
+    * shuts down existing project
+    * executes the command to drop the user to Breeze shell
+    """
+    perform_environment_checks(quiet=shell_params.quiet)
+    fix_ownership_using_docker(quiet=shell_params.quiet)
+    cleanup_python_generated_files()
+    if read_from_cache_file("suppress_asciiart") is None and not shell_params.quiet:
+        get_console().print(ASCIIART, style=ASCIIART_STYLE)
+    if read_from_cache_file("suppress_cheatsheet") is None and not shell_params.quiet:
+        get_console().print(CHEATSHEET, style=CHEATSHEET_STYLE)
+    if shell_params.use_airflow_version:
+        # in case you use specific version of Airflow, you want to bring airflow down automatically before
+        # using it. This prevents the problem that if you have newer DB, airflow will not know how
+        # to migrate to it and fail with "Can't locate revision identified by 'xxxx'".
+        get_console().print(
+            f"[warning]Bringing the project down as {shell_params.use_airflow_version} "
+            f"airflow version is used[/]"
+        )
+        bring_compose_project_down(preserve_volumes=False, shell_params=shell_params)
+
+    if shell_params.backend == "sqlite" and shell_params.executor != SEQUENTIAL_EXECUTOR:
+        get_console().print(
+            f"\n[warning]backend: sqlite is not "
+            f"compatible with executor: {shell_params.executor}. "
+            f"Changing the executor to {SEQUENTIAL_EXECUTOR}.\n"
+        )
+        shell_params.executor = SEQUENTIAL_EXECUTOR
+
+    if shell_params.executor == "CeleryExecutor" and shell_params.use_airflow_version:
+        if shell_params.airflow_extras and "celery" not in shell_params.airflow_extras.split():
+            get_console().print(
+                f"\n[warning]CeleryExecutor requires airflow_extras: celery. "
+                f"Adding celery to extras: '{shell_params.airflow_extras}'.\n"
+            )
+            shell_params.airflow_extras += ",celery"
+        elif not shell_params.airflow_extras:
+            get_console().print(
+                "\n[warning]CeleryExecutor requires airflow_extras: celery. "
+                "Setting airflow extras to 'celery'.\n"
+            )
+            shell_params.airflow_extras = "celery"
+    if shell_params.restart:
+        bring_compose_project_down(preserve_volumes=False, shell_params=shell_params)
+    if shell_params.include_mypy_volume:
+        create_mypy_volume_if_needed()
+    shell_params.print_badge_info()
+    cmd = ["docker", "compose"]
+    if shell_params.quiet:
+        cmd.extend(["--progress", "quiet"])
+    if shell_params.project_name:
+        cmd.extend(["--project-name", shell_params.project_name])
+    cmd.extend(["run", "--service-ports", "--rm"])
+    if shell_params.tty == "disabled":
+        cmd.append("--no-TTY")
+    elif shell_params.tty == "enabled":
+        cmd.append("--tty")
+    cmd.append("airflow")
+    cmd_added = shell_params.command_passed
+    if cmd_added is not None:
+        cmd.extend(["-c", cmd_added])
+    if "arm64" in DOCKER_DEFAULT_PLATFORM:
+        if shell_params.backend == "mysql":
+            get_console().print("\n[warn]MySQL use MariaDB client binaries on ARM architecture.[/]\n")
+        elif shell_params.backend == "mssql":
+            get_console().print("\n[error]MSSQL is not supported on ARM architecture[/]\n")
+            sys.exit(1)
+
+    if "openlineage" in shell_params.integration or "all" in shell_params.integration:
+        if shell_params.backend != "postgres" or shell_params.postgres_version not in ["12", "13", "14"]:
+            get_console().print(
+                "\n[error]Only PostgreSQL 12, 13, and 14 are supported "
+                "as a backend with OpenLineage integration via Breeze[/]\n"
+            )
+            sys.exit(1)
+
+    command_result = run_command(
+        cmd,
+        text=True,
+        check=False,
+        env=shell_params.env_variables_for_docker_commands,
+        output_outside_the_group=True,
+    )
+    if command_result.returncode == 0:
+        return command_result
+    else:
+        get_console().print(f"[red]Error {command_result.returncode} returned[/]")
+        if get_verbose():
+            get_console().print(command_result.stderr)
+        return command_result
+
+
+def is_docker_rootless() -> bool:
+    try:
+        response = run_command(
+            ["docker", "info", "-f", "{{println .SecurityOptions}}"],
+            capture_output=True,
+            check=False,
+            text=True,
+        )
+        if response.returncode == 0 and "rootless" in response.stdout.strip():
+            get_console().print("[info]Docker is running in rootless mode.[/]\n")
+            return True
+    except FileNotFoundError:
+        # we ignore if docker is missing
+        pass
+    return False
diff --git a/dev/breeze/src/airflow_breeze/utils/path_utils.py b/dev/breeze/src/airflow_breeze/utils/path_utils.py
index cc2e302e4d..6e701e0c24 100644
--- a/dev/breeze/src/airflow_breeze/utils/path_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/path_utils.py
@@ -356,11 +356,17 @@ def cleanup_python_generated_files():
     for path in AIRFLOW_SOURCES_ROOT.rglob("*.pyc"):
         try:
             path.unlink()
+        except FileNotFoundError:
+            # File has been removed in the meantime.
+            pass
         except PermissionError:
             permission_errors.append(path)
     for path in AIRFLOW_SOURCES_ROOT.rglob("__pycache__"):
         try:
             shutil.rmtree(path)
+        except FileNotFoundError:
+            # File has been removed in the meantime.
+            pass
         except PermissionError:
             permission_errors.append(path)
     if permission_errors:
diff --git a/dev/breeze/src/airflow_breeze/utils/run_utils.py b/dev/breeze/src/airflow_breeze/utils/run_utils.py
index 0707cdad11..f3956bc07d 100644
--- a/dev/breeze/src/airflow_breeze/utils/run_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/run_utils.py
@@ -365,11 +365,6 @@ def commit_sha():
         return "COMMIT_SHA_NOT_FOUND"
 
 
-def filter_out_none(**kwargs) -> dict:
-    """Filters out all None values from parameters passed."""
-    return {key: val for key, val in kwargs.items() if val is not None}
-
-
 def check_if_image_exists(image: str) -> bool:
     cmd_result = run_command(
         ["docker", "inspect", image],
diff --git a/dev/breeze/tests/test_commands.py b/dev/breeze/tests/test_commands.py
deleted file mode 100644
index 7420aa4940..0000000000
--- a/dev/breeze/tests/test_commands.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# 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
-
-from airflow_breeze.global_constants import MOUNT_ALL, MOUNT_REMOVE, MOUNT_SELECTED, MOUNT_SKIP
-from airflow_breeze.utils.docker_command_utils import get_extra_docker_flags
-from airflow_breeze.utils.visuals import ASCIIART
-
-
-def test_visuals():
-    assert 2051 == len(ASCIIART)
-
-
-def test_get_extra_docker_flags_all():
-    flags = get_extra_docker_flags(MOUNT_ALL)
-    assert "/empty," not in "".join(flags)
-    assert len(flags) < 10
-
-
-def test_get_extra_docker_flags_selected():
-    flags = get_extra_docker_flags(MOUNT_SELECTED)
-    assert "/empty," not in "".join(flags)
-    assert len(flags) > 40
-
-
-def test_get_extra_docker_flags_remove():
-    flags = get_extra_docker_flags(MOUNT_REMOVE)
-    assert "/empty," in "".join(flags)
-    assert len(flags) < 10
-
-
-def test_get_extra_docker_flags_skip():
-    flags = get_extra_docker_flags(MOUNT_SKIP)
-    assert "/empty," not in "".join(flags)
-    assert len(flags) < 10
-
-
-def test_get_no_unknown_common_options():
-    flags = get_extra_docker_flags(MOUNT_SKIP)
-    assert "/empty," not in "".join(flags)
-    assert len(flags) < 10
diff --git a/dev/breeze/tests/test_run_utils.py b/dev/breeze/tests/test_run_utils.py
index 46e98c731d..5b243e8f0e 100644
--- a/dev/breeze/tests/test_run_utils.py
+++ b/dev/breeze/tests/test_run_utils.py
@@ -21,7 +21,6 @@ import stat
 from airflow_breeze.utils.run_utils import (
     change_directory_permission,
     change_file_permission,
-    filter_out_none,
 )
 
 
@@ -44,10 +43,3 @@ def test_change_directory_permission(tmp_path):
         and (mode & stat.S_IXGRP)
         and (mode & stat.S_IXOTH)
     )
-
-
-def test_filter_out_none():
-    dict_input_with_none = {"sample": None, "sample1": "One", "sample2": "Two", "samplen": None}
-    expected_dict_output = {"sample1": "One", "sample2": "Two"}
-    output_dict = filter_out_none(**dict_input_with_none)
-    assert output_dict == expected_dict_output
diff --git a/images/breeze/output_ci-image_build.txt b/images/breeze/output_ci-image_build.txt
index f7f8699294..ef0bd73071 100644
--- a/images/breeze/output_ci-image_build.txt
+++ b/images/breeze/output_ci-image_build.txt
@@ -1 +1 @@
-68b9aef6374f30b1186afc6160e376b5
+6a130b347fa7137782ee7e0c6287c6a1
diff --git a/images/breeze/output_prod-image_build.txt b/images/breeze/output_prod-image_build.txt
index f855f15f03..f78db4ceba 100644
--- a/images/breeze/output_prod-image_build.txt
+++ b/images/breeze/output_prod-image_build.txt
@@ -1 +1 @@
-9f21108a81b471ca20972af0a577fb85
+9590fde87467c3a97ef5a0bc37fae8bb
diff --git a/images/breeze/output_release-management_generate-constraints.svg b/images/breeze/output_release-management_generate-constraints.svg
index 33caf14d07..b8bc2f4b31 100644
--- a/images/breeze/output_release-management_generate-constraints.svg
+++ b/images/breeze/output_release-management_generate-constraints.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 952.8" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 928.4" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-generate-constraints-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="901.8" />
+      <rect x="0" y="0" width="1463.0" height="877.4" />
     </clipPath>
     <clipPath id="breeze-release-management-generate-constraints-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -150,12 +150,9 @@
 <clipPath id="breeze-release-management-generate-constraints-line-34">
     <rect x="0" y="831.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-release-management-generate-constraints-line-35">
-    <rect x="0" y="855.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="950.8" rx="8"/><text class="breeze-release-management-generate-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;generate-constraints</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="926.4" rx="8"/><text class="breeze-release-management-generate-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;generate-constraints</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -184,24 +181,23 @@
 </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-16)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="410.4" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-16)">current_version&#160;and&#160;should&#160;be&#160;installed&#160;in&#160;CI&#160;from&#160;locally&#160;built&#160;packages&#160; [...]
 </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-17)">│</text><text class="breeze-release-management-generate-constraints-r1" x="414.8" y="434.8" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-17)">current_version.dev0&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
 </text><text class="breeze-release-management-generate-constraints-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-18)">│</text><text class="breeze-release-management-generate-constraints-r6" x="414.8" y="459.2" textLength="1024.8" clip-path="url(#breeze-release-management-generate-constraints-line-18)">(TEXT)&#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-release-management-generate-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="483.6" textLength="73.2" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="508" textLength="85.4" clip-path="url(#breeze-releas [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="532.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-21)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-22)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="556.8" textLength="219.6" clip-path="url(#breeze-release-management-generate-constraints-line-22)">&#160;Parallel&#160;running&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="244" y="556.8" textLeng [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="581.2" textLength="48.8" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="605.6" textLength="146.4" clip-path="url(#breeze [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="630" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-25)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="654.4" textLength="85.4" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="678.8" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-27)">[default:&#160;3.8&#160;3.9&#160;3.10&#160;3.11]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="703.2" textLength="61" clip-path="url(#breeze-re [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="727.6" textLength="73.2" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-31)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="776.4" textLength="195.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="219.6" y="776.4" textLeng [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="800.8" textLength="97.6" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="825.2" textLength="48.8" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="849.6" textLength="85.4" clip-path="url(#breeze- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="874" textLength="61" clip-path="url(#breeze-release- [...]
-</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="898.4" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-36)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-19)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="483.6" textLength="85.4" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="508" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-20)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-20)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="532.4" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-21)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="532.4" textLength="219.6" clip-path="url(#breeze-release-management-generate-constraints-line-21)">&#160;Parallel&#160;running&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="244" y="532.4" textLeng [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-22)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="556.8" textLength="48.8" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-23)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="581.2" textLength="146.4" clip-path="url(#breeze [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-24)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="605.6" textLength="915" clip-path="url(#breeze-release-management-generate-constraints-line-24)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-25)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="630" textLength="85.4" clip-path="url(#breeze-releas [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-26)">│</text><text class="breeze-release-management-generate-constraints-r5" x="280.6" y="654.4" textLength="951.6" clip-path="url(#breeze-release-management-generate-constraints-line-26)">[default:&#160;3.8&#160;3.9&#160;3.10&#160;3.11]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-27)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="678.8" textLength="61" clip-path="url(#breeze-re [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-28)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="703.2" textLength="73.2" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="727.6" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-29)">
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="752" textLength="24.4" clip-path="url(#breeze-release-management-generate-constraints-line-30)">╭─</text><text class="breeze-release-management-generate-constraints-r5" x="24.4" y="752" textLength="195.2" clip-path="url(#breeze-release-management-generate-constraints-line-30)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-generate-constraints-r5" x="219.6" y="752" textLength="12 [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-31)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="776.4" textLength="97.6" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-32)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="800.8" textLength="48.8" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-33)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="825.2" textLength="85.4" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">│</text><text class="breeze-release-management-generate-constraints-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-34)">-</text><text class="breeze-release-management-generate-constraints-r4" x="36.6" y="849.6" textLength="61" clip-path="url(#breeze-re [...]
+</text><text class="breeze-release-management-generate-constraints-r5" x="0" y="874" textLength="1464" clip-path="url(#breeze-release-management-generate-constraints-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-generate-constraints-r1" x="1464" y="874" textLength="12.2" clip-path="url(#breeze-release-management-generate-constraints-line-35)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_release-management_generate-constraints.txt b/images/breeze/output_release-management_generate-constraints.txt
index 747223f960..89a36cb1b1 100644
--- a/images/breeze/output_release-management_generate-constraints.txt
+++ b/images/breeze/output_release-management_generate-constraints.txt
@@ -1 +1 @@
-8056e81608e5118d616a829c01a8a1e1
+12f58e0c47b7533b91e547f33c79d4cb
diff --git a/images/breeze/output_release-management_install-provider-packages.svg b/images/breeze/output_release-management_install-provider-packages.svg
index e767f998b5..42a8725c29 100644
--- a/images/breeze/output_release-management_install-provider-packages.svg
+++ b/images/breeze/output_release-management_install-provider-packages.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1611.6" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1587.1999999999998" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-install-provider-packages-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="1560.6" />
+      <rect x="0" y="0" width="1463.0" height="1536.1999999999998" />
     </clipPath>
     <clipPath id="breeze-release-management-install-provider-packages-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -231,12 +231,9 @@
 <clipPath id="breeze-release-management-install-provider-packages-line-61">
     <rect x="0" y="1489.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-release-management-install-provider-packages-line-62">
-    <rect x="0" y="1514.3" 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="1609.6" rx="8"/><text class="breeze-release-management-install-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;install-provider-packages</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1585.2" rx="8"/><text class="breeze-release-management-install-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;install-provider-packages</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -259,57 +256,56 @@
 </text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-10)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="329.4" y="264" textLength="1110.2" clip-path="url(#breeze-release-management-install-provider-packages-line-10)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
 </text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-11)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="329.4" y="288.4" textLength="1110.2" clip-path="url(#breeze-release-management-install-provider-packages-line-11)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
 </text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-12)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-12)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="312.8" textLength="85.4 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="337.2" textLength="73.2 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="361.6" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="386" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="386" textLength="512.4" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">&#160;Installing&#160;packages&#160;after&#160;entering&#160;shell&#160;</text><text class="breeze-release-managem [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="410.4" textLength="97.6 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="434.8" textLength="902.8" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="459.2" textLength="97.6 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="483.6" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class= [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="508" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="532.4" textLength="97.6 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;de [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="581.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="605.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="630" textLength="97.6" clip [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="654.4" textLength="97.6 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="678.8" textLength="97.6 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="488" y="703.2" textLength="48.8 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="727.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="752" textLength="97.6" clip [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="776.4" textLength="658.8" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">[default:&#160;wheel]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="800.8" textLength="122" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="825.2" textLength="927.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="849.6" textLength="122" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="874" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="bre [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="898.4" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="922.8" textLength="122" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="947.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;de [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="971.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="996" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1020.4" textLength="1 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1044.8" textLength="4 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1069.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">install&#160;from&#160;PyPI),&#160;`none`,&#160;`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1093.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">or&#160;VCS&#160;URL&#160;to&#160;install&#160;from&#160;(https://pip.pypa.io/en/stable/topics/vcs-support/) [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1118" textLength="97.6" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">Implies&#160;</text><text class="breeze-release-management-install-provider-packages-r4" x="573.4" y="1118" textL [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="1142.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1166.8" textLength="4 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1191.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">folder&#160;when&#160;entering&#160;breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1215.6" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1215.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1240" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1240" textLength="219.6" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">&#160;Parallel&#160;running&#160;</text><text class="breeze-release-management-install-provider-packages-r5" x=" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1264.4" textLength="4 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1288.8" textLength="1 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="378.2" y="1313.2" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="378.2" y="1337.6" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1362" textLength="61" cli [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1386.4" textLength="9 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1410.8" textLength="7 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1435.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-58)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1459.6" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-59)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1459.6" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-59)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-install-provider-packages-r5" x [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1484" textLength="48.8" c [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1508.4" textLength="9 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1532.8" textLength="6 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1557.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1557.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="337.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-13)">
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="361.6" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="361.6" textLength="512.4" clip-path="url(#breeze-release-management-install-provider-packages-line-14)">&#160;Installing&#160;packages&#160;after&#160;entering&#160;shell&#160;</text><text class="breeze-release-man [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-15)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="386" textLength="97.6" clip [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="410.4" textLength="902.8" clip-path="url(#breeze-release-management-install-provider-packages-line-16)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-17)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="434.8" textLength="97.6 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="459.2" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-18)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class= [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="483.6" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-19)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-20)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="508" textLength="97.6" clip [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="532.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;de [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="581.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="605.6" textLength="97.6 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="630" textLength="97.6" clip [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="654.4" textLength="97.6 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="488" y="678.8" textLength="48.8 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="703.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="727.6" textLength="97.6 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="752" textLength="658.8" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">[default:&#160;wheel]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="776.4" textLength="122" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="800.8" textLength="927.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="825.2" textLength="122" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="849.6" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class= [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="874" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="898.4" textLength="122" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="922.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;de [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="947.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="971.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="996" textLength="122" clip- [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1020.4" textLength="4 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1044.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">install&#160;from&#160;PyPI),&#160;`none`,&#160;`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1069.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">or&#160;VCS&#160;URL&#160;to&#160;install&#160;from&#160;(https://pip.pypa.io/en/stable/topics/vcs-support/) [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1093.6" textLength="97.6" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">Implies&#160;</text><text class="breeze-release-management-install-provider-packages-r4" x="573.4" y="1093.6" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="1118" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1142.4" textLength="4 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1166.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">folder&#160;when&#160;entering&#160;breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1191.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1215.6" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-49)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1215.6" textLength="219.6" clip-path="url(#breeze-release-management-install-provider-packages-line-49)">&#160;Parallel&#160;running&#160;</text><text class="breeze-release-management-install-provider-packages-r5" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1240" textLength="48.8" c [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1264.4" textLength="1 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="378.2" y="1288.8" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="378.2" y="1313.2" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1337.6" textLength="6 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1362" textLength="97.6" c [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1386.4" textLength="7 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1410.8" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1435.2" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-58)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1435.2" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-58)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-install-provider-packages-r5" x [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-59)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-59)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1459.6" textLength="4 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1484" textLength="97.6" c [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">-</text><text class="breeze-release-management-install-provider-packages-r4" x="36.6" y="1508.4" textLength="6 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1532.8" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1532.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_release-management_install-provider-packages.txt b/images/breeze/output_release-management_install-provider-packages.txt
index 723cd3f280..917fddb9a7 100644
--- a/images/breeze/output_release-management_install-provider-packages.txt
+++ b/images/breeze/output_release-management_install-provider-packages.txt
@@ -1 +1 @@
-de14ceff93da9b803738734dd64281d9
+71725748176f8e86b78433c6ab8fa698
diff --git a/images/breeze/output_release-management_verify-provider-packages.svg b/images/breeze/output_release-management_verify-provider-packages.svg
index 2e5d883d65..b755651de8 100644
--- a/images/breeze/output_release-management_verify-provider-packages.svg
+++ b/images/breeze/output_release-management_verify-provider-packages.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1392.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1367.6" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-verify-provider-packages-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="1341.0" />
+      <rect x="0" y="0" width="1463.0" height="1316.6" />
     </clipPath>
     <clipPath id="breeze-release-management-verify-provider-packages-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -204,12 +204,9 @@
 <clipPath id="breeze-release-management-verify-provider-packages-line-52">
     <rect x="0" y="1270.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-release-management-verify-provider-packages-line-53">
-    <rect x="0" y="1294.7" 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="1390" rx="8"/><text class="breeze-release-management-verify-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;verify-provider-packages</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1365.6" rx="8"/><text class="breeze-release-management-verify-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;verify-provider-packages</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -232,48 +229,47 @@
 </text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-10)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="329.4" y="264" textLength="1110.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-10)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
 </text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-11)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="329.4" y="288.4" textLength="1110.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-11)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
 </text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-12)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-12)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="312.8" textLength="85.4" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="337.2" textLength="73.2" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="361.6" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="386" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="386" textLength="512.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">&#160;Installing&#160;packages&#160;after&#160;entering&#160;shell&#160;</text><text class="breeze-release-management- [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="410.4" textLength="97.6" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="434.8" textLength="902.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="459.2" textLength="97.6" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="483.6" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="bre [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="508" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="532.4" textLength="97.6" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;defaul [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="581.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="605.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="630" textLength="97.6" clip-path [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="654.4" textLength="97.6" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="678.8" textLength="97.6" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="475.8" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="488" y="703.2" textLength="48.8" cli [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="727.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="752" textLength="97.6" clip-path [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="776.4" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">[default:&#160;wheel]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="800.8" textLength="122" clip [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="825.2" textLength="927.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="849.6" textLength="122" clip [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="874" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="breeze- [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="898.4" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="922.8" textLength="122" clip [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="947.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;defaul [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="971.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="996" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1020.4" textLength="122" c [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1044.8" textLength="48.8"  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1069.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">install&#160;from&#160;PyPI),&#160;`none`,&#160;`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#16 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1093.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">or&#160;VCS&#160;URL&#160;to&#160;install&#160;from&#160;(https://pip.pypa.io/en/stable/topics/vcs-support/).</t [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1118" textLength="97.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">Implies&#160;</text><text class="breeze-release-management-verify-provider-packages-r4" x="573.4" y="1118" textLength [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="1142.4" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1166.8" textLength="48.8"  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1191.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">folder&#160;when&#160;entering&#160;breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1215.6" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1215.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1240" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="1240" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-verify-provider-packages-r5" x="219.6"  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1264.4" textLength="48.8"  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1288.8" textLength="97.6"  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1313.2" textLength="61" cl [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1337.6" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-54)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-54)">
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="337.2" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-13)">
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="361.6" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="361.6" textLength="512.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-14)">&#160;Installing&#160;packages&#160;after&#160;entering&#160;shell&#160;</text><text class="breeze-release-managem [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-15)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="386" textLength="97.6" clip-path [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="410.4" textLength="902.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-16)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-17)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="434.8" textLength="97.6" cli [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="459.2" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-18)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="bre [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="483.6" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-19)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-20)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="508" textLength="97.6" clip-path [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="532.4" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-21)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;defaul [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-22)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="581.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-23)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-24)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="605.6" textLength="97.6" cli [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="630" textLength="97.6" clip-path [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="654.4" textLength="97.6" cli [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="475.8" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="488" y="678.8" textLength="48.8" cli [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="703.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="727.6" textLength="97.6" cli [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="752" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">[default:&#160;wheel]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="776.4" textLength="122" clip [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="800.8" textLength="927.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="825.2" textLength="122" clip [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="849.6" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="bre [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="475.8" y="874" textLength="866.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="898.4" textLength="122" clip [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="922.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;defaul [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="947.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">constraints-reference&#160;is&#160;used.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="971.6" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="996" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="996" textLength="122" clip-path= [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1020.4" textLength="48.8"  [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1044.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">install&#160;from&#160;PyPI),&#160;`none`,&#160;`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#16 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1069.2" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">or&#160;VCS&#160;URL&#160;to&#160;install&#160;from&#160;(https://pip.pypa.io/en/stable/topics/vcs-support/).</t [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1093.6" textLength="97.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">Implies&#160;</text><text class="breeze-release-management-verify-provider-packages-r4" x="573.4" y="1093.6" text [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="475.8" y="1118" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1142.4" textLength="48.8"  [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="475.8" y="1166.8" textLength="963.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">folder&#160;when&#160;entering&#160;breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1191.2" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1215.6" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="1215.6" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-verify-provider-packages-r5" x="219 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1240" textLength="48.8" clip-p [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1264.4" textLength="97.6"  [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">-</text><text class="breeze-release-management-verify-provider-packages-r4" x="36.6" y="1288.8" textLength="61" cl [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1313.2" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_release-management_verify-provider-packages.txt b/images/breeze/output_release-management_verify-provider-packages.txt
index 0907858867..1ab9de67fc 100644
--- a/images/breeze/output_release-management_verify-provider-packages.txt
+++ b/images/breeze/output_release-management_verify-provider-packages.txt
@@ -1 +1 @@
-2e0110b5d8b7ee154ce1410455da175b
+505041dc3cf367fe381126db0b62c4a5
diff --git a/images/breeze/output_shell.svg b/images/breeze/output_shell.svg
index e7864d2fe1..8027ed2fe2 100644
--- a/images/breeze/output_shell.svg
+++ b/images/breeze/output_shell.svg
@@ -502,49 +502,49 @@
 </text><text class="breeze-shell-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-shell-line-76)">│</text><text class="breeze-shell-r1" x="475.8" y="1874.4" textLength="963.8" clip-path="url(#breeze-shell-line-76)">constraints-reference&#160;is&#160;used.&#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;&#160;&#160;&# [...]
 </text><text class="breeze-shell-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-shell-line-77)">│</text><text class="breeze-shell-r7" x="475.8" y="1898.8" textLength="963.8" clip-path="url(#breeze-shell-line-77)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
 </text><text class="breeze-shell-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-shell-line-78)">│</text><text class="breeze-shell-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-shell-line-78)">-</text><text class="breeze-shell-r4" x="36.6" y="1923.2" textLength="97.6" clip-path="url(#breeze-shell-line-78)">-airflow</text><text class="breeze-shell-r4" x="134.2" y="1923.2" textLength="85.4" clip-path="url(#breeze-shell-line-78)">-extras</text><text class="b [...]
-</text><text class="breeze-shell-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-shell-line-79)">│</text><text class="breeze-shell-r4" x="24.4" y="1947.6" textLength="12.2" clip-path="url(#breeze-shell-line-79)">-</text><text class="breeze-shell-r4" x="36.6" y="1947.6" textLength="97.6" clip-path="url(#breeze-shell-line-79)">-install</text><text class="breeze-shell-r4" x="134.2" y="1947.6" textLength="231.8" clip-path="url(#breeze-shell-line-79)">-selected-providers</text>< [...]
-</text><text class="breeze-shell-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-shell-line-80)">│</text><text class="breeze-shell-r4" x="475.8" y="1972" textLength="12.2" clip-path="url(#breeze-shell-line-80)">-</text><text class="breeze-shell-r4" x="488" y="1972" textLength="48.8" clip-path="url(#breeze-shell-line-80)">-use</text><text class="breeze-shell-r4" x="536.8" y="1972" textLength="231.8" clip-path="url(#breeze-shell-line-80)">-packages-from-dist</text><text class=" [...]
-</text><text class="breeze-shell-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-shell-line-81)">│</text><text class="breeze-shell-r7" x="475.8" y="1996.4" textLength="963.8" clip-path="url(#breeze-shell-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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-shell-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-shell-line-82)">│</text><text class="breeze-shell-r4" x="24.4" y="2020.8" textLength="12.2" clip-path="url(#breeze-shell-line-82)">-</text><text class="breeze-shell-r4" x="36.6" y="2020.8" textLength="97.6" clip-path="url(#breeze-shell-line-82)">-package</text><text class="breeze-shell-r4" x="134.2" y="2020.8" textLength="85.4" clip-path="url(#breeze-shell-line-82)">-format</text><text class="b [...]
-</text><text class="breeze-shell-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-shell-line-83)">│</text><text class="breeze-shell-r5" x="475.8" y="2045.2" textLength="658.8" clip-path="url(#breeze-shell-line-83)">[default:&#160;wheel]&#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;&#160;&#160;&#160;</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-shell-line-84)">│</text><text class="breeze-shell-r4" x="24.4" y="2069.6" textLength="12.2" clip-path="url(#breeze-shell-line-84)">-</text><text class="breeze-shell-r4" x="36.6" y="2069.6" textLength="122" clip-path="url(#breeze-shell-line-84)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2069.6" textLength="256.2" clip-path="url(#breeze-shell-line-84)">-constraints-location</tex [...]
-</text><text class="breeze-shell-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-shell-line-85)">│</text><text class="breeze-shell-r7" x="475.8" y="2094" textLength="927.2" clip-path="url(#breeze-shell-line-85)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-shell-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-shell-line-86)">│</text><text class="breeze-shell-r4" x="24.4" y="2118.4" textLength="12.2" clip-path="url(#breeze-shell-line-86)">-</text><text class="breeze-shell-r4" x="36.6" y="2118.4" textLength="122" clip-path="url(#breeze-shell-line-86)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2118.4" textLength="207.4" clip-path="url(#breeze-shell-line-86)">-constraints-mode</text><t [...]
-</text><text class="breeze-shell-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-shell-line-87)">│</text><text class="breeze-shell-r7" x="475.8" y="2142.8" textLength="866.2" clip-path="url(#breeze-shell-line-87)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="breeze-shell-r5" x="1451.8" y="2142.8" textLength="12.2" clip-path="url(#breeze-shell-line-87)">│</text><text class="breeze-shell-r1" x="1464" y="2142.8" [...]
-</text><text class="breeze-shell-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-shell-line-88)">│</text><text class="breeze-shell-r5" x="475.8" y="2167.2" textLength="866.2" clip-path="url(#breeze-shell-line-88)">[default:&#160;constraints-source-providers]&#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-s [...]
-</text><text class="breeze-shell-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-shell-line-89)">│</text><text class="breeze-shell-r4" x="24.4" y="2191.6" textLength="12.2" clip-path="url(#breeze-shell-line-89)">-</text><text class="breeze-shell-r4" x="36.6" y="2191.6" textLength="122" clip-path="url(#breeze-shell-line-89)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2191.6" textLength="268.4" clip-path="url(#breeze-shell-line-89)">-constraints-reference</te [...]
-</text><text class="breeze-shell-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-shell-line-90)">│</text><text class="breeze-shell-r1" x="475.8" y="2216" textLength="963.8" clip-path="url(#breeze-shell-line-90)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;default&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-shell-r5" x= [...]
-</text><text class="breeze-shell-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-shell-line-91)">│</text><text class="breeze-shell-r1" x="475.8" y="2240.4" textLength="963.8" clip-path="url(#breeze-shell-line-91)">constraints-reference&#160;is&#160;used.&#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;&#160;&#160;&# [...]
-</text><text class="breeze-shell-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-shell-line-92)">│</text><text class="breeze-shell-r7" x="475.8" y="2264.8" textLength="963.8" clip-path="url(#breeze-shell-line-92)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-shell-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-shell-line-93)">│</text><text class="breeze-shell-r4" x="24.4" y="2289.2" textLength="12.2" clip-path="url(#breeze-shell-line-93)">-</text><text class="breeze-shell-r4" x="36.6" y="2289.2" textLength="48.8" clip-path="url(#breeze-shell-line-93)">-use</text><text class="breeze-shell-r4" x="85.4" y="2289.2" textLength="195.2" clip-path="url(#breeze-shell-line-93)">-airflow-version</text><text cla [...]
-</text><text class="breeze-shell-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-shell-line-94)">│</text><text class="breeze-shell-r1" x="475.8" y="2313.6" textLength="963.8" clip-path="url(#breeze-shell-line-94)">install&#160;from&#160;PyPI),&#160;`none`,&#160;`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#160;`dist`&#160;folder,&#160;</text><text class="breeze-shell-r5" x="1451.8" y="2313.6" textLength="12.2" clip-path="url(#breeze-shell-line-94)">│</text>< [...]
-</text><text class="breeze-shell-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-shell-line-95)">│</text><text class="breeze-shell-r1" x="475.8" y="2338" textLength="963.8" clip-path="url(#breeze-shell-line-95)">or&#160;VCS&#160;URL&#160;to&#160;install&#160;from&#160;(https://pip.pypa.io/en/stable/topics/vcs-support/).</text><text class="breeze-shell-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url(#breeze-shell-line-95)">│</text><text class="breeze-shell-r1" x="1464 [...]
-</text><text class="breeze-shell-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-shell-line-96)">│</text><text class="breeze-shell-r1" x="475.8" y="2362.4" textLength="97.6" clip-path="url(#breeze-shell-line-96)">Implies&#160;</text><text class="breeze-shell-r4" x="573.4" y="2362.4" textLength="12.2" clip-path="url(#breeze-shell-line-96)">-</text><text class="breeze-shell-r4" x="585.6" y="2362.4" textLength="73.2" clip-path="url(#breeze-shell-line-96)">-mount</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-shell-line-97)">│</text><text class="breeze-shell-r7" x="475.8" y="2386.8" textLength="963.8" clip-path="url(#breeze-shell-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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-shell-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-shell-line-98)">│</text><text class="breeze-shell-r4" x="24.4" y="2411.2" textLength="12.2" clip-path="url(#breeze-shell-line-98)">-</text><text class="breeze-shell-r4" x="36.6" y="2411.2" textLength="48.8" clip-path="url(#breeze-shell-line-98)">-use</text><text class="breeze-shell-r4" x="85.4" y="2411.2" textLength="231.8" clip-path="url(#breeze-shell-line-98)">-packages-from-dist</text><text  [...]
-</text><text class="breeze-shell-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-shell-line-99)">│</text><text class="breeze-shell-r1" x="475.8" y="2435.6" textLength="963.8" clip-path="url(#breeze-shell-line-99)">folder&#160;when&#160;entering&#160;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;&#160;&#160;&#160 [...]
-</text><text class="breeze-shell-r5" x="0" y="2460" textLength="1464" clip-path="url(#breeze-shell-line-100)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2460" textLength="12.2" clip-path="url(#breeze-shell-line-100)">
-</text><text class="breeze-shell-r5" x="0" y="2484.4" textLength="24.4" clip-path="url(#breeze-shell-line-101)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2484.4" textLength="500.2" clip-path="url(#breeze-shell-line-101)">&#160;Upgrading/downgrading&#160;selected&#160;packages&#160;</text><text class="breeze-shell-r5" x="524.6" y="2484.4" textLength="915" clip-path="url(#breeze-shell-line-101)">───────────────────────────────────────────────────────────────────────────</text><tex [...]
-</text><text class="breeze-shell-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-shell-line-102)">│</text><text class="breeze-shell-r4" x="24.4" y="2508.8" textLength="12.2" clip-path="url(#breeze-shell-line-102)">-</text><text class="breeze-shell-r4" x="36.6" y="2508.8" textLength="97.6" clip-path="url(#breeze-shell-line-102)">-upgrade</text><text class="breeze-shell-r4" x="134.2" y="2508.8" textLength="61" clip-path="url(#breeze-shell-line-102)">-boto</text><text class="b [...]
-</text><text class="breeze-shell-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-shell-line-103)">│</text><text class="breeze-shell-r4" x="24.4" y="2533.2" textLength="12.2" clip-path="url(#breeze-shell-line-103)">-</text><text class="breeze-shell-r4" x="36.6" y="2533.2" textLength="122" clip-path="url(#breeze-shell-line-103)">-downgrade</text><text class="breeze-shell-r4" x="158.6" y="2533.2" textLength="134.2" clip-path="url(#breeze-shell-line-103)">-sqlalchemy</text><tex [...]
-</text><text class="breeze-shell-r5" x="0" y="2557.6" textLength="1464" clip-path="url(#breeze-shell-line-104)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2557.6" textLength="12.2" clip-path="url(#breeze-shell-line-104)">
-</text><text class="breeze-shell-r5" x="0" y="2582" textLength="24.4" clip-path="url(#breeze-shell-line-105)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2582" textLength="183" clip-path="url(#breeze-shell-line-105)">&#160;DB&#160;test&#160;flags&#160;</text><text class="breeze-shell-r5" x="207.4" y="2582" textLength="1232.2" clip-path="url(#breeze-shell-line-105)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cla [...]
-</text><text class="breeze-shell-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)">│</text><text class="breeze-shell-r4" x="24.4" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)">-</text><text class="breeze-shell-r4" x="36.6" y="2606.4" textLength="48.8" clip-path="url(#breeze-shell-line-106)">-run</text><text class="breeze-shell-r4" x="85.4" y="2606.4" textLength="170.8" clip-path="url(#breeze-shell-line-106)">-db-tests-only</text><text c [...]
-</text><text class="breeze-shell-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-shell-line-107)">│</text><text class="breeze-shell-r4" x="24.4" y="2630.8" textLength="12.2" clip-path="url(#breeze-shell-line-107)">-</text><text class="breeze-shell-r4" x="36.6" y="2630.8" textLength="61" clip-path="url(#breeze-shell-line-107)">-skip</text><text class="breeze-shell-r4" x="97.6" y="2630.8" textLength="109.8" clip-path="url(#breeze-shell-line-107)">-db-tests</text><text class=" [...]
-</text><text class="breeze-shell-r5" x="0" y="2655.2" textLength="1464" clip-path="url(#breeze-shell-line-108)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2655.2" textLength="12.2" clip-path="url(#breeze-shell-line-108)">
-</text><text class="breeze-shell-r5" x="0" y="2679.6" textLength="24.4" clip-path="url(#breeze-shell-line-109)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2679.6" textLength="183" clip-path="url(#breeze-shell-line-109)">&#160;Other&#160;options&#160;</text><text class="breeze-shell-r5" x="207.4" y="2679.6" textLength="1232.2" clip-path="url(#breeze-shell-line-109)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-shell-line-110)">│</text><text class="breeze-shell-r4" x="24.4" y="2704" textLength="12.2" clip-path="url(#breeze-shell-line-110)">-</text><text class="breeze-shell-r4" x="36.6" y="2704" textLength="97.6" clip-path="url(#breeze-shell-line-110)">-forward</text><text class="breeze-shell-r4" x="134.2" y="2704" textLength="146.4" clip-path="url(#breeze-shell-line-110)">-credentials</text><text class= [...]
-</text><text class="breeze-shell-r5" x="0" y="2728.4" textLength="12.2" clip-path="url(#breeze-shell-line-111)">│</text><text class="breeze-shell-r4" x="24.4" y="2728.4" textLength="12.2" clip-path="url(#breeze-shell-line-111)">-</text><text class="breeze-shell-r4" x="36.6" y="2728.4" textLength="48.8" clip-path="url(#breeze-shell-line-111)">-max</text><text class="breeze-shell-r4" x="85.4" y="2728.4" textLength="61" clip-path="url(#breeze-shell-line-111)">-time</text><text class="breeze [...]
-</text><text class="breeze-shell-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-shell-line-112)">│</text><text class="breeze-shell-r7" x="353.8" y="2752.8" textLength="1049.2" clip-path="url(#breeze-shell-line-112)">(INTEGER&#160;RANGE)&#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;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-shell-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-shell-line-113)">│</text><text class="breeze-shell-r4" x="24.4" y="2777.2" textLength="12.2" clip-path="url(#breeze-shell-line-113)">-</text><text class="breeze-shell-r4" x="36.6" y="2777.2" textLength="97.6" clip-path="url(#breeze-shell-line-113)">-verbose</text><text class="breeze-shell-r4" x="134.2" y="2777.2" textLength="109.8" clip-path="url(#breeze-shell-line-113)">-commands</text><text c [...]
-</text><text class="breeze-shell-r5" x="0" y="2801.6" textLength="1464" clip-path="url(#breeze-shell-line-114)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2801.6" textLength="12.2" clip-path="url(#breeze-shell-line-114)">
-</text><text class="breeze-shell-r5" x="0" y="2826" textLength="24.4" clip-path="url(#breeze-shell-line-115)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2826" textLength="195.2" clip-path="url(#breeze-shell-line-115)">&#160;Common&#160;options&#160;</text><text class="breeze-shell-r5" x="219.6" y="2826" textLength="1220" clip-path="url(#breeze-shell-line-115)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="b [...]
-</text><text class="breeze-shell-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-shell-line-116)">│</text><text class="breeze-shell-r4" x="24.4" y="2850.4" textLength="12.2" clip-path="url(#breeze-shell-line-116)">-</text><text class="breeze-shell-r4" x="36.6" y="2850.4" textLength="97.6" clip-path="url(#breeze-shell-line-116)">-airflow</text><text class="breeze-shell-r4" x="134.2" y="2850.4" textLength="207.4" clip-path="url(#breeze-shell-line-116)">-skip-constraints</text [...]
-</text><text class="breeze-shell-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-shell-line-117)">│</text><text class="breeze-shell-r4" x="24.4" y="2874.8" textLength="12.2" clip-path="url(#breeze-shell-line-117)">-</text><text class="breeze-shell-r4" x="36.6" y="2874.8" textLength="85.4" clip-path="url(#breeze-shell-line-117)">-answer</text><text class="breeze-shell-r6" x="390.4" y="2874.8" textLength="24.4" clip-path="url(#breeze-shell-line-117)">-a</text><text class="bre [...]
-</text><text class="breeze-shell-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">│</text><text class="breeze-shell-r4" x="24.4" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">-</text><text class="breeze-shell-r4" x="36.6" y="2899.2" textLength="48.8" clip-path="url(#breeze-shell-line-118)">-dry</text><text class="breeze-shell-r4" x="85.4" y="2899.2" textLength="48.8" clip-path="url(#breeze-shell-line-118)">-run</text><text class="breez [...]
-</text><text class="breeze-shell-r5" x="0" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">│</text><text class="breeze-shell-r4" x="24.4" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">-</text><text class="breeze-shell-r4" x="36.6" y="2923.6" textLength="122" clip-path="url(#breeze-shell-line-119)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2923.6" textLength="207.4" clip-path="url(#breeze-shell-line-119)">-skip-constraints</tex [...]
-</text><text class="breeze-shell-r5" x="0" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">│</text><text class="breeze-shell-r4" x="24.4" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">-</text><text class="breeze-shell-r4" x="36.6" y="2948" textLength="97.6" clip-path="url(#breeze-shell-line-120)">-verbose</text><text class="breeze-shell-r6" x="390.4" y="2948" textLength="24.4" clip-path="url(#breeze-shell-line-120)">-v</text><text class="breeze-she [...]
-</text><text class="breeze-shell-r5" x="0" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)">│</text><text class="breeze-shell-r4" x="24.4" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)">-</text><text class="breeze-shell-r4" x="36.6" y="2972.4" textLength="61" clip-path="url(#breeze-shell-line-121)">-help</text><text class="breeze-shell-r6" x="390.4" y="2972.4" textLength="24.4" clip-path="url(#breeze-shell-line-121)">-h</text><text class="breeze- [...]
+</text><text class="breeze-shell-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-shell-line-79)">│</text><text class="breeze-shell-r4" x="24.4" y="1947.6" textLength="12.2" clip-path="url(#breeze-shell-line-79)">-</text><text class="breeze-shell-r4" x="36.6" y="1947.6" textLength="97.6" clip-path="url(#breeze-shell-line-79)">-airflow</text><text class="breeze-shell-r4" x="134.2" y="1947.6" textLength="207.4" clip-path="url(#breeze-shell-line-79)">-skip-constraints</text><te [...]
+</text><text class="breeze-shell-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-shell-line-80)">│</text><text class="breeze-shell-r4" x="24.4" y="1972" textLength="12.2" clip-path="url(#breeze-shell-line-80)">-</text><text class="breeze-shell-r4" x="36.6" y="1972" textLength="97.6" clip-path="url(#breeze-shell-line-80)">-install</text><text class="breeze-shell-r4" x="134.2" y="1972" textLength="231.8" clip-path="url(#breeze-shell-line-80)">-selected-providers</text><text cla [...]
+</text><text class="breeze-shell-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-shell-line-81)">│</text><text class="breeze-shell-r4" x="475.8" y="1996.4" textLength="12.2" clip-path="url(#breeze-shell-line-81)">-</text><text class="breeze-shell-r4" x="488" y="1996.4" textLength="48.8" clip-path="url(#breeze-shell-line-81)">-use</text><text class="breeze-shell-r4" x="536.8" y="1996.4" textLength="231.8" clip-path="url(#breeze-shell-line-81)">-packages-from-dist</text><text [...]
+</text><text class="breeze-shell-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-shell-line-82)">│</text><text class="breeze-shell-r7" x="475.8" y="2020.8" textLength="963.8" clip-path="url(#breeze-shell-line-82)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-shell-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-shell-line-83)">│</text><text class="breeze-shell-r4" x="24.4" y="2045.2" textLength="12.2" clip-path="url(#breeze-shell-line-83)">-</text><text class="breeze-shell-r4" x="36.6" y="2045.2" textLength="97.6" clip-path="url(#breeze-shell-line-83)">-package</text><text class="breeze-shell-r4" x="134.2" y="2045.2" textLength="85.4" clip-path="url(#breeze-shell-line-83)">-format</text><text class="b [...]
+</text><text class="breeze-shell-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-shell-line-84)">│</text><text class="breeze-shell-r5" x="475.8" y="2069.6" textLength="658.8" clip-path="url(#breeze-shell-line-84)">[default:&#160;wheel]&#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;&#160;&#160;&#160;</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-shell-line-85)">│</text><text class="breeze-shell-r4" x="24.4" y="2094" textLength="12.2" clip-path="url(#breeze-shell-line-85)">-</text><text class="breeze-shell-r4" x="36.6" y="2094" textLength="122" clip-path="url(#breeze-shell-line-85)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2094" textLength="256.2" clip-path="url(#breeze-shell-line-85)">-constraints-location</text><text  [...]
+</text><text class="breeze-shell-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-shell-line-86)">│</text><text class="breeze-shell-r7" x="475.8" y="2118.4" textLength="927.2" clip-path="url(#breeze-shell-line-86)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-shell-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-shell-line-87)">│</text><text class="breeze-shell-r4" x="24.4" y="2142.8" textLength="12.2" clip-path="url(#breeze-shell-line-87)">-</text><text class="breeze-shell-r4" x="36.6" y="2142.8" textLength="122" clip-path="url(#breeze-shell-line-87)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2142.8" textLength="207.4" clip-path="url(#breeze-shell-line-87)">-constraints-mode</text><t [...]
+</text><text class="breeze-shell-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-shell-line-88)">│</text><text class="breeze-shell-r7" x="475.8" y="2167.2" textLength="866.2" clip-path="url(#breeze-shell-line-88)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="breeze-shell-r5" x="1451.8" y="2167.2" textLength="12.2" clip-path="url(#breeze-shell-line-88)">│</text><text class="breeze-shell-r1" x="1464" y="2167.2" [...]
+</text><text class="breeze-shell-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-shell-line-89)">│</text><text class="breeze-shell-r5" x="475.8" y="2191.6" textLength="866.2" clip-path="url(#breeze-shell-line-89)">[default:&#160;constraints-source-providers]&#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-s [...]
+</text><text class="breeze-shell-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-shell-line-90)">│</text><text class="breeze-shell-r4" x="24.4" y="2216" textLength="12.2" clip-path="url(#breeze-shell-line-90)">-</text><text class="breeze-shell-r4" x="36.6" y="2216" textLength="122" clip-path="url(#breeze-shell-line-90)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2216" textLength="268.4" clip-path="url(#breeze-shell-line-90)">-constraints-reference</text><text [...]
+</text><text class="breeze-shell-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-shell-line-91)">│</text><text class="breeze-shell-r1" x="475.8" y="2240.4" textLength="963.8" clip-path="url(#breeze-shell-line-91)">constraints&#160;URL).&#160;Can&#160;be&#160;&#x27;default&#x27;&#160;in&#160;which&#160;case&#160;the&#160;default&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-shell-r5 [...]
+</text><text class="breeze-shell-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-shell-line-92)">│</text><text class="breeze-shell-r1" x="475.8" y="2264.8" textLength="963.8" clip-path="url(#breeze-shell-line-92)">constraints-reference&#160;is&#160;used.&#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;&#160;&#160;&# [...]
+</text><text class="breeze-shell-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-shell-line-93)">│</text><text class="breeze-shell-r7" x="475.8" y="2289.2" textLength="963.8" clip-path="url(#breeze-shell-line-93)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-shell-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-shell-line-94)">│</text><text class="breeze-shell-r4" x="24.4" y="2313.6" textLength="12.2" clip-path="url(#breeze-shell-line-94)">-</text><text class="breeze-shell-r4" x="36.6" y="2313.6" textLength="122" clip-path="url(#breeze-shell-line-94)">-providers</text><text class="breeze-shell-r4" x="158.6" y="2313.6" textLength="207.4" clip-path="url(#breeze-shell-line-94)">-skip-constraints</text><t [...]
+</text><text class="breeze-shell-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-shell-line-95)">│</text><text class="breeze-shell-r4" x="24.4" y="2338" textLength="12.2" clip-path="url(#breeze-shell-line-95)">-</text><text class="breeze-shell-r4" x="36.6" y="2338" textLength="48.8" clip-path="url(#breeze-shell-line-95)">-use</text><text class="breeze-shell-r4" x="85.4" y="2338" textLength="195.2" clip-path="url(#breeze-shell-line-95)">-airflow-version</text><text class="bree [...]
+</text><text class="breeze-shell-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-shell-line-96)">│</text><text class="breeze-shell-r1" x="475.8" y="2362.4" textLength="963.8" clip-path="url(#breeze-shell-line-96)">install&#160;from&#160;PyPI),&#160;`none`,&#160;`wheel`,&#160;or&#160;`sdist`&#160;to&#160;install&#160;from&#160;`dist`&#160;folder,&#160;</text><text class="breeze-shell-r5" x="1451.8" y="2362.4" textLength="12.2" clip-path="url(#breeze-shell-line-96)">│</text>< [...]
+</text><text class="breeze-shell-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-shell-line-97)">│</text><text class="breeze-shell-r1" x="475.8" y="2386.8" textLength="963.8" clip-path="url(#breeze-shell-line-97)">or&#160;VCS&#160;URL&#160;to&#160;install&#160;from&#160;(https://pip.pypa.io/en/stable/topics/vcs-support/).</text><text class="breeze-shell-r5" x="1451.8" y="2386.8" textLength="12.2" clip-path="url(#breeze-shell-line-97)">│</text><text class="breeze-shell-r1" x [...]
+</text><text class="breeze-shell-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-shell-line-98)">│</text><text class="breeze-shell-r1" x="475.8" y="2411.2" textLength="97.6" clip-path="url(#breeze-shell-line-98)">Implies&#160;</text><text class="breeze-shell-r4" x="573.4" y="2411.2" textLength="12.2" clip-path="url(#breeze-shell-line-98)">-</text><text class="breeze-shell-r4" x="585.6" y="2411.2" textLength="73.2" clip-path="url(#breeze-shell-line-98)">-mount</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-shell-line-99)">│</text><text class="breeze-shell-r7" x="475.8" y="2435.6" textLength="963.8" clip-path="url(#breeze-shell-line-99)">(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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-shell-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-shell-line-100)">│</text><text class="breeze-shell-r4" x="24.4" y="2460" textLength="12.2" clip-path="url(#breeze-shell-line-100)">-</text><text class="breeze-shell-r4" x="36.6" y="2460" textLength="48.8" clip-path="url(#breeze-shell-line-100)">-use</text><text class="breeze-shell-r4" x="85.4" y="2460" textLength="231.8" clip-path="url(#breeze-shell-line-100)">-packages-from-dist</text><text clas [...]
+</text><text class="breeze-shell-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-shell-line-101)">│</text><text class="breeze-shell-r1" x="475.8" y="2484.4" textLength="963.8" clip-path="url(#breeze-shell-line-101)">folder&#160;when&#160;entering&#160;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;&#160;&#160;&#1 [...]
+</text><text class="breeze-shell-r5" x="0" y="2508.8" textLength="1464" clip-path="url(#breeze-shell-line-102)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2508.8" textLength="12.2" clip-path="url(#breeze-shell-line-102)">
+</text><text class="breeze-shell-r5" x="0" y="2533.2" textLength="24.4" clip-path="url(#breeze-shell-line-103)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2533.2" textLength="500.2" clip-path="url(#breeze-shell-line-103)">&#160;Upgrading/downgrading&#160;selected&#160;packages&#160;</text><text class="breeze-shell-r5" x="524.6" y="2533.2" textLength="915" clip-path="url(#breeze-shell-line-103)">───────────────────────────────────────────────────────────────────────────</text><tex [...]
+</text><text class="breeze-shell-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-shell-line-104)">│</text><text class="breeze-shell-r4" x="24.4" y="2557.6" textLength="12.2" clip-path="url(#breeze-shell-line-104)">-</text><text class="breeze-shell-r4" x="36.6" y="2557.6" textLength="97.6" clip-path="url(#breeze-shell-line-104)">-upgrade</text><text class="breeze-shell-r4" x="134.2" y="2557.6" textLength="61" clip-path="url(#breeze-shell-line-104)">-boto</text><text class="b [...]
+</text><text class="breeze-shell-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-shell-line-105)">│</text><text class="breeze-shell-r4" x="24.4" y="2582" textLength="12.2" clip-path="url(#breeze-shell-line-105)">-</text><text class="breeze-shell-r4" x="36.6" y="2582" textLength="122" clip-path="url(#breeze-shell-line-105)">-downgrade</text><text class="breeze-shell-r4" x="158.6" y="2582" textLength="134.2" clip-path="url(#breeze-shell-line-105)">-sqlalchemy</text><text class= [...]
+</text><text class="breeze-shell-r5" x="0" y="2606.4" textLength="1464" clip-path="url(#breeze-shell-line-106)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)">
+</text><text class="breeze-shell-r5" x="0" y="2630.8" textLength="24.4" clip-path="url(#breeze-shell-line-107)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2630.8" textLength="183" clip-path="url(#breeze-shell-line-107)">&#160;DB&#160;test&#160;flags&#160;</text><text class="breeze-shell-r5" x="207.4" y="2630.8" textLength="1232.2" clip-path="url(#breeze-shell-line-107)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><te [...]
+</text><text class="breeze-shell-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-shell-line-108)">│</text><text class="breeze-shell-r4" x="24.4" y="2655.2" textLength="12.2" clip-path="url(#breeze-shell-line-108)">-</text><text class="breeze-shell-r4" x="36.6" y="2655.2" textLength="48.8" clip-path="url(#breeze-shell-line-108)">-run</text><text class="breeze-shell-r4" x="85.4" y="2655.2" textLength="170.8" clip-path="url(#breeze-shell-line-108)">-db-tests-only</text><text c [...]
+</text><text class="breeze-shell-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-shell-line-109)">│</text><text class="breeze-shell-r4" x="24.4" y="2679.6" textLength="12.2" clip-path="url(#breeze-shell-line-109)">-</text><text class="breeze-shell-r4" x="36.6" y="2679.6" textLength="61" clip-path="url(#breeze-shell-line-109)">-skip</text><text class="breeze-shell-r4" x="97.6" y="2679.6" textLength="109.8" clip-path="url(#breeze-shell-line-109)">-db-tests</text><text class=" [...]
+</text><text class="breeze-shell-r5" x="0" y="2704" textLength="1464" clip-path="url(#breeze-shell-line-110)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2704" textLength="12.2" clip-path="url(#breeze-shell-line-110)">
+</text><text class="breeze-shell-r5" x="0" y="2728.4" textLength="24.4" clip-path="url(#breeze-shell-line-111)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2728.4" textLength="183" clip-path="url(#breeze-shell-line-111)">&#160;Other&#160;options&#160;</text><text class="breeze-shell-r5" x="207.4" y="2728.4" textLength="1232.2" clip-path="url(#breeze-shell-line-111)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-shell-line-112)">│</text><text class="breeze-shell-r4" x="24.4" y="2752.8" textLength="12.2" clip-path="url(#breeze-shell-line-112)">-</text><text class="breeze-shell-r4" x="36.6" y="2752.8" textLength="97.6" clip-path="url(#breeze-shell-line-112)">-forward</text><text class="breeze-shell-r4" x="134.2" y="2752.8" textLength="146.4" clip-path="url(#breeze-shell-line-112)">-credentials</text><tex [...]
+</text><text class="breeze-shell-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-shell-line-113)">│</text><text class="breeze-shell-r4" x="24.4" y="2777.2" textLength="12.2" clip-path="url(#breeze-shell-line-113)">-</text><text class="breeze-shell-r4" x="36.6" y="2777.2" textLength="48.8" clip-path="url(#breeze-shell-line-113)">-max</text><text class="breeze-shell-r4" x="85.4" y="2777.2" textLength="61" clip-path="url(#breeze-shell-line-113)">-time</text><text class="breeze [...]
+</text><text class="breeze-shell-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-shell-line-114)">│</text><text class="breeze-shell-r7" x="353.8" y="2801.6" textLength="1049.2" clip-path="url(#breeze-shell-line-114)">(INTEGER&#160;RANGE)&#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;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-shell-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-shell-line-115)">│</text><text class="breeze-shell-r4" x="24.4" y="2826" textLength="12.2" clip-path="url(#breeze-shell-line-115)">-</text><text class="breeze-shell-r4" x="36.6" y="2826" textLength="97.6" clip-path="url(#breeze-shell-line-115)">-verbose</text><text class="breeze-shell-r4" x="134.2" y="2826" textLength="109.8" clip-path="url(#breeze-shell-line-115)">-commands</text><text class="br [...]
+</text><text class="breeze-shell-r5" x="0" y="2850.4" textLength="1464" clip-path="url(#breeze-shell-line-116)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2850.4" textLength="12.2" clip-path="url(#breeze-shell-line-116)">
+</text><text class="breeze-shell-r5" x="0" y="2874.8" textLength="24.4" clip-path="url(#breeze-shell-line-117)">╭─</text><text class="breeze-shell-r5" x="24.4" y="2874.8" textLength="195.2" clip-path="url(#breeze-shell-line-117)">&#160;Common&#160;options&#160;</text><text class="breeze-shell-r5" x="219.6" y="2874.8" textLength="1220" clip-path="url(#breeze-shell-line-117)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">│</text><text class="breeze-shell-r4" x="24.4" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">-</text><text class="breeze-shell-r4" x="36.6" y="2899.2" textLength="85.4" clip-path="url(#breeze-shell-line-118)">-answer</text><text class="breeze-shell-r6" x="158.6" y="2899.2" textLength="24.4" clip-path="url(#breeze-shell-line-118)">-a</text><text class="bre [...]
+</text><text class="breeze-shell-r5" x="0" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">│</text><text class="breeze-shell-r4" x="24.4" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">-</text><text class="breeze-shell-r4" x="36.6" y="2923.6" textLength="48.8" clip-path="url(#breeze-shell-line-119)">-dry</text><text class="breeze-shell-r4" x="85.4" y="2923.6" textLength="48.8" clip-path="url(#breeze-shell-line-119)">-run</text><text class="breez [...]
+</text><text class="breeze-shell-r5" x="0" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">│</text><text class="breeze-shell-r4" x="24.4" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">-</text><text class="breeze-shell-r4" x="36.6" y="2948" textLength="97.6" clip-path="url(#breeze-shell-line-120)">-verbose</text><text class="breeze-shell-r6" x="158.6" y="2948" textLength="24.4" clip-path="url(#breeze-shell-line-120)">-v</text><text class="breeze-she [...]
+</text><text class="breeze-shell-r5" x="0" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)">│</text><text class="breeze-shell-r4" x="24.4" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)">-</text><text class="breeze-shell-r4" x="36.6" y="2972.4" textLength="61" clip-path="url(#breeze-shell-line-121)">-help</text><text class="breeze-shell-r6" x="158.6" y="2972.4" textLength="24.4" clip-path="url(#breeze-shell-line-121)">-h</text><text class="breeze- [...]
 </text><text class="breeze-shell-r5" x="0" y="2996.8" textLength="1464" clip-path="url(#breeze-shell-line-122)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="2996.8" textLength="12.2" clip-path="url(#breeze-shell-line-122)">
 </text>
     </g>
diff --git a/images/breeze/output_shell.txt b/images/breeze/output_shell.txt
index 8e22d7dc42..5c0110a800 100644
--- a/images/breeze/output_shell.txt
+++ b/images/breeze/output_shell.txt
@@ -1 +1 @@
-1b9d3c8dc407a6efbb7983a90443a86a
+1721fbbc6f8794c0d671be243bcb6f50
diff --git a/images/breeze/output_start-airflow.txt b/images/breeze/output_start-airflow.txt
index cdfea97c9a..0d27e6d4a1 100644
--- a/images/breeze/output_start-airflow.txt
+++ b/images/breeze/output_start-airflow.txt
@@ -1 +1 @@
-397ee08bb4b0bfa78892370a1d276b4b
+f08786008dc6552dd92880a45ed5771a
diff --git a/scripts/ci/docker-compose/remove-sources.yml b/scripts/ci/docker-compose/backend-sqlite-no-volume.yml
similarity index 64%
copy from scripts/ci/docker-compose/remove-sources.yml
copy to scripts/ci/docker-compose/backend-sqlite-no-volume.yml
index f4f49e480e..10fa2b82dd 100644
--- a/scripts/ci/docker-compose/remove-sources.yml
+++ b/scripts/ci/docker-compose/backend-sqlite-no-volume.yml
@@ -17,13 +17,8 @@
 ---
 services:
   airflow:
+    environment:
+      - BACKEND=sqlite
+      - AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=${SQLITE_URL}
     volumes:
-      # Removes airflow sources from container
-      - type: bind
-        source: ./empty
-        target: /opt/airflow/airflow:cached
-      # However we keep in_container scripts in order to be able to debug easily the scripts that
-      # are run with --mount-sources removed flag - such as installing airflow and providers
-      - type: bind
-        source: ../../../scripts/in_container
-        target: /opt/airflow/scripts/in_container:cached
+      - /dev/urandom:/dev/random   # Required to get non-blocking entropy source
diff --git a/scripts/ci/docker-compose/remove-sources.yml b/scripts/ci/docker-compose/remove-sources.yml
index f4f49e480e..14f9bc7a3a 100644
--- a/scripts/ci/docker-compose/remove-sources.yml
+++ b/scripts/ci/docker-compose/remove-sources.yml
@@ -21,9 +21,9 @@ services:
       # Removes airflow sources from container
       - type: bind
         source: ./empty
-        target: /opt/airflow/airflow:cached
+        target: /opt/airflow/airflow
       # However we keep in_container scripts in order to be able to debug easily the scripts that
       # are run with --mount-sources removed flag - such as installing airflow and providers
       - type: bind
         source: ../../../scripts/in_container
-        target: /opt/airflow/scripts/in_container:cached
+        target: /opt/airflow/scripts/in_container
diff --git a/scripts/docker/entrypoint_ci.sh b/scripts/docker/entrypoint_ci.sh
index 896f11e75e..cf0ee85bab 100755
--- a/scripts/docker/entrypoint_ci.sh
+++ b/scripts/docker/entrypoint_ci.sh
@@ -44,10 +44,13 @@ PYTHON_MAJOR_MINOR_VERSION=${PYTHON_MAJOR_MINOR_VERSION:=3.8}
 
 export AIRFLOW_HOME=${AIRFLOW_HOME:=${HOME}}
 
-: "${AIRFLOW_SOURCES:?"ERROR: AIRFLOW_SOURCES not set !!!!"}"
+# Create folder where sqlite database file will be stored if it does not exist (which happens when
+# scripts are running rather than breeze shell)
+mkdir "${AIRFLOW_HOME}/sqlite" -p || true
 
 ASSET_COMPILATION_WAIT_MULTIPLIER=${ASSET_COMPILATION_WAIT_MULTIPLIER:=1}
 
+# Make sure that asset compilation is completed before we proceed
 function wait_for_asset_compilation() {
     if [[ -f "${AIRFLOW_SOURCES}/.build/www/.asset_compile.lock" ]]; then
         echo
@@ -89,8 +92,12 @@ If it does not complete soon, you might want to stop it and remove file lock:
     fi
 }
 
-if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
-
+# Initialize environment variables to their default values that are used for running tests and
+# interactive shell.
+function environment_initialization() {
+    if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} == "true" ]]; then
+        return
+    fi
     if [[ $(uname -m) == "arm64" || $(uname -m) == "aarch64" ]]; then
         if [[ ${BACKEND:=} == "mssql" ]]; then
             echo "${COLOR_RED}ARM platform is not supported for ${BACKEND} backend. Exiting.${COLOR_RESET}"
@@ -112,6 +119,7 @@ if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
         echo
         export AIRFLOW__SCHEDULER__STANDALONE_DAG_PROCESSOR=True
     fi
+
     if [[ ${DATABASE_ISOLATION=} == "true" ]]; then
         echo "${COLOR_BLUE}Force database isolation configuration:${COLOR_RESET}"
         export AIRFLOW__CORE__DATABASE_ACCESS_ISOLATION=True
@@ -121,33 +129,10 @@ if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
 
     RUN_TESTS=${RUN_TESTS:="false"}
     CI=${CI:="false"}
-    USE_AIRFLOW_VERSION="${USE_AIRFLOW_VERSION:=""}"
-
-    if [[ ${USE_AIRFLOW_VERSION} == "" && ${USE_PACKAGES_FROM_DIST=} != "true" ]]; then
-        export PYTHONPATH=${AIRFLOW_SOURCES}
-        echo
-        echo "${COLOR_BLUE}Using airflow version from current sources${COLOR_RESET}"
-        echo
-        # Cleanup the logs, tmp when entering the environment
-        sudo rm -rf "${AIRFLOW_SOURCES}"/logs/*
-        sudo rm -rf "${AIRFLOW_SOURCES}"/tmp/*
-        mkdir -p "${AIRFLOW_SOURCES}"/logs/
-        mkdir -p "${AIRFLOW_SOURCES}"/tmp/
-    else
-        python "${IN_CONTAINER_DIR}/install_airflow_and_providers.py"
-    fi
-
-    if [[ "${USE_AIRFLOW_VERSION}" =~ ^2\.2\..*|^2\.1\..*|^2\.0\..* && "${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=}" != "" ]]; then
-        # make sure old variable is used for older airflow versions
-        export AIRFLOW__CORE__SQL_ALCHEMY_CONN="${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN}"
-    fi
 
     # Added to have run-tests on path
     export PATH=${PATH}:${AIRFLOW_SOURCES}
 
-    # This is now set in conftest.py - only for pytest tests
-    unset AIRFLOW__CORE__UNIT_TEST_MODE
-
     mkdir -pv "${AIRFLOW_HOME}/logs/"
 
     # Change the default worker_concurrency for tests
@@ -203,55 +188,88 @@ if [[ ${SKIP_ENVIRONMENT_INITIALIZATION=} != "true" ]]; then
         # shellcheck source=scripts/in_container/bin/run_tmux
         exec run_tmux
     fi
-fi
+}
+
+# Determine which airflow version to use
+function determine_airflow_to_use() {
+    USE_AIRFLOW_VERSION="${USE_AIRFLOW_VERSION:=""}"
+    if [[ ${USE_AIRFLOW_VERSION} == "" && ${USE_PACKAGES_FROM_DIST=} != "true" ]]; then
+        export PYTHONPATH=${AIRFLOW_SOURCES}
+        echo
+        echo "${COLOR_BLUE}Using airflow version from current sources${COLOR_RESET}"
+        echo
+        # Cleanup the logs, tmp when entering the environment
+        sudo rm -rf "${AIRFLOW_SOURCES}"/logs/*
+        sudo rm -rf "${AIRFLOW_SOURCES}"/tmp/*
+        mkdir -p "${AIRFLOW_SOURCES}"/logs/
+        mkdir -p "${AIRFLOW_SOURCES}"/tmp/
+    else
+        python "${IN_CONTAINER_DIR}/install_airflow_and_providers.py"
+    fi
 
-# Remove pytest.ini and .coveragerc from the current directory if it exists. It has been removed from the source tree
-# but may still be present in the local directory if the user has old breeze image
-rm -f "${AIRFLOW_SOURCES}/pytest.ini"
-rm -f "${AIRFLOW_SOURCES}/.coveragerc"
+    if [[ "${USE_AIRFLOW_VERSION}" =~ ^2\.2\..*|^2\.1\..*|^2\.0\..* && "${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=}" != "" ]]; then
+        # make sure old variable is used for older airflow versions
+        export AIRFLOW__CORE__SQL_ALCHEMY_CONN="${AIRFLOW__DATABASE__SQL_ALCHEMY_CONN}"
+    fi
+}
 
-if [[ ${UPGRADE_BOTO=} == "true" ]]; then
+# Upgrade boto3 and botocore to latest version to run Amazon tests with them
+function check_boto_upgrade() {
+    if [[ ${UPGRADE_BOTO=} != "true" ]]; then
+        return
+    fi
     echo
     echo "${COLOR_BLUE}Upgrading boto3, botocore to latest version to run Amazon tests with them${COLOR_RESET}"
     echo
     pip uninstall --root-user-action ignore aiobotocore s3fs -y || true
     pip install --root-user-action ignore --upgrade boto3 botocore
     pip check
-fi
-if [[ ${DOWNGRADE_SQLALCHEMY=} == "true" ]]; then
+}
+
+# Download minimum supported version of sqlalchemy to run tests with it
+function check_download_sqlalchemy() {
+    if [[ ${DOWNGRADE_SQLALCHEMY=} != "true" ]]; then
+        return
+    fi
     min_sqlalchemy_version=$(grep "sqlalchemy>=" setup.cfg | sed "s/.*>=\([0-9\.]*\).*/\1/")
     echo
     echo "${COLOR_BLUE}Downgrading sqlalchemy to minimum supported version: ${min_sqlalchemy_version}${COLOR_RESET}"
     echo
     pip install --root-user-action ignore "sqlalchemy==${min_sqlalchemy_version}"
     pip check
-fi
+}
 
-# Just in case uninstall the pytest-capture-warning which we vendored-in
-pip uninstall --root-user-action ignore "pytest-capture-warnings" -y >/dev/null 2>&1 || true
+# Check if we should run tests and run them if needed
+function check_run_tests() {
+    if [[ ${RUN_TESTS=} != "true" ]]; then
+        return
+    fi
 
-set +u
-# If we do not want to run tests, we simply drop into bash
-if [[ "${RUN_TESTS}" != "true" ]]; then
-    exec /bin/bash "${@}"
-fi
-set -u
+    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 [[ ${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_TYPE} == "PlainAsserts" ]]; then
+       # Plain asserts should be converted to env variable to make sure they are taken into account
+       # otherwise they will not be effective during test collection when plain assert is breaking collection
+       export PYTEST_PLAIN_ASSERTS="true"
+    fi
 
-if [[ ${TEST_TYPE} == "PlainAsserts" ]]; then
-   # Plain asserts should be converted to env variable to make sure they are taken into account
-   # otherwise they will not be effective during test collection when plain assert is breaking collection
-   export PYTEST_PLAIN_ASSERTS="true"
-fi
+    if [[ ${RUN_SYSTEM_TESTS:="false"} == "true" ]]; then
+        exec "${IN_CONTAINER_DIR}/run_system_tests.sh" "${@}"
+    else
+        exec "${IN_CONTAINER_DIR}/run_ci_tests.sh" "${@}"
+    fi
+}
 
-if [[ ${RUN_SYSTEM_TESTS:="false"} == "true" ]]; then
-    "${IN_CONTAINER_DIR}/run_system_tests.sh" "${@}"
-else
-    "${IN_CONTAINER_DIR}/run_ci_tests.sh" "${@}"
-fi
+determine_airflow_to_use
+environment_initialization
+check_boto_upgrade
+check_download_sqlalchemy
+check_run_tests "${@}"
+
+# If we are not running tests - just exec to bash shell
+exec /bin/bash "${@}"
diff --git a/scripts/in_container/install_airflow_and_providers.py b/scripts/in_container/install_airflow_and_providers.py
index 6cb05ad6e6..b434de53a0 100755
--- a/scripts/in_container/install_airflow_and_providers.py
+++ b/scripts/in_container/install_airflow_and_providers.py
@@ -87,15 +87,18 @@ def find_airflow_package(extension: str) -> str | None:
 
 def find_provider_packages(extension: str, selected_providers: list[str]) -> list[str]:
     candidates = list(DIST_FOLDER.glob(f"apache_airflow_providers_*.{extension}"))
-    console.print(
-        f"\n[bright_blue]Found the following provider packages: "
-        f"{[candidate.as_posix() for candidate in candidates]}\n"
-    )
+    console.print("\n[bright_blue]Found the following provider packages: ")
+    for candidate in sorted(candidates):
+        console.print(f"  {candidate.as_posix()}")
+    console.print()
     if selected_providers:
         candidates = [
             candidate for candidate in candidates if get_provider_name(candidate.name) in selected_providers
         ]
-        console.print(f"[bright_blue]Selected provider packages: {candidates}\n")
+        console.print("[bright_blue]Selected provider packages:")
+        for candidate in sorted(candidates):
+            console.print(f"  {candidate.as_posix()}")
+        console.print()
     return [candidate.as_posix() for candidate in candidates]
 
 
@@ -233,7 +236,6 @@ def find_installation_spec(
         console.print(
             f"[red]The airflow source folder exists in {AIRFLOW_SOURCE_DIR}, but you are "
             f"removing it and installing airflow from {use_airflow_version}."
-            f"removing it and installing airflow from {use_airflow_version}."
         )
         console.print("[red]This is not supported. Please use --mount-sources=remove flag in breeze.")
         sys.exit(1)
@@ -501,7 +503,10 @@ def install_airflow_and_providers(
         run_command(install_airflow_cmd, github_actions=github_actions, check=True)
     if installation_spec.provider_packages:
         install_providers_cmd = ["pip", "install", "--root-user-action", "ignore"]
-        console.print(f"\n[bright_blue]Installing provider packages: {installation_spec.provider_packages}")
+        console.print("\n[bright_blue]Installing provider packages:")
+        for provider_package in sorted(installation_spec.provider_packages):
+            console.print(f"  {provider_package}")
+        console.print()
         for provider_package in installation_spec.provider_packages:
             install_providers_cmd.append(provider_package)
         if installation_spec.provider_constraints_location: