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 77a7f999b6 Avoid too many conflicts when generating breeze images 
(#35508)
77a7f999b6 is described below

commit 77a7f999b60f6c5e93febc4632bfc34b13fbd5fa
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Wed Nov 8 09:13:10 2023 +0100

    Avoid too many conflicts when generating breeze images (#35508)
    
    The `breeze setup regenerate-command-images` used hash calculation
    to determine when to regenerate commands. There was only one file
    with hashes for all commands which often cause conflicts if several
    people changed adjacent commands. Also when one of the subcommands
    changed, this immediately invalidated the "parent" command where
    the subcommand was, however such invalidation is only needed if
    a new subcommand is added or if name or help description of the
    subcommand changes - because this is the only information displayed
    in the parent command.
    
    This PR improves hash calculation and verification and calculation
    to avoid conflicts as much as possible. The hash will only have
    conflict when the same command is modified by the same people in
    parallel (signifying that indeed you need to regenerate the image
    for that command). This is achieved by:
    
    * splitting hashes to separate files - each command has its own
      .txt file where hash of the command is kept
    
    * when hash of the group command is calculated, only name and
      help text of the subcommands for the group are used to calculate
      hash
---
 .../src/airflow_breeze/commands/setup_commands.py  | 131 +++++++++------------
 images/breeze/output-commands-hash.txt             |  75 ------------
 images/breeze/output_build-docs.txt                |   1 +
 images/breeze/output_ci-image.txt                  |   1 +
 images/breeze/output_ci-image_build.txt            |   1 +
 images/breeze/output_ci-image_pull.txt             |   1 +
 images/breeze/output_ci-image_verify.txt           |   1 +
 images/breeze/output_ci.txt                        |   1 +
 .../output_ci_find-backtracking-candidates.txt     |   1 +
 images/breeze/output_ci_fix-ownership.txt          |   1 +
 images/breeze/output_ci_free-space.txt             |   1 +
 images/breeze/output_ci_get-workflow-info.txt      |   1 +
 images/breeze/output_ci_resource-check.txt         |   1 +
 images/breeze/output_ci_selective-check.txt        |   1 +
 images/breeze/output_cleanup.txt                   |   1 +
 images/breeze/output_compile-www-assets.txt        |   1 +
 images/breeze/output_down.txt                      |   1 +
 images/breeze/output_exec.txt                      |   1 +
 images/breeze/output_k8s.txt                       |   1 +
 images/breeze/output_k8s_build-k8s-image.txt       |   1 +
 images/breeze/output_k8s_configure-cluster.txt     |   1 +
 images/breeze/output_k8s_create-cluster.txt        |   1 +
 images/breeze/output_k8s_delete-cluster.txt        |   1 +
 images/breeze/output_k8s_deploy-airflow.txt        |   1 +
 images/breeze/output_k8s_k9s.txt                   |   1 +
 images/breeze/output_k8s_logs.txt                  |   1 +
 images/breeze/output_k8s_run-complete-tests.txt    |   1 +
 images/breeze/output_k8s_setup-env.txt             |   1 +
 images/breeze/output_k8s_shell.txt                 |   1 +
 images/breeze/output_k8s_status.txt                |   1 +
 images/breeze/output_k8s_tests.txt                 |   1 +
 images/breeze/output_k8s_upload-k8s-image.txt      |   1 +
 images/breeze/output_prod-image.txt                |   1 +
 images/breeze/output_prod-image_build.txt          |   1 +
 images/breeze/output_prod-image_pull.txt           |   1 +
 images/breeze/output_prod-image_verify.txt         |   1 +
 images/breeze/output_release-management.txt        |   1 +
 ...tput_release-management_add-back-references.txt |   1 +
 ...tput_release-management_create-minor-branch.txt |   1 +
 ...put_release-management_generate-constraints.txt |   1 +
 ...management_generate-issue-content-providers.txt |   1 +
 ...ease-management_generate-providers-metadata.txt |   1 +
 ...elease-management_install-provider-packages.txt |   1 +
 ..._release-management_prepare-airflow-package.txt |   1 +
 ...e-management_prepare-provider-documentation.txt |   1 +
 ...elease-management_prepare-provider-packages.txt |   1 +
 .../output_release-management_publish-docs.txt     |   1 +
 ...tput_release-management_release-prod-images.txt |   1 +
 .../output_release-management_start-rc-process.txt |   1 +
 .../output_release-management_start-release.txt    |   1 +
 ...utput_release-management_update-constraints.txt |   1 +
 ...release-management_verify-provider-packages.txt |   1 +
 images/breeze/output_sbom.txt                      |   1 +
 .../output_sbom_build-all-airflow-images.txt       |   1 +
 ...output_sbom_generate-providers-requirements.txt |   1 +
 .../breeze/output_sbom_update-sbom-information.txt |   1 +
 images/breeze/output_setup.txt                     |   1 +
 images/breeze/output_setup_autocomplete.txt        |   1 +
 .../output_setup_check-all-params-in-groups.svg    |  38 +++---
 .../output_setup_check-all-params-in-groups.txt    |   1 +
 images/breeze/output_setup_config.txt              |   1 +
 .../output_setup_regenerate-command-images.svg     |  38 +++---
 .../output_setup_regenerate-command-images.txt     |   1 +
 images/breeze/output_setup_self-upgrade.txt        |   1 +
 images/breeze/output_setup_version.txt             |   1 +
 images/breeze/output_shell.txt                     |   1 +
 images/breeze/output_start-airflow.txt             |   1 +
 images/breeze/output_static-checks.txt             |   1 +
 images/breeze/output_testing.txt                   |   1 +
 images/breeze/output_testing_db-tests.txt          |   1 +
 .../breeze/output_testing_docker-compose-tests.txt |   1 +
 images/breeze/output_testing_helm-tests.txt        |   1 +
 images/breeze/output_testing_integration-tests.txt |   1 +
 images/breeze/output_testing_non-db-tests.txt      |   1 +
 images/breeze/output_testing_tests.txt             |   1 +
 .../ci/pre_commit/pre_commit_breeze_cmd_line.py    |   2 +-
 76 files changed, 167 insertions(+), 188 deletions(-)

diff --git a/dev/breeze/src/airflow_breeze/commands/setup_commands.py 
b/dev/breeze/src/airflow_breeze/commands/setup_commands.py
index 24a3d2e8a2..e41137d647 100644
--- a/dev/breeze/src/airflow_breeze/commands/setup_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/setup_commands.py
@@ -22,6 +22,7 @@ import os
 import shutil
 import subprocess
 import sys
+from copy import copy
 from pathlib import Path
 from typing import Any
 
@@ -295,15 +296,14 @@ def validate_params_for_command(command_params, command):
     return is_duplicate_found
 
 
-def get_command_hash_export() -> str:
+def get_command_hash_dict() -> dict[str, str]:
     import rich_click
 
-    hashes = []
+    hashes: dict[str, str] = {}
     with Context(main) as ctx:
         the_context_dict = ctx.to_info_dict()
         if get_verbose():
             get_stderr_console().print(the_context_dict)
-        
hashes.append(f"main:{dict_hash(the_context_dict['command']['params'])}")
         commands_dict = the_context_dict["command"]["commands"]
         options = rich_click.rich_click.OPTION_GROUPS
         for command in sorted(commands_dict.keys()):
@@ -311,43 +311,48 @@ def get_command_hash_export() -> str:
             if duplicate_found:
                 sys.exit(1)
             current_command_dict = commands_dict[command]
-            current_command_hash_dict = {
-                "command": current_command_dict,
-                "options": rich_click.rich_click.COMMAND_GROUPS.get(f"breeze 
{command}"),
-            }
-            if "commands" in current_command_dict:
-                subcommands = current_command_dict["commands"]
-                duplicate_found_subcommand = False
-                for subcommand in sorted(subcommands.keys()):
-                    duplicate_found = validate_params_for_command(
-                        commands_dict[command]["commands"][subcommand], 
command + " " + subcommand
-                    )
-                    if duplicate_found:
-                        duplicate_found_subcommand = True
-                    subcommand_click_dict = subcommands[subcommand]
-                    try:
-                        subcommand_rich_click_dict = options[f"breeze 
{command} {subcommand}"]
-                    except KeyError:
-                        get_console().print(
-                            f"[error]The `breeze {command} {subcommand}` is 
missing in rich-click options[/]"
-                        )
-                        get_console().print(
-                            "[info]Please add it to rich_click.OPTION_GROUPS "
-                            "via one of the `*_commands_config.py` "
-                            "files in 
`dev/breeze/src/airflow_breeze/commands`[/]"
-                        )
-                        sys.exit(1)
-                    final_dict = {
-                        "click_commands": subcommand_click_dict,
-                        "rich_click_options": subcommand_rich_click_dict,
+            subcommands = current_command_dict.get("commands", {})
+            if subcommands:
+                only_subcommands_with_help = copy(current_command_dict)
+                only_subcommands_with_help["commands"] = {
+                    subcommand: {
+                        "name": subcommands[subcommand]["name"],
+                        "help": subcommands[subcommand]["help"],
                     }
-                    
hashes.append(f"{command}:{subcommand}:{dict_hash(final_dict)}")
-                if duplicate_found_subcommand:
-                    sys.exit(1)
-                
hashes.append(f"{command}:{dict_hash(current_command_hash_dict)}")
+                    for subcommand in subcommands
+                    if subcommands[subcommand].get("help")
+                }
+                hashes[f"{command}"] = dict_hash(only_subcommands_with_help) + 
"\n"
             else:
-                
hashes.append(f"{command}:{dict_hash(current_command_hash_dict)}")
-    return "".join(f"{h}\n" for h in hashes)
+                hashes[f"{command}"] = dict_hash(current_command_dict) + "\n"
+            duplicate_found_subcommand = False
+            for subcommand in sorted(subcommands.keys()):
+                duplicate_found = validate_params_for_command(
+                    commands_dict[command]["commands"][subcommand], command + 
" " + subcommand
+                )
+                if duplicate_found:
+                    duplicate_found_subcommand = True
+                subcommand_click_dict = subcommands[subcommand]
+                try:
+                    subcommand_rich_click_dict = options[f"breeze {command} 
{subcommand}"]
+                except KeyError:
+                    get_console().print(
+                        f"[error]The `breeze {command} {subcommand}` is 
missing in rich-click options[/]"
+                    )
+                    get_console().print(
+                        "[info]Please add it to rich_click.OPTION_GROUPS "
+                        "via one of the `*_commands_config.py` "
+                        "files in `dev/breeze/src/airflow_breeze/commands`[/]"
+                    )
+                    sys.exit(1)
+                final_dict = {
+                    "click_commands": subcommand_click_dict,
+                    "rich_click_options": subcommand_rich_click_dict,
+                }
+                hashes[f"{command}:{subcommand}"] = dict_hash(final_dict) + 
"\n"
+            if duplicate_found_subcommand:
+                sys.exit(1)
+    return hashes
 
 
 def write_to_shell(command_to_execute: str, script_path: str, force_setup: 
bool) -> bool:
@@ -418,37 +423,18 @@ def backup(script_path_file: Path):
 BREEZE_IMAGES_DIR = AIRFLOW_SOURCES_ROOT / "images" / "breeze"
 BREEZE_INSTALL_DIR = AIRFLOW_SOURCES_ROOT / "dev" / "breeze"
 BREEZE_SOURCES_DIR = BREEZE_INSTALL_DIR / "src"
-COMMAND_HASH_FILE_PATH = BREEZE_IMAGES_DIR / "output-commands-hash.txt"
 
 
-def get_commands() -> list[str]:
-    results = []
-    if COMMAND_HASH_FILE_PATH.exists():
-        content = COMMAND_HASH_FILE_PATH.read_text()
-        for line in content.splitlines():
-            strip_line = line.strip()
-            if strip_line and not strip_line.startswith("#"):
-                results.append(strip_line.rpartition(":")[0])
-    return results
+def get_old_command_hash() -> dict[str, str]:
+    command_hash = {}
+    for file in BREEZE_IMAGES_DIR.glob("output_*.txt"):
+        command = ":".join(file.name.split("_")[1:])[:-4]
+        command_hash[command] = file.read_text()
+    return command_hash
 
 
 SCREENSHOT_WIDTH = "120"
 
-PREAMBLE = """# This file is automatically generated by pre-commit. If you 
have a conflict with this file
-# Please do not solve it but run `breeze setup regenerate-command-images`.
-# This command should fix the conflict and regenerate help images that you 
have conflict with.
-"""
-
-
-def get_command_hash_dict(hash_file_content: str) -> dict[str, str]:
-    results = {}
-    for line in hash_file_content.splitlines():
-        strip_line = line.strip()
-        if strip_line and not strip_line.startswith("#"):
-            command, the_hash = strip_line.rsplit(":", 1)
-            results[command] = the_hash
-    return results
-
 
 def print_difference(dict1: dict[str, str], dict2: dict[str, str]):
     console = Console(width=int(SCREENSHOT_WIDTH), color_system="standard")
@@ -468,21 +454,17 @@ def regenerate_help_images_for_all_commands(commands: 
tuple[str, ...], check_onl
     env["RECORD_BREEZE_WIDTH"] = SCREENSHOT_WIDTH
     env["TERM"] = "xterm-256color"
     env["PYTHONPATH"] = str(BREEZE_SOURCES_DIR)
-    new_hash_text_dump = PREAMBLE + get_command_hash_export()
+    new_hash_dict = get_command_hash_dict()
     regenerate_all_commands = False
     commands_list = list(commands)
     if force:
         console.print("[info]Force regeneration all breeze command images")
-        commands_list.extend(get_command_hash_dict(new_hash_text_dump).keys())
+        commands_list.extend(new_hash_dict.keys())
         regenerate_all_commands = True
     elif commands_list:
         console.print(f"[info]Regenerating breeze command images for specified 
commands:{commands_list}")
     else:
-        old_hash_text_dump = ""
-        if COMMAND_HASH_FILE_PATH.exists():
-            old_hash_text_dump = COMMAND_HASH_FILE_PATH.read_text()
-        old_hash_dict = get_command_hash_dict(old_hash_text_dump)
-        new_hash_dict = get_command_hash_dict(new_hash_text_dump)
+        old_hash_dict = get_old_command_hash()
         if old_hash_dict == new_hash_dict:
             if check_only:
                 console.print(
@@ -523,8 +505,9 @@ def regenerate_help_images_for_all_commands(commands: 
tuple[str, ...], check_onl
             env["RECORD_BREEZE_UNIQUE_ID"] = f"breeze-{'-'.join(subcommands)}"
             run_command(["breeze", *subcommands, "--help"], env=env)
     if regenerate_all_commands:
-        COMMAND_HASH_FILE_PATH.write_text(new_hash_text_dump)
-        get_console().print(f"\n[info]New hash of breeze commands written in 
{COMMAND_HASH_FILE_PATH}\n")
+        for command, hash_txt in new_hash_dict.items():
+            (BREEZE_IMAGES_DIR / 
f"output_{'_'.join(command.split(':'))}.txt").write_text(hash_txt)
+        get_console().print("\n[info]New hash of breeze commands written\n")
     return 1
 
 
@@ -644,7 +627,7 @@ def check_that_all_params_are_in_groups(commands: 
tuple[str, ...]) -> int:
     help="Command(s) to regenerate images for (optional, might be repeated)",
     show_default=True,
     multiple=True,
-    type=BetterChoice(get_commands()),
+    type=BetterChoice(sorted(list(get_old_command_hash().keys()))),
 )
 @option_verbose
 @option_dry_run
@@ -661,7 +644,7 @@ def regenerate_command_images(command: tuple[str, ...], 
force: bool, check_only:
     help="Command(s) to regenerate images for (optional, might be repeated)",
     show_default=True,
     multiple=True,
-    type=BetterChoice(get_commands()),
+    type=BetterChoice(sorted(list(get_old_command_hash().keys()))),
 )
 @option_verbose
 @option_dry_run
diff --git a/images/breeze/output-commands-hash.txt 
b/images/breeze/output-commands-hash.txt
deleted file mode 100644
index df6136ebe1..0000000000
--- a/images/breeze/output-commands-hash.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file is automatically generated by pre-commit. If you have a conflict 
with this file
-# Please do not solve it but run `breeze setup regenerate-command-images`.
-# This command should fix the conflict and regenerate help images that you 
have conflict with.
-main:96b4884054753db922cb8ca2cc555368
-build-docs:9acb6b6cb8a0930f252813e78cd30848
-ci:find-backtracking-candidates:17fe56b867a745e5032a08dfcd3f73ee
-ci:fix-ownership:3e5a73533cc96045e72cb258783cfc96
-ci:free-space:49af17b032039c05c41a7a8283f365cc
-ci:get-workflow-info:8246038093359b9c3c110043419473e2
-ci:resource-check:bfcca92f18a403ca630955074eb5e9ad
-ci:selective-check:6657ed5d42affb7264b5efcc86f17a2a
-ci:5315c29bd9f68725ef92e4db8aff5cda
-ci-image:build:26e91cab59fc5836def7404484c619a4
-ci-image:pull:f9248c6026da61fe0acdb5d8f37b20da
-ci-image:verify:c90dc7e20fce2351eb89d8d1ebbd35e7
-ci-image:33a22dbe1a324aab74355346f9cdf43f
-cleanup:8d92d453a6700f6d8cb11fb6a8b50461
-compile-www-assets:0963f1409f0aa1e3b137cddd4cc52e87
-down:4580f5b3b178ea00182694f134a751f3
-exec:9d0fb86607526afb6b161115ae7bf9cc
-k8s:build-k8s-image:b625255c3e8f3f794ee404f9a4476836
-k8s:configure-cluster:9958c5aac726565ec043e850d56ec8f8
-k8s:create-cluster:3e43f9da5e7c0bb67f3d868c9005515a
-k8s:delete-cluster:5f580bb09b6456610bf1044321717673
-k8s:deploy-airflow:f4b05b2101a4a029c9706ecd6fbf3c5c
-k8s:k9s:892a7931e981ba01a21c0da72fac39bc
-k8s:logs:f1a3fa2c5747d86ff712d1b0a06ff48b
-k8s:run-complete-tests:5018013f47f6c60aae07eb35256eb240
-k8s:setup-env:a34e94744ca4e0592371fe55478c3d54
-k8s:shell:b872c01cedfd50b865d98ed85933fed7
-k8s:status:6e711c24648c9bf42372e5b73cb2ac0f
-k8s:tests:4fea1fee4cfbf15f313ffd9026219401
-k8s:upload-k8s-image:46c5f1b042222047fda3f18f1ef75835
-k8s:6994fe347c18bcc01d95fb721a3757d5
-prod-image:build:1628f7bff3e7e369f0358a646682e674
-prod-image:pull:3817ef211b023b76df84ee1110ef64dd
-prod-image:verify:bd2b78738a7c388dbad6076c41a9f906
-prod-image:6011405076eb0e1049d87e971e3adce1
-release-management:add-back-references:824cb5a426c88b262c357d8b20b06bb9
-release-management:create-minor-branch:a3834afc4aa5d1e98002c9e9e7a9931d
-release-management:generate-constraints:01aef235b11e59ed7f10c970a5cdaba7
-release-management:generate-issue-content-providers:57e91dce9df385fe93e1b4c6b88c65ba
-release-management:generate-providers-metadata:d4e8e5cfaa024e3963af02d7a873048d
-release-management:install-provider-packages:34c38aca17d23dbb454fe7a6bfd8e630
-release-management:prepare-airflow-package:85d01c57e5b5ee0fb9e5f9d9706ed3b5
-release-management:prepare-provider-documentation:2f310457cfa075508aa8a926258a5f28
-release-management:prepare-provider-packages:da7b617d250d0bbc1567d83ef8f70dc4
-release-management:publish-docs:d433c5844046cd1d6da48acc3c3ece90
-release-management:release-prod-images:cfbfe8b19fee91fd90718f98ef2fd078
-release-management:start-rc-process:b27bd524dd3c89f50a747b60a7e892c1
-release-management:start-release:419f48f6a4ff4457cb9de7ff496aebbe
-release-management:update-constraints:02ec4b119150e3fdbac52026e94820ef
-release-management:verify-provider-packages:96dce5644aad6b37080acf77b3d8de3a
-release-management:63701dcf965ebf8c2c75e703379db9d6
-sbom:build-all-airflow-images:32f8acade299c2b112e986bae99846db
-sbom:generate-providers-requirements:344968a060e00ace19738cca47d70641
-sbom:update-sbom-information:653be48be70b4b7ff5172d491aadc694
-sbom:5592e8be9f804dc136f1930ec4ee67c2
-setup:autocomplete:fffcd49e102e09ccd69b3841a9e3ea8e
-setup:check-all-params-in-groups:5c5e3c382fc8ce84899d224448b3f48a
-setup:config:3435f1f1535a82c30591dbf577294d2e
-setup:regenerate-command-images:3c3023afd1761030c64bd6f1d6ef4793
-setup:self-upgrade:4af905a147fcd6670a0e33d3d369a94b
-setup:version:be116d90a21c2afe01087f7609774e1e
-setup:65c45fd922535977e640faa9b93042f0
-shell:8e661773a5ee64e7b084df0883801c01
-start-airflow:4d8a8639bb9b7bb7441f878458a34801
-static-checks:06290ff4d6f24bbda96421385ba29ca2
-testing:db-tests:c45075080add9d991477e7f0779c9759
-testing:docker-compose-tests:fd154a058082fcfda12eb877a9a89338
-testing:helm-tests:98a9ba6631249762b1633b76a29f4461
-testing:integration-tests:4a7da2c5a8c42fcc43941a75f0af68e7
-testing:non-db-tests:ed916603036dd9979b1593c4d088eb40
-testing:tests:1620dc0e96578677e8f6ce48cbcd2daa
-testing:6e34803ff61ce4b496dc5f9e72154996
diff --git a/images/breeze/output_build-docs.txt 
b/images/breeze/output_build-docs.txt
new file mode 100644
index 0000000000..7d31a85740
--- /dev/null
+++ b/images/breeze/output_build-docs.txt
@@ -0,0 +1 @@
+5f89ded4619f6e26816abb40d6218a78
diff --git a/images/breeze/output_ci-image.txt 
b/images/breeze/output_ci-image.txt
new file mode 100644
index 0000000000..291f992d9a
--- /dev/null
+++ b/images/breeze/output_ci-image.txt
@@ -0,0 +1 @@
+eb0a44354e231d527eb61abbfa6a410c
diff --git a/images/breeze/output_ci-image_build.txt 
b/images/breeze/output_ci-image_build.txt
new file mode 100644
index 0000000000..ab2c24a011
--- /dev/null
+++ b/images/breeze/output_ci-image_build.txt
@@ -0,0 +1 @@
+26e91cab59fc5836def7404484c619a4
diff --git a/images/breeze/output_ci-image_pull.txt 
b/images/breeze/output_ci-image_pull.txt
new file mode 100644
index 0000000000..3eb380722d
--- /dev/null
+++ b/images/breeze/output_ci-image_pull.txt
@@ -0,0 +1 @@
+f9248c6026da61fe0acdb5d8f37b20da
diff --git a/images/breeze/output_ci-image_verify.txt 
b/images/breeze/output_ci-image_verify.txt
new file mode 100644
index 0000000000..6b16a49525
--- /dev/null
+++ b/images/breeze/output_ci-image_verify.txt
@@ -0,0 +1 @@
+c90dc7e20fce2351eb89d8d1ebbd35e7
diff --git a/images/breeze/output_ci.txt b/images/breeze/output_ci.txt
new file mode 100644
index 0000000000..b40c332f23
--- /dev/null
+++ b/images/breeze/output_ci.txt
@@ -0,0 +1 @@
+f1a1495fef9014a7947fbcb3b7524656
diff --git a/images/breeze/output_ci_find-backtracking-candidates.txt 
b/images/breeze/output_ci_find-backtracking-candidates.txt
new file mode 100644
index 0000000000..34e27a8618
--- /dev/null
+++ b/images/breeze/output_ci_find-backtracking-candidates.txt
@@ -0,0 +1 @@
+17fe56b867a745e5032a08dfcd3f73ee
diff --git a/images/breeze/output_ci_fix-ownership.txt 
b/images/breeze/output_ci_fix-ownership.txt
new file mode 100644
index 0000000000..df6f8b9361
--- /dev/null
+++ b/images/breeze/output_ci_fix-ownership.txt
@@ -0,0 +1 @@
+3e5a73533cc96045e72cb258783cfc96
diff --git a/images/breeze/output_ci_free-space.txt 
b/images/breeze/output_ci_free-space.txt
new file mode 100644
index 0000000000..4f460e5d24
--- /dev/null
+++ b/images/breeze/output_ci_free-space.txt
@@ -0,0 +1 @@
+49af17b032039c05c41a7a8283f365cc
diff --git a/images/breeze/output_ci_get-workflow-info.txt 
b/images/breeze/output_ci_get-workflow-info.txt
new file mode 100644
index 0000000000..9fd843d756
--- /dev/null
+++ b/images/breeze/output_ci_get-workflow-info.txt
@@ -0,0 +1 @@
+8246038093359b9c3c110043419473e2
diff --git a/images/breeze/output_ci_resource-check.txt 
b/images/breeze/output_ci_resource-check.txt
new file mode 100644
index 0000000000..194cda808b
--- /dev/null
+++ b/images/breeze/output_ci_resource-check.txt
@@ -0,0 +1 @@
+bfcca92f18a403ca630955074eb5e9ad
diff --git a/images/breeze/output_ci_selective-check.txt 
b/images/breeze/output_ci_selective-check.txt
new file mode 100644
index 0000000000..22984f7955
--- /dev/null
+++ b/images/breeze/output_ci_selective-check.txt
@@ -0,0 +1 @@
+6657ed5d42affb7264b5efcc86f17a2a
diff --git a/images/breeze/output_cleanup.txt b/images/breeze/output_cleanup.txt
new file mode 100644
index 0000000000..b4b8f084ef
--- /dev/null
+++ b/images/breeze/output_cleanup.txt
@@ -0,0 +1 @@
+231de69d5f47ba29c883164e4575e310
diff --git a/images/breeze/output_compile-www-assets.txt 
b/images/breeze/output_compile-www-assets.txt
new file mode 100644
index 0000000000..78b4aea264
--- /dev/null
+++ b/images/breeze/output_compile-www-assets.txt
@@ -0,0 +1 @@
+c8a8c4f002f7246d0541897fc7c70313
diff --git a/images/breeze/output_down.txt b/images/breeze/output_down.txt
new file mode 100644
index 0000000000..1875f99629
--- /dev/null
+++ b/images/breeze/output_down.txt
@@ -0,0 +1 @@
+99efb2055475cd40656d5498aee74ef6
diff --git a/images/breeze/output_exec.txt b/images/breeze/output_exec.txt
new file mode 100644
index 0000000000..85e16aefc6
--- /dev/null
+++ b/images/breeze/output_exec.txt
@@ -0,0 +1 @@
+42bbd3c1659128b0341ae118c3482da2
diff --git a/images/breeze/output_k8s.txt b/images/breeze/output_k8s.txt
new file mode 100644
index 0000000000..2014dc199a
--- /dev/null
+++ b/images/breeze/output_k8s.txt
@@ -0,0 +1 @@
+753a8c2dae15310166438602584a4775
diff --git a/images/breeze/output_k8s_build-k8s-image.txt 
b/images/breeze/output_k8s_build-k8s-image.txt
new file mode 100644
index 0000000000..ee7491ec5c
--- /dev/null
+++ b/images/breeze/output_k8s_build-k8s-image.txt
@@ -0,0 +1 @@
+b625255c3e8f3f794ee404f9a4476836
diff --git a/images/breeze/output_k8s_configure-cluster.txt 
b/images/breeze/output_k8s_configure-cluster.txt
new file mode 100644
index 0000000000..1a21ede484
--- /dev/null
+++ b/images/breeze/output_k8s_configure-cluster.txt
@@ -0,0 +1 @@
+9958c5aac726565ec043e850d56ec8f8
diff --git a/images/breeze/output_k8s_create-cluster.txt 
b/images/breeze/output_k8s_create-cluster.txt
new file mode 100644
index 0000000000..d64a4c06fc
--- /dev/null
+++ b/images/breeze/output_k8s_create-cluster.txt
@@ -0,0 +1 @@
+3e43f9da5e7c0bb67f3d868c9005515a
diff --git a/images/breeze/output_k8s_delete-cluster.txt 
b/images/breeze/output_k8s_delete-cluster.txt
new file mode 100644
index 0000000000..cbe1db0daf
--- /dev/null
+++ b/images/breeze/output_k8s_delete-cluster.txt
@@ -0,0 +1 @@
+5f580bb09b6456610bf1044321717673
diff --git a/images/breeze/output_k8s_deploy-airflow.txt 
b/images/breeze/output_k8s_deploy-airflow.txt
new file mode 100644
index 0000000000..17f2b4c07b
--- /dev/null
+++ b/images/breeze/output_k8s_deploy-airflow.txt
@@ -0,0 +1 @@
+f4b05b2101a4a029c9706ecd6fbf3c5c
diff --git a/images/breeze/output_k8s_k9s.txt b/images/breeze/output_k8s_k9s.txt
new file mode 100644
index 0000000000..66a30e4e75
--- /dev/null
+++ b/images/breeze/output_k8s_k9s.txt
@@ -0,0 +1 @@
+892a7931e981ba01a21c0da72fac39bc
diff --git a/images/breeze/output_k8s_logs.txt 
b/images/breeze/output_k8s_logs.txt
new file mode 100644
index 0000000000..9b14014f05
--- /dev/null
+++ b/images/breeze/output_k8s_logs.txt
@@ -0,0 +1 @@
+f1a3fa2c5747d86ff712d1b0a06ff48b
diff --git a/images/breeze/output_k8s_run-complete-tests.txt 
b/images/breeze/output_k8s_run-complete-tests.txt
new file mode 100644
index 0000000000..53b3cff595
--- /dev/null
+++ b/images/breeze/output_k8s_run-complete-tests.txt
@@ -0,0 +1 @@
+5018013f47f6c60aae07eb35256eb240
diff --git a/images/breeze/output_k8s_setup-env.txt 
b/images/breeze/output_k8s_setup-env.txt
new file mode 100644
index 0000000000..1285e24d1e
--- /dev/null
+++ b/images/breeze/output_k8s_setup-env.txt
@@ -0,0 +1 @@
+a34e94744ca4e0592371fe55478c3d54
diff --git a/images/breeze/output_k8s_shell.txt 
b/images/breeze/output_k8s_shell.txt
new file mode 100644
index 0000000000..4e8bde40af
--- /dev/null
+++ b/images/breeze/output_k8s_shell.txt
@@ -0,0 +1 @@
+b872c01cedfd50b865d98ed85933fed7
diff --git a/images/breeze/output_k8s_status.txt 
b/images/breeze/output_k8s_status.txt
new file mode 100644
index 0000000000..88eb30dac0
--- /dev/null
+++ b/images/breeze/output_k8s_status.txt
@@ -0,0 +1 @@
+6e711c24648c9bf42372e5b73cb2ac0f
diff --git a/images/breeze/output_k8s_tests.txt 
b/images/breeze/output_k8s_tests.txt
new file mode 100644
index 0000000000..512a37d172
--- /dev/null
+++ b/images/breeze/output_k8s_tests.txt
@@ -0,0 +1 @@
+4fea1fee4cfbf15f313ffd9026219401
diff --git a/images/breeze/output_k8s_upload-k8s-image.txt 
b/images/breeze/output_k8s_upload-k8s-image.txt
new file mode 100644
index 0000000000..a8dcb5a63a
--- /dev/null
+++ b/images/breeze/output_k8s_upload-k8s-image.txt
@@ -0,0 +1 @@
+46c5f1b042222047fda3f18f1ef75835
diff --git a/images/breeze/output_prod-image.txt 
b/images/breeze/output_prod-image.txt
new file mode 100644
index 0000000000..4e4ac97bd6
--- /dev/null
+++ b/images/breeze/output_prod-image.txt
@@ -0,0 +1 @@
+55030fe0d7718eb668fa1a37128647b0
diff --git a/images/breeze/output_prod-image_build.txt 
b/images/breeze/output_prod-image_build.txt
new file mode 100644
index 0000000000..456dc95358
--- /dev/null
+++ b/images/breeze/output_prod-image_build.txt
@@ -0,0 +1 @@
+1628f7bff3e7e369f0358a646682e674
diff --git a/images/breeze/output_prod-image_pull.txt 
b/images/breeze/output_prod-image_pull.txt
new file mode 100644
index 0000000000..7efde9b404
--- /dev/null
+++ b/images/breeze/output_prod-image_pull.txt
@@ -0,0 +1 @@
+3817ef211b023b76df84ee1110ef64dd
diff --git a/images/breeze/output_prod-image_verify.txt 
b/images/breeze/output_prod-image_verify.txt
new file mode 100644
index 0000000000..2b87281a7f
--- /dev/null
+++ b/images/breeze/output_prod-image_verify.txt
@@ -0,0 +1 @@
+bd2b78738a7c388dbad6076c41a9f906
diff --git a/images/breeze/output_release-management.txt 
b/images/breeze/output_release-management.txt
new file mode 100644
index 0000000000..358e016f3e
--- /dev/null
+++ b/images/breeze/output_release-management.txt
@@ -0,0 +1 @@
+302213acf4f3dfbe296e44532cff71c5
diff --git a/images/breeze/output_release-management_add-back-references.txt 
b/images/breeze/output_release-management_add-back-references.txt
new file mode 100644
index 0000000000..1fda7ec265
--- /dev/null
+++ b/images/breeze/output_release-management_add-back-references.txt
@@ -0,0 +1 @@
+824cb5a426c88b262c357d8b20b06bb9
diff --git a/images/breeze/output_release-management_create-minor-branch.txt 
b/images/breeze/output_release-management_create-minor-branch.txt
new file mode 100644
index 0000000000..80fe1e8310
--- /dev/null
+++ b/images/breeze/output_release-management_create-minor-branch.txt
@@ -0,0 +1 @@
+a3834afc4aa5d1e98002c9e9e7a9931d
diff --git a/images/breeze/output_release-management_generate-constraints.txt 
b/images/breeze/output_release-management_generate-constraints.txt
new file mode 100644
index 0000000000..c714ab26a1
--- /dev/null
+++ b/images/breeze/output_release-management_generate-constraints.txt
@@ -0,0 +1 @@
+01aef235b11e59ed7f10c970a5cdaba7
diff --git 
a/images/breeze/output_release-management_generate-issue-content-providers.txt 
b/images/breeze/output_release-management_generate-issue-content-providers.txt
new file mode 100644
index 0000000000..05c8de723f
--- /dev/null
+++ 
b/images/breeze/output_release-management_generate-issue-content-providers.txt
@@ -0,0 +1 @@
+57e91dce9df385fe93e1b4c6b88c65ba
diff --git 
a/images/breeze/output_release-management_generate-providers-metadata.txt 
b/images/breeze/output_release-management_generate-providers-metadata.txt
new file mode 100644
index 0000000000..875f0c598e
--- /dev/null
+++ b/images/breeze/output_release-management_generate-providers-metadata.txt
@@ -0,0 +1 @@
+d4e8e5cfaa024e3963af02d7a873048d
diff --git 
a/images/breeze/output_release-management_install-provider-packages.txt 
b/images/breeze/output_release-management_install-provider-packages.txt
new file mode 100644
index 0000000000..47f58a6341
--- /dev/null
+++ b/images/breeze/output_release-management_install-provider-packages.txt
@@ -0,0 +1 @@
+34c38aca17d23dbb454fe7a6bfd8e630
diff --git 
a/images/breeze/output_release-management_prepare-airflow-package.txt 
b/images/breeze/output_release-management_prepare-airflow-package.txt
new file mode 100644
index 0000000000..d2e8102ace
--- /dev/null
+++ b/images/breeze/output_release-management_prepare-airflow-package.txt
@@ -0,0 +1 @@
+85d01c57e5b5ee0fb9e5f9d9706ed3b5
diff --git 
a/images/breeze/output_release-management_prepare-provider-documentation.txt 
b/images/breeze/output_release-management_prepare-provider-documentation.txt
new file mode 100644
index 0000000000..6f1fb5e216
--- /dev/null
+++ b/images/breeze/output_release-management_prepare-provider-documentation.txt
@@ -0,0 +1 @@
+2f310457cfa075508aa8a926258a5f28
diff --git 
a/images/breeze/output_release-management_prepare-provider-packages.txt 
b/images/breeze/output_release-management_prepare-provider-packages.txt
new file mode 100644
index 0000000000..e0be751ca6
--- /dev/null
+++ b/images/breeze/output_release-management_prepare-provider-packages.txt
@@ -0,0 +1 @@
+da7b617d250d0bbc1567d83ef8f70dc4
diff --git a/images/breeze/output_release-management_publish-docs.txt 
b/images/breeze/output_release-management_publish-docs.txt
new file mode 100644
index 0000000000..201141a5fc
--- /dev/null
+++ b/images/breeze/output_release-management_publish-docs.txt
@@ -0,0 +1 @@
+d433c5844046cd1d6da48acc3c3ece90
diff --git a/images/breeze/output_release-management_release-prod-images.txt 
b/images/breeze/output_release-management_release-prod-images.txt
new file mode 100644
index 0000000000..0397b63e19
--- /dev/null
+++ b/images/breeze/output_release-management_release-prod-images.txt
@@ -0,0 +1 @@
+cfbfe8b19fee91fd90718f98ef2fd078
diff --git a/images/breeze/output_release-management_start-rc-process.txt 
b/images/breeze/output_release-management_start-rc-process.txt
new file mode 100644
index 0000000000..a17d1176a8
--- /dev/null
+++ b/images/breeze/output_release-management_start-rc-process.txt
@@ -0,0 +1 @@
+b27bd524dd3c89f50a747b60a7e892c1
diff --git a/images/breeze/output_release-management_start-release.txt 
b/images/breeze/output_release-management_start-release.txt
new file mode 100644
index 0000000000..baf0143321
--- /dev/null
+++ b/images/breeze/output_release-management_start-release.txt
@@ -0,0 +1 @@
+419f48f6a4ff4457cb9de7ff496aebbe
diff --git a/images/breeze/output_release-management_update-constraints.txt 
b/images/breeze/output_release-management_update-constraints.txt
new file mode 100644
index 0000000000..e3b7ed373e
--- /dev/null
+++ b/images/breeze/output_release-management_update-constraints.txt
@@ -0,0 +1 @@
+02ec4b119150e3fdbac52026e94820ef
diff --git 
a/images/breeze/output_release-management_verify-provider-packages.txt 
b/images/breeze/output_release-management_verify-provider-packages.txt
new file mode 100644
index 0000000000..7f5b6fd74e
--- /dev/null
+++ b/images/breeze/output_release-management_verify-provider-packages.txt
@@ -0,0 +1 @@
+96dce5644aad6b37080acf77b3d8de3a
diff --git a/images/breeze/output_sbom.txt b/images/breeze/output_sbom.txt
new file mode 100644
index 0000000000..0edd5ebec9
--- /dev/null
+++ b/images/breeze/output_sbom.txt
@@ -0,0 +1 @@
+924eca934035f16d89ba69e74761336f
diff --git a/images/breeze/output_sbom_build-all-airflow-images.txt 
b/images/breeze/output_sbom_build-all-airflow-images.txt
new file mode 100644
index 0000000000..dbf59286ff
--- /dev/null
+++ b/images/breeze/output_sbom_build-all-airflow-images.txt
@@ -0,0 +1 @@
+32f8acade299c2b112e986bae99846db
diff --git a/images/breeze/output_sbom_generate-providers-requirements.txt 
b/images/breeze/output_sbom_generate-providers-requirements.txt
new file mode 100644
index 0000000000..1af97158bb
--- /dev/null
+++ b/images/breeze/output_sbom_generate-providers-requirements.txt
@@ -0,0 +1 @@
+344968a060e00ace19738cca47d70641
diff --git a/images/breeze/output_sbom_update-sbom-information.txt 
b/images/breeze/output_sbom_update-sbom-information.txt
new file mode 100644
index 0000000000..0418b1c425
--- /dev/null
+++ b/images/breeze/output_sbom_update-sbom-information.txt
@@ -0,0 +1 @@
+653be48be70b4b7ff5172d491aadc694
diff --git a/images/breeze/output_setup.txt b/images/breeze/output_setup.txt
new file mode 100644
index 0000000000..47cbfbccca
--- /dev/null
+++ b/images/breeze/output_setup.txt
@@ -0,0 +1 @@
+f7bc45512df20d7ddcbcc09070d0eae4
diff --git a/images/breeze/output_setup_autocomplete.txt 
b/images/breeze/output_setup_autocomplete.txt
new file mode 100644
index 0000000000..185feef026
--- /dev/null
+++ b/images/breeze/output_setup_autocomplete.txt
@@ -0,0 +1 @@
+fffcd49e102e09ccd69b3841a9e3ea8e
diff --git a/images/breeze/output_setup_check-all-params-in-groups.svg 
b/images/breeze/output_setup_check-all-params-in-groups.svg
index b3e062fca6..7cbbe80389 100644
--- a/images/breeze/output_setup_check-all-params-in-groups.svg
+++ b/images/breeze/output_setup_check-all-params-in-groups.svg
@@ -157,25 +157,25 @@
 </text><text class="breeze-setup-check-all-params-in-groups-r1" x="1464" 
y="117.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-4)">
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="142" 
textLength="24.4" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-5)">╭─</text><text 
class="breeze-setup-check-all-params-in-groups-r5" x="24.4" y="142" 
textLength="414.8" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-5)">&#160;Check&#160;all&#160;params&#160;in&#160;groups&#160;flags&#160;</text><text
 class="breeze-setup-check-all-params-in-groups-r5" x="439.2" y="142" 
textLength="1 [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="166.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-6)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r4" x="24.4" y="166.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-6)">-</text><text 
class="breeze-setup-check-all-params-in-groups-r4" x="36.6" y="166.4" 
textLength="97.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line 
[...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="190.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-7)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="190.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-7)">(main&#160;|&#160;build-docs&#160;|&#160;ci:find-backtracking-candidates&#160;|&#160;ci:fix-ownership&#160;|&#160;ci:free-space&#160;|&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="215.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-8)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="215.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-8)">ci:get-workflow-info&#160;|&#160;ci:resource-check&#160;|&#160;ci:selective-check&#160;|&#160;ci&#160;|&#160;ci-image:build&#160;|&#160;ci-image:pull&#160;|&#160
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="239.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-9)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="239.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-9)">ci-image:verify&#160;|&#160;ci-image&#160;|&#160;cleanup&#160;|&#160;compile-www-assets&#160;|&#160;down&#160;|&#160;exec&#160;|&#160;k8s:build-k8s-image&#160;|&
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="264" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-10)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="264" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-10)">k8s:configure-cluster&#160;|&#160;k8s:create-cluster&#160;|&#160;k8s:delete-cluster&#160;|&#160;k8s:deploy-airflow&#160;|&#160;k8s:k9s&#160;|&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="288.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-11)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="288.4" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-11)">k8s:logs&#160;|&#160;k8s:run-complete-tests&#160;|&#160;k8s:setup-env&#160;|&#160;k8s:shell&#160;|&#160;k8s:status&#160;|&#160;k8s:tests&#160;|&#160;&#160;&#16
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="312.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-12)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="312.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-12)">k8s:upload-k8s-image&#160;|&#160;k8s&#160;|&#160;prod-image:build&#160;|&#160;prod-image:pull&#160;|&#160;prod-image:verify&#160;|&#160;prod-image&#160;|&#160;
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="337.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-13)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="337.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-13)">release-management:add-back-references&#160;|&#160;release-management:create-minor-branch&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="361.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-14)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="361.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-14)">release-management:generate-constraints&#160;|&#160;release-management:generate-issue-content-providers&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="386" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-15)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="386" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-15)">release-management:generate-providers-metadata&#160;|&#160;release-management:install-provider-packages&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tex
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="410.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-16)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="410.4" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-16)">release-management:prepare-airflow-package&#160;|&#160;release-management:prepare-provider-documentation&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="434.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="434.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">release-management:prepare-provider-packages&#160;|&#160;release-management:publish-docs&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="459.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="459.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">release-management:release-prod-images&#160;|&#160;release-management:start-rc-process&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="483.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="483.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">release-management:start-release&#160;|&#160;release-management:update-constraints&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="508" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">release-management:verify-provider-packages&#160;|&#160;release-management&#160;|&#160;sbom:build-all-airflow-images&#160;|&#160;&#160;&#160;&#160;&#160;</text><te
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="532.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="532.4" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">sbom:generate-providers-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;sbom&#160;|&#160;setup:autocomplete&#160;|&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="556.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="556.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;setup:regenerate-command-images&#160;|&#160;setup:self-upgrade&#160;</text><text
 class="b [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="581.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-23)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="581.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-23)">|&#160;setup:version&#160;|&#160;setup&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;static-checks&#160;|&#160;testing:db-tests&#160;|&#160;&#160;&#1
 [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="605.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-24)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="605.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-24)">testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;testing:integration-tests&#160;|&#160;testing:non-db-tests&#160;|&#160;</text><text
 cla [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="630" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">testing:tests&#160;|&#160;testing)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="190.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-7)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="190.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-7)">(build-docs&#160;|&#160;ci&#160;|&#160;ci-image&#160;|&#160;ci-image:build&#160;|&#160;ci-image:pull&#160;|&#160;ci-image:verify&#160;|&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="215.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-8)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="215.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-8)">ci:find-backtracking-candidates&#160;|&#160;ci:fix-ownership&#160;|&#160;ci:free-space&#160;|&#160;ci:get-workflow-info&#160;|&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="239.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-9)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="239.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-9)">ci:resource-check&#160;|&#160;ci:selective-check&#160;|&#160;cleanup&#160;|&#160;compile-www-assets&#160;|&#160;down&#160;|&#160;exec&#160;|&#160;k8s&#160;|&#160
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="264" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-10)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="264" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-10)">k8s:build-k8s-image&#160;|&#160;k8s:configure-cluster&#160;|&#160;k8s:create-cluster&#160;|&#160;k8s:delete-cluster&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="288.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-11)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="288.4" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-11)">k8s:deploy-airflow&#160;|&#160;k8s:k9s&#160;|&#160;k8s:logs&#160;|&#160;k8s:run-complete-tests&#160;|&#160;k8s:setup-env&#160;|&#160;k8s:shell&#160;|&#160;&#16
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="312.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-12)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="312.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-12)">k8s:status&#160;|&#160;k8s:tests&#160;|&#160;k8s:upload-k8s-image&#160;|&#160;prod-image&#160;|&#160;prod-image:build&#160;|&#160;prod-image:pull&#160;|&#160;&
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="337.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-13)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="337.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-13)">prod-image:verify&#160;|&#160;release-management&#160;|&#160;release-management:add-back-references&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="361.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-14)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="361.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-14)">release-management:create-minor-branch&#160;|&#160;release-management:generate-constraints&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="386" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-15)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="386" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-15)">release-management:generate-issue-content-providers&#160;|&#160;release-management:generate-providers-metadata&#160;|&#160;</text><text
 class="breeze-setup-check-a [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="410.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-16)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="410.4" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-16)">release-management:install-provider-packages&#160;|&#160;release-management:prepare-airflow-package&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="434.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="434.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">release-management:prepare-provider-documentation&#160;|&#160;release-management:prepare-provider-packages&#160;|&#160;&#160;&#160;&#160;&#160;</text><text
 cla [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="459.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="459.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">release-management:publish-docs&#160;|&#160;release-management:release-prod-images&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="483.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="483.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">release-management:start-rc-process&#160;|&#160;release-management:start-release&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="508" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">release-management:update-constraints&#160;|&#160;release-management:verify-provider-packages&#160;|&#160;sbom&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="532.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="532.4" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">sbom:build-all-airflow-images&#160;|&#160;sbom:generate-providers-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;&#160;</text><text
 class="b [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="556.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="556.8" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">setup&#160;|&#160;setup:autocomplete&#160;|&#160;setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="581.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-23)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="581.2" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-23)">setup:regenerate-command-images&#160;|&#160;setup:self-upgrade&#160;|&#160;setup:version&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="605.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-24)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="605.6" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-24)">static-checks&#160;|&#160;testing&#160;|&#160;testing:db-tests&#160;|&#160;testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;&#160;&#160;
 [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="183" y="630" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">testing:integration-tests&#160;|&#160;testing:non-db-tests&#160;|&#160;testing:tests)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="654.4" textLength="1464" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-setup-check-all-params-in-groups-r1" x="1464" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-26)">
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="678.8" textLength="24.4" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-27)">╭─</text><text
 class="breeze-setup-check-all-params-in-groups-r5" x="24.4" y="678.8" 
