You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ep...@apache.org on 2023/08/15 05:46:55 UTC

[airflow] 02/07: Add update-constraints command that allows to modify released ones (#33144)

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

ephraimanierobi pushed a commit to branch v2-7-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit c67408664a12a044fd82e9eb84d9c25e69e2b777
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Fri Aug 11 01:10:38 2023 +0200

    Add update-constraints command that allows to modify released ones (#33144)
    
    * Add update-constraints command that allows to modify released ones
    
    This command can be used to semi-automatically update constraints
    in case we need to update historical version of them, because for
    some reason (like setuptools or pip or cython changes) we need
    to update individual constraints in historically released constraints.
    
    ---------
    
    Co-authored-by: Jed Cunningham <66...@users.noreply.github.com>
    (cherry picked from commit dcfca57eb53840d396ceec25e73c09204bd65d35)
---
 BREEZE.rst                                         |  71 +++--
 ...UALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md | 334 +++++++++++++++++++++
 dev/REFRESHING_CI_CACHE.md                         | 137 ---------
 .../commands/release_management_commands.py        | 163 +++++++++-
 .../commands/release_management_commands_config.py |  12 +
 images/breeze/output-commands-hash.txt             |   9 +-
 images/breeze/output_release-management.svg        |  18 +-
 ...utput_release-management_update-constraints.svg | 150 +++++++++
 images/breeze/output_sbom.svg                      |  20 +-
 .../output_sbom_generate-provider-requirements.svg |  54 ++--
 .../output_setup_check-all-params-in-groups.svg    |  32 +-
 .../output_setup_regenerate-command-images.svg     |  12 +-
 images/breeze/output_static-checks.svg             | 146 ++++-----
 images/breeze/output_testing.svg                   |  24 +-
 images/breeze/output_testing_tests.svg             | 114 +++----
 15 files changed, 925 insertions(+), 371 deletions(-)

diff --git a/BREEZE.rst b/BREEZE.rst
index f060b84ee2..9b4f7d527e 100644
--- a/BREEZE.rst
+++ b/BREEZE.rst
@@ -455,7 +455,7 @@ Often errors during documentation generation come from the docstrings of auto-ap
 During the docs building auto-api generated files are stored in the ``docs/_api`` folder. This helps you
 easily identify the location the problems with documentation originated from.
 
-Those are all available flags of ``build-docs`` command:
+These are all available flags of ``build-docs`` command:
 
 .. image:: ./images/breeze/output_build-docs.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_build-docs.svg
@@ -537,7 +537,7 @@ The above will run the check for the last 4 commits in your branch. You can use
 in ``--from-ref`` and ``--to-ref`` flags.
 
 
-Those are all available flags of ``static-checks`` command:
+These are all available flags of ``static-checks`` command:
 
 .. image:: ./images/breeze/output_static-checks.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_static-checks.svg
@@ -580,7 +580,7 @@ You can also use it to start any released version of Airflow from ``PyPI`` with
 
     breeze start-airflow --python 3.8 --backend mysql --use-airflow-version 2.2.5
 
-Those are all available flags of ``start-airflow`` command:
+These are all available flags of ``start-airflow`` command:
 
 .. image:: ./images/breeze/output_start-airflow.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_start-airflow.svg
@@ -605,7 +605,7 @@ to enter the running container. It's as easy as launching ``breeze exec`` while
 Breeze environment. You will be dropped into bash and environment variables will be read in the same
 way as when you enter the environment. You can do it multiple times and open as many terminals as you need.
 
-Those are all available flags of ``exec`` command:
+These are all available flags of ``exec`` command:
 
 .. image:: ./images/breeze/output_exec.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_exec.svg
@@ -643,7 +643,7 @@ need to build the images again from scratch - pulling from the registry might ta
 
 Breeze will ask you to confirm each step, unless you specify ``--answer yes`` flag.
 
-Those are all available flags of ``cleanup`` command:
+These are all available flags of ``cleanup`` command:
 
 .. image:: ./images/breeze/output_cleanup.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_cleanup.svg
@@ -736,7 +736,7 @@ You can always stop it via:
 
    breeze down
 
-Those are all available flags of ``down`` command:
+These are all available flags of ``down`` command:
 
 .. image:: ./images/breeze/output_down.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_down.svg
@@ -1394,7 +1394,7 @@ download the latest images before rebuilding because this is usually faster than
 Building CI image
 .................
 
-Those are all available flags of ``ci-image build`` command:
+These are all available flags of ``ci-image build`` command:
 
 .. image:: ./images/breeze/output_ci-image_build.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci-image_build.svg
@@ -1406,7 +1406,7 @@ Pulling CI image
 
 You can also pull the CI images locally in parallel with optional verification.
 
-Those are all available flags of ``pull`` command:
+These are all available flags of ``pull`` command:
 
 .. image:: ./images/breeze/output_ci-image_pull.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci-image_pull.svg
@@ -1419,7 +1419,7 @@ Verifying CI image
 Finally, you can verify CI image by running tests - either with the pulled/built images or
 with an arbitrary image.
 
-Those are all available flags of ``verify`` command:
+These are all available flags of ``verify`` command:
 
 .. image:: ./images/breeze/output_ci-image_verify.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci-image_verify.svg
@@ -1488,7 +1488,7 @@ Same as above but uses python 3.8.
 Building PROD image
 ...................
 
-Those are all available flags of ``build-prod-image`` command:
+These are all available flags of ``build-prod-image`` command:
 
 .. image:: ./images/breeze/output_prod-image_build.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_prod-image_build.svg
@@ -1500,7 +1500,7 @@ Pulling PROD image
 
 You can also pull PROD images in parallel with optional verification.
 
-Those are all available flags of ``pull-prod-image`` command:
+These are all available flags of ``pull-prod-image`` command:
 
 .. image:: ./images/breeze/output_prod-image_pull.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_prod-image_pull.svg
@@ -1513,7 +1513,7 @@ Verifying PROD image
 Finally, you can verify PROD image by running tests - either with the pulled/built images or
 with an arbitrary image.
 
-Those are all available flags of ``verify-prod-image`` command:
+These are all available flags of ``verify-prod-image`` command:
 
 .. image:: ./images/breeze/output_prod-image_verify.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_prod-image_verify.svg
@@ -1528,7 +1528,7 @@ Breeze has tools that you can use to configure defaults and breeze behaviours an
 operations that might be necessary when you add new commands in Breeze. It also allows to configure your
 host operating system for Breeze autocompletion.
 
-Those are all available flags of ``setup`` command:
+These are all available flags of ``setup`` command:
 
 .. image:: ./images/breeze/output_setup.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_setup.svg
@@ -1552,7 +1552,7 @@ it off by passing ``--no-colour`` to config in which case the messages to the us
 will be printed using different schemes (italic/bold/underline) to indicate different kind of messages
 rather than colours.
 
-Those are all available flags of ``setup config`` command:
+These are all available flags of ``setup config`` command:
 
 .. image:: ./images/breeze/output_setup_config.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_setup_config.svg
@@ -1570,7 +1570,7 @@ also force reinstalling the autocomplete via:
 
    breeze setup autocomplete --force
 
-Those are all available flags of ``setup-autocomplete`` command:
+These are all available flags of ``setup-autocomplete`` command:
 
 .. image:: ./images/breeze/output_setup_autocomplete.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_setup_autocomplete.svg
@@ -1583,7 +1583,7 @@ Breeze version
 You can display Breeze version and with ``--verbose`` flag it can provide more information: where
 Breeze is installed from and details about setup hashes.
 
-Those are all available flags of ``version`` command:
+These are all available flags of ``version`` command:
 
 .. image:: ./images/breeze/output_setup_version.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_setup_version.svg
@@ -1594,7 +1594,7 @@ Those are all available flags of ``version`` command:
 Breeze self-upgrade
 ...................
 
-You can self-upgrade breeze automatically. Those are all available flags of ``self-upgrade`` command:
+You can self-upgrade breeze automatically. These are all available flags of ``self-upgrade`` command:
 
 .. image:: ./images/breeze/output_setup_self-upgrade.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_setup_self-upgrade.svg
@@ -1650,7 +1650,7 @@ Breeze requires certain resources to be available - disk, memory, CPU. When you
 the resources are checked and information if there is enough resources is displayed. However you can
 manually run resource check any time by ``breeze ci resource-check`` command.
 
-Those are all available flags of ``resource-check`` command:
+These are all available flags of ``resource-check`` command:
 
 .. image:: ./images/breeze/output_ci_resource-check.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci_resource-check.svg
@@ -1664,7 +1664,7 @@ When our CI runs a job, it needs all memory and disk it can have. We have a Bree
 the memory and disk space used. You can also use it clear space locally but it performs a few operations
 that might be a bit invasive - such are removing swap file and complete pruning of docker disk space used.
 
-Those are all available flags of ``free-space`` command:
+These are all available flags of ``free-space`` command:
 
 .. image:: ./images/breeze/output_ci_free-space.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci_free-space.svg
@@ -1684,7 +1684,7 @@ by the root user, you can fix the ownership of those files by running :
 
   breeze ci fix-ownership
 
-Those are all available flags of ``fix-ownership`` command:
+These are all available flags of ``fix-ownership`` command:
 
 .. image:: ./images/breeze/output_ci_fix-ownership.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci_fix-ownership.svg
@@ -1705,7 +1705,7 @@ from the context of the commit/PR to be merged via stderr output.
 More details about the algorithm used to pick the right tests and the available outputs can be
 found in `Selective Checks <dev/breeze/SELECTIVE_CHECKS.md>`_.
 
-Those are all available flags of ``selective-check`` command:
+These are all available flags of ``selective-check`` command:
 
 .. image:: ./images/breeze/output_ci_selective-check.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci_selective-check.svg
@@ -1719,7 +1719,7 @@ When our CI runs a job, it might be within one of several workflows. Information
 is stored in GITHUB_CONTEXT. Rather than using some jq/bash commands, we retrieve the necessary information
 (like PR labels, event_type, where the job runs on, job description and convert them into GA outputs.
 
-Those are all available flags of ``get-workflow-info`` command:
+These are all available flags of ``get-workflow-info`` command:
 
 .. image:: ./images/breeze/output_ci_get-workflow-info.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_ci_get-workflow-info.svg
@@ -2020,7 +2020,7 @@ while publishing the documentation.
 The flag ``--airflow-site-directory`` takes the path of the cloned ``airflow-site``. The command will
 not proceed if this is an invalid path.
 
-Those are all available flags of ``release-management publish-docs`` command:
+These are all available flags of ``release-management publish-docs`` command:
 
 .. image:: ./images/breeze/output_release-management_publish-docs.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_release-management_publish-docs.svg
@@ -2052,7 +2052,7 @@ not proceed if this is an invalid path.
 The flag ``--gen-type`` is a string of which type of back references to generate. It can take the values of
 airflow, providers, or helm. The command will fail if this is incorrect.
 
-Those are all available flags of ``release-management add-back-references`` command:
+These are all available flags of ``release-management add-back-references`` command:
 
 .. image:: .images/breeze/output_release-management_add-back-references.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_release-management_add-back-references.svg
@@ -2097,7 +2097,7 @@ Constraints are generated separately for each python version and there are separ
   providers. If you want to manage airflow separately and then add providers individually, you can
   use those.
 
-Those are all available flags of ``generate-constraints`` command:
+These are all available flags of ``generate-constraints`` command:
 
 .. image:: ./images/breeze/output_release-management_generate-constraints.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_release-management_generate-constraints.svg
@@ -2106,13 +2106,30 @@ Those are all available flags of ``generate-constraints`` command:
 
 In case someone modifies setup.py, the scheduled CI Tests automatically upgrades and
 pushes changes to the constraint files, however you can also perform test run of this locally using
-the procedure described in `Refreshing CI Cache <dev/REFRESHING_CI_CACHE.md#manually-generating-constraint-files>`_
+the procedure described in the
+`Manually generating image cache and constraints <dev/MANUALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md>`_
 which utilises multiple processors on your local machine to generate such constraints faster.
 
 This bumps the constraint files to latest versions and stores hash of setup.py. The generated constraint
 and setup.py hash files are stored in the ``files`` folder and while generating the constraints diff
 of changes vs the previous constraint files is printed.
 
+Updating constraints
+""""""""""""""""""""
+
+Sometimes (very rarely) we might want to update individual packages in constraints that we generated and
+tagged already in the past. This can be done using ``breeze release-management update-constraints`` command.
+
+These are all available flags of ``update-constraints`` command:
+
+.. image:: ./images/breeze/output_release-management_update-constraints.svg
+  :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_release-management_update-constraints.svg
+  :width: 100%
+  :alt: Breeze update-constraints
+
+You can read more details about what happens when you update constraints in the
+`Manually generating image cache and constraints <dev/MANUALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md>`_
+
 
 SBOM generation tasks
 ----------------------
@@ -2162,7 +2179,7 @@ keeps data in their own volume. Those volumes are persisted until ``breeze down`
 You can also preserve the volumes by adding flag ``--preserve-volumes`` when you run the command.
 Then, next time when you start Breeze, it will have the data pre-populated.
 
-Those are all available flags of ``down`` command:
+These are all available flags of ``down`` command:
 
 .. image:: ./images/breeze/output-down.svg
   :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output-down.svg
diff --git a/dev/MANUALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md b/dev/MANUALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md
new file mode 100644
index 0000000000..503830d294
--- /dev/null
+++ b/dev/MANUALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md
@@ -0,0 +1,334 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<!-- START doctoc generated TOC please keep comment here to allow auto update -->
+<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
+**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*
+
+- [Purpose of the document](#purpose-of-the-document)
+- [Automated image cache and constraints refreshing in CI](#automated-image-cache-and-constraints-refreshing-in-ci)
+- [Manually refreshing the image cache](#manually-refreshing-the-image-cache)
+  - [Why we need to update image cache manually](#why-we-need-to-update-image-cache-manually)
+  - [Prerequisites](#prerequisites)
+  - [How to refresh the image cache](#how-to-refresh-the-image-cache)
+  - [Is it safe to refresh the image cache?](#is-it-safe-to-refresh-the-image-cache)
+  - [What the command does](#what-the-command-does)
+- [Manually generating constraint files](#manually-generating-constraint-files)
+  - [Why we need to generate constraint files manually](#why-we-need-to-generate-constraint-files-manually)
+  - [How to generate constraint files](#how-to-generate-constraint-files)
+  - [Is it safe to generate constraints manually?](#is-it-safe-to-generate-constraints-manually)
+- [Manually updating already tagged constraint files](#manually-updating-already-tagged-constraint-files)
+  - [Why we need to update constraint files manually (very rarely)](#why-we-need-to-update-constraint-files-manually-very-rarely)
+  - [How to update the constraints](#how-to-update-the-constraints)
+  - [Is it safe to update constraints manually?](#is-it-safe-to-update-constraints-manually)
+  - [How the command works under-the-hood ?](#how-the-command-works-under-the-hood-)
+  - [Examples of running the command](#examples-of-running-the-command)
+
+<!-- END doctoc generated TOC please keep comment here to allow auto update -->
+
+# Purpose of the document
+
+This document contains explanation of a few manual procedures we might use at certain times, to update
+our CI and constraints manually when the automation of our CI is not enough. There are some edge cases
+and events that might trigger the need of refreshing the information stored in our GitHub Repository.
+
+We are storing two things in our GitHub Registry that are needed for both our contributors
+and users:
+
+* `CI and PROD image cache` - used by our CI jobs to speed up building of images while CI jobs are running
+* `Constraints files` - used by both, CI jobs (to fix the versions of dependencies used by CI jobs in regular
+  PRs) and used by our users to reproducibly install released airflow versions.
+
+Normally, both are updated and refreshed automatically via [CI system](../CI.rst). However, there are some
+cases where we need to update them manually. This document describes how to do it.
+
+# Automated image cache and constraints refreshing in CI
+
+Our [CI system](../CI.rst) is build in the way that it self-maintains. Regular scheduled builds and
+merges to `main` branch builds (also known as `canary` builds) have separate maintenance step that
+take care about refreshing the cache that is used to speed up our builds and to speed up
+rebuilding of [Breeze](../BREEZE.rst) images for development purpose. This is all happening automatically, usually:
+
+* The latest [constraints](../CONTRIBUTING.rst#pinned-constraint-files) are pushed to appropriate branch after all tests succeed in the
+  `canary` build.
+
+* The [images](../IMAGES.rst) in `ghcr.io` registry are refreshed early at the beginning of the `canary` build. This
+  is done twice during the canary build:
+   * By the `Push Early Image Cache` job that is run at the beginning of the `canary` build. This cover the
+     case when there are new dependencies added or Dockerfile/scripts change. Thanks to that step, subsequent
+     PRs will be faster when they use the new Dockerfile/script. Those jobs **might fail** occasionally,
+     if the latest PR added some conflicting dependencies with current constraints. This is not a problem
+     and when it happens, it will be fixed by the next step.
+   * By the `Push Image Cache` job that is run at the end of the `canary` build. This covers the case when
+     cache is also refreshed after than `main` build succeeds after the new constraints are pushed. This
+     step makes sure that constraints are committed and pushed just before the cache is refreshed, so
+     there is no problem with conflicting dependencies.
+
+# Manually refreshing the image cache
+
+## Why we need to update image cache manually
+
+Sometimes, when we have a problem with our CI running and flakiness of GitHub Actions runners or our
+tests, the refresh might not be triggered. This has been mitigated by "Push Early Image Cache" job added in
+our CI, but there are other reasons you might want to refresh the cache. Sometimes we want to refresh the
+image cache in `vX_Y_test` branch (following our convention of branch names `vX_Y_test` branch is the branch
+used to release all `X.Y.*` versions of airflow) before we attempt to push a change there.
+There are no PRs happening in this branch, so manual refresh before we make a PR might speed up the PR build.
+Or sometimes we just refreshed the constraints (see below) and we want the cache to include those.
+
+## Prerequisites
+
+Note that in order to refresh images you have to not only have `buildx` command installed for docker,
+but you should also make sure that you have the buildkit builder configured and set. Since we also build
+multi-platform images (for both AMD and ARM), you need to have support for qemu or hardware ARM/AMD builders
+configured. The chapters below explain both options.
+
+### Setting up cache refreshing with emulation
+
+According to the [official installation instructions](https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images)
+this can be achieved via:
+
+```bash
+docker run --privileged --rm tonistiigi/binfmt --install all
+```
+
+More information can be found [here](https://docs.docker.com/engine/reference/commandline/buildx_create/)
+
+However, emulation is very slow - more than 10x slower than hardware-backed builds.
+
+### Setting up cache refreshing with hardware ARM/AMD support
+
+If you plan to build  a number of images, probably better solution is to set up a hardware remote builder
+for your ARM or AMD builds (depending which platform you build images on - the "other" platform should be
+remote.
+
+This  can be achieved by settings build as described in
+[this guideline](https://www.docker.com/blog/speed-up-building-with-docker-buildx-and-graviton2-ec2/) and
+adding it to docker buildx `airflow_cache` builder.
+
+This usually can be done with those two commands:
+
+```bash
+docker buildx create --name airflow_cache   # your local builder
+docker buildx create --name airflow_cache --append HOST:PORT  # your remote builder
+```
+
+One of the ways to have HOST:PORT is to login to the remote machine via SSH and forward the port to
+the docker engine running on the remote machine.
+
+When everything is fine you should see both local and remote builder configured and reporting status:
+
+```bash
+docker buildx ls
+
+  airflow_cache          docker-container
+       airflow_cache0    unix:///var/run/docker.sock
+       airflow_cache1    tcp://127.0.0.1:2375
+```
+
+## How to refresh the image cache
+
+The images can be rebuilt and refreshed after the constraints are pushed. Refreshing image for all
+python version is as simple as running the [refresh_images.sh](refresh_images.sh) script which will
+rebuild all the images in parallel and push them to the registry.
+
+Note that you need to run `docker login ghcr.io` before you run the script and you need to be
+a committer in order to be able to push the cache to the registry.
+
+```bash
+./dev/refresh_images.sh
+```
+
+## Is it safe to refresh the image cache?
+
+Yes. Image cache is only used to speed up the build process in CI. The worst thing that can happen if
+the image cache is broken is that the PR builds of our will run slower - usually, for regular PRs building
+the images from scratch takes about 15 minutes. With the image cache it takes about 1 minute if there are no
+dependency changes. So if the image cache is broken, the worst thing that will happen is that the PR builds
+will run longer "Wait for CI Image" step and "Wait for PROD image" will simply wait a bit longer.
+
+Eventually the cache will heal itself. When the `main` build succeeds with all the tests, the cache is
+automatically updated. Actually it's even faster in new CI process of ours, the cache is refreshed
+very quickly after there is a merge of a new PR to the main ("Push Early Image Cache" jobs), so
+cache refreshing and self-healing should be generally rather quick.
+
+## What the command does
+
+The command does the following:
+
+* builds the CI image using the builders configured using buildx and pushes the cache
+  to the `apache/airflow` registry (`--prepare-buildx-cache` flag). It builds all images in parallel for
+  both AMD and ARM architectures.
+* prepares packages and airflow packages in `dist` folder using the latest sources
+* moves the packages to the `docker-context-files` folder so that they are available when building the
+  PROD images
+* builds the PROD image using the builders configured and packages prepared using buildx and pushes the cache
+  to the `apache/airflow` registry (`--prepare-buildx-cache` flag). It builds all images in parallel for
+  both AMD and ARM architectures.
+
+# Manually generating constraint files
+
+## Why we need to generate constraint files manually
+
+Sometimes we want to generate constraint files if - for whatever reason - we cannot or do not want to wait
+until `main` or `vY_Z_test` branch tests succeed. The constraints are only refreshed by CI when all the tests
+pass, and this is a good thing, however there are some cases where we cannot solve some intermittent problem
+with tests, but we KNOW that the tip of the branch is good and we want to release a new airflow version or
+we want to move the PRs of contributors to start using the new constraints. This should be done with caution
+and you need to be sure what you are doing, but you can always do it manually if you want.
+
+## How to generate constraint files
+
+```bash
+breeze ci-image build --run-in-parallel --upgrade-to-newer-dependencies --answer yes
+breeze release-management generate-constraints --airflow-constraints-mode constraints --run-in-parallel --answer yes
+breeze release-management generate-constraints --airflow-constraints-mode constraints-source-providers --run-in-parallel --answer yes
+breeze release-management generate-constraints --airflow-constraints-mode constraints-no-providers --run-in-parallel --answer yes
+
+AIRFLOW_SOURCES=$(pwd)
+```
+
+The constraints will be generated in `files/constraints-PYTHON_VERSION/constraints-*.txt` files. You need to
+check out the right 'constraints-' branch in a separate repository, and then you can copy, commit and push the
+generated files.
+
+You need to be a committer, and you have to be authenticated in the apache/airflow repository for your
+git commands to be able to push the new constraints
+
+```bash
+cd <AIRFLOW_WITH_CONSTRAINTS-MAIN_DIRECTORY>
+git pull
+cp ${AIRFLOW_SOURCES}/files/constraints-*/constraints*.txt .
+git diff
+git add .
+git commit -m "Your commit message here" --no-verify
+git push
+```
+
+## Is it safe to generate constraints manually?
+
+The slight risk is that if there is a constraint problem that impacts regular PRs and tests then it might
+make all PRs "red" until the constraint is fixed. However, if this is the case then usually we should fix
+the problem by fixing the tests or dependencies and the automated CI process should be able to self-heal.
+The main build does not use constraints and it will attempt to upgrade (or downgrade) the dependencies to
+the latest version matching the dependency specification we have in setup.cfg/setup.py/provider.yaml files.
+Also the constraints are pushed without `--force` so there is no risk of destroying anything.
+The history is kept in Git, so you can always revert to the previous version if needed.
+
+# Manually updating already tagged constraint files
+
+## Why we need to update constraint files manually (very rarely)
+
+Sometimes - very rarely - we need to fix historical constraint files when Airflow fails to install with the
+constraints that were used in the past. This happened already several times and usually only happens when
+there is a backwards-incompatible change in the build environment in Python installation toolchain
+(pip, setuptools, wheel, Cython etc.). The Python build environment is not controllable by us - by default
+pip uses `build isolation` which means that it will install the latest version of the build tools. Those
+tools versions are chosen by `pip` separately for each package. However, this might mean that new versions of
+such tools, released after the package has been released can break the installation. This happened for
+example in July 2023 when major (3.0.0) version of Cython has been released and it
+broke `pymssql` installation. We had to update the constraint files to use `pymssql==2.2.8` instead
+of `pymssql==2.2.7` because version 2.2.7 did not limit but also did not work with the new version of Cython.
+Version 2.2.8 of `pymssql` fixed compatibility with Cython 3.0.0, so replacing it in constraints brought back
+the reproducibility of installation promised by constraints.
+
+## How to update the constraints
+
+Breeze has `update-constraints` command in `release-management` group that can be used to update the
+constraints in bulk.
+
+This is a step-by-step instruction on how to use it:
+
+1. You need to have "airflow" repository checked out separately from the repository you are working on. For
+   example in `/home/myuser/airflow-constraints` folder.
+2. You need to checkout `constraints-main` branch in this repository. By default the command expects that
+   there is a remote named "apache" pointing to the official Apache repository. You can override this
+    by passing `--remote-name` option to the command.
+3. You need to run `breeze release-management update-constraints` command. The `breeze` command comes usually
+   from another clone of airflow repository - usually from the `main` branch. You should pass those options to
+   the command:
+      * path to the "constraints" repository
+      * remote name where the constraints should be pushed (optionally - default "apache")
+      * list of airflow versions to update constraints for
+      * list of constraints to update in the form of "package==version" (you can specify it multiple times)
+      * message to be used in the commit message
+
+   Make sure you use exactly the same form of the name for the package to be updated as the one already in the
+   constraints. PyPI normalizes names of packages and sometimes you can see different variants of it - for
+   example `pyaml` vs. `PyYaml`. Check what is currently stored in constraints for the package you want to
+   update and use exactly the same form of the package name.
+
+4. Verify manually if the change is visible as expected by inspecting the constraints at:
+
+https://github.com/apache/airflow/tree/constraints-<airfow-version>
+
+## Is it safe to update constraints manually?
+
+The command is designed with safety in mind. Even if you make a mistake there is always a way back. But
+there are a few ways you can check that what you are doing is going to work as expected. Read on.
+
+It's a good idea to add `--dry-run` option to the command to see what will be updated before you actually
+run the command.
+
+However, even if you do not use `--dry-run` option, the command will ask you to
+confirm the updates so you will have a chance to verify it before each version change.
+
+When you run the command for the first time you can also add `--verbose` instead of `--dry-run` and
+you will see the git commands being executed by the command while it is doing its job.
+
+Airflow constraint tags are moved with ``--force`` option - this needs to be done because we are moving already
+existing tag, however branches are pushed without force so there is no risk of losing history in the repository.
+You can always see the history and revert the changes and restore old tags manually. Usually the "final" tags
+are the same as the latest "rc*" tags for the same version so it is easy to find where the tag was
+pointing before - we also print hash of the commits before attempting to make modifications so you can
+always see what commit the tag has been pointing to before the command is run.
+
+## How the command works under-the-hood ?
+
+The command will do the following for every Airflow version specified:
+
+  * checkout "constraints-<version>" tag
+  * reset "constraints-<version>-fix" branch to the tag
+  * update constraints in-place
+  * commit the changes
+  * tag the commit with "constraints-<version>" tag
+  * push the "constraints-<version>-fix" branch with the commit to the remote selected
+  * push the tag to the remote selected
+
+
+## Examples of running the command
+
+Example of updating constraints for Airflow 2.5.0 - 2.6.3 and updating `pymssql` constraint to 2.2.8:
+
+```bash
+breeze release-management update-constraints --constraints-repo /home/user/airflow-constraints \
+    --airflow-versions 2.5.0,2.5.1,2.5.2,2.5.3,2.6.0,2.6.1,2.6.2,2.6.3 \
+    --updated-constraint pymssql==2.2.8 \
+    --commit-message "Update pymssql constraint to 2.2.8"
+```
+
+Example of updating multiple constraints:
+
+```bash
+breeze release-management update-constraints --constraints-repo /home/user/airflow-constraints \
+    --airflow-versions 2.5.0,2.5.1,2.5.2,2.5.3,2.6.0,2.6.1,2.6.2,2.6.3 \
+    --updated-constraint pymssql==2.2.8 \
+    --updated-constraint Authlib==1.3.0 \
+    --commit-message "Update pymssql constraint to 2.2.8 and Authlib to 1.3.0"
+```
diff --git a/dev/REFRESHING_CI_CACHE.md b/dev/REFRESHING_CI_CACHE.md
deleted file mode 100644
index c6596aa864..0000000000
--- a/dev/REFRESHING_CI_CACHE.md
+++ /dev/null
@@ -1,137 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied.  See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-
-<!-- START doctoc generated TOC please keep comment here to allow auto update -->
-<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
-**Table of Contents**  *generated with [DocToc](https://github.com/thlorenz/doctoc)*
-
-- [Automated cache refreshing in CI](#automated-cache-refreshing-in-ci)
-- [Manually generating constraint files](#manually-generating-constraint-files)
-- [Manually refreshing the images](#manually-refreshing-the-images)
-  - [Setting up cache refreshing with emulation](#setting-up-cache-refreshing-with-emulation)
-  - [Setting up cache refreshing with hardware ARM/AMD support](#setting-up-cache-refreshing-with-hardware-armamd-support)
-  - [How to refresh the image](#how-to-refresh-the-image)
-
-<!-- END doctoc generated TOC please keep comment here to allow auto update -->
-
-# Automated cache refreshing in CI
-
-Our [CI system](../CI.rst) is build in the way that it self-maintains. Regular scheduled builds and
-merges to `main` branch have separate maintenance step that take care about refreshing the cache that is
-used to speed up our builds and to speed up rebuilding of [Breeze](../BREEZE.rst) images for development
-purpose. This is all happening automatically, usually:
-
-* The latest [constraints](../CONTRIBUTING.rst#pinned-constraint-files) are pushed to appropriate branch
-  after all tests succeeded in `main` merge or in `scheduled` build
-
-* The [images](../IMAGES.rst) in `ghcr.io` registry are refreshed after every successful merge to `main`
-  or `scheduled` build and after pushing the constraints, this means that the latest image cache uses
-  also the latest tested constraints
-
-Sometimes however, when we have prolonged period of fighting with flakiness of GitHub Actions runners or our
-tests, the refresh might not be triggered - because tests will not succeed for some time. In this case
-manual refresh might be needed.
-
-# Manually generating constraint files
-
-```bash
-breeze ci-image build --run-in-parallel --upgrade-to-newer-dependencies --answer yes
-breeze release-management generate-constraints --airflow-constraints-mode constraints --run-in-parallel --answer yes
-breeze release-management generate-constraints --airflow-constraints-mode constraints-source-providers --run-in-parallel --answer yes
-breeze release-management generate-constraints --airflow-constraints-mode constraints-no-providers --run-in-parallel --answer yes
-
-AIRFLOW_SOURCES=$(pwd)
-```
-
-The constraints will be generated in `files/constraints-PYTHON_VERSION/constraints-*.txt` files. You need to
-check out the right 'constraints-' branch in a separate repository, and then you can copy, commit and push the
-generated files:
-
-```bash
-cd <AIRFLOW_WITH_CONSTRAINTS-MAIN_DIRECTORY>
-git pull
-cp ${AIRFLOW_SOURCES}/files/constraints-*/constraints*.txt .
-git diff
-git add .
-git commit -m "Your commit message here" --no-verify
-git push
-```
-
-# Manually refreshing the images
-
-Note that in order to refresh images you have to not only have `buildx` command installed for docker,
-but you should also make sure that you have the buildkit builder configured and set. Since we also build
-multi-platform images (for both AMD and ARM), you need to have support for qemu or hardware ARM/AMD builders
-configured.
-
-
-
-## Setting up cache refreshing with emulation
-
-According to the [official installation instructions](https://docs.docker.com/buildx/working-with-buildx/#build-multi-platform-images)
-this can be achieved via:
-
-```shell
-docker run --privileged --rm tonistiigi/binfmt --install all
-```
-
-More information can be found [here](https://docs.docker.com/engine/reference/commandline/buildx_create/)
-
-However, emulation is very slow - more than 10x slower than hardware-backed builds.
-
-## Setting up cache refreshing with hardware ARM/AMD support
-
-If you plan to build  a number of images, probably better solution is to set up a hardware remote builder
-for your ARM or AMD builds (depending which platform you build images on - the "other" platform should be
-remote.
-
-This  can be achieved by settings build as described in
-[this guideline](https://www.docker.com/blog/speed-up-building-with-docker-buildx-and-graviton2-ec2/) and
-adding it to docker buildx `airflow_cache` builder.
-
-This usually can be done with those two commands:
-
-```bash
-docker buildx create --name airflow_cache   # your local builder
-docker buildx create --name airflow_cache --append HOST:PORT  # your remote builder
-```
-
-One of the ways to have HOST:PORT is to login to the remote machine via SSH and forward the port to
-the docker engine running on the remote machine.
-
-When everything is fine you should see both local and remote builder configured and reporting status:
-
-```bash
-docker buildx ls
-
-  airflow_cache          docker-container
-       airflow_cache0    unix:///var/run/docker.sock
-       airflow_cache1    tcp://127.0.0.1:2375
-```
-
-## How to refresh the image
-
-The images can be rebuilt and refreshed after the constraints are pushed. Refreshing image for all
-python version sis a simple as running the [refresh_images.sh](refresh_images.sh) script which will
-sequentially rebuild all the images. Usually building several images in parallel on one machine does not
-speed up the build significantly, that's why the images are build sequentially.
-
-```bash
-./dev/refresh_images.sh
-```
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index aca5f66395..bd3303215f 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -118,7 +118,7 @@ from airflow_breeze.utils.run_utils import (
     run_command,
     run_compile_www_assets,
 )
-from airflow_breeze.utils.shared_options import get_forced_answer
+from airflow_breeze.utils.shared_options import get_dry_run, get_forced_answer
 from airflow_breeze.utils.suspended_providers import get_suspended_provider_ids
 
 option_debug_release_management = click.option(
@@ -1289,3 +1289,164 @@ def generate_providers_metadata(refresh_constraints: bool, python: str | None):
     import json
 
     PROVIDER_METADATA_JSON_FILE_PATH.write_text(json.dumps(metadata_dict, indent=4, sort_keys=True))
+
+
+def fetch_remote(constraints_repo: Path, remote_name: str) -> None:
+    run_command(["git", "fetch", remote_name], cwd=constraints_repo)
+
+
+def checkout_constraint_tag_and_reset_branch(constraints_repo: Path, airflow_version: str) -> None:
+    run_command(
+        ["git", "reset", "--hard"],
+        cwd=constraints_repo,
+    )
+    # Switch to tag
+    run_command(
+        ["git", "checkout", f"constraints-{airflow_version}"],
+        cwd=constraints_repo,
+    )
+    # Create or reset branch to point
+    run_command(
+        ["git", "checkout", "-B", f"constraints-{airflow_version}-fix"],
+        cwd=constraints_repo,
+    )
+    get_console().print(
+        f"[info]Checked out constraints tag: constraints-{airflow_version} and "
+        f"reset branch constraints-{airflow_version}-fix to it.[/]"
+    )
+    result = run_command(
+        ["git", "show", "-s", "--format=%H"],
+        cwd=constraints_repo,
+        text=True,
+        capture_output=True,
+    )
+    get_console().print(f"[info]The hash commit of the tag:[/] {result.stdout}")
+
+
+def modify_single_file_constraints(constraints_file: Path, updated_constraints: tuple[str]) -> bool:
+    constraint_content = constraints_file.read_text()
+    original_content = constraint_content
+    for constraint in updated_constraints:
+        package, version = constraint.split("==")
+        constraint_content = re.sub(
+            rf"^{package}==.*$", f"{package}=={version}", constraint_content, flags=re.MULTILINE
+        )
+    if constraint_content != original_content:
+        if not get_dry_run():
+            constraints_file.write_text(constraint_content)
+        get_console().print("[success]Updated.[/]")
+        return True
+    else:
+        get_console().print("[warning]The file has not been modified.[/]")
+        return False
+
+
+def modify_all_constraint_files(constraints_repo: Path, updated_constraint: tuple[str]) -> bool:
+    get_console().print("[info]Updating constraints files:[/]")
+    modified = False
+    for constraints_file in constraints_repo.glob("constraints-*.txt"):
+        get_console().print(f"[info]Updating {constraints_file.name}")
+        if modify_single_file_constraints(constraints_file, updated_constraint):
+            modified = True
+    return modified
+
+
+def confirm_modifications(constraints_repo: Path) -> bool:
+    run_command(["git", "diff"], cwd=constraints_repo, env={"PAGER": ""})
+    confirm = user_confirm("Do you want to continue?")
+    if confirm == Answer.YES:
+        return True
+    elif confirm == Answer.NO:
+        return False
+    else:
+        sys.exit(1)
+
+
+def commit_constraints_and_tag(constraints_repo: Path, airflow_version: str, commit_message: str) -> None:
+    run_command(
+        ["git", "commit", "-a", "--no-verify", "-m", commit_message],
+        cwd=constraints_repo,
+    )
+    run_command(
+        ["git", "tag", f"constraints-{airflow_version}", "--force", "-s", "-m", commit_message, "HEAD"],
+        cwd=constraints_repo,
+    )
+
+
+def push_constraints_and_tag(constraints_repo: Path, remote_name: str, airflow_version: str) -> None:
+    run_command(
+        ["git", "push", remote_name, f"constraints-{airflow_version}-fix"],
+        cwd=constraints_repo,
+    )
+    run_command(
+        ["git", "push", remote_name, f"constraints-{airflow_version}", "--force"],
+        cwd=constraints_repo,
+    )
+
+
+@release_management.command(
+    name="update-constraints", help="Update released constraints with manual changes."
+)
+@click.option(
+    "--constraints-repo",
+    type=click.Path(file_okay=False, dir_okay=True, path_type=Path, exists=True),
+    required=True,
+    envvar="CONSTRAINTS_REPO",
+    help="Path where airflow repository is checked out, with ``constraints-main`` branch checked out.",
+)
+@click.option(
+    "--remote-name",
+    type=str,
+    default="apache",
+    envvar="REMOTE_NAME",
+    help="Name of the remote to push the changes to.",
+)
+@click.option(
+    "--airflow-versions",
+    type=str,
+    required=True,
+    envvar="AIRFLOW_VERSIONS",
+    help="Comma separated list of Airflow versions to update constraints for.",
+)
+@click.option(
+    "--commit-message",
+    type=str,
+    required=True,
+    envvar="COMMIT_MESSAGE",
+    help="Commit message to use for the constraints update.",
+)
+@click.option(
+    "--updated-constraint",
+    required=True,
+    envvar="UPDATED_CONSTRAINT",
+    multiple=True,
+    help="Constraints to be set - in the form of `package==version`. Can be repeated",
+)
+@option_verbose
+@option_dry_run
+@option_answer
+def update_constraints(
+    constraints_repo: Path,
+    remote_name: str,
+    airflow_versions: str,
+    commit_message: str,
+    updated_constraint: tuple[str],
+) -> None:
+    airflow_versions_array = airflow_versions.split(",")
+    if len(airflow_versions_array) == 0:
+        get_console().print("[error]No airflow versions specified - you provided empty string[/]")
+        sys.exit(1)
+
+    get_console().print(f"Updating constraints for {airflow_versions_array} with {updated_constraint}")
+    if (
+        user_confirm(f"The {constraints_repo.name} repo will be reset. Continue?", quit_allowed=False)
+        != Answer.YES
+    ):
+        sys.exit(1)
+    fetch_remote(constraints_repo, remote_name)
+    for airflow_version in airflow_versions_array:
+        checkout_constraint_tag_and_reset_branch(constraints_repo, airflow_version)
+        if modify_all_constraint_files(constraints_repo, updated_constraint):
+            if confirm_modifications(constraints_repo):
+                commit_constraints_and_tag(constraints_repo, airflow_version, commit_message)
+                push_constraints_and_tag(constraints_repo, remote_name, airflow_version)
diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index adc67d7f1f..dcea189896 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -213,4 +213,16 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
     "breeze release-management start-release": [
         {"name": "Start release flags", "options": ["--release-candidate", "--previous-release"]}
     ],
+    "breeze release-management update-constraints": [
+        {
+            "name": "Update constraints flags",
+            "options": [
+                "--constraints-repo",
+                "--remote-name",
+                "--airflow-versions",
+                "--commit-message",
+                "--updated-constraint",
+            ],
+        },
+    ],
 }
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
index 2416ad7db0..1e4dcf3657 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -48,18 +48,19 @@ release-management:publish-docs:00eae3f9acc2134c14c9a94d789423ce
 release-management:release-prod-images:cfbfe8b19fee91fd90718f98ef2fd078
 release-management:start-rc-process:b27bd524dd3c89f50a747b60a7e892c1
 release-management:start-release:419f48f6a4ff4457cb9de7ff496aebbe
+release-management:update-constraints:596d970210f9a71cf6b688995797c0e2
 release-management:verify-provider-packages:2bfa1015b2a4682f7b098587e09026d4
-release-management:3a02b790089e161f2addef69ea0ce08a
+release-management:e60c26213cc3c58a8f86067314a3a688
 sbom:generate-provider-requirements:9abe53200ea5f40e0bf7c27f6087f27f
 sbom:update-sbom-information:0ce56884e5f842e3e80d6619df1ccc64
 sbom:935d041028e847d3faf763a95b51063e
 setup:autocomplete:fffcd49e102e09ccd69b3841a9e3ea8e
-setup:check-all-params-in-groups:76b3b1d3726ca2a446bab0668b1c50f5
+setup:check-all-params-in-groups:3f8b55d6a6bf68d6859bf1a2fcfa6580
 setup:config:38ebaaf93ed42bc7b2a3000eeea2631d
-setup:regenerate-command-images:9217287065e8d7b64d36bc6a80da1e7a
+setup:regenerate-command-images:3a4b81e7fcc739471580d80bc102ce96
 setup:self-upgrade:4af905a147fcd6670a0e33d3d369a94b
 setup:version:be116d90a21c2afe01087f7609774e1e
-setup:cdf58a9c27af2877dc5a658ed0a1d99c
+setup:20e9f6c4f2ac0afc32779ae3f8a1cdff
 shell:30a9271ff59a0fe756dda402cc165683
 start-airflow:ff0f63e20b9ff454e5d3c7b9ba9080d7
 static-checks:a6b76083afc49c0c80270facd5236b42
diff --git a/images/breeze/output_release-management.svg b/images/breeze/output_release-management.svg
index b9b424c018..35c092afae 100644
--- a/images/breeze/output_release-management.svg
+++ b/images/breeze/output_release-management.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 733.1999999999999" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 806.4" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -42,7 +42,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="682.1999999999999" />
+      <rect x="0" y="0" width="1463.0" height="755.4" />
     </clipPath>
     <clipPath id="breeze-release-management-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -125,9 +125,18 @@
 <clipPath id="breeze-release-management-line-26">
     <rect x="0" y="635.9" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-release-management-line-27">
+    <rect x="0" y="660.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-line-28">
+    <rect x="0" y="684.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-line-29">
+    <rect x="0" y="709.1" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="731.2" rx="8"/><text class="breeze-release-management-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="804.4" rx="8"/><text class="breeze-release-management-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -165,6 +174,9 @@
 </text><text class="breeze-release-management-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-line-25)">│</text><text class="breeze-release-management-r4" x="24.4" y="630" textLength="292.8" clip-path="url(#breeze-release-management-line-25)">generate-constraints&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-r2" x="341.6" y="630" textLength="1098" clip-path="url(#breeze-release-management-line-25)">Generates&#160;pinned&#160;constraint [...]
 </text><text class="breeze-release-management-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-line-26)">│</text><text class="breeze-release-management-r4" x="24.4" y="654.4" textLength="292.8" clip-path="url(#breeze-release-management-line-26)">add-back-references&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-r2" x="341.6" y="654.4" textLength="1098" clip-path="url(#breeze-release-management-line-26)">Command&#160;to&#160;add&# [...]
 </text><text class="breeze-release-management-r5" x="0" y="678.8" textLength="1464" clip-path="url(#breeze-release-management-line-27)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-r2" x="1464" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-line-27)">
+</text><text class="breeze-release-management-r5" x="0" y="703.2" textLength="24.4" clip-path="url(#breeze-release-management-line-28)">╭─</text><text class="breeze-release-management-r5" x="24.4" y="703.2" textLength="122" clip-path="url(#breeze-release-management-line-28)">&#160;Commands&#160;</text><text class="breeze-release-management-r5" x="146.4" y="703.2" textLength="1293.2" clip-path="url(#breeze-release-management-line-28)">────────────────────────────────────────────────────── [...]
+</text><text class="breeze-release-management-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-line-29)">│</text><text class="breeze-release-management-r4" x="24.4" y="727.6" textLength="390.4" clip-path="url(#breeze-release-management-line-29)">update-constraints&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-release-management-r2" x="439.2" y="727.6" textLength="1000.4" clip-path="url(#breeze- [...]
+</text><text class="breeze-release-management-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-release-management-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-r2" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-release-management-line-30)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_release-management_update-constraints.svg b/images/breeze/output_release-management_update-constraints.svg
new file mode 100644
index 0000000000..67d3f75906
--- /dev/null
+++ b/images/breeze/output_release-management_update-constraints.svg
@@ -0,0 +1,150 @@
+<svg class="rich-terminal" viewBox="0 0 1482 586.8" xmlns="http://www.w3.org/2000/svg">
+    <!-- Generated with Rich https://www.textualize.io -->
+    <style>
+
+    @font-face {
+        font-family: "Fira Code";
+        src: local("FiraCode-Regular"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
+        font-style: normal;
+        font-weight: 400;
+    }
+    @font-face {
+        font-family: "Fira Code";
+        src: local("FiraCode-Bold"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
+                url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
+        font-style: bold;
+        font-weight: 700;
+    }
+
+    .breeze-release-management-update-constraints-matrix {
+        font-family: Fira Code, monospace;
+        font-size: 20px;
+        line-height: 24.4px;
+        font-variant-east-asian: full-width;
+    }
+
+    .breeze-release-management-update-constraints-title {
+        font-size: 18px;
+        font-weight: bold;
+        font-family: arial;
+    }
+
+    .breeze-release-management-update-constraints-r1 { fill: #c5c8c6;font-weight: bold }
+.breeze-release-management-update-constraints-r2 { fill: #c5c8c6 }
+.breeze-release-management-update-constraints-r3 { fill: #d0b344;font-weight: bold }
+.breeze-release-management-update-constraints-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-release-management-update-constraints-r5 { fill: #868887 }
+.breeze-release-management-update-constraints-r6 { fill: #cc555a }
+.breeze-release-management-update-constraints-r7 { fill: #8d7b39 }
+.breeze-release-management-update-constraints-r8 { fill: #8a4346 }
+.breeze-release-management-update-constraints-r9 { fill: #98a84b;font-weight: bold }
+    </style>
+
+    <defs>
+    <clipPath id="breeze-release-management-update-constraints-clip-terminal">
+      <rect x="0" y="0" width="1463.0" height="535.8" />
+    </clipPath>
+    <clipPath id="breeze-release-management-update-constraints-line-0">
+    <rect x="0" y="1.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-1">
+    <rect x="0" y="25.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-2">
+    <rect x="0" y="50.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-3">
+    <rect x="0" y="74.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-4">
+    <rect x="0" y="99.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-5">
+    <rect x="0" y="123.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-6">
+    <rect x="0" y="147.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-7">
+    <rect x="0" y="172.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-8">
+    <rect x="0" y="196.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-9">
+    <rect x="0" y="221.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-10">
+    <rect x="0" y="245.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-11">
+    <rect x="0" y="269.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-12">
+    <rect x="0" y="294.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-13">
+    <rect x="0" y="318.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-14">
+    <rect x="0" y="343.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-15">
+    <rect x="0" y="367.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-16">
+    <rect x="0" y="391.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-17">
+    <rect x="0" y="416.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-18">
+    <rect x="0" y="440.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-19">
+    <rect x="0" y="465.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-release-management-update-constraints-line-20">
+    <rect x="0" y="489.5" 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="584.8" rx="8"/><text class="breeze-release-management-update-constraints-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;release-management&#160;update-constraints</text>
+            <g transform="translate(26,22)">
+            <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
+            <circle cx="22" cy="0" r="7" fill="#febc2e"/>
+            <circle cx="44" cy="0" r="7" fill="#28c840"/>
+            </g>
+        
+    <g transform="translate(9, 41)" clip-path="url(#breeze-release-management-update-constraints-clip-terminal)">
+    
+    <g class="breeze-release-management-update-constraints-matrix">
+    <text class="breeze-release-management-update-constraints-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-0)">
+</text><text class="breeze-release-management-update-constraints-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-release-management-update-constraints-line-1)">Usage:&#160;</text><text class="breeze-release-management-update-constraints-r1" x="97.6" y="44.4" textLength="561.2" clip-path="url(#breeze-release-management-update-constraints-line-1)">breeze&#160;release-management&#160;update-constraints&#160;[</text><text class="breeze-release-management-update-constraints-r4" [...]
+</text><text class="breeze-release-management-update-constraints-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-2)">
+</text><text class="breeze-release-management-update-constraints-r2" x="12.2" y="93.2" textLength="585.6" clip-path="url(#breeze-release-management-update-constraints-line-3)">Update&#160;released&#160;constraints&#160;with&#160;manual&#160;changes.</text><text class="breeze-release-management-update-constraints-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-3)">
+</text><text class="breeze-release-management-update-constraints-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-4)">
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-release-management-update-constraints-line-5)">╭─</text><text class="breeze-release-management-update-constraints-r5" x="24.4" y="142" textLength="317.2" clip-path="url(#breeze-release-management-update-constraints-line-5)">&#160;Update&#160;constraints&#160;flags&#160;</text><text class="breeze-release-management-update-constraints-r5" x="341.6" y="142" textLength= [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-6)">│</text><text class="breeze-release-management-update-constraints-r6" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-6)">*</text><text class="breeze-release-management-update-constraints-r4" x="61" y="166.4" textLength="12.2" clip-path="url(#breeze-release-manage [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-7)">│</text><text class="breeze-release-management-update-constraints-r2" x="353.8" y="190.8" textLength="1085.8" clip-path="url(#breeze-release-management-update-constraints-line-7)">out.&#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-release-management-update-constraints-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-8)">│</text><text class="breeze-release-management-update-constraints-r7" x="353.8" y="215.2" textLength="1085.8" clip-path="url(#breeze-release-management-update-constraints-line-8)">(DIRECTORY)&#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-release-management-update-constraints-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-9)">│</text><text class="breeze-release-management-update-constraints-r8" x="353.8" y="239.6" textLength="1085.8" clip-path="url(#breeze-release-management-update-constraints-line-9)">[required]&#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-release-management-update-constraints-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-10)">│</text><text class="breeze-release-management-update-constraints-r4" x="61" y="264" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-10)">-</text><text class="breeze-release-management-update-constraints-r4" x="73.2" y="264" textLength="85.4" clip-path="url(#breeze-release-management [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-11)">│</text><text class="breeze-release-management-update-constraints-r6" x="24.4" y="288.4" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-11)">*</text><text class="breeze-release-management-update-constraints-r4" x="61" y="288.4" textLength="12.2" clip-path="url(#breeze-release-mana [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-12)">│</text><text class="breeze-release-management-update-constraints-r6" x="24.4" y="312.8" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-12)">*</text><text class="breeze-release-management-update-constraints-r4" x="61" y="312.8" textLength="12.2" clip-path="url(#breeze-release-mana [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-13)">│</text><text class="breeze-release-management-update-constraints-r6" x="24.4" y="337.2" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-13)">*</text><text class="breeze-release-management-update-constraints-r4" x="61" y="337.2" textLength="12.2" clip-path="url(#breeze-release-mana [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-14)">│</text><text class="breeze-release-management-update-constraints-r8" x="353.8" y="361.6" textLength="902.8" clip-path="url(#breeze-release-management-update-constraints-line-14)">[required]&#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-release-management-update-constraints-r5" x="0" y="386" textLength="1464" clip-path="url(#breeze-release-management-update-constraints-line-15)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-update-constraints-r2" x="1464" y="386" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-15)">
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="410.4" textLength="24.4" clip-path="url(#breeze-release-management-update-constraints-line-16)">╭─</text><text class="breeze-release-management-update-constraints-r5" x="24.4" y="410.4" textLength="195.2" clip-path="url(#breeze-release-management-update-constraints-line-16)">&#160;Common&#160;options&#160;</text><text class="breeze-release-management-update-constraints-r5" x="219.6" y="410.4" textLength="1220"  [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-17)">│</text><text class="breeze-release-management-update-constraints-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-17)">-</text><text class="breeze-release-management-update-constraints-r4" x="36.6" y="434.8" textLength="97.6" clip-path="url(#breeze-release-ma [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-18)">│</text><text class="breeze-release-management-update-constraints-r4" x="24.4" y="459.2" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-18)">-</text><text class="breeze-release-management-update-constraints-r4" x="36.6" y="459.2" textLength="48.8" clip-path="url(#breeze-release-ma [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-19)">│</text><text class="breeze-release-management-update-constraints-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-19)">-</text><text class="breeze-release-management-update-constraints-r4" x="36.6" y="483.6" textLength="85.4" clip-path="url(#breeze-release-ma [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-20)">│</text><text class="breeze-release-management-update-constraints-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-20)">-</text><text class="breeze-release-management-update-constraints-r4" x="36.6" y="508" textLength="61" clip-path="url(#breeze-release-management [...]
+</text><text class="breeze-release-management-update-constraints-r5" x="0" y="532.4" textLength="1464" clip-path="url(#breeze-release-management-update-constraints-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-update-constraints-r2" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-update-constraints-line-21)">
+</text>
+    </g>
+    </g>
+</svg>
diff --git a/images/breeze/output_sbom.svg b/images/breeze/output_sbom.svg
index 0f42e678c1..205f0fa242 100644
--- a/images/breeze/output_sbom.svg
+++ b/images/breeze/output_sbom.svg
@@ -35,8 +35,8 @@
     .breeze-sbom-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-sbom-r2 { fill: #c5c8c6 }
 .breeze-sbom-r3 { fill: #d0b344;font-weight: bold }
-.breeze-sbom-r4 { fill: #868887 }
-.breeze-sbom-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-sbom-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-sbom-r5 { fill: #868887 }
 .breeze-sbom-r6 { fill: #98a84b;font-weight: bold }
     </style>
 
@@ -90,17 +90,17 @@
     
     <g class="breeze-sbom-matrix">
     <text class="breeze-sbom-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-sbom-line-0)">
-</text><text class="breeze-sbom-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-sbom-line-1)">Usage:&#160;</text><text class="breeze-sbom-r1" x="97.6" y="44.4" textLength="475.8" clip-path="url(#breeze-sbom-line-1)">breeze&#160;sbom&#160;[OPTIONS]&#160;COMMAND&#160;[ARGS]...</text><text class="breeze-sbom-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-sbom-line-1)">
+</text><text class="breeze-sbom-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-sbom-line-1)">Usage:&#160;</text><text class="breeze-sbom-r1" x="97.6" y="44.4" textLength="158.6" clip-path="url(#breeze-sbom-line-1)">breeze&#160;sbom&#160;[</text><text class="breeze-sbom-r4" x="256.2" y="44.4" textLength="85.4" clip-path="url(#breeze-sbom-line-1)">OPTIONS</text><text class="breeze-sbom-r1" x="341.6" y="44.4" textLength="24.4" clip-path="url(#breeze-sbom-line-1)">]&#160;</te [...]
 </text><text class="breeze-sbom-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-sbom-line-2)">
 </text><text class="breeze-sbom-r2" x="12.2" y="93.2" textLength="768.6" clip-path="url(#breeze-sbom-line-3)">Tools&#160;that&#160;release&#160;managers&#160;can&#160;use&#160;to&#160;prepare&#160;sbom&#160;information</text><text class="breeze-sbom-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-sbom-line-3)">
 </text><text class="breeze-sbom-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-sbom-line-4)">
-</text><text class="breeze-sbom-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-sbom-line-5)">╭─</text><text class="breeze-sbom-r4" x="24.4" y="142" textLength="195.2" clip-path="url(#breeze-sbom-line-5)">&#160;Common&#160;options&#160;</text><text class="breeze-sbom-r4" x="219.6" y="142" textLength="1220" clip-path="url(#breeze-sbom-line-5)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbom-r4"  [...]
-</text><text class="breeze-sbom-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-line-6)">│</text><text class="breeze-sbom-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-line-6)">-</text><text class="breeze-sbom-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-sbom-line-6)">-help</text><text class="breeze-sbom-r6" x="122" y="166.4" textLength="24.4" clip-path="url(#breeze-sbom-line-6)">-h</text><text class="breeze-sbom-r2" x="170.8" y=" [...]
-</text><text class="breeze-sbom-r4" x="0" y="190.8" textLength="1464" clip-path="url(#breeze-sbom-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-r2" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-line-7)">
-</text><text class="breeze-sbom-r4" x="0" y="215.2" textLength="24.4" clip-path="url(#breeze-sbom-line-8)">╭─</text><text class="breeze-sbom-r4" x="24.4" y="215.2" textLength="183" clip-path="url(#breeze-sbom-line-8)">&#160;SBOM&#160;commands&#160;</text><text class="breeze-sbom-r4" x="207.4" y="215.2" textLength="1232.2" clip-path="url(#breeze-sbom-line-8)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbo [...]
-</text><text class="breeze-sbom-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-sbom-line-9)">│</text><text class="breeze-sbom-r5" x="24.4" y="239.6" textLength="536.8" clip-path="url(#breeze-sbom-line-9)">update-sbom-information&#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-sbom-r2" x="585.6" y="239.6" textLength="854" clip-path="url(#breeze-sbom-line-9)">Update&#160;SB [...]
-</text><text class="breeze-sbom-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-line-10)">│</text><text class="breeze-sbom-r5" x="24.4" y="264" textLength="536.8" clip-path="url(#breeze-sbom-line-10)">generate-provider-requirements&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-r2" x="585.6" y="264" textLength="854" clip-path="url(#breeze-sbom-line-10)">Generate&#160;requirements&#160;for&#160;selected&#1 [...]
-</text><text class="breeze-sbom-r4" x="0" y="288.4" textLength="1464" clip-path="url(#breeze-sbom-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-r2" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-line-11)">
+</text><text class="breeze-sbom-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-sbom-line-5)">╭─</text><text class="breeze-sbom-r5" x="24.4" y="142" textLength="195.2" clip-path="url(#breeze-sbom-line-5)">&#160;Common&#160;options&#160;</text><text class="breeze-sbom-r5" x="219.6" y="142" textLength="1220" clip-path="url(#breeze-sbom-line-5)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbom-r5"  [...]
+</text><text class="breeze-sbom-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-line-6)">│</text><text class="breeze-sbom-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-line-6)">-</text><text class="breeze-sbom-r4" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-sbom-line-6)">-help</text><text class="breeze-sbom-r6" x="122" y="166.4" textLength="24.4" clip-path="url(#breeze-sbom-line-6)">-h</text><text class="breeze-sbom-r2" x="170.8" y=" [...]
+</text><text class="breeze-sbom-r5" x="0" y="190.8" textLength="1464" clip-path="url(#breeze-sbom-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-r2" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-line-7)">
+</text><text class="breeze-sbom-r5" x="0" y="215.2" textLength="24.4" clip-path="url(#breeze-sbom-line-8)">╭─</text><text class="breeze-sbom-r5" x="24.4" y="215.2" textLength="183" clip-path="url(#breeze-sbom-line-8)">&#160;SBOM&#160;commands&#160;</text><text class="breeze-sbom-r5" x="207.4" y="215.2" textLength="1232.2" clip-path="url(#breeze-sbom-line-8)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class="breeze-sbo [...]
+</text><text class="breeze-sbom-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-sbom-line-9)">│</text><text class="breeze-sbom-r4" x="24.4" y="239.6" textLength="536.8" clip-path="url(#breeze-sbom-line-9)">update-sbom-information&#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-sbom-r2" x="585.6" y="239.6" textLength="85.4" clip-path="url(#breeze-sbom-line-9)">Update&#160;< [...]
+</text><text class="breeze-sbom-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-line-10)">│</text><text class="breeze-sbom-r4" x="24.4" y="264" textLength="536.8" clip-path="url(#breeze-sbom-line-10)">generate-provider-requirements&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-sbom-r2" x="585.6" y="264" textLength="854" clip-path="url(#breeze-sbom-line-10)">Generate&#160;requirements&#160;for&#160;selected&#1 [...]
+</text><text class="breeze-sbom-r5" x="0" y="288.4" textLength="1464" clip-path="url(#breeze-sbom-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-r2" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-line-11)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_sbom_generate-provider-requirements.svg b/images/breeze/output_sbom_generate-provider-requirements.svg
index 9dc8ae664a..66b8c6d01a 100644
--- a/images/breeze/output_sbom_generate-provider-requirements.svg
+++ b/images/breeze/output_sbom_generate-provider-requirements.svg
@@ -35,8 +35,8 @@
     .breeze-sbom-generate-provider-requirements-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-sbom-generate-provider-requirements-r2 { fill: #c5c8c6 }
 .breeze-sbom-generate-provider-requirements-r3 { fill: #d0b344;font-weight: bold }
-.breeze-sbom-generate-provider-requirements-r4 { fill: #868887 }
-.breeze-sbom-generate-provider-requirements-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-sbom-generate-provider-requirements-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-sbom-generate-provider-requirements-r5 { fill: #868887 }
 .breeze-sbom-generate-provider-requirements-r6 { fill: #8d7b39 }
 .breeze-sbom-generate-provider-requirements-r7 { fill: #cc555a }
 .breeze-sbom-generate-provider-requirements-r8 { fill: #8a4346 }
@@ -144,34 +144,34 @@
     
     <g class="breeze-sbom-generate-provider-requirements-matrix">
     <text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-0)">
-</text><text class="breeze-sbom-generate-provider-requirements-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-1)">Usage:&#160;</text><text class="breeze-sbom-generate-provider-requirements-r1" x="97.6" y="44.4" textLength="634.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-1)">breeze&#160;sbom&#160;generate-provider-requirements&#160;[OPTIONS]</text><text class="breeze-sbom-generate-provider-requirements-r2" x=" [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-1)">Usage:&#160;</text><text class="breeze-sbom-generate-provider-requirements-r1" x="97.6" y="44.4" textLength="536.8" clip-path="url(#breeze-sbom-generate-provider-requirements-line-1)">breeze&#160;sbom&#160;generate-provider-requirements&#160;[</text><text class="breeze-sbom-generate-provider-requirements-r4" x="634.4" y [...]
 </text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-2)">
 </text><text class="breeze-sbom-generate-provider-requirements-r2" x="12.2" y="93.2" textLength="536.8" clip-path="url(#breeze-sbom-generate-provider-requirements-line-3)">Generate&#160;requirements&#160;for&#160;selected&#160;provider.</text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-3)">
 </text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-4)">
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-5)">╭─</text><text class="breeze-sbom-generate-provider-requirements-r4" x="24.4" y="142" textLength="463.6" clip-path="url(#breeze-sbom-generate-provider-requirements-line-5)">&#160;Generate&#160;provider&#160;requirements&#160;flags&#160;</text><text class="breeze-sbom-generate-provider-requirements-r4" x="488" y="142" textLe [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-6)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="61" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-6)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="73.2" y="166.4" textLength="97.6" clip-path="url(#breeze-sbom-generate-provider-r [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-7)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="61" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-7)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="73.2" y="190.8" textLength="85.4" clip-path="url(#breeze-sbom-generate-provider-r [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-8)">│</text><text class="breeze-sbom-generate-provider-requirements-r7" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-8)">*</text><text class="breeze-sbom-generate-provider-requirements-r5" x="61" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-r [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-9)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="239.6" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-9)">(airbyte&#160;|&#160;alibaba&#160;|&#160;amazon&#160;|&#160;apache.beam&#160;|&#160;apache.cassandra&#160;|&#160;apache.drill&#160;|&#160;apache.dr [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-10)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="264" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-10)">|&#160;apache.flink&#160;|&#160;apache.hdfs&#160;|&#160;apache.hive&#160;|&#160;apache.impala&#160;|&#160;apache.kafka&#160;|&#160;apache.kylin&#160; [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-11)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="288.4" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-11)">apache.livy&#160;|&#160;apache.pig&#160;|&#160;apache.pinot&#160;|&#160;apache.spark&#160;|&#160;apache.sqoop&#160;|&#160;apprise&#160;|&#160;ara [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-12)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="312.8" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-12)">|&#160;asana&#160;|&#160;atlassian.jira&#160;|&#160;celery&#160;|&#160;cloudant&#160;|&#160;cncf.kubernetes&#160;|&#160;common.sql&#160;|&#160;da [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-13)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="337.2" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-13)">|&#160;databricks&#160;|&#160;datadog&#160;|&#160;dbt.cloud&#160;|&#160;dingding&#160;|&#160;discord&#160;|&#160;docker&#160;|&#160;elasticsearch [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-14)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="361.6" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-14)">facebook&#160;|&#160;ftp&#160;|&#160;github&#160;|&#160;google&#160;|&#160;grpc&#160;|&#160;hashicorp&#160;|&#160;http&#160;|&#160;imap&#160;|&#1 [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-15)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="386" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-15)">jenkins&#160;|&#160;microsoft.azure&#160;|&#160;microsoft.mssql&#160;|&#160;microsoft.psrp&#160;|&#160;microsoft.winrm&#160;|&#160;mongo&#160;|&#160; [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-16)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="410.4" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-16)">mysql&#160;|&#160;neo4j&#160;|&#160;odbc&#160;|&#160;openfaas&#160;|&#160;openlineage&#160;|&#160;opsgenie&#160;|&#160;oracle&#160;|&#160;pagerdu [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-17)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="434.8" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-17)">plexus&#160;|&#160;postgres&#160;|&#160;presto&#160;|&#160;qubole&#160;|&#160;redis&#160;|&#160;salesforce&#160;|&#160;samba&#160;|&#160;segment& [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-18)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="459.2" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-18)">sftp&#160;|&#160;singularity&#160;|&#160;slack&#160;|&#160;smtp&#160;|&#160;snowflake&#160;|&#160;sqlite&#160;|&#160;ssh&#160;|&#160;tableau&#160 [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-19)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="483.6" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-19)">|&#160;trino&#160;|&#160;vertica&#160;|&#160;zendesk)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-20)">│</text><text class="breeze-sbom-generate-provider-requirements-r8" x="329.4" y="508" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-20)">[required]&#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-sbom-generate-provider-requirements-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-21)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="61" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-21)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="73.2" y="532.4" textLength="109.8" clip-path="url(#breeze-sbom-generate-provide [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="556.8" textLength="1464" clip-path="url(#breeze-sbom-generate-provider-requirements-line-22)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-22)">
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="581.2" textLength="24.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-23)">╭─</text><text class="breeze-sbom-generate-provider-requirements-r4" x="24.4" y="581.2" textLength="195.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-23)">&#160;Common&#160;options&#160;</text><text class="breeze-sbom-generate-provider-requirements-r4" x="219.6" y="581.2" textLength="1220" clip-path= [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-24)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-24)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="36.6" y="605.6" textLength="97.6" clip-path="url(#breeze-sbom-generate-provid [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-25)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-25)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="36.6" y="630" textLength="48.8" clip-path="url(#breeze-sbom-generate-provider-req [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-26)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-26)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="36.6" y="654.4" textLength="85.4" clip-path="url(#breeze-sbom-generate-provid [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-27)">│</text><text class="breeze-sbom-generate-provider-requirements-r5" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-27)">-</text><text class="breeze-sbom-generate-provider-requirements-r5" x="36.6" y="678.8" textLength="61" clip-path="url(#breeze-sbom-generate-provider [...]
-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="0" y="703.2" textLength="1464" clip-path="url(#breeze-sbom-generate-provider-requirements-line-28)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-28)">
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-5)">╭─</text><text class="breeze-sbom-generate-provider-requirements-r5" x="24.4" y="142" textLength="463.6" clip-path="url(#breeze-sbom-generate-provider-requirements-line-5)">&#160;Generate&#160;provider&#160;requirements&#160;flags&#160;</text><text class="breeze-sbom-generate-provider-requirements-r5" x="488" y="142" textLe [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-6)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="61" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-6)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="73.2" y="166.4" textLength="97.6" clip-path="url(#breeze-sbom-generate-provider-r [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-7)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="61" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-7)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="73.2" y="190.8" textLength="85.4" clip-path="url(#breeze-sbom-generate-provider-r [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-8)">│</text><text class="breeze-sbom-generate-provider-requirements-r7" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-8)">*</text><text class="breeze-sbom-generate-provider-requirements-r4" x="61" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-r [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-9)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="239.6" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-9)">(airbyte&#160;|&#160;alibaba&#160;|&#160;amazon&#160;|&#160;apache.beam&#160;|&#160;apache.cassandra&#160;|&#160;apache.drill&#160;|&#160;apache.dr [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-10)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="264" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-10)">|&#160;apache.flink&#160;|&#160;apache.hdfs&#160;|&#160;apache.hive&#160;|&#160;apache.impala&#160;|&#160;apache.kafka&#160;|&#160;apache.kylin&#160; [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-11)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="288.4" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-11)">apache.livy&#160;|&#160;apache.pig&#160;|&#160;apache.pinot&#160;|&#160;apache.spark&#160;|&#160;apache.sqoop&#160;|&#160;apprise&#160;|&#160;ara [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-12)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="312.8" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-12)">|&#160;asana&#160;|&#160;atlassian.jira&#160;|&#160;celery&#160;|&#160;cloudant&#160;|&#160;cncf.kubernetes&#160;|&#160;common.sql&#160;|&#160;da [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-13)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="337.2" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-13)">|&#160;databricks&#160;|&#160;datadog&#160;|&#160;dbt.cloud&#160;|&#160;dingding&#160;|&#160;discord&#160;|&#160;docker&#160;|&#160;elasticsearch [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-14)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="361.6" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-14)">facebook&#160;|&#160;ftp&#160;|&#160;github&#160;|&#160;google&#160;|&#160;grpc&#160;|&#160;hashicorp&#160;|&#160;http&#160;|&#160;imap&#160;|&#1 [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-15)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="386" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-15)">jenkins&#160;|&#160;microsoft.azure&#160;|&#160;microsoft.mssql&#160;|&#160;microsoft.psrp&#160;|&#160;microsoft.winrm&#160;|&#160;mongo&#160;|&#160; [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-16)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="410.4" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-16)">mysql&#160;|&#160;neo4j&#160;|&#160;odbc&#160;|&#160;openfaas&#160;|&#160;openlineage&#160;|&#160;opsgenie&#160;|&#160;oracle&#160;|&#160;pagerdu [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-17)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="434.8" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-17)">plexus&#160;|&#160;postgres&#160;|&#160;presto&#160;|&#160;qubole&#160;|&#160;redis&#160;|&#160;salesforce&#160;|&#160;samba&#160;|&#160;segment& [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-18)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="459.2" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-18)">sftp&#160;|&#160;singularity&#160;|&#160;slack&#160;|&#160;smtp&#160;|&#160;snowflake&#160;|&#160;sqlite&#160;|&#160;ssh&#160;|&#160;tableau&#160 [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-19)">│</text><text class="breeze-sbom-generate-provider-requirements-r6" x="329.4" y="483.6" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-19)">|&#160;trino&#160;|&#160;vertica&#160;|&#160;zendesk)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-20)">│</text><text class="breeze-sbom-generate-provider-requirements-r8" x="329.4" y="508" textLength="1110.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-20)">[required]&#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-sbom-generate-provider-requirements-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-21)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="61" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-21)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="73.2" y="532.4" textLength="109.8" clip-path="url(#breeze-sbom-generate-provide [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="556.8" textLength="1464" clip-path="url(#breeze-sbom-generate-provider-requirements-line-22)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-22)">
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="581.2" textLength="24.4" clip-path="url(#breeze-sbom-generate-provider-requirements-line-23)">╭─</text><text class="breeze-sbom-generate-provider-requirements-r5" x="24.4" y="581.2" textLength="195.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-23)">&#160;Common&#160;options&#160;</text><text class="breeze-sbom-generate-provider-requirements-r5" x="219.6" y="581.2" textLength="1220" clip-path= [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-24)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-24)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="36.6" y="605.6" textLength="97.6" clip-path="url(#breeze-sbom-generate-provid [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-25)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-25)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="36.6" y="630" textLength="48.8" clip-path="url(#breeze-sbom-generate-provider-req [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-26)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-26)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="36.6" y="654.4" textLength="85.4" clip-path="url(#breeze-sbom-generate-provid [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-27)">│</text><text class="breeze-sbom-generate-provider-requirements-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-27)">-</text><text class="breeze-sbom-generate-provider-requirements-r4" x="36.6" y="678.8" textLength="61" clip-path="url(#breeze-sbom-generate-provider [...]
+</text><text class="breeze-sbom-generate-provider-requirements-r5" x="0" y="703.2" textLength="1464" clip-path="url(#breeze-sbom-generate-provider-requirements-line-28)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-provider-requirements-r2" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-provider-requirements-line-28)">
 </text>
     </g>
     </g>
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 d7a60d1a9b..84998f53f1 100644
--- a/images/breeze/output_setup_check-all-params-in-groups.svg
+++ b/images/breeze/output_setup_check-all-params-in-groups.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 782.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 806.4" xmlns="http://www.w3.org/2000/svg">
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-setup-check-all-params-in-groups-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="731.0" />
+      <rect x="0" y="0" width="1463.0" height="755.4" />
     </clipPath>
     <clipPath id="breeze-setup-check-all-params-in-groups-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -132,9 +132,12 @@
 <clipPath id="breeze-setup-check-all-params-in-groups-line-28">
     <rect x="0" y="684.7" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-setup-check-all-params-in-groups-line-29">
+    <rect x="0" y="709.1" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="780" rx="8"/><text class="breeze-setup-check-all-params-in-groups-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;setup&#160;check-all-params-in-groups</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="804.4" rx="8"/><text class="breeze-setup-check-all-params-in-groups-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command:&#160;setup&#160;check-all-params-in-groups</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -163,17 +166,18 @@
 </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-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="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: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="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: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="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:verify-provider-packages&#160;|&#160;release-management&#160;|&#160;sbom:generate-provider-requirements&#160;</text><text class="breeze-setu [...]
-</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)">|&#160;sbom:update-sbom-information&#160;|&#160;sbom&#160;|&#160;setup:autocomplete&#160;|&#160;setup:check-all-params-in-groups&#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)">setup:config&#160;|&#160;setup:regenerate-command-images&#160;|&#160;setup:self-upgrade&#160;|&#160;setup:version&#160;|&#160;setup&#160;|&#160;shell&#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)">start-airflow&#160;|&#160;static-checks&#160;|&#160;testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
-</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)">testing:integration-tests&#160;|&#160;testing:tests&#160;|&#160;testing)&#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="605.6" textLength="1464" clip-path="url(#breeze-setup-check-all-params-in-groups-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-setup-check-all-params-in-groups-r2" x="1464" 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-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">╭─</text><text class="breeze-setup-check-all-params-in-groups-r5" x="24.4" y="630" textLength="195.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">&#160;Common&#160;options&#160;</text><text class="breeze-setup-check-all-params-in-groups-r5" x="219.6" y="630" textLength="1220" clip-path="url(#breeze-setup-ch [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 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-r4" x="24.4" 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-r4" x="36.6" y="654.4" textLength="97.6" clip-path="url(#breeze-setup-check-all-params-in-groups-li [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-27)">│</text><text class="breeze-setup-check-all-params-in-groups-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-27)">-</text><text class="breeze-setup-check-all-params-in-groups-r4" x="36.6" y="678.8" textLength="48.8" clip-path="url(#breeze-setup-check-all-params-in-groups-li [...]
-</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="61" 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="727.6" textLength="1464" clip-path="url(#breeze-setup-check-all-params-in-groups-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-setup-check-all-params-in-groups-r2" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-29)">
+</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:update-constraints&#160;|&#160;release-management:verify-provider-packages&#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&#160;|&#160;sbom:generate-provider-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;sbom&#160;|&#160;&#160;&#160;&#160;&#160;&# [...]
+</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)">setup:autocomplete&#160;|&#160;setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;setup:regenerate-command-images&#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)">|&#160;setup:self-upgrade&#160;|&#160;setup:version&#160;|&#160;setup&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;static-checks&#160;|&#160;&#160;& [...]
+</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)">testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;testing:integration-tests&#160;|&#160;testing:tests&#160;|&#160;&#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)">testing)&#160;&#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-setup-check-all-params-in-groups-r5" x="0" y="630" textLength="1464" clip-path="url(#breeze-setup-check-all-params-in-groups-line-25)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-setup-check-all-params-in-groups-r2" x="1464" 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-r5" x="0" y="654.4" textLength="24.4" clip-path="url(#breeze-setup-check-all-params-in-groups-line-26)">╭─</text><text class="breeze-setup-check-all-params-in-groups-r5" x="24.4" y="654.4" textLength="195.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-26)">&#160;Common&#160;options&#160;</text><text class="breeze-setup-check-all-params-in-groups-r5" x="219.6" y="654.4" textLength="1220" clip-path="url(#breeze-se [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-27)">│</text><text class="breeze-setup-check-all-params-in-groups-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-27)">-</text><text class="breeze-setup-check-all-params-in-groups-r4" x="36.6" y="678.8" textLength="97.6" clip-path="url(#breeze-setup-check-all-params-in-groups-li [...]
+</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="48.8" clip-path="url(#breeze-setup-check-all-params-in-groups-li [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-29)">│</text><text class="breeze-setup-check-all-params-in-groups-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-29)">-</text><text class="breeze-setup-check-all-params-in-groups-r4" x="36.6" y="727.6" textLength="61" 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="752" textLength="1464" clip-path="url(#breeze-setup-check-all-params-in-groups-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-setup-check-all-params-in-groups-r2" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-30)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_setup_regenerate-command-images.svg b/images/breeze/output_setup_regenerate-command-images.svg
index a804b3d2f9..610ae7d02f 100644
--- a/images/breeze/output_setup_regenerate-command-images.svg
+++ b/images/breeze/output_setup_regenerate-command-images.svg
@@ -176,12 +176,12 @@
 </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-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="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: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="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:start-rc-process&#160;|&#160;release-management:start-release&#160;|&#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:verify-provider-packages&#160;|&#160;release-management&#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="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)">sbom:generate-provider-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;sbom&#160;|&#160;setup:autocomplete&#160;|&#160;&#160;&#160;&#160;</text>< [...]
-</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)">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="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: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="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)">testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;testing:integration-tests&#160;|&#160;testing:tests&#160;|&#160;&#160;&#160;&#160;&#160;</t [...]
-</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)&#160;&#160;&#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-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:update-constraints&#160;|&#160;release-management:verify-provider-packages&#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&#160;|&#160;sbom:generate-provider-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;sbom&#160;|&#160;&#160;&#160;&#160;</text>< [...]
+</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)">setup:autocomplete&#160;|&#160;setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</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:regenerate-command-images&#160;|&#160;setup:self-upgrade&#160;|&#160;setup:version&#160;|&#160;setup&#160;|&#160;shell&#160;|&#160;start-airflow</text><text  [...]
+</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)">|&#160;static-checks&#160;|&#160;testing:docker-compose-tests&#160;|&#160;testing:helm-tests&#160;|&#160;testing:integration-tests&#160;|&#160;&#160;&#160;</text>< [...]
+</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: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;&#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-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-26)">-</text><text class="breeze-setup-regenerate-command-images-r4" x="36.6" y="654.4" textLength="73.2" clip-path="url(#breeze-setup-regenerate-command-images-line-26) [...]
 </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-r2" x="219.6" y="678.8" textLength="170.8" clip-path="url(#breeze-setup-regenerate-command-images-line-27)">together&#160;with&#160;</text><text class="breeze-setup-regenerate-command-images-r4" x="390.4" y="678.8" textLength="12.2" clip-path="url(#breeze-setup-regenera [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="703.2" textLength="1464" clip-path="url(#breeze-setup-regenerate-command-images-line-28)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-setup-regenerate-command-images-r2" x="1464" y="703.2" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-28)">
diff --git a/images/breeze/output_static-checks.svg b/images/breeze/output_static-checks.svg
index 083d5f6681..1a19d59b1b 100644
--- a/images/breeze/output_static-checks.svg
+++ b/images/breeze/output_static-checks.svg
@@ -35,8 +35,8 @@
     .breeze-static-checks-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-static-checks-r2 { fill: #c5c8c6 }
 .breeze-static-checks-r3 { fill: #d0b344;font-weight: bold }
-.breeze-static-checks-r4 { fill: #868887 }
-.breeze-static-checks-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-static-checks-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-static-checks-r5 { fill: #868887 }
 .breeze-static-checks-r6 { fill: #98a84b;font-weight: bold }
 .breeze-static-checks-r7 { fill: #8d7b39 }
     </style>
@@ -280,80 +280,80 @@
     
     <g class="breeze-static-checks-matrix">
     <text class="breeze-static-checks-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-static-checks-line-0)">
-</text><text class="breeze-static-checks-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-static-checks-line-1)">Usage:&#160;</text><text class="breeze-static-checks-r1" x="97.6" y="44.4" textLength="610" clip-path="url(#breeze-static-checks-line-1)">breeze&#160;static-checks&#160;[OPTIONS]&#160;[PRECOMMIT_ARGS]...</text><text class="breeze-static-checks-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-1)">
+</text><text class="breeze-static-checks-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-static-checks-line-1)">Usage:&#160;</text><text class="breeze-static-checks-r1" x="97.6" y="44.4" textLength="268.4" clip-path="url(#breeze-static-checks-line-1)">breeze&#160;static-checks&#160;[</text><text class="breeze-static-checks-r4" x="366" y="44.4" textLength="85.4" clip-path="url(#breeze-static-checks-line-1)">OPTIONS</text><text class="breeze-static-checks-r1" x="451.4" y="44 [...]
 </text><text class="breeze-static-checks-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-2)">
 </text><text class="breeze-static-checks-r2" x="12.2" y="93.2" textLength="219.6" clip-path="url(#breeze-static-checks-line-3)">Run&#160;static&#160;checks.</text><text class="breeze-static-checks-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-3)">
 </text><text class="breeze-static-checks-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-4)">
-</text><text class="breeze-static-checks-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-static-checks-line-5)">╭─</text><text class="breeze-static-checks-r4" x="24.4" y="142" textLength="219.6" clip-path="url(#breeze-static-checks-line-5)">&#160;Pre-commit&#160;flags&#160;</text><text class="breeze-static-checks-r4" x="244" y="142" textLength="1195.6" clip-path="url(#breeze-static-checks-line-5)">──────────────────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-static-checks-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-6)">│</text><text class="breeze-static-checks-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-6)">-</text><text class="breeze-static-checks-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-static-checks-line-6)">-type</text><text class="breeze-static-checks-r6" x="402.6" y="166.4" textLength="24.4" clip-path="url(#breeze- [...]
-</text><text class="breeze-static-checks-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-7)">│</text><text class="breeze-static-checks-r7" x="451.4" y="190.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-7)">(all&#160;|&#160;black&#160;|&#160;blacken-docs&#160;|&#160;check-aiobotocore-optional&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tex [...]
-</text><text class="breeze-static-checks-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-8)">│</text><text class="breeze-static-checks-r7" x="451.4" y="215.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-8)">check-airflow-k8s-not-used&#160;|&#160;check-airflow-provider-compatibility&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="215.2" text [...]
-</text><text class="breeze-static-checks-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-9)">│</text><text class="breeze-static-checks-r7" x="451.4" y="239.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-9)">check-apache-license-rat&#160;|&#160;check-base-operator-partial-arguments&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="239.6" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-static-checks-line-10)">│</text><text class="breeze-static-checks-r7" x="451.4" y="264" textLength="988.2" clip-path="url(#breeze-static-checks-line-10)">check-base-operator-usage&#160;|&#160;check-boring-cyborg-configuration&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451 [...]
-</text><text class="breeze-static-checks-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-11)">│</text><text class="breeze-static-checks-r7" x="451.4" y="288.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-11)">check-breeze-top-dependencies-limited&#160;|&#160;check-builtin-literals&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451. [...]
-</text><text class="breeze-static-checks-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-12)">│</text><text class="breeze-static-checks-r7" x="451.4" y="312.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-12)">check-changelog-has-no-duplicates&#160;|&#160;check-cncf-k8s-only-for-executors&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="312.8" textLength="12.2" clip [...]
-</text><text class="breeze-static-checks-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-13)">│</text><text class="breeze-static-checks-r7" x="451.4" y="337.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-13)">check-core-deprecation-classes&#160;|&#160;check-daysago-import-from-utils&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="337. [...]
-</text><text class="breeze-static-checks-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-14)">│</text><text class="breeze-static-checks-r7" x="451.4" y="361.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-14)">check-decorated-operator-implements-custom-name&#160;|&#160;check-deferrable-default-value&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-14)">│</text [...]
-</text><text class="breeze-static-checks-r4" x="0" y="386" textLength="12.2" clip-path="url(#breeze-static-checks-line-15)">│</text><text class="breeze-static-checks-r7" x="451.4" y="386" textLength="988.2" clip-path="url(#breeze-static-checks-line-15)">|&#160;check-docstring-param-types&#160;|&#160;check-example-dags-urls&#160;|&#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 clas [...]
-</text><text class="breeze-static-checks-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-16)">│</text><text class="breeze-static-checks-r7" x="451.4" y="410.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-16)">check-executables-have-shebangs&#160;|&#160;check-extra-packages-references&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="410.4" te [...]
-</text><text class="breeze-static-checks-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-17)">│</text><text class="breeze-static-checks-r7" x="451.4" y="434.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-17)">check-extras-order&#160;|&#160;check-for-inclusive-language&#160;|&#160;check-hooks-apply&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="434.8" textLength=" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-18)">│</text><text class="breeze-static-checks-r7" x="451.4" y="459.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-18)">check-incorrect-use-of-LoggingMixin&#160;|&#160;check-init-decorator-arguments&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="459.2" textLength="12.2" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-19)">│</text><text class="breeze-static-checks-r7" x="451.4" y="483.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-19)">check-lazy-logging&#160;|&#160;check-links-to-example-dags-do-not-use-hardcoded-versions&#160;|&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-19)">│< [...]
-</text><text class="breeze-static-checks-r4" x="0" y="508" textLength="12.2" clip-path="url(#breeze-static-checks-line-20)">│</text><text class="breeze-static-checks-r7" x="451.4" y="508" textLength="988.2" clip-path="url(#breeze-static-checks-line-20)">check-merge-conflict&#160;|&#160;check-newsfragments-are-valid&#160;|&#160;&#160;&#160;&#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><text class="breeze-static-checks-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-21)">│</text><text class="breeze-static-checks-r7" x="451.4" y="532.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-21)">check-no-airflow-deprecation-in-providers&#160;|&#160;check-no-providers-in-core-examples&#160;|</text><text class="breeze-static-checks-r4" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-21)">│</text [...]
-</text><text class="breeze-static-checks-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-22)">│</text><text class="breeze-static-checks-r7" x="451.4" y="556.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-22)">check-no-relative-imports&#160;|&#160;check-only-new-session-with-provide-session&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="556.8" textLength="12.2" clip-path="url [...]
-</text><text class="breeze-static-checks-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-23)">│</text><text class="breeze-static-checks-r7" x="451.4" y="581.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-23)">check-persist-credentials-disabled-in-github-workflows&#160;|&#160;&#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="bre [...]
-</text><text class="breeze-static-checks-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-24)">│</text><text class="breeze-static-checks-r7" x="451.4" y="605.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-24)">check-pre-commit-information-consistent&#160;|&#160;check-provide-create-sessions-imports&#160;|</text><text class="breeze-static-checks-r4" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-24)">│</text [...]
-</text><text class="breeze-static-checks-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-static-checks-line-25)">│</text><text class="breeze-static-checks-r7" x="451.4" y="630" textLength="988.2" clip-path="url(#breeze-static-checks-line-25)">check-provider-yaml-valid&#160;|&#160;check-providers-init-file-missing&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451 [...]
-</text><text class="breeze-static-checks-r4" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-26)">│</text><text class="breeze-static-checks-r7" x="451.4" y="654.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-26)">check-providers-subpackages-init-file-exist&#160;|&#160;check-pydevd-left-in-code&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="654.4" textLength="12.2" clip-path="url [...]
-</text><text class="breeze-static-checks-r4" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-27)">│</text><text class="breeze-static-checks-r7" x="451.4" y="678.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-27)">check-revision-heads-map&#160;|&#160;check-safe-filter-usage-in-html&#160;|&#160;check-setup-order&#160;|&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#breeze-static-checks-li [...]
-</text><text class="breeze-static-checks-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-28)">│</text><text class="breeze-static-checks-r7" x="451.4" y="703.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-28)">check-start-date-not-used-in-defaults&#160;|&#160;check-system-tests-present&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="703.2" textLen [...]
-</text><text class="breeze-static-checks-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-29)">│</text><text class="breeze-static-checks-r7" x="451.4" y="727.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-29)">check-system-tests-tocs&#160;|&#160;check-tests-unittest-testcase&#160;|&#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 [...]
-</text><text class="breeze-static-checks-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-static-checks-line-30)">│</text><text class="breeze-static-checks-r7" x="451.4" y="752" textLength="988.2" clip-path="url(#breeze-static-checks-line-30)">check-urlparse-usage-in-code&#160;|&#160;check-usage-of-re2-over-re&#160;|&#160;check-xml&#160;|&#160;codespell</text><text class="breeze-static-checks-r4" x="1451.8" y="752" textLength="12.2" clip-path="url(#breeze-static-checks-line-30) [...]
-</text><text class="breeze-static-checks-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-31)">│</text><text class="breeze-static-checks-r7" x="451.4" y="776.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-31)">|&#160;compile-www-assets&#160;|&#160;compile-www-assets-dev&#160;|&#160;&#160;&#160;&#160;&#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-static-checks-r4" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-32)">│</text><text class="breeze-static-checks-r7" x="451.4" y="800.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-32)">create-missing-init-py-files-tests&#160;|&#160;debug-statements&#160;|&#160;detect-private-key&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#bre [...]
-</text><text class="breeze-static-checks-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-33)">│</text><text class="breeze-static-checks-r7" x="451.4" y="825.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-33)">doctoc&#160;|&#160;end-of-file-fixer&#160;|&#160;fix-encoding-pragma&#160;|&#160;flynt&#160;|&#160;identity&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x=" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-34)">│</text><text class="breeze-static-checks-r7" x="451.4" y="849.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-34)">insert-license&#160;|&#160;lint-chart-schema&#160;|&#160;lint-css&#160;|&#160;lint-dockerfile&#160;|&#160;lint-helm-chart</text><text class="breeze-static-checks-r4" x="1451.8" y="849.6" textLength="12.2" clip-path="url(#breeze-static [...]
-</text><text class="breeze-static-checks-r4" x="0" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">│</text><text class="breeze-static-checks-r7" x="451.4" y="874" textLength="988.2" clip-path="url(#breeze-static-checks-line-35)">|&#160;lint-json-schema&#160;|&#160;lint-markdown&#160;|&#160;lint-openapi&#160;|&#160;mixed-line-ending&#160;|&#160;mypy-core</text><text class="breeze-static-checks-r4" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-static- [...]
-</text><text class="breeze-static-checks-r4" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">│</text><text class="breeze-static-checks-r7" x="451.4" y="898.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-36)">|&#160;mypy-dev&#160;|&#160;mypy-docs&#160;|&#160;mypy-providers&#160;|&#160;pretty-format-json&#160;|&#160;python-no-log-warn</text><text class="breeze-static-checks-r4" x="1451.8" y="898.4" textLength="12.2" clip-path="url(#breeze-s [...]
-</text><text class="breeze-static-checks-r4" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">│</text><text class="breeze-static-checks-r7" x="451.4" y="922.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-37)">|&#160;replace-bad-characters&#160;|&#160;rst-backticks&#160;|&#160;ruff&#160;|&#160;shellcheck&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class [...]
-</text><text class="breeze-static-checks-r4" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">│</text><text class="breeze-static-checks-r7" x="451.4" y="947.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-38)">trailing-whitespace&#160;|&#160;ts-compile-format-lint-www&#160;|&#160;update-black-version&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="947.2" textLength="12.2" clip [...]
-</text><text class="breeze-static-checks-r4" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">│</text><text class="breeze-static-checks-r7" x="451.4" y="971.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-39)">update-breeze-cmd-output&#160;|&#160;update-breeze-readme-config-hash&#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-static-chec [...]
-</text><text class="breeze-static-checks-r4" x="0" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">│</text><text class="breeze-static-checks-r7" x="451.4" y="996" textLength="988.2" clip-path="url(#breeze-static-checks-line-40)">update-common-sql-api-stubs&#160;|&#160;update-er-diagram&#160;|&#160;update-extras&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451 [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1020.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-41)">update-in-the-wild-to-be-sorted&#160;|&#160;update-inlined-dockerfile-scripts&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="1020.4" textLengt [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1044.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-42)">update-installed-providers-to-be-sorted&#160;|&#160;update-local-yml-file&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8"  [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1069.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-43)">update-migration-references&#160;|&#160;update-providers-dependencies&#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-static-ch [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1093.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-44)">update-spelling-wordlist-to-be-sorted&#160;|&#160;update-supported-versions&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4" x="1451.8" y="1093.6" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1118" textLength="988.2" clip-path="url(#breeze-static-checks-line-45)">update-vendored-in-k8s-json-schema&#160;|&#160;update-version&#160;|&#160;yamllint)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r4"  [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1142.4" textLength="61" clip-path="url(#breeze-static-checks-line-46)">-show</text><text class="breeze-static-checks-r5" x="97.6" y="1142.4" textLength="195.2" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1166.8" textLength="134.2" clip-path="url(#breeze-static-checks-line-47)">-initialize</text><text class="breeze-static-checks-r5" x="170.8" y="1166.8" textLength="146.4" clip-p [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1191.2" textLength="48.8" clip-path="url(#breeze-static-checks-line-48)">-max</text><text class="breeze-static-checks-r5" x="85.4" y="1191.2" textLength="292.8" clip-path="url( [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1215.6" textLength="854" clip-path="url(#breeze-static-checks-line-49)">(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;&#16 [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">│</text><text class="breeze-static-checks-r4" x="451.4" y="1240" textLength="854" clip-path="url(#breeze-static-checks-line-50)">[default:&#160;3;&#160;1&lt;=x&lt;=10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1264.4" textLength="1464" clip-path="url(#breeze-static-checks-line-51)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">
-</text><text class="breeze-static-checks-r4" x="0" y="1288.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-52)">╭─</text><text class="breeze-static-checks-r4" x="24.4" y="1288.8" textLength="463.6" clip-path="url(#breeze-static-checks-line-52)">&#160;Selecting&#160;files&#160;to&#160;run&#160;the&#160;checks&#160;on&#160;</text><text class="breeze-static-checks-r4" x="488" y="1288.8" textLength="951.6" clip-path="url(#breeze-static-checks-line-52)">──────────────────────── [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1313.2" textLength="61" clip-path="url(#breeze-static-checks-line-53)">-file</text><text class="breeze-static-checks-r6" x="256.2" y="1313.2" textLength="24.4" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1337.6" textLength="48.8" clip-path="url(#breeze-static-checks-line-54)">-all</text><text class="breeze-static-checks-r5" x="85.4" y="1337.6" textLength="73.2" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-static-checks-line-55)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-static-checks-line-55)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1362" textLength="85.4" clip-path="url(#breeze-static-checks-line-55)">-commit</text><text class="breeze-static-checks-r5" x="122" y="1362" textLength="48.8" clip-path="url(#breeze [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">│</text><text class="breeze-static-checks-r2" x="305" y="1386.4" textLength="183" clip-path="url(#breeze-static-checks-line-56)">exclusive&#160;with&#160;</text><text class="breeze-static-checks-r5" x="488" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">-</text><text class="breeze-static-checks-r5" x="500.2" y="1386.4" textLength="61" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">│</text><text class="breeze-static-checks-r7" x="305" y="1410.8" textLength="1134.6" clip-path="url(#breeze-static-checks-line-57)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1435.2" textLength="61" clip-path="url(#breeze-static-checks-line-58)">-last</text><text class="breeze-static-checks-r5" x="97.6" y="1435.2" textLength="85.4" clip-path="url(#b [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1459.6" textLength="61" clip-path="url(#breeze-static-checks-line-59)">-only</text><text class="breeze-static-checks-r5" x="97.6" y="1459.6" textLength="134.2" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">│</text><text class="breeze-static-checks-r2" x="305" y="1484" textLength="1134.6" clip-path="url(#breeze-static-checks-line-60)">branch&#160;and&#160;HEAD&#160;of&#160;your&#160;branch.&#160;&#160;&#160;&#160;&#160;&#160;&#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-static-checks-r4" x="0" y="1508.4" textLength="1464" clip-path="url(#breeze-static-checks-line-61)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">
-</text><text class="breeze-static-checks-r4" x="0" y="1532.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-62)">╭─</text><text class="breeze-static-checks-r4" x="24.4" y="1532.8" textLength="463.6" clip-path="url(#breeze-static-checks-line-62)">&#160;Building&#160;image&#160;before&#160;running&#160;checks&#160;</text><text class="breeze-static-checks-r4" x="488" y="1532.8" textLength="951.6" clip-path="url(#breeze-static-checks-line-62)">────────────────────────────────── [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1557.2" textLength="61" clip-path="url(#breeze-static-checks-line-63)">-skip</text><text class="breeze-static-checks-r5" x="97.6" y="1557.2" textLength="146.4" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1581.6" textLength="73.2" clip-path="url(#breeze-static-checks-line-64)">-force</text><text class="breeze-static-checks-r5" x="109.8" y="1581.6" textLength="73.2" clip-path="ur [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-static-checks-line-65)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1606" textLength="12.2" clip-path="url(#breeze-static-checks-line-65)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1606" textLength="73.2" clip-path="url(#breeze-static-checks-line-65)">-image</text><text class="breeze-static-checks-r5" x="109.8" y="1606" textLength="48.8" clip-path="url(#breez [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">│</text><text class="breeze-static-checks-r4" x="329.4" y="1630.4" textLength="963.8" clip-path="url(#breeze-static-checks-line-66)">[default:&#160;latest]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-static-checks-r4" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1654.8" textLength="85.4" clip-path="url(#breeze-static-checks-line-67)">-github</text><text class="breeze-static-checks-r5" x="122" y="1654.8" textLength="134.2" clip-path="ur [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1679.2" textLength="97.6" clip-path="url(#breeze-static-checks-line-68)">-builder</text><text class="breeze-static-checks-r2" x="329.4" y="1679.2" textLength="756.4" clip-path= [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1703.6" textLength="1464" clip-path="url(#breeze-static-checks-line-69)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">
-</text><text class="breeze-static-checks-r4" x="0" y="1728" textLength="24.4" clip-path="url(#breeze-static-checks-line-70)">╭─</text><text class="breeze-static-checks-r4" x="24.4" y="1728" textLength="195.2" clip-path="url(#breeze-static-checks-line-70)">&#160;Common&#160;options&#160;</text><text class="breeze-static-checks-r4" x="219.6" y="1728" textLength="1220" clip-path="url(#breeze-static-checks-line-70)">──────────────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1752.4" textLength="97.6" clip-path="url(#breeze-static-checks-line-71)">-verbose</text><text class="breeze-static-checks-r6" x="158.6" y="1752.4" textLength="24.4" clip-path=" [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1776.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-72)">-dry</text><text class="breeze-static-checks-r5" x="85.4" y="1776.8" textLength="48.8" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">│</text><text class="breeze-static-checks-r5" x="24.4" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">-</text><text class="breeze-static-checks-r5" x="36.6" y="1801.2" textLength="61" clip-path="url(#breeze-static-checks-line-73)">-help</text><text class="breeze-static-checks-r6" x="158.6" y="1801.2" textLength="24.4" clip-path="url(# [...]
-</text><text class="breeze-static-checks-r4" x="0" y="1825.6" textLength="1464" clip-path="url(#breeze-static-checks-line-74)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1825.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-74)">
+</text><text class="breeze-static-checks-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-static-checks-line-5)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="142" textLength="219.6" clip-path="url(#breeze-static-checks-line-5)">&#160;Pre-commit&#160;flags&#160;</text><text class="breeze-static-checks-r5" x="244" y="142" textLength="1195.6" clip-path="url(#breeze-static-checks-line-5)">──────────────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-static-checks-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-6)">│</text><text class="breeze-static-checks-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-6)">-</text><text class="breeze-static-checks-r4" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-static-checks-line-6)">-type</text><text class="breeze-static-checks-r6" x="402.6" y="166.4" textLength="24.4" clip-path="url(#breeze- [...]
+</text><text class="breeze-static-checks-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-7)">│</text><text class="breeze-static-checks-r7" x="451.4" y="190.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-7)">(all&#160;|&#160;black&#160;|&#160;blacken-docs&#160;|&#160;check-aiobotocore-optional&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</tex [...]
+</text><text class="breeze-static-checks-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-8)">│</text><text class="breeze-static-checks-r7" x="451.4" y="215.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-8)">check-airflow-k8s-not-used&#160;|&#160;check-airflow-provider-compatibility&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="215.2" text [...]
+</text><text class="breeze-static-checks-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-9)">│</text><text class="breeze-static-checks-r7" x="451.4" y="239.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-9)">check-apache-license-rat&#160;|&#160;check-base-operator-partial-arguments&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="239.6" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-static-checks-line-10)">│</text><text class="breeze-static-checks-r7" x="451.4" y="264" textLength="988.2" clip-path="url(#breeze-static-checks-line-10)">check-base-operator-usage&#160;|&#160;check-boring-cyborg-configuration&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451 [...]
+</text><text class="breeze-static-checks-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-11)">│</text><text class="breeze-static-checks-r7" x="451.4" y="288.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-11)">check-breeze-top-dependencies-limited&#160;|&#160;check-builtin-literals&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451. [...]
+</text><text class="breeze-static-checks-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-12)">│</text><text class="breeze-static-checks-r7" x="451.4" y="312.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-12)">check-changelog-has-no-duplicates&#160;|&#160;check-cncf-k8s-only-for-executors&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="312.8" textLength="12.2" clip [...]
+</text><text class="breeze-static-checks-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-13)">│</text><text class="breeze-static-checks-r7" x="451.4" y="337.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-13)">check-core-deprecation-classes&#160;|&#160;check-daysago-import-from-utils&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="337. [...]
+</text><text class="breeze-static-checks-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-14)">│</text><text class="breeze-static-checks-r7" x="451.4" y="361.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-14)">check-decorated-operator-implements-custom-name&#160;|&#160;check-deferrable-default-value&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="361.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-14)">│</text [...]
+</text><text class="breeze-static-checks-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-static-checks-line-15)">│</text><text class="breeze-static-checks-r7" x="451.4" y="386" textLength="988.2" clip-path="url(#breeze-static-checks-line-15)">|&#160;check-docstring-param-types&#160;|&#160;check-example-dags-urls&#160;|&#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 clas [...]
+</text><text class="breeze-static-checks-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-16)">│</text><text class="breeze-static-checks-r7" x="451.4" y="410.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-16)">check-executables-have-shebangs&#160;|&#160;check-extra-packages-references&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="410.4" te [...]
+</text><text class="breeze-static-checks-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-17)">│</text><text class="breeze-static-checks-r7" x="451.4" y="434.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-17)">check-extras-order&#160;|&#160;check-for-inclusive-language&#160;|&#160;check-hooks-apply&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="434.8" textLength=" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-18)">│</text><text class="breeze-static-checks-r7" x="451.4" y="459.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-18)">check-incorrect-use-of-LoggingMixin&#160;|&#160;check-init-decorator-arguments&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="459.2" textLength="12.2" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-19)">│</text><text class="breeze-static-checks-r7" x="451.4" y="483.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-19)">check-lazy-logging&#160;|&#160;check-links-to-example-dags-do-not-use-hardcoded-versions&#160;|&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="483.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-19)">│< [...]
+</text><text class="breeze-static-checks-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-static-checks-line-20)">│</text><text class="breeze-static-checks-r7" x="451.4" y="508" textLength="988.2" clip-path="url(#breeze-static-checks-line-20)">check-merge-conflict&#160;|&#160;check-newsfragments-are-valid&#160;|&#160;&#160;&#160;&#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><text class="breeze-static-checks-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-21)">│</text><text class="breeze-static-checks-r7" x="451.4" y="532.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-21)">check-no-airflow-deprecation-in-providers&#160;|&#160;check-no-providers-in-core-examples&#160;|</text><text class="breeze-static-checks-r5" x="1451.8" y="532.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-21)">│</text [...]
+</text><text class="breeze-static-checks-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-22)">│</text><text class="breeze-static-checks-r7" x="451.4" y="556.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-22)">check-no-relative-imports&#160;|&#160;check-only-new-session-with-provide-session&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="556.8" textLength="12.2" clip-path="url [...]
+</text><text class="breeze-static-checks-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-23)">│</text><text class="breeze-static-checks-r7" x="451.4" y="581.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-23)">check-persist-credentials-disabled-in-github-workflows&#160;|&#160;&#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="bre [...]
+</text><text class="breeze-static-checks-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-24)">│</text><text class="breeze-static-checks-r7" x="451.4" y="605.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-24)">check-pre-commit-information-consistent&#160;|&#160;check-provide-create-sessions-imports&#160;|</text><text class="breeze-static-checks-r5" x="1451.8" y="605.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-24)">│</text [...]
+</text><text class="breeze-static-checks-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-static-checks-line-25)">│</text><text class="breeze-static-checks-r7" x="451.4" y="630" textLength="988.2" clip-path="url(#breeze-static-checks-line-25)">check-provider-yaml-valid&#160;|&#160;check-providers-init-file-missing&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451 [...]
+</text><text class="breeze-static-checks-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-26)">│</text><text class="breeze-static-checks-r7" x="451.4" y="654.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-26)">check-providers-subpackages-init-file-exist&#160;|&#160;check-pydevd-left-in-code&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="654.4" textLength="12.2" clip-path="url [...]
+</text><text class="breeze-static-checks-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-27)">│</text><text class="breeze-static-checks-r7" x="451.4" y="678.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-27)">check-revision-heads-map&#160;|&#160;check-safe-filter-usage-in-html&#160;|&#160;check-setup-order&#160;|&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="678.8" textLength="12.2" clip-path="url(#breeze-static-checks-li [...]
+</text><text class="breeze-static-checks-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-28)">│</text><text class="breeze-static-checks-r7" x="451.4" y="703.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-28)">check-start-date-not-used-in-defaults&#160;|&#160;check-system-tests-present&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="703.2" textLen [...]
+</text><text class="breeze-static-checks-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-29)">│</text><text class="breeze-static-checks-r7" x="451.4" y="727.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-29)">check-system-tests-tocs&#160;|&#160;check-tests-unittest-testcase&#160;|&#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 [...]
+</text><text class="breeze-static-checks-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-static-checks-line-30)">│</text><text class="breeze-static-checks-r7" x="451.4" y="752" textLength="988.2" clip-path="url(#breeze-static-checks-line-30)">check-urlparse-usage-in-code&#160;|&#160;check-usage-of-re2-over-re&#160;|&#160;check-xml&#160;|&#160;codespell</text><text class="breeze-static-checks-r5" x="1451.8" y="752" textLength="12.2" clip-path="url(#breeze-static-checks-line-30) [...]
+</text><text class="breeze-static-checks-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-31)">│</text><text class="breeze-static-checks-r7" x="451.4" y="776.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-31)">|&#160;compile-www-assets&#160;|&#160;compile-www-assets-dev&#160;|&#160;&#160;&#160;&#160;&#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-static-checks-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-32)">│</text><text class="breeze-static-checks-r7" x="451.4" y="800.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-32)">create-missing-init-py-files-tests&#160;|&#160;debug-statements&#160;|&#160;detect-private-key&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url(#bre [...]
+</text><text class="breeze-static-checks-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-33)">│</text><text class="breeze-static-checks-r7" x="451.4" y="825.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-33)">doctoc&#160;|&#160;end-of-file-fixer&#160;|&#160;fix-encoding-pragma&#160;|&#160;flynt&#160;|&#160;identity&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x=" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-34)">│</text><text class="breeze-static-checks-r7" x="451.4" y="849.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-34)">insert-license&#160;|&#160;lint-chart-schema&#160;|&#160;lint-css&#160;|&#160;lint-dockerfile&#160;|&#160;lint-helm-chart</text><text class="breeze-static-checks-r5" x="1451.8" y="849.6" textLength="12.2" clip-path="url(#breeze-static [...]
+</text><text class="breeze-static-checks-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-static-checks-line-35)">│</text><text class="breeze-static-checks-r7" x="451.4" y="874" textLength="988.2" clip-path="url(#breeze-static-checks-line-35)">|&#160;lint-json-schema&#160;|&#160;lint-markdown&#160;|&#160;lint-openapi&#160;|&#160;mixed-line-ending&#160;|&#160;mypy-core</text><text class="breeze-static-checks-r5" x="1451.8" y="874" textLength="12.2" clip-path="url(#breeze-static- [...]
+</text><text class="breeze-static-checks-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-36)">│</text><text class="breeze-static-checks-r7" x="451.4" y="898.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-36)">|&#160;mypy-dev&#160;|&#160;mypy-docs&#160;|&#160;mypy-providers&#160;|&#160;pretty-format-json&#160;|&#160;python-no-log-warn</text><text class="breeze-static-checks-r5" x="1451.8" y="898.4" textLength="12.2" clip-path="url(#breeze-s [...]
+</text><text class="breeze-static-checks-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-37)">│</text><text class="breeze-static-checks-r7" x="451.4" y="922.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-37)">|&#160;replace-bad-characters&#160;|&#160;rst-backticks&#160;|&#160;ruff&#160;|&#160;shellcheck&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class [...]
+</text><text class="breeze-static-checks-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-38)">│</text><text class="breeze-static-checks-r7" x="451.4" y="947.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-38)">trailing-whitespace&#160;|&#160;ts-compile-format-lint-www&#160;|&#160;update-black-version&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="947.2" textLength="12.2" clip [...]
+</text><text class="breeze-static-checks-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-39)">│</text><text class="breeze-static-checks-r7" x="451.4" y="971.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-39)">update-breeze-cmd-output&#160;|&#160;update-breeze-readme-config-hash&#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-static-chec [...]
+</text><text class="breeze-static-checks-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-static-checks-line-40)">│</text><text class="breeze-static-checks-r7" x="451.4" y="996" textLength="988.2" clip-path="url(#breeze-static-checks-line-40)">update-common-sql-api-stubs&#160;|&#160;update-er-diagram&#160;|&#160;update-extras&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451 [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-41)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1020.4" textLength="988.2" clip-path="url(#breeze-static-checks-line-41)">update-in-the-wild-to-be-sorted&#160;|&#160;update-inlined-dockerfile-scripts&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1020.4" textLengt [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-42)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1044.8" textLength="988.2" clip-path="url(#breeze-static-checks-line-42)">update-installed-providers-to-be-sorted&#160;|&#160;update-local-yml-file&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8"  [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-43)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1069.2" textLength="988.2" clip-path="url(#breeze-static-checks-line-43)">update-migration-references&#160;|&#160;update-providers-dependencies&#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-static-ch [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-44)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1093.6" textLength="988.2" clip-path="url(#breeze-static-checks-line-44)">update-spelling-wordlist-to-be-sorted&#160;|&#160;update-supported-versions&#160;|&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5" x="1451.8" y="1093.6" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-static-checks-line-45)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1118" textLength="988.2" clip-path="url(#breeze-static-checks-line-45)">update-vendored-in-k8s-json-schema&#160;|&#160;update-version&#160;|&#160;yamllint)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-static-checks-r5"  [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-46)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1142.4" textLength="61" clip-path="url(#breeze-static-checks-line-46)">-show</text><text class="breeze-static-checks-r4" x="97.6" y="1142.4" textLength="195.2" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1166.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-47)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1166.8" textLength="134.2" clip-path="url(#breeze-static-checks-line-47)">-initialize</text><text class="breeze-static-checks-r4" x="170.8" y="1166.8" textLength="146.4" clip-p [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1191.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-48)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1191.2" textLength="48.8" clip-path="url(#breeze-static-checks-line-48)">-max</text><text class="breeze-static-checks-r4" x="85.4" y="1191.2" textLength="292.8" clip-path="url( [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-49)">│</text><text class="breeze-static-checks-r7" x="451.4" y="1215.6" textLength="854" clip-path="url(#breeze-static-checks-line-49)">(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;&#16 [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-static-checks-line-50)">│</text><text class="breeze-static-checks-r5" x="451.4" y="1240" textLength="854" clip-path="url(#breeze-static-checks-line-50)">[default:&#160;3;&#160;1&lt;=x&lt;=10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1264.4" textLength="1464" clip-path="url(#breeze-static-checks-line-51)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1264.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-51)">
+</text><text class="breeze-static-checks-r5" x="0" y="1288.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-52)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1288.8" textLength="463.6" clip-path="url(#breeze-static-checks-line-52)">&#160;Selecting&#160;files&#160;to&#160;run&#160;the&#160;checks&#160;on&#160;</text><text class="breeze-static-checks-r5" x="488" y="1288.8" textLength="951.6" clip-path="url(#breeze-static-checks-line-52)">──────────────────────── [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1313.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-53)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1313.2" textLength="61" clip-path="url(#breeze-static-checks-line-53)">-file</text><text class="breeze-static-checks-r6" x="256.2" y="1313.2" textLength="24.4" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1337.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-54)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1337.6" textLength="48.8" clip-path="url(#breeze-static-checks-line-54)">-all</text><text class="breeze-static-checks-r4" x="85.4" y="1337.6" textLength="73.2" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-static-checks-line-55)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-static-checks-line-55)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1362" textLength="85.4" clip-path="url(#breeze-static-checks-line-55)">-commit</text><text class="breeze-static-checks-r4" x="122" y="1362" textLength="48.8" clip-path="url(#breeze [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">│</text><text class="breeze-static-checks-r2" x="305" y="1386.4" textLength="183" clip-path="url(#breeze-static-checks-line-56)">exclusive&#160;with&#160;</text><text class="breeze-static-checks-r4" x="488" y="1386.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-56)">-</text><text class="breeze-static-checks-r4" x="500.2" y="1386.4" textLength="61" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-57)">│</text><text class="breeze-static-checks-r7" x="305" y="1410.8" textLength="1134.6" clip-path="url(#breeze-static-checks-line-57)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160 [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1435.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-58)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1435.2" textLength="61" clip-path="url(#breeze-static-checks-line-58)">-last</text><text class="breeze-static-checks-r4" x="97.6" y="1435.2" textLength="85.4" clip-path="url(#b [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1459.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-59)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1459.6" textLength="61" clip-path="url(#breeze-static-checks-line-59)">-only</text><text class="breeze-static-checks-r4" x="97.6" y="1459.6" textLength="134.2" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-static-checks-line-60)">│</text><text class="breeze-static-checks-r2" x="305" y="1484" textLength="134.2" clip-path="url(#breeze-static-checks-line-60)">branch&#160;and&#160;</text><text class="breeze-static-checks-r4" x="439.2" y="1484" textLength="48.8" clip-path="url(#breeze-static-checks-line-60)">HEAD</text><text class="breeze-static-checks-r2" x="488" y="1484" textLength="951.6" cli [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1508.4" textLength="1464" clip-path="url(#breeze-static-checks-line-61)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1508.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-61)">
+</text><text class="breeze-static-checks-r5" x="0" y="1532.8" textLength="24.4" clip-path="url(#breeze-static-checks-line-62)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1532.8" textLength="463.6" clip-path="url(#breeze-static-checks-line-62)">&#160;Building&#160;image&#160;before&#160;running&#160;checks&#160;</text><text class="breeze-static-checks-r5" x="488" y="1532.8" textLength="951.6" clip-path="url(#breeze-static-checks-line-62)">────────────────────────────────── [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1557.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-63)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1557.2" textLength="61" clip-path="url(#breeze-static-checks-line-63)">-skip</text><text class="breeze-static-checks-r4" x="97.6" y="1557.2" textLength="146.4" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1581.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-64)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1581.6" textLength="73.2" clip-path="url(#breeze-static-checks-line-64)">-force</text><text class="breeze-static-checks-r4" x="109.8" y="1581.6" textLength="73.2" clip-path="ur [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-static-checks-line-65)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1606" textLength="12.2" clip-path="url(#breeze-static-checks-line-65)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1606" textLength="73.2" clip-path="url(#breeze-static-checks-line-65)">-image</text><text class="breeze-static-checks-r4" x="109.8" y="1606" textLength="48.8" clip-path="url(#breez [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-66)">│</text><text class="breeze-static-checks-r5" x="329.4" y="1630.4" textLength="963.8" clip-path="url(#breeze-static-checks-line-66)">[default:&#160;latest]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-static-checks-r5" x="0" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1654.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-67)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1654.8" textLength="85.4" clip-path="url(#breeze-static-checks-line-67)">-github</text><text class="breeze-static-checks-r4" x="122" y="1654.8" textLength="134.2" clip-path="ur [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1679.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-68)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1679.2" textLength="97.6" clip-path="url(#breeze-static-checks-line-68)">-builder</text><text class="breeze-static-checks-r2" x="329.4" y="1679.2" textLength="756.4" clip-path= [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1703.6" textLength="1464" clip-path="url(#breeze-static-checks-line-69)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1703.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-69)">
+</text><text class="breeze-static-checks-r5" x="0" y="1728" textLength="24.4" clip-path="url(#breeze-static-checks-line-70)">╭─</text><text class="breeze-static-checks-r5" x="24.4" y="1728" textLength="195.2" clip-path="url(#breeze-static-checks-line-70)">&#160;Common&#160;options&#160;</text><text class="breeze-static-checks-r5" x="219.6" y="1728" textLength="1220" clip-path="url(#breeze-static-checks-line-70)">──────────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1752.4" textLength="12.2" clip-path="url(#breeze-static-checks-line-71)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1752.4" textLength="97.6" clip-path="url(#breeze-static-checks-line-71)">-verbose</text><text class="breeze-static-checks-r6" x="158.6" y="1752.4" textLength="24.4" clip-path=" [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1776.8" textLength="12.2" clip-path="url(#breeze-static-checks-line-72)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1776.8" textLength="48.8" clip-path="url(#breeze-static-checks-line-72)">-dry</text><text class="breeze-static-checks-r4" x="85.4" y="1776.8" textLength="48.8" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">│</text><text class="breeze-static-checks-r4" x="24.4" y="1801.2" textLength="12.2" clip-path="url(#breeze-static-checks-line-73)">-</text><text class="breeze-static-checks-r4" x="36.6" y="1801.2" textLength="61" clip-path="url(#breeze-static-checks-line-73)">-help</text><text class="breeze-static-checks-r6" x="158.6" y="1801.2" textLength="24.4" clip-path="url(# [...]
+</text><text class="breeze-static-checks-r5" x="0" y="1825.6" textLength="1464" clip-path="url(#breeze-static-checks-line-74)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-static-checks-r2" x="1464" y="1825.6" textLength="12.2" clip-path="url(#breeze-static-checks-line-74)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_testing.svg b/images/breeze/output_testing.svg
index 7d14280b52..82c6f8e344 100644
--- a/images/breeze/output_testing.svg
+++ b/images/breeze/output_testing.svg
@@ -35,8 +35,8 @@
     .breeze-testing-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-testing-r2 { fill: #c5c8c6 }
 .breeze-testing-r3 { fill: #d0b344;font-weight: bold }
-.breeze-testing-r4 { fill: #868887 }
-.breeze-testing-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-testing-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-testing-r5 { fill: #868887 }
 .breeze-testing-r6 { fill: #98a84b;font-weight: bold }
     </style>
 
@@ -96,19 +96,19 @@
     
     <g class="breeze-testing-matrix">
     <text class="breeze-testing-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-testing-line-0)">
-</text><text class="breeze-testing-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-testing-line-1)">Usage:&#160;</text><text class="breeze-testing-r1" x="97.6" y="44.4" textLength="512.4" clip-path="url(#breeze-testing-line-1)">breeze&#160;testing&#160;[OPTIONS]&#160;COMMAND&#160;[ARGS]...</text><text class="breeze-testing-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-testing-line-1)">
+</text><text class="breeze-testing-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-testing-line-1)">Usage:&#160;</text><text class="breeze-testing-r1" x="97.6" y="44.4" textLength="195.2" clip-path="url(#breeze-testing-line-1)">breeze&#160;testing&#160;[</text><text class="breeze-testing-r4" x="292.8" y="44.4" textLength="85.4" clip-path="url(#breeze-testing-line-1)">OPTIONS</text><text class="breeze-testing-r1" x="378.2" y="44.4" textLength="24.4" clip-path="url(#breeze-t [...]
 </text><text class="breeze-testing-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-testing-line-2)">
 </text><text class="breeze-testing-r2" x="12.2" y="93.2" textLength="512.4" clip-path="url(#breeze-testing-line-3)">Tools&#160;that&#160;developers&#160;can&#160;use&#160;to&#160;run&#160;tests</text><text class="breeze-testing-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-testing-line-3)">
 </text><text class="breeze-testing-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-testing-line-4)">
-</text><text class="breeze-testing-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-testing-line-5)">╭─</text><text class="breeze-testing-r4" x="24.4" y="142" textLength="195.2" clip-path="url(#breeze-testing-line-5)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-r4" x="219.6" y="142" textLength="1220" clip-path="url(#breeze-testing-line-5)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class [...]
-</text><text class="breeze-testing-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-line-6)">│</text><text class="breeze-testing-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-line-6)">-</text><text class="breeze-testing-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-testing-line-6)">-help</text><text class="breeze-testing-r6" x="122" y="166.4" textLength="24.4" clip-path="url(#breeze-testing-line-6)">-h</text><text class="breez [...]
-</text><text class="breeze-testing-r4" x="0" y="190.8" textLength="1464" clip-path="url(#breeze-testing-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-r2" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-testing-line-7)">
-</text><text class="breeze-testing-r4" x="0" y="215.2" textLength="24.4" clip-path="url(#breeze-testing-line-8)">╭─</text><text class="breeze-testing-r4" x="24.4" y="215.2" textLength="109.8" clip-path="url(#breeze-testing-line-8)">&#160;Testing&#160;</text><text class="breeze-testing-r4" x="134.2" y="215.2" textLength="1305.4" clip-path="url(#breeze-testing-line-8)">───────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
-</text><text class="breeze-testing-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-testing-line-9)">│</text><text class="breeze-testing-r5" x="24.4" y="239.6" textLength="500.2" clip-path="url(#breeze-testing-line-9)">tests&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-r2" x [...]
-</text><text class="breeze-testing-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-testing-line-10)">│</text><text class="breeze-testing-r5" x="24.4" y="264" textLength="500.2" clip-path="url(#breeze-testing-line-10)">integration-tests&#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-testing-r2" x="549" y="264" textLength="890.6" clip-path="url(#breeze-testi [...]
-</text><text class="breeze-testing-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-testing-line-11)">│</text><text class="breeze-testing-r5" x="24.4" y="288.4" textLength="500.2" clip-path="url(#breeze-testing-line-11)">helm-tests&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-r2" x="549" y="288.4" textLe [...]
-</text><text class="breeze-testing-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-testing-line-12)">│</text><text class="breeze-testing-r5" x="24.4" y="312.8" textLength="500.2" clip-path="url(#breeze-testing-line-12)">docker-compose-tests&#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-testing-r2" x="549" y="312.8" textLength="890.6" clip-path="url(#breeze-testing-line-1 [...]
-</text><text class="breeze-testing-r4" x="0" y="337.2" textLength="1464" clip-path="url(#breeze-testing-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-r2" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-testing-line-13)">
+</text><text class="breeze-testing-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-testing-line-5)">╭─</text><text class="breeze-testing-r5" x="24.4" y="142" textLength="195.2" clip-path="url(#breeze-testing-line-5)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-r5" x="219.6" y="142" textLength="1220" clip-path="url(#breeze-testing-line-5)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text class [...]
+</text><text class="breeze-testing-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-line-6)">│</text><text class="breeze-testing-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-line-6)">-</text><text class="breeze-testing-r4" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-testing-line-6)">-help</text><text class="breeze-testing-r6" x="122" y="166.4" textLength="24.4" clip-path="url(#breeze-testing-line-6)">-h</text><text class="breez [...]
+</text><text class="breeze-testing-r5" x="0" y="190.8" textLength="1464" clip-path="url(#breeze-testing-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-r2" x="1464" y="190.8" textLength="12.2" clip-path="url(#breeze-testing-line-7)">
+</text><text class="breeze-testing-r5" x="0" y="215.2" textLength="24.4" clip-path="url(#breeze-testing-line-8)">╭─</text><text class="breeze-testing-r5" x="24.4" y="215.2" textLength="109.8" clip-path="url(#breeze-testing-line-8)">&#160;Testing&#160;</text><text class="breeze-testing-r5" x="134.2" y="215.2" textLength="1305.4" clip-path="url(#breeze-testing-line-8)">───────────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
+</text><text class="breeze-testing-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-testing-line-9)">│</text><text class="breeze-testing-r4" x="24.4" y="239.6" textLength="500.2" clip-path="url(#breeze-testing-line-9)">tests&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-r2" x [...]
+</text><text class="breeze-testing-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-testing-line-10)">│</text><text class="breeze-testing-r4" x="24.4" y="264" textLength="500.2" clip-path="url(#breeze-testing-line-10)">integration-tests&#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-testing-r2" x="549" y="264" textLength="890.6" clip-path="url(#breeze-testi [...]
+</text><text class="breeze-testing-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-testing-line-11)">│</text><text class="breeze-testing-r4" x="24.4" y="288.4" textLength="500.2" clip-path="url(#breeze-testing-line-11)">helm-tests&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-r2" x="549" y="288.4" textLe [...]
+</text><text class="breeze-testing-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-testing-line-12)">│</text><text class="breeze-testing-r4" x="24.4" y="312.8" textLength="500.2" clip-path="url(#breeze-testing-line-12)">docker-compose-tests&#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-testing-r2" x="549" y="312.8" textLength="890.6" clip-path="url(#breeze-testing-line-1 [...]
+</text><text class="breeze-testing-r5" x="0" y="337.2" textLength="1464" clip-path="url(#breeze-testing-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-r2" x="1464" y="337.2" textLength="12.2" clip-path="url(#breeze-testing-line-13)">
 </text>
     </g>
     </g>
diff --git a/images/breeze/output_testing_tests.svg b/images/breeze/output_testing_tests.svg
index 9cdc350da9..ec3da499fa 100644
--- a/images/breeze/output_testing_tests.svg
+++ b/images/breeze/output_testing_tests.svg
@@ -35,8 +35,8 @@
     .breeze-testing-tests-r1 { fill: #c5c8c6;font-weight: bold }
 .breeze-testing-tests-r2 { fill: #c5c8c6 }
 .breeze-testing-tests-r3 { fill: #d0b344;font-weight: bold }
-.breeze-testing-tests-r4 { fill: #868887 }
-.breeze-testing-tests-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-testing-tests-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-testing-tests-r5 { fill: #868887 }
 .breeze-testing-tests-r6 { fill: #98a84b;font-weight: bold }
 .breeze-testing-tests-r7 { fill: #8d7b39 }
     </style>
@@ -232,64 +232,64 @@
     
     <g class="breeze-testing-tests-matrix">
     <text class="breeze-testing-tests-r2" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-testing-tests-line-0)">
-</text><text class="breeze-testing-tests-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-testing-tests-line-1)">Usage:&#160;</text><text class="breeze-testing-tests-r1" x="97.6" y="44.4" textLength="646.6" clip-path="url(#breeze-testing-tests-line-1)">breeze&#160;testing&#160;tests&#160;[OPTIONS]&#160;[EXTRA_PYTEST_ARGS]...</text><text class="breeze-testing-tests-r2" x="1464" y="44.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-1)">
+</text><text class="breeze-testing-tests-r3" x="12.2" y="44.4" textLength="85.4" clip-path="url(#breeze-testing-tests-line-1)">Usage:&#160;</text><text class="breeze-testing-tests-r1" x="97.6" y="44.4" textLength="268.4" clip-path="url(#breeze-testing-tests-line-1)">breeze&#160;testing&#160;tests&#160;[</text><text class="breeze-testing-tests-r4" x="366" y="44.4" textLength="85.4" clip-path="url(#breeze-testing-tests-line-1)">OPTIONS</text><text class="breeze-testing-tests-r1" x="451.4"  [...]
 </text><text class="breeze-testing-tests-r2" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-2)">
 </text><text class="breeze-testing-tests-r2" x="12.2" y="93.2" textLength="439.2" clip-path="url(#breeze-testing-tests-line-3)">Run&#160;the&#160;specified&#160;unit&#160;test&#160;targets.</text><text class="breeze-testing-tests-r2" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-3)">
 </text><text class="breeze-testing-tests-r2" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-4)">
-</text><text class="breeze-testing-tests-r4" x="0" y="142" textLength="24.4" clip-path="url(#breeze-testing-tests-line-5)">╭─</text><text class="breeze-testing-tests-r4" x="24.4" y="142" textLength="366" clip-path="url(#breeze-testing-tests-line-5)">&#160;Basic&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-tests-r4" x="390.4" y="142" textLength="1049.2" clip-path="url(#breeze-testing-tests-line-5)">───────────────────────────────────────────────────── [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-6)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-6)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-testing-tests-line-6)">-test</text><text class="breeze-testing-tests-r5" x="97.6" y="166.4" textLength="61" clip-path="url(#breeze-tes [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-7)">│</text><text class="breeze-testing-tests-r2" x="329.4" y="190.8" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-7)">run:&#160;`Providers[airbyte,http]`&#160;or&#160;excluded&#160;from&#160;the&#160;full&#160;test&#160;suite:&#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-testing-tests-r4" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-8)">│</text><text class="breeze-testing-tests-r2" x="329.4" y="215.2" textLength="134.2" clip-path="url(#breeze-testing-tests-line-8)">`Providers[</text><text class="breeze-testing-tests-r6" x="463.6" y="215.2" textLength="85.4" clip-path="url(#breeze-testing-tests-line-8)">-amazon</text><text class="breeze-testing-tests-r2" x="549" y="215.2" textLength="890.6" clip-pa [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-9)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="239.6" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-9)">(All&#160;|&#160;API&#160;|&#160;Always&#160;|&#160;CLI&#160;|&#160;Core&#160;|&#160;Other&#160;|&#160;Providers&#160;|&#160;WWW&#160;|&#160;PlainAsserts&#160;|&#160;Postgres&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="bree [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="264" textLength="12.2" clip-path="url(#breeze-testing-tests-line-10)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="264" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-10)">MySQL&#160;|&#160;Quarantine)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-11)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="288.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-11)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="288.4" textLength="61" clip-path="url(#breeze-testing-tests-line-11)">-test</text><text class="breeze-testing-tests-r5" x="97.6" y="288.4" textLength="97.6" clip-path="url(#breez [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-12)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="312.8" textLength="988.2" clip-path="url(#breeze-testing-tests-line-12)">(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;&#16 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-13)">│</text><text class="breeze-testing-tests-r4" x="329.4" y="337.2" textLength="988.2" clip-path="url(#breeze-testing-tests-line-13)">[default:&#160;60;&#160;x&gt;=0]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-14)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-14)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="361.6" textLength="97.6" clip-path="url(#breeze-testing-tests-line-14)">-collect</text><text class="breeze-testing-tests-r5" x="134.2" y="361.6" textLength="61" clip-path="url(#b [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="386" textLength="12.2" clip-path="url(#breeze-testing-tests-line-15)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-testing-tests-line-15)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="386" textLength="36.6" clip-path="url(#breeze-testing-tests-line-15)">-db</text><text class="breeze-testing-tests-r5" x="73.2" y="386" textLength="73.2" clip-path="url(#breeze-testin [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-16)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-16)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="410.4" textLength="97.6" clip-path="url(#breeze-testing-tests-line-16)">-backend</text><text class="breeze-testing-tests-r6" x="280.6" y="410.4" textLength="24.4" clip-path="url( [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-17)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-17)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="434.8" textLength="85.4" clip-path="url(#breeze-testing-tests-line-17)">-python</text><text class="breeze-testing-tests-r6" x="280.6" y="434.8" textLength="24.4" clip-path="url(# [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-18)">│</text><text class="breeze-testing-tests-r4" x="329.4" y="459.2" textLength="732" clip-path="url(#breeze-testing-tests-line-18)">[default:&#160;3.8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-19)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-19)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="483.6" textLength="109.8" clip-path="url(#breeze-testing-tests-line-19)">-postgres</text><text class="breeze-testing-tests-r5" x="146.4" y="483.6" textLength="97.6" clip-path="ur [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="508" textLength="12.2" clip-path="url(#breeze-testing-tests-line-20)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-testing-tests-line-20)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="508" textLength="73.2" clip-path="url(#breeze-testing-tests-line-20)">-mysql</text><text class="breeze-testing-tests-r5" x="109.8" y="508" textLength="97.6" clip-path="url(#breeze-te [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-21)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-21)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="532.4" textLength="73.2" clip-path="url(#breeze-testing-tests-line-21)">-mssql</text><text class="breeze-testing-tests-r5" x="109.8" y="532.4" textLength="97.6" clip-path="url(#b [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-22)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-22)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="556.8" textLength="146.4" clip-path="url(#breeze-testing-tests-line-22)">-integration</text><text class="breeze-testing-tests-r2" x="329.4" y="556.8" textLength="1110.2" clip-pat [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-23)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="581.2" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-23)">(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;statsd</text><text class="breeze-testing-tests-r4" x="1451 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-24)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="605.6" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-24)">|&#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;&#1 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="630" textLength="12.2" clip-path="url(#breeze-testing-tests-line-25)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-testing-tests-line-25)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="630" textLength="85.4" clip-path="url(#breeze-testing-tests-line-25)">-github</text><text class="breeze-testing-tests-r5" x="122" y="630" textLength="134.2" clip-path="url(#breeze-te [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-testing-tests-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-26)">
-</text><text class="breeze-testing-tests-r4" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-testing-tests-line-27)">╭─</text><text class="breeze-testing-tests-r4" x="24.4" y="678.8" textLength="439.2" clip-path="url(#breeze-testing-tests-line-27)">&#160;Options&#160;for&#160;parallel&#160;test&#160;commands&#160;</text><text class="breeze-testing-tests-r4" x="463.6" y="678.8" textLength="976" clip-path="url(#breeze-testing-tests-line-27)">─────────────────────────────────────── [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-28)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-28)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="703.2" textLength="48.8" clip-path="url(#breeze-testing-tests-line-28)">-run</text><text class="breeze-testing-tests-r5" x="85.4" y="703.2" textLength="146.4" clip-path="url(#bre [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-29)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-29)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="727.6" textLength="146.4" clip-path="url(#breeze-testing-tests-line-29)">-parallelism</text><text class="breeze-testing-tests-r2" x="378.2" y="727.6" textLength="915" clip-path=" [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="752" textLength="12.2" clip-path="url(#breeze-testing-tests-line-30)">│</text><text class="breeze-testing-tests-r7" x="378.2" y="752" textLength="915" clip-path="url(#breeze-testing-tests-line-30)">(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;&#16 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-31)">│</text><text class="breeze-testing-tests-r4" x="378.2" y="776.4" textLength="915" clip-path="url(#breeze-testing-tests-line-31)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-32)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-32)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="800.8" textLength="109.8" clip-path="url(#breeze-testing-tests-line-32)">-parallel</text><text class="breeze-testing-tests-r5" x="146.4" y="800.8" textLength="134.2" clip-path="u [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-33)">│</text><text class="breeze-testing-tests-r4" x="378.2" y="825.2" textLength="780.8" clip-path="url(#breeze-testing-tests-line-33)">[default:&#160;API&#160;Always&#160;CLI&#160;Core&#160;Other&#160;Providers&#160;WWW&#160;PlainAsserts]&#160;</text><text class="breeze-testing-tests-r4" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-34)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-34)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="849.6" textLength="61" clip-path="url(#breeze-testing-tests-line-34)">-skip</text><text class="breeze-testing-tests-r5" x="97.6" y="849.6" textLength="97.6" clip-path="url(#breez [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="874" textLength="12.2" clip-path="url(#breeze-testing-tests-line-35)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-testing-tests-line-35)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="874" textLength="73.2" clip-path="url(#breeze-testing-tests-line-35)">-debug</text><text class="breeze-testing-tests-r5" x="109.8" y="874" textLength="122" clip-path="url(#breeze-tes [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-36)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-36)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="898.4" textLength="97.6" clip-path="url(#breeze-testing-tests-line-36)">-include</text><text class="breeze-testing-tests-r5" x="134.2" y="898.4" textLength="195.2" clip-path="url [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="922.8" textLength="1464" clip-path="url(#breeze-testing-tests-line-37)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-37)">
-</text><text class="breeze-testing-tests-r4" x="0" y="947.2" textLength="24.4" clip-path="url(#breeze-testing-tests-line-38)">╭─</text><text class="breeze-testing-tests-r4" x="24.4" y="947.2" textLength="402.6" clip-path="url(#breeze-testing-tests-line-38)">&#160;Advanced&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-tests-r4" x="427" y="947.2" textLength="1012.6" clip-path="url(#breeze-testing-tests-line-38)">───────────────────────────────────────── [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-39)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="971.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-39)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="971.6" textLength="73.2" clip-path="url(#breeze-testing-tests-line-39)">-image</text><text class="breeze-testing-tests-r5" x="109.8" y="971.6" textLength="48.8" clip-path="url(#b [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="996" textLength="12.2" clip-path="url(#breeze-testing-tests-line-40)">│</text><text class="breeze-testing-tests-r7" x="414.8" y="996" textLength="963.8" clip-path="url(#breeze-testing-tests-line-40)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-41)">│</text><text class="breeze-testing-tests-r4" x="414.8" y="1020.4" textLength="963.8" clip-path="url(#breeze-testing-tests-line-41)">[default:&#160;latest]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-tests-r4" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-42)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-42)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1044.8" textLength="48.8" clip-path="url(#breeze-testing-tests-line-42)">-use</text><text class="breeze-testing-tests-r5" x="85.4" y="1044.8" textLength="195.2" clip-path="url( [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-43)">│</text><text class="breeze-testing-tests-r2" x="414.8" y="1069.2" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-43)">or&#160;`sdist`&#160;if&#160;Airflow&#160;should&#160;be&#160;removed,&#160;installed&#160;from&#160;wheel&#160;packages&#160;or&#160;sdist&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-tests-r4" x="1451.8" y="106 [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-44)">│</text><text class="breeze-testing-tests-r2" x="414.8" y="1093.6" textLength="683.2" clip-path="url(#breeze-testing-tests-line-44)">packages&#160;available&#160;in&#160;dist&#160;folder&#160;respectively.&#160;Implies&#160;</text><text class="breeze-testing-tests-r5" x="1098" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-44)">-</text><te [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-testing-tests-line-45)">│</text><text class="breeze-testing-tests-r7" x="414.8" y="1118" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-45)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#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-testing-tests-r4" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-46)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-46)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1142.4" textLength="73.2" clip-path="url(#breeze-testing-tests-line-46)">-mount</text><text class="breeze-testing-tests-r5" x="109.8" y="1142.4" textLength="97.6" clip-path="ur [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-47)">│</text><text class="breeze-testing-tests-r2" x="414.8" y="1166.8" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-47)">selected).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-tests-r4" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-48)">│</text><text class="breeze-testing-tests-r7" x="414.8" y="1191.2" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-48)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove)&#160;&#160;&#160;&#160;&#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-testing-tests-r4" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-49)">│</text><text class="breeze-testing-tests-r4" x="414.8" y="1215.6" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-49)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-tests-r4" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-testing-tests-line-50)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-testing-tests-line-50)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1240" textLength="97.6" clip-path="url(#breeze-testing-tests-line-50)">-upgrade</text><text class="breeze-testing-tests-r5" x="134.2" y="1240" textLength="61" clip-path="url(#breez [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-51)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-51)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1264.4" textLength="85.4" clip-path="url(#breeze-testing-tests-line-51)">-remove</text><text class="breeze-testing-tests-r5" x="122" y="1264.4" textLength="158.6" clip-path="ur [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-52)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-52)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1288.8" textLength="61" clip-path="url(#breeze-testing-tests-line-52)">-skip</text><text class="breeze-testing-tests-r5" x="97.6" y="1288.8" textLength="244" clip-path="url(#br [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1313.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-53)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="1313.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-53)">
-</text><text class="breeze-testing-tests-r4" x="0" y="1337.6" textLength="24.4" clip-path="url(#breeze-testing-tests-line-54)">╭─</text><text class="breeze-testing-tests-r4" x="24.4" y="1337.6" textLength="195.2" clip-path="url(#breeze-testing-tests-line-54)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-tests-r4" x="219.6" y="1337.6" textLength="1220" clip-path="url(#breeze-testing-tests-line-54)">────────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-tests-line-55)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-testing-tests-line-55)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1362" textLength="97.6" clip-path="url(#breeze-testing-tests-line-55)">-verbose</text><text class="breeze-testing-tests-r6" x="158.6" y="1362" textLength="24.4" clip-path="url(#bre [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-56)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-56)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1386.4" textLength="48.8" clip-path="url(#breeze-testing-tests-line-56)">-dry</text><text class="breeze-testing-tests-r5" x="85.4" y="1386.4" textLength="48.8" clip-path="url(# [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-57)">│</text><text class="breeze-testing-tests-r5" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-57)">-</text><text class="breeze-testing-tests-r5" x="36.6" y="1410.8" textLength="61" clip-path="url(#breeze-testing-tests-line-57)">-help</text><text class="breeze-testing-tests-r6" x="158.6" y="1410.8" textLength="24.4" clip-path="url(# [...]
-</text><text class="breeze-testing-tests-r4" x="0" y="1435.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-58)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-58)">
+</text><text class="breeze-testing-tests-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-testing-tests-line-5)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="142" textLength="366" clip-path="url(#breeze-testing-tests-line-5)">&#160;Basic&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-tests-r5" x="390.4" y="142" textLength="1049.2" clip-path="url(#breeze-testing-tests-line-5)">───────────────────────────────────────────────────── [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-6)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-6)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="166.4" textLength="61" clip-path="url(#breeze-testing-tests-line-6)">-test</text><text class="breeze-testing-tests-r4" x="97.6" y="166.4" textLength="61" clip-path="url(#breeze-tes [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-7)">│</text><text class="breeze-testing-tests-r2" x="329.4" y="190.8" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-7)">run:&#160;`Providers[airbyte,http]`&#160;or&#160;excluded&#160;from&#160;the&#160;full&#160;test&#160;suite:&#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-testing-tests-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-8)">│</text><text class="breeze-testing-tests-r2" x="329.4" y="215.2" textLength="134.2" clip-path="url(#breeze-testing-tests-line-8)">`Providers[</text><text class="breeze-testing-tests-r6" x="463.6" y="215.2" textLength="85.4" clip-path="url(#breeze-testing-tests-line-8)">-amazon</text><text class="breeze-testing-tests-r2" x="549" y="215.2" textLength="890.6" clip-pa [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-9)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="239.6" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-9)">(All&#160;|&#160;API&#160;|&#160;Always&#160;|&#160;CLI&#160;|&#160;Core&#160;|&#160;Other&#160;|&#160;Providers&#160;|&#160;WWW&#160;|&#160;PlainAsserts&#160;|&#160;Postgres&#160;|&#160;&#160;&#160;&#160;&#160;</text><text class="bree [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-testing-tests-line-10)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="264" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-10)">MySQL&#160;|&#160;Quarantine)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-11)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="288.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-11)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="288.4" textLength="61" clip-path="url(#breeze-testing-tests-line-11)">-test</text><text class="breeze-testing-tests-r4" x="97.6" y="288.4" textLength="97.6" clip-path="url(#breez [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-12)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="312.8" textLength="988.2" clip-path="url(#breeze-testing-tests-line-12)">(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;&#16 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-13)">│</text><text class="breeze-testing-tests-r5" x="329.4" y="337.2" textLength="988.2" clip-path="url(#breeze-testing-tests-line-13)">[default:&#160;60;&#160;x&gt;=0]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-14)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-14)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="361.6" textLength="97.6" clip-path="url(#breeze-testing-tests-line-14)">-collect</text><text class="breeze-testing-tests-r4" x="134.2" y="361.6" textLength="61" clip-path="url(#b [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-testing-tests-line-15)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-testing-tests-line-15)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="386" textLength="36.6" clip-path="url(#breeze-testing-tests-line-15)">-db</text><text class="breeze-testing-tests-r4" x="73.2" y="386" textLength="73.2" clip-path="url(#breeze-testin [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-16)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-16)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="410.4" textLength="97.6" clip-path="url(#breeze-testing-tests-line-16)">-backend</text><text class="breeze-testing-tests-r6" x="280.6" y="410.4" textLength="24.4" clip-path="url( [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-17)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="434.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-17)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="434.8" textLength="85.4" clip-path="url(#breeze-testing-tests-line-17)">-python</text><text class="breeze-testing-tests-r6" x="280.6" y="434.8" textLength="24.4" clip-path="url(# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-18)">│</text><text class="breeze-testing-tests-r5" x="329.4" y="459.2" textLength="732" clip-path="url(#breeze-testing-tests-line-18)">[default:&#160;3.8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-19)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-19)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="483.6" textLength="109.8" clip-path="url(#breeze-testing-tests-line-19)">-postgres</text><text class="breeze-testing-tests-r4" x="146.4" y="483.6" textLength="97.6" clip-path="ur [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-testing-tests-line-20)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-testing-tests-line-20)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="508" textLength="73.2" clip-path="url(#breeze-testing-tests-line-20)">-mysql</text><text class="breeze-testing-tests-r4" x="109.8" y="508" textLength="97.6" clip-path="url(#breeze-te [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-21)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-21)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="532.4" textLength="73.2" clip-path="url(#breeze-testing-tests-line-21)">-mssql</text><text class="breeze-testing-tests-r4" x="109.8" y="532.4" textLength="97.6" clip-path="url(#b [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-22)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-22)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="556.8" textLength="146.4" clip-path="url(#breeze-testing-tests-line-22)">-integration</text><text class="breeze-testing-tests-r2" x="329.4" y="556.8" textLength="1110.2" clip-pat [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-23)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="581.2" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-23)">(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;statsd</text><text class="breeze-testing-tests-r5" x="1451 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-24)">│</text><text class="breeze-testing-tests-r7" x="329.4" y="605.6" textLength="1110.2" clip-path="url(#breeze-testing-tests-line-24)">|&#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;&#1 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-testing-tests-line-25)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="630" textLength="12.2" clip-path="url(#breeze-testing-tests-line-25)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="630" textLength="85.4" clip-path="url(#breeze-testing-tests-line-25)">-github</text><text class="breeze-testing-tests-r4" x="122" y="630" textLength="134.2" clip-path="url(#breeze-te [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-testing-tests-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-26)">
+</text><text class="breeze-testing-tests-r5" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-testing-tests-line-27)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="678.8" textLength="439.2" clip-path="url(#breeze-testing-tests-line-27)">&#160;Options&#160;for&#160;parallel&#160;test&#160;commands&#160;</text><text class="breeze-testing-tests-r5" x="463.6" y="678.8" textLength="976" clip-path="url(#breeze-testing-tests-line-27)">─────────────────────────────────────── [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-28)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-28)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="703.2" textLength="48.8" clip-path="url(#breeze-testing-tests-line-28)">-run</text><text class="breeze-testing-tests-r4" x="85.4" y="703.2" textLength="146.4" clip-path="url(#bre [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-29)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-29)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="727.6" textLength="146.4" clip-path="url(#breeze-testing-tests-line-29)">-parallelism</text><text class="breeze-testing-tests-r2" x="378.2" y="727.6" textLength="915" clip-path=" [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-testing-tests-line-30)">│</text><text class="breeze-testing-tests-r7" x="378.2" y="752" textLength="915" clip-path="url(#breeze-testing-tests-line-30)">(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;&#16 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-31)">│</text><text class="breeze-testing-tests-r5" x="378.2" y="776.4" textLength="915" clip-path="url(#breeze-testing-tests-line-31)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;& [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-32)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-32)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="800.8" textLength="109.8" clip-path="url(#breeze-testing-tests-line-32)">-parallel</text><text class="breeze-testing-tests-r4" x="146.4" y="800.8" textLength="134.2" clip-path="u [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-33)">│</text><text class="breeze-testing-tests-r5" x="378.2" y="825.2" textLength="780.8" clip-path="url(#breeze-testing-tests-line-33)">[default:&#160;API&#160;Always&#160;CLI&#160;Core&#160;Other&#160;Providers&#160;WWW&#160;PlainAsserts]&#160;</text><text class="breeze-testing-tests-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-34)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-34)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="849.6" textLength="61" clip-path="url(#breeze-testing-tests-line-34)">-skip</text><text class="breeze-testing-tests-r4" x="97.6" y="849.6" textLength="97.6" clip-path="url(#breez [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-testing-tests-line-35)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-testing-tests-line-35)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="874" textLength="73.2" clip-path="url(#breeze-testing-tests-line-35)">-debug</text><text class="breeze-testing-tests-r4" x="109.8" y="874" textLength="122" clip-path="url(#breeze-tes [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-36)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-36)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="898.4" textLength="97.6" clip-path="url(#breeze-testing-tests-line-36)">-include</text><text class="breeze-testing-tests-r4" x="134.2" y="898.4" textLength="195.2" clip-path="url [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="922.8" textLength="1464" clip-path="url(#breeze-testing-tests-line-37)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="922.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-37)">
+</text><text class="breeze-testing-tests-r5" x="0" y="947.2" textLength="24.4" clip-path="url(#breeze-testing-tests-line-38)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="947.2" textLength="402.6" clip-path="url(#breeze-testing-tests-line-38)">&#160;Advanced&#160;flag&#160;for&#160;tests&#160;command&#160;</text><text class="breeze-testing-tests-r5" x="427" y="947.2" textLength="1012.6" clip-path="url(#breeze-testing-tests-line-38)">───────────────────────────────────────── [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-39)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="971.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-39)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="971.6" textLength="73.2" clip-path="url(#breeze-testing-tests-line-39)">-image</text><text class="breeze-testing-tests-r4" x="109.8" y="971.6" textLength="48.8" clip-path="url(#b [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-testing-tests-line-40)">│</text><text class="breeze-testing-tests-r7" x="414.8" y="996" textLength="963.8" clip-path="url(#breeze-testing-tests-line-40)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-41)">│</text><text class="breeze-testing-tests-r5" x="414.8" y="1020.4" textLength="963.8" clip-path="url(#breeze-testing-tests-line-41)">[default:&#160;latest]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-tests-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-42)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1044.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-42)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1044.8" textLength="48.8" clip-path="url(#breeze-testing-tests-line-42)">-use</text><text class="breeze-testing-tests-r4" x="85.4" y="1044.8" textLength="195.2" clip-path="url( [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-43)">│</text><text class="breeze-testing-tests-r2" x="414.8" y="1069.2" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-43)">or&#160;`sdist`&#160;if&#160;Airflow&#160;should&#160;be&#160;removed,&#160;installed&#160;from&#160;wheel&#160;packages&#160;or&#160;sdist&#160;&#160;&#160;&#160;&#160;</text><text class="breeze-testing-tests-r5" x="1451.8" y="106 [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-44)">│</text><text class="breeze-testing-tests-r2" x="414.8" y="1093.6" textLength="683.2" clip-path="url(#breeze-testing-tests-line-44)">packages&#160;available&#160;in&#160;dist&#160;folder&#160;respectively.&#160;Implies&#160;</text><text class="breeze-testing-tests-r4" x="1098" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-44)">-</text><te [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-testing-tests-line-45)">│</text><text class="breeze-testing-tests-r7" x="414.8" y="1118" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-45)">(none&#160;|&#160;wheel&#160;|&#160;sdist&#160;|&#160;&lt;airflow_version&gt;)&#160;&#160;&#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-testing-tests-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-46)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-46)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1142.4" textLength="73.2" clip-path="url(#breeze-testing-tests-line-46)">-mount</text><text class="breeze-testing-tests-r4" x="109.8" y="1142.4" textLength="97.6" clip-path="ur [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-47)">│</text><text class="breeze-testing-tests-r2" x="414.8" y="1166.8" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-47)">selected).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-tests-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-48)">│</text><text class="breeze-testing-tests-r7" x="414.8" y="1191.2" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-48)">(selected&#160;|&#160;all&#160;|&#160;skip&#160;|&#160;remove)&#160;&#160;&#160;&#160;&#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-testing-tests-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-testing-tests-line-49)">│</text><text class="breeze-testing-tests-r5" x="414.8" y="1215.6" textLength="1024.8" clip-path="url(#breeze-testing-tests-line-49)">[default:&#160;selected]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-testing-tests-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-testing-tests-line-50)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1240" textLength="12.2" clip-path="url(#breeze-testing-tests-line-50)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1240" textLength="97.6" clip-path="url(#breeze-testing-tests-line-50)">-upgrade</text><text class="breeze-testing-tests-r4" x="134.2" y="1240" textLength="61" clip-path="url(#breez [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-51)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-51)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1264.4" textLength="85.4" clip-path="url(#breeze-testing-tests-line-51)">-remove</text><text class="breeze-testing-tests-r4" x="122" y="1264.4" textLength="158.6" clip-path="ur [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-52)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-52)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1288.8" textLength="61" clip-path="url(#breeze-testing-tests-line-52)">-skip</text><text class="breeze-testing-tests-r4" x="97.6" y="1288.8" textLength="244" clip-path="url(#br [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1313.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-53)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="1313.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-53)">
+</text><text class="breeze-testing-tests-r5" x="0" y="1337.6" textLength="24.4" clip-path="url(#breeze-testing-tests-line-54)">╭─</text><text class="breeze-testing-tests-r5" x="24.4" y="1337.6" textLength="195.2" clip-path="url(#breeze-testing-tests-line-54)">&#160;Common&#160;options&#160;</text><text class="breeze-testing-tests-r5" x="219.6" y="1337.6" textLength="1220" clip-path="url(#breeze-testing-tests-line-54)">────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-tests-line-55)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1362" textLength="12.2" clip-path="url(#breeze-testing-tests-line-55)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1362" textLength="97.6" clip-path="url(#breeze-testing-tests-line-55)">-verbose</text><text class="breeze-testing-tests-r6" x="158.6" y="1362" textLength="24.4" clip-path="url(#bre [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-56)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-tests-line-56)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1386.4" textLength="48.8" clip-path="url(#breeze-testing-tests-line-56)">-dry</text><text class="breeze-testing-tests-r4" x="85.4" y="1386.4" textLength="48.8" clip-path="url(# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-57)">│</text><text class="breeze-testing-tests-r4" x="24.4" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-tests-line-57)">-</text><text class="breeze-testing-tests-r4" x="36.6" y="1410.8" textLength="61" clip-path="url(#breeze-testing-tests-line-57)">-help</text><text class="breeze-testing-tests-r6" x="158.6" y="1410.8" textLength="24.4" clip-path="url(# [...]
+</text><text class="breeze-testing-tests-r5" x="0" y="1435.2" textLength="1464" clip-path="url(#breeze-testing-tests-line-58)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-tests-r2" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-tests-line-58)">
 </text>
     </g>
     </g>