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 42d3377b60 Apply pypi suffix to provider dependencies (including
apache-airflow) (#32896)
42d3377b60 is described below
commit 42d3377b60c23c8cda2b15a25f70c06f14b1faca
Author: Jarek Potiuk <[email protected]>
AuthorDate: Thu Jul 27 23:16:29 2023 +0200
Apply pypi suffix to provider dependencies (including apache-airflow)
(#32896)
So far we only applied PyPi suffix for cross-provider dependencies -
i.e. when one airflow package depended on another one released at
the same time we added "dev0" suffix to their cross-dependencies,
when building them on CI so that they can be installed together
without conflicts (this is because of decisions made with PEP-440
where version suffixes are in different namespaces than the final
versions, so it is impossible to specify "final" dependency as
minimal and have the ".dev0" satisfy it only for that single package.
With openlineage provider, we need to release it before Airflow 2.7.0
gets released, and openlineage provider depends on Airflow 2.7.0 so
we need to also handle the situation, where OpenLineage has >= 2.7.0
for Airflow, but the dependency that is used to resolve dependencies
in CI uses 2.7.0dev0. This is done by dynamically manipulating the
dependencies in setup.py based on VERSION_SUFFIX_FOR_PYPI variable.
This variable in CI is set to "dev0" thus all packages built have
"dev0" added as version, with this change if any package has
>= <CURRENT_AIRFLOW_VERSION> specified, it will also be extended
with the same "dev0" suffix.
---
.github/workflows/build-images.yml | 1 +
.github/workflows/ci.yml | 1 +
Dockerfile | 5 +-
Dockerfile.ci | 5 +-
.../airflow_breeze/commands/ci_image_commands.py | 2 +
.../commands/ci_image_commands_config.py | 1 +
.../commands/production_image_commands.py | 2 +
.../commands/production_image_commands_config.py | 1 +
.../src/airflow_breeze/params/build_ci_params.py | 1 +
.../src/airflow_breeze/params/build_prod_params.py | 1 +
.../airflow_breeze/params/common_build_params.py | 1 +
images/breeze/output-commands-hash.txt | 8 +-
images/breeze/output_ci-image.svg | 24 ++--
images/breeze/output_ci-image_build.svg | 156 +++++++++++----------
images/breeze/output_prod-image_build.svg | 68 ++++-----
setup.py | 42 +++++-
16 files changed, 187 insertions(+), 132 deletions(-)
diff --git a/.github/workflows/build-images.yml
b/.github/workflows/build-images.yml
index 25d086f0ff..d613e059d1 100644
--- a/.github/workflows/build-images.yml
+++ b/.github/workflows/build-images.yml
@@ -175,6 +175,7 @@ jobs:
DEFAULT_CONSTRAINTS_BRANCH: ${{
needs.build-info.outputs.default-constraints-branch }}
RUNS_ON: ${{ needs.build-info.outputs.runs-on }}
BACKEND: sqlite
+ VERSION_SUFFIX_FOR_PYPI: "dev0"
steps:
- name: Cleanup repo
run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm
-rf /workspace/*"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index daec76e48c..b152bff759 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -305,6 +305,7 @@ jobs:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
# Force more parallelism for build even on public images
PARALLELISM: 6
+ VERSION_SUFFIX_FOR_PYPI: "dev0"
steps:
- name: Cleanup repo
run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm
-rf /workspace/*"
diff --git a/Dockerfile b/Dockerfile
index 16446c0b03..21c17afa71 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1290,9 +1290,12 @@ ARG ADDITIONAL_PYTHON_DEPS=""
# !!! MAKE SURE YOU SYNCHRONIZE THE LIST BETWEEN: Dockerfile, Dockerfile.ci
ARG EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS=""
+ARG VERSION_SUFFIX_FOR_PYPI=""
+
ENV ADDITIONAL_PYTHON_DEPS=${ADDITIONAL_PYTHON_DEPS} \
INSTALL_PACKAGES_FROM_CONTEXT=${INSTALL_PACKAGES_FROM_CONTEXT} \
-
EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS=${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS}
+
EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS=${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS} \
+ VERSION_SUFFIX_FOR_PYPI=${VERSION_SUFFIX_FOR_PYPI}
WORKDIR ${AIRFLOW_HOME}
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 5aa9d72ec0..9ae0091c6b 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -1376,8 +1376,11 @@ RUN echo "Airflow version: ${AIRFLOW_VERSION}"
# !!! MAKE SURE YOU SYNCHRONIZE THE LIST BETWEEN: Dockerfile, Dockerfile.ci
ARG EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS=""
ARG UPGRADE_TO_NEWER_DEPENDENCIES="false"
+ARG VERSION_SUFFIX_FOR_PYPI=""
+
ENV
EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS=${EAGER_UPGRADE_ADDITIONAL_REQUIREMENTS} \
- UPGRADE_TO_NEWER_DEPENDENCIES=${UPGRADE_TO_NEWER_DEPENDENCIES}
+ UPGRADE_TO_NEWER_DEPENDENCIES=${UPGRADE_TO_NEWER_DEPENDENCIES} \
+ VERSION_SUFFIX_FOR_PYPI=${VERSION_SUFFIX_FOR_PYPI}
# Copy all scripts required for installation - changing any of those should
lead to
# rebuilding from here
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
index 5b6b9ee3b8..141908864e 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
@@ -70,6 +70,7 @@ from airflow_breeze.utils.common_options import (
option_upgrade_to_newer_dependencies,
option_verbose,
option_verify,
+ option_version_suffix_for_pypi,
option_wait_for_image,
)
from airflow_breeze.utils.confirm import STANDARD_TIMEOUT, Answer, user_confirm
@@ -195,6 +196,7 @@ def prepare_for_building_ci_image(params: BuildCiParams):
@option_tag_as_latest
@option_additional_pip_install_flags
@option_github_repository
+@option_version_suffix_for_pypi
@option_verbose
@option_dry_run
@option_answer
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
b/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
index b408bb9f7d..c011fde22a 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands_config.py
@@ -66,6 +66,7 @@ CI_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str, str |
list[str]]]] = {
"--additional-dev-apt-command",
"--dev-apt-deps",
"--dev-apt-command",
+ "--version-suffix-for-pypi",
],
},
{
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 cb2d3d419b..a1c6f2df15 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands.py
@@ -72,6 +72,7 @@ from airflow_breeze.utils.common_options import (
option_upgrade_to_newer_dependencies,
option_verbose,
option_verify,
+ option_version_suffix_for_pypi,
option_wait_for_image,
)
from airflow_breeze.utils.console import Output, get_console
@@ -223,6 +224,7 @@ def prod_image():
@option_tag_as_latest
@option_additional_pip_install_flags
@option_github_repository
+@option_version_suffix_for_pypi
@option_verbose
@option_dry_run
def build(
diff --git
a/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
b/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
index 42c58c6e84..40609bffa8 100644
--- a/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/production_image_commands_config.py
@@ -72,6 +72,7 @@ PRODUCTION_IMAGE_TOOLS_PARAMETERS: dict[str, list[dict[str,
str | list[str]]]] =
"--runtime-apt-command",
"--dev-apt-deps",
"--dev-apt-command",
+ "--version-suffix-for-pypi",
],
},
{
diff --git a/dev/breeze/src/airflow_breeze/params/build_ci_params.py
b/dev/breeze/src/airflow_breeze/params/build_ci_params.py
index 04d4b147f9..97324a27ab 100644
--- a/dev/breeze/src/airflow_breeze/params/build_ci_params.py
+++ b/dev/breeze/src/airflow_breeze/params/build_ci_params.py
@@ -98,6 +98,7 @@ class BuildCiParams(CommonBuildParams):
"additional_airflow_extras",
"additional_pip_install_flags",
"additional_python_deps",
+ "version_suffix_for_pypi",
]
def __post_init__(self):
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 8dfbdc0935..721cac8da7 100644
--- a/dev/breeze/src/airflow_breeze/params/build_prod_params.py
+++ b/dev/breeze/src/airflow_breeze/params/build_prod_params.py
@@ -240,4 +240,5 @@ class BuildProdParams(CommonBuildParams):
"dev_apt_deps",
"runtime_apt_command",
"runtime_apt_deps",
+ "version_suffix_for_pypi",
]
diff --git a/dev/breeze/src/airflow_breeze/params/common_build_params.py
b/dev/breeze/src/airflow_breeze/params/common_build_params.py
index bbc0da9d9a..914a2b02e2 100644
--- a/dev/breeze/src/airflow_breeze/params/common_build_params.py
+++ b/dev/breeze/src/airflow_breeze/params/common_build_params.py
@@ -65,6 +65,7 @@ class CommonBuildParams:
upgrade_to_newer_dependencies: bool = False
upgrade_on_failure: bool = False
dry_run: bool = False
+ version_suffix_for_pypi: str = ""
verbose: bool = False
@property
diff --git a/images/breeze/output-commands-hash.txt
b/images/breeze/output-commands-hash.txt
index c0ccd98d5a..94c4c589d8 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -9,10 +9,10 @@ ci:get-workflow-info:8246038093359b9c3c110043419473e2
ci:resource-check:bfcca92f18a403ca630955074eb5e9ad
ci:selective-check:6657ed5d42affb7264b5efcc86f17a2a
ci:65d145d7746bde5f8dc8f6f484cfc134
-ci-image:build:a06f3ac7e0110213db25d06e6f5702da
+ci-image:build:517f74610049c6c1d42a11693d40f89f
ci-image:pull:7f14482a588f018f76df84719e77723f
ci-image:verify:c90dc7e20fce2351eb89d8d1ebbd35e7
-ci-image:8b6a9a00849da08e89e8af2b6bd3672c
+ci-image:8a6c5e10fa1901522e128d5a0bdcc033
cleanup:8d92d453a6700f6d8cb11fb6a8b50461
compile-www-assets:0963f1409f0aa1e3b137cddd4cc52e87
down:4580f5b3b178ea00182694f134a751f3
@@ -31,10 +31,10 @@ k8s:status:1b1b6fb6ccc7a211a3eb44568da71659
k8s:tests:2319c6f5ba0681ff7627e3166a1479ef
k8s:upload-k8s-image:a9ac79e2f5e3d6b01fa45e764885913f
k8s:db08df55a8200bff5858a3b7549bff47
-prod-image:build:1a321a1243555ab4e2cc95f44e85c92e
+prod-image:build:d58b9222d141fd3620459ffaa9ee0235
prod-image:pull:76f1f27e6119928412abecf153fce4bb
prod-image:verify:bd2b78738a7c388dbad6076c41a9f906
-prod-image:ad55d9dce93cbfcc1c5ad8640a007340
+prod-image:a7018fc4de9d087d69b25cd1cba71216
release-management:add-back-references:8dab6a30076a55f2d31c6d22a94e0ccb
release-management:create-minor-branch:a3834afc4aa5d1e98002c9e9e7a9931d
release-management:generate-constraints:b8fcaf8f0acd35ed5dbd48659bdb6485
diff --git a/images/breeze/output_ci-image.svg
b/images/breeze/output_ci-image.svg
index bf1df9347a..3025e6e470 100644
--- a/images/breeze/output_ci-image.svg
+++ b/images/breeze/output_ci-image.svg
@@ -35,8 +35,8 @@
.breeze-ci-image-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-ci-image-r2 { fill: #c5c8c6 }
.breeze-ci-image-r3 { fill: #d0b344;font-weight: bold }
-.breeze-ci-image-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-ci-image-r5 { fill: #868887 }
+.breeze-ci-image-r4 { fill: #868887 }
+.breeze-ci-image-r5 { fill: #68a0b3;font-weight: bold }
.breeze-ci-image-r6 { fill: #98a84b;font-weight: bold }
</style>
@@ -93,18 +93,18 @@
<g class="breeze-ci-image-matrix">
<text class="breeze-ci-image-r2" x="1464" y="20" textLength="12.2"
clip-path="url(#breeze-ci-image-line-0)">
-</text><text class="breeze-ci-image-r3" x="12.2" y="44.4" textLength="85.4"
clip-path="url(#breeze-ci-image-line-1)">Usage: </text><text
class="breeze-ci-image-r1" x="97.6" y="44.4" textLength="207.4"
clip-path="url(#breeze-ci-image-line-1)">breeze ci-image [</text><text
class="breeze-ci-image-r4" x="305" y="44.4" textLength="85.4"
clip-path="url(#breeze-ci-image-line-1)">OPTIONS</text><text
class="breeze-ci-image-r1" x="390.4" y="44.4" textLength="24.4"
clip-path="url(#br [...]
+</text><text class="breeze-ci-image-r3" x="12.2" y="44.4" textLength="85.4"
clip-path="url(#breeze-ci-image-line-1)">Usage: </text><text
class="breeze-ci-image-r1" x="97.6" y="44.4" textLength="524.6"
clip-path="url(#breeze-ci-image-line-1)">breeze ci-image [OPTIONS] COMMAND [ARGS]...</text><text
class="breeze-ci-image-r2" x="1464" y="44.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-1)">
</text><text class="breeze-ci-image-r2" x="1464" y="68.8" textLength="12.2"
clip-path="url(#breeze-ci-image-line-2)">
-</text><text class="breeze-ci-image-r2" x="12.2" y="93.2" textLength="597.8"
clip-path="url(#breeze-ci-image-line-3)">Tools that developers can use to manually manage </text><text
class="breeze-ci-image-r4" x="610" y="93.2" textLength="24.4"
clip-path="url(#breeze-ci-image-line-3)">CI</text><text
class="breeze-ci-image-r2" x="634.4" y="93.2" textLength="85.4"
clip-path="url(#breeze-ci-image-line-3)"> images</text><text
class="breeze-ci-image-r [...]
+</text><text class="breeze-ci-image-r2" x="12.2" y="93.2" textLength="707.6"
clip-path="url(#breeze-ci-image-line-3)">Tools that developers can use to manually manage CI images</text><text
class="breeze-ci-image-r2" x="1464" y="93.2" textLength="12.2"
clip-path="url(#breeze-ci-image-line-3)">
</text><text class="breeze-ci-image-r2" x="1464" y="117.6" textLength="12.2"
clip-path="url(#breeze-ci-image-line-4)">
-</text><text class="breeze-ci-image-r5" x="0" y="142" textLength="24.4"
clip-path="url(#breeze-ci-image-line-5)">╭─</text><text
class="breeze-ci-image-r5" x="24.4" y="142" textLength="195.2"
clip-path="url(#breeze-ci-image-line-5)"> Common options </text><text
class="breeze-ci-image-r5" x="219.6" y="142" textLength="1220"
clip-path="url(#breeze-ci-image-line-5)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
[...]
-</text><text class="breeze-ci-image-r5" x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-6)">│</text><text
class="breeze-ci-image-r4" x="24.4" y="166.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-6)">-</text><text
class="breeze-ci-image-r4" x="36.6" y="166.4" textLength="61"
clip-path="url(#breeze-ci-image-line-6)">-help</text><text
class="breeze-ci-image-r6" x="122" y="166.4" textLength="24.4"
clip-path="url(#breeze-ci-image-line-6)">-h</text><text clas [...]
-</text><text class="breeze-ci-image-r5" x="0" y="190.8" textLength="1464"
clip-path="url(#breeze-ci-image-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-r2" x="1464" y="190.8" textLength="12.2"
clip-path="url(#breeze-ci-image-line-7)">
-</text><text class="breeze-ci-image-r5" x="0" y="215.2" textLength="24.4"
clip-path="url(#breeze-ci-image-line-8)">╭─</text><text
class="breeze-ci-image-r5" x="24.4" y="215.2" textLength="195.2"
clip-path="url(#breeze-ci-image-line-8)"> CI Image tools </text><text
class="breeze-ci-image-r5" x="219.6" y="215.2" textLength="1220"
clip-path="url(#breeze-ci-image-line-8)">────────────────────────────────────────────────────────────────────────────────────────────────────<
[...]
-</text><text class="breeze-ci-image-r5" x="0" y="239.6" textLength="12.2"
clip-path="url(#breeze-ci-image-line-9)">│</text><text
class="breeze-ci-image-r4" x="24.4" y="239.6" textLength="97.6"
clip-path="url(#breeze-ci-image-line-9)">build   </text><text
class="breeze-ci-image-r2" x="146.4" y="239.6" textLength="73.2"
clip-path="url(#breeze-ci-image-line-9)">Build </text><text
class="breeze-ci-image-r4" x="219.6" y="239.6" textLength="24.4"
clip-path="url(#breeze-ci-i [...]
-</text><text class="breeze-ci-image-r5" x="0" y="264" textLength="12.2"
clip-path="url(#breeze-ci-image-line-10)">│</text><text
class="breeze-ci-image-r4" x="24.4" y="264" textLength="97.6"
clip-path="url(#breeze-ci-image-line-10)">pull    </text><text
class="breeze-ci-image-r2" x="146.4" y="264" textLength="329.4"
clip-path="url(#breeze-ci-image-line-10)">Pull and optionally verify </text><text
class="breeze-ci-image-r4" x="475.8" y="264" textLeng [...]
-</text><text class="breeze-ci-image-r5" x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-11)">│</text><text
class="breeze-ci-image-r4" x="24.4" y="288.4" textLength="97.6"
clip-path="url(#breeze-ci-image-line-11)">verify  </text><text
class="breeze-ci-image-r2" x="146.4" y="288.4" textLength="85.4"
clip-path="url(#breeze-ci-image-line-11)">Verify </text><text
class="breeze-ci-image-r4" x="231.8" y="288.4" textLength="24.4"
clip-path="url(#breeze-ci-im [...]
-</text><text class="breeze-ci-image-r5" x="0" y="312.8" textLength="1464"
clip-path="url(#breeze-ci-image-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-r2" x="1464" y="312.8" textLength="12.2"
clip-path="url(#breeze-ci-image-line-12)">
+</text><text class="breeze-ci-image-r4" x="0" y="142" textLength="24.4"
clip-path="url(#breeze-ci-image-line-5)">╭─</text><text
class="breeze-ci-image-r4" x="24.4" y="142" textLength="195.2"
clip-path="url(#breeze-ci-image-line-5)"> Common options </text><text
class="breeze-ci-image-r4" x="219.6" y="142" textLength="1220"
clip-path="url(#breeze-ci-image-line-5)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
[...]
+</text><text class="breeze-ci-image-r4" x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-6)">│</text><text
class="breeze-ci-image-r5" x="24.4" y="166.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-6)">-</text><text
class="breeze-ci-image-r5" x="36.6" y="166.4" textLength="61"
clip-path="url(#breeze-ci-image-line-6)">-help</text><text
class="breeze-ci-image-r6" x="122" y="166.4" textLength="24.4"
clip-path="url(#breeze-ci-image-line-6)">-h</text><text clas [...]
+</text><text class="breeze-ci-image-r4" x="0" y="190.8" textLength="1464"
clip-path="url(#breeze-ci-image-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-r2" x="1464" y="190.8" textLength="12.2"
clip-path="url(#breeze-ci-image-line-7)">
+</text><text class="breeze-ci-image-r4" x="0" y="215.2" textLength="24.4"
clip-path="url(#breeze-ci-image-line-8)">╭─</text><text
class="breeze-ci-image-r4" x="24.4" y="215.2" textLength="195.2"
clip-path="url(#breeze-ci-image-line-8)"> CI Image tools </text><text
class="breeze-ci-image-r4" x="219.6" y="215.2" textLength="1220"
clip-path="url(#breeze-ci-image-line-8)">────────────────────────────────────────────────────────────────────────────────────────────────────<
[...]
+</text><text class="breeze-ci-image-r4" x="0" y="239.6" textLength="12.2"
clip-path="url(#breeze-ci-image-line-9)">│</text><text
class="breeze-ci-image-r5" x="24.4" y="239.6" textLength="97.6"
clip-path="url(#breeze-ci-image-line-9)">build   </text><text
class="breeze-ci-image-r2" x="146.4" y="239.6" textLength="1293.2"
clip-path="url(#breeze-ci-image-line-9)">Build CI image. Include building multiple images for all python 
[...]
+</text><text class="breeze-ci-image-r4" x="0" y="264" textLength="12.2"
clip-path="url(#breeze-ci-image-line-10)">│</text><text
class="breeze-ci-image-r5" x="24.4" y="264" textLength="97.6"
clip-path="url(#breeze-ci-image-line-10)">pull    </text><text
class="breeze-ci-image-r2" x="146.4" y="264" textLength="1293.2"
clip-path="url(#breeze-ci-image-line-10)">Pull and optionally verify CI images - possibly in parallel fo
[...]
+</text><text class="breeze-ci-image-r4" x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-ci-image-line-11)">│</text><text
class="breeze-ci-image-r5" x="24.4" y="288.4" textLength="97.6"
clip-path="url(#breeze-ci-image-line-11)">verify  </text><text
class="breeze-ci-image-r2" x="146.4" y="288.4" textLength="1293.2"
clip-path="url(#breeze-ci-image-line-11)">Verify CI image.               
[...]
+</text><text class="breeze-ci-image-r4" x="0" y="312.8" textLength="1464"
clip-path="url(#breeze-ci-image-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-r2" x="1464" y="312.8" textLength="12.2"
clip-path="url(#breeze-ci-image-line-12)">
</text>
</g>
</g>
diff --git a/images/breeze/output_ci-image_build.svg
b/images/breeze/output_ci-image_build.svg
index 875f8212fe..ef457feb9d 100644
--- a/images/breeze/output_ci-image_build.svg
+++ b/images/breeze/output_ci-image_build.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1855.6"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1880.0"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -35,15 +35,15 @@
.breeze-ci-image-build-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-ci-image-build-r2 { fill: #c5c8c6 }
.breeze-ci-image-build-r3 { fill: #d0b344;font-weight: bold }
-.breeze-ci-image-build-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-ci-image-build-r5 { fill: #868887 }
+.breeze-ci-image-build-r4 { fill: #868887 }
+.breeze-ci-image-build-r5 { fill: #68a0b3;font-weight: bold }
.breeze-ci-image-build-r6 { fill: #98a84b;font-weight: bold }
.breeze-ci-image-build-r7 { fill: #8d7b39 }
</style>
<defs>
<clipPath id="breeze-ci-image-build-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="1804.6" />
+ <rect x="0" y="0" width="1463.0" height="1829.0" />
</clipPath>
<clipPath id="breeze-ci-image-build-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -264,9 +264,12 @@
<clipPath id="breeze-ci-image-build-line-72">
<rect x="0" y="1758.3" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-ci-image-build-line-73">
+ <rect x="0" y="1782.7" width="1464" height="24.65"/>
+ </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="1853.6" rx="8"/><text
class="breeze-ci-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: ci-image build</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="1878" rx="8"/><text
class="breeze-ci-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: ci-image build</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -277,79 +280,80 @@
<g class="breeze-ci-image-build-matrix">
<text class="breeze-ci-image-build-r2" x="1464" y="20" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-0)">
-</text><text class="breeze-ci-image-build-r3" x="12.2" y="44.4"
textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-1)">Usage: </text><text
class="breeze-ci-image-build-r1" x="97.6" y="44.4" textLength="280.6"
clip-path="url(#breeze-ci-image-build-line-1)">breeze ci-image build [</text><text
class="breeze-ci-image-build-r4" x="378.2" y="44.4" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-1)">OPTIONS</text><text
class="breeze-ci-image-build-r1" [...]
+</text><text class="breeze-ci-image-build-r3" x="12.2" y="44.4"
textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-1)">Usage: </text><text
class="breeze-ci-image-build-r1" x="97.6" y="44.4" textLength="378.2"
clip-path="url(#breeze-ci-image-build-line-1)">breeze ci-image build [OPTIONS]</text><text
class="breeze-ci-image-build-r2" x="1464" y="44.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-1)">
</text><text class="breeze-ci-image-build-r2" x="1464" y="68.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-2)">
-</text><text class="breeze-ci-image-build-r2" x="12.2" y="93.2"
textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-3)">Build </text><text
class="breeze-ci-image-build-r4" x="85.4" y="93.2" textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-3)">CI</text><text
class="breeze-ci-image-build-r2" x="109.8" y="93.2" textLength="793"
clip-path="url(#breeze-ci-image-build-line-3)"> image. Include building multiple images for all pyt
[...]
+</text><text class="breeze-ci-image-build-r2" x="12.2" y="93.2"
textLength="890.6"
clip-path="url(#breeze-ci-image-build-line-3)">Build CI image. Include building multiple images for all python versions.</text><text
class="breeze-ci-image-build-r2" x="1464" y="93.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-3)">
</text><text class="breeze-ci-image-build-r2" x="1464" y="117.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-4)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="142" textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-5)">╭─</text><text
class="breeze-ci-image-build-r5" x="24.4" y="142" textLength="158.6"
clip-path="url(#breeze-ci-image-build-line-5)"> Basic usage </text><text
class="breeze-ci-image-build-r5" x="183" y="142" textLength="1256.6"
clip-path="url(#breeze-ci-image-build-line-5)">───────────────────────────────────────────────────────────────────────────────
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="166.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-6)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="166.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-6)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="166.4" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-6)">-python</text><text
class="breeze-ci-image-build-r6" x="427" y="166.4" textLength="24.4"
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="190.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-7)">│</text><text
class="breeze-ci-image-build-r7" x="475.8" y="190.8" textLength="732"
clip-path="url(#breeze-ci-image-build-line-7)">(>3.8< | 3.9 | 3.10 | 3.11)                            
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="215.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-8)">│</text><text
class="breeze-ci-image-build-r5" x="475.8" y="215.2" textLength="732"
clip-path="url(#breeze-ci-image-build-line-8)">[default: 3.8]                                    
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="239.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-9)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="239.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-9)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="239.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-9)">-upgrade</text><text
class="breeze-ci-image-build-r4" x="134.2" y="239.6" textLength="268.4"
clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="264" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-10)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="264" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-10)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="264" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-10)">-upgrade</text><text
class="breeze-ci-image-build-r4" x="134.2" y="264" textLength="134.2"
clip-path="url( [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="288.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-11)">│</text><text
class="breeze-ci-image-build-r2" x="475.8" y="288.4" textLength="963.8"
clip-path="url(#breeze-ci-image-build-line-11)">fails.                                     &#
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="312.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-12)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="312.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-12)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="312.8" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-12)">-image</text><text
class="breeze-ci-image-build-r4" x="109.8" y="312.8" textLength="48.8"
clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="337.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-13)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="337.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-13)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="337.2" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-13)">-tag</text><text
class="breeze-ci-image-build-r4" x="85.4" y="337.2" textLength="122"
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="361.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-14)">│</text><text
class="breeze-ci-image-build-r2" x="475.8" y="361.6" textLength="414.8"
clip-path="url(#breeze-ci-image-build-line-14)">when you build or pull image with </text><text
class="breeze-ci-image-build-r4" x="890.6" y="361.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-14)">-</text><text class="breeze-c
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="386" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-15)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="386" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-15)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="386" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-15)">-docker</text><text
class="breeze-ci-image-build-r4" x="122" y="386" textLength="73.2"
clip-path="url(#bre [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="410.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-16)">│</text><text
class="breeze-ci-image-build-r5" x="475.8" y="410.4" textLength="549"
clip-path="url(#breeze-ci-image-build-line-16)">[default: registry]                          </text><text
class="breeze-ci-image-build-r5" x="145 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="434.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="434.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-17)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="434.8" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-17)">-force</text><text
class="breeze-ci-image-build-r4" x="109.8" y="434.8" textLength="73.2"
clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="459.2"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-18)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="459.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-18)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="483.6"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-19)">╭─</text><text
class="breeze-ci-image-build-r5" x="24.4" y="483.6" textLength="353.8"
clip-path="url(#breeze-ci-image-build-line-19)"> Building images in parallel </text><text
class="breeze-ci-image-build-r5" x="378.2" y="483.6" textLength="1061.4"
clip-path="url(#breeze-ci-image-build-line-19)">──────────────────────────────────────────
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="508" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-20)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="508" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-20)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="508" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-20)">-run</text><text
class="breeze-ci-image-build-r4" x="85.4" y="508" textLength="146.4"
clip-path="url(#bree [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="532.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-21)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-21)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="532.4" textLength="146.4"
clip-path="url(#breeze-ci-image-build-line-21)">-parallelism</text><text
class="breeze-ci-image-build-r2" x="378.2" y="532.4" textLength="915" clip [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="556.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">│</text><text
class="breeze-ci-image-build-r7" x="378.2" y="556.8" textLength="915"
clip-path="url(#breeze-ci-image-build-line-22)">(INTEGER RANGE)                                   &#
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="581.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-23)">│</text><text
class="breeze-ci-image-build-r5" x="378.2" y="581.2" textLength="915"
clip-path="url(#breeze-ci-image-build-line-23)">[default: 4; 1<=x<=8]                                
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="605.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-24)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="605.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-24)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="605.6" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-24)">-python</text><text
class="breeze-ci-image-build-r4" x="122" y="605.6" textLength="109.8"
clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="630" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-25)">│</text><text
class="breeze-ci-image-build-r5" x="378.2" y="630" textLength="951.6"
clip-path="url(#breeze-ci-image-build-line-25)">[default: 3.8 3.9 3.10 3.11]                               
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="654.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="654.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-26)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="654.4" textLength="61"
clip-path="url(#breeze-ci-image-build-line-26)">-skip</text><text
class="breeze-ci-image-build-r4" x="97.6" y="654.4" textLength="97.6"
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="678.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-27)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="678.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-27)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="678.8" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-27)">-debug</text><text
class="breeze-ci-image-build-r4" x="109.8" y="678.8" textLength="122"
clip-path=" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="703.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="703.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-28)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="703.2" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-28)">-include</text><text
class="breeze-ci-image-build-r4" x="134.2" y="703.2" textLength="195.2" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="727.6"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-29)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="752" textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-30)">╭─</text><text
class="breeze-ci-image-build-r5" x="24.4" y="752" textLength="439.2"
clip-path="url(#breeze-ci-image-build-line-30)"> Advanced options (for power users) </text><text
class="breeze-ci-image-build-r5" x="463.6" y="752" textLength="976"
clip-path="url(#breeze-ci-image-build-line-30)">───────────────────────────────────────
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="776.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-31)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="776.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-31)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="776.4" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-31)">-builder</text><text
class="breeze-ci-image-build-r2" x="463.6" y="776.4" textLength="756.4" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="800.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-32)">│</text><text
class="breeze-ci-image-build-r5" x="463.6" y="800.8" textLength="756.4"
clip-path="url(#breeze-ci-image-build-line-32)">[default: autodetect]                                  
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="825.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="825.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-33)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="825.2" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-33)">-install</text><text
class="breeze-ci-image-build-r4" x="134.2" y="825.2" textLength="280.6" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="849.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-34)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="849.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-34)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="849.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-34)">-airflow</text><text
class="breeze-ci-image-build-r4" x="134.2" y="849.6" textLength="256.2" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="874" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-35)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="874" textLength="366"
clip-path="url(#breeze-ci-image-build-line-35)">file. It could be full remote </text><text
class="breeze-ci-image-build-r4" x="829.6" y="874" textLength="36.6"
clip-path="url(#breeze-ci-image-build-line-35)">URL</text><text
class="breeze-ci-image-build-r [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="898.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="898.4" textLength="976"
clip-path="url(#breeze-ci-image-build-line-36)">`docker-context-files` (in this case it has to start with                      
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="922.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-37)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="922.8" textLength="976"
clip-path="url(#breeze-ci-image-build-line-37)">/opt/airflow/docker-context-files).                                 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="947.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-38)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="947.2" textLength="976"
clip-path="url(#breeze-ci-image-build-line-38)">(TEXT)                                     
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="971.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-39)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="971.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-39)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="971.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-39)">-airflow</text><text
class="breeze-ci-image-build-r4" x="134.2" y="971.6" textLength="207.4" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="996" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-40)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="996" textLength="866.2"
clip-path="url(#breeze-ci-image-build-line-40)">(constraints-source-providers | constraints | constraints-no-providers)</text><text
class="breeze-ci-image-build-r5" x="1451.8" y="996" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-40)">│</text><tex [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1020.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">│</text><text
class="breeze-ci-image-build-r5" x="463.6" y="1020.4" textLength="866.2"
clip-path="url(#breeze-ci-image-build-line-41)">[default: constraints-source-providers]                              
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1044.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1044.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-42)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1044.8" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-42)">-airflow</text><text
class="breeze-ci-image-build-r4" x="134.2" y="1044.8" textLength="268.4" cli
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1069.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1069.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-43)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1069.2" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-43)">-python</text><text
class="breeze-ci-image-build-r4" x="122" y="1069.2" textLength="73.2" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1093.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="1093.6" textLength="280.6"
clip-path="url(#breeze-ci-image-build-line-44)">something like: python:</text><text
class="breeze-ci-image-build-r4" x="744.2" y="1093.6" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-44)">VERSION</text><text
class="breeze-ci-image-build-r2" x="829.6" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1118" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-45)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="1118" textLength="976"
clip-path="url(#breeze-ci-image-build-line-45)">(TEXT)                                      
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1142.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1142.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-46)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1142.4" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-46)">-additional</text><text
class="breeze-ci-image-build-r4" x="170.8" y="1142.4" textLength="146.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1166.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-47)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1166.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-47)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1166.8" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-47)">-additional</text><text
class="breeze-ci-image-build-r4" x="170.8" y="1166.8" textLength="85.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1191.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-48)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1191.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-48)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1191.2" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-48)">-additional</text><text
class="breeze-ci-image-build-r4" x="170.8" y="1191.2" textLength="219.6" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1215.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="1215.6" textLength="976"
clip-path="url(#breeze-ci-image-build-line-49)">itself).                                     
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1240" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-50)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="1240" textLength="976"
clip-path="url(#breeze-ci-image-build-line-50)">(TEXT)                                      
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1264.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-51)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1264.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-51)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1264.4" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-51)">-additional</text><text
class="breeze-ci-image-build-r4" x="170.8" y="1264.4" textLength="158.6" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1288.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-52)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1288.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-52)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1288.8" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-52)">-additional</text><text
class="breeze-ci-image-build-r4" x="170.8" y="1288.8" textLength="146.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1313.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1313.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-53)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1313.2" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-53)">-additional</text><text
class="breeze-ci-image-build-r4" x="170.8" y="1313.2" textLength="195.2" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1337.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1337.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-54)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1337.6" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-54)">-dev</text><text
class="breeze-ci-image-build-r4" x="85.4" y="1337.6" textLength="109.8"
clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1362" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-55)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1362" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-55)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1362" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-55)">-dev</text><text
class="breeze-ci-image-build-r4" x="85.4" y="1362" textLength="146.4"
clip-path="url(# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1386.4"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-56)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1386.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-56)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1410.8"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-57)">╭─</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1410.8" textLength="622.2"
clip-path="url(#breeze-ci-image-build-line-57)"> Preparing cache and push (for maintainers and CI) </text><text
class="breeze-ci-image-build-r5" x="646.6" y="1410.8" textLength="793"
clip-path="url(#breeze-ci-image-build-line-57)"> [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1435.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-58)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1435.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-58)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1435.2" textLength="109.8"
clip-path="url(#breeze-ci-image-build-line-58)">-platform</text><text
class="breeze-ci-image-build-r2" x="341.6" y="1435.2" textLength="329.4" c [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1459.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1459.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-59)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1459.6" textLength="61"
clip-path="url(#breeze-ci-image-build-line-59)">-push</text><text
class="breeze-ci-image-build-r2" x="341.6" y="1459.6" textLength="353.8"
clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1484" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-60)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1484" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-60)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1484" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-60)">-empty</text><text
class="breeze-ci-image-build-r4" x="109.8" y="1484" textLength="73.2"
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1508.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-61)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1508.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-61)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1508.4" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-61)">-prepare</text><text
class="breeze-ci-image-build-r4" x="134.2" y="1508.4" textLength="158.6" cli
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1532.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">│</text><text
class="breeze-ci-image-build-r2" x="341.6" y="1532.8" textLength="1098"
clip-path="url(#breeze-ci-image-build-line-62)">image).                                     
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1557.2"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1557.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-63)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1581.6"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-64)">╭─</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1581.6" textLength="280.6"
clip-path="url(#breeze-ci-image-build-line-64)"> Github authentication </text><text
class="breeze-ci-image-build-r5" x="305" y="1581.6" textLength="1134.6"
clip-path="url(#breeze-ci-image-build-line-64)">─────────────────────────────────────────────────────────
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1606" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-65)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1606" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-65)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1606" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-65)">-github</text><text
class="breeze-ci-image-build-r4" x="122" y="1606" textLength="134.2"
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1630.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1630.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-66)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1630.4" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-66)">-github</text><text
class="breeze-ci-image-build-r4" x="122" y="1630.4" textLength="73.2" clip-pa
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1654.8"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1654.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-67)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1679.2"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-68)">╭─</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1679.2" textLength="195.2"
clip-path="url(#breeze-ci-image-build-line-68)"> Common options </text><text
class="breeze-ci-image-build-r5" x="219.6" y="1679.2" textLength="1220"
clip-path="url(#breeze-ci-image-build-line-68)">────────────────────────────────────────────────────────────────
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1703.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-69)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1703.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-69)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1703.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-69)">-verbose</text><text
class="breeze-ci-image-build-r6" x="158.6" y="1703.6" textLength="24.4" clip
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1728" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-70)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1728" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-70)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1728" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-70)">-dry</text><text
class="breeze-ci-image-build-r4" x="85.4" y="1728" textLength="48.8"
clip-path="url(#b [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1752.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-71)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1752.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-71)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1752.4" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-71)">-answer</text><text
class="breeze-ci-image-build-r6" x="158.6" y="1752.4" textLength="24.4" clip-
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1776.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-72)">│</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1776.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-72)">-</text><text
class="breeze-ci-image-build-r4" x="36.6" y="1776.8" textLength="61"
clip-path="url(#breeze-ci-image-build-line-72)">-help</text><text
class="breeze-ci-image-build-r6" x="158.6" y="1776.8" textLength="24.4"
clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1801.2"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-73)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1801.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-73)">
+</text><text class="breeze-ci-image-build-r4" x="0" y="142" textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-5)">╭─</text><text
class="breeze-ci-image-build-r4" x="24.4" y="142" textLength="158.6"
clip-path="url(#breeze-ci-image-build-line-5)"> Basic usage </text><text
class="breeze-ci-image-build-r4" x="183" y="142" textLength="1256.6"
clip-path="url(#breeze-ci-image-build-line-5)">───────────────────────────────────────────────────────────────────────────────
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="166.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-6)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="166.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-6)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="166.4" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-6)">-python</text><text
class="breeze-ci-image-build-r6" x="427" y="166.4" textLength="24.4"
clip-path="url [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="190.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-7)">│</text><text
class="breeze-ci-image-build-r7" x="475.8" y="190.8" textLength="732"
clip-path="url(#breeze-ci-image-build-line-7)">(>3.8< | 3.9 | 3.10 | 3.11)                            
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="215.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-8)">│</text><text
class="breeze-ci-image-build-r4" x="475.8" y="215.2" textLength="732"
clip-path="url(#breeze-ci-image-build-line-8)">[default: 3.8]                                    
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="239.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-9)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="239.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-9)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="239.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-9)">-upgrade</text><text
class="breeze-ci-image-build-r5" x="134.2" y="239.6" textLength="268.4"
clip-path= [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="264" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-10)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="264" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-10)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="264" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-10)">-upgrade</text><text
class="breeze-ci-image-build-r5" x="134.2" y="264" textLength="134.2"
clip-path="url( [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="288.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-11)">│</text><text
class="breeze-ci-image-build-r2" x="475.8" y="288.4" textLength="963.8"
clip-path="url(#breeze-ci-image-build-line-11)">fails.                                     &#
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="312.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-12)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="312.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-12)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="312.8" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-12)">-image</text><text
class="breeze-ci-image-build-r5" x="109.8" y="312.8" textLength="48.8"
clip-path= [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="337.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-13)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="337.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-13)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="337.2" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-13)">-tag</text><text
class="breeze-ci-image-build-r5" x="85.4" y="337.2" textLength="122"
clip-path="url [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="361.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-14)">│</text><text
class="breeze-ci-image-build-r2" x="475.8" y="361.6" textLength="414.8"
clip-path="url(#breeze-ci-image-build-line-14)">when you build or pull image with </text><text
class="breeze-ci-image-build-r5" x="890.6" y="361.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-14)">-</text><text class="breeze-c
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="386" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-15)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="386" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-15)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="386" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-15)">-docker</text><text
class="breeze-ci-image-build-r5" x="122" y="386" textLength="73.2"
clip-path="url(#bre [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="410.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-16)">│</text><text
class="breeze-ci-image-build-r4" x="475.8" y="410.4" textLength="549"
clip-path="url(#breeze-ci-image-build-line-16)">[default: registry]                          </text><text
class="breeze-ci-image-build-r4" x="145 [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="434.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="434.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-17)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="434.8" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-17)">-force</text><text
class="breeze-ci-image-build-r5" x="109.8" y="434.8" textLength="73.2"
clip-path= [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="459.2"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-18)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="459.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-18)">
+</text><text class="breeze-ci-image-build-r4" x="0" y="483.6"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-19)">╭─</text><text
class="breeze-ci-image-build-r4" x="24.4" y="483.6" textLength="353.8"
clip-path="url(#breeze-ci-image-build-line-19)"> Building images in parallel </text><text
class="breeze-ci-image-build-r4" x="378.2" y="483.6" textLength="1061.4"
clip-path="url(#breeze-ci-image-build-line-19)">──────────────────────────────────────────
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="508" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-20)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="508" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-20)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="508" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-20)">-run</text><text
class="breeze-ci-image-build-r5" x="85.4" y="508" textLength="146.4"
clip-path="url(#bree [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="532.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-21)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="532.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-21)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="532.4" textLength="146.4"
clip-path="url(#breeze-ci-image-build-line-21)">-parallelism</text><text
class="breeze-ci-image-build-r2" x="378.2" y="532.4" textLength="915" clip [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="556.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">│</text><text
class="breeze-ci-image-build-r7" x="378.2" y="556.8" textLength="915"
clip-path="url(#breeze-ci-image-build-line-22)">(INTEGER RANGE)                                   &#
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="581.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-23)">│</text><text
class="breeze-ci-image-build-r4" x="378.2" y="581.2" textLength="915"
clip-path="url(#breeze-ci-image-build-line-23)">[default: 4; 1<=x<=8]                                
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="605.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-24)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="605.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-24)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="605.6" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-24)">-python</text><text
class="breeze-ci-image-build-r5" x="122" y="605.6" textLength="109.8"
clip-path= [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="630" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-25)">│</text><text
class="breeze-ci-image-build-r4" x="378.2" y="630" textLength="951.6"
clip-path="url(#breeze-ci-image-build-line-25)">[default: 3.8 3.9 3.10 3.11]                               
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="654.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="654.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-26)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="654.4" textLength="61"
clip-path="url(#breeze-ci-image-build-line-26)">-skip</text><text
class="breeze-ci-image-build-r5" x="97.6" y="654.4" textLength="97.6"
clip-path="url [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="678.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-27)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="678.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-27)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="678.8" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-27)">-debug</text><text
class="breeze-ci-image-build-r5" x="109.8" y="678.8" textLength="122"
clip-path=" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="703.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="703.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-28)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="703.2" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-28)">-include</text><text
class="breeze-ci-image-build-r5" x="134.2" y="703.2" textLength="195.2" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="727.6"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="727.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-29)">
+</text><text class="breeze-ci-image-build-r4" x="0" y="752" textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-30)">╭─</text><text
class="breeze-ci-image-build-r4" x="24.4" y="752" textLength="439.2"
clip-path="url(#breeze-ci-image-build-line-30)"> Advanced options (for power users) </text><text
class="breeze-ci-image-build-r4" x="463.6" y="752" textLength="976"
clip-path="url(#breeze-ci-image-build-line-30)">───────────────────────────────────────
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="776.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-31)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="776.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-31)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="776.4" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-31)">-builder</text><text
class="breeze-ci-image-build-r2" x="463.6" y="776.4" textLength="756.4" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="800.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-32)">│</text><text
class="breeze-ci-image-build-r4" x="463.6" y="800.8" textLength="756.4"
clip-path="url(#breeze-ci-image-build-line-32)">[default: autodetect]                                  
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="825.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="825.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-33)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="825.2" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-33)">-install</text><text
class="breeze-ci-image-build-r5" x="134.2" y="825.2" textLength="280.6" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="849.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-34)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="849.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-34)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="849.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-34)">-airflow</text><text
class="breeze-ci-image-build-r5" x="134.2" y="849.6" textLength="256.2" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="874" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-35)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="874" textLength="976"
clip-path="url(#breeze-ci-image-build-line-35)">file. It could be full remote URL to the location file, or local file placed in </text><text
class="breeze-ci-image-build-r4" x="1451.8" y="874" textLength= [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="898.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="898.4" textLength="976"
clip-path="url(#breeze-ci-image-build-line-36)">`docker-context-files` (in this case it has to start with                      
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="922.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-37)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="922.8" textLength="976"
clip-path="url(#breeze-ci-image-build-line-37)">/opt/airflow/docker-context-files).                                 
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="947.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-38)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="947.2" textLength="976"
clip-path="url(#breeze-ci-image-build-line-38)">(TEXT)                                     
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="971.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-39)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="971.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-39)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="971.6" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-39)">-airflow</text><text
class="breeze-ci-image-build-r5" x="134.2" y="971.6" textLength="207.4" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="996" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-40)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="996" textLength="866.2"
clip-path="url(#breeze-ci-image-build-line-40)">(constraints-source-providers | constraints | constraints-no-providers)</text><text
class="breeze-ci-image-build-r4" x="1451.8" y="996" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-40)">│</text><tex [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1020.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">│</text><text
class="breeze-ci-image-build-r4" x="463.6" y="1020.4" textLength="866.2"
clip-path="url(#breeze-ci-image-build-line-41)">[default: constraints-source-providers]                              
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1044.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1044.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-42)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1044.8" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-42)">-airflow</text><text
class="breeze-ci-image-build-r5" x="134.2" y="1044.8" textLength="268.4" cli
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1069.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1069.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-43)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1069.2" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-43)">-python</text><text
class="breeze-ci-image-build-r5" x="122" y="1069.2" textLength="73.2" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1093.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="1093.6" textLength="976"
clip-path="url(#breeze-ci-image-build-line-44)">something like: python:VERSION-slim-bullseye.                             &
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1118" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-45)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="1118" textLength="976"
clip-path="url(#breeze-ci-image-build-line-45)">(TEXT)                                      
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1142.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1142.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-46)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1142.4" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-46)">-additional</text><text
class="breeze-ci-image-build-r5" x="170.8" y="1142.4" textLength="146.4" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1166.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-47)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1166.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-47)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1166.8" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-47)">-additional</text><text
class="breeze-ci-image-build-r5" x="170.8" y="1166.8" textLength="85.4" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1191.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-48)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1191.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-48)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1191.2" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-48)">-additional</text><text
class="breeze-ci-image-build-r5" x="170.8" y="1191.2" textLength="219.6" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1215.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">│</text><text
class="breeze-ci-image-build-r2" x="463.6" y="1215.6" textLength="976"
clip-path="url(#breeze-ci-image-build-line-49)">itself).                                     
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1240" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-50)">│</text><text
class="breeze-ci-image-build-r7" x="463.6" y="1240" textLength="976"
clip-path="url(#breeze-ci-image-build-line-50)">(TEXT)                                      
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1264.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-51)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1264.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-51)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1264.4" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-51)">-additional</text><text
class="breeze-ci-image-build-r5" x="170.8" y="1264.4" textLength="158.6" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1288.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-52)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1288.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-52)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1288.8" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-52)">-additional</text><text
class="breeze-ci-image-build-r5" x="170.8" y="1288.8" textLength="146.4" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1313.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1313.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-53)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1313.2" textLength="134.2"
clip-path="url(#breeze-ci-image-build-line-53)">-additional</text><text
class="breeze-ci-image-build-r5" x="170.8" y="1313.2" textLength="195.2" [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1337.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1337.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-54)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1337.6" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-54)">-dev</text><text
class="breeze-ci-image-build-r5" x="85.4" y="1337.6" textLength="109.8"
clip-pat [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1362" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-55)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1362" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-55)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1362" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-55)">-dev</text><text
class="breeze-ci-image-build-r5" x="85.4" y="1362" textLength="146.4"
clip-path="url(# [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1386.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-56)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1386.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-56)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1386.4" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-56)">-version</text><text
class="breeze-ci-image-build-r5" x="134.2" y="1386.4" textLength="195.2" cli
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1410.8"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-57)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1410.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-57)">
+</text><text class="breeze-ci-image-build-r4" x="0" y="1435.2"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-58)">╭─</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1435.2" textLength="622.2"
clip-path="url(#breeze-ci-image-build-line-58)"> Preparing cache and push (for maintainers and CI) </text><text
class="breeze-ci-image-build-r4" x="646.6" y="1435.2" textLength="793"
clip-path="url(#breeze-ci-image-build-line-58)"> [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1459.6"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1459.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-59)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1459.6" textLength="109.8"
clip-path="url(#breeze-ci-image-build-line-59)">-platform</text><text
class="breeze-ci-image-build-r2" x="341.6" y="1459.6" textLength="329.4" c [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1484" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-60)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1484" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-60)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1484" textLength="61"
clip-path="url(#breeze-ci-image-build-line-60)">-push</text><text
class="breeze-ci-image-build-r2" x="341.6" y="1484" textLength="353.8"
clip-path="url(# [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1508.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-61)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1508.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-61)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1508.4" textLength="73.2"
clip-path="url(#breeze-ci-image-build-line-61)">-empty</text><text
class="breeze-ci-image-build-r5" x="109.8" y="1508.4" textLength="73.2" clip-p
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1532.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1532.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-62)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1532.8" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-62)">-prepare</text><text
class="breeze-ci-image-build-r5" x="134.2" y="1532.8" textLength="158.6" cli
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1557.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-63)">│</text><text
class="breeze-ci-image-build-r2" x="341.6" y="1557.2" textLength="1098"
clip-path="url(#breeze-ci-image-build-line-63)">image).                                     
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1581.6"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-64)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1581.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-64)">
+</text><text class="breeze-ci-image-build-r4" x="0" y="1606" textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-65)">╭─</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1606" textLength="280.6"
clip-path="url(#breeze-ci-image-build-line-65)"> Github authentication </text><text
class="breeze-ci-image-build-r4" x="305" y="1606" textLength="1134.6"
clip-path="url(#breeze-ci-image-build-line-65)">───────────────────────────────────────────────────────────────
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1630.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1630.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-66)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1630.4" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-66)">-github</text><text
class="breeze-ci-image-build-r5" x="122" y="1630.4" textLength="134.2" clip-p
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1654.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-67)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1654.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-67)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1654.8" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-67)">-github</text><text
class="breeze-ci-image-build-r5" x="122" y="1654.8" textLength="73.2" clip-pa
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1679.2"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-68)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1679.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-68)">
+</text><text class="breeze-ci-image-build-r4" x="0" y="1703.6"
textLength="24.4"
clip-path="url(#breeze-ci-image-build-line-69)">╭─</text><text
class="breeze-ci-image-build-r4" x="24.4" y="1703.6" textLength="195.2"
clip-path="url(#breeze-ci-image-build-line-69)"> Common options </text><text
class="breeze-ci-image-build-r4" x="219.6" y="1703.6" textLength="1220"
clip-path="url(#breeze-ci-image-build-line-69)">────────────────────────────────────────────────────────────────
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1728" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-70)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1728" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-70)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1728" textLength="97.6"
clip-path="url(#breeze-ci-image-build-line-70)">-verbose</text><text
class="breeze-ci-image-build-r6" x="158.6" y="1728" textLength="24.4"
clip-path="u [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1752.4"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-71)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1752.4" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-71)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1752.4" textLength="48.8"
clip-path="url(#breeze-ci-image-build-line-71)">-dry</text><text
class="breeze-ci-image-build-r5" x="85.4" y="1752.4" textLength="48.8"
clip-path [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1776.8"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-72)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1776.8" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-72)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1776.8" textLength="85.4"
clip-path="url(#breeze-ci-image-build-line-72)">-answer</text><text
class="breeze-ci-image-build-r6" x="158.6" y="1776.8" textLength="24.4" clip-
[...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1801.2"
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-73)">│</text><text
class="breeze-ci-image-build-r5" x="24.4" y="1801.2" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-73)">-</text><text
class="breeze-ci-image-build-r5" x="36.6" y="1801.2" textLength="61"
clip-path="url(#breeze-ci-image-build-line-73)">-help</text><text
class="breeze-ci-image-build-r6" x="158.6" y="1801.2" textLength="24.4"
clip-path [...]
+</text><text class="breeze-ci-image-build-r4" x="0" y="1825.6"
textLength="1464"
clip-path="url(#breeze-ci-image-build-line-74)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-ci-image-build-r2" x="1464" y="1825.6" textLength="12.2"
clip-path="url(#breeze-ci-image-build-line-74)">
</text>
</g>
</g>
diff --git a/images/breeze/output_prod-image_build.svg
b/images/breeze/output_prod-image_build.svg
index 882393e5d0..2b4931a8da 100644
--- a/images/breeze/output_prod-image_build.svg
+++ b/images/breeze/output_prod-image_build.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2343.6"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2368.0"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-prod-image-build-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="2292.6" />
+ <rect x="0" y="0" width="1463.0" height="2317.0" />
</clipPath>
<clipPath id="breeze-prod-image-build-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -324,9 +324,12 @@
<clipPath id="breeze-prod-image-build-line-92">
<rect x="0" y="2246.3" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-prod-image-build-line-93">
+ <rect x="0" y="2270.7" width="1464" height="24.65"/>
+ </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="2341.6" rx="8"/><text
class="breeze-prod-image-build-title" fill="#c5c8c6" text-anchor="middle"
x="740" y="27">Command: prod-image build</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="2366" rx="8"/><text
class="breeze-prod-image-build-title" fill="#c5c8c6" text-anchor="middle"
x="740" y="27">Command: prod-image build</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -401,35 +404,36 @@
</text><text class="breeze-prod-image-build-r4" x="0" y="1532.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-62)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1532.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-62)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1532.8" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-62)">-runtime</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1532.8" textLeng [...]
</text><text class="breeze-prod-image-build-r4" x="0" y="1557.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-63)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1557.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-63)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1557.2" textLength="48.8"
clip-path="url(#breeze-prod-image-build-line-63)">-dev</text><text
class="breeze-prod-image-build-r5" x="85.4" y="1557.2" textLength="1 [...]
</text><text class="breeze-prod-image-build-r4" x="0" y="1581.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-64)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1581.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-64)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1581.6" textLength="48.8"
clip-path="url(#breeze-prod-image-build-line-64)">-dev</text><text
class="breeze-prod-image-build-r5" x="85.4" y="1581.6" textLength="1 [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1606"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-65)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="1606" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-65)">
-</text><text class="breeze-prod-image-build-r4" x="0" y="1630.4"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-66)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="1630.4" textLength="707.6"
clip-path="url(#breeze-prod-image-build-line-66)"> Customization options (for specific customization needs) </text><text
class="breeze-prod-image-build-r4" x="732" y="1630.4" textLength="707.6"
clip-path="url(#breeze-prod-image-build-l [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1654.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-67)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1654.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-67)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1654.8" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-67)">-install</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1654.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1679.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-68)">│</text><text
class="breeze-prod-image-build-r2" x="536.8" y="1679.2" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-68)">Implies </text><text
class="breeze-prod-image-build-r5" x="634.4" y="1679.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-68)">-</text><text
class="breeze-prod-image-build-r5" x="646.6" y="1679.2" t [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1703.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-69)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1703.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-69)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1703.6" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-69)">-cleanup</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1703.6" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1728"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-70)">│</text><text
class="breeze-prod-image-build-r2" x="536.8" y="1728" textLength="170.8"
clip-path="url(#breeze-prod-image-build-line-70)">together with </text><text
class="breeze-prod-image-build-r5" x="707.6" y="1728" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-70)">-</text><text
class="breeze-prod-image-build-r5" x="719.8" y="172 [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1752.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-71)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1752.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-71)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1752.4" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-71)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1752.4" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1776.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-72)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1776.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-72)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1776.8" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-72)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1776.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1801.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-73)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1801.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-73)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1801.2" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-73)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1801.2" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1825.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-74)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1825.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-74)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1825.6" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-74)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1825.6" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1850"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-75)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1850" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-75)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1850" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-75)">-install</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1850" textLength="219. [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1874.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-76)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1874.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-76)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1874.4" textLength="158.6"
clip-path="url(#breeze-prod-image-build-line-76)">-installation</text><text
class="breeze-prod-image-build-r5" x="195.2" y="1874.4" te [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1898.8"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-77)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="1898.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-77)">
-</text><text class="breeze-prod-image-build-r4" x="0" y="1923.2"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-78)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="1923.2" textLength="622.2"
clip-path="url(#breeze-prod-image-build-line-78)"> Preparing cache and push (for maintainers and CI) </text><text
class="breeze-prod-image-build-r4" x="646.6" y="1923.2" textLength="793"
clip-path="url(#breeze-prod-image-buil [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1947.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-79)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1947.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-79)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1947.6" textLength="109.8"
clip-path="url(#breeze-prod-image-build-line-79)">-platform</text><text
class="breeze-prod-image-build-r2" x="341.6" y="1947.6" textLe [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1972"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-80)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1972" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-80)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1972" textLength="61"
clip-path="url(#breeze-prod-image-build-line-80)">-push</text><text
class="breeze-prod-image-build-r2" x="341.6" y="1972" textLength="353.8" cl
[...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="1996.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-81)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1996.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-81)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1996.4" textLength="73.2"
clip-path="url(#breeze-prod-image-build-line-81)">-empty</text><text
class="breeze-prod-image-build-r5" x="109.8" y="1996.4" textLength [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2020.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-82)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2020.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-82)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2020.8" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-82)">-prepare</text><text
class="breeze-prod-image-build-r5" x="134.2" y="2020.8" textLeng [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2045.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-83)">│</text><text
class="breeze-prod-image-build-r2" x="341.6" y="2045.2" textLength="1098"
clip-path="url(#breeze-prod-image-build-line-83)">image).                                   
[...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2069.6"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-84)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="2069.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-84)">
-</text><text class="breeze-prod-image-build-r4" x="0" y="2094"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-85)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="2094" textLength="280.6"
clip-path="url(#breeze-prod-image-build-line-85)"> Github authentication </text><text
class="breeze-prod-image-build-r4" x="305" y="2094" textLength="1134.6"
clip-path="url(#breeze-prod-image-build-line-85)">───────────────────────────────────────────────────
[...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2118.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-86)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2118.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-86)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2118.4" textLength="85.4"
clip-path="url(#breeze-prod-image-build-line-86)">-github</text><text
class="breeze-prod-image-build-r5" x="122" y="2118.4" textLength= [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2142.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-87)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2142.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-87)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2142.8" textLength="85.4"
clip-path="url(#breeze-prod-image-build-line-87)">-github</text><text
class="breeze-prod-image-build-r5" x="122" y="2142.8" textLength= [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2167.2"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-88)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="2167.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-88)">
-</text><text class="breeze-prod-image-build-r4" x="0" y="2191.6"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-89)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="2191.6" textLength="195.2"
clip-path="url(#breeze-prod-image-build-line-89)"> Common options </text><text
class="breeze-prod-image-build-r4" x="219.6" y="2191.6" textLength="1220"
clip-path="url(#breeze-prod-image-build-line-89)">────────────────────────────────────────────────────
[...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2216"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-90)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2216" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-90)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2216" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-90)">-verbose</text><text
class="breeze-prod-image-build-r6" x="158.6" y="2216" textLength="24.4 [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2240.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-91)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2240.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-91)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2240.4" textLength="48.8"
clip-path="url(#breeze-prod-image-build-line-91)">-dry</text><text
class="breeze-prod-image-build-r5" x="85.4" y="2240.4" textLength="4 [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2264.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-92)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2264.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-92)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2264.8" textLength="61"
clip-path="url(#breeze-prod-image-build-line-92)">-help</text><text
class="breeze-prod-image-build-r6" x="158.6" y="2264.8" textLength="2 [...]
-</text><text class="breeze-prod-image-build-r4" x="0" y="2289.2"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-93)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="2289.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-93)">
+</text><text class="breeze-prod-image-build-r4" x="0" y="1606"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-65)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1606" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-65)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1606" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-65)">-version</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1606" textLength="195. [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1630.4"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-66)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="1630.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-66)">
+</text><text class="breeze-prod-image-build-r4" x="0" y="1654.8"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-67)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="1654.8" textLength="707.6"
clip-path="url(#breeze-prod-image-build-line-67)"> Customization options (for specific customization needs) </text><text
class="breeze-prod-image-build-r4" x="732" y="1654.8" textLength="707.6"
clip-path="url(#breeze-prod-image-build-l [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1679.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-68)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1679.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-68)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1679.2" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-68)">-install</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1679.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1703.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-69)">│</text><text
class="breeze-prod-image-build-r2" x="536.8" y="1703.6" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-69)">Implies </text><text
class="breeze-prod-image-build-r5" x="634.4" y="1703.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-69)">-</text><text
class="breeze-prod-image-build-r5" x="646.6" y="1703.6" t [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1728"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-70)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1728" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-70)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1728" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-70)">-cleanup</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1728" textLength="97.6 [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1752.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-71)">│</text><text
class="breeze-prod-image-build-r2" x="536.8" y="1752.4" textLength="170.8"
clip-path="url(#breeze-prod-image-build-line-71)">together with </text><text
class="breeze-prod-image-build-r5" x="707.6" y="1752.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-71)">-</text><text
class="breeze-prod-image-build-r5" x="719.8" [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1776.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-72)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1776.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-72)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1776.8" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-72)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1776.8" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1801.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-73)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1801.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-73)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1801.2" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-73)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1801.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1825.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-74)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1825.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-74)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1825.6" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-74)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1825.6" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1850"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-75)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1850" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-75)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1850" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-75)">-disable</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1850" textLength="231. [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1874.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-76)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1874.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-76)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1874.4" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-76)">-install</text><text
class="breeze-prod-image-build-r5" x="134.2" y="1874.4" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1898.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-77)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1898.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-77)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1898.8" textLength="158.6"
clip-path="url(#breeze-prod-image-build-line-77)">-installation</text><text
class="breeze-prod-image-build-r5" x="195.2" y="1898.8" te [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1923.2"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-78)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="1923.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-78)">
+</text><text class="breeze-prod-image-build-r4" x="0" y="1947.6"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-79)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="1947.6" textLength="622.2"
clip-path="url(#breeze-prod-image-build-line-79)"> Preparing cache and push (for maintainers and CI) </text><text
class="breeze-prod-image-build-r4" x="646.6" y="1947.6" textLength="793"
clip-path="url(#breeze-prod-image-buil [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1972"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-80)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1972" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-80)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1972" textLength="109.8"
clip-path="url(#breeze-prod-image-build-line-80)">-platform</text><text
class="breeze-prod-image-build-r2" x="341.6" y="1972" textLength="32 [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="1996.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-81)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="1996.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-81)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="1996.4" textLength="61"
clip-path="url(#breeze-prod-image-build-line-81)">-push</text><text
class="breeze-prod-image-build-r2" x="341.6" y="1996.4" textLength="3 [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2020.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-82)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2020.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-82)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2020.8" textLength="73.2"
clip-path="url(#breeze-prod-image-build-line-82)">-empty</text><text
class="breeze-prod-image-build-r5" x="109.8" y="2020.8" textLength [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2045.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-83)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2045.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-83)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2045.2" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-83)">-prepare</text><text
class="breeze-prod-image-build-r5" x="134.2" y="2045.2" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2069.6"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-84)">│</text><text
class="breeze-prod-image-build-r2" x="341.6" y="2069.6" textLength="1098"
clip-path="url(#breeze-prod-image-build-line-84)">image).                                   
[...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2094"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-85)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="2094" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-85)">
+</text><text class="breeze-prod-image-build-r4" x="0" y="2118.4"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-86)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="2118.4" textLength="280.6"
clip-path="url(#breeze-prod-image-build-line-86)"> Github authentication </text><text
class="breeze-prod-image-build-r4" x="305" y="2118.4" textLength="1134.6"
clip-path="url(#breeze-prod-image-build-line-86)">─────────────────────────────────────────────
[...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2142.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-87)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2142.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-87)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2142.8" textLength="85.4"
clip-path="url(#breeze-prod-image-build-line-87)">-github</text><text
class="breeze-prod-image-build-r5" x="122" y="2142.8" textLength= [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2167.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-88)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2167.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-88)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2167.2" textLength="85.4"
clip-path="url(#breeze-prod-image-build-line-88)">-github</text><text
class="breeze-prod-image-build-r5" x="122" y="2167.2" textLength= [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2191.6"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-89)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="2191.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-89)">
+</text><text class="breeze-prod-image-build-r4" x="0" y="2216"
textLength="24.4"
clip-path="url(#breeze-prod-image-build-line-90)">╭─</text><text
class="breeze-prod-image-build-r4" x="24.4" y="2216" textLength="195.2"
clip-path="url(#breeze-prod-image-build-line-90)"> Common options </text><text
class="breeze-prod-image-build-r4" x="219.6" y="2216" textLength="1220"
clip-path="url(#breeze-prod-image-build-line-90)">──────────────────────────────────────────────────────────
[...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2240.4"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-91)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2240.4" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-91)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2240.4" textLength="97.6"
clip-path="url(#breeze-prod-image-build-line-91)">-verbose</text><text
class="breeze-prod-image-build-r6" x="158.6" y="2240.4" textLeng [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2264.8"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-92)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2264.8" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-92)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2264.8" textLength="48.8"
clip-path="url(#breeze-prod-image-build-line-92)">-dry</text><text
class="breeze-prod-image-build-r5" x="85.4" y="2264.8" textLength="4 [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2289.2"
textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-93)">│</text><text
class="breeze-prod-image-build-r5" x="24.4" y="2289.2" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-93)">-</text><text
class="breeze-prod-image-build-r5" x="36.6" y="2289.2" textLength="61"
clip-path="url(#breeze-prod-image-build-line-93)">-help</text><text
class="breeze-prod-image-build-r6" x="158.6" y="2289.2" textLength="2 [...]
+</text><text class="breeze-prod-image-build-r4" x="0" y="2313.6"
textLength="1464"
clip-path="url(#breeze-prod-image-build-line-94)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-prod-image-build-r2" x="1464" y="2313.6" textLength="12.2"
clip-path="url(#breeze-prod-image-build-line-94)">
</text>
</g>
</g>
diff --git a/setup.py b/setup.py
index e6ef7ab871..6f29dc1f47 100644
--- a/setup.py
+++ b/setup.py
@@ -61,7 +61,35 @@ DEPS = "deps"
CURRENT_PYTHON_VERSION = f"{sys.version_info.major}.{sys.version_info.minor}"
-#
+def apply_pypi_suffix_to_airflow_packages(dependencies: list[str]) -> None:
+ """
+ Looks through the list of dependencies, finds which one are airflow or
airflow providers packages
+ and applies the version suffix to those of them that do not have the
suffix applied yet.
+
+ :param dependencies: list of dependencies to add suffix to
+ """
+ for i in range(len(dependencies)):
+ dependency = dependencies[i]
+ if dependency.startswith("apache-airflow"):
+ # in case we want to depend on other airflow package, the chance
is the package
+ # has not yet been released to PyPI and we only see it as a local
package that is
+ # being installed with .dev0 suffix in CI. Unfortunately, there is
no way in standard
+ # PEP-440 compliant way to specify version that would be both -
releasable, and
+ # testable to install on CI with .dev0 or .rc suffixes. We could
add `--pre` flag to
+ # enable it, but `--pre` flag is not selective and will work for
all packages so
+ # we would automatically install all "pre-release" packages for
all packages that
+ # we install from PyPI - and this is definitely not what we want.
So in order to
+ # install only airflow packages that are available in sources in
.dev0 or .rc version
+ # we need to dynamically modify the dependencies here.
+ if ">=" in dependency:
+ package, version = dependency.split(">=")
+ version_spec = f">={version}"
+ version_suffix = os.environ.get("VERSION_SUFFIX_FOR_PYPI")
+ if version_suffix and version_suffix not in version_spec:
+ version_spec += version_suffix
+ dependencies[i] = f"{package}{version_spec}"
+
+
# NOTE! IN Airflow 2.4.+ dependencies for providers are maintained in
`provider.yaml` files for each
# provider separately. They are loaded here and if you want to modify them,
you need to modify
# corresponding provider.yaml file.
@@ -74,11 +102,13 @@ def fill_provider_dependencies() -> dict[str, dict[str,
list[str]]]:
try:
with AIRFLOW_SOURCES_ROOT.joinpath("generated",
"provider_dependencies.json").open() as f:
dependencies = json.load(f)
- return {
- key: value
- for key, value in dependencies.items()
- if CURRENT_PYTHON_VERSION not in value["excluded-python-versions"]
or skip_python_version_check
- }
+ provider_dict = {}
+ for key, value in dependencies.items():
+ if value.get(DEPS):
+ apply_pypi_suffix_to_airflow_packages(value[DEPS])
+ if CURRENT_PYTHON_VERSION not in value["excluded-python-versions"]
or skip_python_version_check:
+ provider_dict[key] = value
+ return provider_dict
except Exception as e:
print(f"Exception while loading provider dependencies {e}")
# we can ignore loading dependencies when they are missing - they are
only used to generate