textLength="195.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-27)">&#160;Common&#160;options&#160;</text><text
 class="breeze-setup-check-all-params-in-groups-r5" x="219.6" y="678.8" 
textLength="1220" clip-path="url(#breeze-se [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="703.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-28)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r4" x="24.4" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-28)">-</text><text 
class="breeze-setup-check-all-params-in-groups-r4" x="36.6" y="703.2" 
textLength="97.6" clip-path="url(#breeze-setup-check-all-params-in-groups-li 
[...]
diff --git a/images/breeze/output_setup_check-all-params-in-groups.txt 
b/images/breeze/output_setup_check-all-params-in-groups.txt
new file mode 100644
index 0000000000..bd16df6cd4
--- /dev/null
+++ b/images/breeze/output_setup_check-all-params-in-groups.txt
@@ -0,0 +1 @@
+987e89df80114d4b5bc7fa4a3ba6d569
diff --git a/images/breeze/output_setup_config.txt 
b/images/breeze/output_setup_config.txt
new file mode 100644
index 0000000000..2e24f584a2
--- /dev/null
+++ b/images/breeze/output_setup_config.txt
@@ -0,0 +1 @@
+3435f1f1535a82c30591dbf577294d2e
diff --git a/images/breeze/output_setup_regenerate-command-images.svg 
b/images/breeze/output_setup_regenerate-command-images.svg
index d16277328c..d3fd828808 100644
--- a/images/breeze/output_setup_regenerate-command-images.svg
+++ b/images/breeze/output_setup_regenerate-command-images.svg
@@ -167,25 +167,25 @@
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="142" 
textLength="24.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-5)">╭─</text><text 
class="breeze-setup-regenerate-command-images-r5" x="24.4" y="142" 
textLength="329.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-5)">&#160;Image&#160;regeneration&#160;option&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="353.8" y="142" 
textLength="1085.8" clip-path="url(#bree [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="166.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-6)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="166.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-6)">-</text><text 
class="breeze-setup-regenerate-command-images-r4" x="36.6" y="166.4" 
textLength="73.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-6)">- [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="190.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-7)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="190.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-7)">-</text><text 
class="breeze-setup-regenerate-command-images-r4" x="36.6" y="190.8" 
textLength="97.6" 
clip-path="url(#breeze-setup-regenerate-command-images-line-7)">- [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="215.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-8)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="215.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-8)">(main&#160;|&#160;build-docs&#160;|&#160;ci:find-backtracking-candidates&#160;|&#160;ci:fix-ownership&#160;|&#160;ci:free-space&#160;|&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="239.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-9)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="239.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-9)">ci:get-workflow-info&#160;|&#160;ci:resource-check&#160;|&#160;ci:selective-check&#160;|&#160;ci&#160;|&#160;ci-image:build&#160;|&#160;ci-image:pull&#160;</text><te
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="264" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-10)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="264" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-10)">|&#160;ci-image:verify&#160;|&#160;ci-image&#160;|&#160;cleanup&#160;|&#160;compile-www-assets&#160;|&#160;down&#160;|&#160;exec&#160;|&#160;k8s:build-k8s-image&#160;|
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="288.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-11)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="288.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-11)">k8s:configure-cluster&#160;|&#160;k8s:create-cluster&#160;|&#160;k8s:delete-cluster&#160;|&#160;k8s:deploy-airflow&#160;|&#160;k8s:k9s&#160;|&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="312.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-12)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="312.8" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-12)">k8s:logs&#160;|&#160;k8s:run-complete-tests&#160;|&#160;k8s:setup-env&#160;|&#160;k8s:shell&#160;|&#160;k8s:status&#160;|&#160;k8s:tests&#160;|&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="337.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-13)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="337.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-13)">k8s:upload-k8s-image&#160;|&#160;k8s&#160;|&#160;prod-image:build&#160;|&#160;prod-image:pull&#160;|&#160;prod-image:verify&#160;|&#160;prod-image&#160;|&#160;&#16
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="361.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-14)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="361.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-14)">release-management:add-back-references&#160;|&#160;release-management:create-minor-branch&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="386" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-15)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="386" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-15)">release-management:generate-constraints&#160;|&#160;release-management:generate-issue-content-providers&#160;|&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze- [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="410.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-16)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="410.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-16)">release-management:generate-providers-metadata&#160;|&#160;release-management:install-provider-packages&#160;|&#160;&#160;&#160;&#160;&#160;</text><text
 class="bre [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="434.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-17)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="434.8" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-17)">release-management:prepare-airflow-package&#160;|&#160;release-management:prepare-provider-documentation&#160;|&#160;&#160;&#160;&#160;</text><text
 class="breeze-s [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="459.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-18)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="459.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-18)">release-management:prepare-provider-packages&#160;|&#160;release-management:publish-docs&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="483.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-19)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="483.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-19)">release-management:release-prod-images&#160;|&#160;release-management:start-rc-process&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="508" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">release-management:start-release&#160;|&#160;release-management:update-constraints&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="532.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="532.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">release-management:verify-provider-packages&#160;|&#160;release-management&#160;|&#160;sbom:build-all-airflow-images&#160;|&#160;&#160;</text><text
 class="breeze-s [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="556.8" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">sbom:generate-providers-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;sbom&#160;|&#160;setup:autocomplete&#160;|&#160;&#160;&#160;</text><text
  [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="581.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;setup:regenerate-command-images&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="605.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="605.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">setup:self-upgrade&#160;|&#160;setup:version&#160;|&#160;setup&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;static-checks&#160;|&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="630" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">testing:db-tests&#160;|&#160;testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;testing:integration-tests&#160;|&#160;&#160;</text><text
 class="br [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="654.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">testing:non-db-tests&#160;|&#160;testing:tests&#160;|&#160;testing)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="215.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-8)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="215.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-8)">(build-docs&#160;|&#160;ci&#160;|&#160;ci-image&#160;|&#160;ci-image:build&#160;|&#160;ci-image:pull&#160;|&#160;ci-image:verify&#160;|&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="239.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-9)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="239.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-9)">ci:find-backtracking-candidates&#160;|&#160;ci:fix-ownership&#160;|&#160;ci:free-space&#160;|&#160;ci:get-workflow-info&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="264" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-10)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="264" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-10)">ci:resource-check&#160;|&#160;ci:selective-check&#160;|&#160;cleanup&#160;|&#160;compile-www-assets&#160;|&#160;down&#160;|&#160;exec&#160;|&#160;k8s&#160;|&#160;&#160
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="288.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-11)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="288.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-11)">k8s:build-k8s-image&#160;|&#160;k8s:configure-cluster&#160;|&#160;k8s:create-cluster&#160;|&#160;k8s:delete-cluster&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="312.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-12)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="312.8" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-12)">k8s:deploy-airflow&#160;|&#160;k8s:k9s&#160;|&#160;k8s:logs&#160;|&#160;k8s:run-complete-tests&#160;|&#160;k8s:setup-env&#160;|&#160;k8s:shell&#160;|&#160;&#160;&#
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="337.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-13)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="337.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-13)">k8s:status&#160;|&#160;k8s:tests&#160;|&#160;k8s:upload-k8s-image&#160;|&#160;prod-image&#160;|&#160;prod-image:build&#160;|&#160;prod-image:pull&#160;|&#160;&#160
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="361.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-14)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="361.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-14)">prod-image:verify&#160;|&#160;release-management&#160;|&#160;release-management:add-back-references&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="386" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-15)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="386" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-15)">release-management:create-minor-branch&#160;|&#160;release-management:generate-constraints&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="410.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-16)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="410.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-16)">release-management:generate-issue-content-providers&#160;|&#160;release-management:generate-providers-metadata</text><text
 class="breeze-setup-regenerate-command-i [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="434.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-17)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="434.8" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-17)">|&#160;release-management:install-provider-packages&#160;|&#160;release-management:prepare-airflow-package&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="459.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-18)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="459.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-18)">release-management:prepare-provider-documentation&#160;|&#160;release-management:prepare-provider-packages&#160;|&#160;&#160;</text><text
 class="breeze-setup-regen [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="483.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-19)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="483.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-19)">release-management:publish-docs&#160;|&#160;release-management:release-prod-images&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="508" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">release-management:start-rc-process&#160;|&#160;release-management:start-release&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="532.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="532.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">release-management:update-constraints&#160;|&#160;release-management:verify-provider-packages&#160;|&#160;sbom&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="556.8" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">sbom:build-all-airflow-images&#160;|&#160;sbom:generate-providers-requirements&#160;|&#160;sbom:update-sbom-information&#160;</text><text
 class="breeze-setup-regen [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="581.2" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">|&#160;setup&#160;|&#160;setup:autocomplete&#160;|&#160;setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="605.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="605.6" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">setup:regenerate-command-images&#160;|&#160;setup:self-upgrade&#160;|&#160;setup:version&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="630" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">static-checks&#160;|&#160;testing&#160;|&#160;testing:db-tests&#160;|&#160;testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;&#160;&#160;&#160;</
 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="219.6" y="654.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">testing:integration-tests&#160;|&#160;testing:non-db-tests&#160;|&#160;testing:tests)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27)">-</text><text 
