You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2022/05/09 09:59:26 UTC
[airflow] branch main updated: tHe output of commands of Breeze are only generated when they change (#23570)
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 7c7b001a63 tHe output of commands of Breeze are only generated when they change (#23570)
7c7b001a63 is described below
commit 7c7b001a6399f7e6aa0f08226749ad2f8d2ce3bc
Author: Jarek Potiuk <ja...@polidea.com>
AuthorDate: Mon May 9 11:59:11 2022 +0200
tHe output of commands of Breeze are only generated when they change (#23570)
Previously we generated output of all the commands from Breeze always,
hoping that they will be the same, but rich already had two changes
in the format of the SVG files which made the output different and
breaking our PRs.
Temporarily we pinned rich to fix the output, but better solution is
to get the hash of all the configuration options and see if it changed,
and only run generation when it did. This way we keep automated
generation on pre-commit but we are protected from accidental change
of the output.
We also remove the rich limits and regenerated all svg files to ones
generated by 12.4.0. Also found a way to run the check if we should
run generation at all in pre-commit without prior installing breeze.
Fixes: #22908
---
.pre-commit-config.yaml | 42 +--
BREEZE.rst | 11 +
dev/breeze/README.md | 2 +-
dev/breeze/setup.cfg | 2 +-
.../configuration_and_maintenance_commands.py | 30 +-
.../commands/release_management_commands.py | 2 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 3 +
images/breeze/output-build-docs.svg | 281 +++++++----------
images/breeze/output-build-image.svg | 275 +++++++----------
images/breeze/output-build-prod-image.svg | 309 ++++++++-----------
images/breeze/output-cleanup.svg | 201 ++++--------
images/breeze/output-command-hash-export.svg | 61 ++++
images/breeze/output-commands-hash.txt | 1 +
images/breeze/output-commands.svg | 337 ++++++++-------------
images/breeze/output-config.svg | 213 +++++--------
images/breeze/output-docker-compose-tests.svg | 205 ++++---------
images/breeze/output-exec.svg | 189 ++++--------
images/breeze/output-find-newer-dependencies.svg | 207 +++++--------
images/breeze/output-fix-ownership.svg | 189 ++++--------
images/breeze/output-free-space.svg | 193 ++++--------
images/breeze/output-generate-constraints.svg | 227 +++++---------
images/breeze/output-prepare-airflow-package.svg | 203 ++++---------
.../output-prepare-provider-documentation.svg | 223 +++++---------
images/breeze/output-prepare-provider-packages.svg | 227 +++++---------
images/breeze/output-pull-image.svg | 227 +++++---------
images/breeze/output-pull-prod-image.svg | 227 +++++---------
images/breeze/output-release-prod-images.svg | 225 +++++---------
images/breeze/output-resource-check.svg | 189 ++++--------
images/breeze/output-self-upgrade.svg | 193 ++++--------
images/breeze/output-setup-autocomplete.svg | 199 ++++--------
images/breeze/output-shell.svg | 263 ++++++----------
images/breeze/output-start-airflow.svg | 267 ++++++----------
images/breeze/output-static-checks.svg | 271 ++++++-----------
images/breeze/output-stop.svg | 195 ++++--------
images/breeze/output-tests.svg | 207 +++++--------
images/breeze/output-verify-image.svg | 205 ++++---------
images/breeze/output-verify-prod-image.svg | 205 ++++---------
images/breeze/output-verify-provider-packages.svg | 226 +++++---------
images/breeze/output-version.svg | 187 ++++--------
.../ci/pre_commit/pre_commit_breeze_cmd_line.py | 37 ++-
setup.cfg | 2 +-
41 files changed, 2483 insertions(+), 4475 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index bc736d0028..c8eb08b0bc 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -187,7 +187,7 @@ repos:
exclude: ^airflow/_vendor/
- id: trailing-whitespace
name: Remove trailing whitespace at end of line
- exclude: ^airflow/_vendor/
+ exclude: ^airflow/_vendor/|^images/breeze/output.*$
- id: fix-encoding-pragma
name: Remove encoding header from python files
exclude: ^airflow/_vendor/
@@ -324,7 +324,7 @@ repos:
files: ^setup\.cfg$|^setup\.py$
pass_filenames: false
entry: ./scripts/ci/pre_commit/pre_commit_check_order_setup.py
- additional_dependencies: ['rich==12.2.0']
+ additional_dependencies: ['rich']
- id: check-extra-packages-references
name: Checks setup extra packages
description: Checks if all the libraries in setup.py are listed in extra-packages-ref.rst file
@@ -332,7 +332,7 @@ repos:
files: ^setup\.py$|^docs/apache-airflow/extra-packages-ref\.rst$
pass_filenames: false
entry: ./scripts/ci/pre_commit/pre_commit_check_setup_extra_packages_ref.py
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
# This check might be removed when min-airflow-version in providers is 2.2
- id: check-airflow-2-1-compatibility
name: Check that providers are 2.1 compatible.
@@ -340,14 +340,14 @@ repos:
language: python
pass_filenames: true
files: ^airflow/providers/.*\.py$
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: update-breeze-file
name: Update output of breeze commands in BREEZE.rst
entry: ./scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
language: python
files: ^BREEZE\.rst$|^dev/breeze/.*$
pass_filenames: false
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich', 'rich-click']
- id: update-local-yml-file
name: Update mounts in the local yml file
entry: ./scripts/ci/pre_commit/pre_commit_local_yml_mounts.sh
@@ -379,7 +379,7 @@ repos:
language: python
files: ^Dockerfile$
pass_filenames: false
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: update-supported-versions
name: Updates supported versions in documentation
entry: ./scripts/ci/pre_commit/pre_commit_supported_versions.py
@@ -582,7 +582,7 @@ repos:
- 'jsonschema>=3.2.0,<5.0.0'
- 'tabulate==0.8.8'
- 'jsonpath-ng==1.5.3'
- - 'rich==12.3.0'
+ - 'rich'
- id: check-pre-commit-information-consistent
name: Update information about pre-commit hooks and verify ids and names
entry: ./scripts/ci/pre_commit/pre_commit_check_pre_commit_hooks.py
@@ -590,7 +590,7 @@ repos:
- --max-length=70
language: python
files: ^\.pre-commit-config\.yaml$|^scripts/ci/pre_commit/pre_commit_check_pre_commit_hook_names\.py$
- additional_dependencies: ['pyyaml', 'jinja2', 'black==22.3.0', 'tabulate', 'rich==12.3.0']
+ additional_dependencies: ['pyyaml', 'jinja2', 'black==22.3.0', 'tabulate', 'rich']
require_serial: true
pass_filenames: false
- id: check-airflow-providers-have-extras
@@ -600,7 +600,7 @@ repos:
files: ^setup\.py$|^airflow/providers/.*\.py$
pass_filenames: false
require_serial: true
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: update-breeze-readme-config-hash
name: Update Breeze README.md with config files hash
language: python
@@ -615,7 +615,7 @@ repos:
files: ^dev/breeze/.*$
pass_filenames: false
require_serial: true
- additional_dependencies: ['click', 'rich==12.3.0']
+ additional_dependencies: ['click', 'rich']
- id: check-system-tests-present
name: Check if system tests have required segments of code
entry: ./scripts/ci/pre_commit/pre_commit_check_system_tests.py
@@ -623,7 +623,7 @@ repos:
files: ^tests/system/.*/example_[^/]*.py$
exclude: ^tests/system/providers/google/bigquery/example_bigquery_queries\.py$
pass_filenames: true
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: lint-markdown
name: Run markdownlint
description: Checks the style of Markdown files.
@@ -714,7 +714,7 @@ repos:
language: python
pass_filenames: true
files: ^\.github/workflows/.*\.yml$
- additional_dependencies: ['PyYAML', 'rich==12.3.0']
+ additional_dependencies: ['PyYAML', 'rich']
- id: check-docstring-param-types
name: Check that docstrings do not specify param types
entry: ./scripts/ci/pre_commit/pre_commit_docstring_param_type.py
@@ -722,7 +722,7 @@ repos:
pass_filenames: true
files: \.py$
exclude: ^airflow/_vendor/
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: lint-chart-schema
name: Lint chart/values.schema.json file
entry: ./scripts/ci/pre_commit/pre_commit_chart_schema.py
@@ -757,7 +757,7 @@ repos:
entry: ./scripts/ci/pre_commit/pre_commit_mypy.py
files: ^dev/.*\.py$
require_serial: true
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: run-mypy
name: Run mypy for core
language: python
@@ -765,14 +765,14 @@ repos:
files: \.py$
exclude: ^provider_packages|^docs|^airflow/_vendor/|^airflow/providers|^airflow/migrations|^dev
require_serial: true
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: run-mypy
name: Run mypy for providers
language: python
entry: ./scripts/ci/pre_commit/pre_commit_mypy.py --namespace-packages
files: ^airflow/providers/.*\.py$
require_serial: true
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: run-mypy
name: Run mypy for /docs/ folder
language: python
@@ -780,7 +780,7 @@ repos:
files: ^docs/.*\.py$
exclude: ^docs/rtd-deprecation
require_serial: true
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: run-flake8
name: Run flake8
language: python
@@ -788,7 +788,7 @@ repos:
files: \.py$
pass_filenames: true
exclude: ^airflow/_vendor/
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: lint-javascript
name: ESLint against airflow/ui
language: python
@@ -796,7 +796,7 @@ repos:
files: ^airflow/ui/
entry: ./scripts/ci/pre_commit/pre_commit_ui_lint.py
pass_filenames: false
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: lint-javascript
name: ESLint against current UI JavaScript files
language: python
@@ -804,12 +804,12 @@ repos:
files: ^airflow/www/static/js/
entry: ./scripts/ci/pre_commit/pre_commit_www_lint.py
pass_filenames: false
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
- id: update-migration-references
name: Update migration ref doc
language: python
entry: ./scripts/ci/pre_commit/pre_commit_migration_reference.py
pass_filenames: false
files: ^airflow/migrations/versions/.*\.py$|^docs/apache-airflow/migrations-ref\.rst$
- additional_dependencies: ['rich==12.3.0']
+ additional_dependencies: ['rich']
## ONLY ADD PRE-COMMITS HERE THAT REQUIRE CI IMAGE
diff --git a/BREEZE.rst b/BREEZE.rst
index ac56edfad3..0a368e3e9f 100644
--- a/BREEZE.rst
+++ b/BREEZE.rst
@@ -417,6 +417,15 @@ Those are all available flags of ``config`` command:
:width: 100%
:alt: Breeze config
+
+You can also dump hash of the configuration options used - this is mostly use to generate the dump
+of help of the commands only when they change.
+
+.. image:: ./images/breeze/output-command-hash-export.svg
+ :width: 100%
+ :alt: Breeze command-hash-export
+
+
Starting complete Airflow installation
======================================
@@ -539,6 +548,8 @@ Configuration and maintenance
* Freeing space needed to run CI tests with ``breeze free-space`` command
* Fixing ownership of files in your repository with ``breeze fix-ownership`` command
* Print Breeze version with ``breeze version`` command
+* Outputs hash of commands defined by ``breeze`` with ``command-hash-export`` (useful to avoid needless
+ regeneration of Breeze images)
Release tasks
-------------
diff --git a/dev/breeze/README.md b/dev/breeze/README.md
index 608f41a380..e038229c27 100644
--- a/dev/breeze/README.md
+++ b/dev/breeze/README.md
@@ -52,6 +52,6 @@ PLEASE DO NOT MODIFY THE HASH BELOW! IT IS AUTOMATICALLY UPDATED BY PRE-COMMIT.
---------------------------------------------------------------------------------------------------------
-Package config hash: dfdac0e241f273bbe3ae4a3d5e9c9f39426d792c2468753d94fd0dfa6b5d46331703c5d419e5e8bf3c199129acde63cfa61e30c6a3b9a920047e0d115fd1d57c
+Package config hash: 7f2ce934ce9d90dcc7f97c10534416a8736cb37c1bdf10c0b9abaae77fef35875863188897e13b68899caac65072697341bd11f7cc39148b0c4774ef11a88df2
---------------------------------------------------------------------------------------------------------
diff --git a/dev/breeze/setup.cfg b/dev/breeze/setup.cfg
index af23bc1697..5ef8675c98 100644
--- a/dev/breeze/setup.cfg
+++ b/dev/breeze/setup.cfg
@@ -63,7 +63,7 @@ install_requires =
pytest-xdist
pyyaml
requests
- rich==12.3.0
+ rich
rich_click
[options.packages.find]
diff --git a/dev/breeze/src/airflow_breeze/commands/configuration_and_maintenance_commands.py b/dev/breeze/src/airflow_breeze/commands/configuration_and_maintenance_commands.py
index 4c32f6b3b9..2267cdd5a7 100644
--- a/dev/breeze/src/airflow_breeze/commands/configuration_and_maintenance_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/configuration_and_maintenance_commands.py
@@ -14,15 +14,17 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
+import hashlib
+import json
import os
import shutil
import subprocess
import sys
from pathlib import Path
-from typing import Optional
+from typing import IO, Any, Dict, Optional
import click
+from click import Context
from airflow_breeze import NAME, VERSION
from airflow_breeze.commands.main_command import main
@@ -71,6 +73,7 @@ CONFIGURATION_AND_MAINTENANCE_COMMANDS = {
"resource-check",
"free-space",
"fix-ownership",
+ "command-hash-export",
"version",
],
}
@@ -407,6 +410,29 @@ def resource_check(verbose: bool, dry_run: bool):
check_docker_resources(shell_params.airflow_image_name, verbose=verbose, dry_run=dry_run)
+def dict_hash(dictionary: Dict[str, Any]) -> str:
+ """MD5 hash of a dictionary. Sorted and dumped via json to account for random sequence)"""
+ dhash = hashlib.md5()
+ encoded = json.dumps(dictionary, sort_keys=True, default=vars).encode()
+ dhash.update(encoded)
+ return dhash.hexdigest()
+
+
+@main.command(
+ name="command-hash-export",
+ help="Outputs hash of all click commands to file or stdout if `-` "
+ "is used (useful to see if images should be regenerated).",
+)
+@option_verbose
+@click.argument('output', type=click.File('wt'))
+def command_hash_export(verbose: bool, output: IO):
+ with Context(main) as ctx:
+ the_context_dict = ctx.to_info_dict()
+ if verbose:
+ get_console().print(the_context_dict)
+ output.write(dict_hash(the_context_dict) + "\n")
+
+
@main.command(name="fix-ownership", help="Fix ownership of source files to be same as host user.")
@option_verbose
@option_dry_run
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index 8b8aab039a..6c6f9c7a77 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -80,7 +80,7 @@ RELEASE_MANAGEMENT_PARAMETERS = {
"name": "Provider verification flags",
"options": [
"--use-airflow-version",
- "--constraints-reference",
+ "--airflow-constraints-reference",
"--airflow-extras",
"--use-packages-from-dist",
"--package-format",
diff --git a/dev/breeze/src/airflow_breeze/utils/path_utils.py b/dev/breeze/src/airflow_breeze/utils/path_utils.py
index 74ae2831a8..beb2926302 100644
--- a/dev/breeze/src/airflow_breeze/utils/path_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/path_utils.py
@@ -211,6 +211,9 @@ def find_airflow_sources_root_to_operate_on() -> Path:
:return: Path for the found sources.
"""
+ sources_root_from_env = os.getenv('AIRFLOW_SOURCES_ROOT', None)
+ if sources_root_from_env:
+ return Path(sources_root_from_env)
installation_airflow_sources = get_installation_airflow_sources()
if installation_airflow_sources is None and not skip_upgrade_check():
get_console().print(
diff --git a/images/breeze/output-build-docs.svg b/images/breeze/output-build-docs.svg
index 1e1ed98b7c..c65181b9ae 100644
--- a/images/breeze/output-build-docs.svg
+++ b/images/breeze/output-build-docs.svg
@@ -1,179 +1,108 @@
-<svg width="1720.0" height="1572" viewBox="0 0 1720.0 1572"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 1544.0000000000002" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2744519006-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2744519006-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2744519006-terminal-body .blink {
- animation: rich-svg-2744519006-blinker 1s infinite;
- }
- @keyframes rich-svg-2744519006-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2744519006-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2744519006-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2744519006-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2744519006-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2744519006-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2744519006-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2744519006-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2744519006-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2744519006-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2744519006-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2744519006-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2744519006-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2744519006-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2744519006-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-925795226-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-925795226-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-925795226-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-925795226-r2 { fill: #c5c8c6 }
+.terminal-925795226-r3 { fill: #d0b344;font-weight: bold }
+.terminal-925795226-r4 { fill: #868887 }
+.terminal-925795226-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-925795226-r6 { fill: #98a84b;font-weight: bold }
+.terminal-925795226-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2744519006-terminal-wrapper">
- <div class="rich-svg-2744519006-terminal">
- <div class="rich-svg-2744519006-terminal-header">
- <svg class="rich-svg-2744519006-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2744519006-terminal-title-tab">Command: build-docs</div>
- </div>
- <div class="rich-svg-2744519006-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze build-docs [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Build documentation in the container. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Doc flags ──────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--docs-only</span><span class="r1"> </span><span class="r6">-d</span><span class="r1"> </span><span class="r1">Only build documentation. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--spellcheck-only</span><span class="r1"> </span><span class="r6">-s</span><span class="r1"> </span><span class="r1">Only run spell checking. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--for-production</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Builds documentation for official release i.e. all links point to stable version. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-filter</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">List of packages to consider. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(apache-airflow | apache-airflow-providers | apache-airflow-providers-airbyte | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-alibaba | apache-airflow-providers-amazon | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-apache-beam | apache-airflow-providers-apache-cassandra | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-apache-drill | apache-airflow-providers-apache-druid | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-apache-hdfs | apache-airflow-providers-apache-hive | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-apache-kylin | apache-airflow-providers-apache-livy | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-apache-pig | apache-airflow-providers-apache-pinot | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-apache-spark | apache-airflow-providers-apache-sqoop | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-arangodb | apache-airflow-providers-asana | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-celery | apache-airflow-providers-cloudant | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-cncf-kubernetes | apache-airflow-providers-databricks | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-datadog | apache-airflow-providers-dbt-cloud | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-dingding | apache-airflow-providers-discord | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-docker | apache-airflow-providers-elasticsearch | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-exasol | apache-airflow-providers-facebook | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-ftp | apache-airflow-providers-github | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-google | apache-airflow-providers-grpc | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-hashicorp | apache-airflow-providers-http | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-imap | apache-airflow-providers-influxdb | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-jdbc | apache-airflow-providers-jenkins | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-jira | apache-airflow-providers-microsoft-azure | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-microsoft-mssql | apache-airflow-providers-microsoft-psrp | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-microsoft-winrm | apache-airflow-providers-mongo | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-mysql | apache-airflow-providers-neo4j | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-odbc | apache-airflow-providers-openfaas | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-opsgenie | apache-airflow-providers-oracle | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-pagerduty | apache-airflow-providers-papermill | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-plexus | apache-airflow-providers-postgres | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-presto | apache-airflow-providers-qubole | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-redis | apache-airflow-providers-salesforce | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-samba | apache-airflow-providers-segment | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-sendgrid | apache-airflow-providers-sftp | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-singularity | apache-airflow-providers-slack | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-snowflake | apache-airflow-providers-sqlite | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-ssh | apache-airflow-providers-tableau | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-telegram | apache-airflow-providers-trino | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-vertica | apache-airflow-providers-yandex | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">apache-airflow-providers-zendesk | docker-stack | helm-chart) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="1504" rx="12"/><text class="terminal-925795226-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: build-docs</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-925795226-matrix" font-variant="east-asian-width-values"><tspan class="terminal-925795226-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-925795226-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-925795226-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-925795226-r1" x="99.2" y="46.4" textLength="1388.8">breeze build-docs [OPTIONS]                                 [...]
+</tspan><tspan class="terminal-925795226-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-925795226-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-925795226-r2" x="12.4" y="99.2" textLength="1463.2">Build documentation in the container.                                             [...]
+</tspan><tspan class="terminal-925795226-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="152" textLength="1488">╭─ Doc flags ──────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-925795226-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-925795226-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="178.4" textLength="136.4">--docs-only</tspan><tspan class="terminal-925795226-r2" x="173.6" y="178.4" textLength="99.2">        </tspan><tspan class="terminal-925795226-r6" x="272.8" y="178.4" textLength="24.8">-d</tspan> [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="204.8" textLength="210.8">--spellcheck-only</tspan><tspan class="terminal-925795226-r2" x="248" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-925795226-r6" x="272.8" y="204.8" textLength="24.8">-s</tspan><tspan class="terminal-925795226 [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="231.2" textLength="198.4">--for-production</tspan><tspan class="terminal-925795226-r2" x="235.6" y="231.2" textLength="37.2">   </tspan><tspan class="terminal-925795226-r6" x="272.8" y="231.2" textLength="24.8">-p</tspan><tspan class="terminal-92 [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="257.6" textLength="198.4">--package-filter</tspan><tspan class="terminal-925795226-r2" x="235.6" y="257.6" textLength="37.2">   </tspan><tspan class="terminal-925795226-r6" x="272.8" y="257.6" textLength="24.8">-p</tspan><tspan class="terminal-92 [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="284" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="284" textLength="1128.4">(apache-airflow | apache-airflow-providers | apache-airflow-providers-airbyte  [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="310.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="310.4" textLength="1128.4">apache-airflow-providers-alibaba | apache-airflow-providers-amazon |  & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="336.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="336.8" textLength="1128.4">apache-airflow-providers-apache-beam | apache-airflow-providers-apache-cassandra  [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="363.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="363.2" textLength="1128.4">apache-airflow-providers-apache-drill | apache-airflow-providers-apache-druid |&# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="389.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="389.6" textLength="1128.4">apache-airflow-providers-apache-hdfs | apache-airflow-providers-apache-hive | [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="416" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="416" textLength="1128.4">apache-airflow-providers-apache-kylin | apache-airflow-providers-apache-livy |  [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="442.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="442.4" textLength="1128.4">apache-airflow-providers-apache-pig | apache-airflow-providers-apache-pinot | [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="468.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="468.8" textLength="1128.4">apache-airflow-providers-apache-spark | apache-airflow-providers-apache-sqoop |&# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="495.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="495.2" textLength="1128.4">apache-airflow-providers-arangodb | apache-airflow-providers-asana |  & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="521.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="521.6" textLength="1128.4">apache-airflow-providers-celery | apache-airflow-providers-cloudant |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="548" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="548" textLength="1128.4">apache-airflow-providers-cncf-kubernetes | apache-airflow-providers-databricks | & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="574.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="574.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="574.4" textLength="1128.4">apache-airflow-providers-datadog | apache-airflow-providers-dbt-cloud |  [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="600.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="600.8" textLength="1128.4">apache-airflow-providers-dingding | apache-airflow-providers-discord |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="627.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="627.2" textLength="1128.4">apache-airflow-providers-docker | apache-airflow-providers-elasticsearch | & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="653.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="653.6" textLength="1128.4">apache-airflow-providers-exasol | apache-airflow-providers-facebook |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="680" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="680" textLength="1128.4">apache-airflow-providers-ftp | apache-airflow-providers-github |     [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="706.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="706.4" textLength="1128.4">apache-airflow-providers-google | apache-airflow-providers-grpc |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="732.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="732.8" textLength="1128.4">apache-airflow-providers-hashicorp | apache-airflow-providers-http |  & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="759.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="759.2" textLength="1128.4">apache-airflow-providers-imap | apache-airflow-providers-influxdb |  &# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="785.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="785.6" textLength="1128.4">apache-airflow-providers-jdbc | apache-airflow-providers-jenkins |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="812" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="812" textLength="1128.4">apache-airflow-providers-jira | apache-airflow-providers-microsoft-azure |  & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="838.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="838.4" textLength="1128.4">apache-airflow-providers-microsoft-mssql | apache-airflow-providers-microsoft-psrp [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="864.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="864.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="864.8" textLength="1128.4">apache-airflow-providers-microsoft-winrm | apache-airflow-providers-mongo |  [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="891.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="891.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="891.2" textLength="1128.4">apache-airflow-providers-mysql | apache-airflow-providers-neo4j |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="917.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="917.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="917.6" textLength="1128.4">apache-airflow-providers-odbc | apache-airflow-providers-openfaas |  &# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="944" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="944" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="944" textLength="1128.4">apache-airflow-providers-opsgenie | apache-airflow-providers-oracle |    [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="970.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="970.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="970.4" textLength="1128.4">apache-airflow-providers-pagerduty | apache-airflow-providers-papermill | &# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="996.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="996.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="996.8" textLength="1128.4">apache-airflow-providers-plexus | apache-airflow-providers-postgres |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1023.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1023.2" textLength="1128.4">apache-airflow-providers-presto | apache-airflow-providers-qubole |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1049.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1049.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1049.6" textLength="1128.4">apache-airflow-providers-redis | apache-airflow-providers-salesforce | &# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1076" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1076" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1076" textLength="1128.4">apache-airflow-providers-samba | apache-airflow-providers-segment |    [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1102.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1102.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1102.4" textLength="1128.4">apache-airflow-providers-sendgrid | apache-airflow-providers-sftp |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1128.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1128.8" textLength="1128.4">apache-airflow-providers-singularity | apache-airflow-providers-slack | & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1155.2" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1155.2" textLength="1128.4">apache-airflow-providers-snowflake | apache-airflow-providers-sqlite | &# [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1181.6" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1181.6" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1181.6" textLength="1128.4">apache-airflow-providers-ssh | apache-airflow-providers-tableau |  & [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1208" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1208" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1208" textLength="1128.4">apache-airflow-providers-telegram | apache-airflow-providers-trino |   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1234.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1234.4" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1234.4" textLength="1128.4">apache-airflow-providers-vertica | apache-airflow-providers-yandex |  [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1260.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1260.8" textLength="310">                         </tspan><tspan class="terminal-925795226-r7" x="322.4" y="1260.8" textLength="1128.4">apache-airflow-providers-zendesk | docker-stack | helm-chart)   [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1287.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-925795226-r2" x="1488" y="1287.2" textLength="12.4">
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1313.6" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-925795226-r2" x="1488" y="1313.6" textLength="12.4">
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1340" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1340" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="1340" textLength="111.6">--verbose</tspan><tspan class="terminal-925795226-r2" x="148.8" y="1340" textLength="148.8">            </tspan><tspan class="terminal-925795226-r6" x="297.6" y="1340" textLength [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1366.4" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1366.4" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="1366.4" textLength="111.6">--dry-run</tspan><tspan class="terminal-925795226-r2" x="148.8" y="1366.4" textLength="148.8">            </tspan><tspan class="terminal-925795226-r6" x="297.6" y="1366.4" [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1392.8" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1392.8" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="1392.8" textLength="235.6">--github-repository</tspan><tspan class="terminal-925795226-r2" x="272.8" y="1392.8" textLength="24.8">  </tspan><tspan class="terminal-925795226-r6" x="297.6" y="1392.8" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1419.2" textLength="12.4">│</tspan><tspan class="terminal-925795226-r2" x="12.4" y="1419.2" textLength="24.8">  </tspan><tspan class="terminal-925795226-r5" x="37.2" y="1419.2" textLength="74.4">--help</tspan><tspan class="terminal-925795226-r2" x="111.6" y="1419.2" textLength="186">               </tspan><tspan class="terminal-925795226-r6" x="297.6" [...]
+</tspan><tspan class="terminal-925795226-r4" x="0" y="1445.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-925795226-r2" x="1488" y="1445.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-build-image.svg b/images/breeze/output-build-image.svg
index 2271337601..4b8e20035c 100644
--- a/images/breeze/output-build-image.svg
+++ b/images/breeze/output-build-image.svg
@@ -1,176 +1,105 @@
-<svg width="1720.0" height="1506" viewBox="0 0 1720.0 1506"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 1464.8000000000002" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1034040239-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1034040239-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1034040239-terminal-body .blink {
- animation: rich-svg-1034040239-blinker 1s infinite;
- }
- @keyframes rich-svg-1034040239-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1034040239-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1034040239-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1034040239-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1034040239-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1034040239-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1034040239-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1034040239-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1034040239-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1034040239-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1034040239-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1034040239-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1034040239-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1034040239-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1034040239-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2851932599-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2851932599-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2851932599-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2851932599-r2 { fill: #c5c8c6 }
+.terminal-2851932599-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2851932599-r4 { fill: #868887 }
+.terminal-2851932599-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2851932599-r6 { fill: #98a84b;font-weight: bold }
+.terminal-2851932599-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1034040239-terminal-wrapper">
- <div class="rich-svg-1034040239-terminal">
- <div class="rich-svg-1034040239-terminal-header">
- <svg class="rich-svg-1034040239-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1034040239-terminal-title-tab">Command: build-image</div>
- </div>
- <div class="rich-svg-1034040239-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze build-image [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Build CI image. Include building multiple images for all python versions (sequentially). </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--upgrade-to-newer-dependencies</span><span class="r1"> </span><span class="r6">-u</span><span class="r1"> </span><span class="r1">When set, upgrade all PIP packages to latest. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debian-version</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Debian version used for the image.</span><span class="r1"> </span><span class="r7">(bullseye | buster)</span><span class="r1"> </span><span class="r4">[default: bullseye]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--docker-cache</span><span class="r1"> </span><span class="r6">-c</span><span class="r1"> </span><span class="r1">Cache option for image used during the build.</span><span class="r1"> </span><span class="r7">(pulled | local | disabled)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: pulled] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--force-build</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Force image build no matter if it is determined as needed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Building multiple images ───────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--build-multiple-images</span><span class="r1"> </span><span class="r1">Run the operation sequentially on all or selected subset of Python versions. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python-versions</span><span class="r1"> </span><span class="r1">Space separated list of python versions used for build with multiple versions.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7 3.8 3.9 3.10] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Advanced options (for power users) ─────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--install-providers-from-sources</span><span class="r1"> </span><span class="r1">Install providers from sources when installing. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-python-deps</span><span class="r1"> </span><span class="r1">Additional python dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--runtime-apt-deps</span><span class="r1"> </span><span class="r1">Apt runtime dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--runtime-apt-command</span><span class="r1"> </span><span class="r1">Command executed before runtime apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-extras</span><span class="r1"> </span><span class="r1">Additional extra package while installing Airflow in the image.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-runtime-apt-deps</span><span class="r1"> </span><span class="r1">Additional apt runtime dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-runtime-apt-env</span><span class="r1"> </span><span class="r1">Additional environment variables set when adding runtime dependencies.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-runtime-apt-command</span><span class="r1"> </span><span class="r1">Additional command executed before runtime apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-dev-apt-deps</span><span class="r1"> </span><span class="r1">Additional apt dev dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-dev-apt-env</span><span class="r1"> </span><span class="r1">Additional environment variables set when adding dev dependencies.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-dev-apt-command</span><span class="r1"> </span><span class="r1">Additional command executed before dev apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dev-apt-deps</span><span class="r1"> </span><span class="r1">Apt dev dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dev-apt-command</span><span class="r1"> </span><span class="r1">Command executed before dev apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--platform</span><span class="r1"> </span><span class="r1">Platform for Airflow image.</span><span class="r1"> </span><span class="r7">(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--prepare-buildx-cache</span><span class="r1"> </span><span class="r1">Prepares build cache rather than build images locally. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--push-image</span><span class="r1"> </span><span class="r1">Push image after building it. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--empty-image</span><span class="r1"> </span><span class="r1">Prepare empty image tagged with the same name as the Airflow image. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-token</span><span class="r1"> </span><span class="r1">The token used to authenticate to GitHub.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-username</span><span class="r1"> </span><span class="r1">The user name used to authenticate to GitHub.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--login-to-github-registry</span><span class="r1"> </span><span class="r1">Logs in to GitHub registry.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="1424.8" rx="12"/><text class="terminal-2851932599-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: build-image</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2851932599-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2851932599-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2851932599-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2851932599-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2851932599-r1" x="99.2" y="46.4" textLength="1388.8">breeze build-image [OPTIONS]                                 [...]
+</tspan><tspan class="terminal-2851932599-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2851932599-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2851932599-r2" x="12.4" y="99.2" textLength="1463.2">Build CI image. Include building multiple images for all python versions (sequentially).                               [...]
+</tspan><tspan class="terminal-2851932599-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="152" textLength="1488">╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2851932599-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="178.4" textLength="99.2">--python</tspan><tspan class="terminal-2851932599-r2" x="136.4" y="178.4" textLength="310">                        [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="204.8" textLength="483.6">                                       </tspan><tspan class="terminal-2851932599-r7" x="496" y="204.8" textLength="744">(>3.7< [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="231.2" textLength="483.6">                                       </tspan><tspan class="terminal-2851932599-r4" x="496" y="231.2" textLength="744">[default: [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="257.6" textLength="384.4">--upgrade-to-newer-dependencies</tspan><tspan class="terminal-2851932599-r2" x="421.6" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r6" x="446.4" y="257.6" textLength="24.8">-u</tspan><tspan clas [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="284" textLength="198.4">--debian-version</tspan><tspan class="terminal-2851932599-r2" x="235.6" y="284" textLength="210.8">                 </tspan><tspan class="terminal-285193 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="310.4" textLength="136.4">--image-tag</tspan><tspan class="terminal-2851932599-r2" x="173.6" y="310.4" textLength="272.8">                      </ts [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="336.8" textLength="173.6">--docker-cache</tspan><tspan class="terminal-2851932599-r2" x="210.8" y="336.8" textLength="235.6">                   </tspan><tspan clas [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="363.2" textLength="483.6">                                       </tspan><tspan class="terminal-2851932599-r4" x="496" y="363.2" textLength="558">[default: [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="389.6" textLength="161.2">--force-build</tspan><tspan class="terminal-2851932599-r2" x="198.4" y="389.6" textLength="248">                    </tspan><tspan c [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="416" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2851932599-r2" x="1488" y="416" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="442.4" textLength="1488">╭─ Building multiple images ───────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2851932599-r2" x="1488" y="442.4" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="468.8" textLength="285.2">--build-multiple-images</tspan><tspan class="terminal-2851932599-r2" x="322.4" y="468.8" textLength="49.6">    </tspan><tspan class="terminal-2851932599-r2" x="372" y="468.8" textLength="1078.8">Run the  [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="495.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="495.2" textLength="210.8">--python-versions</tspan><tspan class="terminal-2851932599-r2" x="248" y="495.2" textLength="124">          </tspan><tspan class="terminal-2851932599-r2" x="372" y="495.2" textLength [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="521.6" textLength="359.6">                             </tspan><tspan class="terminal-2851932599-r4" x="372" y="521.6" textLength="967.2">[default: 3.7 3.8 3.9 3.10]     [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="548" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2851932599-r2" x="1488" y="548" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="574.4" textLength="1488">╭─ Advanced options (for power users) ─────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2851932599-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="600.8" textLength="396.8">--install-providers-from-sources</tspan><tspan class="terminal-2851932599-r2" x="434" y="600.8" textLength="49.6">    </tspan><tspan class="terminal-2851932599-r2" x="483.6" y="600.8" textLength="967.2">Install&# [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="627.2" textLength="297.6">--additional-python-deps</tspan><tspan class="terminal-2851932599-r2" x="334.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-2851932599-r2" x="48 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="653.6" textLength="223.2">--runtime-apt-deps</tspan><tspan class="terminal-2851932599-r2" x="260.4" y="653.6" textLength="223.2">                  </tspan><tspan class= [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="680" textLength="260.4">--runtime-apt-command</tspan><tspan class="terminal-2851932599-r2" x="297.6" y="680" textLength="186">               </tspan><tspan class="terminal-2851932599-r2" [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="706.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="706.4" textLength="235.6">--additional-extras</tspan><tspan class="terminal-2851932599-r2" x="272.8" y="706.4" textLength="210.8">                 </tspan><tspan class="term [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="732.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="732.8" textLength="359.6">--additional-runtime-apt-deps</tspan><tspan class="terminal-2851932599-r2" x="396.8" y="732.8" textLength="86.8">       </tspan><tspan class="terminal-2851932599-r2" x="483.6" y="732.8" textLength= [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="759.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="759.2" textLength="347.2">--additional-runtime-apt-env</tspan><tspan class="terminal-2851932599-r2" x="384.4" y="759.2" textLength="99.2">        </tspan><tspan class="terminal-2851932599-r2" x="483.6" y="759.2" textLe [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="785.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="785.6" textLength="396.8">--additional-runtime-apt-command</tspan><tspan class="terminal-2851932599-r2" x="434" y="785.6" textLength="49.6">    </tspan><tspan class="terminal-2851932599-r2" x="483.6" y="785.6" textLength="818.4">Additiona [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="812" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="812" textLength="310">--additional-dev-apt-deps</tspan><tspan class="terminal-2851932599-r2" x="347.2" y="812" textLength="136.4">           </tspan><tspan class="terminal-2851932599-r2" x="483.6" y="812" te [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="838.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="838.4" textLength="297.6">--additional-dev-apt-env</tspan><tspan class="terminal-2851932599-r2" x="334.8" y="838.4" textLength="148.8">            </tspan><tspan class="terminal-2851932599-r2" x="48 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="864.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="864.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="864.8" textLength="347.2">--additional-dev-apt-command</tspan><tspan class="terminal-2851932599-r2" x="384.4" y="864.8" textLength="99.2">        </tspan><tspan class="terminal-2851932599-r2" x="483.6" y="864.8" textLe [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="891.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="891.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="891.2" textLength="173.6">--dev-apt-deps</tspan><tspan class="terminal-2851932599-r2" x="210.8" y="891.2" textLength="272.8">                      < [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="917.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="917.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="917.6" textLength="210.8">--dev-apt-command</tspan><tspan class="terminal-2851932599-r2" x="248" y="917.6" textLength="235.6">                   </tspan><tspan cla [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="944" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2851932599-r2" x="1488" y="944" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="970.4" textLength="1488">╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2851932599-r2" x="1488" y="970.4" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="996.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="996.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="996.8" textLength="124">--platform</tspan><tspan class="terminal-2851932599-r2" x="161.2" y="996.8" textLength="248">                    </tspan><tspan class= [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1023.2" textLength="272.8">--prepare-buildx-cache</tspan><tspan class="terminal-2851932599-r2" x="310" y="1023.2" textLength="99.2">        </tspan><tspan class="terminal-2851932599-r2" x="409.2" y="1023.2" textLengt [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1049.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1049.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1049.6" textLength="148.8">--push-image</tspan><tspan class="terminal-2851932599-r2" x="186" y="1049.6" textLength="223.2">                  </tspan><tspan class="ter [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1076" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1076" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1076" textLength="161.2">--empty-image</tspan><tspan class="terminal-2851932599-r2" x="198.4" y="1076" textLength="210.8">                 </tspan><tspan class="terminal-28519 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1102.4" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1102.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1102.4" textLength="173.6">--github-token</tspan><tspan class="terminal-2851932599-r2" x="210.8" y="1102.4" textLength="198.4">                </tspan><tspan class="terminal-28 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1128.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1128.8" textLength="210.8">--github-username</tspan><tspan class="terminal-2851932599-r2" x="248" y="1128.8" textLength="161.2">             </tspan><tspan class="terminal-2851932599-r2" x="4 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1155.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1155.2" textLength="322.4">--login-to-github-registry</tspan><tspan class="terminal-2851932599-r2" x="359.6" y="1155.2" textLength="49.6">    </tspan><tspan class="terminal-2851932599-r2" x="409.2" y="1155.2" textLength="334.8">Logs [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1181.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2851932599-r2" x="1488" y="1181.6" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1208" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2851932599-r2" x="1488" y="1208" textLength="12.4">
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1234.4" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1234.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1234.4" textLength="235.6">--github-repository</tspan><tspan class="terminal-2851932599-r2" x="272.8" y="1234.4" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r6" x="297.6" y="1234.4" textLength="24.8">-g</tspan><tspan class="term [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1260.8" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1260.8" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1260.8" textLength="111.6">--verbose</tspan><tspan class="terminal-2851932599-r2" x="148.8" y="1260.8" textLength="148.8">            </tspan><tspan class="terminal-2851932599-r6" x="297.6" y="126 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1287.2" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1287.2" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1287.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-2851932599-r2" x="148.8" y="1287.2" textLength="148.8">            </tspan><tspan class="terminal-2851932599-r6" x="297.6" y="128 [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1313.6" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1313.6" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1313.6" textLength="99.2">--answer</tspan><tspan class="terminal-2851932599-r2" x="136.4" y="1313.6" textLength="161.2">             </tspan><tspan class="terminal-2851932599-r6" x="297.6" y= [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1340" textLength="12.4">│</tspan><tspan class="terminal-2851932599-r2" x="12.4" y="1340" textLength="24.8">  </tspan><tspan class="terminal-2851932599-r5" x="37.2" y="1340" textLength="74.4">--help</tspan><tspan class="terminal-2851932599-r2" x="111.6" y="1340" textLength="186">               </tspan><tspan class="terminal-2851932599-r6" x="297.6" y= [...]
+</tspan><tspan class="terminal-2851932599-r4" x="0" y="1366.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2851932599-r2" x="1488" y="1366.4" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-build-prod-image.svg b/images/breeze/output-build-prod-image.svg
index 794e4438c4..2147125dc9 100644
--- a/images/breeze/output-build-prod-image.svg
+++ b/images/breeze/output-build-prod-image.svg
@@ -1,193 +1,122 @@
-<svg width="1720.0" height="1880" viewBox="0 0 1720.0 1880"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 1913.6000000000001" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2806393034-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2806393034-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2806393034-terminal-body .blink {
- animation: rich-svg-2806393034-blinker 1s infinite;
- }
- @keyframes rich-svg-2806393034-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2806393034-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2806393034-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2806393034-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2806393034-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2806393034-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2806393034-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2806393034-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2806393034-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2806393034-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2806393034-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2806393034-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2806393034-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2806393034-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2806393034-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1309576744-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1309576744-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1309576744-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1309576744-r2 { fill: #c5c8c6 }
+.terminal-1309576744-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1309576744-r4 { fill: #868887 }
+.terminal-1309576744-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-1309576744-r6 { fill: #98a84b;font-weight: bold }
+.terminal-1309576744-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2806393034-terminal-wrapper">
- <div class="rich-svg-2806393034-terminal">
- <div class="rich-svg-2806393034-terminal-header">
- <svg class="rich-svg-2806393034-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2806393034-terminal-title-tab">Command: build-prod-image</div>
- </div>
- <div class="rich-svg-2806393034-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze build-prod-image [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Build Production image. Include building multiple images for all or selected Python versions sequentially. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--install-airflow-version</span><span class="r1"> </span><span class="r6">-V</span><span class="r1"> </span><span class="r1">Install version of Airflow from PyPI.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--upgrade-to-newer-dependencies</span><span class="r1"> </span><span class="r6">-u</span><span class="r1"> </span><span class="r1">When set, upgrade all PIP packages to latest. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debian-version</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Debian version used for the image.</span><span class="r1"> </span><span class="r7">(bullseye | buster)</span><span class="r1"> </span><span class="r4">[default: bullseye]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--docker-cache</span><span class="r1"> </span><span class="r6">-c</span><span class="r1"> </span><span class="r1">Cache option for image used during the build.</span><span class="r1"> </span><span class="r7">(pulled | local | disabled)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: pulled] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Building multiple images ───────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--build-multiple-images</span><span class="r1"> </span><span class="r1">Run the operation sequentially on all or selected subset of Python versions. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python-versions</span><span class="r1"> </span><span class="r1">Space separated list of python versions used for build with multiple versions.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7 3.8 3.9 3.10] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options for customizing images ─────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--install-providers-from-sources</span><span class="r1"> </span><span class="r1">Install providers from sources when installing. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-python-deps</span><span class="r1"> </span><span class="r1">Additional python dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-extras</span><span class="r1"> </span><span class="r1">Additional extra package while installing Airflow in the image.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-runtime-apt-deps</span><span class="r1"> </span><span class="r1">Additional apt runtime dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-runtime-apt-env</span><span class="r1"> </span><span class="r1">Additional environment variables set when adding runtime dependencies.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-runtime-apt-command</span><span class="r1"> </span><span class="r1">Additional command executed before runtime apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-dev-apt-deps</span><span class="r1"> </span><span class="r1">Additional apt dev dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-dev-apt-env</span><span class="r1"> </span><span class="r1">Additional environment variables set when adding dev dependencies.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--additional-dev-apt-command</span><span class="r1"> </span><span class="r1">Additional command executed before dev apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--extras</span><span class="r1"> </span><span class="r1">Extras to install by default. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(TEXT) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">amazon,async,celery,cncf.kubernetes,dask,docker,elasticsearch,ftp,google,goog…</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--runtime-apt-deps</span><span class="r1"> </span><span class="r1">Apt runtime dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--runtime-apt-command</span><span class="r1"> </span><span class="r1">Command executed before runtime apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dev-apt-deps</span><span class="r1"> </span><span class="r1">Apt dev dependencies to use when building the images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dev-apt-command</span><span class="r1"> </span><span class="r1">Command executed before dev apt deps are installed.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Customization options (for specific customization needs) ───────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--install-packages-from-context</span><span class="r1"> </span><span class="r1">Install wheels from local docker-context-files when building image. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-is-in-context</span><span class="r1"> </span><span class="r1">If set Airflow is installed from docker-context-files only rather than </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">from PyPI or sources. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--cleanup-context</span><span class="r1"> Clean up docker context files before running build (cannot be used </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> together with </span><span class="r5">--install-packages-from-context</span><span class="r1">). </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--disable-mysql-client-installation</span><span class="r1"> </span><span class="r1">Do not install MySQL client. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--disable-mssql-client-installation</span><span class="r1"> </span><span class="r1">Do not install MsSQl client. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--disable-postgres-client-installation</span><span class="r1"> </span><span class="r1">Do not install Postgres client. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--disable-airflow-repo-cache</span><span class="r1"> </span><span class="r1">Disable cache from Airflow repository during building. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--install-airflow-reference</span><span class="r1"> </span><span class="r1">Install Airflow using GitHub tag or branch.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--installation-method</span><span class="r1"> </span><span class="r1">Install Airflow from: sources or PyPI.</span><span class="r1"> </span><span class="r7">(. | apache-airflow)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-token</span><span class="r1"> </span><span class="r1">The token used to authenticate to GitHub.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-username</span><span class="r1"> </span><span class="r1">The user name used to authenticate to GitHub.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--login-to-github-registry</span><span class="r1"> </span><span class="r1">Logs in to GitHub registry.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--push-image</span><span class="r1"> </span><span class="r1">Push image after building it. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--prepare-buildx-cache</span><span class="r1"> </span><span class="r1">Prepares build cache rather than build images locally. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--platform</span><span class="r1"> </span><span class="r1">Platform for Airflow image.</span><span class="r1"> </span><span class="r7">(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--empty-image</span><span class="r1"> </span><span class="r1">Prepare empty image tagged with the same name as the Airflow image. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="1873.6" rx="12"/><text class="terminal-1309576744-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: build-prod-image</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1309576744-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1309576744-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1309576744-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1309576744-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1309576744-r1" x="99.2" y="46.4" textLength="1388.8">breeze build-prod-image [OPTIONS]                                [...]
+</tspan><tspan class="terminal-1309576744-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1309576744-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-1309576744-r2" x="12.4" y="99.2" textLength="1463.2">Build Production image. Include building multiple images for all or selected Python versions sequentially.            </tspan><tspan class="terminal-1309576744-r2" x="1475.6" y="99.2" textLength="12 [...]
+</tspan><tspan class="terminal-1309576744-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="152" textLength="1488">╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1309576744-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="178.4" textLength="99.2">--python</tspan><tspan class="terminal-1309576744-r2" x="136.4" y="178.4" textLength="310">                        [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="204.8" textLength="483.6">                                       </tspan><tspan class="terminal-1309576744-r7" x="496" y="204.8" textLength="744">(>3.7< [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="231.2" textLength="483.6">                                       </tspan><tspan class="terminal-1309576744-r4" x="496" y="231.2" textLength="744">[default: [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="257.6" textLength="310">--install-airflow-version</tspan><tspan class="terminal-1309576744-r2" x="347.2" y="257.6" textLength="99.2">        </tspan><tspan class="terminal-1309576744-r6" x="446.4" y="257.6" textLength= [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="284" textLength="384.4">--upgrade-to-newer-dependencies</tspan><tspan class="terminal-1309576744-r2" x="421.6" y="284" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r6" x="446.4" y="284" textLength="24.8">-u</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="310.4" textLength="198.4">--debian-version</tspan><tspan class="terminal-1309576744-r2" x="235.6" y="310.4" textLength="210.8">                 </tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="336.8" textLength="136.4">--image-tag</tspan><tspan class="terminal-1309576744-r2" x="173.6" y="336.8" textLength="272.8">                      </ts [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="363.2" textLength="173.6">--docker-cache</tspan><tspan class="terminal-1309576744-r2" x="210.8" y="363.2" textLength="235.6">                   </tspan><tspan clas [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="389.6" textLength="483.6">                                       </tspan><tspan class="terminal-1309576744-r4" x="496" y="389.6" textLength="558">[default: [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="416" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1309576744-r2" x="1488" y="416" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="442.4" textLength="1488">╭─ Building multiple images ───────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1309576744-r2" x="1488" y="442.4" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="468.8" textLength="285.2">--build-multiple-images</tspan><tspan class="terminal-1309576744-r2" x="322.4" y="468.8" textLength="49.6">    </tspan><tspan class="terminal-1309576744-r2" x="372" y="468.8" textLength="1078.8">Run the  [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="495.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="495.2" textLength="210.8">--python-versions</tspan><tspan class="terminal-1309576744-r2" x="248" y="495.2" textLength="124">          </tspan><tspan class="terminal-1309576744-r2" x="372" y="495.2" textLength [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="521.6" textLength="359.6">                             </tspan><tspan class="terminal-1309576744-r4" x="372" y="521.6" textLength="967.2">[default: 3.7 3.8 3.9 3.10]     [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="548" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1309576744-r2" x="1488" y="548" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="574.4" textLength="1488">╭─ Options for customizing images ─────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1309576744-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="600.8" textLength="396.8">--install-providers-from-sources</tspan><tspan class="terminal-1309576744-r2" x="434" y="600.8" textLength="49.6">    </tspan><tspan class="terminal-1309576744-r2" x="483.6" y="600.8" textLength="967.2">Install&# [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="627.2" textLength="297.6">--additional-python-deps</tspan><tspan class="terminal-1309576744-r2" x="334.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-1309576744-r2" x="48 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="653.6" textLength="235.6">--additional-extras</tspan><tspan class="terminal-1309576744-r2" x="272.8" y="653.6" textLength="210.8">                 </tspan><tspan class="term [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="680" textLength="359.6">--additional-runtime-apt-deps</tspan><tspan class="terminal-1309576744-r2" x="396.8" y="680" textLength="86.8">       </tspan><tspan class="terminal-1309576744-r2" x="483.6" y="680" textLength="843.2">Ad [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="706.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="706.4" textLength="347.2">--additional-runtime-apt-env</tspan><tspan class="terminal-1309576744-r2" x="384.4" y="706.4" textLength="99.2">        </tspan><tspan class="terminal-1309576744-r2" x="483.6" y="706.4" textLe [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="732.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="732.8" textLength="396.8">--additional-runtime-apt-command</tspan><tspan class="terminal-1309576744-r2" x="434" y="732.8" textLength="49.6">    </tspan><tspan class="terminal-1309576744-r2" x="483.6" y="732.8" textLength="818.4">Additiona [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="759.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="759.2" textLength="310">--additional-dev-apt-deps</tspan><tspan class="terminal-1309576744-r2" x="347.2" y="759.2" textLength="136.4">           </tspan><tspan class="terminal-1309576744-r2" x="483.6" y= [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="785.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="785.6" textLength="297.6">--additional-dev-apt-env</tspan><tspan class="terminal-1309576744-r2" x="334.8" y="785.6" textLength="148.8">            </tspan><tspan class="terminal-1309576744-r2" x="48 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="812" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="812" textLength="347.2">--additional-dev-apt-command</tspan><tspan class="terminal-1309576744-r2" x="384.4" y="812" textLength="99.2">        </tspan><tspan class="terminal-1309576744-r2" x="483.6" y="812" textLength="768. [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="838.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="838.4" textLength="99.2">--extras</tspan><tspan class="terminal-1309576744-r2" x="136.4" y="838.4" textLength="347.2">                       &# [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="864.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="864.8" textLength="471.2">                                      </tspan><tspan class="terminal-1309576744-r7" x="483.6" y="864.8" textLength="967.2">(TEXT) &# [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="891.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="891.2" textLength="471.2">                                      </tspan><tspan class="terminal-1309576744-r4" x="483.6" y="891.2" textLength="967.2">[default:  [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="917.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="917.6" textLength="471.2">                                      </tspan><tspan class="terminal-1309576744-r4" x="483.6" y="917.6" textLength="967.2">amazon,async,c [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="944" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="944" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="944" textLength="223.2">--runtime-apt-deps</tspan><tspan class="terminal-1309576744-r2" x="260.4" y="944" textLength="223.2">                  </tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="970.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="970.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="970.4" textLength="260.4">--runtime-apt-command</tspan><tspan class="terminal-1309576744-r2" x="297.6" y="970.4" textLength="186">               </tspan><tspan class="terminal-1309576 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="996.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="996.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="996.8" textLength="173.6">--dev-apt-deps</tspan><tspan class="terminal-1309576744-r2" x="210.8" y="996.8" textLength="272.8">                      < [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1023.2" textLength="210.8">--dev-apt-command</tspan><tspan class="terminal-1309576744-r2" x="248" y="1023.2" textLength="235.6">                   </tspan><tspan [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1049.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1049.6" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1076" textLength="1488">╭─ Customization options (for specific customization needs) ───────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1076" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1102.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1102.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1102.4" textLength="384.4">--install-packages-from-context</tspan><tspan class="terminal-1309576744-r2" x="421.6" y="1102.4" textLength="136.4">           </tspan><tspan class="terminal-1309576744-r2" [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1128.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1128.8" textLength="285.2">--airflow-is-in-context</tspan><tspan class="terminal-1309576744-r2" x="322.4" y="1128.8" textLength="235.6">                   </tspa [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1155.2" textLength="545.6">                                            </tspan><tspan class="terminal-1309576744-r2" x="558" y="1155 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1181.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1181.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1181.6" textLength="210.8">--cleanup-context</tspan><tspan class="terminal-1309576744-r2" x="248" y="1181.6" textLength="1227.6">                     & [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1208" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1208" textLength="719.2">                                            together with </tspan><tspan class="terminal-1309576744 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1234.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1234.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1234.4" textLength="434">--disable-mysql-client-installation</tspan><tspan class="terminal-1309576744-r2" x="471.2" y="1234.4" textLength="86.8">       </tspan><tspan class="terminal-1309576744-r2" x="558" y="1234.4" text [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1260.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1260.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1260.8" textLength="434">--disable-mssql-client-installation</tspan><tspan class="terminal-1309576744-r2" x="471.2" y="1260.8" textLength="86.8">       </tspan><tspan class="terminal-1309576744-r2" x="558" y="1260.8" text [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1287.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1287.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1287.2" textLength="471.2">--disable-postgres-client-installation</tspan><tspan class="terminal-1309576744-r2" x="508.4" y="1287.2" textLength="49.6">    </tspan><tspan class="terminal-1309576744-r2" x="558" y="1287.2" textLength="892.8 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1313.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1313.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1313.6" textLength="347.2">--disable-airflow-repo-cache</tspan><tspan class="terminal-1309576744-r2" x="384.4" y="1313.6" textLength="173.6">              </tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1340" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1340" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1340" textLength="334.8">--install-airflow-reference</tspan><tspan class="terminal-1309576744-r2" x="372" y="1340" textLength="186">               </tspan><tspan class="terminal-1309576 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1366.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1366.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1366.4" textLength="260.4">--installation-method</tspan><tspan class="terminal-1309576744-r2" x="297.6" y="1366.4" textLength="260.4">                    &# [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1392.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1392.8" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1419.2" textLength="1488">╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1419.2" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1445.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1445.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1445.6" textLength="173.6">--github-token</tspan><tspan class="terminal-1309576744-r2" x="210.8" y="1445.6" textLength="198.4">                </tspan><tspan class="terminal-13 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1472" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1472" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1472" textLength="210.8">--github-username</tspan><tspan class="terminal-1309576744-r2" x="248" y="1472" textLength="161.2">             </tspan><tspan class="terminal-1309576744-r2" x="409.2" y= [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1498.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1498.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1498.4" textLength="322.4">--login-to-github-registry</tspan><tspan class="terminal-1309576744-r2" x="359.6" y="1498.4" textLength="49.6">    </tspan><tspan class="terminal-1309576744-r2" x="409.2" y="1498.4" textLength="334.8">Logs [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1524.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1524.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1524.8" textLength="148.8">--push-image</tspan><tspan class="terminal-1309576744-r2" x="186" y="1524.8" textLength="223.2">                  </tspan><tspan class="ter [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1551.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1551.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1551.2" textLength="272.8">--prepare-buildx-cache</tspan><tspan class="terminal-1309576744-r2" x="310" y="1551.2" textLength="99.2">        </tspan><tspan class="terminal-1309576744-r2" x="409.2" y="1551.2" textLengt [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1577.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1577.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1577.6" textLength="124">--platform</tspan><tspan class="terminal-1309576744-r2" x="161.2" y="1577.6" textLength="248">                    </tspan><tspan cl [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1604" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1604" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1604" textLength="161.2">--empty-image</tspan><tspan class="terminal-1309576744-r2" x="198.4" y="1604" textLength="210.8">                 </tspan><tspan class="terminal-13095 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1630.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1630.4" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1656.8" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1656.8" textLength="12.4">
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1683.2" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1683.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1683.2" textLength="235.6">--github-repository</tspan><tspan class="terminal-1309576744-r2" x="272.8" y="1683.2" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r6" x="297.6" y="1683.2" textLength="24.8">-g</tspan><tspan class="term [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1709.6" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1709.6" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1709.6" textLength="99.2">--answer</tspan><tspan class="terminal-1309576744-r2" x="136.4" y="1709.6" textLength="161.2">             </tspan><tspan class="terminal-1309576744-r6" x="297.6" y= [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1736" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1736" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1736" textLength="111.6">--dry-run</tspan><tspan class="terminal-1309576744-r2" x="148.8" y="1736" textLength="148.8">            </tspan><tspan class="terminal-1309576744-r6" x="297.6" y="1736" textL [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1762.4" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1762.4" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1762.4" textLength="111.6">--verbose</tspan><tspan class="terminal-1309576744-r2" x="148.8" y="1762.4" textLength="148.8">            </tspan><tspan class="terminal-1309576744-r6" x="297.6" y="176 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1788.8" textLength="12.4">│</tspan><tspan class="terminal-1309576744-r2" x="12.4" y="1788.8" textLength="24.8">  </tspan><tspan class="terminal-1309576744-r5" x="37.2" y="1788.8" textLength="74.4">--help</tspan><tspan class="terminal-1309576744-r2" x="111.6" y="1788.8" textLength="186">               </tspan><tspan class="terminal-1309576744-r6" x="2 [...]
+</tspan><tspan class="terminal-1309576744-r4" x="0" y="1815.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1309576744-r2" x="1488" y="1815.2" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-cleanup.svg b/images/breeze/output-cleanup.svg
index 955561e0b6..68395e65eb 100644
--- a/images/breeze/output-cleanup.svg
+++ b/images/breeze/output-cleanup.svg
@@ -1,139 +1,68 @@
-<svg width="1720.0" height="692" viewBox="0 0 1720.0 692"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 488.00000000000006" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3462681779-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3462681779-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3462681779-terminal-body .blink {
- animation: rich-svg-3462681779-blinker 1s infinite;
- }
- @keyframes rich-svg-3462681779-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3462681779-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3462681779-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3462681779-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3462681779-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3462681779-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3462681779-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3462681779-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3462681779-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3462681779-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3462681779-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3462681779-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3462681779-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3462681779-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3462681779-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2880815510-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2880815510-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2880815510-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2880815510-r2 { fill: #c5c8c6 }
+.terminal-2880815510-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2880815510-r4 { fill: #868887 }
+.terminal-2880815510-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2880815510-r6 { fill: #98a84b;font-weight: bold }
+.terminal-2880815510-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3462681779-terminal-wrapper">
- <div class="rich-svg-3462681779-terminal">
- <div class="rich-svg-3462681779-terminal-header">
- <svg class="rich-svg-3462681779-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3462681779-terminal-title-tab">Command: cleanup</div>
- </div>
- <div class="rich-svg-3462681779-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze cleanup [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Cleans the cache of parameters, docker cache and optionally - currently downloaded images. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Cleanup flags ──────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--all</span><span class="r1"> </span><span class="r1">Also remove currently downloaded Breeze images. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="448" rx="12"/><text class="terminal-2880815510-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: cleanup</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2880815510-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2880815510-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2880815510-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2880815510-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2880815510-r1" x="99.2" y="46.4" textLength="1388.8">breeze cleanup [OPTIONS]                                 [...]
+</tspan><tspan class="terminal-2880815510-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2880815510-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2880815510-r2" x="12.4" y="99.2" textLength="1463.2">Cleans the cache of parameters, docker cache and optionally - currently downloaded images.                            </tsp [...]
+</tspan><tspan class="terminal-2880815510-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="152" textLength="1488">╭─ Cleanup flags ──────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2880815510-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2880815510-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r5" x="37.2" y="178.4" textLength="62">--all</tspan><tspan class="terminal-2880815510-r2" x="99.2" y="178.4" textLength="49.6">    </tspan><tspan class="terminal-2880815510-r2" x="148.8" y="178.4" textLength="1302">Also remove currently do [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="204.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2880815510-r2" x="1488" y="204.8" textLength="12.4">
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="231.2" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2880815510-r2" x="1488" y="231.2" textLength="12.4">
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2880815510-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r5" x="37.2" y="257.6" textLength="111.6">--verbose</tspan><tspan class="terminal-2880815510-r2" x="148.8" y="257.6" textLength="148.8">            </tspan><tspan class="terminal-2880815510-r6" x="297.6" y="257.6" [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-2880815510-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r5" x="37.2" y="284" textLength="99.2">--answer</tspan><tspan class="terminal-2880815510-r2" x="136.4" y="284" textLength="161.2">             </tspan><tspan class="terminal-2880815510-r6" x="297.6" y="284" textLe [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-2880815510-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r5" x="37.2" y="310.4" textLength="111.6">--dry-run</tspan><tspan class="terminal-2880815510-r2" x="148.8" y="310.4" textLength="148.8">            </tspan><tspan class="terminal-2880815510-r6" x="297.6" y="310.4" [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-2880815510-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r5" x="37.2" y="336.8" textLength="235.6">--github-repository</tspan><tspan class="terminal-2880815510-r2" x="272.8" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r6" x="297.6" y="336.8" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-2880815510-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-2880815510-r5" x="37.2" y="363.2" textLength="74.4">--help</tspan><tspan class="terminal-2880815510-r2" x="111.6" y="363.2" textLength="186">               </tspan><tspan class="terminal-2880815510-r6" x="297.6 [...]
+</tspan><tspan class="terminal-2880815510-r4" x="0" y="389.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2880815510-r2" x="1488" y="389.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-command-hash-export.svg b/images/breeze/output-command-hash-export.svg
new file mode 100644
index 0000000000..03d562e242
--- /dev/null
+++ b/images/breeze/output-command-hash-export.svg
@@ -0,0 +1,61 @@
+<svg class="rich-terminal" viewBox="0 0 1544 329.6" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
+ <style>
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-4066869648-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-4066869648-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-4066869648-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-4066869648-r2 { fill: #c5c8c6 }
+.terminal-4066869648-r3 { fill: #d0b344;font-weight: bold }
+.terminal-4066869648-r4 { fill: #868887 }
+.terminal-4066869648-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-4066869648-r6 { fill: #98a84b;font-weight: bold }
+ </style>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="289.6" rx="12"/><text class="terminal-4066869648-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: command-hash-export</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-4066869648-matrix" font-variant="east-asian-width-values"><tspan class="terminal-4066869648-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-4066869648-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-4066869648-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-4066869648-r1" x="99.2" y="46.4" textLength="1388.8">breeze command-hash-export [OPTIONS] OUTPUT                             [...]
+</tspan><tspan class="terminal-4066869648-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-4066869648-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-4066869648-r2" x="12.4" y="99.2" textLength="1463.2">Outputs hash of all click commands to file or stdout if `-` is used (useful to see if images should be regenerated).  </tspan><tspan class="terminal-4066869648-r2" x="1475.6" y="99.2" textLength="12.4">  [...]
+</tspan><tspan class="terminal-4066869648-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-4066869648-r4" x="0" y="152" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-4066869648-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-4066869648-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-4066869648-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-4066869648-r5" x="37.2" y="178.4" textLength="111.6">--verbose</tspan><tspan class="terminal-4066869648-r2" x="148.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-4066869648-r6" x="173.6" y="178.4" textLength="24.8">-v</tspan><tspan class="terminal-4066869648 [...]
+</tspan><tspan class="terminal-4066869648-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-4066869648-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-4066869648-r5" x="37.2" y="204.8" textLength="74.4">--help</tspan><tspan class="terminal-4066869648-r2" x="111.6" y="204.8" textLength="62">     </tspan><tspan class="terminal-4066869648-r6" x="173.6" y="204.8" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-4066869648-r4" x="0" y="231.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-4066869648-r2" x="1488" y="231.2" textLength="12.4">
+</tspan></text>
+ </g>
+</svg>
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
new file mode 100644
index 0000000000..7d8178df9b
--- /dev/null
+++ b/images/breeze/output-commands-hash.txt
@@ -0,0 +1 @@
+0a16b81c7f52b3cf0f077c5282f2ad53
diff --git a/images/breeze/output-commands.svg b/images/breeze/output-commands.svg
index b80cd59fb0..0086d8b3cf 100644
--- a/images/breeze/output-commands.svg
+++ b/images/breeze/output-commands.svg
@@ -1,206 +1,137 @@
-<svg width="1720.0" height="2166" viewBox="0 0 1720.0 2166"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 2309.6000000000004" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1587664700-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1587664700-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1587664700-terminal-body .blink {
- animation: rich-svg-1587664700-blinker 1s infinite;
- }
- @keyframes rich-svg-1587664700-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1587664700-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1587664700-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1587664700-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1587664700-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1587664700-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1587664700-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1587664700-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1587664700-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1587664700-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1587664700-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1587664700-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1587664700-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1587664700-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1587664700-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-3782670756-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-3782670756-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-3782670756-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3782670756-r2 { fill: #c5c8c6 }
+.terminal-3782670756-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3782670756-r4 { fill: #868887 }
+.terminal-3782670756-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3782670756-r6 { fill: #98a84b;font-weight: bold }
+.terminal-3782670756-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1587664700-terminal-wrapper">
- <div class="rich-svg-1587664700-terminal">
- <div class="rich-svg-1587664700-terminal-header">
- <svg class="rich-svg-1587664700-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1587664700-terminal-title-tab">Breeze commands</div>
- </div>
- <div class="rich-svg-1587664700-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze [OPTIONS] COMMAND [ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r4">╭─ Basic flags for the default (shell) command ────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--backend</span><span class="r1"> </span><span class="r6">-b</span><span class="r1"> </span><span class="r1">Database backend to use.</span><span class="r1"> </span><span class="r7">(>sqlite< | mysql | postgres | mssql)</span><span class="r1"> </span><span class="r4">[default: sqlite]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--postgres-version</span><span class="r1"> </span><span class="r6">-P</span><span class="r1"> </span><span class="r1">Version of Postgres used.</span><span class="r1"> </span><span class="r7">(>10< | 11 | 12 | 13)</span><span class="r1"> </span><span class="r4">[default: 10]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mysql-version</span><span class="r1"> </span><span class="r6">-M</span><span class="r1"> </span><span class="r1">Version of MySQL used.</span><span class="r1"> </span><span class="r7">(>5.7< | 8)</span><span class="r1"> </span><span class="r4">[default: 5.7]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mssql-version</span><span class="r1"> </span><span class="r6">-S</span><span class="r1"> </span><span class="r1">Version of MsSQL used.</span><span class="r1"> </span><span class="r7">(>2017-latest< | 2019-latest)</span><span class="r1"> </span><span class="r4">[default: 2017-latest]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--integration</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Integration(s) to enable when running (can be more than one). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(cassandra | kerberos | mongo | openldap | pinot | rabbitmq | redis | statsd | trino | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">all) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--forward-credentials</span><span class="r1"> </span><span class="r6">-f</span><span class="r1"> </span><span class="r1">Forward local credentials to container when running. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--db-reset</span><span class="r1"> </span><span class="r6">-d</span><span class="r1"> </span><span class="r1">Reset DB when entering the container. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Advanced flags for the default (shell) command ─────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-airflow-version</span><span class="r1"> Use (reinstall at entry) Airflow version from PyPI. It can also be `none`, `wheel`, or </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `sdist` if Airflow should be removed, installed from wheel packages or sdist packages </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> available in dist folder respectively. Important! Using it Implies </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `none`. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(none | wheel | sdist | <airflow_version>) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-extras</span><span class="r1"> Airflow extras to install when </span><span class="r5">--use-airflow-version</span><span class="r1"> is used </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-packages-from-dist</span><span class="r1"> Install all found packages (</span><span class="r5">--package-format</span><span class="r1"> determines type) from 'dist' folder when </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> entering breeze. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-format</span><span class="r1"> </span><span class="r1">Format of packages that should be installed from dist.</span><span class="r1"> </span><span class="r7">(wheel | sdist)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: wheel] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--force-build</span><span class="r1"> </span><span class="r1">Force image build no matter if it is determined as needed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r1">Choose scope of local sources should be mounted (default = selected). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(selected | all | none) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: selected] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debian-version</span><span class="r1"> </span><span class="r1">Debian version used for the image.</span><span class="r1"> </span><span class="r7">(bullseye | buster)</span><span class="r1"> </span><span class="r4">[default: bullseye]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Developer tools ────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> shell </span><span class="r1"> </span><span class="r1">Enter breeze.py environment. this is the default command use when no other is selected.</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> start-airflow </span><span class="r1"> </span><span class="r1">Enter breeze.py environment and starts all Airflow components in the tmux session. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> exec </span><span class="r1"> </span><span class="r1">Joins the interactive shell of running airflow container </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> stop </span><span class="r1"> </span><span class="r1">Stop running breeze environment. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> build-docs </span><span class="r1"> </span><span class="r1">Build documentation in the container. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> static-checks </span><span class="r1"> </span><span class="r1">Run static checks. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Testing ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> docker-compose-tests </span><span class="r1"> </span><span class="r1">Run docker-compose tests. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> tests </span><span class="r1"> </span><span class="r1">Run the specified unit test targets. Multiple targets may be specified separated by spaces.</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Configuration & maintenance ────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> cleanup </span><span class="r1"> </span><span class="r1">Cleans the cache of parameters, docker cache and optionally - currently downloaded images.</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> self-upgrade </span><span class="r1"> </span><span class="r1">Self upgrade Breeze. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> setup-autocomplete </span><span class="r1"> </span><span class="r1">Enables autocompletion of breeze commands. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> config </span><span class="r1"> </span><span class="r1">Show/update configuration (Python, Backend, Cheatsheet, ASCIIART). </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> resource-check </span><span class="r1"> </span><span class="r1">Check if available docker resources are enough. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> free-space </span><span class="r1"> </span><span class="r1">Free space for jobs run in CI. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> fix-ownership </span><span class="r1"> </span><span class="r1">Fix ownership of source files to be same as host user. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> version </span><span class="r1"> </span><span class="r1">Print information about version of apache-airflow-breeze. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ CI Image tools ─────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> build-image </span><span class="r1"> </span><span class="r1">Build CI image. Include building multiple images for all python versions (sequentially).</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> pull-image </span><span class="r1"> </span><span class="r1">Pull and optionally verify CI images - possibly in parallel for all Python versions. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> verify-image </span><span class="r1"> </span><span class="r1">Verify CI image. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Production Image tools ─────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> build-prod-image </span><span class="r1"> </span><span class="r1">Build Production image. Include building multiple images for all or selected Python versions </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> </span><span class="r1"> </span><span class="r1">sequentially. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> pull-prod-image </span><span class="r1"> </span><span class="r1">Pull and optionally verify Production images - possibly in parallel for all Python versions. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> verify-prod-image </span><span class="r1"> </span><span class="r1">Verify Production image. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Release management ─────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> verify-provider-packages </span><span class="r1"> </span><span class="r1">Verifies if all provider code is following expectations for providers. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> prepare-provider-documentation </span><span class="r1"> </span><span class="r1">Prepare CHANGELOG, README and COMMITS information for providers. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> prepare-provider-packages </span><span class="r1"> </span><span class="r1">Prepare sdist/whl packages of Airflow Providers. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> prepare-airflow-package </span><span class="r1"> </span><span class="r1">Prepare sdist/whl package of Airflow. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> release-prod-images </span><span class="r1"> </span><span class="r1">Release production images to DockerHub (needs DockerHub permissions). </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> generate-constraints </span><span class="r1"> </span><span class="r1">Generates pinned constraint files with all extras from setup.py in parallel.</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5"> find-newer-dependencies </span><span class="r1"> </span><span class="r1">Finds which dependencies are being upgraded. </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="2269.6" rx="12"/><text class="terminal-3782670756-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Breeze commands</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-3782670756-matrix" font-variant="east-asian-width-values"><tspan class="terminal-3782670756-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-3782670756-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-3782670756-r1" x="99.2" y="46.4" textLength="1388.8">breeze [OPTIONS] COMMAND [ARGS]...                               [...]
+</tspan><tspan class="terminal-3782670756-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="99.2" textLength="1488">╭─ Basic flags for the default (shell) command ────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="99.2" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="125.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="125.6" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="125.6" textLength="99.2">--python</tspan><tspan class="terminal-3782670756-r2" x="136.4" y="125.6" textLength="186">               </tspan><tspan class="terminal-3782670756-r6" x="322 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="152" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="152" textLength="359.6">                             </tspan><tspan class="terminal-3782670756-r4" x="372" y="152" textLength="744">[default: 3.7]           [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="178.4" textLength="111.6">--backend</tspan><tspan class="terminal-3782670756-r2" x="148.8" y="178.4" textLength="173.6">              </tspan><tspan class="terminal-3782670756-r6" x="322.4 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="204.8" textLength="223.2">--postgres-version</tspan><tspan class="terminal-3782670756-r2" x="260.4" y="204.8" textLength="62">     </tspan><tspan class="terminal-3782670756-r6" x="322.4" y="204.8" textLength="24.8">-P</tspan><tspan c [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="231.2" textLength="186">--mysql-version</tspan><tspan class="terminal-3782670756-r2" x="223.2" y="231.2" textLength="99.2">        </tspan><tspan class="terminal-3782670756-r6" x="322.4" y="231.2" textLength="24.8">-M< [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="257.6" textLength="186">--mssql-version</tspan><tspan class="terminal-3782670756-r2" x="223.2" y="257.6" textLength="99.2">        </tspan><tspan class="terminal-3782670756-r6" x="322.4" y="257.6" textLength="24.8">-S< [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="284" textLength="161.2">--integration</tspan><tspan class="terminal-3782670756-r2" x="198.4" y="284" textLength="124">          </tspan><tspan class="terminal-3782670756-r2" x="322.4" y="284" textLength="24.8">&# [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="310.4" textLength="359.6">                             </tspan><tspan class="terminal-3782670756-r7" x="372" y="310.4" textLength="1078.8">(cassandra | kerberos | mongo | openlda [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="336.8" textLength="359.6">                             </tspan><tspan class="terminal-3782670756-r7" x="372" y="336.8" textLength="1078.8">all)            [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="363.2" textLength="260.4">--forward-credentials</tspan><tspan class="terminal-3782670756-r2" x="297.6" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r6" x="322.4" y="363.2" textLength="24.8">-f</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="389.6" textLength="124">--db-reset</tspan><tspan class="terminal-3782670756-r2" x="161.2" y="389.6" textLength="161.2">             </tspan><tspan class="terminal-3782670756-r6" x="322.4" y="38 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="416" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="416" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="442.4" textLength="1488">╭─ Advanced flags for the default (shell) command ─────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="442.4" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="468.8" textLength="260.4">--use-airflow-version</tspan><tspan class="terminal-3782670756-r2" x="297.6" y="468.8" textLength="1178">       Use (reinstall at entry) Airflow version from PyPI [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="495.2" textLength="1463.2">                              `sdist` if Airflow should be removed, installed from wheel packages or sdist packages& [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="521.6" textLength="1202.8">                              available in dist folder respectively. Important! Using it Implies </tspan><tspan class="terminal-378 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="548" textLength="1463.2">                              `none`.                         [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="574.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="574.4" textLength="372">                              </tspan><tspan class="terminal-3782670756-r7" x="384.4" y="574.4" textLength="1066.4">(none | wheel | sdist | <airfl [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="600.8" textLength="198.4">--airflow-extras</tspan><tspan class="terminal-3782670756-r2" x="235.6" y="600.8" textLength="533.2">            Airflow extras to install when </t [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="627.2" textLength="297.6">--use-packages-from-dist</tspan><tspan class="terminal-3782670756-r2" x="334.8" y="627.2" textLength="396.8">    Install all found packages (</tspan><tspan class="terminal-3782670756-r5" x="73 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="653.6" textLength="1463.2">                              entering breeze.                      [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="680" textLength="198.4">--package-format</tspan><tspan class="terminal-3782670756-r2" x="235.6" y="680" textLength="148.8">            </tspan><tspan class="terminal-3782670756-r2" x="384.4" y="680" tex [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="706.4" textLength="372">                              </tspan><tspan class="terminal-3782670756-r4" x="384.4" y="706.4" textLength="669.6">[default: wheel]       & [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="732.8" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="732.8" textLength="161.2">--force-build</tspan><tspan class="terminal-3782670756-r2" x="198.4" y="732.8" textLength="186">               </tspan><tspan class="terminal-3782670756-r2" [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="759.2" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="759.2" textLength="186">--mount-sources</tspan><tspan class="terminal-3782670756-r2" x="223.2" y="759.2" textLength="161.2">             </tspan><tspan class="terminal-3782670756-r2" x="384.4" [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="785.6" textLength="372">                              </tspan><tspan class="terminal-3782670756-r7" x="384.4" y="785.6" textLength="855.6">(selected | all | none)    [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="812" textLength="372">                              </tspan><tspan class="terminal-3782670756-r4" x="384.4" y="812" textLength="855.6">[default: selected]        [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="838.4" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="838.4" textLength="198.4">--debian-version</tspan><tspan class="terminal-3782670756-r2" x="235.6" y="838.4" textLength="148.8">            </tspan><tspan class="terminal-3782670756-r2" x="384.4" y=" [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="864.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="864.8" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="891.2" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="891.2" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="917.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="917.6" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="917.6" textLength="111.6">--verbose</tspan><tspan class="terminal-3782670756-r2" x="148.8" y="917.6" textLength="148.8">            </tspan><tspan class="terminal-3782670756-r6" x="297.6" y="917.6" [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="944" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="944" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="944" textLength="111.6">--dry-run</tspan><tspan class="terminal-3782670756-r2" x="148.8" y="944" textLength="148.8">            </tspan><tspan class="terminal-3782670756-r6" x="297.6" y="944" textLength [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="970.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="970.4" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="970.4" textLength="235.6">--github-repository</tspan><tspan class="terminal-3782670756-r2" x="272.8" y="970.4" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r6" x="297.6" y="970.4" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="996.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="996.8" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="996.8" textLength="99.2">--answer</tspan><tspan class="terminal-3782670756-r2" x="136.4" y="996.8" textLength="161.2">             </tspan><tspan class="terminal-3782670756-r6" x="297.6" y="996 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-3782670756-r5" x="37.2" y="1023.2" textLength="74.4">--help</tspan><tspan class="terminal-3782670756-r2" x="111.6" y="1023.2" textLength="186">               </tspan><tspan class="terminal-3782670756-r6" x="2 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1049.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1049.6" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1076" textLength="1488">╭─ Developer tools ────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1076" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1102.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1102.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1102.4" textLength="186"> shell         </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1102.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="223.2" y="1102.4" textLength="10 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1128.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1128.8" textLength="186"> start-airflow </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1128.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="223.2" y="1128.8" textLength="1078.8">Enter breeze.py environm [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1155.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1155.2" textLength="186"> exec          </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1155.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="223.2" y="1155.2" textLengt [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1181.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1181.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1181.6" textLength="186"> stop          </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1181.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="223.2" y="1181.6" textLengt [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1208" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1208" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1208" textLength="186"> build-docs    </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1208" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="223.2" y="1208" textLength="1078.8">Build documentation  [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1234.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1234.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1234.4" textLength="186"> static-checks </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1234.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="223.2" y="1234.4" textLength="1078.8">Run static checks.  [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1260.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1260.8" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1287.2" textLength="1488">╭─ Testing ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1287.2" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1313.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1313.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1313.6" textLength="272.8"> docker-compose-tests </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1313.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="310" y="1313.6" textLength="1128.4">Run docker-compose [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1340" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1340" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1340" textLength="272.8"> tests                </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1340" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1366.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1366.4" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1392.8" textLength="1488">╭─ Configuration & maintenance ────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1392.8" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1419.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1419.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1419.2" textLength="260.4"> cleanup             </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1419.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297. [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1445.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1445.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1445.6" textLength="260.4"> self-upgrade        </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1445.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1445.6" textLength= [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1472" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1472" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1472" textLength="260.4"> setup-autocomplete  </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1472" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1472" textLength="1153.2">Enables autocompletion [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1498.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1498.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1498.4" textLength="260.4"> config              </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1498.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x= [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1524.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1524.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1524.8" textLength="260.4"> resource-check      </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1524.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1524.8" textLength="1153.2">C [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1551.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1551.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1551.2" textLength="260.4"> free-space          </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1551.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1551.2" t [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1577.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1577.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1577.6" textLength="260.4"> fix-ownership       </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1577.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1577.6" textLength="1153 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1604" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1604" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1604" textLength="260.4"> command-hash-export </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1604" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297.6" y="1604" textLength="1153.2">Outputs hash of all&# [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1630.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1630.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1630.4" textLength="260.4">                     </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1630.4" textLength="12.4"> </tspan><tspan cla [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1656.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1656.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1656.8" textLength="260.4"> version             </tspan><tspan class="terminal-3782670756-r2" x="285.2" y="1656.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="297. [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1683.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1683.2" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1709.6" textLength="1488">╭─ CI Image tools ─────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1709.6" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1736" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1736" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1736" textLength="173.6"> build-image  </tspan><tspan class="terminal-3782670756-r2" x="198.4" y="1736" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1736" textLength="1091.2">Build CI image. Include [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1762.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1762.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1762.4" textLength="173.6"> pull-image   </tspan><tspan class="terminal-3782670756-r2" x="198.4" y="1762.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1762.4" textLength="1091.2">Pull and opti [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1788.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1788.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1788.8" textLength="173.6"> verify-image </tspan><tspan class="terminal-3782670756-r2" x="198.4" y="1788.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="210.8" y="1788.8" textLength="1091.2">Verify CI image. & [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1815.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1815.2" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1841.6" textLength="1488">╭─ Production Image tools ─────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1841.6" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1868" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1868" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1868" textLength="235.6"> build-prod-image  </tspan><tspan class="terminal-3782670756-r2" x="260.4" y="1868" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="272.8" y="1868" textLength="1178">Build Production image.&# [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1894.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1894.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1894.4" textLength="235.6">                   </tspan><tspan class="terminal-3782670756-r2" x="260.4" y="1894.4" textLength="12.4"> </tspan><tspan class="terminal [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1920.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1920.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1920.8" textLength="235.6"> pull-prod-image   </tspan><tspan class="terminal-3782670756-r2" x="260.4" y="1920.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="272.8" y="1920.8" textLength="1178">Pull and o [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1947.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="1947.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="1947.2" textLength="235.6"> verify-prod-image </tspan><tspan class="terminal-3782670756-r2" x="260.4" y="1947.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="272.8" y="1947.2" textLength="1178">Verify Production im [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="1973.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="1973.6" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2000" textLength="1488">╭─ Release management ─────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3782670756-r2" x="1488" y="2000" textLength="12.4">
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2026.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2026.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2026.4" textLength="396.8"> verify-provider-packages       </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2026.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434" y="2026.4" textLen [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2052.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2052.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2052.8" textLength="396.8"> prepare-provider-documentation </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2052.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434" y="2052.8" textLength="942.4">Prepare CHANG [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2079.2" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2079.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2079.2" textLength="396.8"> prepare-provider-packages      </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2079.2" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434" y="2079.2" textLength=" [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2105.6" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2105.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2105.6" textLength="396.8"> prepare-airflow-package        </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2105.6" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434" y="2105.6" te [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2132" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2132" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2132" textLength="396.8"> release-prod-images            </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2132" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434" y [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2158.4" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2158.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2158.4" textLength="396.8"> generate-constraints           </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2158.4" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434 [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2184.8" textLength="12.4">│</tspan><tspan class="terminal-3782670756-r2" x="12.4" y="2184.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r5" x="24.8" y="2184.8" textLength="396.8"> find-newer-dependencies        </tspan><tspan class="terminal-3782670756-r2" x="421.6" y="2184.8" textLength="12.4"> </tspan><tspan class="terminal-3782670756-r2" x="434" y="2184.8" te [...]
+</tspan><tspan class="terminal-3782670756-r4" x="0" y="2211.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3782670756-r2" x="1488" y="2211.2" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-config.svg b/images/breeze/output-config.svg
index 8f7df02100..03552c1cb4 100644
--- a/images/breeze/output-config.svg
+++ b/images/breeze/output-config.svg
@@ -1,145 +1,74 @@
-<svg width="1720.0" height="824" viewBox="0 0 1720.0 824"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 646.4000000000001" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-747847725-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-747847725-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-747847725-terminal-body .blink {
- animation: rich-svg-747847725-blinker 1s infinite;
- }
- @keyframes rich-svg-747847725-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-747847725-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-747847725-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-747847725-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-747847725-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-747847725-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-747847725-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-747847725-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-747847725-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-747847725-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-747847725-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-747847725-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-747847725-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-747847725-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-747847725-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-3989136504-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-3989136504-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-3989136504-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3989136504-r2 { fill: #c5c8c6 }
+.terminal-3989136504-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3989136504-r4 { fill: #868887 }
+.terminal-3989136504-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3989136504-r6 { fill: #98a84b;font-weight: bold }
+.terminal-3989136504-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-747847725-terminal-wrapper">
- <div class="rich-svg-747847725-terminal">
- <div class="rich-svg-747847725-terminal-header">
- <svg class="rich-svg-747847725-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-747847725-terminal-title-tab">Command: config</div>
- </div>
- <div class="rich-svg-747847725-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze config [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Show/update configuration (Python, Backend, Cheatsheet, ASCIIART). </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Config flags ───────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--backend</span><span class="r1"> </span><span class="r6">-b</span><span class="r1"> </span><span class="r1">Database backend to use.</span><span class="r1"> </span><span class="r7">(>sqlite< | mysql | postgres | mssql)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: sqlite] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--cheatsheet</span><span class="r1">/</span><span class="r5">--no-cheatsheet</span><span class="r1"> </span><span class="r6">-C</span><span class="r1">/</span><span class="r6">-c</span><span class="r1"> </span><span class="r1">Enable/disable cheatsheet. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--asciiart</span><span class="r1">/</span><span class="r5">--no-asciiart</span><span class="r1"> </span><span class="r6">-A</span><span class="r1">/</span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Enable/disable ASCIIart. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--colour</span><span class="r1">/</span><span class="r5">--no-colour</span><span class="r1"> </span><span class="r6">-B</span><span class="r1">/</span><span class="r6">-b</span><span class="r1"> </span><span class="r1">Enable/disable Colour mode (useful for colour blind-friendly communication). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--postgres-version</span><span class="r1"> </span><span class="r6">-P</span><span class="r1"> </span><span class="r1">Version of Postgres used.</span><span class="r1"> </span><span class="r7">(>10< | 11 | 12 | 13)</span><span class="r1"> </span><span class="r4">[default: 10]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mysql-version</span><span class="r1"> </span><span class="r6">-M</span><span class="r1"> </span><span class="r1">Version of MySQL used.</span><span class="r1"> </span><span class="r7">(>5.7< | 8)</span><span class="r1"> </span><span class="r4">[default: 5.7]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mssql-version</span><span class="r1"> </span><span class="r6">-S</span><span class="r1"> </span><span class="r1">Version of MsSQL used.</span><span class="r1"> </span><span class="r7">(>2017-latest< | 2019-latest)</span><span class="r1"> </span><span class="r4">[default: 2017-latest]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="606.4" rx="12"/><text class="terminal-3989136504-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: config</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-3989136504-matrix" font-variant="east-asian-width-values"><tspan class="terminal-3989136504-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-3989136504-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-3989136504-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-3989136504-r1" x="99.2" y="46.4" textLength="1388.8">breeze config [OPTIONS]                                 [...]
+</tspan><tspan class="terminal-3989136504-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-3989136504-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-3989136504-r2" x="12.4" y="99.2" textLength="1463.2">Show/update configuration (Python, Backend, Cheatsheet, ASCIIART).                                       [...]
+</tspan><tspan class="terminal-3989136504-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="152" textLength="1488">╭─ Config flags ───────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3989136504-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="178.4" textLength="99.2">--python</tspan><tspan class="terminal-3989136504-r2" x="136.4" y="178.4" textLength="272.8">                      </tspan> [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="204.8" textLength="483.6">                                       </tspan><tspan class="terminal-3989136504-r7" x="496" y="204.8" textLength="744">(>3.7< [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="231.2" textLength="483.6">                                       </tspan><tspan class="terminal-3989136504-r4" x="496" y="231.2" textLength="744">[default: [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="257.6" textLength="111.6">--backend</tspan><tspan class="terminal-3989136504-r2" x="148.8" y="257.6" textLength="260.4">                     </tspan><tsp [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="284" textLength="483.6">                                       </tspan><tspan class="terminal-3989136504-r4" x="496" y="284" textLength="297.6">[default: s [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="310.4" textLength="148.8">--cheatsheet</tspan><tspan class="terminal-3989136504-r2" x="186" y="310.4" textLength="12.4">/</tspan><tspan class="terminal-3989136504-r5" x="198.4" y="310.4" textLength="186">--no-cheatsheet</tspan><tspan class="terminal-39891365 [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="336.8" textLength="124">--asciiart</tspan><tspan class="terminal-3989136504-r2" x="161.2" y="336.8" textLength="12.4">/</tspan><tspan class="terminal-3989136504-r5" x="173.6" y="336.8" textLength="161.2">--no-asciiart</tspan><tspan class="terminal-3989136504 [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="363.2" textLength="99.2">--colour</tspan><tspan class="terminal-3989136504-r2" x="136.4" y="363.2" textLength="12.4">/</tspan><tspan class="terminal-3989136504-r5" x="148.8" y="363.2" textLength="136.4">--no-colour</tspan><tspan class="terminal-3989136504-r2 [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="389.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3989136504-r2" x="1488" y="389.6" textLength="12.4">
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="416" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3989136504-r2" x="1488" y="416" textLength="12.4">
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="442.4" textLength="223.2">--postgres-version</tspan><tspan class="terminal-3989136504-r2" x="260.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r6" x="285.2" y="442.4" textLength="24.8">-P</tspan><tspan class="terminal-3 [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="468.8" textLength="186">--mysql-version</tspan><tspan class="terminal-3989136504-r2" x="223.2" y="468.8" textLength="62">     </tspan><tspan class="terminal-3989136504-r6" x="285.2" y="468.8" textLength="24.8">-M</tspan><tspan class= [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="495.2" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="495.2" textLength="186">--mssql-version</tspan><tspan class="terminal-3989136504-r2" x="223.2" y="495.2" textLength="62">     </tspan><tspan class="terminal-3989136504-r6" x="285.2" y="495.2" textLength="24.8">-S</tspan><tspan class= [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-3989136504-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-3989136504-r5" x="37.2" y="521.6" textLength="74.4">--help</tspan><tspan class="terminal-3989136504-r2" x="111.6" y="521.6" textLength="173.6">              </tspan><tspan class="terminal-3989136504-r6" x="285.2" y= [...]
+</tspan><tspan class="terminal-3989136504-r4" x="0" y="548" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3989136504-r2" x="1488" y="548" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-docker-compose-tests.svg b/images/breeze/output-docker-compose-tests.svg
index 10d2e0314b..71d16ecda4 100644
--- a/images/breeze/output-docker-compose-tests.svg
+++ b/images/breeze/output-docker-compose-tests.svg
@@ -1,141 +1,70 @@
-<svg width="1720.0" height="736" viewBox="0 0 1720.0 736"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 540.8" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2342278705-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2342278705-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2342278705-terminal-body .blink {
- animation: rich-svg-2342278705-blinker 1s infinite;
- }
- @keyframes rich-svg-2342278705-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2342278705-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2342278705-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2342278705-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2342278705-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2342278705-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2342278705-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2342278705-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2342278705-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2342278705-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2342278705-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2342278705-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2342278705-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2342278705-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2342278705-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2246963640-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2246963640-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2246963640-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2246963640-r2 { fill: #c5c8c6 }
+.terminal-2246963640-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2246963640-r4 { fill: #868887 }
+.terminal-2246963640-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2246963640-r6 { fill: #98a84b;font-weight: bold }
+.terminal-2246963640-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2342278705-terminal-wrapper">
- <div class="rich-svg-2342278705-terminal">
- <div class="rich-svg-2342278705-terminal-header">
- <svg class="rich-svg-2342278705-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2342278705-terminal-title-tab">Command: docker-compose-tests</div>
- </div>
- <div class="rich-svg-2342278705-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze docker-compose-tests [OPTIONS] [EXTRA_PYTEST_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Run docker-compose tests. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Docker-compose tests flag ──────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-name</span><span class="r1"> </span><span class="r6">-n</span><span class="r1"> Name of the image to verify (overrides </span><span class="r5">--python</span><span class="r1"> and </span><span class="r5">--image-tag</span><span class="r1">). </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="500.8" rx="12"/><text class="terminal-2246963640-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: docker-compose-tests</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2246963640-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2246963640-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2246963640-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2246963640-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2246963640-r1" x="99.2" y="46.4" textLength="1388.8">breeze docker-compose-tests [OPTIONS] [EXTRA_PYTEST_ARGS]...                          [...]
+</tspan><tspan class="terminal-2246963640-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2246963640-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2246963640-r2" x="12.4" y="99.2" textLength="1463.2">Run docker-compose tests.                                                 [...]
+</tspan><tspan class="terminal-2246963640-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="152" textLength="1488">╭─ Docker-compose tests flag ──────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2246963640-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="178.4" textLength="148.8">--image-name</tspan><tspan class="terminal-2246963640-r2" x="186" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r6" x="210.8" y="178.4" textLength="24.8">-n</tspan><tspan class="terminal-224696364 [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="204.8" textLength="99.2">--python</tspan><tspan class="terminal-2246963640-r2" x="136.4" y="204.8" textLength="74.4">      </tspan><tspan class="terminal-2246963640-r6" x="210.8" y="204.8" textLength="24.8">-p</tspan><tspan clas [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="231.2" textLength="248">                    </tspan><tspan class="terminal-2246963640-r4" x="260.4" y="231.2" textLength="744">[default: 3.7]                   [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="257.6" textLength="136.4">--image-tag</tspan><tspan class="terminal-2246963640-r2" x="173.6" y="257.6" textLength="37.2">   </tspan><tspan class="terminal-2246963640-r6" x="210.8" y="257.6" textLength="24.8">-t</tspan><tspan class="terminal-22 [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="284" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2246963640-r2" x="1488" y="284" textLength="12.4">
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="310.4" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2246963640-r2" x="1488" y="310.4" textLength="12.4">
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="336.8" textLength="111.6">--verbose</tspan><tspan class="terminal-2246963640-r2" x="148.8" y="336.8" textLength="148.8">            </tspan><tspan class="terminal-2246963640-r6" x="297.6" y="336.8" [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="363.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-2246963640-r2" x="148.8" y="363.2" textLength="148.8">            </tspan><tspan class="terminal-2246963640-r6" x="297.6" y="363.2" [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="389.6" textLength="235.6">--github-repository</tspan><tspan class="terminal-2246963640-r2" x="272.8" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r6" x="297.6" y="389.6" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-2246963640-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-2246963640-r5" x="37.2" y="416" textLength="74.4">--help</tspan><tspan class="terminal-2246963640-r2" x="111.6" y="416" textLength="186">               </tspan><tspan class="terminal-2246963640-r6" x="297.6" y="416 [...]
+</tspan><tspan class="terminal-2246963640-r4" x="0" y="442.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2246963640-r2" x="1488" y="442.4" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-exec.svg b/images/breeze/output-exec.svg
index 2f49fba216..b197eb3d63 100644
--- a/images/breeze/output-exec.svg
+++ b/images/breeze/output-exec.svg
@@ -1,133 +1,62 @@
-<svg width="1720.0" height="582" viewBox="0 0 1720.0 582"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 356.0" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1543437590-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1543437590-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1543437590-terminal-body .blink {
- animation: rich-svg-1543437590-blinker 1s infinite;
- }
- @keyframes rich-svg-1543437590-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1543437590-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1543437590-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1543437590-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1543437590-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1543437590-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1543437590-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1543437590-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1543437590-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1543437590-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1543437590-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1543437590-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1543437590-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1543437590-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-3580858145-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-3580858145-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-3580858145-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3580858145-r2 { fill: #c5c8c6 }
+.terminal-3580858145-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3580858145-r4 { fill: #868887 }
+.terminal-3580858145-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3580858145-r6 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1543437590-terminal-wrapper">
- <div class="rich-svg-1543437590-terminal">
- <div class="rich-svg-1543437590-terminal-header">
- <svg class="rich-svg-1543437590-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1543437590-terminal-title-tab">Command: exec</div>
- </div>
- <div class="rich-svg-1543437590-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze exec [OPTIONS] [EXEC_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Joins the interactive shell of running airflow container </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="316" rx="12"/><text class="terminal-3580858145-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: exec</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-3580858145-matrix" font-variant="east-asian-width-values"><tspan class="terminal-3580858145-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-3580858145-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-3580858145-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-3580858145-r1" x="99.2" y="46.4" textLength="1388.8">breeze exec [OPTIONS] [EXEC_ARGS]...                              [...]
+</tspan><tspan class="terminal-3580858145-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-3580858145-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-3580858145-r2" x="12.4" y="99.2" textLength="1463.2">Joins the interactive shell of running airflow container                                       [...]
+</tspan><tspan class="terminal-3580858145-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-3580858145-r4" x="0" y="152" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3580858145-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-3580858145-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-3580858145-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3580858145-r5" x="37.2" y="178.4" textLength="111.6">--verbose</tspan><tspan class="terminal-3580858145-r2" x="148.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3580858145-r6" x="173.6" y="178.4" textLength="24.8">-v</tspan><tspan class="terminal-3580858145 [...]
+</tspan><tspan class="terminal-3580858145-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-3580858145-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-3580858145-r5" x="37.2" y="204.8" textLength="111.6">--dry-run</tspan><tspan class="terminal-3580858145-r2" x="148.8" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-3580858145-r6" x="173.6" y="204.8" textLength="24.8">-D</tspan><tspan class="terminal-3580858145 [...]
+</tspan><tspan class="terminal-3580858145-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-3580858145-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-3580858145-r5" x="37.2" y="231.2" textLength="74.4">--help</tspan><tspan class="terminal-3580858145-r2" x="111.6" y="231.2" textLength="62">     </tspan><tspan class="terminal-3580858145-r6" x="173.6" y="231.2" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-3580858145-r4" x="0" y="257.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3580858145-r2" x="1488" y="257.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-find-newer-dependencies.svg b/images/breeze/output-find-newer-dependencies.svg
index 1791cc795f..ea60bb6ab5 100644
--- a/images/breeze/output-find-newer-dependencies.svg
+++ b/images/breeze/output-find-newer-dependencies.svg
@@ -1,142 +1,71 @@
-<svg width="1720.0" height="758" viewBox="0 0 1720.0 758"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 567.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1486174241-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1486174241-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1486174241-terminal-body .blink {
- animation: rich-svg-1486174241-blinker 1s infinite;
- }
- @keyframes rich-svg-1486174241-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1486174241-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1486174241-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1486174241-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1486174241-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1486174241-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1486174241-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1486174241-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1486174241-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1486174241-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1486174241-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1486174241-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1486174241-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1486174241-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1486174241-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1328349300-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1328349300-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1328349300-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1328349300-r2 { fill: #c5c8c6 }
+.terminal-1328349300-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1328349300-r4 { fill: #868887 }
+.terminal-1328349300-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-1328349300-r6 { fill: #98a84b;font-weight: bold }
+.terminal-1328349300-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1486174241-terminal-wrapper">
- <div class="rich-svg-1486174241-terminal">
- <div class="rich-svg-1486174241-terminal-header">
- <svg class="rich-svg-1486174241-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1486174241-terminal-title-tab">Command: find-newer-dependencies</div>
- </div>
- <div class="rich-svg-1486174241-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze find-newer-dependencies [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Finds which dependencies are being upgraded. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Find newer dependencies flags ──────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--timezone</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Timezone to use during the check</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--updated-on-or-after</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Date when the release was updated after</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--max-age</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Max age of the last release (used if no updated-on-or-after if specified)</span><span class="r1"> </span><span class="r7">(INTEGER)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-constraints-reference</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> Constraint reference to use. Useful with </span><span class="r5">--use-airflow-version</span><span class="r1"> parameter to </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> specify constraints for the installed version and to find newer dependencies </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(TEXT) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="527.2" rx="12"/><text class="terminal-1328349300-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: find-newer-dependencies</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1328349300-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1328349300-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1328349300-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1328349300-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1328349300-r1" x="99.2" y="46.4" textLength="1388.8">breeze find-newer-dependencies [OPTIONS]                               [...]
+</tspan><tspan class="terminal-1328349300-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1328349300-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-1328349300-r2" x="12.4" y="99.2" textLength="1463.2">Finds which dependencies are being upgraded.                                          &# [...]
+</tspan><tspan class="terminal-1328349300-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="152" textLength="1488">╭─ Find newer dependencies flags ──────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1328349300-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r5" x="37.2" y="178.4" textLength="99.2">--python</tspan><tspan class="terminal-1328349300-r2" x="136.4" y="178.4" textLength="186">               </tspan><tspan class="terminal-1328349300-r6" x="322 [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="204.8" textLength="359.6">                             </tspan><tspan class="terminal-1328349300-r4" x="372" y="204.8" textLength="744">[default: 3.7]          [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r5" x="37.2" y="231.2" textLength="124">--timezone</tspan><tspan class="terminal-1328349300-r2" x="161.2" y="231.2" textLength="161.2">             </tspan><tspan class="terminal-1328349300-r2" x="322.4" y="23 [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r5" x="37.2" y="257.6" textLength="260.4">--updated-on-or-after</tspan><tspan class="terminal-1328349300-r2" x="297.6" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r2" x="322.4" y="257.6" textLength="24.8">  </tspan><tspan clas [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r5" x="37.2" y="284" textLength="111.6">--max-age</tspan><tspan class="terminal-1328349300-r2" x="148.8" y="284" textLength="173.6">              </tspan><tspan class="terminal-1328349300-r2" x="322.4" y="284 [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="310.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1328349300-r2" x="1488" y="310.4" textLength="12.4">
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="336.8" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1328349300-r2" x="1488" y="336.8" textLength="12.4">
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r5" x="37.2" y="363.2" textLength="384.4">--airflow-constraints-reference</tspan><tspan class="terminal-1328349300-r2" x="421.6" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r2" x="446.4" y="363.2" textLength="24.8">  </tspan>< [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="389.6" textLength="1463.2">                                       specify constraints for the installed version and to  [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="416" textLength="483.6">                                       </tspan><tspan class="terminal-1328349300-r7" x="496" y="416" textLength="954.8">(TEXT)  [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-1328349300-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-1328349300-r5" x="37.2" y="442.4" textLength="74.4">--help</tspan><tspan class="terminal-1328349300-r2" x="111.6" y="442.4" textLength="334.8">                        [...]
+</tspan><tspan class="terminal-1328349300-r4" x="0" y="468.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1328349300-r2" x="1488" y="468.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-fix-ownership.svg b/images/breeze/output-fix-ownership.svg
index 62ee3e15fd..0f24fc0a2f 100644
--- a/images/breeze/output-fix-ownership.svg
+++ b/images/breeze/output-fix-ownership.svg
@@ -1,133 +1,62 @@
-<svg width="1720.0" height="582" viewBox="0 0 1720.0 582"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 356.0" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3669752792-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3669752792-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3669752792-terminal-body .blink {
- animation: rich-svg-3669752792-blinker 1s infinite;
- }
- @keyframes rich-svg-3669752792-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3669752792-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3669752792-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3669752792-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3669752792-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3669752792-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3669752792-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3669752792-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3669752792-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3669752792-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3669752792-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3669752792-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3669752792-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3669752792-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-242586001-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-242586001-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-242586001-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-242586001-r2 { fill: #c5c8c6 }
+.terminal-242586001-r3 { fill: #d0b344;font-weight: bold }
+.terminal-242586001-r4 { fill: #868887 }
+.terminal-242586001-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-242586001-r6 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3669752792-terminal-wrapper">
- <div class="rich-svg-3669752792-terminal">
- <div class="rich-svg-3669752792-terminal-header">
- <svg class="rich-svg-3669752792-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3669752792-terminal-title-tab">Command: fix-ownership</div>
- </div>
- <div class="rich-svg-3669752792-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze fix-ownership [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Fix ownership of source files to be same as host user. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="316" rx="12"/><text class="terminal-242586001-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: fix-ownership</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-242586001-matrix" font-variant="east-asian-width-values"><tspan class="terminal-242586001-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-242586001-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-242586001-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-242586001-r1" x="99.2" y="46.4" textLength="1388.8">breeze fix-ownership [OPTIONS]                                 [...]
+</tspan><tspan class="terminal-242586001-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-242586001-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-242586001-r2" x="12.4" y="99.2" textLength="1463.2">Fix ownership of source files to be same as host user.                                      [...]
+</tspan><tspan class="terminal-242586001-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-242586001-r4" x="0" y="152" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-242586001-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-242586001-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-242586001-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-242586001-r5" x="37.2" y="178.4" textLength="111.6">--verbose</tspan><tspan class="terminal-242586001-r2" x="148.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-242586001-r6" x="173.6" y="178.4" textLength="24.8">-v</tspan><tspan class="terminal-242586001-r2" x [...]
+</tspan><tspan class="terminal-242586001-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-242586001-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-242586001-r5" x="37.2" y="204.8" textLength="111.6">--dry-run</tspan><tspan class="terminal-242586001-r2" x="148.8" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-242586001-r6" x="173.6" y="204.8" textLength="24.8">-D</tspan><tspan class="terminal-242586001-r2" x [...]
+</tspan><tspan class="terminal-242586001-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-242586001-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-242586001-r5" x="37.2" y="231.2" textLength="74.4">--help</tspan><tspan class="terminal-242586001-r2" x="111.6" y="231.2" textLength="62">     </tspan><tspan class="terminal-242586001-r6" x="173.6" y="231.2" textLength="24.8">-h</tspan><tspan class="terminal-242 [...]
+</tspan><tspan class="terminal-242586001-r4" x="0" y="257.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-242586001-r2" x="1488" y="257.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-free-space.svg b/images/breeze/output-free-space.svg
index 2ce40fadce..d0dd2934fe 100644
--- a/images/breeze/output-free-space.svg
+++ b/images/breeze/output-free-space.svg
@@ -1,135 +1,64 @@
-<svg width="1720.0" height="604" viewBox="0 0 1720.0 604"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 382.40000000000003" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2873849831-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2873849831-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2873849831-terminal-body .blink {
- animation: rich-svg-2873849831-blinker 1s infinite;
- }
- @keyframes rich-svg-2873849831-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2873849831-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2873849831-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2873849831-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2873849831-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2873849831-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2873849831-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2873849831-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2873849831-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2873849831-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2873849831-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2873849831-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2873849831-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2873849831-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2873849831-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1041213903-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1041213903-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1041213903-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1041213903-r2 { fill: #c5c8c6 }
+.terminal-1041213903-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1041213903-r4 { fill: #868887 }
+.terminal-1041213903-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-1041213903-r6 { fill: #98a84b;font-weight: bold }
+.terminal-1041213903-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2873849831-terminal-wrapper">
- <div class="rich-svg-2873849831-terminal">
- <div class="rich-svg-2873849831-terminal-header">
- <svg class="rich-svg-2873849831-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2873849831-terminal-title-tab">Command: free-space</div>
- </div>
- <div class="rich-svg-2873849831-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze free-space [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Free space for jobs run in CI. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="342.4" rx="12"/><text class="terminal-1041213903-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: free-space</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1041213903-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1041213903-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1041213903-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1041213903-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1041213903-r1" x="99.2" y="46.4" textLength="1388.8">breeze free-space [OPTIONS]                                 [...]
+</tspan><tspan class="terminal-1041213903-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1041213903-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-1041213903-r2" x="12.4" y="99.2" textLength="1463.2">Free space for jobs run in CI.                                             [...]
+</tspan><tspan class="terminal-1041213903-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1041213903-r4" x="0" y="152" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1041213903-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-1041213903-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-1041213903-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1041213903-r5" x="37.2" y="178.4" textLength="111.6">--verbose</tspan><tspan class="terminal-1041213903-r2" x="148.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1041213903-r6" x="173.6" y="178.4" textLength="24.8">-v</tspan><tspan class="terminal-1041213903 [...]
+</tspan><tspan class="terminal-1041213903-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-1041213903-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-1041213903-r5" x="37.2" y="204.8" textLength="111.6">--dry-run</tspan><tspan class="terminal-1041213903-r2" x="148.8" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-1041213903-r6" x="173.6" y="204.8" textLength="24.8">-D</tspan><tspan class="terminal-1041213903 [...]
+</tspan><tspan class="terminal-1041213903-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-1041213903-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-1041213903-r5" x="37.2" y="231.2" textLength="99.2">--answer</tspan><tspan class="terminal-1041213903-r2" x="136.4" y="231.2" textLength="37.2">   </tspan><tspan class="terminal-1041213903-r6" x="173.6" y="231.2" textLength="24.8">-a</tspan><tspan class="terminal-104121 [...]
+</tspan><tspan class="terminal-1041213903-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-1041213903-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-1041213903-r5" x="37.2" y="257.6" textLength="74.4">--help</tspan><tspan class="terminal-1041213903-r2" x="111.6" y="257.6" textLength="62">     </tspan><tspan class="terminal-1041213903-r6" x="173.6" y="257.6" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-1041213903-r4" x="0" y="284" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1041213903-r2" x="1488" y="284" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-generate-constraints.svg b/images/breeze/output-generate-constraints.svg
index a725cca3e7..e3f755c7c2 100644
--- a/images/breeze/output-generate-constraints.svg
+++ b/images/breeze/output-generate-constraints.svg
@@ -1,152 +1,81 @@
-<svg width="1720.0" height="978" viewBox="0 0 1720.0 978"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 831.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2279249032-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2279249032-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2279249032-terminal-body .blink {
- animation: rich-svg-2279249032-blinker 1s infinite;
- }
- @keyframes rich-svg-2279249032-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2279249032-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2279249032-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2279249032-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2279249032-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2279249032-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2279249032-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2279249032-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2279249032-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2279249032-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2279249032-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2279249032-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2279249032-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2279249032-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2279249032-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2623790576-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2623790576-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2623790576-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2623790576-r2 { fill: #c5c8c6 }
+.terminal-2623790576-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2623790576-r4 { fill: #868887 }
+.terminal-2623790576-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2623790576-r6 { fill: #98a84b;font-weight: bold }
+.terminal-2623790576-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2279249032-terminal-wrapper">
- <div class="rich-svg-2279249032-terminal">
- <div class="rich-svg-2279249032-terminal-header">
- <svg class="rich-svg-2279249032-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2279249032-terminal-title-tab">Command: generate-constraints</div>
- </div>
- <div class="rich-svg-2279249032-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze generate-constraints [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Generates pinned constraint files with all extras from setup.py in parallel. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Generate constraints flags ─────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--generate-constraints-mode</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Mode of generating constraints</span><span class="r1"> </span><span class="r7">(source-providers | pypi-providers | no-providers)</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: source-providers] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debug</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Drop user in shell instead of running the command. Useful for debugging. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Parallel running ───────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--run-in-parallel</span><span class="r1"> </span><span class="r1">Run the operation in parallel on all or selected subset of Python versions. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--parallelism</span><span class="r1"> </span><span class="r1">Maximum number of processes to use while running the operation in parallel.</span><span class="r1"> </span><span class="r7">(INTEGER RANGE)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 4; 1<=x<=8] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python-versions</span><span class="r1"> </span><span class="r1">Space separated list of python versions used for build with multiple versions.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7 3.8 3.9 3.10] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="791.2" rx="12"/><text class="terminal-2623790576-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: generate-constraints</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2623790576-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2623790576-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2623790576-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2623790576-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2623790576-r1" x="99.2" y="46.4" textLength="1388.8">breeze generate-constraints [OPTIONS]                              &# [...]
+</tspan><tspan class="terminal-2623790576-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2623790576-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2623790576-r2" x="12.4" y="99.2" textLength="1463.2">Generates pinned constraint files with all extras from setup.py in parallel.                                  [...]
+</tspan><tspan class="terminal-2623790576-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="152" textLength="1488">╭─ Generate constraints flags ─────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2623790576-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="178.4" textLength="136.4">--image-tag</tspan><tspan class="terminal-2623790576-r2" x="173.6" y="178.4" textLength="223.2">                  </tspan><tspan class="termin [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="204.8" textLength="99.2">--python</tspan><tspan class="terminal-2623790576-r2" x="136.4" y="204.8" textLength="260.4">                     </tspan><tspan [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="231.2" textLength="434">                                   </tspan><tspan class="terminal-2623790576-r7" x="446.4" y="231.2" textLength="744">(>3.7< | 3.8 |& [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="257.6" textLength="434">                                   </tspan><tspan class="terminal-2623790576-r4" x="446.4" y="257.6" textLength="744">[default: 3.7]    [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="284" textLength="334.8">--generate-constraints-mode</tspan><tspan class="terminal-2623790576-r2" x="372" y="284" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r2" x="396.8" y="284" textLength="24.8">  </tspan><tspan class="ter [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="310.4" textLength="434">                                   </tspan><tspan class="terminal-2623790576-r4" x="446.4" y="310.4" textLength="372">[default: source-providers] [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="336.8" textLength="86.8">--debug</tspan><tspan class="terminal-2623790576-r2" x="124" y="336.8" textLength="272.8">                      </tspan><ts [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="363.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2623790576-r2" x="1488" y="363.2" textLength="12.4">
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="389.6" textLength="1488">╭─ Parallel running ───────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2623790576-r2" x="1488" y="389.6" textLength="12.4">
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="416" textLength="210.8">--run-in-parallel</tspan><tspan class="terminal-2623790576-r2" x="248" y="416" textLength="49.6">    </tspan><tspan class="terminal-2623790576-r2" x="297.6" y="416" textLength="1153.2">Run the operation  [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="442.4" textLength="161.2">--parallelism</tspan><tspan class="terminal-2623790576-r2" x="198.4" y="442.4" textLength="99.2">        </tspan><tspan class="terminal-2623790576-r2" x="297.6" y="442.4" textLength="930">Maxi [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="468.8" textLength="285.2">                       </tspan><tspan class="terminal-2623790576-r4" x="297.6" y="468.8" textLength="930">[default: 4; 1<=x<=8]            [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="495.2" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="495.2" textLength="210.8">--python-versions</tspan><tspan class="terminal-2623790576-r2" x="248" y="495.2" textLength="49.6">    </tspan><tspan class="terminal-2623790576-r2" x="297.6" y="495.2" textLength="967.2">Space separated [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="521.6" textLength="285.2">                       </tspan><tspan class="terminal-2623790576-r4" x="297.6" y="521.6" textLength="967.2">[default: 3.7 3.8 3.9 3.10]          [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="548" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2623790576-r2" x="1488" y="548" textLength="12.4">
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="574.4" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2623790576-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="600.8" textLength="111.6">--verbose</tspan><tspan class="terminal-2623790576-r2" x="148.8" y="600.8" textLength="148.8">            </tspan><tspan class="terminal-2623790576-r6" x="297.6" y="600.8" [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="627.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-2623790576-r2" x="148.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-2623790576-r6" x="297.6" y="627.2" [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="653.6" textLength="235.6">--github-repository</tspan><tspan class="terminal-2623790576-r2" x="272.8" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r6" x="297.6" y="653.6" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="680" textLength="99.2">--answer</tspan><tspan class="terminal-2623790576-r2" x="136.4" y="680" textLength="161.2">             </tspan><tspan class="terminal-2623790576-r6" x="297.6" y="680" textLe [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-2623790576-r2" x="12.4" y="706.4" textLength="24.8">  </tspan><tspan class="terminal-2623790576-r5" x="37.2" y="706.4" textLength="74.4">--help</tspan><tspan class="terminal-2623790576-r2" x="111.6" y="706.4" textLength="186">               </tspan><tspan class="terminal-2623790576-r6" x="297.6 [...]
+</tspan><tspan class="terminal-2623790576-r4" x="0" y="732.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2623790576-r2" x="1488" y="732.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-prepare-airflow-package.svg b/images/breeze/output-prepare-airflow-package.svg
index 8a2413fca8..2a3c147b51 100644
--- a/images/breeze/output-prepare-airflow-package.svg
+++ b/images/breeze/output-prepare-airflow-package.svg
@@ -1,140 +1,69 @@
-<svg width="1720.0" height="714" viewBox="0 0 1720.0 714"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 514.4000000000001" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3263880800-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3263880800-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3263880800-terminal-body .blink {
- animation: rich-svg-3263880800-blinker 1s infinite;
- }
- @keyframes rich-svg-3263880800-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3263880800-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3263880800-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3263880800-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3263880800-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3263880800-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3263880800-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3263880800-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3263880800-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3263880800-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3263880800-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3263880800-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3263880800-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3263880800-terminal-body .r6 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
-.rich-svg-3263880800-terminal-body .r7 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-747892512-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-747892512-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-747892512-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-747892512-r2 { fill: #c5c8c6 }
+.terminal-747892512-r3 { fill: #d0b344;font-weight: bold }
+.terminal-747892512-r4 { fill: #868887 }
+.terminal-747892512-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-747892512-r6 { fill: #8d7b39 }
+.terminal-747892512-r7 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3263880800-terminal-wrapper">
- <div class="rich-svg-3263880800-terminal">
- <div class="rich-svg-3263880800-terminal-header">
- <svg class="rich-svg-3263880800-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3263880800-terminal-title-tab">Command: prepare-airflow-package</div>
- </div>
- <div class="rich-svg-3263880800-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze prepare-airflow-package [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Prepare sdist/whl package of Airflow. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Package flags ──────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-format</span><span class="r1"> </span><span class="r1">Format of packages.</span><span class="r1"> </span><span class="r6">(wheel | sdist | both)</span><span class="r1"> </span><span class="r4">[default: wheel]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--version-suffix-for-pypi</span><span class="r1"> </span><span class="r1">Version suffix used for PyPI packages (alpha, beta, rc1, etc.).</span><span class="r1"> </span><span class="r6">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r7">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r7">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r7">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r6">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debug</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Drop user in shell instead of running the command. Useful for debugging. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r7">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="474.4" rx="12"/><text class="terminal-747892512-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: prepare-airflow-package</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-747892512-matrix" font-variant="east-asian-width-values"><tspan class="terminal-747892512-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-747892512-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-747892512-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-747892512-r1" x="99.2" y="46.4" textLength="1388.8">breeze prepare-airflow-package [OPTIONS]                              &# [...]
+</tspan><tspan class="terminal-747892512-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-747892512-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-747892512-r2" x="12.4" y="99.2" textLength="1463.2">Prepare sdist/whl package of Airflow.                                             [...]
+</tspan><tspan class="terminal-747892512-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="152" textLength="1488">╭─ Package flags ──────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-747892512-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-747892512-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="178.4" textLength="198.4">--package-format</tspan><tspan class="terminal-747892512-r2" x="235.6" y="178.4" textLength="161.2">             </tspan><tspan class="terminal-747892512-r2" x="396.8" y= [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="204.8" textLength="310">--version-suffix-for-pypi</tspan><tspan class="terminal-747892512-r2" x="347.2" y="204.8" textLength="49.6">    </tspan><tspan class="terminal-747892512-r2" x="396.8" y="204.8" textLength="781.2">Version suffix&# [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="231.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-747892512-r2" x="1488" y="231.2" textLength="12.4">
+</tspan><tspan class="terminal-747892512-r4" x="0" y="257.6" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-747892512-r2" x="1488" y="257.6" textLength="12.4">
+</tspan><tspan class="terminal-747892512-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="284" textLength="111.6">--verbose</tspan><tspan class="terminal-747892512-r2" x="148.8" y="284" textLength="148.8">            </tspan><tspan class="terminal-747892512-r7" x="297.6" y="284" textLength="24. [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="310.4" textLength="111.6">--dry-run</tspan><tspan class="terminal-747892512-r2" x="148.8" y="310.4" textLength="148.8">            </tspan><tspan class="terminal-747892512-r7" x="297.6" y="310.4" textL [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="336.8" textLength="235.6">--github-repository</tspan><tspan class="terminal-747892512-r2" x="272.8" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-747892512-r7" x="297.6" y="336.8" textLength="24.8">-g</tspan><tspan class="terminal-74789 [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="363.2" textLength="86.8">--debug</tspan><tspan class="terminal-747892512-r2" x="124" y="363.2" textLength="173.6">              </tspan><tspan class="terminal-747892512-r2" x="297.6" y="363.2 [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-747892512-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-747892512-r5" x="37.2" y="389.6" textLength="74.4">--help</tspan><tspan class="terminal-747892512-r2" x="111.6" y="389.6" textLength="186">               </tspan><tspan class="terminal-747892512-r7" x="297.6" y=" [...]
+</tspan><tspan class="terminal-747892512-r4" x="0" y="416" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-747892512-r2" x="1488" y="416" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-prepare-provider-documentation.svg b/images/breeze/output-prepare-provider-documentation.svg
index 16d2d5b0a9..2e5369e5ce 100644
--- a/images/breeze/output-prepare-provider-documentation.svg
+++ b/images/breeze/output-prepare-provider-documentation.svg
@@ -1,150 +1,79 @@
-<svg width="1720.0" height="934" viewBox="0 0 1720.0 934"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 778.4000000000001" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1358763671-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1358763671-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1358763671-terminal-body .blink {
- animation: rich-svg-1358763671-blinker 1s infinite;
- }
- @keyframes rich-svg-1358763671-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1358763671-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1358763671-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1358763671-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1358763671-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1358763671-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1358763671-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1358763671-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1358763671-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1358763671-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1358763671-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1358763671-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1358763671-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1358763671-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1358763671-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1009257927-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1009257927-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1009257927-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1009257927-r2 { fill: #c5c8c6 }
+.terminal-1009257927-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1009257927-r4 { fill: #868887 }
+.terminal-1009257927-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-1009257927-r6 { fill: #98a84b;font-weight: bold }
+.terminal-1009257927-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1358763671-terminal-wrapper">
- <div class="rich-svg-1358763671-terminal">
- <div class="rich-svg-1358763671-terminal-header">
- <svg class="rich-svg-1358763671-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1358763671-terminal-title-tab">Command: prepare-provider-documentation</div>
- </div>
- <div class="rich-svg-1358763671-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze prepare-provider-documentation [OPTIONS] [airbyte | alibaba | amazon | apache.beam | apache.cassandra | </span></div>
-<div><span class="r2"> apache.drill | apache.druid | apache.hdfs | apache.hive | apache.kylin | </span></div>
-<div><span class="r2"> apache.livy | apache.pig | apache.pinot | apache.spark | apache.sqoop | </span></div>
-<div><span class="r2"> arangodb | asana | celery | cloudant | cncf.kubernetes | databricks | </span></div>
-<div><span class="r2"> datadog | dbt.cloud | dingding | discord | docker | elasticsearch | </span></div>
-<div><span class="r2"> exasol | facebook | ftp | github | google | grpc | hashicorp | http | </span></div>
-<div><span class="r2"> imap | influxdb | jdbc | jenkins | jira | microsoft.azure | </span></div>
-<div><span class="r2"> microsoft.mssql | microsoft.psrp | microsoft.winrm | mongo | mysql | </span></div>
-<div><span class="r2"> neo4j | odbc | openfaas | opsgenie | oracle | pagerduty | papermill | </span></div>
-<div><span class="r2"> plexus | postgres | presto | qubole | redis | salesforce | samba | </span></div>
-<div><span class="r2"> segment | sendgrid | sftp | singularity | slack | snowflake | sqlite | </span></div>
-<div><span class="r2"> ssh | tableau | telegram | trino | vertica | yandex | zendesk]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Prepare CHANGELOG, README and COMMITS information for providers. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Provider documentation preparation flags ───────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debug</span><span class="r1"> </span><span class="r1">Drop user in shell instead of running the command. Useful for debugging. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="738.4" rx="12"/><text class="terminal-1009257927-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: prepare-provider-documentation</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1009257927-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1009257927-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1009257927-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1009257927-r1" x="99.2" y="46.4" textLength="1388.8">breeze prepare-provider-documentation [OPTIONS] [airbyte | alibaba | amazon | apache.beam | apache.cassandra |  </tspan><tspan class="terminal-1009257927-r2" x [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="72.8" textLength="1488">                                              apache.drill | apache.druid | apache.hdfs | apache.hive | apache.kylin |  </tspan> [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="99.2" textLength="1488">                                              apache.livy | apache.pig | apache.pinot | apache.spark | apache.sqoop |   </t [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="125.6" textLength="1488">                                              arangodb | asana | celery | cloudant | cncf.kubernetes | databricks |   [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="152" textLength="1488">                                              datadog | dbt.cloud | dingding | discord | docker | elasticsearch |   [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="178.4" textLength="1488">                                              exasol | facebook | ftp | github | google | grpc | hashicorp | htt [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="204.8" textLength="1488">                                              imap | influxdb | jdbc | jenkins | jira | microsoft.azure |    [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="231.2" textLength="1488">                                              microsoft.mssql | microsoft.psrp | microsoft.winrm | mongo | mysql |     [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="257.6" textLength="1488">                                              neo4j | odbc | openfaas | opsgenie | oracle | pagerduty | papermill |&# [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="284" textLength="1488">                                              plexus | postgres | presto | qubole | redis | salesforce | samba | & [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="310.4" textLength="1488">                                              segment | sendgrid | sftp | singularity | slack | snowflake | sqlite |& [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="336.8" textLength="1488">                                              ssh | tableau | telegram | trino | vertica | yandex | zendesk]...   [...]
+</tspan><tspan class="terminal-1009257927-r1" x="0" y="363.2" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1009257927-r2" x="0" y="389.6" textLength="12.4"> </tspan><tspan class="terminal-1009257927-r2" x="12.4" y="389.6" textLength="1463.2">Prepare CHANGELOG, README and COMMITS information for providers.                                      [...]
+</tspan><tspan class="terminal-1009257927-r2" x="0" y="416" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="442.4" textLength="1488">╭─ Provider documentation preparation flags ───────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1009257927-r2" x="1488" y="442.4" textLength="12.4">
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-1009257927-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r5" x="37.2" y="468.8" textLength="86.8">--debug</tspan><tspan class="terminal-1009257927-r2" x="124" y="468.8" textLength="49.6">    </tspan><tspan class="terminal-1009257927-r2" x="173.6" y="468.8" textLength="1277.2">Drop user in shell& [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="495.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1009257927-r2" x="1488" y="495.2" textLength="12.4">
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="521.6" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1009257927-r2" x="1488" y="521.6" textLength="12.4">
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-1009257927-r2" x="12.4" y="548" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r5" x="37.2" y="548" textLength="111.6">--verbose</tspan><tspan class="terminal-1009257927-r2" x="148.8" y="548" textLength="148.8">            </tspan><tspan class="terminal-1009257927-r6" x="297.6" y="548" textLength [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="574.4" textLength="12.4">│</tspan><tspan class="terminal-1009257927-r2" x="12.4" y="574.4" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r5" x="37.2" y="574.4" textLength="111.6">--dry-run</tspan><tspan class="terminal-1009257927-r2" x="148.8" y="574.4" textLength="148.8">            </tspan><tspan class="terminal-1009257927-r6" x="297.6" y="574.4" [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-1009257927-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r5" x="37.2" y="600.8" textLength="235.6">--github-repository</tspan><tspan class="terminal-1009257927-r2" x="272.8" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r6" x="297.6" y="600.8" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-1009257927-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r5" x="37.2" y="627.2" textLength="99.2">--answer</tspan><tspan class="terminal-1009257927-r2" x="136.4" y="627.2" textLength="161.2">             </tspan><tspan class="terminal-1009257927-r6" x="297.6" y="627 [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-1009257927-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-1009257927-r5" x="37.2" y="653.6" textLength="74.4">--help</tspan><tspan class="terminal-1009257927-r2" x="111.6" y="653.6" textLength="186">               </tspan><tspan class="terminal-1009257927-r6" x="297.6 [...]
+</tspan><tspan class="terminal-1009257927-r4" x="0" y="680" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1009257927-r2" x="1488" y="680" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-prepare-provider-packages.svg b/images/breeze/output-prepare-provider-packages.svg
index a65ef5d483..ec2a04598f 100644
--- a/images/breeze/output-prepare-provider-packages.svg
+++ b/images/breeze/output-prepare-provider-packages.svg
@@ -1,152 +1,81 @@
-<svg width="1720.0" height="978" viewBox="0 0 1720.0 978"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 831.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3971887859-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3971887859-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3971887859-terminal-body .blink {
- animation: rich-svg-3971887859-blinker 1s infinite;
- }
- @keyframes rich-svg-3971887859-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3971887859-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3971887859-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3971887859-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3971887859-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3971887859-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3971887859-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3971887859-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3971887859-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3971887859-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3971887859-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3971887859-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3971887859-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3971887859-terminal-body .r6 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
-.rich-svg-3971887859-terminal-body .r7 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1292600021-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1292600021-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1292600021-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1292600021-r2 { fill: #c5c8c6 }
+.terminal-1292600021-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1292600021-r4 { fill: #868887 }
+.terminal-1292600021-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-1292600021-r6 { fill: #8d7b39 }
+.terminal-1292600021-r7 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3971887859-terminal-wrapper">
- <div class="rich-svg-3971887859-terminal">
- <div class="rich-svg-3971887859-terminal-header">
- <svg class="rich-svg-3971887859-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3971887859-terminal-title-tab">Command: prepare-provider-packages</div>
- </div>
- <div class="rich-svg-3971887859-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze prepare-provider-packages [OPTIONS] [airbyte | alibaba | amazon | apache.beam | apache.cassandra | </span></div>
-<div><span class="r2"> apache.drill | apache.druid | apache.hdfs | apache.hive | apache.kylin | </span></div>
-<div><span class="r2"> apache.livy | apache.pig | apache.pinot | apache.spark | apache.sqoop | </span></div>
-<div><span class="r2"> arangodb | asana | celery | cloudant | cncf.kubernetes | databricks | datadog </span></div>
-<div><span class="r2"> | dbt.cloud | dingding | discord | docker | elasticsearch | exasol | facebook </span></div>
-<div><span class="r2"> | ftp | github | google | grpc | hashicorp | http | imap | influxdb | jdbc | </span></div>
-<div><span class="r2"> jenkins | jira | microsoft.azure | microsoft.mssql | microsoft.psrp | </span></div>
-<div><span class="r2"> microsoft.winrm | mongo | mysql | neo4j | odbc | openfaas | opsgenie | oracle </span></div>
-<div><span class="r2"> | pagerduty | papermill | plexus | postgres | presto | qubole | redis | </span></div>
-<div><span class="r2"> salesforce | samba | segment | sendgrid | sftp | singularity | slack | </span></div>
-<div><span class="r2"> snowflake | sqlite | ssh | tableau | telegram | trino | vertica | yandex | </span></div>
-<div><span class="r2"> zendesk]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Prepare sdist/whl packages of Airflow Providers. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Package flags ──────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-format</span><span class="r1"> </span><span class="r1">Format of packages.</span><span class="r1"> </span><span class="r6">(wheel | sdist | both)</span><span class="r1"> </span><span class="r4">[default: wheel]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--version-suffix-for-pypi</span><span class="r1"> </span><span class="r1">Version suffix used for PyPI packages (alpha, beta, rc1, etc.).</span><span class="r1"> </span><span class="r6">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-list-file</span><span class="r1"> </span><span class="r1">Read list of packages from text file (one package per line)</span><span class="r1"> </span><span class="r6">(FILENAME)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debug</span><span class="r1"> </span><span class="r1">Drop user in shell instead of running the command. Useful for debugging. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r7">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r7">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r7">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r6">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r7">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="791.2" rx="12"/><text class="terminal-1292600021-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: prepare-provider-packages</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1292600021-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1292600021-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1292600021-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1292600021-r1" x="99.2" y="46.4" textLength="1388.8">breeze prepare-provider-packages [OPTIONS] [airbyte | alibaba | amazon | apache.beam | apache.cassandra |       </tspan><tspan class=" [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="72.8" textLength="1488">                                         apache.drill | apache.druid | apache.hdfs | apache.hive | apache.kylin |       </tspan> [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="99.2" textLength="1488">                                         apache.livy | apache.pig | apache.pinot | apache.spark | apache.sqoop |        </t [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="125.6" textLength="1488">                                         arangodb | asana | celery | cloudant | cncf.kubernetes | databricks | datadog  </tspan><tspan cl [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="152" textLength="1488">                                         | dbt.cloud | dingding | discord | docker | elasticsearch | exasol | facebook  </tspan><tspan [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="178.4" textLength="1488">                                         | ftp | github | google | grpc | hashicorp | http | imap | influxdb | jdbc | [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="204.8" textLength="1488">                                         jenkins | jira | microsoft.azure | microsoft.mssql | microsoft.psrp |         [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="231.2" textLength="1488">                                         microsoft.winrm | mongo | mysql | neo4j | odbc | openfaas | opsgenie | oracle  </tspan [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="257.6" textLength="1488">                                         | pagerduty | papermill | plexus | postgres | presto | qubole | redis |    & [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="284" textLength="1488">                                         salesforce | samba | segment | sendgrid | sftp | singularity | slack |      [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="310.4" textLength="1488">                                         snowflake | sqlite | ssh | tableau | telegram | trino | vertica | yandex |    [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="336.8" textLength="1488">                                         zendesk]...                           [...]
+</tspan><tspan class="terminal-1292600021-r1" x="0" y="363.2" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1292600021-r2" x="0" y="389.6" textLength="12.4"> </tspan><tspan class="terminal-1292600021-r2" x="12.4" y="389.6" textLength="1463.2">Prepare sdist/whl packages of Airflow Providers.                                         &# [...]
+</tspan><tspan class="terminal-1292600021-r2" x="0" y="416" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="442.4" textLength="1488">╭─ Package flags ──────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1292600021-r2" x="1488" y="442.4" textLength="12.4">
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="468.8" textLength="198.4">--package-format</tspan><tspan class="terminal-1292600021-r2" x="235.6" y="468.8" textLength="161.2">             </tspan><tspan class="terminal-1292600021-r2" x="396. [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="495.2" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="495.2" textLength="310">--version-suffix-for-pypi</tspan><tspan class="terminal-1292600021-r2" x="347.2" y="495.2" textLength="49.6">    </tspan><tspan class="terminal-1292600021-r2" x="396.8" y="495.2" textLength="781.2">Version suf [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="521.6" textLength="235.6">--package-list-file</tspan><tspan class="terminal-1292600021-r2" x="272.8" y="521.6" textLength="124">          </tspan><tspan class="terminal-1292600021-r2" x="396.8" y="521.6" text [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="548" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="548" textLength="86.8">--debug</tspan><tspan class="terminal-1292600021-r2" x="124" y="548" textLength="272.8">                      </tspan><tspan clas [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="574.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1292600021-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="600.8" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1292600021-r2" x="1488" y="600.8" textLength="12.4">
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="627.2" textLength="111.6">--verbose</tspan><tspan class="terminal-1292600021-r2" x="148.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-1292600021-r7" x="297.6" y="627.2" [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="653.6" textLength="111.6">--dry-run</tspan><tspan class="terminal-1292600021-r2" x="148.8" y="653.6" textLength="148.8">            </tspan><tspan class="terminal-1292600021-r7" x="297.6" y="653.6" [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="680" textLength="235.6">--github-repository</tspan><tspan class="terminal-1292600021-r2" x="272.8" y="680" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r7" x="297.6" y="680" textLength="24.8">-g</tspan><tspan class="terminal-1292600021 [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-1292600021-r2" x="12.4" y="706.4" textLength="24.8">  </tspan><tspan class="terminal-1292600021-r5" x="37.2" y="706.4" textLength="74.4">--help</tspan><tspan class="terminal-1292600021-r2" x="111.6" y="706.4" textLength="186">               </tspan><tspan class="terminal-1292600021-r7" x="297.6 [...]
+</tspan><tspan class="terminal-1292600021-r4" x="0" y="732.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1292600021-r2" x="1488" y="732.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-pull-image.svg b/images/breeze/output-pull-image.svg
index 9210dfa41b..5f8ebcf5b3 100644
--- a/images/breeze/output-pull-image.svg
+++ b/images/breeze/output-pull-image.svg
@@ -1,152 +1,81 @@
-<svg width="1720.0" height="978" viewBox="0 0 1720.0 978"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 831.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2481567883-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2481567883-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2481567883-terminal-body .blink {
- animation: rich-svg-2481567883-blinker 1s infinite;
- }
- @keyframes rich-svg-2481567883-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2481567883-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2481567883-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2481567883-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2481567883-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2481567883-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2481567883-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2481567883-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2481567883-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2481567883-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2481567883-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2481567883-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2481567883-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2481567883-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2481567883-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2951931415-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2951931415-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2951931415-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2951931415-r2 { fill: #c5c8c6 }
+.terminal-2951931415-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2951931415-r4 { fill: #868887 }
+.terminal-2951931415-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2951931415-r6 { fill: #98a84b;font-weight: bold }
+.terminal-2951931415-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2481567883-terminal-wrapper">
- <div class="rich-svg-2481567883-terminal">
- <div class="rich-svg-2481567883-terminal-header">
- <svg class="rich-svg-2481567883-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2481567883-terminal-title-tab">Command: pull-image</div>
- </div>
- <div class="rich-svg-2481567883-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze pull-image [OPTIONS] [EXTRA_PYTEST_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Pull and optionally verify CI images - possibly in parallel for all Python versions. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Pull image flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-token</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">The token used to authenticate to GitHub.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verify-image</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Verify image. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--wait-for-image</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Wait until image is available. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--tag-as-latest</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Tags the image as latest and update checksum of all files after pulling. Used in CI to pull </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">the image built in another job. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Parallel running ───────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--run-in-parallel</span><span class="r1"> </span><span class="r1">Run the operation in parallel on all or selected subset of Python versions. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--parallelism</span><span class="r1"> </span><span class="r1">Maximum number of processes to use while running the operation in parallel.</span><span class="r1"> </span><span class="r7">(INTEGER RANGE)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 4; 1<=x<=8] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python-versions</span><span class="r1"> </span><span class="r1">Space separated list of python versions used for build with multiple versions.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7 3.8 3.9 3.10] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="791.2" rx="12"/><text class="terminal-2951931415-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: pull-image</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2951931415-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2951931415-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2951931415-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2951931415-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2951931415-r1" x="99.2" y="46.4" textLength="1388.8">breeze pull-image [OPTIONS] [EXTRA_PYTEST_ARGS]...                           &# [...]
+</tspan><tspan class="terminal-2951931415-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2951931415-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2951931415-r2" x="12.4" y="99.2" textLength="1463.2">Pull and optionally verify CI images - possibly in parallel for all Python versions.                              [...]
+</tspan><tspan class="terminal-2951931415-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="152" textLength="1488">╭─ Pull image flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2951931415-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="178.4" textLength="136.4">--image-tag</tspan><tspan class="terminal-2951931415-r2" x="173.6" y="178.4" textLength="86.8">       </tspan><tspan class="terminal-2951931415-r6" x="260.4" y="178.4" textLength="24.8">-t</tspan>< [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="204.8" textLength="99.2">--python</tspan><tspan class="terminal-2951931415-r2" x="136.4" y="204.8" textLength="124">          </tspan><tspan class="terminal-2951931415-r6" x="260.4" y="204.8" textLength="24.8 [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="231.2" textLength="297.6">                        </tspan><tspan class="terminal-2951931415-r4" x="310" y="231.2" textLength="744">[default: 3.7]               [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="257.6" textLength="173.6">--github-token</tspan><tspan class="terminal-2951931415-r2" x="210.8" y="257.6" textLength="49.6">    </tspan><tspan class="terminal-2951931415-r2" x="260.4" y="257.6" textLength="24.8">  </tspan><tspan [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="284" textLength="173.6">--verify-image</tspan><tspan class="terminal-2951931415-r2" x="210.8" y="284" textLength="49.6">    </tspan><tspan class="terminal-2951931415-r2" x="260.4" y="284" textLength="24.8">  </tspan><tspan class="te [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="310.4" textLength="198.4">--wait-for-image</tspan><tspan class="terminal-2951931415-r2" x="235.6" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r2" x="260.4" y="310.4" textLength="24.8">  </tspan><tspan class="te [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="336.8" textLength="186">--tag-as-latest</tspan><tspan class="terminal-2951931415-r2" x="223.2" y="336.8" textLength="37.2">   </tspan><tspan class="terminal-2951931415-r2" x="260.4" y="336.8" textLength="24.8">  </tspan><tspan class= [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="363.2" textLength="297.6">                        </tspan><tspan class="terminal-2951931415-r2" x="310" y="363.2" textLength="1140.8">the image built in another job.       & [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="389.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2951931415-r2" x="1488" y="389.6" textLength="12.4">
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="416" textLength="1488">╭─ Parallel running ───────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2951931415-r2" x="1488" y="416" textLength="12.4">
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="442.4" textLength="210.8">--run-in-parallel</tspan><tspan class="terminal-2951931415-r2" x="248" y="442.4" textLength="49.6">    </tspan><tspan class="terminal-2951931415-r2" x="297.6" y="442.4" textLength="1153.2">Run the opera [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="468.8" textLength="161.2">--parallelism</tspan><tspan class="terminal-2951931415-r2" x="198.4" y="468.8" textLength="99.2">        </tspan><tspan class="terminal-2951931415-r2" x="297.6" y="468.8" textLength="930">Maxi [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="495.2" textLength="285.2">                       </tspan><tspan class="terminal-2951931415-r4" x="297.6" y="495.2" textLength="930">[default: 4; 1<=x<=8]            [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="521.6" textLength="210.8">--python-versions</tspan><tspan class="terminal-2951931415-r2" x="248" y="521.6" textLength="49.6">    </tspan><tspan class="terminal-2951931415-r2" x="297.6" y="521.6" textLength="967.2">Space separated [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="548" textLength="285.2">                       </tspan><tspan class="terminal-2951931415-r4" x="297.6" y="548" textLength="967.2">[default: 3.7 3.8 3.9 3.10]           [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="574.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2951931415-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="600.8" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2951931415-r2" x="1488" y="600.8" textLength="12.4">
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="627.2" textLength="111.6">--verbose</tspan><tspan class="terminal-2951931415-r2" x="148.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-2951931415-r6" x="297.6" y="627.2" [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="653.6" textLength="111.6">--dry-run</tspan><tspan class="terminal-2951931415-r2" x="148.8" y="653.6" textLength="148.8">            </tspan><tspan class="terminal-2951931415-r6" x="297.6" y="653.6" [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="680" textLength="235.6">--github-repository</tspan><tspan class="terminal-2951931415-r2" x="272.8" y="680" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r6" x="297.6" y="680" textLength="24.8">-g</tspan><tspan class="terminal-2951931415 [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-2951931415-r2" x="12.4" y="706.4" textLength="24.8">  </tspan><tspan class="terminal-2951931415-r5" x="37.2" y="706.4" textLength="74.4">--help</tspan><tspan class="terminal-2951931415-r2" x="111.6" y="706.4" textLength="186">               </tspan><tspan class="terminal-2951931415-r6" x="297.6 [...]
+</tspan><tspan class="terminal-2951931415-r4" x="0" y="732.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2951931415-r2" x="1488" y="732.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-pull-prod-image.svg b/images/breeze/output-pull-prod-image.svg
index 5b99666741..f1039eb903 100644
--- a/images/breeze/output-pull-prod-image.svg
+++ b/images/breeze/output-pull-prod-image.svg
@@ -1,152 +1,81 @@
-<svg width="1720.0" height="978" viewBox="0 0 1720.0 978"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 831.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-604093544-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-604093544-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-604093544-terminal-body .blink {
- animation: rich-svg-604093544-blinker 1s infinite;
- }
- @keyframes rich-svg-604093544-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-604093544-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-604093544-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-604093544-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-604093544-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-604093544-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-604093544-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-604093544-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-604093544-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-604093544-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-604093544-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-604093544-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-604093544-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-604093544-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-604093544-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-3561090006-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-3561090006-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-3561090006-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3561090006-r2 { fill: #c5c8c6 }
+.terminal-3561090006-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3561090006-r4 { fill: #868887 }
+.terminal-3561090006-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3561090006-r6 { fill: #98a84b;font-weight: bold }
+.terminal-3561090006-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-604093544-terminal-wrapper">
- <div class="rich-svg-604093544-terminal">
- <div class="rich-svg-604093544-terminal-header">
- <svg class="rich-svg-604093544-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-604093544-terminal-title-tab">Command: pull-prod-image</div>
- </div>
- <div class="rich-svg-604093544-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze pull-prod-image [OPTIONS] [EXTRA_PYTEST_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Pull and optionally verify Production images - possibly in parallel for all Python versions. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Pull image flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-token</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">The token used to authenticate to GitHub.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verify-image</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Verify image. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--wait-for-image</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Wait until image is available. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--tag-as-latest</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Tags the image as latest and update checksum of all files after pulling. Used in CI to pull </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">the image built in another job. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Parallel running ───────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--run-in-parallel</span><span class="r1"> </span><span class="r1">Run the operation in parallel on all or selected subset of Python versions. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--parallelism</span><span class="r1"> </span><span class="r1">Maximum number of processes to use while running the operation in parallel.</span><span class="r1"> </span><span class="r7">(INTEGER RANGE)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 4; 1<=x<=8] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python-versions</span><span class="r1"> </span><span class="r1">Space separated list of python versions used for build with multiple versions.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7 3.8 3.9 3.10] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="791.2" rx="12"/><text class="terminal-3561090006-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: pull-prod-image</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-3561090006-matrix" font-variant="east-asian-width-values"><tspan class="terminal-3561090006-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-3561090006-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-3561090006-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-3561090006-r1" x="99.2" y="46.4" textLength="1388.8">breeze pull-prod-image [OPTIONS] [EXTRA_PYTEST_ARGS]...                           [...]
+</tspan><tspan class="terminal-3561090006-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-3561090006-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-3561090006-r2" x="12.4" y="99.2" textLength="1463.2">Pull and optionally verify Production images - possibly in parallel for all Python versions.                          </tspan><t [...]
+</tspan><tspan class="terminal-3561090006-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="152" textLength="1488">╭─ Pull image flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3561090006-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="178.4" textLength="136.4">--image-tag</tspan><tspan class="terminal-3561090006-r2" x="173.6" y="178.4" textLength="86.8">       </tspan><tspan class="terminal-3561090006-r6" x="260.4" y="178.4" textLength="24.8">-t</tspan>< [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="204.8" textLength="99.2">--python</tspan><tspan class="terminal-3561090006-r2" x="136.4" y="204.8" textLength="124">          </tspan><tspan class="terminal-3561090006-r6" x="260.4" y="204.8" textLength="24.8 [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="231.2" textLength="297.6">                        </tspan><tspan class="terminal-3561090006-r4" x="310" y="231.2" textLength="744">[default: 3.7]               [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="257.6" textLength="173.6">--github-token</tspan><tspan class="terminal-3561090006-r2" x="210.8" y="257.6" textLength="49.6">    </tspan><tspan class="terminal-3561090006-r2" x="260.4" y="257.6" textLength="24.8">  </tspan><tspan [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="284" textLength="173.6">--verify-image</tspan><tspan class="terminal-3561090006-r2" x="210.8" y="284" textLength="49.6">    </tspan><tspan class="terminal-3561090006-r2" x="260.4" y="284" textLength="24.8">  </tspan><tspan class="te [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="310.4" textLength="198.4">--wait-for-image</tspan><tspan class="terminal-3561090006-r2" x="235.6" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r2" x="260.4" y="310.4" textLength="24.8">  </tspan><tspan class="te [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="336.8" textLength="186">--tag-as-latest</tspan><tspan class="terminal-3561090006-r2" x="223.2" y="336.8" textLength="37.2">   </tspan><tspan class="terminal-3561090006-r2" x="260.4" y="336.8" textLength="24.8">  </tspan><tspan class= [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="363.2" textLength="297.6">                        </tspan><tspan class="terminal-3561090006-r2" x="310" y="363.2" textLength="1140.8">the image built in another job.       & [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="389.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3561090006-r2" x="1488" y="389.6" textLength="12.4">
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="416" textLength="1488">╭─ Parallel running ───────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3561090006-r2" x="1488" y="416" textLength="12.4">
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="442.4" textLength="210.8">--run-in-parallel</tspan><tspan class="terminal-3561090006-r2" x="248" y="442.4" textLength="49.6">    </tspan><tspan class="terminal-3561090006-r2" x="297.6" y="442.4" textLength="1153.2">Run the opera [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="468.8" textLength="161.2">--parallelism</tspan><tspan class="terminal-3561090006-r2" x="198.4" y="468.8" textLength="99.2">        </tspan><tspan class="terminal-3561090006-r2" x="297.6" y="468.8" textLength="930">Maxi [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="495.2" textLength="285.2">                       </tspan><tspan class="terminal-3561090006-r4" x="297.6" y="495.2" textLength="930">[default: 4; 1<=x<=8]            [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="521.6" textLength="210.8">--python-versions</tspan><tspan class="terminal-3561090006-r2" x="248" y="521.6" textLength="49.6">    </tspan><tspan class="terminal-3561090006-r2" x="297.6" y="521.6" textLength="967.2">Space separated [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="548" textLength="285.2">                       </tspan><tspan class="terminal-3561090006-r4" x="297.6" y="548" textLength="967.2">[default: 3.7 3.8 3.9 3.10]           [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="574.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3561090006-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="600.8" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3561090006-r2" x="1488" y="600.8" textLength="12.4">
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="627.2" textLength="111.6">--verbose</tspan><tspan class="terminal-3561090006-r2" x="148.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-3561090006-r6" x="297.6" y="627.2" [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="653.6" textLength="111.6">--dry-run</tspan><tspan class="terminal-3561090006-r2" x="148.8" y="653.6" textLength="148.8">            </tspan><tspan class="terminal-3561090006-r6" x="297.6" y="653.6" [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="680" textLength="235.6">--github-repository</tspan><tspan class="terminal-3561090006-r2" x="272.8" y="680" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r6" x="297.6" y="680" textLength="24.8">-g</tspan><tspan class="terminal-3561090006 [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-3561090006-r2" x="12.4" y="706.4" textLength="24.8">  </tspan><tspan class="terminal-3561090006-r5" x="37.2" y="706.4" textLength="74.4">--help</tspan><tspan class="terminal-3561090006-r2" x="111.6" y="706.4" textLength="186">               </tspan><tspan class="terminal-3561090006-r6" x="297.6 [...]
+</tspan><tspan class="terminal-3561090006-r4" x="0" y="732.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3561090006-r2" x="1488" y="732.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-release-prod-images.svg b/images/breeze/output-release-prod-images.svg
index ff21de3509..31f4da7b4d 100644
--- a/images/breeze/output-release-prod-images.svg
+++ b/images/breeze/output-release-prod-images.svg
@@ -1,151 +1,80 @@
-<svg width="1720.0" height="912" viewBox="0 0 1720.0 912"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 752.0" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3322458697-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3322458697-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3322458697-terminal-body .blink {
- animation: rich-svg-3322458697-blinker 1s infinite;
- }
- @keyframes rich-svg-3322458697-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3322458697-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3322458697-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3322458697-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3322458697-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3322458697-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3322458697-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3322458697-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3322458697-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r5 {color: #cd3131; text-decoration-color: #cd3131;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r6 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r8 {color: #6c1e1e; text-decoration-color: #6c1e1e;background-color: #0c0c0c;}
-.rich-svg-3322458697-terminal-body .r9 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1467282442-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1467282442-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1467282442-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1467282442-r2 { fill: #c5c8c6 }
+.terminal-1467282442-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1467282442-r4 { fill: #868887 }
+.terminal-1467282442-r5 { fill: #cc555a }
+.terminal-1467282442-r6 { fill: #68a0b3;font-weight: bold }
+.terminal-1467282442-r7 { fill: #8d7b39 }
+.terminal-1467282442-r8 { fill: #8a4346 }
+.terminal-1467282442-r9 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3322458697-terminal-wrapper">
- <div class="rich-svg-3322458697-terminal">
- <div class="rich-svg-3322458697-terminal-header">
- <svg class="rich-svg-3322458697-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3322458697-terminal-title-tab">Command: release-prod-images</div>
- </div>
- <div class="rich-svg-3322458697-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze release-prod-images [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Release production images to DockerHub (needs DockerHub permissions). </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Release PROD IMAGE flags ───────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">*</span><span class="r1"> </span><span class="r6">--airflow-version</span><span class="r1"> </span><span class="r1">Airflow version to release (2.3.0, 2.3.0rc1 etc.)</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r8">[required]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r6">--dockerhub-repo</span><span class="r1"> </span><span class="r1">DockerHub repository for the images</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r6">--slim-images</span><span class="r1"> </span><span class="r1">Whether to prepare slim images instead of the regular ones. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r6">--limit-python</span><span class="r1"> </span><span class="r1">Specific python to build slim images for (if not specified - the images are built for all </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">available python versions) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(3.7 | 3.8 | 3.9 | 3.10) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r6">--limit-platform</span><span class="r1"> </span><span class="r1">Specific platform to build images for (if not specified, multiplatform images will be </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">built. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: linux/amd64,linux/arm64] </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r6">--skip-latest</span><span class="r1"> </span><span class="r1">Whether to skip publishing the latest images (so that 'latest' images are not updated). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">This should only be used if you release image for previous branches. Automatically set </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r1">when rc/alpha/beta images are built. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">--verbose</span><span class="r1"> </span><span class="r9">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">--dry-run</span><span class="r1"> </span><span class="r9">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">--help</span><span class="r1"> </span><span class="r9">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="712" rx="12"/><text class="terminal-1467282442-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: release-prod-images</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1467282442-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1467282442-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1467282442-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1467282442-r1" x="99.2" y="46.4" textLength="1388.8">breeze release-prod-images [OPTIONS]                               [...]
+</tspan><tspan class="terminal-1467282442-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1467282442-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r2" x="12.4" y="99.2" textLength="1463.2">Release production images to DockerHub (needs DockerHub permissions).                                     [...]
+</tspan><tspan class="terminal-1467282442-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="152" textLength="1488">╭─ Release PROD IMAGE flags ───────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1467282442-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r5" x="37.2" y="178.4" textLength="12.4">*</tspan><tspan class="terminal-1467282442-r2" x="49.6" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="74.4" y="178.4" textLength="210.8">--airflow-version</tspan><tspan class="terminal-14672 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r2" x="37.2" y="204.8" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r2" x="49.6" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="74.4" y="204.8" textLength="198.4">--dockerhub-repo</tspan><tspan class="terminal-1 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r2" x="37.2" y="231.2" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r2" x="49.6" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="74.4" y="231.2" textLength="161.2">--slim-images</tspan><tspan class="terminal-1467 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r2" x="37.2" y="257.6" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r2" x="49.6" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="74.4" y="257.6" textLength="173.6">--limit-python</tspan><tspan class="terminal-146 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="284" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r2" x="334.8" y="284" textLength="1116">available python versions)          [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="310.4" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r7" x="334.8" y="310.4" textLength="1116">(3.7 | 3.8 | 3.9 | 3.10)      [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r2" x="37.2" y="336.8" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r2" x="49.6" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="74.4" y="336.8" textLength="198.4">--limit-platform</tspan><tspan class="terminal-1 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="363.2" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r2" x="334.8" y="363.2" textLength="1116">built.              [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="389.6" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r7" x="334.8" y="389.6" textLength="1116">(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)  &# [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="416" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r4" x="334.8" y="416" textLength="1116">[default: linux/amd64,linux/arm64]          [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r2" x="37.2" y="442.4" textLength="12.4"> </tspan><tspan class="terminal-1467282442-r2" x="49.6" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="74.4" y="442.4" textLength="161.2">--skip-latest</tspan><tspan class="terminal-1467 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="468.8" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r2" x="334.8" y="468.8" textLength="1116">This should only be used if you release image&# [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="495.2" textLength="322.4">                          </tspan><tspan class="terminal-1467282442-r2" x="334.8" y="495.2" textLength="1116">when rc/alpha/beta images are built.     & [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="521.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1467282442-r2" x="1488" y="521.6" textLength="12.4">
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="548" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1467282442-r2" x="1488" y="548" textLength="12.4">
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="574.4" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="574.4" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="37.2" y="574.4" textLength="111.6">--verbose</tspan><tspan class="terminal-1467282442-r2" x="148.8" y="574.4" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r9" x="173.6" y="574.4" textLength="24.8">-v</tspan><tspan class="terminal-1467282442 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="37.2" y="600.8" textLength="111.6">--dry-run</tspan><tspan class="terminal-1467282442-r2" x="148.8" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r9" x="173.6" y="600.8" textLength="24.8">-D</tspan><tspan class="terminal-1467282442 [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-1467282442-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-1467282442-r6" x="37.2" y="627.2" textLength="74.4">--help</tspan><tspan class="terminal-1467282442-r2" x="111.6" y="627.2" textLength="62">     </tspan><tspan class="terminal-1467282442-r9" x="173.6" y="627.2" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-1467282442-r4" x="0" y="653.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1467282442-r2" x="1488" y="653.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-resource-check.svg b/images/breeze/output-resource-check.svg
index b3d347fa10..310eaf9a1e 100644
--- a/images/breeze/output-resource-check.svg
+++ b/images/breeze/output-resource-check.svg
@@ -1,133 +1,62 @@
-<svg width="1720.0" height="582" viewBox="0 0 1720.0 582"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 356.0" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3759274647-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3759274647-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3759274647-terminal-body .blink {
- animation: rich-svg-3759274647-blinker 1s infinite;
- }
- @keyframes rich-svg-3759274647-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3759274647-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3759274647-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3759274647-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3759274647-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3759274647-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3759274647-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3759274647-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3759274647-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3759274647-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3759274647-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3759274647-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3759274647-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3759274647-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-1721143440-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-1721143440-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-1721143440-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-1721143440-r2 { fill: #c5c8c6 }
+.terminal-1721143440-r3 { fill: #d0b344;font-weight: bold }
+.terminal-1721143440-r4 { fill: #868887 }
+.terminal-1721143440-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-1721143440-r6 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3759274647-terminal-wrapper">
- <div class="rich-svg-3759274647-terminal">
- <div class="rich-svg-3759274647-terminal-header">
- <svg class="rich-svg-3759274647-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3759274647-terminal-title-tab">Command: resource-check</div>
- </div>
- <div class="rich-svg-3759274647-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze resource-check [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Check if available docker resources are enough. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="316" rx="12"/><text class="terminal-1721143440-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: resource-check</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-1721143440-matrix" font-variant="east-asian-width-values"><tspan class="terminal-1721143440-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-1721143440-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-1721143440-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-1721143440-r1" x="99.2" y="46.4" textLength="1388.8">breeze resource-check [OPTIONS]                               &# [...]
+</tspan><tspan class="terminal-1721143440-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-1721143440-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-1721143440-r2" x="12.4" y="99.2" textLength="1463.2">Check if available docker resources are enough.                                          [...]
+</tspan><tspan class="terminal-1721143440-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-1721143440-r4" x="0" y="152" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-1721143440-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-1721143440-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-1721143440-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1721143440-r5" x="37.2" y="178.4" textLength="111.6">--verbose</tspan><tspan class="terminal-1721143440-r2" x="148.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-1721143440-r6" x="173.6" y="178.4" textLength="24.8">-v</tspan><tspan class="terminal-1721143440 [...]
+</tspan><tspan class="terminal-1721143440-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-1721143440-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-1721143440-r5" x="37.2" y="204.8" textLength="111.6">--dry-run</tspan><tspan class="terminal-1721143440-r2" x="148.8" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-1721143440-r6" x="173.6" y="204.8" textLength="24.8">-D</tspan><tspan class="terminal-1721143440 [...]
+</tspan><tspan class="terminal-1721143440-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-1721143440-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-1721143440-r5" x="37.2" y="231.2" textLength="74.4">--help</tspan><tspan class="terminal-1721143440-r2" x="111.6" y="231.2" textLength="62">     </tspan><tspan class="terminal-1721143440-r6" x="173.6" y="231.2" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-1721143440-r4" x="0" y="257.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-1721143440-r2" x="1488" y="257.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-self-upgrade.svg b/images/breeze/output-self-upgrade.svg
index 218e226e2d..147e6581b2 100644
--- a/images/breeze/output-self-upgrade.svg
+++ b/images/breeze/output-self-upgrade.svg
@@ -1,135 +1,64 @@
-<svg width="1720.0" height="626" viewBox="0 0 1720.0 626"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 408.8" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-4041262352-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-4041262352-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-4041262352-terminal-body .blink {
- animation: rich-svg-4041262352-blinker 1s infinite;
- }
- @keyframes rich-svg-4041262352-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-4041262352-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-4041262352-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-4041262352-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-4041262352-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-4041262352-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-4041262352-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-4041262352-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-4041262352-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-4041262352-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-4041262352-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-4041262352-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-4041262352-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-4041262352-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-3684385563-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-3684385563-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-3684385563-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3684385563-r2 { fill: #c5c8c6 }
+.terminal-3684385563-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3684385563-r4 { fill: #868887 }
+.terminal-3684385563-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3684385563-r6 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-4041262352-terminal-wrapper">
- <div class="rich-svg-4041262352-terminal">
- <div class="rich-svg-4041262352-terminal-header">
- <svg class="rich-svg-4041262352-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-4041262352-terminal-title-tab">Command: self-upgrade</div>
- </div>
- <div class="rich-svg-4041262352-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze self-upgrade [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Self upgrade Breeze. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Self-upgrade flags ─────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-current-airflow-sources</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Use current workdir Airflow sources for upgrade. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--force</span><span class="r1"> </span><span class="r6">-f</span><span class="r1"> </span><span class="r1">Force upgrade without asking question to the user. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="368.8" rx="12"/><text class="terminal-3684385563-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: self-upgrade</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-3684385563-matrix" font-variant="east-asian-width-values"><tspan class="terminal-3684385563-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-3684385563-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-3684385563-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-3684385563-r1" x="99.2" y="46.4" textLength="1388.8">breeze self-upgrade [OPTIONS]                                [...]
+</tspan><tspan class="terminal-3684385563-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-3684385563-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-3684385563-r2" x="12.4" y="99.2" textLength="1463.2">Self upgrade Breeze.                                                  [...]
+</tspan><tspan class="terminal-3684385563-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="152" textLength="1488">╭─ Self-upgrade flags ─────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3684385563-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-3684385563-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3684385563-r5" x="37.2" y="178.4" textLength="359.6">--use-current-airflow-sources</tspan><tspan class="terminal-3684385563-r2" x="396.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3684385563-r6" x="421.6" y="178.4" textLength="24.8">-a</tspan><tspan class= [...]
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-3684385563-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-3684385563-r5" x="37.2" y="204.8" textLength="86.8">--force</tspan><tspan class="terminal-3684385563-r2" x="124" y="204.8" textLength="297.6">                         [...]
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="231.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3684385563-r2" x="1488" y="231.2" textLength="12.4">
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="257.6" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3684385563-r2" x="1488" y="257.6" textLength="12.4">
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-3684385563-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-3684385563-r5" x="37.2" y="284" textLength="74.4">--help</tspan><tspan class="terminal-3684385563-r2" x="111.6" y="284" textLength="24.8">  </tspan><tspan class="terminal-3684385563-r6" x="136.4" y="284" textLength="24.8">-h</tspan><tspan class="terminal-3684385563-r2" x="161.2" [...]
+</tspan><tspan class="terminal-3684385563-r4" x="0" y="310.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3684385563-r2" x="1488" y="310.4" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-setup-autocomplete.svg b/images/breeze/output-setup-autocomplete.svg
index a307a2b9e9..b07eca2b16 100644
--- a/images/breeze/output-setup-autocomplete.svg
+++ b/images/breeze/output-setup-autocomplete.svg
@@ -1,138 +1,67 @@
-<svg width="1720.0" height="670" viewBox="0 0 1720.0 670"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 461.6" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2604643872-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2604643872-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2604643872-terminal-body .blink {
- animation: rich-svg-2604643872-blinker 1s infinite;
- }
- @keyframes rich-svg-2604643872-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2604643872-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2604643872-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2604643872-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2604643872-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2604643872-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2604643872-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2604643872-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2604643872-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2604643872-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2604643872-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2604643872-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2604643872-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2604643872-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2604643872-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-3033303522-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-3033303522-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-3033303522-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-3033303522-r2 { fill: #c5c8c6 }
+.terminal-3033303522-r3 { fill: #d0b344;font-weight: bold }
+.terminal-3033303522-r4 { fill: #868887 }
+.terminal-3033303522-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-3033303522-r6 { fill: #98a84b;font-weight: bold }
+.terminal-3033303522-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2604643872-terminal-wrapper">
- <div class="rich-svg-2604643872-terminal">
- <div class="rich-svg-2604643872-terminal-header">
- <svg class="rich-svg-2604643872-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2604643872-terminal-title-tab">Command: setup-autocomplete</div>
- </div>
- <div class="rich-svg-2604643872-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze setup-autocomplete [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Enables autocompletion of breeze commands. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Setup autocomplete flags ───────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--force</span><span class="r1"> </span><span class="r6">-f</span><span class="r1"> </span><span class="r1">Force autocomplete setup even if already setup before (overrides the setup). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="421.6" rx="12"/><text class="terminal-3033303522-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: setup-autocomplete</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-3033303522-matrix" font-variant="east-asian-width-values"><tspan class="terminal-3033303522-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-3033303522-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-3033303522-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-3033303522-r1" x="99.2" y="46.4" textLength="1388.8">breeze setup-autocomplete [OPTIONS]                               [...]
+</tspan><tspan class="terminal-3033303522-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-3033303522-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-3033303522-r2" x="12.4" y="99.2" textLength="1463.2">Enables autocompletion of breeze commands.                                            [...]
+</tspan><tspan class="terminal-3033303522-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="152" textLength="1488">╭─ Setup autocomplete flags ───────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3033303522-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-3033303522-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r5" x="37.2" y="178.4" textLength="86.8">--force</tspan><tspan class="terminal-3033303522-r2" x="124" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r6" x="148.8" y="178.4" textLength="24.8">-f</tspan><tspan class="terminal-3033303522-r2" [...]
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="204.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3033303522-r2" x="1488" y="204.8" textLength="12.4">
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="231.2" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-3033303522-r2" x="1488" y="231.2" textLength="12.4">
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-3033303522-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r5" x="37.2" y="257.6" textLength="99.2">--answer</tspan><tspan class="terminal-3033303522-r2" x="136.4" y="257.6" textLength="37.2">   </tspan><tspan class="terminal-3033303522-r6" x="173.6" y="257.6" textLength="24.8">-a</tspan><tspan class="terminal-303330 [...]
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-3033303522-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r5" x="37.2" y="284" textLength="111.6">--dry-run</tspan><tspan class="terminal-3033303522-r2" x="148.8" y="284" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r6" x="173.6" y="284" textLength="24.8">-D</tspan><tspan class="terminal-3033303522-r2" x="19 [...]
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-3033303522-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r5" x="37.2" y="310.4" textLength="111.6">--verbose</tspan><tspan class="terminal-3033303522-r2" x="148.8" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r6" x="173.6" y="310.4" textLength="24.8">-v</tspan><tspan class="terminal-3033303522 [...]
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-3033303522-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-3033303522-r5" x="37.2" y="336.8" textLength="74.4">--help</tspan><tspan class="terminal-3033303522-r2" x="111.6" y="336.8" textLength="62">     </tspan><tspan class="terminal-3033303522-r6" x="173.6" y="336.8" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-3033303522-r4" x="0" y="363.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-3033303522-r2" x="1488" y="363.2" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-shell.svg b/images/breeze/output-shell.svg
index 722a62a934..1372b7eb02 100644
--- a/images/breeze/output-shell.svg
+++ b/images/breeze/output-shell.svg
@@ -1,170 +1,99 @@
-<svg width="1720.0" height="1374" viewBox="0 0 1720.0 1374"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 1306.4" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3737790805-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3737790805-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3737790805-terminal-body .blink {
- animation: rich-svg-3737790805-blinker 1s infinite;
- }
- @keyframes rich-svg-3737790805-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3737790805-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3737790805-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3737790805-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3737790805-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3737790805-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3737790805-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3737790805-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3737790805-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3737790805-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3737790805-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3737790805-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3737790805-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3737790805-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3737790805-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-387264145-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-387264145-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-387264145-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-387264145-r2 { fill: #c5c8c6 }
+.terminal-387264145-r3 { fill: #d0b344;font-weight: bold }
+.terminal-387264145-r4 { fill: #868887 }
+.terminal-387264145-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-387264145-r6 { fill: #98a84b;font-weight: bold }
+.terminal-387264145-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3737790805-terminal-wrapper">
- <div class="rich-svg-3737790805-terminal">
- <div class="rich-svg-3737790805-terminal-header">
- <svg class="rich-svg-3737790805-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3737790805-terminal-title-tab">Command: shell</div>
- </div>
- <div class="rich-svg-3737790805-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze shell [OPTIONS] [EXTRA_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Enter breeze.py environment. this is the default command use when no other is selected. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--backend</span><span class="r1"> </span><span class="r6">-b</span><span class="r1"> </span><span class="r1">Database backend to use.</span><span class="r1"> </span><span class="r7">(>sqlite< | mysql | postgres | mssql)</span><span class="r1"> </span><span class="r4">[default: sqlite]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--postgres-version</span><span class="r1"> </span><span class="r6">-P</span><span class="r1"> </span><span class="r1">Version of Postgres used.</span><span class="r1"> </span><span class="r7">(>10< | 11 | 12 | 13)</span><span class="r1"> </span><span class="r4">[default: 10]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mysql-version</span><span class="r1"> </span><span class="r6">-M</span><span class="r1"> </span><span class="r1">Version of MySQL used.</span><span class="r1"> </span><span class="r7">(>5.7< | 8)</span><span class="r1"> </span><span class="r4">[default: 5.7]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mssql-version</span><span class="r1"> </span><span class="r6">-S</span><span class="r1"> </span><span class="r1">Version of MsSQL used.</span><span class="r1"> </span><span class="r7">(>2017-latest< | 2019-latest)</span><span class="r1"> </span><span class="r4">[default: 2017-latest]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--integration</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Integration(s) to enable when running (can be more than one). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(cassandra | kerberos | mongo | openldap | pinot | rabbitmq | redis | statsd | trino | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">all) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--forward-credentials</span><span class="r1"> </span><span class="r6">-f</span><span class="r1"> </span><span class="r1">Forward local credentials to container when running. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--db-reset</span><span class="r1"> </span><span class="r6">-d</span><span class="r1"> </span><span class="r1">Reset DB when entering the container. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Advanced flag for running ──────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-airflow-version</span><span class="r1"> Use (reinstall at entry) Airflow version from PyPI. It can also be `none`, `wheel`, or </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `sdist` if Airflow should be removed, installed from wheel packages or sdist packages </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> available in dist folder respectively. Important! Using it Implies </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `none`. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(none | wheel | sdist | <airflow_version>) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-extras</span><span class="r1"> Airflow extras to install when </span><span class="r5">--use-airflow-version</span><span class="r1"> is used </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-packages-from-dist</span><span class="r1"> Install all found packages (</span><span class="r5">--package-format</span><span class="r1"> determines type) from 'dist' folder when </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> entering breeze. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-format</span><span class="r1"> </span><span class="r1">Format of packages that should be installed from dist.</span><span class="r1"> </span><span class="r7">(wheel | sdist)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: wheel] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--force-build</span><span class="r1"> </span><span class="r1">Force image build no matter if it is determined as needed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r1">Choose scope of local sources should be mounted (default = selected). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(selected | all | none) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: selected] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debian-version</span><span class="r1"> </span><span class="r1">Debian version used for the image.</span><span class="r1"> </span><span class="r7">(bullseye | buster)</span><span class="r1"> </span><span class="r4">[default: bullseye]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: apache/airflow] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-constraints-reference</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> Constraint reference to use. Useful with </span><span class="r5">--use-airflow-version</span><span class="r1"> parameter to </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> specify constraints for the installed version and to find newer dependencies </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(TEXT) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="1266.4" rx="12"/><text class="terminal-387264145-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: shell</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-387264145-matrix" font-variant="east-asian-width-values"><tspan class="terminal-387264145-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-387264145-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-387264145-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-387264145-r1" x="99.2" y="46.4" textLength="1388.8">breeze shell [OPTIONS] [EXTRA_ARGS]...                               [...]
+</tspan><tspan class="terminal-387264145-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-387264145-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-387264145-r2" x="12.4" y="99.2" textLength="1463.2">Enter breeze.py environment. this is the default command use when no other is selected.                              [...]
+</tspan><tspan class="terminal-387264145-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="152" textLength="1488">╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-387264145-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-387264145-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="178.4" textLength="99.2">--python</tspan><tspan class="terminal-387264145-r2" x="136.4" y="178.4" textLength="186">               </tspan><tspan class="terminal-387264145-r6" x="322.4" y [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="204.8" textLength="359.6">                             </tspan><tspan class="terminal-387264145-r4" x="372" y="204.8" textLength="744">[default: 3.7]         &# [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="231.2" textLength="111.6">--backend</tspan><tspan class="terminal-387264145-r2" x="148.8" y="231.2" textLength="173.6">              </tspan><tspan class="terminal-387264145-r6" x="322.4" y=" [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="257.6" textLength="223.2">--postgres-version</tspan><tspan class="terminal-387264145-r2" x="260.4" y="257.6" textLength="62">     </tspan><tspan class="terminal-387264145-r6" x="322.4" y="257.6" textLength="24.8">-P</tspan><tspan class= [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="284" textLength="186">--mysql-version</tspan><tspan class="terminal-387264145-r2" x="223.2" y="284" textLength="99.2">        </tspan><tspan class="terminal-387264145-r6" x="322.4" y="284" textLength="24.8">-M</tspan><tspan c [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="310.4" textLength="186">--mssql-version</tspan><tspan class="terminal-387264145-r2" x="223.2" y="310.4" textLength="99.2">        </tspan><tspan class="terminal-387264145-r6" x="322.4" y="310.4" textLength="24.8">-S</tspa [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="336.8" textLength="161.2">--integration</tspan><tspan class="terminal-387264145-r2" x="198.4" y="336.8" textLength="124">          </tspan><tspan class="terminal-387264145-r2" x="322.4" y="336.8" textLength="24. [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="363.2" textLength="359.6">                             </tspan><tspan class="terminal-387264145-r7" x="372" y="363.2" textLength="1078.8">(cassandra | kerberos | mongo | openldap&# [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="389.6" textLength="359.6">                             </tspan><tspan class="terminal-387264145-r7" x="372" y="389.6" textLength="1078.8">all)           &# [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="416" textLength="260.4">--forward-credentials</tspan><tspan class="terminal-387264145-r2" x="297.6" y="416" textLength="24.8">  </tspan><tspan class="terminal-387264145-r6" x="322.4" y="416" textLength="24.8">-f</tspan><tspan class="terminal-387264145-r2" [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="442.4" textLength="124">--db-reset</tspan><tspan class="terminal-387264145-r2" x="161.2" y="442.4" textLength="161.2">             </tspan><tspan class="terminal-387264145-r6" x="322.4" y="442.4" [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="468.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-387264145-r2" x="1488" y="468.8" textLength="12.4">
+</tspan><tspan class="terminal-387264145-r4" x="0" y="495.2" textLength="1488">╭─ Advanced flag for running ──────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-387264145-r2" x="1488" y="495.2" textLength="12.4">
+</tspan><tspan class="terminal-387264145-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="521.6" textLength="260.4">--use-airflow-version</tspan><tspan class="terminal-387264145-r2" x="297.6" y="521.6" textLength="1178">       Use (reinstall at entry) Airflow version from PyPI. [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="548" textLength="1463.2">                              `sdist` if Airflow should be removed, installed from wheel packages or sdist packages & [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="574.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="574.4" textLength="1202.8">                              available in dist folder respectively. Important! Using it Implies </tspan><tspan class="terminal-38726 [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="600.8" textLength="1463.2">                              `none`.                        [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="627.2" textLength="372">                              </tspan><tspan class="terminal-387264145-r7" x="384.4" y="627.2" textLength="1066.4">(none | wheel | sdist | <airflow_ [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="653.6" textLength="198.4">--airflow-extras</tspan><tspan class="terminal-387264145-r2" x="235.6" y="653.6" textLength="533.2">            Airflow extras to install when </tspan [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="680" textLength="297.6">--use-packages-from-dist</tspan><tspan class="terminal-387264145-r2" x="334.8" y="680" textLength="396.8">    Install all found packages (</tspan><tspan class="terminal-387264145-r5" x="731.6" y="680" [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="706.4" textLength="1463.2">                              entering breeze.                     & [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="732.8" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="732.8" textLength="198.4">--package-format</tspan><tspan class="terminal-387264145-r2" x="235.6" y="732.8" textLength="148.8">            </tspan><tspan class="terminal-387264145-r2" x="384.4" y="732.8 [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="759.2" textLength="372">                              </tspan><tspan class="terminal-387264145-r4" x="384.4" y="759.2" textLength="669.6">[default: wheel]        [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="785.6" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="785.6" textLength="161.2">--force-build</tspan><tspan class="terminal-387264145-r2" x="198.4" y="785.6" textLength="186">               </tspan><tspan class="terminal-387264145-r2" x="38 [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="812" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="812" textLength="186">--mount-sources</tspan><tspan class="terminal-387264145-r2" x="223.2" y="812" textLength="161.2">             </tspan><tspan class="terminal-387264145-r2" x="384.4" y="812" textL [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="838.4" textLength="372">                              </tspan><tspan class="terminal-387264145-r7" x="384.4" y="838.4" textLength="855.6">(selected | all | none)     [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="864.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="864.8" textLength="372">                              </tspan><tspan class="terminal-387264145-r4" x="384.4" y="864.8" textLength="855.6">[default: selected]       & [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="891.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="891.2" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="891.2" textLength="198.4">--debian-version</tspan><tspan class="terminal-387264145-r2" x="235.6" y="891.2" textLength="148.8">            </tspan><tspan class="terminal-387264145-r2" x="384.4" y="891.2 [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="917.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-387264145-r2" x="1488" y="917.6" textLength="12.4">
+</tspan><tspan class="terminal-387264145-r4" x="0" y="944" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-387264145-r2" x="1488" y="944" textLength="12.4">
+</tspan><tspan class="terminal-387264145-r4" x="0" y="970.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="970.4" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="970.4" textLength="111.6">--verbose</tspan><tspan class="terminal-387264145-r2" x="148.8" y="970.4" textLength="297.6">                        [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="996.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="996.8" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="996.8" textLength="111.6">--dry-run</tspan><tspan class="terminal-387264145-r2" x="148.8" y="996.8" textLength="297.6">                        [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="1023.2" textLength="235.6">--github-repository</tspan><tspan class="terminal-387264145-r2" x="272.8" y="1023.2" textLength="173.6">              </tspan><tspan class="terminal-387264145-r6" [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1049.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1049.6" textLength="483.6">                                       </tspan><tspan class="terminal-387264145-r4" x="496" y="1049.6" textLength="595.2">[default:& [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1076" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1076" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="1076" textLength="384.4">--airflow-constraints-reference</tspan><tspan class="terminal-387264145-r2" x="421.6" y="1076" textLength="24.8">  </tspan><tspan class="terminal-387264145-r2" x="446.4" y="1076" textLength="24.8">  </tspan><tspan clas [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1102.4" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1102.4" textLength="1463.2">                                       specify constraints for the installed version and to  [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1128.8" textLength="483.6">                                       </tspan><tspan class="terminal-387264145-r7" x="496" y="1128.8" textLength="954.8">(TEXT) [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1155.2" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="1155.2" textLength="99.2">--answer</tspan><tspan class="terminal-387264145-r2" x="136.4" y="1155.2" textLength="310">                        [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1181.6" textLength="12.4">│</tspan><tspan class="terminal-387264145-r2" x="12.4" y="1181.6" textLength="24.8">  </tspan><tspan class="terminal-387264145-r5" x="37.2" y="1181.6" textLength="74.4">--help</tspan><tspan class="terminal-387264145-r2" x="111.6" y="1181.6" textLength="334.8">                        [...]
+</tspan><tspan class="terminal-387264145-r4" x="0" y="1208" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-387264145-r2" x="1488" y="1208" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-start-airflow.svg b/images/breeze/output-start-airflow.svg
index d1365f387b..b565d09c49 100644
--- a/images/breeze/output-start-airflow.svg
+++ b/images/breeze/output-start-airflow.svg
@@ -1,172 +1,101 @@
-<svg width="1720.0" height="1418" viewBox="0 0 1720.0 1418"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 1359.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2513811073-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2513811073-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2513811073-terminal-body .blink {
- animation: rich-svg-2513811073-blinker 1s infinite;
- }
- @keyframes rich-svg-2513811073-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2513811073-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2513811073-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2513811073-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2513811073-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2513811073-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2513811073-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2513811073-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2513811073-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2513811073-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2513811073-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2513811073-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2513811073-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2513811073-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2513811073-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-253980840-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-253980840-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-253980840-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-253980840-r2 { fill: #c5c8c6 }
+.terminal-253980840-r3 { fill: #d0b344;font-weight: bold }
+.terminal-253980840-r4 { fill: #868887 }
+.terminal-253980840-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-253980840-r6 { fill: #98a84b;font-weight: bold }
+.terminal-253980840-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2513811073-terminal-wrapper">
- <div class="rich-svg-2513811073-terminal">
- <div class="rich-svg-2513811073-terminal-header">
- <svg class="rich-svg-2513811073-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2513811073-terminal-title-tab">Command: start-airflow</div>
- </div>
- <div class="rich-svg-2513811073-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze start-airflow [OPTIONS] [EXTRA_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Enter breeze.py environment and starts all Airflow components in the tmux session. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--load-example-dags</span><span class="r1"> </span><span class="r6">-e</span><span class="r1"> </span><span class="r1">Enable configuration to load example DAGs when starting Airflow. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--load-default-connections</span><span class="r1"> </span><span class="r6">-c</span><span class="r1"> </span><span class="r1">Enable configuration to load default connections when starting Airflow. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--backend</span><span class="r1"> </span><span class="r6">-b</span><span class="r1"> </span><span class="r1">Database backend to use.</span><span class="r1"> </span><span class="r7">(>sqlite< | mysql | postgres | mssql)</span><span class="r1"> </span><span class="r4">[default: sqlite]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--postgres-version</span><span class="r1"> </span><span class="r6">-P</span><span class="r1"> </span><span class="r1">Version of Postgres used.</span><span class="r1"> </span><span class="r7">(>10< | 11 | 12 | 13)</span><span class="r1"> </span><span class="r4">[default: 10]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mysql-version</span><span class="r1"> </span><span class="r6">-M</span><span class="r1"> </span><span class="r1">Version of MySQL used.</span><span class="r1"> </span><span class="r7">(>5.7< | 8)</span><span class="r1"> </span><span class="r4">[default: 5.7]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mssql-version</span><span class="r1"> </span><span class="r6">-S</span><span class="r1"> </span><span class="r1">Version of MsSQL used.</span><span class="r1"> </span><span class="r7">(>2017-latest< | 2019-latest)</span><span class="r1"> </span><span class="r4">[default: 2017-latest]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--integration</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Integration(s) to enable when running (can be more than one). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(cassandra | kerberos | mongo | openldap | pinot | rabbitmq | redis | statsd | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">trino | all) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--forward-credentials</span><span class="r1"> </span><span class="r6">-f</span><span class="r1"> </span><span class="r1">Forward local credentials to container when running. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--db-reset</span><span class="r1"> </span><span class="r6">-d</span><span class="r1"> </span><span class="r1">Reset DB when entering the container. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Advanced flag for running ──────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-airflow-version</span><span class="r1"> Use (reinstall at entry) Airflow version from PyPI. It can also be `none`, `wheel`, or </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `sdist` if Airflow should be removed, installed from wheel packages or sdist packages </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> available in dist folder respectively. Important! Using it Implies </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `none`. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(none | wheel | sdist | <airflow_version>) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-extras</span><span class="r1"> Airflow extras to install when </span><span class="r5">--use-airflow-version</span><span class="r1"> is used </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-packages-from-dist</span><span class="r1"> Install all found packages (</span><span class="r5">--package-format</span><span class="r1"> determines type) from 'dist' folder when </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> entering breeze. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-format</span><span class="r1"> </span><span class="r1">Format of packages that should be installed from dist.</span><span class="r1"> </span><span class="r7">(wheel | sdist)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: wheel] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--force-build</span><span class="r1"> </span><span class="r1">Force image build no matter if it is determined as needed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r1">Choose scope of local sources should be mounted (default = selected). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(selected | all | none) </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: selected] </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: apache/airflow] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-constraints-reference</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> Constraint reference to use. Useful with </span><span class="r5">--use-airflow-version</span><span class="r1"> parameter to </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> specify constraints for the installed version and to find newer dependencies </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(TEXT) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--answer</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Force answer to questions.</span><span class="r1"> </span><span class="r7">(y | n | q | yes | no | quit)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="1319.2" rx="12"/><text class="terminal-253980840-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: start-airflow</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-253980840-matrix" font-variant="east-asian-width-values"><tspan class="terminal-253980840-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-253980840-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-253980840-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-253980840-r1" x="99.2" y="46.4" textLength="1388.8">breeze start-airflow [OPTIONS] [EXTRA_ARGS]...                             [...]
+</tspan><tspan class="terminal-253980840-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-253980840-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-253980840-r2" x="12.4" y="99.2" textLength="1463.2">Enter breeze.py environment and starts all Airflow components in the tmux session.                               &# [...]
+</tspan><tspan class="terminal-253980840-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="152" textLength="1488">╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-253980840-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-253980840-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="178.4" textLength="99.2">--python</tspan><tspan class="terminal-253980840-r2" x="136.4" y="178.4" textLength="248">                    </tspan><tspan class="term [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="204.8" textLength="421.6">                                  </tspan><tspan class="terminal-253980840-r7" x="434" y="204.8" textLength="744">(>3.7< | 3.8 | 3.9& [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="231.2" textLength="421.6">                                  </tspan><tspan class="terminal-253980840-r4" x="434" y="231.2" textLength="744">[default: 3.7]    &# [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="257.6" textLength="235.6">--load-example-dags</tspan><tspan class="terminal-253980840-r2" x="272.8" y="257.6" textLength="111.6">         </tspan><tspan class="terminal-253980840-r6" x="384.4" y="257.6" textLength="2 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="284" textLength="322.4">--load-default-connections</tspan><tspan class="terminal-253980840-r2" x="359.6" y="284" textLength="24.8">  </tspan><tspan class="terminal-253980840-r6" x="384.4" y="284" textLength="24.8">-c</tspan><tspan class="terminal-25398084 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="310.4" textLength="111.6">--backend</tspan><tspan class="terminal-253980840-r2" x="148.8" y="310.4" textLength="235.6">                   </tspan><tspan class="termin [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="336.8" textLength="223.2">--postgres-version</tspan><tspan class="terminal-253980840-r2" x="260.4" y="336.8" textLength="124">          </tspan><tspan class="terminal-253980840-r6" x="384.4" y="336.8" textLength [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="363.2" textLength="186">--mysql-version</tspan><tspan class="terminal-253980840-r2" x="223.2" y="363.2" textLength="161.2">             </tspan><tspan class="terminal-253980840-r6" x="384.4" y="36 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="389.6" textLength="186">--mssql-version</tspan><tspan class="terminal-253980840-r2" x="223.2" y="389.6" textLength="161.2">             </tspan><tspan class="terminal-253980840-r6" x="384.4" y="38 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="416" textLength="161.2">--integration</tspan><tspan class="terminal-253980840-r2" x="198.4" y="416" textLength="186">               </tspan><tspan class="terminal-253980840-r2" x="384.4" y=" [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="442.4" textLength="421.6">                                  </tspan><tspan class="terminal-253980840-r7" x="434" y="442.4" textLength="1016.8">(cassandra | kerberos | [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="468.8" textLength="421.6">                                  </tspan><tspan class="terminal-253980840-r7" x="434" y="468.8" textLength="1016.8">trino | all)   &# [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="495.2" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="495.2" textLength="260.4">--forward-credentials</tspan><tspan class="terminal-253980840-r2" x="297.6" y="495.2" textLength="86.8">       </tspan><tspan class="terminal-253980840-r6" x="384.4" y="495.2" textLength="24.8">-f</ts [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="521.6" textLength="124">--db-reset</tspan><tspan class="terminal-253980840-r2" x="161.2" y="521.6" textLength="223.2">                  </tspan><tspan class="terminal-2539 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="548" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-253980840-r2" x="1488" y="548" textLength="12.4">
+</tspan><tspan class="terminal-253980840-r4" x="0" y="574.4" textLength="1488">╭─ Advanced flag for running ──────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-253980840-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-253980840-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="600.8" textLength="260.4">--use-airflow-version</tspan><tspan class="terminal-253980840-r2" x="297.6" y="600.8" textLength="1178">       Use (reinstall at entry) Airflow version from PyPI. [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="627.2" textLength="1463.2">                              `sdist` if Airflow should be removed, installed from wheel packages or sdist packages [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="653.6" textLength="1202.8">                              available in dist folder respectively. Important! Using it Implies </tspan><tspan class="terminal-25398 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="680" textLength="1463.2">                              `none`.                        & [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="706.4" textLength="372">                              </tspan><tspan class="terminal-253980840-r7" x="384.4" y="706.4" textLength="1066.4">(none | wheel | sdist | <airflow_ [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="732.8" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="732.8" textLength="198.4">--airflow-extras</tspan><tspan class="terminal-253980840-r2" x="235.6" y="732.8" textLength="533.2">            Airflow extras to install when </tspan [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="759.2" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="759.2" textLength="297.6">--use-packages-from-dist</tspan><tspan class="terminal-253980840-r2" x="334.8" y="759.2" textLength="396.8">    Install all found packages (</tspan><tspan class="terminal-253980840-r5" x="731.6" [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="785.6" textLength="1463.2">                              entering breeze.                     & [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="812" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="812" textLength="198.4">--package-format</tspan><tspan class="terminal-253980840-r2" x="235.6" y="812" textLength="148.8">            </tspan><tspan class="terminal-253980840-r2" x="384.4" y="812" textLeng [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="838.4" textLength="372">                              </tspan><tspan class="terminal-253980840-r4" x="384.4" y="838.4" textLength="669.6">[default: wheel]        [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="864.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="864.8" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="864.8" textLength="161.2">--force-build</tspan><tspan class="terminal-253980840-r2" x="198.4" y="864.8" textLength="186">               </tspan><tspan class="terminal-253980840-r2" x="38 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="891.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="891.2" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="891.2" textLength="186">--mount-sources</tspan><tspan class="terminal-253980840-r2" x="223.2" y="891.2" textLength="161.2">             </tspan><tspan class="terminal-253980840-r2" x="384.4" y="89 [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="917.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="917.6" textLength="372">                              </tspan><tspan class="terminal-253980840-r7" x="384.4" y="917.6" textLength="855.6">(selected | all | none)     [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="944" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="944" textLength="372">                              </tspan><tspan class="terminal-253980840-r4" x="384.4" y="944" textLength="855.6">[default: selected]        & [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="970.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-253980840-r2" x="1488" y="970.4" textLength="12.4">
+</tspan><tspan class="terminal-253980840-r4" x="0" y="996.8" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-253980840-r2" x="1488" y="996.8" textLength="12.4">
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="1023.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-253980840-r2" x="148.8" y="1023.2" textLength="297.6">                        [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1049.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1049.6" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="1049.6" textLength="235.6">--github-repository</tspan><tspan class="terminal-253980840-r2" x="272.8" y="1049.6" textLength="173.6">              </tspan><tspan class="terminal-253980840-r6" [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1076" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1076" textLength="483.6">                                       </tspan><tspan class="terminal-253980840-r4" x="496" y="1076" textLength="595.2">[default: a [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1102.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1102.4" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="1102.4" textLength="384.4">--airflow-constraints-reference</tspan><tspan class="terminal-253980840-r2" x="421.6" y="1102.4" textLength="24.8">  </tspan><tspan class="terminal-253980840-r2" x="446.4" y="1102.4" textLength="24.8">  </tspan>< [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1128.8" textLength="1463.2">                                       specify constraints for the installed version and to  [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1155.2" textLength="483.6">                                       </tspan><tspan class="terminal-253980840-r7" x="496" y="1155.2" textLength="954.8">(TEXT) [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1181.6" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1181.6" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="1181.6" textLength="99.2">--answer</tspan><tspan class="terminal-253980840-r2" x="136.4" y="1181.6" textLength="310">                        [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1208" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1208" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="1208" textLength="111.6">--verbose</tspan><tspan class="terminal-253980840-r2" x="148.8" y="1208" textLength="297.6">                        </ [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1234.4" textLength="12.4">│</tspan><tspan class="terminal-253980840-r2" x="12.4" y="1234.4" textLength="24.8">  </tspan><tspan class="terminal-253980840-r5" x="37.2" y="1234.4" textLength="74.4">--help</tspan><tspan class="terminal-253980840-r2" x="111.6" y="1234.4" textLength="334.8">                        [...]
+</tspan><tspan class="terminal-253980840-r4" x="0" y="1260.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-253980840-r2" x="1488" y="1260.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-static-checks.svg b/images/breeze/output-static-checks.svg
index b039113af9..a5bdbd201b 100644
--- a/images/breeze/output-static-checks.svg
+++ b/images/breeze/output-static-checks.svg
@@ -1,174 +1,103 @@
-<svg width="1720.0" height="1462" viewBox="0 0 1720.0 1462"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 1412.0" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1500548947-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1500548947-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1500548947-terminal-body .blink {
- animation: rich-svg-1500548947-blinker 1s infinite;
- }
- @keyframes rich-svg-1500548947-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1500548947-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1500548947-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1500548947-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1500548947-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1500548947-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1500548947-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1500548947-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1500548947-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1500548947-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1500548947-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1500548947-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1500548947-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1500548947-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1500548947-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-73501607-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-73501607-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-73501607-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-73501607-r2 { fill: #c5c8c6 }
+.terminal-73501607-r3 { fill: #d0b344;font-weight: bold }
+.terminal-73501607-r4 { fill: #868887 }
+.terminal-73501607-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-73501607-r6 { fill: #98a84b;font-weight: bold }
+.terminal-73501607-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1500548947-terminal-wrapper">
- <div class="rich-svg-1500548947-terminal">
- <div class="rich-svg-1500548947-terminal-header">
- <svg class="rich-svg-1500548947-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1500548947-terminal-title-tab">Command: static-checks</div>
- </div>
- <div class="rich-svg-1500548947-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze static-checks [OPTIONS] [PRECOMMIT_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Run static checks. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Pre-commit flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--type</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Type(s) of the static checks to run (multiple can be added). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(all | black | blacken-docs | check-airflow-2-1-compatibility | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-airflow-config-yaml-consistent | check-airflow-providers-have-extras | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-apache-license-rat | check-base-operator-usage | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-boring-cyborg-configuration | check-breeze-top-dependencies-limited | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-builtin-literals | check-changelog-has-no-duplicates | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-daysago-import-from-utils | check-docstring-param-types | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-executables-have-shebangs | check-extra-packages-references | check-extras-order</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">| check-for-inclusive-language | check-hooks-apply | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-incorrect-use-of-LoggingMixin | check-integrations-are-consistent | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-merge-conflict | check-newsfragments-are-valid | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-no-providers-in-core-examples | check-no-relative-imports | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-persist-credentials-disabled-in-github-workflows | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-pre-commit-information-consistent | check-provide-create-sessions-imports | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-provider-yaml-valid | check-providers-init-file-missing | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-providers-subpackages-init-file-exist | check-pydevd-left-in-code | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-revision-heads-map | check-safe-filter-usage-in-html | check-setup-order | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">check-start-date-not-used-in-defaults | check-system-tests-present | check-xml | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">codespell | debug-statements | detect-private-key | doctoc | end-of-file-fixer | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">fix-encoding-pragma | flynt | forbid-tabs | identity | insert-license | isort | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">lint-chart-schema | lint-css | lint-dockerfile | lint-helm-chart | lint-javascript | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">lint-json-schema | lint-markdown | lint-openapi | mixed-line-ending | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">pretty-format-json | pydocstyle | python-no-log-warn | pyupgrade | rst-backticks | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">run-flake8 | run-mypy | run-shellcheck | static-check-autoflake | trailing-whitespace </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">| update-breeze-file | update-breeze-readme-config-hash | update-extras | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">update-in-the-wild-to-be-sorted | update-inlined-dockerfile-scripts | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">update-local-yml-file | update-migration-references | update-providers-dependencies | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">update-setup-cfg-file | update-spelling-wordlist-to-be-sorted | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">update-supported-versions | update-vendored-in-k8s-json-schema | update-version | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">yamllint | yesqa) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--files</span><span class="r1"> </span><span class="r6">-f</span><span class="r1"> </span><span class="r1">List of files to run the checks on.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--all-files</span><span class="r1"> </span><span class="r6">-a</span><span class="r1"> </span><span class="r1">Run checks on all files. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--show-diff-on-failure</span><span class="r1"> </span><span class="r6">-s</span><span class="r1"> </span><span class="r1">Show diff for files modified by the checks. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--last-commit</span><span class="r1"> </span><span class="r6">-c</span><span class="r1"> Run checks for all files in last commit. Mutually exclusive with </span><span class="r5">--commit-ref</span><span class="r1">.</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--commit-ref</span><span class="r1"> </span><span class="r6">-r</span><span class="r1"> Run checks for this commit reference only (can be any git commit-ish reference). Mutually </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> exclusive with </span><span class="r5">--last-commit</span><span class="r1">. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r7">(TEXT) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="1372" rx="12"/><text class="terminal-73501607-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: static-checks</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-73501607-matrix" font-variant="east-asian-width-values"><tspan class="terminal-73501607-r1" x="0" y="20" textLength="1488">                                                    & [...]
+</tspan><tspan class="terminal-73501607-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-73501607-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-73501607-r1" x="99.2" y="46.4" textLength="1388.8">breeze static-checks [OPTIONS] [PRECOMMIT_ARGS]...                            &# [...]
+</tspan><tspan class="terminal-73501607-r1" x="0" y="72.8" textLength="1488">                                                                     & [...]
+</tspan><tspan class="terminal-73501607-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-73501607-r2" x="12.4" y="99.2" textLength="1463.2">Run static checks.                                                   [...]
+</tspan><tspan class="terminal-73501607-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="152" textLength="1488">╭─ Pre-commit flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-73501607-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-73501607-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="178.4" textLength="74.4">--type</tspan><tspan class="terminal-73501607-r2" x="111.6" y="178.4" textLength="223.2">                  </tspan><tspan class="terminal-73501607-r6 [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="204.8" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="204.8" textLength="1066.4">(all | black | blacken-docs | check-air [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="231.2" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="231.2" textLength="1066.4">check-airflow-config-yaml-consistent | check-airflow-provid [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="257.6" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="257.6" textLength="1066.4">check-apache-license-rat | check-base-operator-usage | [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="284" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="284" textLength="1066.4">check-boring-cyborg-configuration | check-breeze-top-dependencies [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="310.4" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="310.4" textLength="1066.4">check-builtin-literals | check-changelog-has-no-duplicates& [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="336.8" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="336.8" textLength="1066.4">check-daysago-import-from-utils | check-docstring-param-typ [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="363.2" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="363.2" textLength="1066.4">check-executables-have-shebangs | check-extra-packages-refe [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="389.6" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="389.6" textLength="1066.4">| check-for-inclusive-language | check-hooks-apply [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="416" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="416" textLength="1066.4">check-incorrect-use-of-LoggingMixin | check-integrations-are-cons [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="442.4" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="442.4" textLength="1066.4">check-merge-conflict | check-newsfragments-are-valid | [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="468.8" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="468.8" textLength="1066.4">check-no-providers-in-core-examples | check-no-relative-imp [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="495.2" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="495.2" textLength="1066.4">check-persist-credentials-disabled-in-github-workflows | &# [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="521.6" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="521.6" textLength="1066.4">check-pre-commit-information-consistent | check-provide-cre [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="548" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="548" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="548" textLength="1066.4">check-provider-yaml-valid | check-providers-init-file-missing [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="574.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="574.4" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="574.4" textLength="1066.4">check-providers-subpackages-init-file-exist | check-pydevd- [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="600.8" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="600.8" textLength="1066.4">check-revision-heads-map | check-safe-filter-usage-in-html& [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="627.2" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="627.2" textLength="1066.4">check-start-date-not-used-in-defaults | check-system-tests- [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="653.6" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="653.6" textLength="1066.4">codespell | debug-statements | detect-private-key [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="680" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="680" textLength="1066.4">fix-encoding-pragma | flynt | forbid-tabs | i [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="706.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="706.4" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="706.4" textLength="1066.4">lint-chart-schema | lint-css | lint-dockerfile [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="732.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="732.8" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="732.8" textLength="1066.4">lint-json-schema | lint-markdown | lint-openapi&# [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="759.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="759.2" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="759.2" textLength="1066.4">pretty-format-json | pydocstyle | python-no-log-w [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="785.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="785.6" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="785.6" textLength="1066.4">run-flake8 | run-mypy | run-shellcheck | [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="812" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="812" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="812" textLength="1066.4">| update-breeze-file | update-breeze-readme-config-hash  [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="838.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="838.4" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="838.4" textLength="1066.4">update-in-the-wild-to-be-sorted | update-inlined-dockerfile [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="864.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="864.8" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="864.8" textLength="1066.4">update-local-yml-file | update-migration-references |& [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="891.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="891.2" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="891.2" textLength="1066.4">update-setup-cfg-file | update-spelling-wordlist-to-be-sort [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="917.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="917.6" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="917.6" textLength="1066.4">update-supported-versions | update-vendored-in-k8s-json-sch [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="944" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="944" textLength="372">                              </tspan><tspan class="terminal-73501607-r7" x="384.4" y="944" textLength="1066.4">yamllint | yesqa)         [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="970.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="970.4" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="970.4" textLength="86.8">--files</tspan><tspan class="terminal-73501607-r2" x="124" y="970.4" textLength="210.8">                 </tspan><tspan class="terminal-73501607-r6" x="33 [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="996.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="996.8" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="996.8" textLength="136.4">--all-files</tspan><tspan class="terminal-73501607-r2" x="173.6" y="996.8" textLength="161.2">             </tspan><tspan class="terminal-73501607-r6" x="334.8" y="996.8" te [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1023.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1023.2" textLength="272.8">--show-diff-on-failure</tspan><tspan class="terminal-73501607-r2" x="310" y="1023.2" textLength="24.8">  </tspan><tspan class="terminal-73501607-r6" x="334.8" y="1023.2" textLength="24.8">-s</tspan><tspan class="terminal-7350 [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1049.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1049.6" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1049.6" textLength="161.2">--last-commit</tspan><tspan class="terminal-73501607-r2" x="198.4" y="1049.6" textLength="136.4">           </tspan><tspan class="terminal-73501607-r6" x="334.8" y="1049.6" textLen [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1076" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-73501607-r2" x="1488" y="1076" textLength="12.4">
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1102.4" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-73501607-r2" x="1488" y="1102.4" textLength="12.4">
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1128.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1128.8" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1128.8" textLength="148.8">--commit-ref</tspan><tspan class="terminal-73501607-r2" x="186" y="1128.8" textLength="111.6">         </tspan><tspan class="terminal-73501607-r6" x="297.6" y="1128.8" textLength="24.8">-r</ [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1155.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1155.2" textLength="520.8">                           exclusive with </tspan><tspan class="terminal-73501607-r5" x="533.2" y="1155.2" textLength="161.2">--last-commit</tspan><tspan class="terminal-73501607-r2" x [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1181.6" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1181.6" textLength="334.8">                           </tspan><tspan class="terminal-73501607-r7" x="347.2" y="1181.6" textLength="1103.6">(TEXT)             [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1208" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1208" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1208" textLength="111.6">--verbose</tspan><tspan class="terminal-73501607-r2" x="148.8" y="1208" textLength="148.8">            </tspan><tspan class="terminal-73501607-r6" x="297.6" y="1208" textLength="24. [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1234.4" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1234.4" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1234.4" textLength="111.6">--dry-run</tspan><tspan class="terminal-73501607-r2" x="148.8" y="1234.4" textLength="148.8">            </tspan><tspan class="terminal-73501607-r6" x="297.6" y="1234.4" textL [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1260.8" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1260.8" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1260.8" textLength="235.6">--github-repository</tspan><tspan class="terminal-73501607-r2" x="272.8" y="1260.8" textLength="24.8">  </tspan><tspan class="terminal-73501607-r6" x="297.6" y="1260.8" textLength="24.8">-g</tspan><tspan class="terminal-73501 [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1287.2" textLength="12.4">│</tspan><tspan class="terminal-73501607-r2" x="12.4" y="1287.2" textLength="24.8">  </tspan><tspan class="terminal-73501607-r5" x="37.2" y="1287.2" textLength="74.4">--help</tspan><tspan class="terminal-73501607-r2" x="111.6" y="1287.2" textLength="186">               </tspan><tspan class="terminal-73501607-r6" x="297.6" y="1 [...]
+</tspan><tspan class="terminal-73501607-r4" x="0" y="1313.6" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-73501607-r2" x="1488" y="1313.6" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-stop.svg b/images/breeze/output-stop.svg
index 09b58cc5ee..6f5a9ca2d8 100644
--- a/images/breeze/output-stop.svg
+++ b/images/breeze/output-stop.svg
@@ -1,136 +1,65 @@
-<svg width="1720.0" height="648" viewBox="0 0 1720.0 648"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 435.20000000000005" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1813462456-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1813462456-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1813462456-terminal-body .blink {
- animation: rich-svg-1813462456-blinker 1s infinite;
- }
- @keyframes rich-svg-1813462456-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1813462456-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1813462456-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1813462456-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1813462456-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1813462456-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1813462456-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1813462456-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1813462456-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1813462456-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1813462456-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1813462456-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1813462456-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1813462456-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-640511514-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-640511514-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-640511514-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-640511514-r2 { fill: #c5c8c6 }
+.terminal-640511514-r3 { fill: #d0b344;font-weight: bold }
+.terminal-640511514-r4 { fill: #868887 }
+.terminal-640511514-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-640511514-r6 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1813462456-terminal-wrapper">
- <div class="rich-svg-1813462456-terminal">
- <div class="rich-svg-1813462456-terminal-header">
- <svg class="rich-svg-1813462456-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1813462456-terminal-title-tab">Command: stop</div>
- </div>
- <div class="rich-svg-1813462456-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze stop [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Stop running breeze environment. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Stop flags ─────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--preserve-volumes</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Skip removing volumes when stopping Breeze. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="395.2" rx="12"/><text class="terminal-640511514-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: stop</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-640511514-matrix" font-variant="east-asian-width-values"><tspan class="terminal-640511514-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-640511514-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-640511514-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-640511514-r1" x="99.2" y="46.4" textLength="1388.8">breeze stop [OPTIONS]                                  [...]
+</tspan><tspan class="terminal-640511514-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-640511514-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-640511514-r2" x="12.4" y="99.2" textLength="1463.2">Stop running breeze environment.                                              &# [...]
+</tspan><tspan class="terminal-640511514-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-640511514-r4" x="0" y="152" textLength="1488">╭─ Stop flags ─────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-640511514-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-640511514-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-640511514-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-640511514-r5" x="37.2" y="178.4" textLength="223.2">--preserve-volumes</tspan><tspan class="terminal-640511514-r2" x="260.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-640511514-r6" x="285.2" y="178.4" textLength="24.8">-p</tspan><tspan class="terminal-640511 [...]
+</tspan><tspan class="terminal-640511514-r4" x="0" y="204.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-640511514-r2" x="1488" y="204.8" textLength="12.4">
+</tspan><tspan class="terminal-640511514-r4" x="0" y="231.2" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-640511514-r2" x="1488" y="231.2" textLength="12.4">
+</tspan><tspan class="terminal-640511514-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-640511514-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-640511514-r5" x="37.2" y="257.6" textLength="111.6">--verbose</tspan><tspan class="terminal-640511514-r2" x="148.8" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-640511514-r6" x="173.6" y="257.6" textLength="24.8">-v</tspan><tspan class="terminal-640511514-r2" x [...]
+</tspan><tspan class="terminal-640511514-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-640511514-r2" x="12.4" y="284" textLength="24.8">  </tspan><tspan class="terminal-640511514-r5" x="37.2" y="284" textLength="111.6">--dry-run</tspan><tspan class="terminal-640511514-r2" x="148.8" y="284" textLength="24.8">  </tspan><tspan class="terminal-640511514-r6" x="173.6" y="284" textLength="24.8">-D</tspan><tspan class="terminal-640511514-r2" x="198.4" y [...]
+</tspan><tspan class="terminal-640511514-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-640511514-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-640511514-r5" x="37.2" y="310.4" textLength="74.4">--help</tspan><tspan class="terminal-640511514-r2" x="111.6" y="310.4" textLength="62">     </tspan><tspan class="terminal-640511514-r6" x="173.6" y="310.4" textLength="24.8">-h</tspan><tspan class="terminal-640 [...]
+</tspan><tspan class="terminal-640511514-r4" x="0" y="336.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-640511514-r2" x="1488" y="336.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-tests.svg b/images/breeze/output-tests.svg
index ca27be92e1..0b344da888 100644
--- a/images/breeze/output-tests.svg
+++ b/images/breeze/output-tests.svg
@@ -1,142 +1,71 @@
-<svg width="1720.0" height="758" viewBox="0 0 1720.0 758"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 567.2" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-356577593-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-356577593-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-356577593-terminal-body .blink {
- animation: rich-svg-356577593-blinker 1s infinite;
- }
- @keyframes rich-svg-356577593-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-356577593-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-356577593-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-356577593-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-356577593-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-356577593-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-356577593-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-356577593-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-356577593-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-356577593-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-356577593-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-356577593-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-356577593-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-356577593-terminal-body .r6 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
-.rich-svg-356577593-terminal-body .r7 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2156331930-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2156331930-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2156331930-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2156331930-r2 { fill: #c5c8c6 }
+.terminal-2156331930-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2156331930-r4 { fill: #868887 }
+.terminal-2156331930-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2156331930-r6 { fill: #8d7b39 }
+.terminal-2156331930-r7 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-356577593-terminal-wrapper">
- <div class="rich-svg-356577593-terminal">
- <div class="rich-svg-356577593-terminal-header">
- <svg class="rich-svg-356577593-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-356577593-terminal-title-tab">Command: tests</div>
- </div>
- <div class="rich-svg-356577593-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze tests [OPTIONS] [EXTRA_PYTEST_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Run the specified unit test targets. Multiple targets may be specified separated by spaces. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Basic flag for tests command ───────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--integration</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r1">Integration(s) to enable when running (can be more than one). </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">(cassandra | kerberos | mongo | openldap | pinot | rabbitmq | redis | statsd | trino | all)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--test-type</span><span class="r1"> </span><span class="r7">-tt</span><span class="r1"> </span><span class="r1">Type of test to run. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">(All | Always | Core | Providers | API | CLI | Integration | Other | WWW | Postgres | MySQL | </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">Helm | Quarantined) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--db-reset</span><span class="r1"> </span><span class="r7">-d</span><span class="r1"> </span><span class="r1">Reset DB when entering the container. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r7">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r7">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r7">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="527.2" rx="12"/><text class="terminal-2156331930-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: tests</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2156331930-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2156331930-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2156331930-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2156331930-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2156331930-r1" x="99.2" y="46.4" textLength="1388.8">breeze tests [OPTIONS] [EXTRA_PYTEST_ARGS]...                            & [...]
+</tspan><tspan class="terminal-2156331930-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2156331930-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2156331930-r2" x="12.4" y="99.2" textLength="1463.2">Run the specified unit test targets. Multiple targets may be specified separated by spaces.                           </tsp [...]
+</tspan><tspan class="terminal-2156331930-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="152" textLength="1488">╭─ Basic flag for tests command ───────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2156331930-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r5" x="37.2" y="178.4" textLength="161.2">--integration</tspan><tspan class="terminal-2156331930-r2" x="198.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r2" x="223.2" y="178.4" textLength="37.2">   </tspan><tspan class= [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="204.8" textLength="272.8">                      </tspan><tspan class="terminal-2156331930-r6" x="285.2" y="204.8" textLength="1128.4">(cassandra | kerberos | mongo | openldap | pinot | rabbitmq [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="231.2" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r5" x="37.2" y="231.2" textLength="136.4">--test-type</tspan><tspan class="terminal-2156331930-r2" x="173.6" y="231.2" textLength="49.6">    </tspan><tspan class="terminal-2156331930-r7" x="223.2" y="231.2" textLength="37.2">-tt</tspan><tspan class="term [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="257.6" textLength="272.8">                      </tspan><tspan class="terminal-2156331930-r6" x="285.2" y="257.6" textLength="1165.6">(All | Always | Core | Providers | API | CLI | In [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="284" textLength="272.8">                      </tspan><tspan class="terminal-2156331930-r6" x="285.2" y="284" textLength="1165.6">Helm | Quarantined)              &# [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r5" x="37.2" y="310.4" textLength="124">--db-reset</tspan><tspan class="terminal-2156331930-r2" x="161.2" y="310.4" textLength="62">     </tspan><tspan class="terminal-2156331930-r7" x="223.2" y="310.4" textLength="24.8">-d</tspan><tspan class="term [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="336.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2156331930-r2" x="1488" y="336.8" textLength="12.4">
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="363.2" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2156331930-r2" x="1488" y="363.2" textLength="12.4">
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r5" x="37.2" y="389.6" textLength="111.6">--dry-run</tspan><tspan class="terminal-2156331930-r2" x="148.8" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r7" x="173.6" y="389.6" textLength="24.8">-D</tspan><tspan class="terminal-2156331930 [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r5" x="37.2" y="416" textLength="111.6">--verbose</tspan><tspan class="terminal-2156331930-r2" x="148.8" y="416" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r7" x="173.6" y="416" textLength="24.8">-v</tspan><tspan class="terminal-2156331930-r2" x="19 [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-2156331930-r2" x="12.4" y="442.4" textLength="24.8">  </tspan><tspan class="terminal-2156331930-r5" x="37.2" y="442.4" textLength="74.4">--help</tspan><tspan class="terminal-2156331930-r2" x="111.6" y="442.4" textLength="62">     </tspan><tspan class="terminal-2156331930-r7" x="173.6" y="442.4" textLength="24.8">-h</tspan><tspan class="termina [...]
+</tspan><tspan class="terminal-2156331930-r4" x="0" y="468.8" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2156331930-r2" x="1488" y="468.8" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-verify-image.svg b/images/breeze/output-verify-image.svg
index 96302da9db..e35e11819f 100644
--- a/images/breeze/output-verify-image.svg
+++ b/images/breeze/output-verify-image.svg
@@ -1,141 +1,70 @@
-<svg width="1720.0" height="736" viewBox="0 0 1720.0 736"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 540.8" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-2410044435-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-2410044435-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-2410044435-terminal-body .blink {
- animation: rich-svg-2410044435-blinker 1s infinite;
- }
- @keyframes rich-svg-2410044435-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-2410044435-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-2410044435-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-2410044435-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-2410044435-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-2410044435-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-2410044435-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-2410044435-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-2410044435-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-2410044435-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2410044435-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2410044435-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-2410044435-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2410044435-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-2410044435-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-2093741156-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-2093741156-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-2093741156-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-2093741156-r2 { fill: #c5c8c6 }
+.terminal-2093741156-r3 { fill: #d0b344;font-weight: bold }
+.terminal-2093741156-r4 { fill: #868887 }
+.terminal-2093741156-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-2093741156-r6 { fill: #98a84b;font-weight: bold }
+.terminal-2093741156-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-2410044435-terminal-wrapper">
- <div class="rich-svg-2410044435-terminal">
- <div class="rich-svg-2410044435-terminal-header">
- <svg class="rich-svg-2410044435-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-2410044435-terminal-title-tab">Command: verify-image</div>
- </div>
- <div class="rich-svg-2410044435-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze verify-image [OPTIONS] [EXTRA_PYTEST_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Verify CI image. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Verify image flags ─────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-name</span><span class="r1"> </span><span class="r6">-n</span><span class="r1"> Name of the image to verify (overrides </span><span class="r5">--python</span><span class="r1"> and </span><span class="r5">--image-tag</span><span class="r1">). </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="500.8" rx="12"/><text class="terminal-2093741156-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: verify-image</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-2093741156-matrix" font-variant="east-asian-width-values"><tspan class="terminal-2093741156-r1" x="0" y="20" textLength="1488">                                                    [...]
+</tspan><tspan class="terminal-2093741156-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-2093741156-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-2093741156-r1" x="99.2" y="46.4" textLength="1388.8">breeze verify-image [OPTIONS] [EXTRA_PYTEST_ARGS]...                            [...]
+</tspan><tspan class="terminal-2093741156-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-2093741156-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-2093741156-r2" x="12.4" y="99.2" textLength="1463.2">Verify CI image.                                                  [...]
+</tspan><tspan class="terminal-2093741156-r2" x="0" y="125.6" textLength="1488">                                                                     [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="152" textLength="1488">╭─ Verify image flags ─────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2093741156-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="178.4" textLength="148.8">--image-name</tspan><tspan class="terminal-2093741156-r2" x="186" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r6" x="210.8" y="178.4" textLength="24.8">-n</tspan><tspan class="terminal-209374115 [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="204.8" textLength="99.2">--python</tspan><tspan class="terminal-2093741156-r2" x="136.4" y="204.8" textLength="74.4">      </tspan><tspan class="terminal-2093741156-r6" x="210.8" y="204.8" textLength="24.8">-p</tspan><tspan clas [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="231.2" textLength="248">                    </tspan><tspan class="terminal-2093741156-r4" x="260.4" y="231.2" textLength="744">[default: 3.7]                   [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="257.6" textLength="136.4">--image-tag</tspan><tspan class="terminal-2093741156-r2" x="173.6" y="257.6" textLength="37.2">   </tspan><tspan class="terminal-2093741156-r6" x="210.8" y="257.6" textLength="24.8">-t</tspan><tspan class="terminal-20 [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="284" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2093741156-r2" x="1488" y="284" textLength="12.4">
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="310.4" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-2093741156-r2" x="1488" y="310.4" textLength="12.4">
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="336.8" textLength="111.6">--verbose</tspan><tspan class="terminal-2093741156-r2" x="148.8" y="336.8" textLength="148.8">            </tspan><tspan class="terminal-2093741156-r6" x="297.6" y="336.8" [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="363.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-2093741156-r2" x="148.8" y="363.2" textLength="148.8">            </tspan><tspan class="terminal-2093741156-r6" x="297.6" y="363.2" [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="389.6" textLength="235.6">--github-repository</tspan><tspan class="terminal-2093741156-r2" x="272.8" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r6" x="297.6" y="389.6" textLength="24.8">-g</tspan><tspan class="terminal- [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-2093741156-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-2093741156-r5" x="37.2" y="416" textLength="74.4">--help</tspan><tspan class="terminal-2093741156-r2" x="111.6" y="416" textLength="186">               </tspan><tspan class="terminal-2093741156-r6" x="297.6" y="416 [...]
+</tspan><tspan class="terminal-2093741156-r4" x="0" y="442.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-2093741156-r2" x="1488" y="442.4" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-verify-prod-image.svg b/images/breeze/output-verify-prod-image.svg
index b491d5e76e..3dab7852ea 100644
--- a/images/breeze/output-verify-prod-image.svg
+++ b/images/breeze/output-verify-prod-image.svg
@@ -1,141 +1,70 @@
-<svg width="1720.0" height="736" viewBox="0 0 1720.0 736"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 540.8" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3971506160-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3971506160-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3971506160-terminal-body .blink {
- animation: rich-svg-3971506160-blinker 1s infinite;
- }
- @keyframes rich-svg-3971506160-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3971506160-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3971506160-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3971506160-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3971506160-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3971506160-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3971506160-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3971506160-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3971506160-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3971506160-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3971506160-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3971506160-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3971506160-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3971506160-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3971506160-terminal-body .r7 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-439155235-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-439155235-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-439155235-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-439155235-r2 { fill: #c5c8c6 }
+.terminal-439155235-r3 { fill: #d0b344;font-weight: bold }
+.terminal-439155235-r4 { fill: #868887 }
+.terminal-439155235-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-439155235-r6 { fill: #98a84b;font-weight: bold }
+.terminal-439155235-r7 { fill: #8d7b39 }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3971506160-terminal-wrapper">
- <div class="rich-svg-3971506160-terminal">
- <div class="rich-svg-3971506160-terminal-header">
- <svg class="rich-svg-3971506160-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3971506160-terminal-title-tab">Command: verify-prod-image</div>
- </div>
- <div class="rich-svg-3971506160-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze verify-prod-image [OPTIONS] [EXTRA_PYTEST_ARGS]... </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Verify Production image. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Verify image flags ─────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-name</span><span class="r1"> </span><span class="r6">-n</span><span class="r1"> Name of the image to verify (overrides </span><span class="r5">--python</span><span class="r1"> and </span><span class="r5">--image-tag</span><span class="r1">). </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--python</span><span class="r1"> </span><span class="r6">-p</span><span class="r1"> </span><span class="r1">Python major/minor version used in Airflow image for images.</span><span class="r1"> </span><span class="r7">(>3.7< | 3.8 | 3.9 | 3.10)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: 3.7] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--image-tag</span><span class="r1"> </span><span class="r6">-t</span><span class="r1"> </span><span class="r1">Tag added to the default naming conventions of Airflow CI/PROD images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r6">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r6">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r7">(TEXT)</span><span class="r1"> </span><span class="r4">[default: apache/airflow]</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="500.8" rx="12"/><text class="terminal-439155235-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: verify-prod-image</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-439155235-matrix" font-variant="east-asian-width-values"><tspan class="terminal-439155235-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-439155235-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-439155235-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-439155235-r1" x="99.2" y="46.4" textLength="1388.8">breeze verify-prod-image [OPTIONS] [EXTRA_PYTEST_ARGS]...                           [...]
+</tspan><tspan class="terminal-439155235-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-439155235-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-439155235-r2" x="12.4" y="99.2" textLength="1463.2">Verify Production image.                                                 [...]
+</tspan><tspan class="terminal-439155235-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="152" textLength="1488">╭─ Verify image flags ─────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-439155235-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-439155235-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="178.4" textLength="148.8">--image-name</tspan><tspan class="terminal-439155235-r2" x="186" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-439155235-r6" x="210.8" y="178.4" textLength="24.8">-n</tspan><tspan class="terminal-439155235-r2" [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="204.8" textLength="99.2">--python</tspan><tspan class="terminal-439155235-r2" x="136.4" y="204.8" textLength="74.4">      </tspan><tspan class="terminal-439155235-r6" x="210.8" y="204.8" textLength="24.8">-p</tspan><tspan class="te [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="231.2" textLength="248">                    </tspan><tspan class="terminal-439155235-r4" x="260.4" y="231.2" textLength="744">[default: 3.7]                  &# [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="257.6" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="257.6" textLength="136.4">--image-tag</tspan><tspan class="terminal-439155235-r2" x="173.6" y="257.6" textLength="37.2">   </tspan><tspan class="terminal-439155235-r6" x="210.8" y="257.6" textLength="24.8">-t</tspan><tspan class="terminal-4391552 [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="284" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-439155235-r2" x="1488" y="284" textLength="12.4">
+</tspan><tspan class="terminal-439155235-r4" x="0" y="310.4" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-439155235-r2" x="1488" y="310.4" textLength="12.4">
+</tspan><tspan class="terminal-439155235-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="336.8" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="336.8" textLength="111.6">--verbose</tspan><tspan class="terminal-439155235-r2" x="148.8" y="336.8" textLength="148.8">            </tspan><tspan class="terminal-439155235-r6" x="297.6" y="336.8" textL [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="363.2" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="363.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-439155235-r2" x="148.8" y="363.2" textLength="148.8">            </tspan><tspan class="terminal-439155235-r6" x="297.6" y="363.2" textL [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="389.6" textLength="235.6">--github-repository</tspan><tspan class="terminal-439155235-r2" x="272.8" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-439155235-r6" x="297.6" y="389.6" textLength="24.8">-g</tspan><tspan class="terminal-43915 [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-439155235-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-439155235-r5" x="37.2" y="416" textLength="74.4">--help</tspan><tspan class="terminal-439155235-r2" x="111.6" y="416" textLength="186">               </tspan><tspan class="terminal-439155235-r6" x="297.6" y="416" tex [...]
+</tspan><tspan class="terminal-439155235-r4" x="0" y="442.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-439155235-r2" x="1488" y="442.4" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-verify-provider-packages.svg b/images/breeze/output-verify-provider-packages.svg
index d5651ef341..c915ba40e0 100644
--- a/images/breeze/output-verify-provider-packages.svg
+++ b/images/breeze/output-verify-provider-packages.svg
@@ -1,152 +1,80 @@
-<svg width="1720.0" height="978" viewBox="0 0 1720.0 978"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 804.8000000000001" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-3603185097-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-3603185097-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-3603185097-terminal-body .blink {
- animation: rich-svg-3603185097-blinker 1s infinite;
- }
- @keyframes rich-svg-3603185097-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-3603185097-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-3603185097-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-3603185097-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-3603185097-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-3603185097-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-3603185097-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-3603185097-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-3603185097-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-3603185097-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3603185097-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3603185097-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-3603185097-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-3603185097-terminal-body .r6 {color: #78780e; text-decoration-color: #78780e;background-color: #0c0c0c;}
-.rich-svg-3603185097-terminal-body .r7 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-822104624-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-822104624-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-822104624-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-822104624-r2 { fill: #c5c8c6 }
+.terminal-822104624-r3 { fill: #d0b344;font-weight: bold }
+.terminal-822104624-r4 { fill: #868887 }
+.terminal-822104624-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-822104624-r6 { fill: #8d7b39 }
+.terminal-822104624-r7 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-3603185097-terminal-wrapper">
- <div class="rich-svg-3603185097-terminal">
- <div class="rich-svg-3603185097-terminal-header">
- <svg class="rich-svg-3603185097-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-3603185097-terminal-title-tab">Command: verify-provider-packages</div>
- </div>
- <div class="rich-svg-3603185097-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze verify-provider-packages [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Verifies if all provider code is following expectations for providers. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Provider verification flags ────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-airflow-version</span><span class="r1"> Use (reinstall at entry) Airflow version from PyPI. It can also be `none`, `wheel`, or </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `sdist` if Airflow should be removed, installed from wheel packages or sdist packages </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> available in dist folder respectively. Important! Using it Implies </span><span class="r5">--mount-sources</span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> `none`. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">(none | wheel | sdist | <airflow_version>) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-extras</span><span class="r1"> Airflow extras to install when </span><span class="r5">--use-airflow-version</span><span class="r1"> is used </span><span class="r6">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--use-packages-from-dist</span><span class="r1"> Install all found packages (</span><span class="r5">--package-format</span><span class="r1"> determines type) from 'dist' folder when </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> entering breeze. </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--package-format</span><span class="r1"> </span><span class="r1">Format of packages that should be installed from dist.</span><span class="r1"> </span><span class="r6">(wheel | sdist)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: wheel] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--debug</span><span class="r1"> </span><span class="r1">Drop user in shell instead of running the command. Useful for debugging. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--airflow-constraints-reference</span><span class="r1"> </span><span class="r1"> </span><span class="r1"> Constraint reference to use. Useful with </span><span class="r5">--use-airflow-version</span><span class="r1"> parameter to </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> specify constraints for the installed version and to find newer dependencies </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r6">(TEXT) </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r7">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--dry-run</span><span class="r1"> </span><span class="r7">-D</span><span class="r1"> </span><span class="r1">If dry-run is set, commands are only printed, not executed. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--github-repository</span><span class="r1"> </span><span class="r7">-g</span><span class="r1"> </span><span class="r1">GitHub repository used to pull, push run images.</span><span class="r1"> </span><span class="r6">(TEXT)</span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r4">[default: apache/airflow] </span><span class="r1"> </span><span class="r1"> </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r7">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="764.8" rx="12"/><text class="terminal-822104624-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: verify-provider-packages</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-822104624-matrix" font-variant="east-asian-width-values"><tspan class="terminal-822104624-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-822104624-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-822104624-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-822104624-r1" x="99.2" y="46.4" textLength="1388.8">breeze verify-provider-packages [OPTIONS]                              & [...]
+</tspan><tspan class="terminal-822104624-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-822104624-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-822104624-r2" x="12.4" y="99.2" textLength="1463.2">Verifies if all provider code is following expectations for providers.                                    [...]
+</tspan><tspan class="terminal-822104624-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="152" textLength="1488">╭─ Provider verification flags ────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-822104624-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-822104624-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="178.4" textLength="260.4">--use-airflow-version</tspan><tspan class="terminal-822104624-r2" x="297.6" y="178.4" textLength="1178">              Use (reinstall at entry) Ai [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="204.8" textLength="1463.2">                                     `wheel`, or `sdist` if Airflow should be removed, installed f [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="231.2" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="231.2" textLength="1463.2">                                     or sdist packages available in dist folder respectively. Important [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="257.6" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="257.6" textLength="558">                                     Implies </tspan><tspan class="terminal-822104624-r5" x="570.4" y="257.6" textLength="186">--mount-source [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="284" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="284" textLength="458.8">                                     </tspan><tspan class="terminal-822104624-r6" x="471.2" y="284" textLength="979.6">(none | wheel  [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="310.4" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="310.4" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="310.4" textLength="384.4">--airflow-constraints-reference</tspan><tspan class="terminal-822104624-r2" x="421.6" y="310.4" textLength="558">    Constraint reference to use. Useful with </tspan><tspan class="termi [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="336.8" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="336.8" textLength="1463.2">                                     specify constraints for the installed version and to find new [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="363.2" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="363.2" textLength="458.8">                                     </tspan><tspan class="terminal-822104624-r6" x="471.2" y="363.2" textLength="979.6">(TEXT)    [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="389.6" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="389.6" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="389.6" textLength="198.4">--airflow-extras</tspan><tspan class="terminal-822104624-r2" x="235.6" y="389.6" textLength="620">                   Airflow extras [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="416" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="416" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="416" textLength="297.6">--use-packages-from-dist</tspan><tspan class="terminal-822104624-r2" x="334.8" y="416" textLength="483.6">           Install all found packages (</tspan><tspan class= [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="442.4" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="442.4" textLength="1463.2">                                     folder when entering breeze.           [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="468.8" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="468.8" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="468.8" textLength="198.4">--package-format</tspan><tspan class="terminal-822104624-r2" x="235.6" y="468.8" textLength="235.6">                   </tspan><tspan class= [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="495.2" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="495.2" textLength="458.8">                                     </tspan><tspan class="terminal-822104624-r4" x="471.2" y="495.2" textLength="669.6">[default: wheel]&# [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="521.6" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="521.6" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="521.6" textLength="86.8">--debug</tspan><tspan class="terminal-822104624-r2" x="124" y="521.6" textLength="347.2">                         [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="548" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-822104624-r2" x="1488" y="548" textLength="12.4">
+</tspan><tspan class="terminal-822104624-r4" x="0" y="574.4" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-822104624-r2" x="1488" y="574.4" textLength="12.4">
+</tspan><tspan class="terminal-822104624-r4" x="0" y="600.8" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="600.8" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="600.8" textLength="111.6">--verbose</tspan><tspan class="terminal-822104624-r2" x="148.8" y="600.8" textLength="148.8">            </tspan><tspan class="terminal-822104624-r7" x="297.6" y="600.8" textL [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="627.2" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="627.2" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="627.2" textLength="111.6">--dry-run</tspan><tspan class="terminal-822104624-r2" x="148.8" y="627.2" textLength="148.8">            </tspan><tspan class="terminal-822104624-r7" x="297.6" y="627.2" textL [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="653.6" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="653.6" textLength="235.6">--github-repository</tspan><tspan class="terminal-822104624-r2" x="272.8" y="653.6" textLength="24.8">  </tspan><tspan class="terminal-822104624-r7" x="297.6" y="653.6" textLength="24.8">-g</tspan><tspan class="terminal-82210 [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="680" textLength="12.4">│</tspan><tspan class="terminal-822104624-r2" x="12.4" y="680" textLength="24.8">  </tspan><tspan class="terminal-822104624-r5" x="37.2" y="680" textLength="74.4">--help</tspan><tspan class="terminal-822104624-r2" x="111.6" y="680" textLength="186">               </tspan><tspan class="terminal-822104624-r7" x="297.6" y="680" tex [...]
+</tspan><tspan class="terminal-822104624-r4" x="0" y="706.4" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-822104624-r2" x="1488" y="706.4" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/images/breeze/output-version.svg b/images/breeze/output-version.svg
index 6ee36e351a..d136f09594 100644
--- a/images/breeze/output-version.svg
+++ b/images/breeze/output-version.svg
@@ -1,132 +1,61 @@
-<svg width="1720.0" height="560" viewBox="0 0 1720.0 560"
- xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1544 329.6" xmlns="http://www.w3.org/2000/svg">
+ <!-- Generated with Rich https://www.textualize.io -->
<style>
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Regular"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
- font-style: normal;
- font-weight: 400;
- }
- @font-face {
- font-family: "Rich Fira Code";
- src: local("FiraCode-Bold"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
- url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
- font-style: bold;
- font-weight: 700;
- }
- .rich-svg-1810271890-terminal-wrapper span {
- display: inline-block;
- white-space: pre;
- vertical-align: top;
- font-size: 18px;
- font-family:'Rich Fira Code','Cascadia Code',Monaco,Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace;
- }
- .rich-svg-1810271890-terminal-wrapper a {
- text-decoration: none;
- color: inherit;
- }
- .rich-svg-1810271890-terminal-body .blink {
- animation: rich-svg-1810271890-blinker 1s infinite;
- }
- @keyframes rich-svg-1810271890-blinker {
- from { opacity: 1.0; }
- 50% { opacity: 0.3; }
- to { opacity: 1.0; }
- }
- .rich-svg-1810271890-terminal-wrapper {
- padding: 140px;
- padding-top: 100px;
- }
- .rich-svg-1810271890-terminal {
- position: relative;
- display: flex;
- flex-direction: column;
- align-items: center;
- background-color: #0c0c0c;
- border-radius: 14px;
- box-shadow: 0 0 0 1px #484848;
- }
- .rich-svg-1810271890-terminal:after {
- position: absolute;
- width: 100%;
- height: 100%;
- content: '';
- border-radius: 14px;
- background: rgb(71,77,102);
- background: linear-gradient(90deg, #804D69 0%, #4E4B89 100%);
- transform: rotate(-4.5deg);
- z-index: -1;
- }
- .rich-svg-1810271890-terminal-header {
- position: relative;
- width: 100%;
- background-color: #2e2e2e;
- margin-bottom: 12px;
- font-weight: bold;
- border-radius: 14px 14px 0 0;
- color: #f2f2f2;
- font-size: 18px;
- box-shadow: inset 0px -1px 0px 0px #4e4e4e,
- inset 0px -4px 8px 0px #1a1a1a;
- }
- .rich-svg-1810271890-terminal-title-tab {
- display: inline-block;
- margin-top: 14px;
- margin-left: 124px;
- font-family: sans-serif;
- padding: 14px 28px;
- border-radius: 6px 6px 0 0;
- background-color: #0c0c0c;
- box-shadow: inset 0px 1px 0px 0px #4e4e4e,
- 0px -4px 4px 0px #1e1e1e,
- inset 1px 0px 0px 0px #4e4e4e,
- inset -1px 0px 0px 0px #4e4e4e;
- }
- .rich-svg-1810271890-terminal-traffic-lights {
- position: absolute;
- top: 24px;
- left: 20px;
- }
- .rich-svg-1810271890-terminal-body {
- line-height: 22px;
- padding: 14px;
- }
- .rich-svg-1810271890-terminal-body .r1 {color: #f2f2f2; text-decoration-color: #f2f2f2;background-color: #0c0c0c;}
-.rich-svg-1810271890-terminal-body .r2 {font-weight: bold;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1810271890-terminal-body .r3 {color: #e5e510; text-decoration-color: #e5e510; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1810271890-terminal-body .r4 {color: #7f7f7f; text-decoration-color: #7f7f7f;color: #f2f2f2; text-decoration-color: #f2f2f2;;background-color: #0c0c0c;}
-.rich-svg-1810271890-terminal-body .r5 {color: #11a8cd; text-decoration-color: #11a8cd; font-weight: bold;background-color: #0c0c0c;}
-.rich-svg-1810271890-terminal-body .r6 {color: #0dbc79; text-decoration-color: #0dbc79; font-weight: bold;background-color: #0c0c0c;}
+
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Regular"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Fira Code";
+ src: local("FiraCode-Bold"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+ font-style: bold;
+ font-weight: 700;
+ }
+
+ .terminal-589851807-matrix {
+ font-family: Fira Code, monospace;
+ font-size: 20px;
+ line-height: 26.400000000000002px;
+ font-variant-east-asian: full-width;
+ }
+
+ .terminal-589851807-title {
+ font-size: 18px;
+
+ font-weight: bold;
+ font-family: arial;
+ }
+
+ .terminal-589851807-r1 { fill: #c5c8c6;font-weight: bold }
+.terminal-589851807-r2 { fill: #c5c8c6 }
+.terminal-589851807-r3 { fill: #d0b344;font-weight: bold }
+.terminal-589851807-r4 { fill: #868887 }
+.terminal-589851807-r5 { fill: #68a0b3;font-weight: bold }
+.terminal-589851807-r6 { fill: #98a84b;font-weight: bold }
</style>
- <foreignObject x="0" y="0" width="100%" height="100%">
- <body xmlns="http://www.w3.org/1999/xhtml">
- <div class="rich-svg-1810271890-terminal-wrapper">
- <div class="rich-svg-1810271890-terminal">
- <div class="rich-svg-1810271890-terminal-header">
- <svg class="rich-svg-1810271890-terminal-traffic-lights" width="90" height="21" viewBox="0 0 90 21" xmlns="http://www.w3.org/2000/svg">
- <circle cx="14" cy="8" r="8" fill="#ff6159"/>
- <circle cx="38" cy="8" r="8" fill="#ffbd2e"/>
- <circle cx="62" cy="8" r="8" fill="#28c941"/>
- </svg>
- <div class="rich-svg-1810271890-terminal-title-tab">Command: version</div>
- </div>
- <div class="rich-svg-1810271890-terminal-body">
- <div><span class="r2"> </span></div>
-<div><span class="r2"> </span><span class="r3">Usage: </span><span class="r2">breeze version [OPTIONS] </span></div>
-<div><span class="r2"> </span></div>
-<div><span class="r1"> </span><span class="r1">Print information about version of apache-airflow-breeze. </span><span class="r1"> </span></div>
-<div><span class="r1"> </span></div>
-<div><span class="r4">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--verbose</span><span class="r1"> </span><span class="r6">-v</span><span class="r1"> </span><span class="r1">Print verbose information about performed steps. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">│</span><span class="r1"> </span><span class="r5">--help</span><span class="r1"> </span><span class="r6">-h</span><span class="r1"> </span><span class="r1">Show this message and exit. </span><span class="r1"> </span><span class="r4">│</span></div>
-<div><span class="r4">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</span></div>
-<div><span class="r1"></span><span class="r1"> </span></div>
- </div>
- </div>
- </div>
- </body>
- </foreignObject>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="16" y="20" width="1512" height="289.6" rx="12"/><text class="terminal-589851807-title" fill="#c5c8c6" text-anchor="middle" x="756" y="46">Command: version</text>
+ <circle cx="40" cy="40" r="7" fill="#ff5f57"/>
+ <circle cx="62" cy="40" r="7" fill="#febc2e"/>
+ <circle cx="84" cy="40" r="7" fill="#28c840"/>
+
+ <g transform="translate(28, 60)">
+
+ <text alignment-baseline="baseline" class="terminal-589851807-matrix" font-variant="east-asian-width-values"><tspan class="terminal-589851807-r1" x="0" y="20" textLength="1488">                                                     [...]
+</tspan><tspan class="terminal-589851807-r1" x="0" y="46.4" textLength="12.4"> </tspan><tspan class="terminal-589851807-r3" x="12.4" y="46.4" textLength="86.8">Usage: </tspan><tspan class="terminal-589851807-r1" x="99.2" y="46.4" textLength="1388.8">breeze version [OPTIONS]                                  [...]
+</tspan><tspan class="terminal-589851807-r1" x="0" y="72.8" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-589851807-r2" x="0" y="99.2" textLength="12.4"> </tspan><tspan class="terminal-589851807-r2" x="12.4" y="99.2" textLength="1463.2">Print information about version of apache-airflow-breeze.                                         [...]
+</tspan><tspan class="terminal-589851807-r2" x="0" y="125.6" textLength="1488">                                                                      [...]
+</tspan><tspan class="terminal-589851807-r4" x="0" y="152" textLength="1488">╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮</tspan><tspan class="terminal-589851807-r2" x="1488" y="152" textLength="12.4">
+</tspan><tspan class="terminal-589851807-r4" x="0" y="178.4" textLength="12.4">│</tspan><tspan class="terminal-589851807-r2" x="12.4" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-589851807-r5" x="37.2" y="178.4" textLength="111.6">--verbose</tspan><tspan class="terminal-589851807-r2" x="148.8" y="178.4" textLength="24.8">  </tspan><tspan class="terminal-589851807-r6" x="173.6" y="178.4" textLength="24.8">-v</tspan><tspan class="terminal-589851807-r2" x [...]
+</tspan><tspan class="terminal-589851807-r4" x="0" y="204.8" textLength="12.4">│</tspan><tspan class="terminal-589851807-r2" x="12.4" y="204.8" textLength="24.8">  </tspan><tspan class="terminal-589851807-r5" x="37.2" y="204.8" textLength="74.4">--help</tspan><tspan class="terminal-589851807-r2" x="111.6" y="204.8" textLength="62">     </tspan><tspan class="terminal-589851807-r6" x="173.6" y="204.8" textLength="24.8">-h</tspan><tspan class="terminal-589 [...]
+</tspan><tspan class="terminal-589851807-r4" x="0" y="231.2" textLength="1488">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</tspan><tspan class="terminal-589851807-r2" x="1488" y="231.2" textLength="12.4">
+</tspan></text>
+ </g>
</svg>
diff --git a/scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py b/scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
index 93be3efe8d..74648f2608 100755
--- a/scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
+++ b/scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
@@ -19,12 +19,13 @@
import os
import sys
from pathlib import Path
-from subprocess import check_call, check_output
+from subprocess import check_call, check_output, run
from rich.console import Console
AIRFLOW_SOURCES_DIR = Path(__file__).parents[3].absolute()
BREEZE_IMAGES_DIR = AIRFLOW_SOURCES_DIR / "images" / "breeze"
+BREEZE_SOURCES_DIR = AIRFLOW_SOURCES_DIR / "dev" / "breeze" / "src"
SCREENSHOT_WIDTH = "120"
@@ -39,7 +40,39 @@ def get_command_list():
def print_help_for_all_commands():
+ console = Console(width=int(SCREENSHOT_WIDTH), color_system="standard")
+ env = os.environ.copy()
+ env['AIRFLOW_SOURCES_ROOT'] = str(AIRFLOW_SOURCES_DIR)
+ env['RECORD_BREEZE_WIDTH'] = SCREENSHOT_WIDTH
+ env['RECORD_BREEZE_TITLE'] = "Breeze commands"
+ env['RECORD_BREEZE_OUTPUT_FILE'] = str(BREEZE_IMAGES_DIR / "output-commands.svg")
+ env['TERM'] = "xterm-256color"
+ env['PYTHONPATH'] = str(BREEZE_SOURCES_DIR)
+ new_hash = check_output(
+ [
+ sys.executable,
+ str(BREEZE_SOURCES_DIR / "airflow_breeze" / "breeze.py"),
+ "command-hash-export",
+ "-",
+ ],
+ env=env,
+ text=True,
+ )
+ hash_file_path = BREEZE_IMAGES_DIR / "output-commands-hash.txt"
+ try:
+ old_hash = hash_file_path.read_text()
+ except FileNotFoundError:
+ old_hash = ""
+ if old_hash == new_hash:
+ console.print(f"[bright_blue]Skip generation of SVG images as command hash is unchanged {old_hash}")
+ return
+ if run(["breeze", "--help"], check=False).returncode != 0:
+ console.print("[red]ERROR! You need to install breeze with pipx to run this pre-commit[/]")
+ console.print("\n[bright_blue]Run this command:[/]\n")
+ console.print(" pip install -e ./dev/breeze --force\n")
+ sys.exit(1)
env = os.environ.copy()
+ env['AIRFLOW_SOURCES_ROOT'] = str(AIRFLOW_SOURCES_DIR)
env['RECORD_BREEZE_WIDTH'] = SCREENSHOT_WIDTH
env['RECORD_BREEZE_TITLE'] = "Breeze commands"
env['RECORD_BREEZE_OUTPUT_FILE'] = str(BREEZE_IMAGES_DIR / "output-commands.svg")
@@ -47,11 +80,13 @@ def print_help_for_all_commands():
check_call(["breeze", "--help"], env=env)
for command in get_command_list():
env = os.environ.copy()
+ env['AIRFLOW_SOURCES_ROOT'] = str(AIRFLOW_SOURCES_DIR)
env['RECORD_BREEZE_WIDTH'] = SCREENSHOT_WIDTH
env['RECORD_BREEZE_TITLE'] = f"Command: {command}"
env['RECORD_BREEZE_OUTPUT_FILE'] = str(BREEZE_IMAGES_DIR / f"output-{command}.svg")
env['TERM'] = "xterm-256color"
check_call(["breeze", command, "--help"], env=env)
+ hash_file_path.write_text(new_hash)
def verify_all_commands_described_in_docs():
diff --git a/setup.cfg b/setup.cfg
index 0b7a5764d4..0cf75b0938 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -156,7 +156,7 @@ install_requires =
python-dateutil>=2.3
python-nvd3>=0.15.0
python-slugify>=5.0
- rich==12.3.0
+ rich
setproctitle>=1.1.8
# SQL Alchemy 1.4.10 introduces a bug where for PyODBC driver UTCDateTime fields get wrongly converted
# as string and fail to be converted back to datetime. It was supposed to be fixed in