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 0e8bff9c4e Switch build-info and build images to run on public runners 
(#31451)
0e8bff9c4e is described below

commit 0e8bff9c4ec837d086dbe49b3d583a8d23f49e0e
Author: Jarek Potiuk <[email protected]>
AuthorDate: Mon May 22 19:41:24 2023 +0200

    Switch build-info and build images to run on public runners (#31451)
    
    We used to have low number of Public runners on GitHub actions and
    Apache Software Foundation projects were competing for them, that's
    why we switched `build-images` workflow to run on self-hosted
    runners, and we had to add workflow-embedded list of committers to
    make sure that build-info also uses self-hosted runners.
    
    Recently however the ASF has 900 runners and if anything, it's the
    public runners that are in abundance, while self-hosted runners are
    limited, which sometimes leads to "Wait for CI images" jobs timeout
    while waiting for self-hosted runners to build the image.
    
    Those "wait-for-ci-images" jobs do almost nothing, just waiting, so
    using self-hosted runners for those is not needed, we can easily
    switch those to public runners as well.
    
    Also "wait-for-ci-images" currently performs "test-pytest-collection"
    as an optimisation - preventing multiple "test" jobs from failing in
    case of pytest collection fails, however with public runners, it adds
    extra 4 minutes to tests, and failing pytest collection is rather rare
    case, so we can safely remove this step.
    
    This PR does the following changes:
    
    * build-info jobs always run on public runners
    * wait-for-ci-images job are always run on public runners
    * wait-for-ci-images does not run test for pytest collection
    * all the other jobs run on either self-hosted or public runners
      depending who the actor is (committers - run on self-hosted,
      non-committers, run on public runners)
---
 .github/workflows/build-images.yml                 |  4 +-
 .github/workflows/ci.yml                           | 70 +----------------
 .../src/airflow_breeze/commands/ci_commands.py     | 13 ++++
 .../airflow_breeze/commands/ci_commands_config.py  |  9 ++-
 dev/breeze/src/airflow_breeze/global_constants.py  | 54 ++++++++++++-
 .../src/airflow_breeze/utils/selective_checks.py   | 24 +++++-
 images/breeze/output-commands-hash.txt             |  4 +-
 images/breeze/output-commands.svg                  | 90 +++++++++++-----------
 images/breeze/output_ci_selective-check.svg        | 60 +++++++++------
 9 files changed, 186 insertions(+), 142 deletions(-)

diff --git a/.github/workflows/build-images.yml 
b/.github/workflows/build-images.yml
index fa8686890d..76073bbe90 100644
--- a/.github/workflows/build-images.yml
+++ b/.github/workflows/build-images.yml
@@ -50,11 +50,10 @@ jobs:
   build-info:
     timeout-minutes: 10
     name: "Build Info"
-    runs-on: ${{ github.repository == 'apache/airflow' && 'self-hosted' || 
'ubuntu-20.04' }}
+    runs-on: 'ubuntu-20.04'
     env:
       TARGET_BRANCH: ${{ github.event.pull_request.base.ref }}
     outputs:
-      runs-on: ${{ github.repository == 'apache/airflow' && 'self-hosted' || 
'ubuntu-20.04' }}
       python-versions: "${{ steps.selective-checks.python-versions }}"
       upgrade-to-newer-dependencies: ${{ 
steps.selective-checks.outputs.upgrade-to-newer-dependencies }}
       all-python-versions-list-as-string: >-
@@ -66,6 +65,7 @@ jobs:
       cache-directive: ${{ steps.selective-checks.outputs.cache-directive }}
       default-branch: ${{ steps.selective-checks.outputs.default-branch }}
       default-constraints-branch: ${{ 
steps.selective-checks.outputs.default-constraints-branch }}
+      runs-on: ${{ steps.selective-checks.outputs.runs-on }}
       target-commit-sha: 
"${{steps.discover-pr-merge-commit.outputs.target-commit-sha ||
           github.event.pull_request.head.sha ||
           github.sha
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e31afad5d2..3c19cf0217 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -65,64 +65,7 @@ jobs:
     # to find the list of authors and replace them, so any changes to the
     # formatting of the contains(fromJSON()) structure below will need to be
     # reflected in that workflow too.
-    runs-on: >-
-      ${{ (
-        (
-          github.event_name == 'push' ||
-          github.event_name == 'schedule' ||
-          contains(fromJSON('[
-            "BasPH",
-            "Fokko",
-            "KevinYang21",
-            "Taragolis",
-            "XD-DENG",
-            "aijamalnk",
-            "alexvanboxel",
-            "aoen",
-            "artwr",
-            "ashb",
-            "bbovenzi",
-            "bolkedebruin",
-            "criccomini",
-            "dimberman",
-            "dstandish",
-            "eladkal",
-            "ephraimbuddy",
-            "feluelle",
-            "feng-tao",
-            "houqp",
-            "hussein-awala",
-            "jedcunningham",
-            "jgao54",
-            "jghoman",
-            "jhtimmins",
-            "jmcarp",
-            "josh-fell",
-            "kaxil",
-            "leahecole",
-            "malthe",
-            "mik-laj",
-            "milton0825",
-            "mistercrunch",
-            "msumit",
-            "o-nikolas",
-            "pierrejeambrun",
-            "pingzh",
-            "potiuk",
-            "r39132",
-            "ryanahamilton",
-            "ryw",
-            "saguziel",
-            "sekikn",
-            "turbaszek",
-            "uranusjr",
-            "vikramkoka",
-            "xinbinhuang",
-            "yuqian90",
-            "zhongjiajie"
-          ]'), github.event.pull_request.user.login)
-        ) && github.repository == 'apache/airflow'
-      ) && 'self-hosted' || 'ubuntu-20.04' }}
+    runs-on: "ubuntu-20.04"
     env:
       GITHUB_CONTEXT: ${{ toJson(github) }}
     outputs:
@@ -171,11 +114,11 @@ jobs:
       skip-pre-commits: ${{ steps.selective-checks.outputs.skip-pre-commits }}
       helm-test-packages: ${{ 
steps.selective-checks.outputs.helm-test-packages }}
       debug-resources: ${{ steps.selective-checks.outputs.debug-resources }}
+      runs-on: ${{ steps.selective-checks.outputs.runs-on }}
       source-head-repo: ${{ steps.source-run-info.outputs.source-head-repo }}
       pull-request-labels: ${{ steps.source-run-info.outputs.pr-labels }}
       in-workflow-build: ${{ steps.source-run-info.outputs.in-workflow-build }}
       build-job-description: ${{ 
steps.source-run-info.outputs.build-job-description }}
-      runs-on: ${{ steps.source-run-info.outputs.runs-on }}
       canary-run: ${{ steps.source-run-info.outputs.canary-run }}
       run-coverage: ${{ steps.source-run-info.outputs.run-coverage }}
     steps:
@@ -525,7 +468,7 @@ jobs:
   wait-for-ci-images:
     timeout-minutes: 120
     name: "Wait for CI images"
-    runs-on: "${{needs.build-info.outputs.runs-on}}"
+    runs-on: "ubuntu-20.04"
     needs: [build-info, build-ci-images]
     if: needs.build-info.outputs.image-build == 'true'
     env:
@@ -548,13 +491,6 @@ jobs:
         env:
           PYTHON_VERSIONS: ${{ 
needs.build-info.outputs.python-versions-list-as-string }}
           DEBUG_RESOURCES: ${{needs.build-info.outputs.debug-resources}}
-      - name: "Tests Pytest collection"
-        run: breeze testing tests --run-in-parallel --collect-only
-        if: needs.build-info.outputs.run-tests == 'true'
-        env:
-          PYTHON_MAJOR_MINOR_VERSION: 
"${{needs.build-info.outputs.default-python-version}}"
-          BACKEND: sqlite
-          PARALLEL_TEST_TYPES: 
"${{needs.build-info.outputs.parallel-test-types-list-as-string}}"
       - name: "Fix ownership"
         run: breeze ci fix-ownership
         if: always()
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
index 02692b3c2b..5987cbb54a 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
@@ -42,6 +42,7 @@ from airflow_breeze.utils.click_utils import BreezeGroup
 from airflow_breeze.utils.common_options import (
     option_answer,
     option_dry_run,
+    option_github_repository,
     option_verbose,
 )
 from airflow_breeze.utils.confirm import Answer, user_confirm
@@ -220,6 +221,14 @@ def get_changed_files(commit_ref: str | None) -> 
tuple[str, ...]:
     envvar="GITHUB_EVENT_NAME",
     show_default=True,
 )
+@option_github_repository
[email protected](
+    "--github-actor",
+    help="Actor that triggered the event (Github user)",
+    envvar="GITHUB_ACTOR",
+    type=str,
+    default="",
+)
 @option_verbose
 @option_dry_run
 def selective_check(
@@ -228,6 +237,8 @@ def selective_check(
     default_branch: str,
     default_constraints_branch: str,
     github_event_name: str,
+    github_repository: str,
+    github_actor: str,
 ):
     from airflow_breeze.utils.selective_checks import SelectiveChecks
 
@@ -243,6 +254,8 @@ def selective_check(
         default_constraints_branch=default_constraints_branch,
         pr_labels=tuple(ast.literal_eval(pr_labels)) if pr_labels else (),
         github_event=github_event,
+        github_repository=github_repository,
+        github_actor=github_actor,
     )
     print(str(sc), file=sys.stderr)
 
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py 
b/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
index 964e33bcb9..d2dda5ff28 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
@@ -44,9 +44,16 @@ CI_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = 
{
                 "--pr-labels",
                 "--default-branch",
                 "--default-constraints-branch",
+            ],
+        },
+        {
+            "name": "Github parameters",
+            "options": [
                 "--github-event-name",
+                "--github-repository",
+                "--github-actor",
             ],
-        }
+        },
     ],
     "breeze ci get-workflow-info": [
         {
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py 
b/dev/breeze/src/airflow_breeze/global_constants.py
index d1ccc8dab4..eec14c2951 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -193,7 +193,59 @@ INIT_SCRIPT_FILE = ""
 BREEZE_INIT_COMMAND = ""
 DRY_RUN_DOCKER = False
 INSTALL_AIRFLOW_VERSION = ""
-SQLITE_URL = "sqlite:////root/airflow/airflow.db"
+
+
+COMMITTERS = [
+    "BasPH",
+    "Fokko",
+    "KevinYang21",
+    "Taragolis",
+    "XD-DENG",
+    "aijamalnk",
+    "alexvanboxel",
+    "aoen",
+    "artwr",
+    "ashb",
+    "bbovenzi",
+    "bolkedebruin",
+    "criccomini",
+    "dimberman",
+    "dstandish",
+    "eladkal",
+    "ephraimbuddy",
+    "feluelle",
+    "feng-tao",
+    "houqp",
+    "hussein-awala",
+    "jedcunningham",
+    "jgao54",
+    "jghoman",
+    "jhtimmins",
+    "jmcarp",
+    "josh-fell",
+    "kaxil",
+    "leahecole",
+    "malthe",
+    "mik-laj",
+    "milton0825",
+    "mistercrunch",
+    "msumit",
+    "o-nikolas",
+    "pierrejeambrun",
+    "pingzh",
+    "potiuk",
+    "r39132",
+    "ryanahamilton",
+    "ryw",
+    "saguziel",
+    "sekikn",
+    "turbaszek",
+    "uranusjr",
+    "vikramkoka",
+    "xinbinhuang",
+    "yuqian90",
+    "zhongjiajie",
+]
 
 
 def get_airflow_version():
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py 
b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index 04c90d5562..0f23845ad5 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -43,10 +43,15 @@ from functools import lru_cache
 from re import match
 from typing import Any, Dict, List, TypeVar
 
-from typing_extensions import Literal
+if sys.version_info >= (3, 9):
+    from typing import Literal
+else:
+    from typing_extensions import Literal
 
 from airflow_breeze.global_constants import (
     ALL_PYTHON_MAJOR_MINOR_VERSIONS,
+    APACHE_AIRFLOW_GITHUB_REPOSITORY,
+    COMMITTERS,
     CURRENT_KUBERNETES_VERSIONS,
     CURRENT_MSSQL_VERSIONS,
     CURRENT_MYSQL_VERSIONS,
@@ -59,6 +64,8 @@ from airflow_breeze.global_constants import (
     DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
     HELM_VERSION,
     KIND_VERSION,
+    RUNS_ON_PUBLIC_RUNNER,
+    RUNS_ON_SELF_HOSTED_RUNNER,
     GithubEvents,
     SelectiveUnitTestTypes,
     all_helm_test_packages,
@@ -295,6 +302,8 @@ class SelectiveChecks:
         commit_ref: str | None = None,
         pr_labels: tuple[str, ...] = (),
         github_event: GithubEvents = GithubEvents.PULL_REQUEST,
+        github_repository: str = APACHE_AIRFLOW_GITHUB_REPOSITORY,
+        github_actor: str = "",
     ):
         self._files = files
         self._default_branch = default_branch
@@ -302,6 +311,8 @@ class SelectiveChecks:
         self._commit_ref = commit_ref
         self._pr_labels = pr_labels
         self._github_event = github_event
+        self._github_repository = github_repository
+        self._github_actor = github_actor
 
     def __important_attributes(self) -> tuple[Any, ...]:
         return tuple(getattr(self, f) for f in self.__HASHABLE_FIELDS)
@@ -618,7 +629,7 @@ class SelectiveChecks:
     @staticmethod
     def _extract_long_provider_tests(current_test_types: set[str]):
         """
-        In case there are Provider tests in the list of test to run (either in 
the form of
+        In case there are Provider tests in the list of test to run - either 
in the form of
         Providers or Providers[...] we subtract them from the test type,
         and add them to the list of tests to run individually.
 
@@ -765,3 +776,12 @@ class SelectiveChecks:
         if affected_providers == "ALL_PROVIDERS":
             return _ALL_PROVIDERS_LIST
         return " ".join(sorted(affected_providers))
+
+    @cached_property
+    def runs_on(self) -> str:
+        if self._github_repository == APACHE_AIRFLOW_GITHUB_REPOSITORY:
+            if self._github_event in [GithubEvents.SCHEDULE, 
GithubEvents.PUSH]:
+                return RUNS_ON_SELF_HOSTED_RUNNER
+            if self._github_actor in COMMITTERS:
+                return RUNS_ON_SELF_HOSTED_RUNNER
+        return RUNS_ON_PUBLIC_RUNNER
diff --git a/images/breeze/output-commands-hash.txt 
b/images/breeze/output-commands-hash.txt
index bb1a3b5ca9..519db1894e 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -7,8 +7,8 @@ ci:fix-ownership:fee2c9ec9ef19686792002ae054fecdd
 ci:free-space:47234aa0a60b0efd84972e6e797379f8
 ci:get-workflow-info:01ee34c33ad62fa5dc33e0ac8773223f
 ci:resource-check:1d4fe47dff9fc64ac1648ec4beb2d85c
-ci:selective-check:3a085894f24cb909812fbc8253a21e13
-ci:e51cbc38a202b92b7dc6288f6344c412
+ci:selective-check:8a39978ee69d496dae2533d37a48b137
+ci:2868dbcdd482663e9d6ccd00055b9cac
 ci-image:build:3ffe4dd24ae7090415543e27d8504955
 ci-image:pull:c16c6e57c748bfe9b365b4ffafb18472
 ci-image:verify:aee88f55e8837028d19316356e29b009
diff --git a/images/breeze/output-commands.svg 
b/images/breeze/output-commands.svg
index 876133e651..ba821bd664 100644
--- a/images/breeze/output-commands.svg
+++ b/images/breeze/output-commands.svg
@@ -35,8 +35,8 @@
     .breeze-help-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-help-r2 { fill: #c5c8c6 }
 .breeze-help-r3 { fill: #d0b344;font-weight: bold }
-.breeze-help-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-help-r5 { fill: #868887 }
+.breeze-help-r4 { fill: #868887 }
+.breeze-help-r5 { fill: #68a0b3;font-weight: bold }
 .breeze-help-r6 { fill: #98a84b;font-weight: bold }
 .breeze-help-r7 { fill: #8d7b39 }
     </style>
@@ -190,50 +190,50 @@
     
     <g class="breeze-help-matrix">
     <text class="breeze-help-r2" x="1464" y="20" textLength="12.2" 
clip-path="url(#breeze-help-line-0)">
-</text><text class="breeze-help-r3" x="12.2" y="44.4" textLength="85.4" 
clip-path="url(#breeze-help-line-1)">Usage:&#160;</text><text 
class="breeze-help-r1" x="97.6" y="44.4" textLength="97.6" 
clip-path="url(#breeze-help-line-1)">breeze&#160;[</text><text 
class="breeze-help-r4" x="195.2" y="44.4" textLength="85.4" 
clip-path="url(#breeze-help-line-1)">OPTIONS</text><text class="breeze-help-r1" 
x="280.6" y="44.4" textLength="24.4" 
clip-path="url(#breeze-help-line-1)">]&#160;</text><text cl [...]
+</text><text class="breeze-help-r3" x="12.2" y="44.4" textLength="85.4" 
clip-path="url(#breeze-help-line-1)">Usage:&#160;</text><text 
class="breeze-help-r1" x="97.6" y="44.4" textLength="414.8" 
clip-path="url(#breeze-help-line-1)">breeze&#160;[OPTIONS]&#160;COMMAND&#160;[ARGS]...</text><text
 class="breeze-help-r2" x="1464" y="44.4" textLength="12.2" 
clip-path="url(#breeze-help-line-1)">
 </text><text class="breeze-help-r2" x="1464" y="68.8" textLength="12.2" 
clip-path="url(#breeze-help-line-2)">
-</text><text class="breeze-help-r5" x="0" y="93.2" textLength="24.4" 
clip-path="url(#breeze-help-line-3)">╭─</text><text class="breeze-help-r5" 
x="24.4" y="93.2" textLength="158.6" 
clip-path="url(#breeze-help-line-3)">&#160;Basic&#160;flags&#160;</text><text 
class="breeze-help-r5" x="183" y="93.2" textLength="1256.6" 
clip-path="url(#breeze-help-line-3)">───────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="breeze-help-r [...]
-</text><text class="breeze-help-r5" x="0" y="117.6" textLength="12.2" 
clip-path="url(#breeze-help-line-4)">│</text><text class="breeze-help-r4" 
x="24.4" y="117.6" textLength="12.2" 
clip-path="url(#breeze-help-line-4)">-</text><text class="breeze-help-r4" 
x="36.6" y="117.6" textLength="85.4" 
clip-path="url(#breeze-help-line-4)">-python</text><text class="breeze-help-r6" 
x="305" y="117.6" textLength="24.4" 
clip-path="url(#breeze-help-line-4)">-p</text><text class="breeze-help-r2" 
x="353.8" [...]
-</text><text class="breeze-help-r5" x="0" y="142" textLength="12.2" 
clip-path="url(#breeze-help-line-5)">│</text><text class="breeze-help-r5" 
x="353.8" y="142" textLength="732" 
clip-path="url(#breeze-help-line-5)">[default:&#160;3.7]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-help-r5" x="0" y="166.4" textLength="12.2" 
clip-path="url(#breeze-help-line-6)">│</text><text class="breeze-help-r4" 
x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#breeze-help-line-6)">-</text><text class="breeze-help-r4" 
x="36.6" y="166.4" textLength="97.6" 
clip-path="url(#breeze-help-line-6)">-backend</text><text 
class="breeze-help-r6" x="305" y="166.4" textLength="24.4" 
clip-path="url(#breeze-help-line-6)">-b</text><text class="breeze-help-r2" 
x="353.8 [...]
-</text><text class="breeze-help-r5" x="0" y="190.8" textLength="12.2" 
clip-path="url(#breeze-help-line-7)">│</text><text class="breeze-help-r4" 
x="24.4" y="190.8" textLength="12.2" 
clip-path="url(#breeze-help-line-7)">-</text><text class="breeze-help-r4" 
x="36.6" y="190.8" textLength="109.8" 
clip-path="url(#breeze-help-line-7)">-postgres</text><text 
class="breeze-help-r4" x="146.4" y="190.8" textLength="97.6" 
clip-path="url(#breeze-help-line-7)">-version</text><text class="breeze-help-r6 
[...]
-</text><text class="breeze-help-r5" x="0" y="215.2" textLength="12.2" 
clip-path="url(#breeze-help-line-8)">│</text><text class="breeze-help-r4" 
x="24.4" y="215.2" textLength="12.2" 
clip-path="url(#breeze-help-line-8)">-</text><text class="breeze-help-r4" 
x="36.6" y="215.2" textLength="73.2" 
clip-path="url(#breeze-help-line-8)">-mysql</text><text class="breeze-help-r4" 
x="109.8" y="215.2" textLength="97.6" 
clip-path="url(#breeze-help-line-8)">-version</text><text 
class="breeze-help-r6" x= [...]
-</text><text class="breeze-help-r5" x="0" y="239.6" textLength="12.2" 
clip-path="url(#breeze-help-line-9)">│</text><text class="breeze-help-r4" 
x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-help-line-9)">-</text><text class="breeze-help-r4" 
x="36.6" y="239.6" textLength="73.2" 
clip-path="url(#breeze-help-line-9)">-mssql</text><text class="breeze-help-r4" 
x="109.8" y="239.6" textLength="97.6" 
clip-path="url(#breeze-help-line-9)">-version</text><text 
class="breeze-help-r6" x= [...]
-</text><text class="breeze-help-r5" x="0" y="264" textLength="12.2" 
clip-path="url(#breeze-help-line-10)">│</text><text class="breeze-help-r4" 
x="24.4" y="264" textLength="12.2" 
clip-path="url(#breeze-help-line-10)">-</text><text class="breeze-help-r4" 
x="36.6" y="264" textLength="146.4" 
clip-path="url(#breeze-help-line-10)">-integration</text><text 
class="breeze-help-r2" x="353.8" y="264" textLength="1085.8" 
clip-path="url(#breeze-help-line-10)">Integration(s)&#160;to&#160;enable&#160;w 
[...]
-</text><text class="breeze-help-r5" x="0" y="288.4" textLength="12.2" 
clip-path="url(#breeze-help-line-11)">│</text><text class="breeze-help-r7" 
x="353.8" y="288.4" textLength="1085.8" 
clip-path="url(#breeze-help-line-11)">(all&#160;|&#160;all-testable&#160;|&#160;cassandra&#160;|&#160;celery&#160;|&#160;kafka&#160;|&#160;kerberos&#160;|&#160;mongo&#160;|&#160;otel&#160;|&#160;pinot&#160;|&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r5" x="1451.8" y="288.4" textLength="1 [...]
-</text><text class="breeze-help-r5" x="0" y="312.8" textLength="12.2" 
clip-path="url(#breeze-help-line-12)">│</text><text class="breeze-help-r7" 
x="353.8" y="312.8" textLength="1085.8" 
clip-path="url(#breeze-help-line-12)">statsd&#160;|&#160;statsd&#160;|&#160;trino)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-help-r5" x="0" y="337.2" textLength="12.2" 
clip-path="url(#breeze-help-line-13)">│</text><text class="breeze-help-r4" 
x="24.4" y="337.2" textLength="12.2" 
clip-path="url(#breeze-help-line-13)">-</text><text class="breeze-help-r4" 
x="36.6" y="337.2" textLength="97.6" 
clip-path="url(#breeze-help-line-13)">-forward</text><text 
class="breeze-help-r4" x="134.2" y="337.2" textLength="146.4" 
clip-path="url(#breeze-help-line-13)">-credentials</text><text class="breeze- 
[...]
-</text><text class="breeze-help-r5" x="0" y="361.6" textLength="12.2" 
clip-path="url(#breeze-help-line-14)">│</text><text class="breeze-help-r4" 
x="24.4" y="361.6" textLength="12.2" 
clip-path="url(#breeze-help-line-14)">-</text><text class="breeze-help-r4" 
x="36.6" y="361.6" textLength="36.6" 
clip-path="url(#breeze-help-line-14)">-db</text><text class="breeze-help-r4" 
x="73.2" y="361.6" textLength="73.2" 
clip-path="url(#breeze-help-line-14)">-reset</text><text class="breeze-help-r6" 
x="3 [...]
-</text><text class="breeze-help-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-help-line-15)">│</text><text class="breeze-help-r4" 
x="24.4" y="386" textLength="12.2" 
clip-path="url(#breeze-help-line-15)">-</text><text class="breeze-help-r4" 
x="36.6" y="386" textLength="48.8" 
clip-path="url(#breeze-help-line-15)">-max</text><text class="breeze-help-r4" 
x="85.4" y="386" textLength="61" 
clip-path="url(#breeze-help-line-15)">-time</text><text class="breeze-help-r2" 
x="353.8" y="3 [...]
-</text><text class="breeze-help-r5" x="0" y="410.4" textLength="12.2" 
clip-path="url(#breeze-help-line-16)">│</text><text class="breeze-help-r7" 
x="353.8" y="410.4" textLength="1049.2" 
clip-path="url(#breeze-help-line-16)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-help-r5" x="0" y="434.8" textLength="12.2" 
clip-path="url(#breeze-help-line-17)">│</text><text class="breeze-help-r4" 
x="24.4" y="434.8" textLength="12.2" 
clip-path="url(#breeze-help-line-17)">-</text><text class="breeze-help-r4" 
x="36.6" y="434.8" textLength="85.4" 
clip-path="url(#breeze-help-line-17)">-github</text><text 
class="breeze-help-r4" x="122" y="434.8" textLength="134.2" 
clip-path="url(#breeze-help-line-17)">-repository</text><text 
class="breeze-help [...]
-</text><text class="breeze-help-r5" x="0" y="459.2" textLength="1464" 
clip-path="url(#breeze-help-line-18)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="459.2" textLength="12.2" 
clip-path="url(#breeze-help-line-18)">
-</text><text class="breeze-help-r5" x="0" y="483.6" textLength="24.4" 
clip-path="url(#breeze-help-line-19)">╭─</text><text class="breeze-help-r5" 
x="24.4" y="483.6" textLength="195.2" 
clip-path="url(#breeze-help-line-19)">&#160;Common&#160;options&#160;</text><text
 class="breeze-help-r5" x="219.6" y="483.6" textLength="1220" 
clip-path="url(#breeze-help-line-19)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="breeze- [...]
-</text><text class="breeze-help-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-help-line-20)">│</text><text class="breeze-help-r4" 
x="24.4" y="508" textLength="12.2" 
clip-path="url(#breeze-help-line-20)">-</text><text class="breeze-help-r4" 
x="36.6" y="508" textLength="97.6" 
clip-path="url(#breeze-help-line-20)">-verbose</text><text 
class="breeze-help-r6" x="158.6" y="508" textLength="24.4" 
clip-path="url(#breeze-help-line-20)">-v</text><text class="breeze-help-r2" 
x="207.4"  [...]
-</text><text class="breeze-help-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-help-line-21)">│</text><text class="breeze-help-r4" 
x="24.4" y="532.4" textLength="12.2" 
clip-path="url(#breeze-help-line-21)">-</text><text class="breeze-help-r4" 
x="36.6" y="532.4" textLength="48.8" 
clip-path="url(#breeze-help-line-21)">-dry</text><text class="breeze-help-r4" 
x="85.4" y="532.4" textLength="48.8" 
clip-path="url(#breeze-help-line-21)">-run</text><text class="breeze-help-r6" 
x="15 [...]
-</text><text class="breeze-help-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-help-line-22)">│</text><text class="breeze-help-r4" 
x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#breeze-help-line-22)">-</text><text class="breeze-help-r4" 
x="36.6" y="556.8" textLength="85.4" 
clip-path="url(#breeze-help-line-22)">-answer</text><text 
class="breeze-help-r6" x="158.6" y="556.8" textLength="24.4" 
clip-path="url(#breeze-help-line-22)">-a</text><text class="breeze-help-r2" x=" 
[...]
-</text><text class="breeze-help-r5" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-help-line-23)">│</text><text class="breeze-help-r4" 
x="24.4" y="581.2" textLength="12.2" 
clip-path="url(#breeze-help-line-23)">-</text><text class="breeze-help-r4" 
x="36.6" y="581.2" textLength="61" 
clip-path="url(#breeze-help-line-23)">-help</text><text class="breeze-help-r6" 
x="158.6" y="581.2" textLength="24.4" 
clip-path="url(#breeze-help-line-23)">-h</text><text class="breeze-help-r2" 
x="207. [...]
-</text><text class="breeze-help-r5" x="0" y="605.6" textLength="1464" 
clip-path="url(#breeze-help-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="605.6" textLength="12.2" 
clip-path="url(#breeze-help-line-24)">
-</text><text class="breeze-help-r5" x="0" y="630" textLength="24.4" 
clip-path="url(#breeze-help-line-25)">╭─</text><text class="breeze-help-r5" 
x="24.4" y="630" textLength="317.2" 
clip-path="url(#breeze-help-line-25)">&#160;Basic&#160;developer&#160;commands&#160;</text><text
 class="breeze-help-r5" x="341.6" y="630" textLength="1098" 
clip-path="url(#breeze-help-line-25)">──────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="breeze-h [...]
-</text><text class="breeze-help-r5" x="0" y="654.4" textLength="12.2" 
clip-path="url(#breeze-help-line-26)">│</text><text class="breeze-help-r4" 
x="24.4" y="654.4" textLength="219.6" 
clip-path="url(#breeze-help-line-26)">start-airflow&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="654.4" textLength="1171.2" 
clip-path="url(#breeze-help-line-26)">Enter&#160;breeze&#160;environment&#160;and&#160;starts&#160;all&#160;Airflow&#160;components&#160;in&#160;the&#16
 [...]
-</text><text class="breeze-help-r5" x="0" y="678.8" textLength="12.2" 
clip-path="url(#breeze-help-line-27)">│</text><text class="breeze-help-r2" 
x="268.4" y="678.8" textLength="1171.2" 
clip-path="url(#breeze-help-line-27)">if&#160;contents&#160;of&#160;www&#160;directory&#160;changed.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-help-r5" x="0" y="703.2" textLength="12.2" 
clip-path="url(#breeze-help-line-28)">│</text><text class="breeze-help-r4" 
x="24.4" y="703.2" textLength="219.6" 
clip-path="url(#breeze-help-line-28)">static-checks&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="703.2" textLength="1171.2" 
clip-path="url(#breeze-help-line-28)">Run&#160;static&#160;checks.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-help-r5" x="0" y="727.6" textLength="12.2" 
clip-path="url(#breeze-help-line-29)">│</text><text class="breeze-help-r4" 
x="24.4" y="727.6" textLength="219.6" 
clip-path="url(#breeze-help-line-29)">build-docs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="727.6" textLength="1171.2" 
clip-path="url(#breeze-help-line-29)">Build&#160;documentation&#160;in&#160;the&#160;container.&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-help-r5" x="0" y="752" textLength="12.2" 
clip-path="url(#breeze-help-line-30)">│</text><text class="breeze-help-r4" 
x="24.4" y="752" textLength="219.6" 
clip-path="url(#breeze-help-line-30)">down&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="752" textLength="1171.2" 
clip-path="url(#breeze-help-line-30)">Stop&#160;running&#160;breeze&#160;environment.&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-help-r5" x="0" y="776.4" textLength="12.2" 
clip-path="url(#breeze-help-line-31)">│</text><text class="breeze-help-r4" 
x="24.4" y="776.4" textLength="219.6" 
clip-path="url(#breeze-help-line-31)">shell&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="776.4" textLength="1171.2" 
clip-path="url(#breeze-help-line-31)">Enter&#160;breeze&#160;environment.&#160;this&#160;is&#160;the&#160;defaul
 [...]
-</text><text class="breeze-help-r5" x="0" y="800.8" textLength="12.2" 
clip-path="url(#breeze-help-line-32)">│</text><text class="breeze-help-r4" 
x="24.4" y="800.8" textLength="219.6" 
clip-path="url(#breeze-help-line-32)">exec&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="800.8" textLength="1171.2" 
clip-path="url(#breeze-help-line-32)">Joins&#160;the&#160;interactive&#160;shell&#160;of&#160;running&#160;
 [...]
-</text><text class="breeze-help-r5" x="0" y="825.2" textLength="12.2" 
clip-path="url(#breeze-help-line-33)">│</text><text class="breeze-help-r4" 
x="24.4" y="825.2" textLength="219.6" 
clip-path="url(#breeze-help-line-33)">compile-www-assets</text><text 
class="breeze-help-r2" x="268.4" y="825.2" textLength="1171.2" 
clip-path="url(#breeze-help-line-33)">Compiles&#160;www&#160;assets.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-help-r5" x="0" y="849.6" textLength="12.2" 
clip-path="url(#breeze-help-line-34)">│</text><text class="breeze-help-r4" 
x="24.4" y="849.6" textLength="219.6" 
clip-path="url(#breeze-help-line-34)">cleanup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="849.6" textLength="805.2" 
clip-path="url(#breeze-help-line-34)">Cleans&#160;the&#160;cache&#160;of&#160;parameters,&#160;docker&#160;cache&#160;and&#
 [...]
-</text><text class="breeze-help-r5" x="0" y="874" textLength="1464" 
clip-path="url(#breeze-help-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="874" textLength="12.2" 
clip-path="url(#breeze-help-line-35)">
-</text><text class="breeze-help-r5" x="0" y="898.4" textLength="24.4" 
clip-path="url(#breeze-help-line-36)">╭─</text><text class="breeze-help-r5" 
x="24.4" y="898.4" textLength="305" 
clip-path="url(#breeze-help-line-36)">&#160;Advanced&#160;command&#160;groups&#160;</text><text
 class="breeze-help-r5" x="329.4" y="898.4" textLength="1110.2" 
clip-path="url(#breeze-help-line-36)">───────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="br [...]
-</text><text class="breeze-help-r5" x="0" y="922.8" textLength="12.2" 
clip-path="url(#breeze-help-line-37)">│</text><text class="breeze-help-r4" 
x="24.4" y="922.8" textLength="280.6" 
clip-path="url(#breeze-help-line-37)">testing&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="922.8" textLength="1110.2" 
clip-path="url(#breeze-help-line-37)">Tools&#160;that&#160;developers&#160;can&#160;use&#160
 [...]
-</text><text class="breeze-help-r5" x="0" y="947.2" textLength="12.2" 
clip-path="url(#breeze-help-line-38)">│</text><text class="breeze-help-r4" 
x="24.4" y="947.2" textLength="280.6" 
clip-path="url(#breeze-help-line-38)">ci-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="947.2" textLength="597.8" 
clip-path="url(#breeze-help-line-38)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#1
 [...]
-</text><text class="breeze-help-r5" x="0" y="971.6" textLength="12.2" 
clip-path="url(#breeze-help-line-39)">│</text><text class="breeze-help-r4" 
x="24.4" y="971.6" textLength="280.6" 
clip-path="url(#breeze-help-line-39)">k8s&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="971.6" textLength="1110.2" 
clip-path="url(#breeze-help-line-39)">Tools&#160;that&#160;developers&#1 [...]
-</text><text class="breeze-help-r5" x="0" y="996" textLength="12.2" 
clip-path="url(#breeze-help-line-40)">│</text><text class="breeze-help-r4" 
x="24.4" y="996" textLength="280.6" 
clip-path="url(#breeze-help-line-40)">prod-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="996" textLength="597.8" 
clip-path="url(#breeze-help-line-40)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#160;manually&#160
 [...]
-</text><text class="breeze-help-r5" x="0" y="1020.4" textLength="12.2" 
clip-path="url(#breeze-help-line-41)">│</text><text class="breeze-help-r4" 
x="24.4" y="1020.4" textLength="280.6" 
clip-path="url(#breeze-help-line-41)">setup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="1020.4" textLength="1110.2" 
clip-path="url(#breeze-help-line-41)">Tools&#160;that&#160;developers&#160;can& 
[...]
-</text><text class="breeze-help-r5" x="0" y="1044.8" textLength="12.2" 
clip-path="url(#breeze-help-line-42)">│</text><text class="breeze-help-r4" 
x="24.4" y="1044.8" textLength="280.6" 
clip-path="url(#breeze-help-line-42)">release-management&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="1044.8" textLength="1110.2" 
clip-path="url(#breeze-help-line-42)">Tools&#160;that&#160;release&#160;managers&#160;can&#160;use&#160;to&#160;prepare&#160;and&#160;manage&#16
 [...]
-</text><text class="breeze-help-r5" x="0" y="1069.2" textLength="12.2" 
clip-path="url(#breeze-help-line-43)">│</text><text class="breeze-help-r4" 
x="24.4" y="1069.2" textLength="280.6" 
clip-path="url(#breeze-help-line-43)">ci&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="1069.2" textLength="134.2" 
clip-path="url(#breeze-help-line-43)">Tools&#160;that&#160;</text [...]
-</text><text class="breeze-help-r5" x="0" y="1093.6" textLength="1464" 
clip-path="url(#breeze-help-line-44)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="1093.6" textLength="12.2" 
clip-path="url(#breeze-help-line-44)">
+</text><text class="breeze-help-r4" x="0" y="93.2" textLength="24.4" 
clip-path="url(#breeze-help-line-3)">╭─</text><text class="breeze-help-r4" 
x="24.4" y="93.2" textLength="158.6" 
clip-path="url(#breeze-help-line-3)">&#160;Basic&#160;flags&#160;</text><text 
class="breeze-help-r4" x="183" y="93.2" textLength="1256.6" 
clip-path="url(#breeze-help-line-3)">───────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="breeze-help-r [...]
+</text><text class="breeze-help-r4" x="0" y="117.6" textLength="12.2" 
clip-path="url(#breeze-help-line-4)">│</text><text class="breeze-help-r5" 
x="24.4" y="117.6" textLength="12.2" 
clip-path="url(#breeze-help-line-4)">-</text><text class="breeze-help-r5" 
x="36.6" y="117.6" textLength="85.4" 
clip-path="url(#breeze-help-line-4)">-python</text><text class="breeze-help-r6" 
x="305" y="117.6" textLength="24.4" 
clip-path="url(#breeze-help-line-4)">-p</text><text class="breeze-help-r2" 
x="353.8" [...]
+</text><text class="breeze-help-r4" x="0" y="142" textLength="12.2" 
clip-path="url(#breeze-help-line-5)">│</text><text class="breeze-help-r4" 
x="353.8" y="142" textLength="732" 
clip-path="url(#breeze-help-line-5)">[default:&#160;3.7]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
+</text><text class="breeze-help-r4" x="0" y="166.4" textLength="12.2" 
clip-path="url(#breeze-help-line-6)">│</text><text class="breeze-help-r5" 
x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#breeze-help-line-6)">-</text><text class="breeze-help-r5" 
x="36.6" y="166.4" textLength="97.6" 
clip-path="url(#breeze-help-line-6)">-backend</text><text 
class="breeze-help-r6" x="305" y="166.4" textLength="24.4" 
clip-path="url(#breeze-help-line-6)">-b</text><text class="breeze-help-r2" 
x="353.8 [...]
+</text><text class="breeze-help-r4" x="0" y="190.8" textLength="12.2" 
clip-path="url(#breeze-help-line-7)">│</text><text class="breeze-help-r5" 
x="24.4" y="190.8" textLength="12.2" 
clip-path="url(#breeze-help-line-7)">-</text><text class="breeze-help-r5" 
x="36.6" y="190.8" textLength="109.8" 
clip-path="url(#breeze-help-line-7)">-postgres</text><text 
class="breeze-help-r5" x="146.4" y="190.8" textLength="97.6" 
clip-path="url(#breeze-help-line-7)">-version</text><text class="breeze-help-r6 
[...]
+</text><text class="breeze-help-r4" x="0" y="215.2" textLength="12.2" 
clip-path="url(#breeze-help-line-8)">│</text><text class="breeze-help-r5" 
x="24.4" y="215.2" textLength="12.2" 
clip-path="url(#breeze-help-line-8)">-</text><text class="breeze-help-r5" 
x="36.6" y="215.2" textLength="73.2" 
clip-path="url(#breeze-help-line-8)">-mysql</text><text class="breeze-help-r5" 
x="109.8" y="215.2" textLength="97.6" 
clip-path="url(#breeze-help-line-8)">-version</text><text 
class="breeze-help-r6" x= [...]
+</text><text class="breeze-help-r4" x="0" y="239.6" textLength="12.2" 
clip-path="url(#breeze-help-line-9)">│</text><text class="breeze-help-r5" 
x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-help-line-9)">-</text><text class="breeze-help-r5" 
x="36.6" y="239.6" textLength="73.2" 
clip-path="url(#breeze-help-line-9)">-mssql</text><text class="breeze-help-r5" 
x="109.8" y="239.6" textLength="97.6" 
clip-path="url(#breeze-help-line-9)">-version</text><text 
class="breeze-help-r6" x= [...]
+</text><text class="breeze-help-r4" x="0" y="264" textLength="12.2" 
clip-path="url(#breeze-help-line-10)">│</text><text class="breeze-help-r5" 
x="24.4" y="264" textLength="12.2" 
clip-path="url(#breeze-help-line-10)">-</text><text class="breeze-help-r5" 
x="36.6" y="264" textLength="146.4" 
clip-path="url(#breeze-help-line-10)">-integration</text><text 
class="breeze-help-r2" x="353.8" y="264" textLength="1085.8" 
clip-path="url(#breeze-help-line-10)">Integration(s)&#160;to&#160;enable&#160;w 
[...]
+</text><text class="breeze-help-r4" x="0" y="288.4" textLength="12.2" 
clip-path="url(#breeze-help-line-11)">│</text><text class="breeze-help-r7" 
x="353.8" y="288.4" textLength="1085.8" 
clip-path="url(#breeze-help-line-11)">(all&#160;|&#160;all-testable&#160;|&#160;cassandra&#160;|&#160;celery&#160;|&#160;kafka&#160;|&#160;kerberos&#160;|&#160;mongo&#160;|&#160;otel&#160;|&#160;pinot&#160;|&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r4" x="1451.8" y="288.4" textLength="1 [...]
+</text><text class="breeze-help-r4" x="0" y="312.8" textLength="12.2" 
clip-path="url(#breeze-help-line-12)">│</text><text class="breeze-help-r7" 
x="353.8" y="312.8" textLength="1085.8" 
clip-path="url(#breeze-help-line-12)">statsd&#160;|&#160;statsd&#160;|&#160;trino)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-help-r4" x="0" y="337.2" textLength="12.2" 
clip-path="url(#breeze-help-line-13)">│</text><text class="breeze-help-r5" 
x="24.4" y="337.2" textLength="12.2" 
clip-path="url(#breeze-help-line-13)">-</text><text class="breeze-help-r5" 
x="36.6" y="337.2" textLength="97.6" 
clip-path="url(#breeze-help-line-13)">-forward</text><text 
class="breeze-help-r5" x="134.2" y="337.2" textLength="146.4" 
clip-path="url(#breeze-help-line-13)">-credentials</text><text class="breeze- 
[...]
+</text><text class="breeze-help-r4" x="0" y="361.6" textLength="12.2" 
clip-path="url(#breeze-help-line-14)">│</text><text class="breeze-help-r5" 
x="24.4" y="361.6" textLength="12.2" 
clip-path="url(#breeze-help-line-14)">-</text><text class="breeze-help-r5" 
x="36.6" y="361.6" textLength="36.6" 
clip-path="url(#breeze-help-line-14)">-db</text><text class="breeze-help-r5" 
x="73.2" y="361.6" textLength="73.2" 
clip-path="url(#breeze-help-line-14)">-reset</text><text class="breeze-help-r6" 
x="3 [...]
+</text><text class="breeze-help-r4" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-help-line-15)">│</text><text class="breeze-help-r5" 
x="24.4" y="386" textLength="12.2" 
clip-path="url(#breeze-help-line-15)">-</text><text class="breeze-help-r5" 
x="36.6" y="386" textLength="48.8" 
clip-path="url(#breeze-help-line-15)">-max</text><text class="breeze-help-r5" 
x="85.4" y="386" textLength="61" 
clip-path="url(#breeze-help-line-15)">-time</text><text class="breeze-help-r2" 
x="353.8" y="3 [...]
+</text><text class="breeze-help-r4" x="0" y="410.4" textLength="12.2" 
clip-path="url(#breeze-help-line-16)">│</text><text class="breeze-help-r7" 
x="353.8" y="410.4" textLength="1049.2" 
clip-path="url(#breeze-help-line-16)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-help-r4" x="0" y="434.8" textLength="12.2" 
clip-path="url(#breeze-help-line-17)">│</text><text class="breeze-help-r5" 
x="24.4" y="434.8" textLength="12.2" 
clip-path="url(#breeze-help-line-17)">-</text><text class="breeze-help-r5" 
x="36.6" y="434.8" textLength="85.4" 
clip-path="url(#breeze-help-line-17)">-github</text><text 
class="breeze-help-r5" x="122" y="434.8" textLength="134.2" 
clip-path="url(#breeze-help-line-17)">-repository</text><text 
class="breeze-help [...]
+</text><text class="breeze-help-r4" x="0" y="459.2" textLength="1464" 
clip-path="url(#breeze-help-line-18)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="459.2" textLength="12.2" 
clip-path="url(#breeze-help-line-18)">
+</text><text class="breeze-help-r4" x="0" y="483.6" textLength="24.4" 
clip-path="url(#breeze-help-line-19)">╭─</text><text class="breeze-help-r4" 
x="24.4" y="483.6" textLength="195.2" 
clip-path="url(#breeze-help-line-19)">&#160;Common&#160;options&#160;</text><text
 class="breeze-help-r4" x="219.6" y="483.6" textLength="1220" 
clip-path="url(#breeze-help-line-19)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="breeze- [...]
+</text><text class="breeze-help-r4" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-help-line-20)">│</text><text class="breeze-help-r5" 
x="24.4" y="508" textLength="12.2" 
clip-path="url(#breeze-help-line-20)">-</text><text class="breeze-help-r5" 
x="36.6" y="508" textLength="97.6" 
clip-path="url(#breeze-help-line-20)">-verbose</text><text 
class="breeze-help-r6" x="158.6" y="508" textLength="24.4" 
clip-path="url(#breeze-help-line-20)">-v</text><text class="breeze-help-r2" 
x="207.4"  [...]
+</text><text class="breeze-help-r4" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-help-line-21)">│</text><text class="breeze-help-r5" 
x="24.4" y="532.4" textLength="12.2" 
clip-path="url(#breeze-help-line-21)">-</text><text class="breeze-help-r5" 
x="36.6" y="532.4" textLength="48.8" 
clip-path="url(#breeze-help-line-21)">-dry</text><text class="breeze-help-r5" 
x="85.4" y="532.4" textLength="48.8" 
clip-path="url(#breeze-help-line-21)">-run</text><text class="breeze-help-r6" 
x="15 [...]
+</text><text class="breeze-help-r4" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-help-line-22)">│</text><text class="breeze-help-r5" 
x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#breeze-help-line-22)">-</text><text class="breeze-help-r5" 
x="36.6" y="556.8" textLength="85.4" 
clip-path="url(#breeze-help-line-22)">-answer</text><text 
class="breeze-help-r6" x="158.6" y="556.8" textLength="24.4" 
clip-path="url(#breeze-help-line-22)">-a</text><text class="breeze-help-r2" x=" 
[...]
+</text><text class="breeze-help-r4" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-help-line-23)">│</text><text class="breeze-help-r5" 
x="24.4" y="581.2" textLength="12.2" 
clip-path="url(#breeze-help-line-23)">-</text><text class="breeze-help-r5" 
x="36.6" y="581.2" textLength="61" 
clip-path="url(#breeze-help-line-23)">-help</text><text class="breeze-help-r6" 
x="158.6" y="581.2" textLength="24.4" 
clip-path="url(#breeze-help-line-23)">-h</text><text class="breeze-help-r2" 
x="207. [...]
+</text><text class="breeze-help-r4" x="0" y="605.6" textLength="1464" 
clip-path="url(#breeze-help-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="605.6" textLength="12.2" 
clip-path="url(#breeze-help-line-24)">
+</text><text class="breeze-help-r4" x="0" y="630" textLength="24.4" 
clip-path="url(#breeze-help-line-25)">╭─</text><text class="breeze-help-r4" 
x="24.4" y="630" textLength="317.2" 
clip-path="url(#breeze-help-line-25)">&#160;Basic&#160;developer&#160;commands&#160;</text><text
 class="breeze-help-r4" x="341.6" y="630" textLength="1098" 
clip-path="url(#breeze-help-line-25)">──────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="breeze-h [...]
+</text><text class="breeze-help-r4" x="0" y="654.4" textLength="12.2" 
clip-path="url(#breeze-help-line-26)">│</text><text class="breeze-help-r5" 
x="24.4" y="654.4" textLength="219.6" 
clip-path="url(#breeze-help-line-26)">start-airflow&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="654.4" textLength="1171.2" 
clip-path="url(#breeze-help-line-26)">Enter&#160;breeze&#160;environment&#160;and&#160;starts&#160;all&#160;Airflow&#160;components&#160;in&#160;the&#16
 [...]
+</text><text class="breeze-help-r4" x="0" y="678.8" textLength="12.2" 
clip-path="url(#breeze-help-line-27)">│</text><text class="breeze-help-r2" 
x="268.4" y="678.8" textLength="1171.2" 
clip-path="url(#breeze-help-line-27)">if&#160;contents&#160;of&#160;www&#160;directory&#160;changed.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-help-r4" x="0" y="703.2" textLength="12.2" 
clip-path="url(#breeze-help-line-28)">│</text><text class="breeze-help-r5" 
x="24.4" y="703.2" textLength="219.6" 
clip-path="url(#breeze-help-line-28)">static-checks&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="703.2" textLength="1171.2" 
clip-path="url(#breeze-help-line-28)">Run&#160;static&#160;checks.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-help-r4" x="0" y="727.6" textLength="12.2" 
clip-path="url(#breeze-help-line-29)">│</text><text class="breeze-help-r5" 
x="24.4" y="727.6" textLength="219.6" 
clip-path="url(#breeze-help-line-29)">build-docs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="727.6" textLength="1171.2" 
clip-path="url(#breeze-help-line-29)">Build&#160;documentation&#160;in&#160;the&#160;container.&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-help-r4" x="0" y="752" textLength="12.2" 
clip-path="url(#breeze-help-line-30)">│</text><text class="breeze-help-r5" 
x="24.4" y="752" textLength="219.6" 
clip-path="url(#breeze-help-line-30)">down&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="752" textLength="1171.2" 
clip-path="url(#breeze-help-line-30)">Stop&#160;running&#160;breeze&#160;environment.&#160;&#160;&#160;&#160;&#16
 [...]
+</text><text class="breeze-help-r4" x="0" y="776.4" textLength="12.2" 
clip-path="url(#breeze-help-line-31)">│</text><text class="breeze-help-r5" 
x="24.4" y="776.4" textLength="219.6" 
clip-path="url(#breeze-help-line-31)">shell&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="776.4" textLength="1171.2" 
clip-path="url(#breeze-help-line-31)">Enter&#160;breeze&#160;environment.&#160;this&#160;is&#160;the&#160;defaul
 [...]
+</text><text class="breeze-help-r4" x="0" y="800.8" textLength="12.2" 
clip-path="url(#breeze-help-line-32)">│</text><text class="breeze-help-r5" 
x="24.4" y="800.8" textLength="219.6" 
clip-path="url(#breeze-help-line-32)">exec&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="800.8" textLength="1171.2" 
clip-path="url(#breeze-help-line-32)">Joins&#160;the&#160;interactive&#160;shell&#160;of&#160;running&#160;
 [...]
+</text><text class="breeze-help-r4" x="0" y="825.2" textLength="12.2" 
clip-path="url(#breeze-help-line-33)">│</text><text class="breeze-help-r5" 
x="24.4" y="825.2" textLength="219.6" 
clip-path="url(#breeze-help-line-33)">compile-www-assets</text><text 
class="breeze-help-r2" x="268.4" y="825.2" textLength="1171.2" 
clip-path="url(#breeze-help-line-33)">Compiles&#160;www&#160;assets.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
+</text><text class="breeze-help-r4" x="0" y="849.6" textLength="12.2" 
clip-path="url(#breeze-help-line-34)">│</text><text class="breeze-help-r5" 
x="24.4" y="849.6" textLength="219.6" 
clip-path="url(#breeze-help-line-34)">cleanup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="268.4" y="849.6" textLength="1171.2" 
clip-path="url(#breeze-help-line-34)">Cleans&#160;the&#160;cache&#160;of&#160;parameters,&#160;docker&#160;cache&#160;and&
 [...]
+</text><text class="breeze-help-r4" x="0" y="874" textLength="1464" 
clip-path="url(#breeze-help-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="874" textLength="12.2" 
clip-path="url(#breeze-help-line-35)">
+</text><text class="breeze-help-r4" x="0" y="898.4" textLength="24.4" 
clip-path="url(#breeze-help-line-36)">╭─</text><text class="breeze-help-r4" 
x="24.4" y="898.4" textLength="305" 
clip-path="url(#breeze-help-line-36)">&#160;Advanced&#160;command&#160;groups&#160;</text><text
 class="breeze-help-r4" x="329.4" y="898.4" textLength="1110.2" 
clip-path="url(#breeze-help-line-36)">───────────────────────────────────────────────────────────────────────────────────────────</text><text
 class="br [...]
+</text><text class="breeze-help-r4" x="0" y="922.8" textLength="12.2" 
clip-path="url(#breeze-help-line-37)">│</text><text class="breeze-help-r5" 
x="24.4" y="922.8" textLength="280.6" 
clip-path="url(#breeze-help-line-37)">testing&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="922.8" textLength="1110.2" 
clip-path="url(#breeze-help-line-37)">Tools&#160;that&#160;developers&#160;can&#160;use&#160
 [...]
+</text><text class="breeze-help-r4" x="0" y="947.2" textLength="12.2" 
clip-path="url(#breeze-help-line-38)">│</text><text class="breeze-help-r5" 
x="24.4" y="947.2" textLength="280.6" 
clip-path="url(#breeze-help-line-38)">ci-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="947.2" textLength="1110.2" 
clip-path="url(#breeze-help-line-38)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#
 [...]
+</text><text class="breeze-help-r4" x="0" y="971.6" textLength="12.2" 
clip-path="url(#breeze-help-line-39)">│</text><text class="breeze-help-r5" 
x="24.4" y="971.6" textLength="280.6" 
clip-path="url(#breeze-help-line-39)">k8s&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="971.6" textLength="1110.2" 
clip-path="url(#breeze-help-line-39)">Tools&#160;that&#160;developers&#1 [...]
+</text><text class="breeze-help-r4" x="0" y="996" textLength="12.2" 
clip-path="url(#breeze-help-line-40)">│</text><text class="breeze-help-r5" 
x="24.4" y="996" textLength="280.6" 
clip-path="url(#breeze-help-line-40)">prod-image&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="996" textLength="1110.2" 
clip-path="url(#breeze-help-line-40)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#160;manually&#16
 [...]
+</text><text class="breeze-help-r4" x="0" y="1020.4" textLength="12.2" 
clip-path="url(#breeze-help-line-41)">│</text><text class="breeze-help-r5" 
x="24.4" y="1020.4" textLength="280.6" 
clip-path="url(#breeze-help-line-41)">setup&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="1020.4" textLength="1110.2" 
clip-path="url(#breeze-help-line-41)">Tools&#160;that&#160;developers&#160;can& 
[...]
+</text><text class="breeze-help-r4" x="0" y="1044.8" textLength="12.2" 
clip-path="url(#breeze-help-line-42)">│</text><text class="breeze-help-r5" 
x="24.4" y="1044.8" textLength="280.6" 
clip-path="url(#breeze-help-line-42)">release-management&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="1044.8" textLength="1110.2" 
clip-path="url(#breeze-help-line-42)">Tools&#160;that&#160;release&#160;managers&#160;can&#160;use&#160;to&#160;prepare&#160;and&#160;manage&#16
 [...]
+</text><text class="breeze-help-r4" x="0" y="1069.2" textLength="12.2" 
clip-path="url(#breeze-help-line-43)">│</text><text class="breeze-help-r5" 
x="24.4" y="1069.2" textLength="280.6" 
clip-path="url(#breeze-help-line-43)">ci&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-help-r2" x="329.4" y="1069.2" textLength="1110.2" 
clip-path="url(#breeze-help-line-43)">Tools&#160;that&#160;CI&#1 [...]
+</text><text class="breeze-help-r4" x="0" y="1093.6" textLength="1464" 
clip-path="url(#breeze-help-line-44)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r2" x="1464" y="1093.6" textLength="12.2" 
clip-path="url(#breeze-help-line-44)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_ci_selective-check.svg 
b/images/breeze/output_ci_selective-check.svg
index 0d1250f1e2..186e49cce9 100644
--- a/images/breeze/output_ci_selective-check.svg
+++ b/images/breeze/output_ci_selective-check.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 562.4" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 1482 660.0" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -35,15 +35,15 @@
     .breeze-ci-selective-check-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-ci-selective-check-r2 { fill: #c5c8c6 }
 .breeze-ci-selective-check-r3 { fill: #d0b344;font-weight: bold }
-.breeze-ci-selective-check-r4 { fill: #68a0b3;font-weight: bold }
-.breeze-ci-selective-check-r5 { fill: #868887 }
+.breeze-ci-selective-check-r4 { fill: #868887 }
+.breeze-ci-selective-check-r5 { fill: #68a0b3;font-weight: bold }
 .breeze-ci-selective-check-r6 { fill: #8d7b39 }
 .breeze-ci-selective-check-r7 { fill: #98a84b;font-weight: bold }
     </style>
 
     <defs>
     <clipPath id="breeze-ci-selective-check-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="511.4" />
+      <rect x="0" y="0" width="1463.0" height="609.0" />
     </clipPath>
     <clipPath id="breeze-ci-selective-check-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -105,9 +105,21 @@
 <clipPath id="breeze-ci-selective-check-line-19">
     <rect x="0" y="465.1" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-ci-selective-check-line-20">
+    <rect x="0" y="489.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-selective-check-line-21">
+    <rect x="0" y="513.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-selective-check-line-22">
+    <rect x="0" y="538.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-selective-check-line-23">
+    <rect x="0" y="562.7" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="560.4" rx="8"/><text 
class="breeze-ci-selective-check-title" fill="#c5c8c6" text-anchor="middle" 
x="740" y="27">Command:&#160;ci&#160;selective-check</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="658" rx="8"/><text 
class="breeze-ci-selective-check-title" fill="#c5c8c6" text-anchor="middle" 
x="740" y="27">Command:&#160;ci&#160;selective-check</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -118,26 +130,30 @@
     
     <g class="breeze-ci-selective-check-matrix">
     <text class="breeze-ci-selective-check-r2" x="1464" y="20" 
textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-0)">
-</text><text class="breeze-ci-selective-check-r3" x="12.2" y="44.4" 
textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-1)">Usage:&#160;</text><text 
class="breeze-ci-selective-check-r1" x="97.6" y="44.4" textLength="329.4" 
clip-path="url(#breeze-ci-selective-check-line-1)">breeze&#160;ci&#160;selective-check&#160;[</text><text
 class="breeze-ci-selective-check-r4" x="427" y="44.4" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-1)">OPTIONS</text><text class=" 
[...]
+</text><text class="breeze-ci-selective-check-r3" x="12.2" y="44.4" 
textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-1)">Usage:&#160;</text><text 
class="breeze-ci-selective-check-r1" x="97.6" y="44.4" textLength="427" 
clip-path="url(#breeze-ci-selective-check-line-1)">breeze&#160;ci&#160;selective-check&#160;[OPTIONS]</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="44.4" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-1)">
 </text><text class="breeze-ci-selective-check-r2" x="1464" y="68.8" 
textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-2)">
 </text><text class="breeze-ci-selective-check-r2" x="12.2" y="93.2" 
textLength="768.6" 
clip-path="url(#breeze-ci-selective-check-line-3)">Checks&#160;what&#160;kind&#160;of&#160;tests&#160;should&#160;be&#160;run&#160;for&#160;an&#160;incoming&#160;commit.</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="93.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-3)">
 </text><text class="breeze-ci-selective-check-r2" x="1464" y="117.6" 
textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-4)">
-</text><text class="breeze-ci-selective-check-r5" x="0" y="142" 
textLength="24.4" 
clip-path="url(#breeze-ci-selective-check-line-5)">╭─</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="142" textLength="280.6" 
clip-path="url(#breeze-ci-selective-check-line-5)">&#160;Selective&#160;check&#160;flags&#160;</text><text
 class="breeze-ci-selective-check-r5" x="305" y="142" textLength="1134.6" 
clip-path="url(#breeze-ci-selective-check-line-5)">────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="166.4" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-6)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-6)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="166.4" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-6)">-commit</text><text 
class="breeze-ci-selective-check-r4" x="122" y="166.4" text [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="190.8" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-7)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="190.8" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-7)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="190.8" textLength="36.6" 
clip-path="url(#breeze-ci-selective-check-line-7)">-pr</text><text 
class="breeze-ci-selective-check-r4" x="73.2" y="190.8" textLen [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="215.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-8)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="215.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-8)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="215.2" textLength="97.6" 
clip-path="url(#breeze-ci-selective-check-line-8)">-default</text><text 
class="breeze-ci-selective-check-r4" x="134.2" y="215.2" t [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="239.6" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-9)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-9)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="239.6" textLength="97.6" 
clip-path="url(#breeze-ci-selective-check-line-9)">-default</text><text 
class="breeze-ci-selective-check-r4" x="134.2" y="239.6" t [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="264" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-10)">│</text><text 
class="breeze-ci-selective-check-r5" x="414.8" y="264" textLength="646.6" 
clip-path="url(#breeze-ci-selective-check-line-10)">[default:&#160;constraints-main]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-ci- [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="288.4" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-11)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="288.4" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-11)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="288.4" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-11)">-github</text><text 
class="breeze-ci-selective-check-r4" x="122" y="288.4" t [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="312.8" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-12)">│</text><text 
class="breeze-ci-selective-check-r6" x="414.8" y="312.8" textLength="1024.8" 
clip-path="url(#breeze-ci-selective-check-line-12)">(pull_request&#160;|&#160;pull_request_review&#160;|&#160;pull_request_target&#160;|&#160;pull_request_workflow&#160;|&#160;</text><text
 class="breeze-ci-selective-check-r5" x="1451.8" y="312.8" textLength="12.2"  
[...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="337.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-13)">│</text><text 
class="breeze-ci-selective-check-r6" x="414.8" y="337.2" textLength="1024.8" 
clip-path="url(#breeze-ci-selective-check-line-13)">push&#160;|&#160;schedule&#160;|&#160;workflow_dispatch&#160;|&#160;workflow_run)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="361.6" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-14)">│</text><text 
class="breeze-ci-selective-check-r5" x="414.8" y="361.6" textLength="1024.8" 
clip-path="url(#breeze-ci-selective-check-line-14)">[default:&#160;pull_request]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="386" 
textLength="1464" 
clip-path="url(#breeze-ci-selective-check-line-15)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="386" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-15)">
-</text><text class="breeze-ci-selective-check-r5" x="0" y="410.4" 
textLength="24.4" 
clip-path="url(#breeze-ci-selective-check-line-16)">╭─</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="410.4" textLength="195.2" 
clip-path="url(#breeze-ci-selective-check-line-16)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-selective-check-r5" x="219.6" y="410.4" textLength="1220" 
clip-path="url(#breeze-ci-selective-check-line-16)">───────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="434.8" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-17)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="434.8" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-17)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="434.8" textLength="97.6" 
clip-path="url(#breeze-ci-selective-check-line-17)">-verbose</text><text 
class="breeze-ci-selective-check-r7" x="158.6" y="434.8 [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="459.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-18)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="459.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-18)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="459.2" textLength="48.8" 
clip-path="url(#breeze-ci-selective-check-line-18)">-dry</text><text 
class="breeze-ci-selective-check-r4" x="85.4" y="459.2" tex [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="483.6" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-19)">│</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-19)">-</text><text 
class="breeze-ci-selective-check-r4" x="36.6" y="483.6" textLength="61" 
clip-path="url(#breeze-ci-selective-check-line-19)">-help</text><text 
class="breeze-ci-selective-check-r7" x="158.6" y="483.6" tex [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="508" 
textLength="1464" 
clip-path="url(#breeze-ci-selective-check-line-20)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-20)">
+</text><text class="breeze-ci-selective-check-r4" x="0" y="142" 
textLength="24.4" 
clip-path="url(#breeze-ci-selective-check-line-5)">╭─</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="142" textLength="280.6" 
clip-path="url(#breeze-ci-selective-check-line-5)">&#160;Selective&#160;check&#160;flags&#160;</text><text
 class="breeze-ci-selective-check-r4" x="305" y="142" textLength="1134.6" 
clip-path="url(#breeze-ci-selective-check-line-5)">────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="166.4" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-6)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-6)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="166.4" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-6)">-commit</text><text 
class="breeze-ci-selective-check-r5" x="122" y="166.4" text [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="190.8" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-7)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="190.8" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-7)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="190.8" textLength="36.6" 
clip-path="url(#breeze-ci-selective-check-line-7)">-pr</text><text 
class="breeze-ci-selective-check-r5" x="73.2" y="190.8" textLen [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="215.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-8)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="215.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-8)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="215.2" textLength="97.6" 
clip-path="url(#breeze-ci-selective-check-line-8)">-default</text><text 
class="breeze-ci-selective-check-r5" x="134.2" y="215.2" t [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="239.6" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-9)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-9)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="239.6" textLength="97.6" 
clip-path="url(#breeze-ci-selective-check-line-9)">-default</text><text 
class="breeze-ci-selective-check-r5" x="134.2" y="239.6" t [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="264" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-10)">│</text><text 
class="breeze-ci-selective-check-r4" x="414.8" y="264" textLength="646.6" 
clip-path="url(#breeze-ci-selective-check-line-10)">[default:&#160;constraints-main]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-ci- [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="288.4" 
textLength="1464" 
clip-path="url(#breeze-ci-selective-check-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="288.4" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-11)">
+</text><text class="breeze-ci-selective-check-r4" x="0" y="312.8" 
textLength="24.4" 
clip-path="url(#breeze-ci-selective-check-line-12)">╭─</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="312.8" textLength="231.8" 
clip-path="url(#breeze-ci-selective-check-line-12)">&#160;Github&#160;parameters&#160;</text><text
 class="breeze-ci-selective-check-r4" x="256.2" y="312.8" textLength="1183.4" 
clip-path="url(#breeze-ci-selective-check-line-12)">──────────────────────────────────────
 [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="337.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-13)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="337.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-13)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="337.2" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-13)">-github</text><text 
class="breeze-ci-selective-check-r5" x="122" y="337.2" t [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="361.6" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-14)">│</text><text 
class="breeze-ci-selective-check-r6" x="329.4" y="361.6" textLength="1110.2" 
clip-path="url(#breeze-ci-selective-check-line-14)">(pull_request&#160;|&#160;pull_request_review&#160;|&#160;pull_request_target&#160;|&#160;pull_request_workflow&#160;|&#160;push&#160;|&#160;</text><text
 class="breeze-ci-selective-check-r4" x="1451.8" y="361.6" t [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="386" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-15)">│</text><text 
class="breeze-ci-selective-check-r6" x="329.4" y="386" textLength="1110.2" 
clip-path="url(#breeze-ci-selective-check-line-15)">schedule&#160;|&#160;workflow_dispatch&#160;|&#160;workflow_run)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="410.4" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-16)">│</text><text 
class="breeze-ci-selective-check-r4" x="329.4" y="410.4" textLength="1110.2" 
clip-path="url(#breeze-ci-selective-check-line-16)">[default:&#160;pull_request]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="434.8" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-17)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="434.8" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-17)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="434.8" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-17)">-github</text><text 
class="breeze-ci-selective-check-r5" x="122" y="434.8" t [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="459.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-18)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="459.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-18)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="459.2" textLength="85.4" 
clip-path="url(#breeze-ci-selective-check-line-18)">-github</text><text 
class="breeze-ci-selective-check-r5" x="122" y="459.2" t [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="483.6" 
textLength="1464" 
clip-path="url(#breeze-ci-selective-check-line-19)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-19)">
+</text><text class="breeze-ci-selective-check-r4" x="0" y="508" 
textLength="24.4" 
clip-path="url(#breeze-ci-selective-check-line-20)">╭─</text><text 
class="breeze-ci-selective-check-r4" x="24.4" y="508" textLength="195.2" 
clip-path="url(#breeze-ci-selective-check-line-20)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-selective-check-r4" x="219.6" y="508" textLength="1220" 
clip-path="url(#breeze-ci-selective-check-line-20)">─────────────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="532.4" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-21)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-21)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="532.4" textLength="97.6" 
clip-path="url(#breeze-ci-selective-check-line-21)">-verbose</text><text 
class="breeze-ci-selective-check-r7" x="158.6" y="532.4 [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-22)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-22)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="556.8" textLength="48.8" 
clip-path="url(#breeze-ci-selective-check-line-22)">-dry</text><text 
class="breeze-ci-selective-check-r5" x="85.4" y="556.8" tex [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-23)">│</text><text 
class="breeze-ci-selective-check-r5" x="24.4" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-23)">-</text><text 
class="breeze-ci-selective-check-r5" x="36.6" y="581.2" textLength="61" 
clip-path="url(#breeze-ci-selective-check-line-23)">-help</text><text 
class="breeze-ci-selective-check-r7" x="158.6" y="581.2" tex [...]
+</text><text class="breeze-ci-selective-check-r4" x="0" y="605.6" 
textLength="1464" 
clip-path="url(#breeze-ci-selective-check-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-selective-check-r2" x="1464" y="605.6" textLength="12.2" 
clip-path="url(#breeze-ci-selective-check-line-24)">
 </text>
     </g>
     </g>

Reply via email to