class="breeze-setup-regenerate-command-images-r4" x="36.6" y="678.8" 
textLength="73.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27) [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-28)">│</text><text 
class="breeze-setup-regenerate-command-images-r1" x="219.6" y="703.2" 
textLength="170.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-28)">together&#160;with&#160;</text><text
 class="breeze-setup-regenerate-command-images-r4" x="390.4" y="703.2" 
textLength="12.2" clip-path="url(#breeze-setup-regenera [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="727.6" 
textLength="1464" 
clip-path="url(#breeze-setup-regenerate-command-images-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-setup-regenerate-command-images-r1" x="1464" y="727.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-29)">
diff --git a/images/breeze/output_setup_regenerate-command-images.txt 
b/images/breeze/output_setup_regenerate-command-images.txt
new file mode 100644
index 0000000000..839aad6c8c
--- /dev/null
+++ b/images/breeze/output_setup_regenerate-command-images.txt
@@ -0,0 +1 @@
+7b3dba4e15361b982859694ae2822891
diff --git a/images/breeze/output_setup_self-upgrade.txt 
b/images/breeze/output_setup_self-upgrade.txt
new file mode 100644
index 0000000000..27a6bcb403
--- /dev/null
+++ b/images/breeze/output_setup_self-upgrade.txt
@@ -0,0 +1 @@
+4af905a147fcd6670a0e33d3d369a94b
diff --git a/images/breeze/output_setup_version.txt 
b/images/breeze/output_setup_version.txt
new file mode 100644
index 0000000000..aa2f976a74
--- /dev/null
+++ b/images/breeze/output_setup_version.txt
@@ -0,0 +1 @@
+be116d90a21c2afe01087f7609774e1e
diff --git a/images/breeze/output_shell.txt b/images/breeze/output_shell.txt
new file mode 100644
index 0000000000..7ae7c30c84
--- /dev/null
+++ b/images/breeze/output_shell.txt
@@ -0,0 +1 @@
+64d63199a5c877a0bf9e1da29de02b67
diff --git a/images/breeze/output_start-airflow.txt 
b/images/breeze/output_start-airflow.txt
new file mode 100644
index 0000000000..a6792d243a
--- /dev/null
+++ b/images/breeze/output_start-airflow.txt
@@ -0,0 +1 @@
+313d97eb6459fe153d4e1cbaa1082d46
diff --git a/images/breeze/output_static-checks.txt 
b/images/breeze/output_static-checks.txt
new file mode 100644
index 0000000000..d5968c4c7a
--- /dev/null
+++ b/images/breeze/output_static-checks.txt
@@ -0,0 +1 @@
+341740e7206ece80715613e64f41062e
diff --git a/images/breeze/output_testing.txt b/images/breeze/output_testing.txt
new file mode 100644
index 0000000000..3f7450936b
--- /dev/null
+++ b/images/breeze/output_testing.txt
@@ -0,0 +1 @@
+d81f2195fbceabe4fc7d17bc3b83c5b1
diff --git a/images/breeze/output_testing_db-tests.txt 
b/images/breeze/output_testing_db-tests.txt
new file mode 100644
index 0000000000..9c1af589ad
--- /dev/null
+++ b/images/breeze/output_testing_db-tests.txt
@@ -0,0 +1 @@
+c45075080add9d991477e7f0779c9759
diff --git a/images/breeze/output_testing_docker-compose-tests.txt 
b/images/breeze/output_testing_docker-compose-tests.txt
new file mode 100644
index 0000000000..9c1ea2f222
--- /dev/null
+++ b/images/breeze/output_testing_docker-compose-tests.txt
@@ -0,0 +1 @@
+fd154a058082fcfda12eb877a9a89338
diff --git a/images/breeze/output_testing_helm-tests.txt 
b/images/breeze/output_testing_helm-tests.txt
new file mode 100644
index 0000000000..d1f87db51f
--- /dev/null
+++ b/images/breeze/output_testing_helm-tests.txt
@@ -0,0 +1 @@
+98a9ba6631249762b1633b76a29f4461
diff --git a/images/breeze/output_testing_integration-tests.txt 
b/images/breeze/output_testing_integration-tests.txt
new file mode 100644
index 0000000000..a586c9659b
--- /dev/null
+++ b/images/breeze/output_testing_integration-tests.txt
@@ -0,0 +1 @@
+4a7da2c5a8c42fcc43941a75f0af68e7
diff --git a/images/breeze/output_testing_non-db-tests.txt 
b/images/breeze/output_testing_non-db-tests.txt
new file mode 100644
index 0000000000..36452a650f
--- /dev/null
+++ b/images/breeze/output_testing_non-db-tests.txt
@@ -0,0 +1 @@
+ed916603036dd9979b1593c4d088eb40
diff --git a/images/breeze/output_testing_tests.txt 
b/images/breeze/output_testing_tests.txt
new file mode 100644
index 0000000000..49117f9f21
--- /dev/null
+++ b/images/breeze/output_testing_tests.txt
@@ -0,0 +1 @@
+1620dc0e96578677e8f6ce48cbcd2daa
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 63c9429189..bcb41e489e 100755
--- a/scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
+++ b/scripts/ci/pre_commit/pre_commit_breeze_cmd_line.py
@@ -103,7 +103,7 @@ if __name__ == "__main__":
             console.print("\n[red]Breeze command configuration has changed.\n")
             console.print("\n[bright_blue]Images have been regenerated.\n")
             console.print("\n[bright_blue]You might want to run it 
manually:\n")
-            console.print("\n[magenta]]breeze setup regenerate-command 
images\n")
+            console.print("\n[magenta]breeze setup regenerate-command 
images\n")
     res = subprocess.run(
         ["breeze", "setup", "check-all-params-in-groups"],
         check=False,

Reply via email to