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/11/21 10:07:35 UTC

(airflow) branch explicit_build_params updated (c350c37afb -> 72ab6264a7)

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

potiuk pushed a change to branch explicit_build_params
in repository https://gitbox.apache.org/repos/asf/airflow.git


    omit c350c37afb Make passing build args explicit in ci/prod builds
     add ecbf02386a Add basic metrics to stats collector. (#35368)
     add 747f00f2aa Extend task context logging support for remote logging using Elasticsearch (#32977)
     add 2a469b3713 Remove backcompat inheritance for DbApiHook (#35754)
     add de95d0fb5a Improve ownership fixing for Breeze (#35759)
     new 72ab6264a7 Make passing build args explicit in ci/prod builds

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (c350c37afb)
            \
             N -- N -- N   refs/heads/explicit_build_params (72ab6264a7)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/actions/build-ci-images/action.yml         |  4 --
 .github/actions/build-prod-images/action.yml       |  4 --
 .github/actions/post_tests_failure/action.yml      |  3 -
 .github/actions/post_tests_success/action.yml      |  3 -
 .github/workflows/build-images.yml                 |  3 -
 .github/workflows/ci.yml                           | 53 --------------
 .github/workflows/release_dockerhub_image.yml      |  3 -
 Dockerfile.ci                                      |  2 -
 airflow/providers/apache/impala/hooks/impala.py    |  3 +-
 airflow/providers/common/sql/hooks/sql.py          | 18 +----
 airflow/providers/common/sql/hooks/sql.pyi         |  4 +-
 .../providers/elasticsearch/hooks/elasticsearch.py |  4 +-
 .../providers/elasticsearch/log/es_task_handler.py | 46 ++++++++++--
 airflow/providers/openlineage/plugins/adapter.py   |  5 +-
 airflow/providers/trino/hooks/trino.py             | 19 +++--
 ...-root-ownership-after-exiting-docker-command.md | 60 ++++++++++++++++
 .../airflow_breeze/commands/developer_commands.py  |  7 ++
 .../commands/production_image_commands.py          |  4 +-
 .../commands/release_management_commands.py        | 21 ++++++
 .../airflow_breeze/commands/testing_commands.py    |  5 ++
 .../src/airflow_breeze/params/build_ci_params.py   |  1 -
 .../src/airflow_breeze/params/build_prod_params.py |  2 -
 .../airflow_breeze/params/common_build_params.py   |  3 +-
 .../airflow_breeze/utils/docker_command_utils.py   | 30 ++++----
 dev/breeze/src/airflow_breeze/utils/parallel.py    |  6 ++
 dev/breeze/src/airflow_breeze/utils/run_utils.py   |  2 +-
 images/breeze/output_prod-image_build.svg          |  2 +-
 images/breeze/output_prod-image_build.txt          |  2 +-
 scripts/docker/entrypoint_ci.sh                    |  2 -
 scripts/in_container/_in_container_utils.sh        | 40 -----------
 scripts/in_container/run_fix_ownership.py          | 84 ++++++++++++++++++++++
 scripts/in_container/run_fix_ownership.sh          | 21 ------
 .../in_container/run_prepare_airflow_packages.py   | 12 ++--
 setup.py                                           |  1 -
 tests/providers/odbc/hooks/test_odbc.py            |  3 +-
 .../plugins/test_openlineage_adapter.py            | 75 ++++++++++++++++---
 tests/providers/trino/hooks/test_trino.py          | 38 ++++++----
 37 files changed, 370 insertions(+), 225 deletions(-)
 create mode 100644 dev/breeze/doc/adr/0014-fix-root-ownership-after-exiting-docker-command.md
 create mode 100755 scripts/in_container/run_fix_ownership.py
 delete mode 100755 scripts/in_container/run_fix_ownership.sh


(airflow) 01/01: Make passing build args explicit in ci/prod builds

Posted by po...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch explicit_build_params
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 72ab6264a733f721e67717cfa40f8cbe62aea9aa
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Tue Nov 21 02:26:51 2023 +0100

    Make passing build args explicit in ci/prod builds
    
    When building hte image, breeze converts some simple parameters
    passed as breeze command (with autocompletion and explanation)
    into much longer and more complex set of build args that are passed
    to `docker build` command. The way how passing hte args worked so far
    is that it was pretty implicit:
    
    * **kwargs were used to ingest `click` flags
    * parameters found as empty/None were filtered out from these
    * Build*Params dataclass was created out of such kwargs dict
    * argumenst from dataclass (with some customization) were
      converted to --build-arg (CAPITALIZED_PROPERTY_NAME)
    
    This had a lot of implicitness and it was not easy to understand
    whether the parameters passed were correct and how they passed
    through this chain.
    
    This change makes all the build arg much more explicit - without
    kwargs and dictionary. Each CI/PROD build param has now a method
    where it explicitly converts arguments into build-args - including
    specifying which of those are optional (where you can actually
    filter out Empty and None values) and which are required (where
    an actual value is expected).
    
    This PR also cleans up the click flags sequence and their
    presence as well as the output of help command (they were grouped
    with more related parameters)
---
 .../airflow_breeze/commands/ci_image_commands.py   | 119 +++++++++----
 .../commands/ci_image_commands_config.py           |  29 ++--
 .../commands/production_image_commands.py          | 160 +++++++++++++----
 .../commands/production_image_commands_config.py   |  44 +++--
 .../src/airflow_breeze/params/build_ci_params.py   | 113 +++++-------
 .../src/airflow_breeze/params/build_prod_params.py | 115 ++++++-------
 .../airflow_breeze/params/common_build_params.py   |  84 +++++----
 .../src/airflow_breeze/utils/common_options.py     |  12 +-
 .../airflow_breeze/utils/docker_command_utils.py   |  42 +----
 images/breeze/output_ci-image_build.svg            | 160 +++++++++--------
 images/breeze/output_ci-image_build.txt            |   2 +-
 images/breeze/output_prod-image_build.svg          | 190 ++++++++++++---------
 images/breeze/output_prod-image_build.txt          |   2 +-
 ..._release-management_prepare-airflow-package.txt |   2 +-
 ...elease-management_prepare-provider-packages.txt |   2 +-
 15 files changed, 619 insertions(+), 457 deletions(-)

diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
index 560f3852ec..f33fdad2ef 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
@@ -22,6 +22,7 @@ import signal
 import subprocess
 import sys
 import time
+from copy import deepcopy
 from functools import partial
 from pathlib import Path
 from typing import TYPE_CHECKING, Any, Callable
@@ -32,10 +33,10 @@ from airflow_breeze.params.build_ci_params import BuildCiParams
 from airflow_breeze.utils.ci_group import ci_group
 from airflow_breeze.utils.click_utils import BreezeGroup
 from airflow_breeze.utils.common_options import (
+    option_additional_airflow_extras,
     option_additional_dev_apt_command,
     option_additional_dev_apt_deps,
     option_additional_dev_apt_env,
-    option_additional_extras,
     option_additional_pip_install_flags,
     option_additional_python_deps,
     option_airflow_constraints_location,
@@ -53,7 +54,6 @@ from airflow_breeze.utils.common_options import (
     option_docker_cache,
     option_dry_run,
     option_eager_upgrade_additional_requirements,
-    option_force_build,
     option_github_repository,
     option_github_token,
     option_image_name,
@@ -77,7 +77,7 @@ from airflow_breeze.utils.common_options import (
     option_upgrade_to_newer_dependencies,
     option_verbose,
     option_verify,
-    option_version_suffix_for_pypi,
+    option_version_suffix_for_pypi_ci,
     option_wait_for_image,
 )
 from airflow_breeze.utils.confirm import STANDARD_TIMEOUT, Answer, user_confirm
@@ -99,7 +99,6 @@ from airflow_breeze.utils.python_versions import get_python_version_list
 from airflow_breeze.utils.registry import login_to_github_docker_registry
 from airflow_breeze.utils.run_tests import verify_an_image
 from airflow_breeze.utils.run_utils import (
-    filter_out_none,
     fix_group_permissions,
     instruct_build_image,
     is_repo_rebased,
@@ -224,12 +223,6 @@ def get_exitcode(status: int) -> int:
 @ci_image.command(name="build")
 @option_python
 @option_debian_version
-@option_run_in_parallel
-@option_parallelism
-@option_skip_cleanup
-@option_debug_resources
-@option_include_success_outputs
-@option_python_versions
 @option_upgrade_to_newer_dependencies
 @option_upgrade_on_failure
 @option_platform_multiple
@@ -239,18 +232,16 @@ def get_exitcode(status: int) -> int:
 @option_prepare_buildx_cache
 @option_push
 @option_install_providers_from_sources
-@option_additional_extras
+@option_additional_airflow_extras
 @option_additional_dev_apt_deps
 @option_additional_python_deps
 @option_additional_dev_apt_command
 @option_additional_dev_apt_env
 @option_builder
 @option_build_progress
-@option_build_timeout_minutes
 @option_commit_sha
 @option_dev_apt_command
 @option_dev_apt_deps
-@option_force_build
 @option_python_image
 @option_eager_upgrade_additional_requirements
 @option_airflow_constraints_location
@@ -259,19 +250,58 @@ def get_exitcode(status: int) -> int:
 @option_tag_as_latest
 @option_additional_pip_install_flags
 @option_github_repository
-@option_version_suffix_for_pypi
+@option_version_suffix_for_pypi_ci
+@option_build_timeout_minutes
+@option_run_in_parallel
+@option_parallelism
+@option_skip_cleanup
+@option_debug_resources
+@option_include_success_outputs
+@option_python_versions
 @option_verbose
 @option_dry_run
 @option_answer
 def build(
+    # Build options
+    python: str,
+    debian_version: str,
+    upgrade_to_newer_dependencies: bool,
+    upgrade_on_failure: bool,
+    platform: str | None,
+    github_token: str | None,
+    docker_cache: str,
+    image_tag: str,
+    prepare_buildx_cache: bool,
+    push: bool,
+    install_providers_from_sources: bool,
+    additional_airflow_extras: str | None,
+    additional_dev_apt_deps: str | None,
+    additional_python_deps: str | None,
+    additional_dev_apt_command: str | None,
+    additional_dev_apt_env: str | None,
+    builder: str,
+    build_progress: str,
+    commit_sha: str | None,
+    dev_apt_command: str | None,
+    dev_apt_deps: str | None,
+    eager_upgrade_additional_requirements: str | None,
+    airflow_constraints_location: str | None,
+    airflow_constraints_mode: str,
+    airflow_constraints_reference: str,
+    tag_as_latest: bool,
+    additional_pip_install_flags: str | None,
+    github_repository: str,
+    python_image: str | None,
+    version_suffix_for_pypi: str,
+    # Parallel building
     run_in_parallel: bool,
     parallelism: int,
     skip_cleanup: bool,
     debug_resources: bool,
     include_success_outputs,
     python_versions: str,
+    # Other options
     build_timeout_minutes: int | None,
-    **kwargs: dict[str, Any],
 ):
     """Build CI image. Include building multiple images for all python versions."""
 
@@ -306,16 +336,51 @@ def build(
 
     perform_environment_checks()
     check_remote_ghcr_io_commands()
-    parameters_passed = filter_out_none(**kwargs)
-    parameters_passed["force_build"] = True
     fix_group_permissions()
+    base_build_params = BuildCiParams(
+        force_build=True,
+        python=python,
+        debian_version=debian_version,
+        upgrade_to_newer_dependencies=upgrade_to_newer_dependencies,
+        upgrade_on_failure=upgrade_on_failure,
+        github_token=github_token,
+        docker_cache=docker_cache,
+        image_tag=image_tag,
+        prepare_buildx_cache=prepare_buildx_cache,
+        push=push,
+        install_providers_from_sources=install_providers_from_sources,
+        additional_airflow_extras=additional_airflow_extras,
+        additional_python_deps=additional_python_deps,
+        additional_dev_apt_command=additional_dev_apt_command,
+        additional_dev_apt_env=additional_dev_apt_env,
+        builder=builder,
+        build_progress=build_progress,
+        commit_sha=commit_sha,
+        dev_apt_command=dev_apt_command,
+        dev_apt_deps=dev_apt_deps,
+        eager_upgrade_additional_requirements=eager_upgrade_additional_requirements,
+        airflow_constraints_location=airflow_constraints_location,
+        airflow_constraints_mode=airflow_constraints_mode,
+        airflow_constraints_reference=airflow_constraints_reference,
+        tag_as_latest=tag_as_latest,
+        additional_pip_install_flags=additional_pip_install_flags,
+        github_repository=github_repository,
+        python_image=python_image,
+        version_suffix_for_pypi=version_suffix_for_pypi,
+    )
+    if platform:
+        base_build_params.platform = platform
+    if additional_dev_apt_deps:
+        # For CI image we only set additional_dev_apt_deps when we explicitly pass it
+        base_build_params.additional_dev_apt_deps = additional_dev_apt_deps
+
     if run_in_parallel:
         python_version_list = get_python_version_list(python_versions)
         params_list: list[BuildCiParams] = []
         for python in python_version_list:
-            params = BuildCiParams(**parameters_passed)
-            params.python = python
-            params_list.append(params)
+            build_params = deepcopy(base_build_params)
+            build_params.python = python
+            params_list.append(build_params)
         prepare_for_building_ci_image(params=params_list[0])
         run_build_in_parallel(
             image_params_list=params_list,
@@ -326,9 +391,8 @@ def build(
             debug_resources=debug_resources,
         )
     else:
-        params = BuildCiParams(**parameters_passed)
-        prepare_for_building_ci_image(params=params)
-        run_build(ci_image_params=params)
+        prepare_for_building_ci_image(params=base_build_params)
+        run_build(ci_image_params=base_build_params)
 
 
 @ci_image.command(name="pull")
@@ -550,13 +614,6 @@ def run_build_ci_image(
     :param ci_image_params: CI image parameters
     :param output: output redirection
     """
-    if not ci_image_params.version_suffix_for_pypi:
-        # We need that to handle the >= 2.7.0 limit we have for openlineage provider at least until
-        # Airflow 2.7.0 release is out, in order to avoid conflicting dependencies while building the image
-        # We are setting version_suffix_for_pypi to dev0 for CI builds where cache is prepared, so in
-        # order to have the cache used effectively, we should also locally force the version_suffix_for_pypi
-        # to dev0. We might evan leave it as default value in the future (to be decided after 2.7.0 release)
-        ci_image_params.version_suffix_for_pypi = "dev0"
     if (
         ci_image_params.is_multi_platform()
         and not ci_image_params.push
@@ -645,8 +702,6 @@ def rebuild_or_pull_ci_image_if_needed(command_params: ShellParams | BuildCiPara
     Rebuilds CI image if needed and user confirms it.
 
     :param command_params: parameters of the command to execute
-
-
     """
     build_ci_image_check_cache = Path(
         BUILD_CACHE_DIR, command_params.airflow_branch, f".built_{command_params.python}"
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py b/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
index 87e6ab6e91..e128aa035b 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
@@ -35,7 +35,7 @@ CI_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
                 "--image-tag",
                 "--tag-as-latest",
                 "--docker-cache",
-                "--force-build",
+                "--version-suffix-for-pypi",
                 "--build-progress",
             ],
         },
@@ -51,24 +51,33 @@ CI_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
             ],
         },
         {
-            "name": "Advanced options (for power users)",
+            "name": "Advanced build options (for power users)",
             "options": [
                 "--debian-version",
+                "--python-image",
+                "--commit-sha",
+                "--additional-pip-install-flags",
                 "--install-providers-from-sources",
+            ],
+        },
+        {
+            "name": "Selecting constraint location (for power users)",
+            "options": [
                 "--airflow-constraints-location",
                 "--airflow-constraints-mode",
                 "--airflow-constraints-reference",
-                "--python-image",
-                "--additional-python-deps",
+            ],
+        },
+        {
+            "name": "Choosing dependencies and extras (for power users)",
+            "options": [
                 "--additional-airflow-extras",
-                "--additional-pip-install-flags",
-                "--additional-dev-apt-deps",
-                "--additional-dev-apt-env",
-                "--additional-dev-apt-command",
+                "--additional-python-deps",
                 "--dev-apt-deps",
+                "--additional-dev-apt-deps",
                 "--dev-apt-command",
-                "--version-suffix-for-pypi",
-                "--commit-sha",
+                "--additional-dev-apt-command",
+                "--additional-dev-apt-env",
             ],
         },
         {
diff --git a/dev/breeze/src/airflow_breeze/commands/production_image_commands.py b/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
index 9f132aa3e7..ca1780738d 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
@@ -18,7 +18,7 @@ from __future__ import annotations
 
 import os
 import sys
-from typing import Any
+from copy import deepcopy
 
 import click
 
@@ -27,10 +27,10 @@ from airflow_breeze.params.build_prod_params import BuildProdParams
 from airflow_breeze.utils.ci_group import ci_group
 from airflow_breeze.utils.click_utils import BreezeGroup
 from airflow_breeze.utils.common_options import (
+    option_additional_airflow_extras,
     option_additional_dev_apt_command,
     option_additional_dev_apt_deps,
     option_additional_dev_apt_env,
-    option_additional_extras,
     option_additional_pip_install_flags,
     option_additional_python_deps,
     option_additional_runtime_apt_command,
@@ -39,6 +39,7 @@ from airflow_breeze.utils.common_options import (
     option_airflow_constraints_location,
     option_airflow_constraints_mode_prod,
     option_airflow_constraints_reference_build,
+    option_answer,
     option_build_progress,
     option_builder,
     option_commit_sha,
@@ -90,7 +91,7 @@ from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, DOCKER_CONTEXT
 from airflow_breeze.utils.python_versions import get_python_version_list
 from airflow_breeze.utils.registry import login_to_github_docker_registry
 from airflow_breeze.utils.run_tests import verify_an_image
-from airflow_breeze.utils.run_utils import filter_out_none, fix_group_permissions, run_command
+from airflow_breeze.utils.run_utils import fix_group_permissions, run_command
 from airflow_breeze.utils.shared_options import get_dry_run, get_verbose
 
 
@@ -151,26 +152,38 @@ def prod_image():
 @prod_image.command(name="build")
 @option_python
 @option_debian_version
-@option_run_in_parallel
-@option_parallelism
-@option_skip_cleanup
-@option_debug_resources
-@option_include_success_outputs
-@option_python_versions
 @option_platform_multiple
 @option_github_token
 @option_docker_cache
 @option_image_tag_for_building
 @option_prepare_buildx_cache
 @option_push
+@option_install_providers_from_sources
+@click.option("-V", "--install-airflow-version", help="Install version of Airflow from PyPI.")
+@option_additional_airflow_extras
+@option_additional_dev_apt_deps
+@option_additional_runtime_apt_deps
+@option_additional_python_deps
+@option_additional_dev_apt_command
+@option_additional_dev_apt_env
+@option_additional_runtime_apt_env
+@option_additional_runtime_apt_command
+@option_builder
+@option_build_progress
+@option_commit_sha
+@option_dev_apt_command
+@option_dev_apt_deps
+@option_runtime_apt_command
+@option_runtime_apt_deps
 @option_airflow_constraints_location
 @option_airflow_constraints_mode_prod
 @click.option(
     "--installation-method",
     help="Install Airflow from: sources or PyPI.",
     type=BetterChoice(ALLOWED_INSTALLATION_METHODS),
+    default=ALLOWED_INSTALLATION_METHODS[0],
+    show_default=True,
 )
-@option_install_providers_from_sources
 @click.option(
     "--install-packages-from-context",
     help="Install wheels from local docker-context-files when building image. "
@@ -208,37 +221,72 @@ def prod_image():
     help="Install Airflow using GitHub tag or branch.",
 )
 @option_airflow_constraints_reference_build
-@click.option("-V", "--install-airflow-version", help="Install version of Airflow from PyPI.")
-@option_additional_extras
-@option_additional_dev_apt_deps
-@option_additional_runtime_apt_deps
-@option_additional_python_deps
-@option_additional_dev_apt_command
-@option_additional_dev_apt_env
-@option_additional_runtime_apt_env
-@option_additional_runtime_apt_command
-@option_builder
-@option_build_progress
-@option_dev_apt_command
-@option_dev_apt_deps
-@option_python_image
-@option_runtime_apt_command
-@option_runtime_apt_deps
 @option_tag_as_latest
 @option_additional_pip_install_flags
 @option_github_repository
+@option_python_image
 @option_version_suffix_for_pypi
-@option_commit_sha
+@option_run_in_parallel
+@option_parallelism
+@option_skip_cleanup
+@option_debug_resources
+@option_include_success_outputs
+@option_python_versions
 @option_verbose
 @option_dry_run
+@option_answer
 def build(
+    # build options
+    python: str,
+    debian_version: str,
+    platform: str | None,
+    github_token: str | None,
+    docker_cache: str,
+    image_tag: str,
+    prepare_buildx_cache: bool,
+    push: bool,
+    install_providers_from_sources: bool,
+    install_airflow_version: str | None,
+    additional_airflow_extras: str | None,
+    additional_dev_apt_deps: str | None,
+    additional_runtime_apt_deps: str | None,
+    additional_python_deps: str | None,
+    additional_dev_apt_command: str | None,
+    additional_dev_apt_env: str | None,
+    additional_runtime_apt_command: str | None,
+    additional_runtime_apt_env: str | None,
+    builder: str,
+    build_progress: str,
+    commit_sha: str | None,
+    dev_apt_command: str | None,
+    dev_apt_deps: str | None,
+    runtime_apt_command: str | None,
+    runtime_apt_deps: str | None,
+    airflow_constraints_location: str | None,
+    airflow_constraints_mode: str,
+    installation_method: str,
+    install_packages_from_context: bool,
+    use_constraints_for_context_packages: bool,
+    cleanup_context: bool,
+    airflow_extras: str,
+    disable_mysql_client_installation: bool,
+    disable_mssql_client_installation: bool,
+    disable_postgres_client_installation: bool,
+    disable_airflow_repo_cache: bool,
+    install_airflow_reference: str | None,
+    airflow_constraints_reference: str | None,
+    tag_as_latest: bool,
+    additional_pip_install_flags: str | None,
+    github_repository: str,
+    python_image: str | None,
+    version_suffix_for_pypi: str,
+    # Parallel building
     run_in_parallel: bool,
     parallelism: int,
     skip_cleanup: bool,
     debug_resources: bool,
-    include_success_outputs: bool,
+    include_success_outputs,
     python_versions: str,
-    **kwargs: dict[str, Any],
 ):
     """
     Build Production image. Include building multiple images for all or selected Python versions sequentially.
@@ -252,14 +300,59 @@ def build(
 
     perform_environment_checks()
     check_remote_ghcr_io_commands()
-    parameters_passed = filter_out_none(**kwargs)
 
+    base_build_params = BuildProdParams(
+        python=python,
+        debian_version=debian_version,
+        github_token=github_token,
+        docker_cache=docker_cache,
+        image_tag=image_tag,
+        prepare_buildx_cache=prepare_buildx_cache,
+        push=push,
+        install_providers_from_sources=install_providers_from_sources,
+        install_airflow_version=install_airflow_version,
+        additional_airflow_extras=additional_airflow_extras,
+        additional_dev_apt_deps=additional_dev_apt_deps,
+        additional_runtime_apt_deps=additional_runtime_apt_deps,
+        additional_python_deps=additional_python_deps,
+        additional_dev_apt_command=additional_dev_apt_command,
+        additional_dev_apt_env=additional_dev_apt_env,
+        additional_runtime_apt_command=additional_runtime_apt_command,
+        additional_runtime_apt_env=additional_runtime_apt_env,
+        builder=builder,
+        build_progress=build_progress,
+        commit_sha=commit_sha,
+        dev_apt_command=dev_apt_command,
+        dev_apt_deps=dev_apt_deps,
+        runtime_apt_command=runtime_apt_command,
+        runtime_apt_deps=runtime_apt_deps,
+        airflow_constraints_location=airflow_constraints_location,
+        airflow_constraints_mode=airflow_constraints_mode,
+        installation_method=installation_method,
+        install_packages_from_context=install_packages_from_context,
+        use_constraints_for_context_packages=use_constraints_for_context_packages,
+        cleanup_context=cleanup_context,
+        airflow_extras=airflow_extras,
+        disable_mysql_client_installation=disable_mysql_client_installation,
+        disable_mssql_client_installation=disable_mssql_client_installation,
+        disable_postgres_client_installation=disable_postgres_client_installation,
+        disable_airflow_repo_cache=disable_airflow_repo_cache,
+        install_airflow_reference=install_airflow_reference,
+        airflow_constraints_reference=airflow_constraints_reference,
+        tag_as_latest=tag_as_latest,
+        additional_pip_install_flags=additional_pip_install_flags,
+        github_repository=github_repository,
+        python_image=python_image,
+        version_suffix_for_pypi=version_suffix_for_pypi,
+    )
+    if platform:
+        base_build_params.platform = platform
     fix_group_permissions()
     if run_in_parallel:
         python_version_list = get_python_version_list(python_versions)
         params_list: list[BuildProdParams] = []
         for python in python_version_list:
-            params = BuildProdParams(**parameters_passed)
+            params = deepcopy(base_build_params)
             params.python = python
             params_list.append(params)
         prepare_for_building_prod_image(prod_image_params=params_list[0])
@@ -272,9 +365,8 @@ def build(
             include_success_outputs=include_success_outputs,
         )
     else:
-        params = BuildProdParams(**parameters_passed)
-        prepare_for_building_prod_image(prod_image_params=params)
-        run_build(prod_image_params=params)
+        prepare_for_building_prod_image(prod_image_params=base_build_params)
+        run_build(prod_image_params=base_build_params)
 
 
 @prod_image.command(name="pull")
diff --git a/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py b/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
index 713bd0bfa4..52291268f8 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
@@ -34,6 +34,7 @@ PRODUCTION_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] =
                 "--image-tag",
                 "--tag-as-latest",
                 "--docker-cache",
+                "--version-suffix-for-pypi",
                 "--build-progress",
             ],
         },
@@ -49,44 +50,53 @@ PRODUCTION_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] =
             ],
         },
         {
-            "name": "Options for customizing images",
+            "name": "Advanced build options (for power users)",
             "options": [
+                "--debian-version",
+                "--python-image",
+                "--commit-sha",
+                "--additional-pip-install-flags",
                 "--install-providers-from-sources",
-                "--airflow-extras",
+            ],
+        },
+        {
+            "name": "Selecting constraint location (for power users)",
+            "options": [
                 "--airflow-constraints-location",
                 "--airflow-constraints-mode",
                 "--airflow-constraints-reference",
-                "--python-image",
+            ],
+        },
+        {
+            "name": "Choosing dependencies and extras (for power users)",
+            "options": [
+                "--airflow-extras",
                 "--additional-airflow-extras",
-                "--additional-pip-install-flags",
                 "--additional-python-deps",
-                "--additional-runtime-apt-deps",
-                "--additional-runtime-apt-env",
-                "--additional-runtime-apt-command",
+                "--dev-apt-deps",
                 "--additional-dev-apt-deps",
-                "--additional-dev-apt-env",
+                "--dev-apt-command",
                 "--additional-dev-apt-command",
+                "--additional-dev-apt-env",
                 "--runtime-apt-deps",
+                "--additional-runtime-apt-deps",
                 "--runtime-apt-command",
-                "--dev-apt-deps",
-                "--dev-apt-command",
-                "--version-suffix-for-pypi",
-                "--commit-sha",
+                "--additional-runtime-apt-command",
+                "--additional-runtime-apt-env",
             ],
         },
         {
             "name": "Advanced customization options (for specific customization needs)",
             "options": [
-                "--debian-version",
+                "--installation-method",
+                "--install-airflow-reference",
                 "--install-packages-from-context",
-                "--use-constraints-for-context-packages",
                 "--cleanup-context",
+                "--use-constraints-for-context-packages",
+                "--disable-airflow-repo-cache",
                 "--disable-mysql-client-installation",
                 "--disable-mssql-client-installation",
                 "--disable-postgres-client-installation",
-                "--disable-airflow-repo-cache",
-                "--install-airflow-reference",
-                "--installation-method",
             ],
         },
         {
diff --git a/dev/breeze/src/airflow_breeze/params/build_ci_params.py b/dev/breeze/src/airflow_breeze/params/build_ci_params.py
index a713c280b5..b29ebacff0 100644
--- a/dev/breeze/src/airflow_breeze/params/build_ci_params.py
+++ b/dev/breeze/src/airflow_breeze/params/build_ci_params.py
@@ -16,6 +16,7 @@
 # under the License.
 from __future__ import annotations
 
+import random
 from dataclasses import dataclass
 from pathlib import Path
 
@@ -38,7 +39,7 @@ class BuildCiParams(CommonBuildParams):
     force_build: bool = False
     upgrade_to_newer_dependencies: bool = False
     upgrade_on_failure: bool = False
-    eager_upgrade_additional_requirements: str = ""
+    eager_upgrade_additional_requirements: str | None = None
     skip_provider_dependencies_check: bool = False
 
     @property
@@ -49,72 +50,52 @@ class BuildCiParams(CommonBuildParams):
     def image_type(self) -> str:
         return "CI"
 
-    @property
-    def extra_docker_build_flags(self) -> list[str]:
-        extra_ci_flags = []
-        extra_ci_flags.extend(
-            ["--build-arg", f"AIRFLOW_CONSTRAINTS_REFERENCE={self.airflow_constraints_reference}"]
-        )
-        if self.airflow_constraints_location:
-            extra_ci_flags.extend(
-                ["--build-arg", f"AIRFLOW_CONSTRAINTS_LOCATION={self.airflow_constraints_location}"]
-            )
-        if self.upgrade_to_newer_dependencies:
-            eager_upgrade_arg = self.eager_upgrade_additional_requirements.strip().replace("\n", "")
-            if eager_upgrade_arg:
-                extra_ci_flags.extend(
-                    [
-                        "--build-arg",
-                        f"EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS={eager_upgrade_arg}",
-                    ]
-                )
-        return super().extra_docker_build_flags + extra_ci_flags
-
     @property
     def md5sum_cache_dir(self) -> Path:
         return Path(BUILD_CACHE_DIR, self.airflow_branch, self.python, "CI")
 
-    @property
-    def required_image_args(self) -> list[str]:
-        return [
-            "airflow_branch",
-            "airflow_constraints_mode",
-            "airflow_constraints_reference",
-            "airflow_extras",
-            "airflow_image_date_created",
-            "airflow_image_repository",
-            "airflow_pre_cached_pip_packages",
-            "airflow_version",
-            "build_id",
-            "constraints_github_repository",
-            "python_base_image",
-            "upgrade_to_newer_dependencies",
-        ]
-
-    @property
-    def optional_image_args(self) -> list[str]:
-        return [
-            "additional_airflow_extras",
-            "additional_dev_apt_command",
-            "additional_dev_apt_deps",
-            "additional_dev_apt_env",
-            "additional_pip_install_flags",
-            "additional_python_deps",
-            "additional_runtime_apt_command",
-            "additional_runtime_apt_deps",
-            "additional_runtime_apt_env",
-            "dev_apt_command",
-            "dev_apt_deps",
-            "additional_dev_apt_command",
-            "additional_dev_apt_deps",
-            "additional_dev_apt_env",
-            "additional_airflow_extras",
-            "additional_pip_install_flags",
-            "additional_python_deps",
-            "version_suffix_for_pypi",
-            "commit_sha",
-            "build_progress",
-        ]
-
-    def __post_init__(self):
-        pass
+    def prepare_arguments_for_docker_build_command(self) -> list[str]:
+        self.build_arg_values: list[str] = []
+        # Required build args
+        self._req_arg("AIRFLOW_BRANCH", self.airflow_branch)
+        self._req_arg("AIRFLOW_CONSTRAINTS_MODE", self.airflow_constraints_mode)
+        self._req_arg("AIRFLOW_CONSTRAINTS_REFERENCE", self.airflow_constraints_reference)
+        self._req_arg("AIRFLOW_EXTRAS", self.airflow_extras)
+        self._req_arg("AIRFLOW_IMAGE_DATE_CREATED", self.airflow_image_date_created)
+        self._req_arg("AIRFLOW_IMAGE_REPOSITORY", self.airflow_image_repository)
+        self._req_arg("AIRFLOW_PRE_CACHED_PIP_PACKAGES", self.airflow_pre_cached_pip_packages)
+        self._req_arg("AIRFLOW_VERSION", self.airflow_version)
+        self._req_arg("BUILD_ID", self.build_id)
+        self._req_arg("CONSTRAINTS_GITHUB_REPOSITORY", self.constraints_github_repository)
+        self._req_arg("PYTHON_BASE_IMAGE", self.python_base_image)
+        if self.upgrade_to_newer_dependencies:
+            self._opt_arg("UPGRADE_TO_NEWER_DEPENDENCIES", f"{random.randrange(2**32):x}")
+            if self.eager_upgrade_additional_requirements:
+                # in case eager upgrade additional requirements have EOL, connect them together
+                self._opt_arg(
+                    "EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS",
+                    self.eager_upgrade_additional_requirements.replace("\n", ""),
+                )
+        # optional build args
+        self._opt_arg("AIRFLOW_CONSTRAINTS_LOCATION", self.airflow_constraints_location)
+        self._opt_arg("ADDITIONAL_AIRFLOW_EXTRAS", self.additional_airflow_extras)
+        self._opt_arg("ADDITIONAL_DEV_APT_COMMAND", self.additional_dev_apt_command)
+        self._opt_arg("ADDITIONAL_DEV_APT_DEPS", self.additional_dev_apt_deps)
+        self._opt_arg("ADDITIONAL_DEV_APT_ENV", self.additional_dev_apt_env)
+        self._opt_arg("ADDITIONAL_PIP_INSTALL_FLAGS", self.additional_pip_install_flags)
+        self._opt_arg("ADDITIONAL_PYTHON_DEPS", self.additional_python_deps)
+        self._opt_arg("DEV_APT_COMMAND", self.dev_apt_command)
+        self._opt_arg("DEV_APT_DEPS", self.dev_apt_deps)
+        self._opt_arg("ADDITIONAL_DEV_APT_COMMAND", self.additional_dev_apt_command)
+        self._opt_arg("ADDITIONAL_DEV_APT_DEPS", self.additional_dev_apt_deps)
+        self._opt_arg("ADDITIONAL_DEV_APT_ENV", self.additional_dev_apt_env)
+        self._opt_arg("ADDITIONAL_AIRFLOW_EXTRAS", self.additional_airflow_extras)
+        self._opt_arg("ADDITIONAL_PIP_INSTALL_FLAGS", self.additional_pip_install_flags)
+        self._opt_arg("ADDITIONAL_PYTHON_DEPS", self.additional_python_deps)
+        self._opt_arg("VERSION_SUFFIX_FOR_PYPI", self.version_suffix_for_pypi)
+        self._opt_arg("COMMIT_SHA", self.commit_sha)
+        self._opt_arg("BUILD_PROGRESS", self.build_progress)
+        # Convert to build args
+        build_args = self._to_build_args()
+        # Add cache directive
+        return build_args
diff --git a/dev/breeze/src/airflow_breeze/params/build_prod_params.py b/dev/breeze/src/airflow_breeze/params/build_prod_params.py
index 585c7dc0c9..ed9a6b6741 100644
--- a/dev/breeze/src/airflow_breeze/params/build_prod_params.py
+++ b/dev/breeze/src/airflow_breeze/params/build_prod_params.py
@@ -38,9 +38,9 @@ class BuildProdParams(CommonBuildParams):
     PROD build parameters. Those parameters are used to determine command issued to build PROD image.
     """
 
-    additional_runtime_apt_command: str = ""
-    additional_runtime_apt_deps: str = ""
-    additional_runtime_apt_env: str = ""
+    additional_runtime_apt_command: str | None = None
+    additional_runtime_apt_deps: str | None = None
+    additional_runtime_apt_env: str | None = None
     airflow_constraints_mode: str = "constraints"
     airflow_constraints_reference: str = DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH
     cleanup_context: bool = False
@@ -49,13 +49,13 @@ class BuildProdParams(CommonBuildParams):
     disable_mssql_client_installation: bool = False
     disable_mysql_client_installation: bool = False
     disable_postgres_client_installation: bool = False
-    install_airflow_reference: str = ""
-    install_airflow_version: str = ""
+    install_airflow_reference: str | None = None
+    install_airflow_version: str | None = None
     install_packages_from_context: bool = False
     use_constraints_for_context_packages: bool = False
     installation_method: str = "."
-    runtime_apt_command: str = ""
-    runtime_apt_deps: str = ""
+    runtime_apt_command: str | None = None
+    runtime_apt_deps: str | None = None
 
     @property
     def airflow_version(self) -> str:
@@ -110,24 +110,20 @@ class BuildProdParams(CommonBuildParams):
             self.airflow_branch_for_pypi_preloading = AIRFLOW_BRANCH
         return build_args
 
-    @property
-    def extra_docker_build_flags(self) -> list[str]:
+    def _extra_prod_docker_build_flags(self) -> list[str]:
         extra_build_flags = []
         if self.install_airflow_reference:
-            AIRFLOW_INSTALLATION_METHOD = (
-                "https://github.com/apache/airflow/archive/"
-                + self.install_airflow_reference
-                + ".tar.gz#egg=apache-airflow"
-            )
             extra_build_flags.extend(
                 [
                     "--build-arg",
-                    AIRFLOW_INSTALLATION_METHOD,
+                    "https://github.com/apache/airflow/archive/"
+                    + self.install_airflow_reference
+                    + ".tar.gz#egg=apache-airflow",
                 ]
             )
             extra_build_flags.extend(self.args_for_remote_install)
         elif self.install_airflow_version:
-            if not re.match(r"^[0-9\.]+((a|b|rc|alpha|beta|pre)[0-9]+)?$", self.install_airflow_version):
+            if not re.match(r"^[0-9.]+((a|b|rc|alpha|beta|pre)[0-9]+)?$", self.install_airflow_version):
                 get_console().print(
                     f"\n[error]ERROR: Bad value for install-airflow-version:{self.install_airflow_version}"
                 )
@@ -175,7 +171,7 @@ class BuildProdParams(CommonBuildParams):
                 f"io.artifacthub.package.logo-url={logo_url}",
             ]
         )
-        return super().extra_docker_build_flags + extra_build_flags
+        return extra_build_flags
 
     @property
     def airflow_pre_cached_pip_packages(self) -> str:
@@ -201,46 +197,45 @@ class BuildProdParams(CommonBuildParams):
     def airflow_image_kubernetes(self) -> str:
         return f"{self.airflow_image_name}-kubernetes"
 
-    @property
-    def required_image_args(self) -> list[str]:
-        return [
-            "airflow_branch",
-            "airflow_constraints_mode",
-            "airflow_extras",
-            "airflow_image_date_created",
-            "airflow_image_readme_url",
-            "airflow_image_repository",
-            "airflow_pre_cached_pip_packages",
-            "airflow_version",
-            "build_id",
-            "constraints_github_repository",
-            "docker_context_files",
-            "install_mssql_client",
-            "install_mysql_client",
-            "install_packages_from_context",
-            "install_postgres_client",
-            "install_providers_from_sources",
-            "python_base_image",
-        ]
-
-    @property
-    def optional_image_args(self) -> list[str]:
-        return [
-            "additional_airflow_extras",
-            "additional_dev_apt_command",
-            "additional_dev_apt_deps",
-            "additional_dev_apt_env",
-            "additional_pip_install_flags",
-            "additional_python_deps",
-            "additional_runtime_apt_command",
-            "additional_runtime_apt_deps",
-            "additional_runtime_apt_env",
-            "dev_apt_command",
-            "dev_apt_deps",
-            "runtime_apt_command",
-            "runtime_apt_deps",
-            "version_suffix_for_pypi",
-            "commit_sha",
-            "build_progress",
-            "use_constraints_for_context_packages",
-        ]
+    def prepare_arguments_for_docker_build_command(self) -> list[str]:
+        self.build_arg_values: list[str] = []
+        # Required build args
+        self._req_arg("AIRFLOW_BRANCH", self.airflow_branch)
+        self._req_arg("AIRFLOW_CONSTRAINTS_MODE", self.airflow_constraints_mode)
+        self._req_arg("AIRFLOW_EXTRAS", self.airflow_extras)
+        self._req_arg("AIRFLOW_IMAGE_DATE_CREATED", self.airflow_image_date_created)
+        self._req_arg("AIRFLOW_IMAGE_README_URL", self.airflow_image_readme_url)
+        self._req_arg("AIRFLOW_IMAGE_REPOSITORY", self.airflow_image_repository)
+        self._req_arg("AIRFLOW_PRE_CACHED_PIP_PACKAGES", self.airflow_pre_cached_pip_packages)
+        self._req_arg("AIRFLOW_VERSION", self.airflow_version)
+        self._req_arg("BUILD_ID", self.build_id)
+        self._req_arg("CONSTRAINTS_GITHUB_REPOSITORY", self.constraints_github_repository)
+        self._req_arg("DOCKER_CONTEXT_FILES", self.docker_context_files)
+        self._req_arg("INSTALL_MSSQL_CLIENT", self.install_mssql_client)
+        self._req_arg("INSTALL_MYSQL_CLIENT", self.install_mysql_client)
+        self._req_arg("INSTALL_PACKAGES_FROM_CONTEXT", self.install_packages_from_context)
+        self._req_arg("INSTALL_POSTGRES_CLIENT", self.install_postgres_client)
+        self._req_arg("INSTALL_PROVIDERS_FROM_SOURCES", self.install_providers_from_sources)
+        self._req_arg("PYTHON_BASE_IMAGE", self.python_base_image)
+        # optional build args
+        self._opt_arg("AIRFLOW_CONSTRAINTS_LOCATION", self.airflow_constraints_location)
+        self._opt_arg("ADDITIONAL_AIRFLOW_EXTRAS", self.additional_airflow_extras)
+        self._opt_arg("ADDITIONAL_DEV_APT_COMMAND", self.additional_dev_apt_command)
+        self._opt_arg("ADDITIONAL_DEV_APT_DEPS", self.additional_dev_apt_deps)
+        self._opt_arg("ADDITIONAL_DEV_APT_ENV", self.additional_dev_apt_env)
+        self._opt_arg("ADDITIONAL_PIP_INSTALL_FLAGS", self.additional_pip_install_flags)
+        self._opt_arg("ADDITIONAL_PYTHON_DEPS", self.additional_python_deps)
+        self._opt_arg("ADDITIONAL_RUNTIME_APT_COMMAND", self.additional_runtime_apt_command)
+        self._opt_arg("ADDITIONAL_RUNTIME_APT_DEPS", self.additional_runtime_apt_deps)
+        self._opt_arg("ADDITIONAL_RUNTIME_APT_ENV", self.additional_runtime_apt_env)
+        self._opt_arg("DEV_APT_COMMAND", self.dev_apt_command)
+        self._opt_arg("DEV_APT_DEPS", self.dev_apt_deps)
+        self._opt_arg("RUNTIME_APT_COMMAND", self.runtime_apt_command)
+        self._opt_arg("RUNTIME_APT_DEPS", self.runtime_apt_deps)
+        self._opt_arg("VERSION_SUFFIX_FOR_PYPI", self.version_suffix_for_pypi)
+        self._opt_arg("COMMIT_SHA", self.commit_sha)
+        self._opt_arg("BUILD_PROGRESS", self.build_progress)
+        self._opt_arg("USE_CONSTRAINTS_FOR_CONTEXT_PACKAGES", self.use_constraints_for_context_packages)
+        build_args = self._to_build_args()
+        build_args.extend(self._extra_prod_docker_build_flags())
+        return build_args
diff --git a/dev/breeze/src/airflow_breeze/params/common_build_params.py b/dev/breeze/src/airflow_breeze/params/common_build_params.py
index 782d01bca4..29e748f8c8 100644
--- a/dev/breeze/src/airflow_breeze/params/common_build_params.py
+++ b/dev/breeze/src/airflow_breeze/params/common_build_params.py
@@ -18,8 +18,9 @@ from __future__ import annotations
 
 import os
 import sys
-from dataclasses import dataclass
+from dataclasses import dataclass, field
 from datetime import datetime
+from typing import Any
 
 from airflow_breeze.branch_defaults import AIRFLOW_BRANCH, DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH
 from airflow_breeze.global_constants import (
@@ -37,24 +38,23 @@ class CommonBuildParams:
     Common build parameters. Those parameters are common parameters for CI And PROD build.
     """
 
-    additional_airflow_extras: str = ""
-    additional_dev_apt_command: str = ""
-    additional_dev_apt_deps: str = ""
-    additional_dev_apt_env: str = ""
-    additional_python_deps: str = ""
-    additional_pip_install_flags: str = ""
+    additional_airflow_extras: str | None = None
+    additional_dev_apt_command: str | None = None
+    additional_dev_apt_deps: str | None = None
+    additional_dev_apt_env: str | None = None
+    additional_python_deps: str | None = None
+    additional_pip_install_flags: str | None = None
     airflow_branch: str = os.environ.get("DEFAULT_BRANCH", AIRFLOW_BRANCH)
     default_constraints_branch: str = os.environ.get(
         "DEFAULT_CONSTRAINTS_BRANCH", DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH
     )
-    airflow_constraints_location: str = ""
-    build_id: int = 0
+    airflow_constraints_location: str | None = None
     builder: str = "autodetect"
     build_progress: str = ALLOWED_BUILD_PROGRESS[0]
     constraints_github_repository: str = APACHE_AIRFLOW_GITHUB_REPOSITORY
-    commit_sha: str = ""
-    dev_apt_command: str = ""
-    dev_apt_deps: str = ""
+    commit_sha: str | None = None
+    dev_apt_command: str | None = None
+    dev_apt_deps: str | None = None
     docker_cache: str = "registry"
     github_actions: str = os.environ.get("GITHUB_ACTIONS", "false")
     github_repository: str = APACHE_AIRFLOW_GITHUB_REPOSITORY
@@ -68,14 +68,19 @@ class CommonBuildParams:
     python: str = "3.8"
     tag_as_latest: bool = False
     dry_run: bool = False
-    version_suffix_for_pypi: str = ""
+    version_suffix_for_pypi: str | None = None
     verbose: bool = False
     debian_version: str = "bookworm"
+    build_arg_values: list[str] = field(default_factory=list)
 
     @property
     def airflow_version(self):
         raise NotImplementedError()
 
+    @property
+    def build_id(self) -> str:
+        return os.environ.get("CI_BUILD_ID", "0")
+
     @property
     def image_type(self) -> str:
         raise NotImplementedError()
@@ -99,23 +104,14 @@ class CommonBuildParams:
         return image
 
     @property
-    def extra_docker_build_flags(self) -> list[str]:
-        extra_flass = []
-        if self.build_progress:
-            extra_flass.append(f"--progress={self.build_progress}")
-        return extra_flass
-
-    @property
-    def docker_cache_directive(self) -> list[str]:
-        docker_cache_directive = []
+    def common_docker_build_flags(self) -> list[str]:
+        extra_flags = []
+        extra_flags.append(f"--progress={self.build_progress}")
         if self.docker_cache == "registry":
-            for platform in self.platforms:
-                docker_cache_directive.append(f"--cache-from={self.get_cache(platform)}")
+            extra_flags.append(f"--cache-from={self.get_cache(self.platform)}")
         elif self.docker_cache == "disabled":
-            docker_cache_directive.append("--no-cache")
-        else:
-            docker_cache_directive = []
-        return docker_cache_directive
+            extra_flags.append("--no-cache")
+        return extra_flags
 
     @property
     def python_base_image(self):
@@ -169,13 +165,31 @@ class CommonBuildParams:
     def platforms(self) -> list[str]:
         return self.platform.split(",")
 
-    @property
-    def required_image_args(self) -> list[str]:
-        raise NotImplementedError()
+    def _build_arg(self, name: str, value: Any, optional: bool):
+        if value is None or "":
+            if optional:
+                return
+            else:
+                raise ValueError(f"Value for {name} cannot be empty or None")
+        if value is True:
+            str_value = "true"
+        elif value is False:
+            str_value = "false"
+        else:
+            str_value = str(value) if value is not None else ""
+        self.build_arg_values.append(f"{name}={str_value}")
 
-    @property
-    def optional_image_args(self) -> list[str]:
+    def _req_arg(self, name: str, value: Any):
+        self._build_arg(name, value, False)
+
+    def _opt_arg(self, name: str, value: Any):
+        self._build_arg(name, value, True)
+
+    def prepare_arguments_for_docker_build_command(self) -> list[str]:
         raise NotImplementedError()
 
-    def __post_init__(self):
-        pass
+    def _to_build_args(self):
+        build_args = []
+        for arg in self.build_arg_values:
+            build_args.extend(["--build-arg", arg])
+        return build_args
diff --git a/dev/breeze/src/airflow_breeze/utils/common_options.py b/dev/breeze/src/airflow_breeze/utils/common_options.py
index 2a001f2757..249faaafd1 100644
--- a/dev/breeze/src/airflow_breeze/utils/common_options.py
+++ b/dev/breeze/src/airflow_breeze/utils/common_options.py
@@ -293,7 +293,7 @@ option_upgrade_on_failure = click.option(
     help="When set, attempt to run upgrade to newer dependencies when regular build fails.",
     envvar="UPGRADE_ON_FAILURE",
 )
-option_additional_extras = click.option(
+option_additional_airflow_extras = click.option(
     "--additional-airflow-extras",
     help="Additional extra package while installing Airflow in the image.",
     envvar="ADDITIONAL_AIRFLOW_EXTRAS",
@@ -413,7 +413,13 @@ option_load_default_connection = click.option(
 option_version_suffix_for_pypi = click.option(
     "--version-suffix-for-pypi",
     help="Version suffix used for PyPI packages (alpha, beta, rc1, etc.).",
-    default="",
+    envvar="VERSION_SUFFIX_FOR_PYPI",
+)
+option_version_suffix_for_pypi_ci = click.option(
+    "--version-suffix-for-pypi",
+    help="Version suffix used for PyPI packages (alpha, beta, rc1, etc.).",
+    default="dev0",
+    show_default=True,
     envvar="VERSION_SUFFIX_FOR_PYPI",
 )
 option_package_format = click.option(
@@ -478,7 +484,6 @@ option_airflow_constraints_reference = click.option(
 option_airflow_constraints_location = click.option(
     "--airflow-constraints-location",
     type=str,
-    default="",
     help="If specified, it is used instead of calculating reference to the constraint file. "
     "It could be full remote URL to the location file, or local file placed in `docker-context-files` "
     "(in this case it has to start with /opt/airflow/docker-context-files).",
@@ -615,7 +620,6 @@ option_historical_python_version = click.option(
 )
 option_commit_sha = click.option(
     "--commit-sha",
-    default=None,
     show_default=True,
     envvar="COMMIT_SHA",
     help="Commit SHA that is used to build the images.",
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 36c976b2fe..78a8d69754 100644
--- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
@@ -388,35 +388,6 @@ def get_env_variable_value(arg_name: str, params: CommonBuildParams | ShellParam
     return value
 
 
-def prepare_arguments_for_docker_build_command(image_params: CommonBuildParams) -> list[str]:
-    """
-    Constructs docker compose command arguments list based on parameters passed. Maps arguments to
-    argument values.
-
-    It maps:
-    * all the truthy/falsy values are converted to "true" / "false" respectively
-    * if upgrade_to_newer_dependencies is set to True, it is replaced by a random string to account
-      for the need of always triggering upgrade for docker build.
-
-    :param image_params: parameters of the image
-    :return: list of `--build-arg` commands to use for the parameters passed
-    """
-
-    args_command = []
-    for required_arg in image_params.required_image_args:
-        args_command.append("--build-arg")
-        args_command.append(
-            required_arg.upper() + "=" + get_env_variable_value(arg_name=required_arg, params=image_params)
-        )
-    for optional_arg in image_params.optional_image_args:
-        param_value = get_env_variable_value(optional_arg, params=image_params)
-        if param_value:
-            args_command.append("--build-arg")
-            args_command.append(optional_arg.upper() + "=" + param_value)
-    args_command.extend(image_params.docker_cache_directive)
-    return args_command
-
-
 def prepare_docker_build_cache_command(
     image_params: CommonBuildParams,
 ) -> list[str]:
@@ -427,16 +398,14 @@ def prepare_docker_build_cache_command(
 
     :return: Command to run as list of string
     """
-    arguments = prepare_arguments_for_docker_build_command(image_params)
-    build_flags = image_params.extra_docker_build_flags
     final_command = []
     final_command.extend(["docker"])
     final_command.extend(
         ["buildx", "build", "--builder", get_and_use_docker_context(image_params.builder), "--progress=auto"]
     )
-    final_command.extend(build_flags)
+    final_command.extend(image_params.common_docker_build_flags)
     final_command.extend(["--pull"])
-    final_command.extend(arguments)
+    final_command.extend(image_params.prepare_arguments_for_docker_build_command())
     final_command.extend(["--target", "main", "."])
     final_command.extend(
         ["-f", "Dockerfile" if isinstance(image_params, BuildProdParams) else "Dockerfile.ci"]
@@ -470,7 +439,6 @@ def prepare_base_build_command(image_params: CommonBuildParams) -> list[str]:
                 "build",
                 "--builder",
                 get_and_use_docker_context(image_params.builder),
-                "--progress=auto",
                 "--push" if image_params.push else "--load",
             ]
         )
@@ -488,17 +456,15 @@ def prepare_docker_build_command(
 
     :return: Command to run as list of string
     """
-    arguments = prepare_arguments_for_docker_build_command(image_params)
     build_command = prepare_base_build_command(
         image_params=image_params,
     )
-    build_flags = image_params.extra_docker_build_flags
     final_command = []
     final_command.extend(["docker"])
     final_command.extend(build_command)
-    final_command.extend(build_flags)
+    final_command.extend(image_params.common_docker_build_flags)
     final_command.extend(["--pull"])
-    final_command.extend(arguments)
+    final_command.extend(image_params.prepare_arguments_for_docker_build_command())
     final_command.extend(["-t", image_params.airflow_image_name_with_tag, "--target", "main", "."])
     final_command.extend(
         ["-f", "Dockerfile" if isinstance(image_params, BuildProdParams) else "Dockerfile.ci"]
diff --git a/images/breeze/output_ci-image_build.svg b/images/breeze/output_ci-image_build.svg
index 2a7147c2fd..57fb8ac402 100644
--- a/images/breeze/output_ci-image_build.svg
+++ b/images/breeze/output_ci-image_build.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2172.7999999999997" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2270.4" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-ci-image-build-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="2121.7999999999997" />
+      <rect x="0" y="0" width="1463.0" height="2219.4" />
     </clipPath>
     <clipPath id="breeze-ci-image-build-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -303,9 +303,21 @@
 <clipPath id="breeze-ci-image-build-line-85">
     <rect x="0" y="2075.5" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-ci-image-build-line-86">
+    <rect x="0" y="2099.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-image-build-line-87">
+    <rect x="0" y="2124.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-image-build-line-88">
+    <rect x="0" y="2148.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-image-build-line-89">
+    <rect x="0" y="2173.1" 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="2170.8" rx="8"/><text class="breeze-ci-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;ci-image&#160;build</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2268.4" rx="8"/><text class="breeze-ci-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;ci-image&#160;build</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -332,76 +344,80 @@
 </text><text class="breeze-ci-image-build-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-14)">│</text><text class="breeze-ci-image-build-r1" x="475.8" y="361.6" textLength="414.8" clip-path="url(#breeze-ci-image-build-line-14)">when&#160;you&#160;build&#160;or&#160;pull&#160;image&#160;with&#160;</text><text class="breeze-ci-image-build-r4" x="890.6" y="361.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-14)">-</text><text class="breeze-c [...]
 </text><text class="breeze-ci-image-build-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-15)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-15)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="386" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-15)">-docker</text><text class="breeze-ci-image-build-r4" x="122" y="386" textLength="73.2" clip-path="url(#bre [...]
 </text><text class="breeze-ci-image-build-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-16)">│</text><text class="breeze-ci-image-build-r5" x="475.8" y="410.4" textLength="549" clip-path="url(#breeze-ci-image-build-line-16)">[default:&#160;registry]&#160;&#160;&#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-ci-image-build-r5" x="145 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="434.8" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-17)">-force</text><text class="breeze-ci-image-build-r4" x="109.8" y="434.8" textLength="73.2" clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-18)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-18)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="459.2" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-18)">-build</text><text class="breeze-ci-image-build-r4" x="109.8" y="459.2" textLength="109.8" clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="483.6" textLength="1464" clip-path="url(#breeze-ci-image-build-line-19)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="483.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-19)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="508" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-20)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="508" textLength="353.8" clip-path="url(#breeze-ci-image-build-line-20)">&#160;Building&#160;images&#160;in&#160;parallel&#160;</text><text class="breeze-ci-image-build-r5" x="378.2" y="508" textLength="1061.4" clip-path="url(#breeze-ci-image-build-line-20)">──────────────────────────────────────────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-21)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-21)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="532.4" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-21)">-run</text><text class="breeze-ci-image-build-r4" x="85.4" y="532.4" textLength="146.4" clip-path="u [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="556.8" textLength="146.4" clip-path="url(#breeze-ci-image-build-line-22)">-parallelism</text><text class="breeze-ci-image-build-r1" x="378.2" y="556.8" textLength="915" clip [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-23)">│</text><text class="breeze-ci-image-build-r7" x="378.2" y="581.2" textLength="915" clip-path="url(#breeze-ci-image-build-line-23)">(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;&# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-24)">│</text><text class="breeze-ci-image-build-r5" x="378.2" y="605.6" textLength="915" clip-path="url(#breeze-ci-image-build-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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-25)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-25)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="630" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-25)">-python</text><text class="breeze-ci-image-build-r4" x="122" y="630" textLength="109.8" clip-path="url(#br [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">│</text><text class="breeze-ci-image-build-r5" x="378.2" y="654.4" textLength="951.6" clip-path="url(#breeze-ci-image-build-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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-27)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-27)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="678.8" textLength="61" clip-path="url(#breeze-ci-image-build-line-27)">-skip</text><text class="breeze-ci-image-build-r4" x="97.6" y="678.8" textLength="97.6" clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="703.2" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-28)">-debug</text><text class="breeze-ci-image-build-r4" x="109.8" y="703.2" textLength="122" clip-path=" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-29)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-29)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="727.6" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-29)">-include</text><text class="breeze-ci-image-build-r4" x="134.2" y="727.6" textLength="195.2" clip-pa [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-ci-image-build-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-30)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-31)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="776.4" textLength="439.2" clip-path="url(#breeze-ci-image-build-line-31)">&#160;Advanced&#160;options&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-ci-image-build-r5" x="463.6" y="776.4" textLength="976" clip-path="url(#breeze-ci-image-build-line-31)">───────────────────────────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-32)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-32)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="800.8" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-32)">-debian</text><text class="breeze-ci-image-build-r4" x="122" y="800.8" textLength="97.6" clip-path=" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="825.2" textLength="793" clip-path="url(#breeze-ci-image-build-line-33)">(bookworm&#160;|&#160;bullseye)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-34)">│</text><text class="breeze-ci-image-build-r5" x="463.6" y="849.6" textLength="793" clip-path="url(#breeze-ci-image-build-line-34)">[default:&#160;bookworm]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-35)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-35)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="874" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-35)">-install</text><text class="breeze-ci-image-build-r4" x="134.2" y="874" textLength="280.6" clip-path="url( [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="898.4" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-36)">-airflow</text><text class="breeze-ci-image-build-r4" x="134.2" y="898.4" textLength="256.2" clip-pa [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-37)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="922.8" textLength="976" clip-path="url(#breeze-ci-image-build-line-37)">file.&#160;It&#160;could&#160;be&#160;full&#160;remote&#160;URL&#160;to&#160;the&#160;location&#160;file,&#160;or&#160;local&#160;file&#160;placed&#160;in&#160;</text><text class="breeze-ci-image-build-r5" x="1451.8" y="922.8" textL [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-38)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="947.2" textLength="976" clip-path="url(#breeze-ci-image-build-line-38)">`docker-context-files`&#160;(in&#160;this&#160;case&#160;it&#160;has&#160;to&#160;start&#160;with&#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-ci-image-build-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-39)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="971.6" textLength="976" clip-path="url(#breeze-ci-image-build-line-39)">/opt/airflow/docker-context-files).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-40)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="996" textLength="976" clip-path="url(#breeze-ci-image-build-line-40)">(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;&# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1020.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1020.4" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-41)">-airflow</text><text class="breeze-ci-image-build-r4" x="134.2" y="1020.4" textLength="207.4" cli [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="1044.8" textLength="866.2" clip-path="url(#breeze-ci-image-build-line-42)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="breeze-ci-image-build-r5" x="1451.8" y="1044.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</ [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">│</text><text class="breeze-ci-image-build-r5" x="463.6" y="1069.2" textLength="866.2" clip-path="url(#breeze-ci-image-build-line-43)">[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;&#16 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1093.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1093.6" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-44)">-airflow</text><text class="breeze-ci-image-build-r4" x="134.2" y="1093.6" textLength="268.4" cli [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-45)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1118" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-45)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1118" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-45)">-python</text><text class="breeze-ci-image-build-r4" x="122" y="1118" textLength="73.2" clip-path="url( [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="1142.4" textLength="976" clip-path="url(#breeze-ci-image-build-line-46)">something&#160;like:&#160;python:VERSION-slim-bookworm.&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-47)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="1166.8" textLength="976" clip-path="url(#breeze-ci-image-build-line-47)">(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;&# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-48)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1191.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-48)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1191.2" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-48)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1191.2" textLength="146.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1215.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1215.6" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-49)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1215.6" textLength="183" c [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-50)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-50)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1240" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-50)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1240" textLength="219.6" clip-pa [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-51)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="1264.4" textLength="976" clip-path="url(#breeze-ci-image-build-line-51)">itself).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-52)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="1288.8" textLength="976" clip-path="url(#breeze-ci-image-build-line-52)">(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;&# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1313.2" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-53)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1313.2" textLength="158.6" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1337.6" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-54)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1337.6" textLength="146.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-55)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-55)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1362" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-55)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1362" textLength="195.2" clip-pa [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-56)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-56)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1386.4" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-56)">-dev</text><text class="breeze-ci-image-build-r4" x="85.4" y="1386.4" textLength="109.8" clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-57)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-57)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1410.8" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-57)">-dev</text><text class="breeze-ci-image-build-r4" x="85.4" y="1410.8" textLength="146.4" clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-58)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-58)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1435.2" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-58)">-version</text><text class="breeze-ci-image-build-r4" x="134.2" y="1435.2" textLength="195.2" cli [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1459.6" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-59)">-commit</text><text class="breeze-ci-image-build-r4" x="122" y="1459.6" textLength="48.8" clip-pa [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1484" textLength="1464" clip-path="url(#breeze-ci-image-build-line-60)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-60)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1508.4" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-61)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1508.4" textLength="268.4" clip-path="url(#breeze-ci-image-build-line-61)">&#160;Backtracking&#160;options&#160;</text><text class="breeze-ci-image-build-r5" x="292.8" y="1508.4" textLength="1146.8" clip-path="url(#breeze-ci-image-build-line-61)">──────────────────────────────────────────────────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1532.8" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-62)">-build</text><text class="breeze-ci-image-build-r4" x="109.8" y="1532.8" textLength="195.2" clip- [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-63)">│</text><text class="breeze-ci-image-build-r1" x="549" y="1557.2" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-63)">backtracking&#160;problems.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-64)">│</text><text class="breeze-ci-image-build-r7" x="549" y="1581.6" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-64)">(INTEGER)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-65)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1606" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-65)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1606" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-65)">-eager</text><text class="breeze-ci-image-build-r4" x="109.8" y="1606" textLength="390.4" clip-path="ur [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">│</text><text class="breeze-ci-image-build-r1" x="549" y="1630.4" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-66)">(see&#160;`breeze&#160;ci&#160;find-backtracking-candidates`).&#160;&#160;&#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 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-67)">│</text><text class="breeze-ci-image-build-r7" x="549" y="1654.8" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-67)">(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;&# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1679.2" textLength="1464" clip-path="url(#breeze-ci-image-build-line-68)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1679.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-68)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1703.6" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-69)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1703.6" textLength="622.2" clip-path="url(#breeze-ci-image-build-line-69)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;</text><text class="breeze-ci-image-build-r5" x="646.6" y="1703.6" textLength="793" clip-path="url(#breeze-ci-image-build-line-69)"> [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-70)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1728" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-70)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1728" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-70)">-builder</text><text class="breeze-ci-image-build-r1" x="341.6" y="1728" textLength="756.4" clip-path=" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-71)">│</text><text class="breeze-ci-image-build-r5" x="341.6" y="1752.4" textLength="756.4" clip-path="url(#breeze-ci-image-build-line-71)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-72)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-72)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1776.8" textLength="109.8" clip-path="url(#breeze-ci-image-build-line-72)">-platform</text><text class="breeze-ci-image-build-r1" x="341.6" y="1776.8" textLength="329.4" c [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-73)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1801.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-73)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1801.2" textLength="61" clip-path="url(#breeze-ci-image-build-line-73)">-push</text><text class="breeze-ci-image-build-r1" x="341.6" y="1801.2" textLength="353.8" clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-74)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1825.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-74)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1825.6" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-74)">-prepare</text><text class="breeze-ci-image-build-r4" x="134.2" y="1825.6" textLength="158.6" cli [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-75)">│</text><text class="breeze-ci-image-build-r1" x="341.6" y="1850" textLength="1098" clip-path="url(#breeze-ci-image-build-line-75)">image).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1874.4" textLength="1464" clip-path="url(#breeze-ci-image-build-line-76)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1874.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-76)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1898.8" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-77)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1898.8" textLength="280.6" clip-path="url(#breeze-ci-image-build-line-77)">&#160;Github&#160;authentication&#160;</text><text class="breeze-ci-image-build-r5" x="305" y="1898.8" textLength="1134.6" clip-path="url(#breeze-ci-image-build-line-77)">───────────────────────────────────────────────────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-78)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-78)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1923.2" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-78)">-github</text><text class="breeze-ci-image-build-r4" x="122" y="1923.2" textLength="134.2" clip-p [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-79)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1947.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-79)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1947.6" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-79)">-github</text><text class="breeze-ci-image-build-r4" x="122" y="1947.6" textLength="73.2" clip-pa [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="434.8" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-17)">-version</text><text class="breeze-ci-image-build-r4" x="134.2" y="434.8" textLength="195.2" clip-pa [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-18)">│</text><text class="breeze-ci-image-build-r5" x="475.8" y="459.2" textLength="768.6" clip-path="url(#breeze-ci-image-build-line-18)">[default:&#160;dev0]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-19)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-19)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="483.6" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-19)">-build</text><text class="breeze-ci-image-build-r4" x="109.8" y="483.6" textLength="109.8" clip-path [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="508" textLength="1464" clip-path="url(#breeze-ci-image-build-line-20)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="508" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-20)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="532.4" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-21)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="532.4" textLength="353.8" clip-path="url(#breeze-ci-image-build-line-21)">&#160;Building&#160;images&#160;in&#160;parallel&#160;</text><text class="breeze-ci-image-build-r5" x="378.2" y="532.4" textLength="1061.4" clip-path="url(#breeze-ci-image-build-line-21)">────────────────────────────────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="556.8" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-22)">-run</text><text class="breeze-ci-image-build-r4" x="85.4" y="556.8" textLength="146.4" clip-path="u [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-23)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-23)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="581.2" textLength="146.4" clip-path="url(#breeze-ci-image-build-line-23)">-parallelism</text><text class="breeze-ci-image-build-r1" x="378.2" y="581.2" textLength="915" clip [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-24)">│</text><text class="breeze-ci-image-build-r7" x="378.2" y="605.6" textLength="915" clip-path="url(#breeze-ci-image-build-line-24)">(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;&# [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-25)">│</text><text class="breeze-ci-image-build-r5" x="378.2" y="630" textLength="915" clip-path="url(#breeze-ci-image-build-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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="654.4" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-26)">-python</text><text class="breeze-ci-image-build-r4" x="122" y="654.4" textLength="109.8" clip-path= [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-27)">│</text><text class="breeze-ci-image-build-r5" x="378.2" y="678.8" textLength="951.6" clip-path="url(#breeze-ci-image-build-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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="703.2" textLength="61" clip-path="url(#breeze-ci-image-build-line-28)">-skip</text><text class="breeze-ci-image-build-r4" x="97.6" y="703.2" textLength="97.6" clip-path="url [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-29)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-29)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="727.6" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-29)">-debug</text><text class="breeze-ci-image-build-r4" x="109.8" y="727.6" textLength="122" clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-30)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-30)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="752" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-30)">-include</text><text class="breeze-ci-image-build-r4" x="134.2" y="752" textLength="195.2" clip-path="url( [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="776.4" textLength="1464" clip-path="url(#breeze-ci-image-build-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="776.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-31)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="800.8" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-32)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="800.8" textLength="512.4" clip-path="url(#breeze-ci-image-build-line-32)">&#160;Advanced&#160;build&#160;options&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-ci-image-build-r5" x="536.8" y="800.8" textLength="902.8" clip-path="url(#breeze-ci-image-build-line-32)">──────────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="825.2" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-33)">-debian</text><text class="breeze-ci-image-build-r4" x="122" y="825.2" textLength="97.6" clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-34)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="849.6" textLength="793" clip-path="url(#breeze-ci-image-build-line-34)">(bookworm&#160;|&#160;bullseye)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-35)">│</text><text class="breeze-ci-image-build-r5" x="463.6" y="874" textLength="793" clip-path="url(#breeze-ci-image-build-line-35)">[default:&#160;bookworm]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="898.4" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-36)">-python</text><text class="breeze-ci-image-build-r4" x="122" y="898.4" textLength="73.2" clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-37)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="922.8" textLength="976" clip-path="url(#breeze-ci-image-build-line-37)">something&#160;like:&#160;python:VERSION-slim-bookworm.&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-38)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="947.2" textLength="976" clip-path="url(#breeze-ci-image-build-line-38)">(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;&#16 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-39)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="971.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-39)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="971.6" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-39)">-commit</text><text class="breeze-ci-image-build-r4" x="122" y="971.6" textLength="48.8" clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-40)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="996" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-40)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="996" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-40)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="996" textLength="219.6" clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">│</text><text class="breeze-ci-image-build-r1" x="463.6" y="1020.4" textLength="976" clip-path="url(#breeze-ci-image-build-line-41)">itself).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</text><text class="breeze-ci-image-build-r7" x="463.6" y="1044.8" textLength="976" clip-path="url(#breeze-ci-image-build-line-42)">(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;&# [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1069.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1069.2" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-43)">-install</text><text class="breeze-ci-image-build-r4" x="134.2" y="1069.2" textLength="280.6" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1093.6" textLength="1464" clip-path="url(#breeze-ci-image-build-line-44)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1093.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1118" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-45)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1118" textLength="597.8" clip-path="url(#breeze-ci-image-build-line-45)">&#160;Selecting&#160;constraint&#160;location&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-ci-image-build-r5" x="622.2" y="1118" textLength="817.4" clip-path="url(#breeze-ci-image-build-line-45)">──────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1142.4" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-46)">-airflow</text><text class="breeze-ci-image-build-r4" x="134.2" y="1142.4" textLength="256.2" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-47)">│</text><text class="breeze-ci-image-build-r1" x="451.4" y="1166.8" textLength="988.2" clip-path="url(#breeze-ci-image-build-line-47)">It&#160;could&#160;be&#160;full&#160;remote&#160;URL&#160;to&#160;the&#160;location&#160;file,&#160;or&#160;local&#160;file&#160;placed&#160;in&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-ci-image-b [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-48)">│</text><text class="breeze-ci-image-build-r1" x="451.4" y="1191.2" textLength="988.2" clip-path="url(#breeze-ci-image-build-line-48)">`docker-context-files`&#160;(in&#160;this&#160;case&#160;it&#160;has&#160;to&#160;start&#160;with&#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-ci-image-build-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">│</text><text class="breeze-ci-image-build-r1" x="451.4" y="1215.6" textLength="988.2" clip-path="url(#breeze-ci-image-build-line-49)">/opt/airflow/docker-context-files).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-50)">│</text><text class="breeze-ci-image-build-r7" x="451.4" y="1240" textLength="988.2" clip-path="url(#breeze-ci-image-build-line-50)">(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;&#16 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-51)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-51)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1264.4" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-51)">-airflow</text><text class="breeze-ci-image-build-r4" x="134.2" y="1264.4" textLength="207.4" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-52)">│</text><text class="breeze-ci-image-build-r7" x="451.4" y="1288.8" textLength="866.2" clip-path="url(#breeze-ci-image-build-line-52)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text class="breeze-ci-image-build-r5" x="1451.8" y="1288.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-52)">│</ [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">│</text><text class="breeze-ci-image-build-r5" x="451.4" y="1313.2" textLength="866.2" clip-path="url(#breeze-ci-image-build-line-53)">[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;&#16 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1337.6" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-54)">-airflow</text><text class="breeze-ci-image-build-r4" x="134.2" y="1337.6" textLength="268.4" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1362" textLength="1464" clip-path="url(#breeze-ci-image-build-line-55)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1362" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-55)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1386.4" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-56)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1386.4" textLength="634.4" clip-path="url(#breeze-ci-image-build-line-56)">&#160;Choosing&#160;dependencies&#160;and&#160;extras&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-ci-image-build-r5" x="658.8" y="1386.4" textLength="780.8" clip-path="url(#breeze-ci-image-build-line-56)">── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-57)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-57)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1410.8" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-57)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1410.8" textLength="183" c [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-58)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-58)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1435.2" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-58)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1435.2" textLength="146.4" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1459.6" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-59)">-dev</text><text class="breeze-ci-image-build-r4" x="85.4" y="1459.6" textLength="109.8" clip-pat [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-60)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1484" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-60)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1484" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-60)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1484" textLength="158.6" clip-pa [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-61)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-61)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1508.4" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-61)">-dev</text><text class="breeze-ci-image-build-r4" x="85.4" y="1508.4" textLength="146.4" clip-pat [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1532.8" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-62)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1532.8" textLength="195.2" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-63)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1557.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-63)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1557.2" textLength="134.2" clip-path="url(#breeze-ci-image-build-line-63)">-additional</text><text class="breeze-ci-image-build-r4" x="170.8" y="1557.2" textLength="146.4" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1581.6" textLength="1464" clip-path="url(#breeze-ci-image-build-line-64)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1581.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-64)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1606" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-65)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1606" textLength="268.4" clip-path="url(#breeze-ci-image-build-line-65)">&#160;Backtracking&#160;options&#160;</text><text class="breeze-ci-image-build-r5" x="292.8" y="1606" textLength="1146.8" clip-path="url(#breeze-ci-image-build-line-65)">────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1630.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1630.4" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-66)">-build</text><text class="breeze-ci-image-build-r4" x="109.8" y="1630.4" textLength="195.2" clip- [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-67)">│</text><text class="breeze-ci-image-build-r1" x="549" y="1654.8" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-67)">backtracking&#160;problems.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-68)">│</text><text class="breeze-ci-image-build-r7" x="549" y="1679.2" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-68)">(INTEGER)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-69)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1703.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-69)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1703.6" textLength="73.2" clip-path="url(#breeze-ci-image-build-line-69)">-eager</text><text class="breeze-ci-image-build-r4" x="109.8" y="1703.6" textLength="390.4" clip- [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-70)">│</text><text class="breeze-ci-image-build-r1" x="549" y="1728" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-70)">(see&#160;`breeze&#160;ci&#160;find-backtracking-candidates`).&#160;&#160;&#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 cla [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-71)">│</text><text class="breeze-ci-image-build-r7" x="549" y="1752.4" textLength="890.6" clip-path="url(#breeze-ci-image-build-line-71)">(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;&# [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1776.8" textLength="1464" clip-path="url(#breeze-ci-image-build-line-72)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1776.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-72)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1801.2" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-73)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1801.2" textLength="622.2" clip-path="url(#breeze-ci-image-build-line-73)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;</text><text class="breeze-ci-image-build-r5" x="646.6" y="1801.2" textLength="793" clip-path="url(#breeze-ci-image-build-line-73)"> [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-74)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1825.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-74)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1825.6" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-74)">-builder</text><text class="breeze-ci-image-build-r1" x="341.6" y="1825.6" textLength="756.4" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-75)">│</text><text class="breeze-ci-image-build-r5" x="341.6" y="1850" textLength="756.4" clip-path="url(#breeze-ci-image-build-line-75)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-76)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1874.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-76)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1874.4" textLength="109.8" clip-path="url(#breeze-ci-image-build-line-76)">-platform</text><text class="breeze-ci-image-build-r1" x="341.6" y="1874.4" textLength="329.4" c [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-77)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1898.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-77)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1898.8" textLength="61" clip-path="url(#breeze-ci-image-build-line-77)">-push</text><text class="breeze-ci-image-build-r1" x="341.6" y="1898.8" textLength="353.8" clip-pat [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-78)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-78)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="1923.2" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-78)">-prepare</text><text class="breeze-ci-image-build-r4" x="134.2" y="1923.2" textLength="158.6" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-79)">│</text><text class="breeze-ci-image-build-r1" x="341.6" y="1947.6" textLength="1098" clip-path="url(#breeze-ci-image-build-line-79)">image).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1972" textLength="1464" clip-path="url(#breeze-ci-image-build-line-80)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="1972" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-80)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1996.4" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-81)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1996.4" textLength="195.2" clip-path="url(#breeze-ci-image-build-line-81)">&#160;Common&#160;options&#160;</text><text class="breeze-ci-image-build-r5" x="219.6" y="1996.4" textLength="1220" clip-path="url(#breeze-ci-image-build-line-81)">──────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-82)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2020.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-82)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2020.8" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-82)">-verbose</text><text class="breeze-ci-image-build-r6" x="158.6" y="2020.8" textLength="24.4" clip [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-83)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2045.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-83)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2045.2" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-83)">-dry</text><text class="breeze-ci-image-build-r4" x="85.4" y="2045.2" textLength="48.8" clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-84)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2069.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-84)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2069.6" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-84)">-answer</text><text class="breeze-ci-image-build-r6" x="158.6" y="2069.6" textLength="24.4" clip- [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-85)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2094" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-85)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2094" textLength="61" clip-path="url(#breeze-ci-image-build-line-85)">-help</text><text class="breeze-ci-image-build-r6" x="158.6" y="2094" textLength="24.4" clip-path="url(#b [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2118.4" textLength="1464" clip-path="url(#breeze-ci-image-build-line-86)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="2118.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-86)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1996.4" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-81)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="1996.4" textLength="280.6" clip-path="url(#breeze-ci-image-build-line-81)">&#160;Github&#160;authentication&#160;</text><text class="breeze-ci-image-build-r5" x="305" y="1996.4" textLength="1134.6" clip-path="url(#breeze-ci-image-build-line-81)">───────────────────────────────────────────────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-82)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2020.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-82)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2020.8" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-82)">-github</text><text class="breeze-ci-image-build-r4" x="122" y="2020.8" textLength="134.2" clip-p [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-83)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2045.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-83)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2045.2" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-83)">-github</text><text class="breeze-ci-image-build-r4" x="122" y="2045.2" textLength="73.2" clip-pa [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2069.6" textLength="1464" clip-path="url(#breeze-ci-image-build-line-84)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="2069.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-84)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="2094" textLength="24.4" clip-path="url(#breeze-ci-image-build-line-85)">╭─</text><text class="breeze-ci-image-build-r5" x="24.4" y="2094" textLength="195.2" clip-path="url(#breeze-ci-image-build-line-85)">&#160;Common&#160;options&#160;</text><text class="breeze-ci-image-build-r5" x="219.6" y="2094" textLength="1220" clip-path="url(#breeze-ci-image-build-line-85)">────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-86)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2118.4" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-86)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2118.4" textLength="97.6" clip-path="url(#breeze-ci-image-build-line-86)">-verbose</text><text class="breeze-ci-image-build-r6" x="158.6" y="2118.4" textLength="24.4" clip [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-87)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2142.8" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-87)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2142.8" textLength="48.8" clip-path="url(#breeze-ci-image-build-line-87)">-dry</text><text class="breeze-ci-image-build-r4" x="85.4" y="2142.8" textLength="48.8" clip-path [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-88)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2167.2" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-88)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2167.2" textLength="85.4" clip-path="url(#breeze-ci-image-build-line-88)">-answer</text><text class="breeze-ci-image-build-r6" x="158.6" y="2167.2" textLength="24.4" clip- [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-89)">│</text><text class="breeze-ci-image-build-r4" x="24.4" y="2191.6" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-89)">-</text><text class="breeze-ci-image-build-r4" x="36.6" y="2191.6" textLength="61" clip-path="url(#breeze-ci-image-build-line-89)">-help</text><text class="breeze-ci-image-build-r6" x="158.6" y="2191.6" textLength="24.4" clip-path [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2216" textLength="1464" clip-path="url(#breeze-ci-image-build-line-90)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-image-build-r1" x="1464" y="2216" textLength="12.2" clip-path="url(#breeze-ci-image-build-line-90)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_ci-image_build.txt b/images/breeze/output_ci-image_build.txt
index f659f125e8..9c882681f1 100644
--- a/images/breeze/output_ci-image_build.txt
+++ b/images/breeze/output_ci-image_build.txt
@@ -1 +1 @@
-c405885e9a457ff1ca8caa8a3ebab6e5
+3109e8a0e9ff98e6d0b802e6ce09192a
diff --git a/images/breeze/output_prod-image_build.svg b/images/breeze/output_prod-image_build.svg
index 079f3f39e6..729eafed98 100644
--- a/images/breeze/output_prod-image_build.svg
+++ b/images/breeze/output_prod-image_build.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2441.2" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2563.2" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-prod-image-build-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="2390.2" />
+      <rect x="0" y="0" width="1463.0" height="2512.2" />
     </clipPath>
     <clipPath id="breeze-prod-image-build-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -336,9 +336,24 @@
 <clipPath id="breeze-prod-image-build-line-96">
     <rect x="0" y="2343.9" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-prod-image-build-line-97">
+    <rect x="0" y="2368.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-prod-image-build-line-98">
+    <rect x="0" y="2392.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-prod-image-build-line-99">
+    <rect x="0" y="2417.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-prod-image-build-line-100">
+    <rect x="0" y="2441.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-prod-image-build-line-101">
+    <rect x="0" y="2465.9" 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="2439.2" rx="8"/><text class="breeze-prod-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;prod-image&#160;build</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2561.2" rx="8"/><text class="breeze-prod-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;prod-image&#160;build</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -363,89 +378,94 @@
 </text><text class="breeze-prod-image-build-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-12)">│</text><text class="breeze-prod-image-build-r1" x="402.6" y="312.8" textLength="353.8" clip-path="url(#breeze-prod-image-build-line-12)">you&#160;build&#160;or&#160;pull&#160;image&#160;with&#160;</text><text class="breeze-prod-image-build-r4" x="756.4" y="312.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-12)">-</text><text class="breeze [...]
 </text><text class="breeze-prod-image-build-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-13)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-13)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="337.2" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-13)">-docker</text><text class="breeze-prod-image-build-r4" x="122" y="337.2" textLength="73. [...]
 </text><text class="breeze-prod-image-build-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-14)">│</text><text class="breeze-prod-image-build-r5" x="402.6" y="361.6" textLength="549" clip-path="url(#breeze-prod-image-build-line-14)">[default:&#160;registry]&#160;&#160;&#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-prod-image-build- [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-15)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-15)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="386" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-15)">-build</text><text class="breeze-prod-image-build-r4" x="109.8" y="386" textLength="109.8" cli [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="410.4" textLength="1464" clip-path="url(#breeze-prod-image-build-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-16)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="434.8" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-17)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="434.8" textLength="353.8" clip-path="url(#breeze-prod-image-build-line-17)">&#160;Building&#160;images&#160;in&#160;parallel&#160;</text><text class="breeze-prod-image-build-r5" x="378.2" y="434.8" textLength="1061.4" clip-path="url(#breeze-prod-image-build-line-17)">────────────────────────────── [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-18)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-18)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="459.2" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-18)">-run</text><text class="breeze-prod-image-build-r4" x="85.4" y="459.2" textLength="146.4 [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-19)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-19)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="483.6" textLength="146.4" clip-path="url(#breeze-prod-image-build-line-19)">-parallelism</text><text class="breeze-prod-image-build-r1" x="378.2" y="483.6" textLen [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-20)">│</text><text class="breeze-prod-image-build-r7" x="378.2" y="508" textLength="915" clip-path="url(#breeze-prod-image-build-line-20)">(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;&#16 [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-21)">│</text><text class="breeze-prod-image-build-r5" x="378.2" y="532.4" textLength="915" clip-path="url(#breeze-prod-image-build-line-21)">[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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-22)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-22)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="556.8" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-22)">-python</text><text class="breeze-prod-image-build-r4" x="122" y="556.8" textLength="109 [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-23)">│</text><text class="breeze-prod-image-build-r5" x="378.2" y="581.2" textLength="951.6" clip-path="url(#breeze-prod-image-build-line-23)">[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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-24)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-24)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="605.6" textLength="61" clip-path="url(#breeze-prod-image-build-line-24)">-skip</text><text class="breeze-prod-image-build-r4" x="97.6" y="605.6" textLength="97.6"  [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-25)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-25)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="630" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-25)">-debug</text><text class="breeze-prod-image-build-r4" x="109.8" y="630" textLength="122" clip- [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-26)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-26)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="654.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-26)">-include</text><text class="breeze-prod-image-build-r4" x="134.2" y="654.4" textLength=" [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="678.8" textLength="1464" clip-path="url(#breeze-prod-image-build-line-27)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-27)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="703.2" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-28)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="703.2" textLength="390.4" clip-path="url(#breeze-prod-image-build-line-28)">&#160;Options&#160;for&#160;customizing&#160;images&#160;</text><text class="breeze-prod-image-build-r5" x="414.8" y="703.2" textLength="1024.8" clip-path="url(#breeze-prod-image-build-line-28)">─────────────────────────── [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-29)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-29)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="727.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-29)">-install</text><text class="breeze-prod-image-build-r4" x="134.2" y="727.6" textLength=" [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-30)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-30)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="752" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-30)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="752" textLength="85.4" cl [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-31)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="776.4" textLength="976" clip-path="url(#breeze-prod-image-build-line-31)">(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;&# [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-32)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="800.8" textLength="976" clip-path="url(#breeze-prod-image-build-line-32)">[default:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-33)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="825.2" textLength="976" clip-path="url(#breeze-prod-image-build-line-33)">aiobotocore,amazon,async,celery,cncf.kubernetes,daskexecutor,docker,elasticsear…</text><text class="breeze-prod-image-build-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-33)">│</text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-34)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-34)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="849.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-34)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="849.6" textLength=" [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-35)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="874" textLength="976" clip-path="url(#breeze-prod-image-build-line-35)">file.&#160;It&#160;could&#160;be&#160;full&#160;remote&#160;URL&#160;to&#160;the&#160;location&#160;file,&#160;or&#160;local&#160;file&#160;placed&#160;in&#160;</text><text class="breeze-prod-image-build-r5" x="1451.8" y="874" t [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-36)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="898.4" textLength="976" clip-path="url(#breeze-prod-image-build-line-36)">`docker-context-files`&#160;(in&#160;this&#160;case&#160;it&#160;has&#160;to&#160;start&#160;with&#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-prod-image-build-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-37)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="922.8" textLength="976" clip-path="url(#breeze-prod-image-build-line-37)">/opt/airflow/docker-context-files).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-38)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="947.2" textLength="976" clip-path="url(#breeze-prod-image-build-line-38)">(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;&# [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-39)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="971.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-39)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="971.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-39)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="971.6" textLength=" [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-40)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="996" textLength="866.2" clip-path="url(#breeze-prod-image-build-line-40)">(constraints&#160;|&#160;constraints-no-providers&#160;|&#160;constraints-source-providers)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="996" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-40)"> [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-41)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="1020.4" textLength="866.2" clip-path="url(#breeze-prod-image-build-line-41)">[default:&#160;constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-42)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-42)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1044.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-42)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="1044.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-43)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1069.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-43)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1069.2" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-43)">-python</text><text class="breeze-prod-image-build-r4" x="122" y="1069.2" textLength= [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-44)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="1093.6" textLength="976" clip-path="url(#breeze-prod-image-build-line-44)">something&#160;like:&#160;python:VERSION-slim-bookworm.&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-45)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="1118" textLength="976" clip-path="url(#breeze-prod-image-build-line-45)">(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;&#16 [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-46)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-46)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1142.4" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-46)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1142.4" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-47)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-47)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1166.8" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-47)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1166.8" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-48)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="1191.2" textLength="976" clip-path="url(#breeze-prod-image-build-line-48)">itself).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-49)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="1215.6" textLength="976" clip-path="url(#breeze-prod-image-build-line-49)">(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; [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-50)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-50)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1240" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-50)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1240" textLength=" [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-51)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-51)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1264.4" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-51)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1264.4" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-52)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-52)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1288.8" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-52)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1288.8" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-53)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-53)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1313.2" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-53)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1313.2" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1337.6" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-54)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1337.6" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1362" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-55)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1362" textLength=" [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1386.4" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-56)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1386.4" text [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1410.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-57)">-runtime</text><text class="breeze-prod-image-build-r4" x="134.2" y="1410.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1435.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-58)">-runtime</text><text class="breeze-prod-image-build-r4" x="134.2" y="1435.2" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1459.6" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-59)">-dev</text><text class="breeze-prod-image-build-r4" x="85.4" y="1459.6" textLength="1 [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1484" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-60)">-dev</text><text class="breeze-prod-image-build-r4" x="85.4" y="1484" textLength="146.4" cl [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-61)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-61)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1508.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-61)">-version</text><text class="breeze-prod-image-build-r4" x="134.2" y="1508.4" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-62)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-62)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1532.8" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-62)">-commit</text><text class="breeze-prod-image-build-r4" x="122" y="1532.8" textLength= [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1557.2" textLength="1464" clip-path="url(#breeze-prod-image-build-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="1557.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-63)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="1581.6" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-64)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="1581.6" textLength="817.4" clip-path="url(#breeze-prod-image-build-line-64)">&#160;Advanced&#160;customization&#160;options&#160;(for&#160;specific&#160;customization&#160;needs)&#160;</text><text class="breeze-prod-image-build-r5" x="841.8" y="1581.6" textLength="597.8" clip-path="url(#breeze-pr [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-65)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1606" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-65)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1606" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-65)">-debian</text><text class="breeze-prod-image-build-r4" x="122" y="1606" textLength="97.6" c [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-66)">│</text><text class="breeze-prod-image-build-r7" x="536.8" y="1630.4" textLength="793" clip-path="url(#breeze-prod-image-build-line-66)">(bookworm&#160;|&#160;bullseye)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-67)">│</text><text class="breeze-prod-image-build-r5" x="536.8" y="1654.8" textLength="793" clip-path="url(#breeze-prod-image-build-line-67)">[default:&#160;bookworm]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-68)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1679.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-68)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1679.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-68)">-install</text><text class="breeze-prod-image-build-r4" x="134.2" y="1679.2" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-69)">│</text><text class="breeze-prod-image-build-r1" x="536.8" y="1703.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-69)">Implies&#160;</text><text class="breeze-prod-image-build-r4" x="634.4" y="1703.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-69)">-</text><text class="breeze-prod-image-build-r4" x="646.6" y="1703.6" t [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-70)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1728" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-70)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1728" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-70)">-use</text><text class="breeze-prod-image-build-r4" x="85.4" y="1728" textLength="402.6" cl [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-71)">│</text><text class="breeze-prod-image-build-r1" x="536.8" y="1752.4" textLength="902.8" clip-path="url(#breeze-prod-image-build-line-71)">constraints&#160;store&#160;in&#160;docker-context-files&#160;or&#160;from&#160;github.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-72)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-72)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1776.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-72)">-cleanup</text><text class="breeze-prod-image-build-r4" x="134.2" y="1776.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-73)">│</text><text class="breeze-prod-image-build-r1" x="536.8" y="1801.2" textLength="170.8" clip-path="url(#breeze-prod-image-build-line-73)">together&#160;with&#160;</text><text class="breeze-prod-image-build-r4" x="707.6" y="1801.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-73)">-</text><text class="breeze-prod-image-build-r4" x="719.8"  [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-74)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1825.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-74)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1825.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-74)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="1825.6" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-75)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1850" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-75)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1850" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-75)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="1850" textLength="317. [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-76)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1874.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-76)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1874.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-76)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="1874.4" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-77)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1898.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-77)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1898.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-77)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="1898.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-78)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-78)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1923.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-78)">-install</text><text class="breeze-prod-image-build-r4" x="134.2" y="1923.2" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-79)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1947.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-79)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1947.6" textLength="158.6" clip-path="url(#breeze-prod-image-build-line-79)">-installation</text><text class="breeze-prod-image-build-r4" x="195.2" y="1947.6" te [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="1972" textLength="1464" clip-path="url(#breeze-prod-image-build-line-80)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="1972" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-80)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="1996.4" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-81)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="1996.4" textLength="622.2" clip-path="url(#breeze-prod-image-build-line-81)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;</text><text class="breeze-prod-image-build-r5" x="646.6" y="1996.4" textLength="793" clip-path="url(#breeze-prod-image-buil [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-82)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2020.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-82)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2020.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-82)">-builder</text><text class="breeze-prod-image-build-r1" x="341.6" y="2020.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-83)">│</text><text class="breeze-prod-image-build-r5" x="341.6" y="2045.2" textLength="756.4" clip-path="url(#breeze-prod-image-build-line-83)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-84)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2069.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-84)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2069.6" textLength="109.8" clip-path="url(#breeze-prod-image-build-line-84)">-platform</text><text class="breeze-prod-image-build-r1" x="341.6" y="2069.6" textLe [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-85)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2094" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-85)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2094" textLength="61" clip-path="url(#breeze-prod-image-build-line-85)">-push</text><text class="breeze-prod-image-build-r1" x="341.6" y="2094" textLength="353.8" cl [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-86)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2118.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-86)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2118.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-86)">-prepare</text><text class="breeze-prod-image-build-r4" x="134.2" y="2118.4" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-87)">│</text><text class="breeze-prod-image-build-r1" x="341.6" y="2142.8" textLength="1098" clip-path="url(#breeze-prod-image-build-line-87)">image).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="2167.2" textLength="1464" clip-path="url(#breeze-prod-image-build-line-88)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="2167.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-88)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="2191.6" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-89)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="2191.6" textLength="280.6" clip-path="url(#breeze-prod-image-build-line-89)">&#160;Github&#160;authentication&#160;</text><text class="breeze-prod-image-build-r5" x="305" y="2191.6" textLength="1134.6" clip-path="url(#breeze-prod-image-build-line-89)">───────────────────────────────────────────── [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-90)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2216" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-90)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2216" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-90)">-github</text><text class="breeze-prod-image-build-r4" x="122" y="2216" textLength="134.2"  [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-91)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2240.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-91)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2240.4" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-91)">-github</text><text class="breeze-prod-image-build-r4" x="122" y="2240.4" textLength= [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-15)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-15)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="386" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-15)">-version</text><text class="breeze-prod-image-build-r4" x="134.2" y="386" textLength="195.2" c [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-16)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-16)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="410.4" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-16)">-build</text><text class="breeze-prod-image-build-r4" x="109.8" y="410.4" textLength="10 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="434.8" textLength="1464" clip-path="url(#breeze-prod-image-build-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-17)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="459.2" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-18)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="459.2" textLength="353.8" clip-path="url(#breeze-prod-image-build-line-18)">&#160;Building&#160;images&#160;in&#160;parallel&#160;</text><text class="breeze-prod-image-build-r5" x="378.2" y="459.2" textLength="1061.4" clip-path="url(#breeze-prod-image-build-line-18)">────────────────────────────── [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-19)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-19)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="483.6" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-19)">-run</text><text class="breeze-prod-image-build-r4" x="85.4" y="483.6" textLength="146.4 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-20)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-20)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="508" textLength="146.4" clip-path="url(#breeze-prod-image-build-line-20)">-parallelism</text><text class="breeze-prod-image-build-r1" x="378.2" y="508" textLength="915 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-21)">│</text><text class="breeze-prod-image-build-r7" x="378.2" y="532.4" textLength="915" clip-path="url(#breeze-prod-image-build-line-21)">(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; [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-22)">│</text><text class="breeze-prod-image-build-r5" x="378.2" y="556.8" textLength="915" clip-path="url(#breeze-prod-image-build-line-22)">[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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-23)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-23)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="581.2" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-23)">-python</text><text class="breeze-prod-image-build-r4" x="122" y="581.2" textLength="109 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-24)">│</text><text class="breeze-prod-image-build-r5" x="378.2" y="605.6" textLength="951.6" clip-path="url(#breeze-prod-image-build-line-24)">[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;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-25)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-25)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="630" textLength="61" clip-path="url(#breeze-prod-image-build-line-25)">-skip</text><text class="breeze-prod-image-build-r4" x="97.6" y="630" textLength="97.6" clip-pat [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-26)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-26)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="654.4" textLength="73.2" clip-path="url(#breeze-prod-image-build-line-26)">-debug</text><text class="breeze-prod-image-build-r4" x="109.8" y="654.4" textLength="12 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-27)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-27)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="678.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-27)">-include</text><text class="breeze-prod-image-build-r4" x="134.2" y="678.8" textLength=" [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="703.2" textLength="1464" clip-path="url(#breeze-prod-image-build-line-28)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-28)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="727.6" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-29)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="727.6" textLength="512.4" clip-path="url(#breeze-prod-image-build-line-29)">&#160;Advanced&#160;build&#160;options&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-prod-image-build-r5" x="536.8" y="727.6" textLength="902.8" clip-path="url(#breeze-prod-image-build-line-29)">──────── [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-30)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-30)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="752" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-30)">-debian</text><text class="breeze-prod-image-build-r4" x="122" y="752" textLength="97.6" clip- [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-31)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="776.4" textLength="793" clip-path="url(#breeze-prod-image-build-line-31)">(bookworm&#160;|&#160;bullseye)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-32)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="800.8" textLength="793" clip-path="url(#breeze-prod-image-build-line-32)">[default:&#160;bookworm]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-33)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-33)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="825.2" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-33)">-python</text><text class="breeze-prod-image-build-r4" x="122" y="825.2" textLength="73. [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-34)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="849.6" textLength="976" clip-path="url(#breeze-prod-image-build-line-34)">something&#160;like:&#160;python:VERSION-slim-bookworm.&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-35)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="874" textLength="976" clip-path="url(#breeze-prod-image-build-line-35)">(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; [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-36)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-36)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="898.4" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-36)">-commit</text><text class="breeze-prod-image-build-r4" x="122" y="898.4" textLength="48. [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-37)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-37)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="922.8" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-37)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="922.8" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-38)">│</text><text class="breeze-prod-image-build-r1" x="463.6" y="947.2" textLength="976" clip-path="url(#breeze-prod-image-build-line-38)">itself).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-39)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="971.6" textLength="976" clip-path="url(#breeze-prod-image-build-line-39)">(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;&# [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-40)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="996" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-40)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="996" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-40)">-install</text><text class="breeze-prod-image-build-r4" x="134.2" y="996" textLength="280.6" c [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1020.4" textLength="1464" clip-path="url(#breeze-prod-image-build-line-41)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="1020.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-41)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="1044.8" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-42)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="1044.8" textLength="597.8" clip-path="url(#breeze-prod-image-build-line-42)">&#160;Selecting&#160;constraint&#160;location&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-prod-image-build-r5" x="622.2" y="1044.8" textLength="817.4" clip-path="url(#breeze-prod-image-build-line-42) [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-43)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1069.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-43)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1069.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-43)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="1069.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-44)">│</text><text class="breeze-prod-image-build-r1" x="451.4" y="1093.6" textLength="988.2" clip-path="url(#breeze-prod-image-build-line-44)">It&#160;could&#160;be&#160;full&#160;remote&#160;URL&#160;to&#160;the&#160;location&#160;file,&#160;or&#160;local&#160;file&#160;placed&#160;in&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-pr [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-45)">│</text><text class="breeze-prod-image-build-r1" x="451.4" y="1118" textLength="988.2" clip-path="url(#breeze-prod-image-build-line-45)">`docker-context-files`&#160;(in&#160;this&#160;case&#160;it&#160;has&#160;to&#160;start&#160;with&#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-prod-image-build-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-46)">│</text><text class="breeze-prod-image-build-r1" x="451.4" y="1142.4" textLength="988.2" clip-path="url(#breeze-prod-image-build-line-46)">/opt/airflow/docker-context-files).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-47)">│</text><text class="breeze-prod-image-build-r7" x="451.4" y="1166.8" textLength="988.2" clip-path="url(#breeze-prod-image-build-line-47)">(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;&#16 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-48)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1191.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-48)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1191.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-48)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="1191.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-49)">│</text><text class="breeze-prod-image-build-r7" x="451.4" y="1215.6" textLength="866.2" clip-path="url(#breeze-prod-image-build-line-49)">(constraints&#160;|&#160;constraints-no-providers&#160;|&#160;constraints-source-providers)</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1215.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-l [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-50)">│</text><text class="breeze-prod-image-build-r5" x="451.4" y="1240" textLength="866.2" clip-path="url(#breeze-prod-image-build-line-50)">[default:&#160;constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-51)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-51)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1264.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-51)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="1264.4" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1288.8" textLength="1464" clip-path="url(#breeze-prod-image-build-line-52)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="1288.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-52)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="1313.2" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-53)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="1313.2" textLength="634.4" clip-path="url(#breeze-prod-image-build-line-53)">&#160;Choosing&#160;dependencies&#160;and&#160;extras&#160;(for&#160;power&#160;users)&#160;</text><text class="breeze-prod-image-build-r5" x="658.8" y="1313.2" textLength="780.8" clip-path="url(#breeze-prod-image-build- [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-54)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1337.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-54)">-airflow</text><text class="breeze-prod-image-build-r4" x="134.2" y="1337.6" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-55)">│</text><text class="breeze-prod-image-build-r7" x="463.6" y="1362" textLength="976" clip-path="url(#breeze-prod-image-build-line-55)">(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;&#16 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-56)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="1386.4" textLength="976" clip-path="url(#breeze-prod-image-build-line-56)">[default:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</text><text class="breeze-prod-image-build-r5" x="463.6" y="1410.8" textLength="976" clip-path="url(#breeze-prod-image-build-line-57)">aiobotocore,amazon,async,celery,cncf.kubernetes,daskexecutor,docker,elasticsear…</text><text class="breeze-prod-image-build-r5" x="1451.8" y="1410.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-57)">│</t [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-58)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1435.2" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-58)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1435.2" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-59)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1459.6" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-59)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1459.6" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1484" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-60)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1484" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-60)">-dev</text><text class="breeze-prod-image-build-r4" x="85.4" y="1484" textLength="109.8" cl [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-61)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1508.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-61)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1508.4" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-61)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1508.4" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-62)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1532.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-62)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1532.8" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-62)">-dev</text><text class="breeze-prod-image-build-r4" x="85.4" y="1532.8" textLength="1 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-63)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1557.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-63)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1557.2" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-63)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1557.2" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-64)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1581.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-64)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1581.6" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-64)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1581.6" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-65)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1606" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-65)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1606" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-65)">-runtime</text><text class="breeze-prod-image-build-r4" x="134.2" y="1606" textLength="109. [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-66)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1630.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-66)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1630.4" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-66)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1630.4" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-67)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1654.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-67)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1654.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-67)">-runtime</text><text class="breeze-prod-image-build-r4" x="134.2" y="1654.8" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-68)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1679.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-68)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1679.2" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-68)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1679.2" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-69)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1703.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-69)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1703.6" textLength="134.2" clip-path="url(#breeze-prod-image-build-line-69)">-additional</text><text class="breeze-prod-image-build-r4" x="170.8" y="1703.6" text [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1728" textLength="1464" clip-path="url(#breeze-prod-image-build-line-70)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="1728" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-70)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="1752.4" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-71)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="1752.4" textLength="817.4" clip-path="url(#breeze-prod-image-build-line-71)">&#160;Advanced&#160;customization&#160;options&#160;(for&#160;specific&#160;customization&#160;needs)&#160;</text><text class="breeze-prod-image-build-r5" x="841.8" y="1752.4" textLength="597.8" clip-path="url(#breeze-pr [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-72)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-72)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1776.8" textLength="158.6" clip-path="url(#breeze-prod-image-build-line-72)">-installation</text><text class="breeze-prod-image-build-r4" x="195.2" y="1776.8" te [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-73)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1801.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-73)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1801.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-73)">-install</text><text class="breeze-prod-image-build-r4" x="134.2" y="1801.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-74)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1825.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-74)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1825.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-74)">-install</text><text class="breeze-prod-image-build-r4" x="134.2" y="1825.6" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-75)">│</text><text class="breeze-prod-image-build-r1" x="536.8" y="1850" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-75)">Implies&#160;</text><text class="breeze-prod-image-build-r4" x="634.4" y="1850" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-75)">-</text><text class="breeze-prod-image-build-r4" x="646.6" y="1850" textLengt [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1874.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-76)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1874.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-76)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1874.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-76)">-cleanup</text><text class="breeze-prod-image-build-r4" x="134.2" y="1874.4" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-77)">│</text><text class="breeze-prod-image-build-r1" x="536.8" y="1898.8" textLength="170.8" clip-path="url(#breeze-prod-image-build-line-77)">together&#160;with&#160;</text><text class="breeze-prod-image-build-r4" x="707.6" y="1898.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-77)">-</text><text class="breeze-prod-image-build-r4" x="719.8"  [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-78)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1923.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-78)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1923.2" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-78)">-use</text><text class="breeze-prod-image-build-r4" x="85.4" y="1923.2" textLength="4 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-79)">│</text><text class="breeze-prod-image-build-r1" x="536.8" y="1947.6" textLength="902.8" clip-path="url(#breeze-prod-image-build-line-79)">constraints&#160;store&#160;in&#160;docker-context-files&#160;or&#160;from&#160;github.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-prod [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-80)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1972" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-80)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1972" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-80)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="1972" textLength="231. [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-81)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="1996.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-81)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="1996.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-81)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="1996.4" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-82)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2020.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-82)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2020.8" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-82)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="2020.8" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-83)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2045.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-83)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2045.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-83)">-disable</text><text class="breeze-prod-image-build-r4" x="134.2" y="2045.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2069.6" textLength="1464" clip-path="url(#breeze-prod-image-build-line-84)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="2069.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-84)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="2094" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-85)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="2094" textLength="622.2" clip-path="url(#breeze-prod-image-build-line-85)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;</text><text class="breeze-prod-image-build-r5" x="646.6" y="2094" textLength="793" clip-path="url(#breeze-prod-image-build-line [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-86)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2118.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-86)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2118.4" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-86)">-builder</text><text class="breeze-prod-image-build-r1" x="341.6" y="2118.4" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-87)">│</text><text class="breeze-prod-image-build-r5" x="341.6" y="2142.8" textLength="756.4" clip-path="url(#breeze-prod-image-build-line-87)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-88)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2167.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-88)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2167.2" textLength="109.8" clip-path="url(#breeze-prod-image-build-line-88)">-platform</text><text class="breeze-prod-image-build-r1" x="341.6" y="2167.2" textLe [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-89)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2191.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-89)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2191.6" textLength="61" clip-path="url(#breeze-prod-image-build-line-89)">-push</text><text class="breeze-prod-image-build-r1" x="341.6" y="2191.6" textLength="3 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-90)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2216" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-90)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2216" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-90)">-prepare</text><text class="breeze-prod-image-build-r4" x="134.2" y="2216" textLength="158. [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-91)">│</text><text class="breeze-prod-image-build-r1" x="341.6" y="2240.4" textLength="1098" clip-path="url(#breeze-prod-image-build-line-91)">image).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-prod-image-build-r5" x="0" y="2264.8" textLength="1464" clip-path="url(#breeze-prod-image-build-line-92)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="2264.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-92)">
-</text><text class="breeze-prod-image-build-r5" x="0" y="2289.2" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-93)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="2289.2" textLength="195.2" clip-path="url(#breeze-prod-image-build-line-93)">&#160;Common&#160;options&#160;</text><text class="breeze-prod-image-build-r5" x="219.6" y="2289.2" textLength="1220" clip-path="url(#breeze-prod-image-build-line-93)">──────────────────────────────────────────────────── [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-94)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2313.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-94)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2313.6" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-94)">-verbose</text><text class="breeze-prod-image-build-r6" x="158.6" y="2313.6" textLeng [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-95)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2338" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-95)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2338" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-95)">-dry</text><text class="breeze-prod-image-build-r4" x="85.4" y="2338" textLength="48.8" cli [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-96)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2362.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-96)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2362.4" textLength="61" clip-path="url(#breeze-prod-image-build-line-96)">-help</text><text class="breeze-prod-image-build-r6" x="158.6" y="2362.4" textLength="2 [...]
-</text><text class="breeze-prod-image-build-r5" x="0" y="2386.8" textLength="1464" clip-path="url(#breeze-prod-image-build-line-97)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="2386.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-97)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="2289.2" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-93)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="2289.2" textLength="280.6" clip-path="url(#breeze-prod-image-build-line-93)">&#160;Github&#160;authentication&#160;</text><text class="breeze-prod-image-build-r5" x="305" y="2289.2" textLength="1134.6" clip-path="url(#breeze-prod-image-build-line-93)">───────────────────────────────────────────── [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-94)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2313.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-94)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2313.6" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-94)">-github</text><text class="breeze-prod-image-build-r4" x="122" y="2313.6" textLength= [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-95)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2338" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-95)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2338" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-95)">-github</text><text class="breeze-prod-image-build-r4" x="122" y="2338" textLength="73.2" c [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2362.4" textLength="1464" clip-path="url(#breeze-prod-image-build-line-96)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="2362.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-96)">
+</text><text class="breeze-prod-image-build-r5" x="0" y="2386.8" textLength="24.4" clip-path="url(#breeze-prod-image-build-line-97)">╭─</text><text class="breeze-prod-image-build-r5" x="24.4" y="2386.8" textLength="195.2" clip-path="url(#breeze-prod-image-build-line-97)">&#160;Common&#160;options&#160;</text><text class="breeze-prod-image-build-r5" x="219.6" y="2386.8" textLength="1220" clip-path="url(#breeze-prod-image-build-line-97)">──────────────────────────────────────────────────── [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-98)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2411.2" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-98)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2411.2" textLength="97.6" clip-path="url(#breeze-prod-image-build-line-98)">-verbose</text><text class="breeze-prod-image-build-r6" x="158.6" y="2411.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-99)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2435.6" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-99)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2435.6" textLength="48.8" clip-path="url(#breeze-prod-image-build-line-99)">-dry</text><text class="breeze-prod-image-build-r4" x="85.4" y="2435.6" textLength="4 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-100)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2460" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-100)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2460" textLength="85.4" clip-path="url(#breeze-prod-image-build-line-100)">-answer</text><text class="breeze-prod-image-build-r6" x="158.6" y="2460" textLength="24 [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-101)">│</text><text class="breeze-prod-image-build-r4" x="24.4" y="2484.4" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-101)">-</text><text class="breeze-prod-image-build-r4" x="36.6" y="2484.4" textLength="61" clip-path="url(#breeze-prod-image-build-line-101)">-help</text><text class="breeze-prod-image-build-r6" x="158.6" y="2484.4" textLength [...]
+</text><text class="breeze-prod-image-build-r5" x="0" y="2508.8" textLength="1464" clip-path="url(#breeze-prod-image-build-line-102)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-prod-image-build-r1" x="1464" y="2508.8" textLength="12.2" clip-path="url(#breeze-prod-image-build-line-102)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_prod-image_build.txt b/images/breeze/output_prod-image_build.txt
index aac6b4aab7..f93523394a 100644
--- a/images/breeze/output_prod-image_build.txt
+++ b/images/breeze/output_prod-image_build.txt
@@ -1 +1 @@
-1eed0951812bd758082ffe34daed932b
+5ae644dee2b69e91dbcd593cdeebd3e7
diff --git a/images/breeze/output_release-management_prepare-airflow-package.txt b/images/breeze/output_release-management_prepare-airflow-package.txt
index 644026b1cf..bb4e71586a 100644
--- a/images/breeze/output_release-management_prepare-airflow-package.txt
+++ b/images/breeze/output_release-management_prepare-airflow-package.txt
@@ -1 +1 @@
-5077bcfc4272c969f8b80ea4438a438a
+91b0782d87b4e0ed7ce6e8cb231adafd
diff --git a/images/breeze/output_release-management_prepare-provider-packages.txt b/images/breeze/output_release-management_prepare-provider-packages.txt
index 872a3881ba..cf50eb5d41 100644
--- a/images/breeze/output_release-management_prepare-provider-packages.txt
+++ b/images/breeze/output_release-management_prepare-provider-packages.txt
@@ -1 +1 @@
-1b7d25cb5f379cee89c5345c60be1992
+2bb361f519c8165e884439722e76e945