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

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


The following commit(s) were added to refs/heads/main by this push:
     new 67a24aed68 Disable provider packages building for non-main branch 
builds (#25056)
67a24aed68 is described below

commit 67a24aed68c74aee2706d2c7b6b029a5846f0d55
Author: Jarek Potiuk <[email protected]>
AuthorDate: Tue Jul 19 14:37:44 2022 +0200

    Disable provider packages building for non-main branch builds (#25056)
    
    * Disable provider packages building for non-main branch builds
    
    When running the builds from non-main, we do not want to use
    provider packages built locally, but we want to install those from
    PyPI. This is achieved by skipping the step of building providers
    in case default branch is not main.
    
    During this change it was also discovered that we do not need
    AIRFLOW_FROM_CONTEXT flag to indicate whether airflow is
    among those being installed from docker-context files. This is
    now detected automatically and airflow is installed from Pypi
    if not installed from docker context files. Providers
    and airflow are automatically detected and installed if they are
    present.
    
    Installing pre-cached dependencies from GitHub is skipped in
    case docker-context-files are used.
---
 .github/workflows/build-images.yml                 |   5 +-
 .github/workflows/ci.yml                           |  19 +-
 Dockerfile                                         |  29 +-
 IMAGES.rst                                         |   3 +-
 .../commands/production_image_commands.py          |   9 +-
 .../src/airflow_breeze/params/build_prod_params.py |  22 +-
 dev/refresh_images.sh                              |   2 -
 docs/docker-stack/build-arg-ref.rst                |   5 -
 docs/docker-stack/changelog.rst                    |   3 +-
 images/breeze/output-build-prod-image.svg          | 352 ++++++++++-----------
 images/breeze/output-commands-hash.txt             |   2 +-
 scripts/ci/libraries/_initialization.sh            |   7 -
 12 files changed, 208 insertions(+), 250 deletions(-)

diff --git a/.github/workflows/build-images.yml 
b/.github/workflows/build-images.yml
index b675e9bb43..c9ebd3c1d0 100644
--- a/.github/workflows/build-images.yml
+++ b/.github/workflows/build-images.yml
@@ -319,12 +319,10 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           key: 
"pre-commit-${{steps.host-python-version.outputs.host-python-version}}-\
 ${{ hashFiles('.pre-commit-config.yaml') }}"
           restore-keys: 
pre-commit-${{steps.host-python-version.outputs.host-python-version}}
-        if: needs.build-info.outputs.default-branch == 'main'
       - name: "Regenerate dependencies in case they was modified manually so 
that we can build an image"
         run: >
           breeze static-checks --type update-providers-dependencies --all-files
           --show-diff-on-failure --color always || true
-        if: needs.build-info.outputs.default-branch == 'main'
       - name: >
           Pull CI image for PROD build:
           ${{ needs.build-info.outputs.default-python-version }}:${{ 
env.IMAGE_TAG_FOR_THE_BUILD }}
@@ -341,6 +339,7 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           --package-list-file ./scripts/ci/installed_providers.txt
           --package-format wheel
           --version-suffix-for-pypi dev0
+        if: needs.build-info.outputs.default-branch == 'main'
       - name: "Prepare airflow package"
         run: breeze prepare-airflow-package --package-format wheel 
--version-suffix-for-pypi dev0
       - name: "Move dist packages to docker-context files"
@@ -354,8 +353,6 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           --tag-as-latest
           --push-image
           --install-packages-from-context
-          --disable-airflow-repo-cache
-          --airflow-is-in-context
         env:
           UPGRADE_TO_NEWER_DEPENDENCIES: ${{ 
needs.build-info.outputs.upgrade-to-newer-dependencies }}
           DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1f7613c412..ceb0c15c93 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -434,7 +434,9 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           breeze prepare-provider-packages
           --package-list-file ./scripts/ci/installed_providers.txt
           --package-format wheel --version-suffix-for-pypi dev0
-        if: needs.build-info.outputs.in-workflow-build == 'true'
+        if: >
+          needs.build-info.outputs.in-workflow-build == 'true' &&
+          needs.build-info.outputs.default-branch == 'main'
       - name: "Prepare airflow package"
         run: breeze prepare-airflow-package --package-format wheel 
--version-suffix-for-pypi dev0
         if: needs.build-info.outputs.in-workflow-build == 'true'
@@ -450,8 +452,6 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           --run-in-parallel
           --push-image
           --install-packages-from-context
-          --disable-airflow-repo-cache
-          --airflow-is-in-context
         env:
           UPGRADE_TO_NEWER_DEPENDENCIES: ${{ 
needs.build-info.outputs.upgrade-to-newer-dependencies }}
           DOCKER_CACHE: ${{ needs.build-info.outputs.cache-directive }}
@@ -1720,6 +1720,10 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           IMAGE_TAG: ${{ env.IMAGE_TAG_FOR_THE_BUILD }}
       - name: "Cleanup dist and context file"
         run: rm -fv ./dist/* ./docker-context-files/*
+      - name: "Prepare airflow package for PROD build"
+        run: breeze prepare-airflow-package --package-format wheel
+        env:
+          VERSION_SUFFIX_FOR_PYPI: "dev0"
       - name: "Prepare providers packages for PROD build"
         run: >
           breeze prepare-provider-packages
@@ -1727,10 +1731,7 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           --package-format wheel
         env:
           VERSION_SUFFIX_FOR_PYPI: "dev0"
-      - name: "Prepare airflow package for PROD build"
-        run: breeze prepare-airflow-package --package-format wheel
-        env:
-          VERSION_SUFFIX_FOR_PYPI: "dev0"
+        if: needs.build-info.outputs.default-branch == 'main'
       - name: "Start ARM instance"
         run: ./scripts/ci/images/ci_start_arm_instance_and_connect_to_docker.sh
         if: matrix.platform == 'linux/arm64'
@@ -1746,17 +1747,17 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           PYTHON_MAJOR_MINOR_VERSION: ${{ matrix.python-version }}
       - name: "Move dist packages to docker-context files"
         run: mv -v ./dist/*.whl ./docker-context-files
+        if: needs.build-info.outputs.default-branch == 'main'
       - name: "Push PROD cache ${{ matrix.python-version }} ${{ 
matrix.platform }}"
         run: >
           breeze build-prod-image
           --builder airflow_cache
-          --airflow-is-in-context
           --install-packages-from-context
           --prepare-buildx-cache
-          --disable-airflow-repo-cache
           --platform ${{ matrix.platform }}
         env:
           PYTHON_MAJOR_MINOR_VERSION: ${{ matrix.python-version }}
+        if: needs.build-info.outputs.default-branch == 'main'
       - name: "Stop ARM instance"
         run: ./scripts/ci/images/ci_stop_arm_instance.sh
         if: always() && matrix.platform == 'linux/arm64'
diff --git a/Dockerfile b/Dockerfile
index fdcbb6fa11..b4ddddef80 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1283,16 +1283,23 @@ ENV AIRFLOW_PIP_VERSION=${AIRFLOW_PIP_VERSION} \
 COPY --from=scripts common.sh install_pip_version.sh \
      install_airflow_dependencies_from_branch_tip.sh /scripts/docker/
 
+# We can set this value to true in case we want to install .whl/.tar.gz 
packages placed in the
+# docker-context-files folder. This can be done for both additional packages 
you want to install
+# as well as Airflow and Provider packages (it will be automatically detected 
if airflow
+# is installed from docker-context files rather than from PyPI)
+ARG INSTALL_PACKAGES_FROM_CONTEXT="false"
+
 # In case of Production build image segment we want to pre-install main 
version of airflow
 # dependencies from GitHub so that we do not have to always reinstall it from 
the scratch.
 # The Airflow (and providers in case INSTALL_PROVIDERS_FROM_SOURCES is "false")
 # are uninstalled, only dependencies remain
 # the cache is only used when "upgrade to newer dependencies" is not set to 
automatically
-# account for removed dependencies (we do not install them in the first place)
-# Upgrade to specific PIP version
+# account for removed dependencies (we do not install them in the first place) 
and in case
+# INSTALL_PACKAGES_FROM_CONTEXT is not set (because then caching it from main 
makes no sense).
 RUN bash /scripts/docker/install_pip_version.sh; \
     if [[ ${AIRFLOW_PRE_CACHED_PIP_PACKAGES} == "true" && \
-          ${UPGRADE_TO_NEWER_DEPENDENCIES} == "false" ]]; then \
+        ${INSTALL_PACKAGES_FROM_CONTEXT} == "false" && \
+        ${UPGRADE_TO_NEWER_DEPENDENCIES} == "false" ]]; then \
         bash /scripts/docker/install_airflow_dependencies_from_branch_tip.sh; \
     fi
 
@@ -1302,8 +1309,7 @@ COPY --chown=airflow:0 ${AIRFLOW_SOURCES_WWW_FROM} 
${AIRFLOW_SOURCES_WWW_TO}
 # hadolint ignore=SC2086, SC2010
 RUN if [[ ${AIRFLOW_INSTALLATION_METHOD} == "." ]]; then \
         # only prepare node modules and compile assets if the prod image is 
build from sources
-        # otherwise they are already compiled-in. We should do it in one step 
with removing artifacts \
-        # as we want to keep the final image small
+        # otherwise they are already compiled-in the package.
         bash /scripts/docker/prepare_node_modules.sh; \
         REMOVE_ARTIFACTS="true" BUILD_TYPE="prod" bash 
/scripts/docker/compile_www_assets.sh; \
         # Copy generated dist folder (otherwise it will be overridden by the 
COPY step below)
@@ -1319,14 +1325,7 @@ RUN if [[ ${AIRFLOW_INSTALLATION_METHOD} == "." ]]; then 
\
 
 # Add extra python dependencies
 ARG ADDITIONAL_PYTHON_DEPS=""
-# We can set this value to true in case we want to install .whl .tar.gz 
packages placed in the
-# docker-context-files folder. This can be done for both - additional packages 
you want to install
-# and for airflow as well (you have to set AIRFLOW_IS_IN_CONTEXT to true in 
this case)
-ARG INSTALL_PACKAGES_FROM_CONTEXT="false"
-# By default we install latest airflow from PyPI or sources. You can set this 
parameter to false
-# if Airflow is in the .whl or .tar.gz packages placed in 
`docker-context-files` folder and you want
-# to skip installing Airflow/Providers from PyPI or sources.
-ARG AIRFLOW_IS_IN_CONTEXT="false"
+
 # Those are additional constraints that are needed for some extras but we do 
not want to
 # Force them on the main Airflow package.
 # * dill<0.3.3 required by apache-beam
@@ -1334,7 +1333,6 @@ ARG EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS="dill<0.3.3"
 
 ENV ADDITIONAL_PYTHON_DEPS=${ADDITIONAL_PYTHON_DEPS} \
     INSTALL_PACKAGES_FROM_CONTEXT=${INSTALL_PACKAGES_FROM_CONTEXT} \
-    AIRFLOW_IS_IN_CONTEXT=${AIRFLOW_IS_IN_CONTEXT} \
     
EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS=${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS}
 
 WORKDIR ${AIRFLOW_HOME}
@@ -1345,7 +1343,8 @@ COPY --from=scripts install_from_docker_context_files.sh 
install_airflow.sh \
 # hadolint ignore=SC2086, SC2010
 RUN if [[ ${INSTALL_PACKAGES_FROM_CONTEXT} == "true" ]]; then \
         bash /scripts/docker/install_from_docker_context_files.sh; \
-    elif [[ ${AIRFLOW_IS_IN_CONTEXT} == "false" ]]; then \
+    fi; \
+    if ! airflow version 2>/dev/null >/dev/null; then \
         bash /scripts/docker/install_airflow.sh; \
     fi; \
     if [[ -n "${ADDITIONAL_PYTHON_DEPS}" ]]; then \
diff --git a/IMAGES.rst b/IMAGES.rst
index 2f9fc7234b..8819851427 100644
--- a/IMAGES.rst
+++ b/IMAGES.rst
@@ -165,8 +165,7 @@ You can also skip installing airflow and install it from 
locally provided files
 
 .. code-block:: bash
 
-  breeze build-prod-image --python 3.7 --additional-extras=trino \
-     --airflow-is-in-context-pypi --install-packages-from-context
+  breeze build-prod-image --python 3.7 --additional-extras=trino 
--install-packages-from-context
 
 In this case you airflow and all packages (.whl files) should be placed in 
``docker-context-files`` folder.
 
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 2ee164645d..cafca59fde 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
@@ -143,7 +143,6 @@ PRODUCTION_IMAGE_TOOLS_PARAMETERS = {
             "name": "Customization options (for specific customization needs)",
             "options": [
                 "--install-packages-from-context",
-                "--airflow-is-in-context",
                 "--cleanup-context",
                 "--disable-mysql-client-installation",
                 "--disable-mssql-client-installation",
@@ -266,14 +265,10 @@ def run_build_in_parallel(
     type=BetterChoice(ALLOWED_INSTALLATION_METHODS),
 )
 @option_install_providers_from_sources
[email protected](
-    '--airflow-is-in-context',
-    help="If set Airflow is installed from docker-context-files only rather 
than from PyPI or sources.",
-    is_flag=True,
-)
 @click.option(
     '--install-packages-from-context',
-    help='Install wheels from local docker-context-files when building image.',
+    help='Install wheels from local docker-context-files when building image. '
+    'Implies --disable-airflow-repo-cache.',
     is_flag=True,
 )
 @click.option(
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 c37569f85f..65e92400c4 100644
--- a/dev/breeze/src/airflow_breeze/params/build_prod_params.py
+++ b/dev/breeze/src/airflow_breeze/params/build_prod_params.py
@@ -43,7 +43,6 @@ class BuildProdParams(CommonBuildParams):
     airflow_constraints_mode: str = "constraints"
     default_constraints_branch: str = DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH
     airflow_constraints_reference: str = ""
-    airflow_is_in_context: bool = False
     cleanup_context: bool = False
     disable_airflow_repo_cache: bool = False
     disable_mssql_client_installation: bool = False
@@ -186,31 +185,19 @@ class BuildProdParams(CommonBuildParams):
 
     @property
     def airflow_pre_cached_pip_packages(self) -> str:
-        airflow_pre_cached_pip = 'true'
-        if not self.airflow_is_in_context or self.disable_airflow_repo_cache:
-            airflow_pre_cached_pip = 'false'
-        return airflow_pre_cached_pip
+        return 'false' if self.disable_airflow_repo_cache else 'true'
 
     @property
     def install_mssql_client(self) -> str:
-        install_mssql = 'true'
-        if self.disable_mssql_client_installation:
-            install_mssql = 'false'
-        return install_mssql
+        return 'false' if self.disable_mssql_client_installation else 'true'
 
     @property
     def install_mysql_client(self) -> str:
-        install_mysql = 'true'
-        if self.disable_mysql_client_installation:
-            install_mysql = 'false'
-        return install_mysql
+        return 'false' if self.disable_mysql_client_installation else 'true'
 
     @property
     def install_postgres_client(self) -> str:
-        install_postgres = 'true'
-        if self.disable_postgres_client_installation:
-            install_postgres = 'false'
-        return install_postgres
+        return 'false' if self.disable_postgres_client_installation else 'true'
 
     @property
     def docker_context_files(self) -> str:
@@ -233,7 +220,6 @@ class BuildProdParams(CommonBuildParams):
             "airflow_image_date_created",
             "airflow_image_readme_url",
             "airflow_image_repository",
-            "airflow_is_in_context",
             "airflow_pre_cached_pip_packages",
             "airflow_version",
             "build_id",
diff --git a/dev/refresh_images.sh b/dev/refresh_images.sh
index 596997d831..7675db65b2 100755
--- a/dev/refresh_images.sh
+++ b/dev/refresh_images.sh
@@ -47,9 +47,7 @@ mv -v ./dist/*.whl ./docker-context-files
 breeze build-prod-image \
      --builder airflow_cache \
      --run-in-parallel \
-     --airflow-is-in-context \
      --install-packages-from-context \
      --prepare-buildx-cache \
-     --disable-airflow-repo-cache \
      --platform linux/amd64,linux/arm64 \
      --verbose
diff --git a/docs/docker-stack/build-arg-ref.rst 
b/docs/docker-stack/build-arg-ref.rst
index fb41e55141..a1e4f1d9f0 100644
--- a/docs/docker-stack/build-arg-ref.rst
+++ b/docs/docker-stack/build-arg-ref.rst
@@ -252,11 +252,6 @@ You can see some examples of those in:
 |                                    |                                         
 | .whl and .tar.gz files placed in the     |
 |                                    |                                         
 | ``docker-context-files``.                |
 
+------------------------------------+------------------------------------------+------------------------------------------+
-| ``AIRFLOW_IS_IN_CONTEXT``          | ``false``                               
 | If set to true, it means that Airflow    |
-|                                    |                                         
 | and providers are available in context   |
-|                                    |                                         
 | and the image will not attempt to        |
-|                                    |                                         
 | install Airflow from PyPI or sources.    |
-+------------------------------------+------------------------------------------+------------------------------------------+
 
 Pre-caching PIP dependencies
 ............................
diff --git a/docs/docker-stack/changelog.rst b/docs/docker-stack/changelog.rst
index 45e57cd992..c406172dd4 100644
--- a/docs/docker-stack/changelog.rst
+++ b/docs/docker-stack/changelog.rst
@@ -73,8 +73,7 @@ Airflow 2.3
   * Add Multi-Platform support (AMD64/ARM64) in order to accommodate MacOS M1 
users
   * Build parameters which control if packages and Airflow should be installed 
from context file were
     unified
-  * The ``INSTALL_FROM_PYPI`` arg was replaced to ``AIRFLOW_IS_IN_CONTEXT`` 
(with reverse meaning and
-    default changed to false)
+  * The ``INSTALL_FROM_PYPI`` arg was removed - it is automatically detected 
now.
   * The ``INSTALL_FROM_DOCKER_CONTEXT_FILES`` arg changed to 
``INSTALL_PACKAGES_FROM_CONTEXT``
 
 Airflow 2.2
diff --git a/images/breeze/output-build-prod-image.svg 
b/images/breeze/output-build-prod-image.svg
index 3d6122bc3f..dbb2b1d56e 100644
--- a/images/breeze/output-build-prod-image.svg
+++ b/images/breeze/output-build-prod-image.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2026.3999999999999" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 1482 2002.0" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -19,365 +19,361 @@
         font-weight: 700;
     }
 
-    .terminal-1181880005-matrix {
+    .terminal-4196591838-matrix {
         font-family: Fira Code, monospace;
         font-size: 20px;
         line-height: 24.4px;
         font-variant-east-asian: full-width;
     }
 
-    .terminal-1181880005-title {
+    .terminal-4196591838-title {
         font-size: 18px;
         font-weight: bold;
         font-family: arial;
     }
 
-    .terminal-1181880005-r1 { fill: #c5c8c6;font-weight: bold }
-.terminal-1181880005-r2 { fill: #c5c8c6 }
-.terminal-1181880005-r3 { fill: #d0b344;font-weight: bold }
-.terminal-1181880005-r4 { fill: #868887 }
-.terminal-1181880005-r5 { fill: #68a0b3;font-weight: bold }
-.terminal-1181880005-r6 { fill: #98a84b;font-weight: bold }
-.terminal-1181880005-r7 { fill: #8d7b39 }
+    .terminal-4196591838-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-4196591838-r2 { fill: #c5c8c6 }
+.terminal-4196591838-r3 { fill: #d0b344;font-weight: bold }
+.terminal-4196591838-r4 { fill: #868887 }
+.terminal-4196591838-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-4196591838-r6 { fill: #98a84b;font-weight: bold }
+.terminal-4196591838-r7 { fill: #8d7b39 }
     </style>
 
     <defs>
-    <clipPath id="terminal-1181880005-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="1975.3999999999999" />
+    <clipPath id="terminal-4196591838-clip-terminal">
+      <rect x="0" y="0" width="1463.0" height="1951.0" />
     </clipPath>
-    <clipPath id="terminal-1181880005-line-0">
+    <clipPath id="terminal-4196591838-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-1">
+<clipPath id="terminal-4196591838-line-1">
     <rect x="0" y="25.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-2">
+<clipPath id="terminal-4196591838-line-2">
     <rect x="0" y="50.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-3">
+<clipPath id="terminal-4196591838-line-3">
     <rect x="0" y="74.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-4">
+<clipPath id="terminal-4196591838-line-4">
     <rect x="0" y="99.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-5">
+<clipPath id="terminal-4196591838-line-5">
     <rect x="0" y="123.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-6">
+<clipPath id="terminal-4196591838-line-6">
     <rect x="0" y="147.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-7">
+<clipPath id="terminal-4196591838-line-7">
     <rect x="0" y="172.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-8">
+<clipPath id="terminal-4196591838-line-8">
     <rect x="0" y="196.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-9">
+<clipPath id="terminal-4196591838-line-9">
     <rect x="0" y="221.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-10">
+<clipPath id="terminal-4196591838-line-10">
     <rect x="0" y="245.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-11">
+<clipPath id="terminal-4196591838-line-11">
     <rect x="0" y="269.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-12">
+<clipPath id="terminal-4196591838-line-12">
     <rect x="0" y="294.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-13">
+<clipPath id="terminal-4196591838-line-13">
     <rect x="0" y="318.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-14">
+<clipPath id="terminal-4196591838-line-14">
     <rect x="0" y="343.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-15">
+<clipPath id="terminal-4196591838-line-15">
     <rect x="0" y="367.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-16">
+<clipPath id="terminal-4196591838-line-16">
     <rect x="0" y="391.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-17">
+<clipPath id="terminal-4196591838-line-17">
     <rect x="0" y="416.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-18">
+<clipPath id="terminal-4196591838-line-18">
     <rect x="0" y="440.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-19">
+<clipPath id="terminal-4196591838-line-19">
     <rect x="0" y="465.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-20">
+<clipPath id="terminal-4196591838-line-20">
     <rect x="0" y="489.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-21">
+<clipPath id="terminal-4196591838-line-21">
     <rect x="0" y="513.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-22">
+<clipPath id="terminal-4196591838-line-22">
     <rect x="0" y="538.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-23">
+<clipPath id="terminal-4196591838-line-23">
     <rect x="0" y="562.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-24">
+<clipPath id="terminal-4196591838-line-24">
     <rect x="0" y="587.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-25">
+<clipPath id="terminal-4196591838-line-25">
     <rect x="0" y="611.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-26">
+<clipPath id="terminal-4196591838-line-26">
     <rect x="0" y="635.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-27">
+<clipPath id="terminal-4196591838-line-27">
     <rect x="0" y="660.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-28">
+<clipPath id="terminal-4196591838-line-28">
     <rect x="0" y="684.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-29">
+<clipPath id="terminal-4196591838-line-29">
     <rect x="0" y="709.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-30">
+<clipPath id="terminal-4196591838-line-30">
     <rect x="0" y="733.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-31">
+<clipPath id="terminal-4196591838-line-31">
     <rect x="0" y="757.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-32">
+<clipPath id="terminal-4196591838-line-32">
     <rect x="0" y="782.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-33">
+<clipPath id="terminal-4196591838-line-33">
     <rect x="0" y="806.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-34">
+<clipPath id="terminal-4196591838-line-34">
     <rect x="0" y="831.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-35">
+<clipPath id="terminal-4196591838-line-35">
     <rect x="0" y="855.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-36">
+<clipPath id="terminal-4196591838-line-36">
     <rect x="0" y="879.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-37">
+<clipPath id="terminal-4196591838-line-37">
     <rect x="0" y="904.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-38">
+<clipPath id="terminal-4196591838-line-38">
     <rect x="0" y="928.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-39">
+<clipPath id="terminal-4196591838-line-39">
     <rect x="0" y="953.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-40">
+<clipPath id="terminal-4196591838-line-40">
     <rect x="0" y="977.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-41">
+<clipPath id="terminal-4196591838-line-41">
     <rect x="0" y="1001.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-42">
+<clipPath id="terminal-4196591838-line-42">
     <rect x="0" y="1026.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-43">
+<clipPath id="terminal-4196591838-line-43">
     <rect x="0" y="1050.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-44">
+<clipPath id="terminal-4196591838-line-44">
     <rect x="0" y="1075.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-45">
+<clipPath id="terminal-4196591838-line-45">
     <rect x="0" y="1099.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-46">
+<clipPath id="terminal-4196591838-line-46">
     <rect x="0" y="1123.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-47">
+<clipPath id="terminal-4196591838-line-47">
     <rect x="0" y="1148.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-48">
+<clipPath id="terminal-4196591838-line-48">
     <rect x="0" y="1172.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-49">
+<clipPath id="terminal-4196591838-line-49">
     <rect x="0" y="1197.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-50">
+<clipPath id="terminal-4196591838-line-50">
     <rect x="0" y="1221.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-51">
+<clipPath id="terminal-4196591838-line-51">
     <rect x="0" y="1245.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-52">
+<clipPath id="terminal-4196591838-line-52">
     <rect x="0" y="1270.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-53">
+<clipPath id="terminal-4196591838-line-53">
     <rect x="0" y="1294.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-54">
+<clipPath id="terminal-4196591838-line-54">
     <rect x="0" y="1319.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-55">
+<clipPath id="terminal-4196591838-line-55">
     <rect x="0" y="1343.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-56">
+<clipPath id="terminal-4196591838-line-56">
     <rect x="0" y="1367.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-57">
+<clipPath id="terminal-4196591838-line-57">
     <rect x="0" y="1392.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-58">
+<clipPath id="terminal-4196591838-line-58">
     <rect x="0" y="1416.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-59">
+<clipPath id="terminal-4196591838-line-59">
     <rect x="0" y="1441.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-60">
+<clipPath id="terminal-4196591838-line-60">
     <rect x="0" y="1465.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-61">
+<clipPath id="terminal-4196591838-line-61">
     <rect x="0" y="1489.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-62">
+<clipPath id="terminal-4196591838-line-62">
     <rect x="0" y="1514.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-63">
+<clipPath id="terminal-4196591838-line-63">
     <rect x="0" y="1538.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-64">
+<clipPath id="terminal-4196591838-line-64">
     <rect x="0" y="1563.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-65">
+<clipPath id="terminal-4196591838-line-65">
     <rect x="0" y="1587.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-66">
+<clipPath id="terminal-4196591838-line-66">
     <rect x="0" y="1611.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-67">
+<clipPath id="terminal-4196591838-line-67">
     <rect x="0" y="1636.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-68">
+<clipPath id="terminal-4196591838-line-68">
     <rect x="0" y="1660.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-69">
+<clipPath id="terminal-4196591838-line-69">
     <rect x="0" y="1685.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-70">
+<clipPath id="terminal-4196591838-line-70">
     <rect x="0" y="1709.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-71">
+<clipPath id="terminal-4196591838-line-71">
     <rect x="0" y="1733.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-72">
+<clipPath id="terminal-4196591838-line-72">
     <rect x="0" y="1758.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-73">
+<clipPath id="terminal-4196591838-line-73">
     <rect x="0" y="1782.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-74">
+<clipPath id="terminal-4196591838-line-74">
     <rect x="0" y="1807.1" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-75">
+<clipPath id="terminal-4196591838-line-75">
     <rect x="0" y="1831.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-76">
+<clipPath id="terminal-4196591838-line-76">
     <rect x="0" y="1855.9" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-77">
+<clipPath id="terminal-4196591838-line-77">
     <rect x="0" y="1880.3" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-78">
+<clipPath id="terminal-4196591838-line-78">
     <rect x="0" y="1904.7" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="terminal-1181880005-line-79">
-    <rect x="0" y="1929.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="2024.4" rx="8"/><text 
class="terminal-1181880005-title" fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;build-prod-image</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="2000" rx="8"/><text 
class="terminal-4196591838-title" fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;build-prod-image</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
             <circle cx="44" cy="0" r="7" fill="#28c840"/>
             </g>
         
-    <g transform="translate(9, 41)" 
clip-path="url(#terminal-1181880005-clip-terminal)">
+    <g transform="translate(9, 41)" 
clip-path="url(#terminal-4196591838-clip-terminal)">
     
-    <g class="terminal-1181880005-matrix">
-    <text class="terminal-1181880005-r2" x="1464" y="20" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-0)">
-</text><text class="terminal-1181880005-r3" x="12.2" y="44.4" 
textLength="85.4" 
clip-path="url(#terminal-1181880005-line-1)">Usage:&#160;</text><text 
class="terminal-1181880005-r1" x="97.6" y="44.4" textLength="402.6" 
clip-path="url(#terminal-1181880005-line-1)">breeze&#160;build-prod-image&#160;[OPTIONS]</text><text
 class="terminal-1181880005-r2" x="1464" y="44.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-1)">
-</text><text class="terminal-1181880005-r2" x="1464" y="68.8" 
textLength="12.2" clip-path="url(#terminal-1181880005-line-2)">
-</text><text class="terminal-1181880005-r2" x="12.2" y="93.2" 
textLength="1293.2" 
clip-path="url(#terminal-1181880005-line-3)">Build&#160;Production&#160;image.&#160;Include&#160;building&#160;multiple&#160;images&#160;for&#160;all&#160;or&#160;selected&#160;Python&#160;versions&#160;sequentially.</text><text
 class="terminal-1181880005-r2" x="1464" y="93.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-3)">
-</text><text class="terminal-1181880005-r2" x="1464" y="117.6" 
textLength="12.2" clip-path="url(#terminal-1181880005-line-4)">
-</text><text class="terminal-1181880005-r4" x="0" y="142" textLength="24.4" 
clip-path="url(#terminal-1181880005-line-5)">╭─</text><text 
class="terminal-1181880005-r4" x="24.4" y="142" textLength="1415.2" 
clip-path="url(#terminal-1181880005-line-5)">&#160;Basic&#160;usage&#160;───────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-1181880005-r4" x="1439.6" y="142" textLength="24.4" 
clip-path="url(#terminal-118188 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="166.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-6)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-6)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="166.4" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-6)">-python</text><text 
class="terminal-1181880005-r6" x="427" y="166.4" textLength="24.4" 
clip-path="url(#terminal-118 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="190.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-7)">│</text><text 
class="terminal-1181880005-r7" x="475.8" y="190.8" textLength="732" 
clip-path="url(#terminal-1181880005-line-7)">(&gt;3.7&lt;&#160;|&#160;3.8&#160;|&#160;3.9&#160;|&#160;3.10)&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-1181880005-r4" x="0" y="215.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-8)">│</text><text 
class="terminal-1181880005-r4" x="475.8" y="215.2" textLength="732" 
clip-path="url(#terminal-1181880005-line-8)">[default:&#160;3.7]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-1181880005-r4" x="0" y="239.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-9)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-9)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="239.6" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-9)">-install</text><text 
class="terminal-1181880005-r5" x="134.2" y="239.6" textLength="195.2" 
clip-path="url(#terminal [...]
-</text><text class="terminal-1181880005-r4" x="0" y="264" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-10)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="264" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-10)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="264" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-10)">-upgrade</text><text 
class="terminal-1181880005-r5" x="134.2" y="264" textLength="268.4" 
clip-path="url(#terminal-1181 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="288.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-11)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="288.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-11)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="288.4" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-11)">-debian</text><text 
class="terminal-1181880005-r5" x="122" y="288.4" textLength="97.6" 
clip-path="url(#terminal- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="312.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-12)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="312.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-12)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="312.8" textLength="73.2" 
clip-path="url(#terminal-1181880005-line-12)">-image</text><text 
class="terminal-1181880005-r5" x="109.8" y="312.8" textLength="48.8" 
clip-path="url(#terminal [...]
-</text><text class="terminal-1181880005-r4" x="0" y="337.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-13)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="337.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-13)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="337.2" textLength="48.8" 
clip-path="url(#terminal-1181880005-line-13)">-tag</text><text 
class="terminal-1181880005-r5" x="85.4" y="337.2" textLength="122" 
clip-path="url(#terminal-118 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="361.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-14)">│</text><text 
class="terminal-1181880005-r2" x="475.8" y="361.6" textLength="414.8" 
clip-path="url(#terminal-1181880005-line-14)">when&#160;you&#160;build&#160;or&#160;pull&#160;image&#160;with&#160;</text><text
 class="terminal-1181880005-r5" x="890.6" y="361.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-14)">-</text><text 
class="terminal-1181880005- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="386" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-15)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="386" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-15)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="386" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-15)">-docker</text><text 
class="terminal-1181880005-r5" x="122" y="386" textLength="73.2" 
clip-path="url(#terminal-11818800 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="410.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-16)">│</text><text 
class="terminal-1181880005-r4" x="475.8" y="410.4" textLength="549" 
clip-path="url(#terminal-1181880005-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="terminal-1181880005-r4" x="1451.8" y="41 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="434.8" textLength="1464" 
clip-path="url(#terminal-1181880005-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-1181880005-r2" x="1464" y="434.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-17)">
-</text><text class="terminal-1181880005-r4" x="0" y="459.2" textLength="24.4" 
clip-path="url(#terminal-1181880005-line-18)">╭─</text><text 
class="terminal-1181880005-r4" x="24.4" y="459.2" textLength="1415.2" 
clip-path="url(#terminal-1181880005-line-18)">&#160;Building&#160;images&#160;in&#160;parallel&#160;───────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-1181880005-r4" x="1439.6" y="459.2" textLength="24.4" 
clip-path="ur [...]
-</text><text class="terminal-1181880005-r4" x="0" y="483.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-19)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="483.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-19)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="483.6" textLength="48.8" 
clip-path="url(#terminal-1181880005-line-19)">-run</text><text 
class="terminal-1181880005-r5" x="85.4" y="483.6" textLength="146.4" 
clip-path="url(#terminal-1 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="508" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-20)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="508" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-20)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="508" textLength="146.4" 
clip-path="url(#terminal-1181880005-line-20)">-parallelism</text><text 
class="terminal-1181880005-r2" x="280.6" y="508" textLength="915" 
clip-path="url(#terminal-1 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="532.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-21)">│</text><text 
class="terminal-1181880005-r4" x="280.6" y="532.4" textLength="915" 
clip-path="url(#terminal-1181880005-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;&#160;&#160;&#160
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="556.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-22)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-22)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="556.8" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-22)">-python</text><text 
class="terminal-1181880005-r5" x="122" y="556.8" textLength="109.8" 
clip-path="url(#terminal [...]
-</text><text class="terminal-1181880005-r4" x="0" y="581.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-23)">│</text><text 
class="terminal-1181880005-r4" x="280.6" y="581.2" textLength="951.6" 
clip-path="url(#terminal-1181880005-line-23)">[default:&#160;3.7&#160;3.8&#160;3.9&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-1181880005-r4" x="0" y="605.6" textLength="1464" 
clip-path="url(#terminal-1181880005-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-1181880005-r2" x="1464" y="605.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-24)">
-</text><text class="terminal-1181880005-r4" x="0" y="630" textLength="24.4" 
clip-path="url(#terminal-1181880005-line-25)">╭─</text><text 
class="terminal-1181880005-r4" x="24.4" y="630" textLength="1415.2" 
clip-path="url(#terminal-1181880005-line-25)">&#160;Options&#160;for&#160;customizing&#160;images&#160;────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-1181880005-r4" x="1439.6" y="630" textLength="24.4" 
clip-path="url(#ter [...]
-</text><text class="terminal-1181880005-r4" x="0" y="654.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-26)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="654.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-26)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="654.4" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-26)">-install</text><text 
class="terminal-1181880005-r5" x="134.2" y="654.4" textLength="280.6" 
clip-path="url(#termi [...]
-</text><text class="terminal-1181880005-r4" x="0" y="678.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-27)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="678.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-27)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="678.8" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-27)">-airflow</text><text 
class="terminal-1181880005-r5" x="134.2" y="678.8" textLength="85.4" 
clip-path="url(#termin [...]
-</text><text class="terminal-1181880005-r4" x="0" y="703.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-28)">│</text><text 
class="terminal-1181880005-r7" x="463.6" y="703.2" textLength="976" 
clip-path="url(#terminal-1181880005-line-28)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="727.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-29)">│</text><text 
class="terminal-1181880005-r4" x="463.6" y="727.6" textLength="976" 
clip-path="url(#terminal-1181880005-line-29)">[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;&#160;&#160;&#1
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="752" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-30)">│</text><text 
class="terminal-1181880005-r4" x="463.6" y="752" textLength="976" 
clip-path="url(#terminal-1181880005-line-30)">amazon,async,celery,cncf.kubernetes,dask,docker,elasticsearch,ftp,google,google…</text><text
 class="terminal-1181880005-r4" x="1451.8" y="752" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-30)">│</text><text 
class="terminal-1181880 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="776.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-31)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="776.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-31)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="776.4" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-31)">-airflow</text><text 
class="terminal-1181880005-r5" x="134.2" y="776.4" textLength="207.4" 
clip-path="url(#termi [...]
-</text><text class="terminal-1181880005-r4" x="0" y="800.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-32)">│</text><text 
class="terminal-1181880005-r7" x="463.6" y="800.8" textLength="866.2" 
clip-path="url(#terminal-1181880005-line-32)">(constraints&#160;|&#160;constraints-no-providers&#160;|&#160;constraints-source-providers)</text><text
 class="terminal-1181880005-r4" x="1451.8" y="800.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-32)">│</text><text clas [...]
-</text><text class="terminal-1181880005-r4" x="0" y="825.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-33)">│</text><text 
class="terminal-1181880005-r4" x="463.6" y="825.2" textLength="866.2" 
clip-path="url(#terminal-1181880005-line-33)">[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;&#160;&#160;&
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="849.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-34)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="849.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-34)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="849.6" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-34)">-airflow</text><text 
class="terminal-1181880005-r5" x="134.2" y="849.6" textLength="268.4" 
clip-path="url(#termi [...]
-</text><text class="terminal-1181880005-r4" x="0" y="874" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-35)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="874" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-35)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="874" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-35)">-python</text><text 
class="terminal-1181880005-r5" x="122" y="874" textLength="73.2" 
clip-path="url(#terminal-11818800 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="898.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-36)">│</text><text 
class="terminal-1181880005-r2" x="463.6" y="898.4" textLength="976" 
clip-path="url(#terminal-1181880005-line-36)">something&#160;like:&#160;python:VERSION-slim-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;
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="922.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-37)">│</text><text 
class="terminal-1181880005-r7" x="463.6" y="922.8" textLength="976" 
clip-path="url(#terminal-1181880005-line-37)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="947.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-38)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="947.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-38)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="947.2" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-38)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="947.2" textLength="146.4" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="971.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-39)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="971.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-39)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="971.6" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-39)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="971.6" textLength="85.4" 
clip-path="url(#te [...]
-</text><text class="terminal-1181880005-r4" x="0" y="996" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-40)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="996" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-40)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="996" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-40)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="996" textLength="207.4" 
clip-path="url(#terminal- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1020.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-41)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1020.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-41)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1020.4" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-41)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="1020.4" textLength="195.2" 
clip-path="ur [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1044.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-42)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1044.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-42)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1044.8" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-42)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="1044.8" textLength="244" 
clip-path="url( [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1069.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-43)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1069.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-43)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1069.2" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-43)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="1069.2" textLength="158.6" 
clip-path="ur [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1093.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-44)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1093.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-44)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1093.6" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-44)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="1093.6" textLength="146.4" 
clip-path="ur [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1118" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-45)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1118" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-45)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1118" textLength="134.2" 
clip-path="url(#terminal-1181880005-line-45)">-additional</text><text 
class="terminal-1181880005-r5" x="170.8" y="1118" textLength="195.2" 
clip-path="url(#termi [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1142.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-46)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1142.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-46)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1142.4" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-46)">-runtime</text><text 
class="terminal-1181880005-r5" x="134.2" y="1142.4" textLength="109.8" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1166.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-47)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1166.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-47)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1166.8" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-47)">-runtime</text><text 
class="terminal-1181880005-r5" x="134.2" y="1166.8" textLength="146.4" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1191.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-48)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1191.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-48)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1191.2" textLength="48.8" 
clip-path="url(#terminal-1181880005-line-48)">-dev</text><text 
class="terminal-1181880005-r5" x="85.4" y="1191.2" textLength="109.8" 
clip-path="url(#termin [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1215.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-49)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1215.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-49)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1215.6" textLength="48.8" 
clip-path="url(#terminal-1181880005-line-49)">-dev</text><text 
class="terminal-1181880005-r5" x="85.4" y="1215.6" textLength="146.4" 
clip-path="url(#termin [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1240" textLength="1464" 
clip-path="url(#terminal-1181880005-line-50)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-1181880005-r2" x="1464" y="1240" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-50)">
-</text><text class="terminal-1181880005-r4" x="0" y="1264.4" textLength="24.4" 
clip-path="url(#terminal-1181880005-line-51)">╭─</text><text 
class="terminal-1181880005-r4" x="24.4" y="1264.4" textLength="1415.2" 
clip-path="url(#terminal-1181880005-line-51)">&#160;Customization&#160;options&#160;(for&#160;specific&#160;customization&#160;needs)&#160;──────────────────────────────────────────────────────────</text><text
 class="terminal-1181880005-r4" x="1439.6" y="1264.4" textLength="24.4"  [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1288.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-52)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1288.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-52)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1288.8" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-52)">-install</text><text 
class="terminal-1181880005-r5" x="134.2" y="1288.8" textLength="268.4" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1313.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-53)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1313.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-53)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1313.2" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-53)">-airflow</text><text 
class="terminal-1181880005-r5" x="134.2" y="1313.2" textLength="170.8" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1337.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-54)">│</text><text 
class="terminal-1181880005-r2" x="536.8" y="1337.6" textLength="902.8" 
clip-path="url(#terminal-1181880005-line-54)">from&#160;PyPI&#160;or&#160;sources.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-1181880005-r4" x="0" y="1362" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-55)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1362" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-55)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1362" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-55)">-cleanup</text><text 
class="terminal-1181880005-r5" x="134.2" y="1362" textLength="97.6" 
clip-path="url(#terminal-1 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1386.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-56)">│</text><text 
class="terminal-1181880005-r2" x="536.8" y="1386.4" textLength="170.8" 
clip-path="url(#terminal-1181880005-line-56)">together&#160;with&#160;</text><text
 class="terminal-1181880005-r5" x="707.6" y="1386.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-56)">-</text><text 
class="terminal-1181880005-r5" x="719.8" y="1386.4" textLength="97.6" [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1410.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-57)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1410.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-57)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1410.8" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-57)">-disable</text><text 
class="terminal-1181880005-r5" x="134.2" y="1410.8" textLength="317.2" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1435.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-58)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1435.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-58)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1435.2" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-58)">-disable</text><text 
class="terminal-1181880005-r5" x="134.2" y="1435.2" textLength="317.2" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1459.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-59)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1459.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-59)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1459.6" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-59)">-disable</text><text 
class="terminal-1181880005-r5" x="134.2" y="1459.6" textLength="353.8" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1484" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-60)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1484" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-60)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1484" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-60)">-disable</text><text 
class="terminal-1181880005-r5" x="134.2" y="1484" textLength="231.8" 
clip-path="url(#terminal- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1508.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-61)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1508.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-61)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1508.4" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-61)">-install</text><text 
class="terminal-1181880005-r5" x="134.2" y="1508.4" textLength="219.6" 
clip-path="url(#t [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1532.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-62)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1532.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-62)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1532.8" textLength="158.6" 
clip-path="url(#terminal-1181880005-line-62)">-installation</text><text 
class="terminal-1181880005-r5" x="195.2" y="1532.8" textLength="85.4" 
clip-path="u [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1557.2" textLength="1464" 
clip-path="url(#terminal-1181880005-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-1181880005-r2" x="1464" y="1557.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-63)">
-</text><text class="terminal-1181880005-r4" x="0" y="1581.6" textLength="24.4" 
clip-path="url(#terminal-1181880005-line-64)">╭─</text><text 
class="terminal-1181880005-r4" x="24.4" y="1581.6" textLength="1415.2" 
clip-path="url(#terminal-1181880005-line-64)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;─────────────────────────────────────────────────────────────────</text><text
 class="terminal-1181880005-r4" x="1439.6" y="1581.6" textLeng [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1606" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-65)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1606" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-65)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1606" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-65)">-github</text><text 
class="terminal-1181880005-r5" x="122" y="1606" textLength="73.2" 
clip-path="url(#terminal-1181 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1630.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-66)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1630.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-66)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1630.4" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-66)">-github</text><text 
class="terminal-1181880005-r5" x="122" y="1630.4" textLength="109.8" 
clip-path="url(#term [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1654.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-67)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1654.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-67)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1654.8" textLength="109.8" 
clip-path="url(#terminal-1181880005-line-67)">-platform</text><text 
class="terminal-1181880005-r2" x="341.6" y="1654.8" textLength="329.4" 
clip-path="url( [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1679.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-68)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1679.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-68)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1679.2" textLength="61" 
clip-path="url(#terminal-1181880005-line-68)">-push</text><text 
class="terminal-1181880005-r5" x="97.6" y="1679.2" textLength="73.2" 
clip-path="url(#terminal [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1703.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-69)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1703.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-69)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1703.6" textLength="73.2" 
clip-path="url(#terminal-1181880005-line-69)">-empty</text><text 
class="terminal-1181880005-r5" x="109.8" y="1703.6" textLength="73.2" 
clip-path="url(#term [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1728" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-70)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1728" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-70)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1728" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-70)">-prepare</text><text 
class="terminal-1181880005-r5" x="134.2" y="1728" textLength="158.6" 
clip-path="url(#terminal- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1752.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-71)">│</text><text 
class="terminal-1181880005-r2" x="341.6" y="1752.4" textLength="1098" 
clip-path="url(#terminal-1181880005-line-71)">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;&#160;&#
 [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1776.8" textLength="1464" 
clip-path="url(#terminal-1181880005-line-72)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-1181880005-r2" x="1464" y="1776.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-72)">
-</text><text class="terminal-1181880005-r4" x="0" y="1801.2" textLength="24.4" 
clip-path="url(#terminal-1181880005-line-73)">╭─</text><text 
class="terminal-1181880005-r4" x="24.4" y="1801.2" textLength="1415.2" 
clip-path="url(#terminal-1181880005-line-73)">&#160;Options&#160;───────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-1181880005-r4" x="1439.6" y="1801.2" textLength="24.4" 
clip-path="url(#terminal- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1825.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-74)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1825.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-74)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1825.6" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-74)">-github</text><text 
class="terminal-1181880005-r5" x="122" y="1825.6" textLength="134.2" 
clip-path="url(#term [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1850" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-75)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1850" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-75)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1850" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-75)">-builder</text><text 
class="terminal-1181880005-r2" x="329.4" y="1850" textLength="744.2" 
clip-path="url(#terminal- [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1874.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-76)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1874.4" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-76)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1874.4" textLength="85.4" 
clip-path="url(#terminal-1181880005-line-76)">-answer</text><text 
class="terminal-1181880005-r6" x="280.6" y="1874.4" textLength="24.4" 
clip-path="url(#ter [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1898.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-77)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1898.8" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-77)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1898.8" textLength="48.8" 
clip-path="url(#terminal-1181880005-line-77)">-dry</text><text 
class="terminal-1181880005-r5" x="85.4" y="1898.8" textLength="48.8" 
clip-path="url(#termina [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1923.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-78)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1923.2" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-78)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1923.2" textLength="97.6" 
clip-path="url(#terminal-1181880005-line-78)">-verbose</text><text 
class="terminal-1181880005-r6" x="280.6" y="1923.2" textLength="24.4" 
clip-path="url(#te [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1947.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-79)">│</text><text 
class="terminal-1181880005-r5" x="24.4" y="1947.6" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-79)">-</text><text 
class="terminal-1181880005-r5" x="36.6" y="1947.6" textLength="61" 
clip-path="url(#terminal-1181880005-line-79)">-help</text><text 
class="terminal-1181880005-r6" x="280.6" y="1947.6" textLength="24.4" 
clip-path="url(#termina [...]
-</text><text class="terminal-1181880005-r4" x="0" y="1972" textLength="1464" 
clip-path="url(#terminal-1181880005-line-80)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-1181880005-r2" x="1464" y="1972" textLength="12.2" 
clip-path="url(#terminal-1181880005-line-80)">
+    <g class="terminal-4196591838-matrix">
+    <text class="terminal-4196591838-r2" x="1464" y="20" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-0)">
+</text><text class="terminal-4196591838-r3" x="12.2" y="44.4" 
textLength="85.4" 
clip-path="url(#terminal-4196591838-line-1)">Usage:&#160;</text><text 
class="terminal-4196591838-r1" x="97.6" y="44.4" textLength="402.6" 
clip-path="url(#terminal-4196591838-line-1)">breeze&#160;build-prod-image&#160;[OPTIONS]</text><text
 class="terminal-4196591838-r2" x="1464" y="44.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-1)">
+</text><text class="terminal-4196591838-r2" x="1464" y="68.8" 
textLength="12.2" clip-path="url(#terminal-4196591838-line-2)">
+</text><text class="terminal-4196591838-r2" x="12.2" y="93.2" 
textLength="1293.2" 
clip-path="url(#terminal-4196591838-line-3)">Build&#160;Production&#160;image.&#160;Include&#160;building&#160;multiple&#160;images&#160;for&#160;all&#160;or&#160;selected&#160;Python&#160;versions&#160;sequentially.</text><text
 class="terminal-4196591838-r2" x="1464" y="93.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-3)">
+</text><text class="terminal-4196591838-r2" x="1464" y="117.6" 
textLength="12.2" clip-path="url(#terminal-4196591838-line-4)">
+</text><text class="terminal-4196591838-r4" x="0" y="142" textLength="24.4" 
clip-path="url(#terminal-4196591838-line-5)">╭─</text><text 
class="terminal-4196591838-r4" x="24.4" y="142" textLength="1415.2" 
clip-path="url(#terminal-4196591838-line-5)">&#160;Basic&#160;usage&#160;───────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-4196591838-r4" x="1439.6" y="142" textLength="24.4" 
clip-path="url(#terminal-419659 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="166.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-6)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-6)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="166.4" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-6)">-python</text><text 
class="terminal-4196591838-r6" x="427" y="166.4" textLength="24.4" 
clip-path="url(#terminal-419 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="190.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-7)">│</text><text 
class="terminal-4196591838-r7" x="475.8" y="190.8" textLength="732" 
clip-path="url(#terminal-4196591838-line-7)">(&gt;3.7&lt;&#160;|&#160;3.8&#160;|&#160;3.9&#160;|&#160;3.10)&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-4196591838-r4" x="0" y="215.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-8)">│</text><text 
class="terminal-4196591838-r4" x="475.8" y="215.2" textLength="732" 
clip-path="url(#terminal-4196591838-line-8)">[default:&#160;3.7]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-4196591838-r4" x="0" y="239.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-9)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-9)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="239.6" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-9)">-install</text><text 
class="terminal-4196591838-r5" x="134.2" y="239.6" textLength="195.2" 
clip-path="url(#terminal [...]
+</text><text class="terminal-4196591838-r4" x="0" y="264" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-10)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="264" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-10)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="264" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-10)">-upgrade</text><text 
class="terminal-4196591838-r5" x="134.2" y="264" textLength="268.4" 
clip-path="url(#terminal-4196 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="288.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-11)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="288.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-11)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="288.4" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-11)">-debian</text><text 
class="terminal-4196591838-r5" x="122" y="288.4" textLength="97.6" 
clip-path="url(#terminal- [...]
+</text><text class="terminal-4196591838-r4" x="0" y="312.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-12)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="312.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-12)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="312.8" textLength="73.2" 
clip-path="url(#terminal-4196591838-line-12)">-image</text><text 
class="terminal-4196591838-r5" x="109.8" y="312.8" textLength="48.8" 
clip-path="url(#terminal [...]
+</text><text class="terminal-4196591838-r4" x="0" y="337.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-13)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="337.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-13)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="337.2" textLength="48.8" 
clip-path="url(#terminal-4196591838-line-13)">-tag</text><text 
class="terminal-4196591838-r5" x="85.4" y="337.2" textLength="122" 
clip-path="url(#terminal-419 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="361.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-14)">│</text><text 
class="terminal-4196591838-r2" x="475.8" y="361.6" textLength="414.8" 
clip-path="url(#terminal-4196591838-line-14)">when&#160;you&#160;build&#160;or&#160;pull&#160;image&#160;with&#160;</text><text
 class="terminal-4196591838-r5" x="890.6" y="361.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-14)">-</text><text 
class="terminal-4196591838- [...]
+</text><text class="terminal-4196591838-r4" x="0" y="386" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-15)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="386" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-15)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="386" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-15)">-docker</text><text 
class="terminal-4196591838-r5" x="122" y="386" textLength="73.2" 
clip-path="url(#terminal-41965918 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="410.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-16)">│</text><text 
class="terminal-4196591838-r4" x="475.8" y="410.4" textLength="549" 
clip-path="url(#terminal-4196591838-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="terminal-4196591838-r4" x="1451.8" y="41 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="434.8" textLength="1464" 
clip-path="url(#terminal-4196591838-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-4196591838-r2" x="1464" y="434.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-17)">
+</text><text class="terminal-4196591838-r4" x="0" y="459.2" textLength="24.4" 
clip-path="url(#terminal-4196591838-line-18)">╭─</text><text 
class="terminal-4196591838-r4" x="24.4" y="459.2" textLength="1415.2" 
clip-path="url(#terminal-4196591838-line-18)">&#160;Building&#160;images&#160;in&#160;parallel&#160;───────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-4196591838-r4" x="1439.6" y="459.2" textLength="24.4" 
clip-path="ur [...]
+</text><text class="terminal-4196591838-r4" x="0" y="483.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-19)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="483.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-19)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="483.6" textLength="48.8" 
clip-path="url(#terminal-4196591838-line-19)">-run</text><text 
class="terminal-4196591838-r5" x="85.4" y="483.6" textLength="146.4" 
clip-path="url(#terminal-4 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="508" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-20)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="508" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-20)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="508" textLength="146.4" 
clip-path="url(#terminal-4196591838-line-20)">-parallelism</text><text 
class="terminal-4196591838-r2" x="280.6" y="508" textLength="915" 
clip-path="url(#terminal-4 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="532.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-21)">│</text><text 
class="terminal-4196591838-r4" x="280.6" y="532.4" textLength="915" 
clip-path="url(#terminal-4196591838-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;&#160;&#160;&#160
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="556.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-22)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-22)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="556.8" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-22)">-python</text><text 
class="terminal-4196591838-r5" x="122" y="556.8" textLength="109.8" 
clip-path="url(#terminal [...]
+</text><text class="terminal-4196591838-r4" x="0" y="581.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-23)">│</text><text 
class="terminal-4196591838-r4" x="280.6" y="581.2" textLength="951.6" 
clip-path="url(#terminal-4196591838-line-23)">[default:&#160;3.7&#160;3.8&#160;3.9&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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="terminal-4196591838-r4" x="0" y="605.6" textLength="1464" 
clip-path="url(#terminal-4196591838-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-4196591838-r2" x="1464" y="605.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-24)">
+</text><text class="terminal-4196591838-r4" x="0" y="630" textLength="24.4" 
clip-path="url(#terminal-4196591838-line-25)">╭─</text><text 
class="terminal-4196591838-r4" x="24.4" y="630" textLength="1415.2" 
clip-path="url(#terminal-4196591838-line-25)">&#160;Options&#160;for&#160;customizing&#160;images&#160;────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-4196591838-r4" x="1439.6" y="630" textLength="24.4" 
clip-path="url(#ter [...]
+</text><text class="terminal-4196591838-r4" x="0" y="654.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-26)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="654.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-26)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="654.4" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-26)">-install</text><text 
class="terminal-4196591838-r5" x="134.2" y="654.4" textLength="280.6" 
clip-path="url(#termi [...]
+</text><text class="terminal-4196591838-r4" x="0" y="678.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-27)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="678.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-27)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="678.8" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-27)">-airflow</text><text 
class="terminal-4196591838-r5" x="134.2" y="678.8" textLength="85.4" 
clip-path="url(#termin [...]
+</text><text class="terminal-4196591838-r4" x="0" y="703.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-28)">│</text><text 
class="terminal-4196591838-r7" x="463.6" y="703.2" textLength="976" 
clip-path="url(#terminal-4196591838-line-28)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="727.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-29)">│</text><text 
class="terminal-4196591838-r4" x="463.6" y="727.6" textLength="976" 
clip-path="url(#terminal-4196591838-line-29)">[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;&#160;&#160;&#1
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="752" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-30)">│</text><text 
class="terminal-4196591838-r4" x="463.6" y="752" textLength="976" 
clip-path="url(#terminal-4196591838-line-30)">amazon,async,celery,cncf.kubernetes,dask,docker,elasticsearch,ftp,google,google…</text><text
 class="terminal-4196591838-r4" x="1451.8" y="752" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-30)">│</text><text 
class="terminal-4196591 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="776.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-31)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="776.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-31)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="776.4" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-31)">-airflow</text><text 
class="terminal-4196591838-r5" x="134.2" y="776.4" textLength="207.4" 
clip-path="url(#termi [...]
+</text><text class="terminal-4196591838-r4" x="0" y="800.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-32)">│</text><text 
class="terminal-4196591838-r7" x="463.6" y="800.8" textLength="866.2" 
clip-path="url(#terminal-4196591838-line-32)">(constraints&#160;|&#160;constraints-no-providers&#160;|&#160;constraints-source-providers)</text><text
 class="terminal-4196591838-r4" x="1451.8" y="800.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-32)">│</text><text clas [...]
+</text><text class="terminal-4196591838-r4" x="0" y="825.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-33)">│</text><text 
class="terminal-4196591838-r4" x="463.6" y="825.2" textLength="866.2" 
clip-path="url(#terminal-4196591838-line-33)">[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;&#160;&#160;&
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="849.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-34)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="849.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-34)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="849.6" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-34)">-airflow</text><text 
class="terminal-4196591838-r5" x="134.2" y="849.6" textLength="268.4" 
clip-path="url(#termi [...]
+</text><text class="terminal-4196591838-r4" x="0" y="874" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-35)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="874" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-35)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="874" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-35)">-python</text><text 
class="terminal-4196591838-r5" x="122" y="874" textLength="73.2" 
clip-path="url(#terminal-41965918 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="898.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-36)">│</text><text 
class="terminal-4196591838-r2" x="463.6" y="898.4" textLength="976" 
clip-path="url(#terminal-4196591838-line-36)">something&#160;like:&#160;python:VERSION-slim-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;
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="922.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-37)">│</text><text 
class="terminal-4196591838-r7" x="463.6" y="922.8" textLength="976" 
clip-path="url(#terminal-4196591838-line-37)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="947.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-38)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="947.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-38)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="947.2" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-38)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="947.2" textLength="146.4" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="971.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-39)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="971.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-39)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="971.6" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-39)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="971.6" textLength="85.4" 
clip-path="url(#te [...]
+</text><text class="terminal-4196591838-r4" x="0" y="996" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-40)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="996" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-40)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="996" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-40)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="996" textLength="207.4" 
clip-path="url(#terminal- [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1020.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-41)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1020.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-41)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1020.4" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-41)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="1020.4" textLength="195.2" 
clip-path="ur [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1044.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-42)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1044.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-42)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1044.8" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-42)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="1044.8" textLength="244" 
clip-path="url( [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1069.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-43)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1069.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-43)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1069.2" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-43)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="1069.2" textLength="158.6" 
clip-path="ur [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1093.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-44)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1093.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-44)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1093.6" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-44)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="1093.6" textLength="146.4" 
clip-path="ur [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1118" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-45)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1118" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-45)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1118" textLength="134.2" 
clip-path="url(#terminal-4196591838-line-45)">-additional</text><text 
class="terminal-4196591838-r5" x="170.8" y="1118" textLength="195.2" 
clip-path="url(#termi [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1142.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-46)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1142.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-46)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1142.4" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-46)">-runtime</text><text 
class="terminal-4196591838-r5" x="134.2" y="1142.4" textLength="109.8" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1166.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-47)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1166.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-47)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1166.8" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-47)">-runtime</text><text 
class="terminal-4196591838-r5" x="134.2" y="1166.8" textLength="146.4" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1191.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-48)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1191.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-48)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1191.2" textLength="48.8" 
clip-path="url(#terminal-4196591838-line-48)">-dev</text><text 
class="terminal-4196591838-r5" x="85.4" y="1191.2" textLength="109.8" 
clip-path="url(#termin [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1215.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-49)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1215.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-49)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1215.6" textLength="48.8" 
clip-path="url(#terminal-4196591838-line-49)">-dev</text><text 
class="terminal-4196591838-r5" x="85.4" y="1215.6" textLength="146.4" 
clip-path="url(#termin [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1240" textLength="1464" 
clip-path="url(#terminal-4196591838-line-50)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-4196591838-r2" x="1464" y="1240" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-50)">
+</text><text class="terminal-4196591838-r4" x="0" y="1264.4" textLength="24.4" 
clip-path="url(#terminal-4196591838-line-51)">╭─</text><text 
class="terminal-4196591838-r4" x="24.4" y="1264.4" textLength="1415.2" 
clip-path="url(#terminal-4196591838-line-51)">&#160;Customization&#160;options&#160;(for&#160;specific&#160;customization&#160;needs)&#160;──────────────────────────────────────────────────────────</text><text
 class="terminal-4196591838-r4" x="1439.6" y="1264.4" textLength="24.4"  [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1288.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-52)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1288.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-52)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1288.8" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-52)">-install</text><text 
class="terminal-4196591838-r5" x="134.2" y="1288.8" textLength="268.4" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1313.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-53)">│</text><text 
class="terminal-4196591838-r2" x="536.8" y="1313.2" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-53)">Implies&#160;</text><text 
class="terminal-4196591838-r5" x="634.4" y="1313.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-53)">-</text><text 
class="terminal-4196591838-r5" x="646.6" y="1313.2" textLength="97.6" 
clip-path=" [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1337.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-54)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1337.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-54)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1337.6" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-54)">-cleanup</text><text 
class="terminal-4196591838-r5" x="134.2" y="1337.6" textLength="97.6" 
clip-path="url(#te [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1362" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-55)">│</text><text 
class="terminal-4196591838-r2" x="536.8" y="1362" textLength="170.8" 
clip-path="url(#terminal-4196591838-line-55)">together&#160;with&#160;</text><text
 class="terminal-4196591838-r5" x="707.6" y="1362" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-55)">-</text><text 
class="terminal-4196591838-r5" x="719.8" y="1362" textLength="97.6" clip-pa 
[...]
+</text><text class="terminal-4196591838-r4" x="0" y="1386.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-56)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1386.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-56)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1386.4" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-56)">-disable</text><text 
class="terminal-4196591838-r5" x="134.2" y="1386.4" textLength="317.2" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1410.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-57)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1410.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-57)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1410.8" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-57)">-disable</text><text 
class="terminal-4196591838-r5" x="134.2" y="1410.8" textLength="317.2" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1435.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-58)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1435.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-58)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1435.2" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-58)">-disable</text><text 
class="terminal-4196591838-r5" x="134.2" y="1435.2" textLength="353.8" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1459.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-59)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1459.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-59)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1459.6" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-59)">-disable</text><text 
class="terminal-4196591838-r5" x="134.2" y="1459.6" textLength="231.8" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1484" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-60)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1484" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-60)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1484" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-60)">-install</text><text 
class="terminal-4196591838-r5" x="134.2" y="1484" textLength="219.6" 
clip-path="url(#terminal- [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1508.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-61)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1508.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-61)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1508.4" textLength="158.6" 
clip-path="url(#terminal-4196591838-line-61)">-installation</text><text 
class="terminal-4196591838-r5" x="195.2" y="1508.4" textLength="85.4" 
clip-path="u [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1532.8" textLength="1464" 
clip-path="url(#terminal-4196591838-line-62)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-4196591838-r2" x="1464" y="1532.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-62)">
+</text><text class="terminal-4196591838-r4" x="0" y="1557.2" textLength="24.4" 
clip-path="url(#terminal-4196591838-line-63)">╭─</text><text 
class="terminal-4196591838-r4" x="24.4" y="1557.2" textLength="1415.2" 
clip-path="url(#terminal-4196591838-line-63)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;─────────────────────────────────────────────────────────────────</text><text
 class="terminal-4196591838-r4" x="1439.6" y="1557.2" textLeng [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1581.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-64)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1581.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-64)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1581.6" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-64)">-github</text><text 
class="terminal-4196591838-r5" x="122" y="1581.6" textLength="73.2" 
clip-path="url(#termi [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1606" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-65)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1606" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-65)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1606" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-65)">-github</text><text 
class="terminal-4196591838-r5" x="122" y="1606" textLength="109.8" 
clip-path="url(#terminal-419 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1630.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-66)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1630.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-66)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1630.4" textLength="109.8" 
clip-path="url(#terminal-4196591838-line-66)">-platform</text><text 
class="terminal-4196591838-r2" x="341.6" y="1630.4" textLength="329.4" 
clip-path="url( [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1654.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-67)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1654.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-67)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1654.8" textLength="61" 
clip-path="url(#terminal-4196591838-line-67)">-push</text><text 
class="terminal-4196591838-r5" x="97.6" y="1654.8" textLength="73.2" 
clip-path="url(#terminal [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1679.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-68)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1679.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-68)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1679.2" textLength="73.2" 
clip-path="url(#terminal-4196591838-line-68)">-empty</text><text 
class="terminal-4196591838-r5" x="109.8" y="1679.2" textLength="73.2" 
clip-path="url(#term [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1703.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-69)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1703.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-69)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1703.6" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-69)">-prepare</text><text 
class="terminal-4196591838-r5" x="134.2" y="1703.6" textLength="158.6" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1728" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-70)">│</text><text 
class="terminal-4196591838-r2" x="341.6" y="1728" textLength="1098" 
clip-path="url(#terminal-4196591838-line-70)">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;&#160;&#160;
 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1752.4" textLength="1464" 
clip-path="url(#terminal-4196591838-line-71)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-4196591838-r2" x="1464" y="1752.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-71)">
+</text><text class="terminal-4196591838-r4" x="0" y="1776.8" textLength="24.4" 
clip-path="url(#terminal-4196591838-line-72)">╭─</text><text 
class="terminal-4196591838-r4" x="24.4" y="1776.8" textLength="1415.2" 
clip-path="url(#terminal-4196591838-line-72)">&#160;Options&#160;───────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="terminal-4196591838-r4" x="1439.6" y="1776.8" textLength="24.4" 
clip-path="url(#terminal- [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1801.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-73)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1801.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-73)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1801.2" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-73)">-github</text><text 
class="terminal-4196591838-r5" x="122" y="1801.2" textLength="134.2" 
clip-path="url(#term [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1825.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-74)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1825.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-74)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1825.6" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-74)">-builder</text><text 
class="terminal-4196591838-r2" x="329.4" y="1825.6" textLength="744.2" 
clip-path="url(#t [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1850" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-75)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1850" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-75)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1850" textLength="85.4" 
clip-path="url(#terminal-4196591838-line-75)">-answer</text><text 
class="terminal-4196591838-r6" x="280.6" y="1850" textLength="24.4" 
clip-path="url(#terminal-41 [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1874.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-76)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1874.4" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-76)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1874.4" textLength="48.8" 
clip-path="url(#terminal-4196591838-line-76)">-dry</text><text 
class="terminal-4196591838-r5" x="85.4" y="1874.4" textLength="48.8" 
clip-path="url(#termina [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1898.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-77)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1898.8" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-77)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1898.8" textLength="97.6" 
clip-path="url(#terminal-4196591838-line-77)">-verbose</text><text 
class="terminal-4196591838-r6" x="280.6" y="1898.8" textLength="24.4" 
clip-path="url(#te [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1923.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-78)">│</text><text 
class="terminal-4196591838-r5" x="24.4" y="1923.2" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-78)">-</text><text 
class="terminal-4196591838-r5" x="36.6" y="1923.2" textLength="61" 
clip-path="url(#terminal-4196591838-line-78)">-help</text><text 
class="terminal-4196591838-r6" x="280.6" y="1923.2" textLength="24.4" 
clip-path="url(#termina [...]
+</text><text class="terminal-4196591838-r4" x="0" y="1947.6" textLength="1464" 
clip-path="url(#terminal-4196591838-line-79)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="terminal-4196591838-r2" x="1464" y="1947.6" textLength="12.2" 
clip-path="url(#terminal-4196591838-line-79)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output-commands-hash.txt 
b/images/breeze/output-commands-hash.txt
index 5acbae5e3a..42ebefca51 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -5,7 +5,7 @@
 main:fa4319079b275ce966502346f083f2e3
 build-docs:74c301f05bbd185a19fd185f1873e38a
 build-image:b62509a59badf3aa230e4562df751002
-build-prod-image:1902ec077a6d70336de6038d13472ef3
+build-prod-image:b9aa5dcefcd7067a6698f68c05adc2b8
 cleanup:9a94bd1063296ea86e895f671db0b330
 command-hash-export:83bc6a4a8c60b62da3d0f00e81d2c3ea
 config:92653afc11889e1b78e3a2e38f41107f
diff --git a/scripts/ci/libraries/_initialization.sh 
b/scripts/ci/libraries/_initialization.sh
index 41466152bd..a5292e4bef 100644
--- a/scripts/ci/libraries/_initialization.sh
+++ b/scripts/ci/libraries/_initialization.sh
@@ -459,11 +459,6 @@ function 
initialization::initialize_image_build_variables() {
     # Determines which providers are used to generate constraints - source, 
pypi or no providers
     export 
AIRFLOW_CONSTRAINTS_MODE=${AIRFLOW_CONSTRAINTS_MODE:="constraints-source-providers"}
 
-    # By default we install latest airflow from PyPI or sources. You can set 
this parameter to false
-    # if Airflow is in the .whl or .tar.gz packages placed in 
`docker-context-files` folder and you want
-    # to skip installing Airflow/Providers from PyPI or sources.
-    export AIRFLOW_IS_IN_CONTEXT="${AIRFLOW_IS_IN_CONTEXT:="false"}"
-
     # whether installation should be performed from the local wheel packages 
in "docker-context-files" folder
     export 
INSTALL_PACKAGES_FROM_CONTEXT="${INSTALL_PACKAGES_FROM_CONTEXT:="false"}"
 
@@ -715,7 +710,6 @@ Common image build variables:
 
     INSTALL_AIRFLOW_VERSION: '${INSTALL_AIRFLOW_VERSION}'
     INSTALL_AIRFLOW_REFERENCE: '${INSTALL_AIRFLOW_REFERENCE}'
-    AIRFLOW_IS_IN_CONTEXT: '${AIRFLOW_IS_IN_CONTEXT}'
     AIRFLOW_PRE_CACHED_PIP_PACKAGES: '${AIRFLOW_PRE_CACHED_PIP_PACKAGES}'
     UPGRADE_TO_NEWER_DEPENDENCIES: '${UPGRADE_TO_NEWER_DEPENDENCIES}'
     CHECK_IMAGE_FOR_REBUILD: '${CHECK_IMAGE_FOR_REBUILD}'
@@ -858,7 +852,6 @@ function initialization::make_constants_read_only() {
     readonly IMAGE_TAG
 
     readonly AIRFLOW_PRE_CACHED_PIP_PACKAGES
-    readonly AIRFLOW_IS_IN_CONTEXT
     readonly INSTALL_PACKAGES_FROM_CONTEXT
     readonly AIRFLOW_CONSTRAINTS_REFERENCE
     readonly AIRFLOW_CONSTRAINTS_LOCATION

Reply via email to