This is an automated email from the ASF dual-hosted git repository. pierrejeambrun pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push: new 3fa75e9674 Providers requirements for every python version (#35086) 3fa75e9674 is described below commit 3fa75e9674574f8b0de8b98f293b21a6ea792eb0 Author: Pierre Jeambrun <pierrejb...@gmail.com> AuthorDate: Tue Oct 24 16:12:01 2023 +0800 Providers requirements for every python version (#35086) * Restructure output directory to handle multiple python versions * Generate for all historical versions * Add output to parallel mode * Split all airflow images building to a separate command * Allow generating per provider requirements * Update parameters help description --- BREEZE.rst | 12 ++ .../src/airflow_breeze/commands/sbom_commands.py | 200 ++++++++++++++++----- .../commands/sbom_commands_config.py | 21 ++- dev/breeze/src/airflow_breeze/global_constants.py | 38 ++++ dev/breeze/src/airflow_breeze/utils/cdxgen.py | 96 ++++++---- images/breeze/output-commands-hash.txt | 11 +- images/breeze/output_sbom.svg | 16 +- .../output_sbom_build-all-airflow-images.svg | 156 ++++++++++++++++ ...output_sbom_generate-providers-requirements.svg | 80 +++++---- .../output_setup_check-all-params-in-groups.svg | 10 +- .../output_setup_regenerate-command-images.svg | 2 +- 11 files changed, 512 insertions(+), 130 deletions(-) diff --git a/BREEZE.rst b/BREEZE.rst index 4c3a84ddf4..1ca5386875 100644 --- a/BREEZE.rst +++ b/BREEZE.rst @@ -2284,6 +2284,18 @@ These are all of the available flags for the ``update-sbom-information`` command :width: 100% :alt: Breeze update sbom information +Build all airflow images +............................. + +In order to generate providers requirements, we need docker images with all airflow versions pre-installed, +such images are built with the ``build-all-airflow-images`` command. +This command will build one docker image per python version, with all the airflow versions >=2.0.0 compatible. + +.. image:: ./images/breeze/output_sbom_build-all-airflow-images.svg.svg + :target: https://raw.githubusercontent.com/apache/airflow/main/images/breeze/output_sbom_build-all-airflow-images.svg + :width: 100% + :alt: Breeze build all airflow images + Generating Provider requirements ................................. diff --git a/dev/breeze/src/airflow_breeze/commands/sbom_commands.py b/dev/breeze/src/airflow_breeze/commands/sbom_commands.py index c7425de8d0..8fc30faf72 100644 --- a/dev/breeze/src/airflow_breeze/commands/sbom_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/sbom_commands.py @@ -18,13 +18,14 @@ from __future__ import annotations import json +import sys from pathlib import Path import click from airflow_breeze.global_constants import ( + AIRFLOW_PYTHON_COMPATIBILITY_MATRIX, ALL_HISTORICAL_PYTHON_VERSIONS, - DEFAULT_PYTHON_MAJOR_MINOR_VERSION, PROVIDER_DEPENDENCIES, ) from airflow_breeze.utils.cdxgen import ( @@ -50,8 +51,12 @@ from airflow_breeze.utils.confirm import Answer, user_confirm from airflow_breeze.utils.console import get_console from airflow_breeze.utils.custom_param_types import BetterChoice from airflow_breeze.utils.docker_command_utils import perform_environment_checks -from airflow_breeze.utils.github import get_active_airflow_versions -from airflow_breeze.utils.parallel import ShowLastLineProgressMatcher, check_async_run_results, run_with_pool +from airflow_breeze.utils.parallel import ( + DockerBuildxProgressMatcher, + ShowLastLineProgressMatcher, + check_async_run_results, + run_with_pool, +) from airflow_breeze.utils.path_utils import AIRFLOW_TMP_DIR_PATH, PROVIDER_METADATA_JSON_FILE_PATH from airflow_breeze.utils.shared_options import get_dry_run @@ -236,23 +241,84 @@ def update_sbom_information( ) +@sbom.command(name="build-all-airflow-images", help="Generate images with airflow versions pre-installed") +@option_historical_python_version +@option_verbose +@option_dry_run +@option_answer +@option_run_in_parallel +@option_parallelism +@option_debug_resources +@option_include_success_outputs +@option_skip_cleanup +def build_all_airflow_images( + python: str, + run_in_parallel: bool, + parallelism: int, + debug_resources: bool, + include_success_outputs: bool, + skip_cleanup: bool, +): + if python is None: + python_versions = ALL_HISTORICAL_PYTHON_VERSIONS + else: + python_versions = [python] + + if run_in_parallel: + parallelism = min(parallelism, len(python_versions)) + get_console().print(f"[info]Running {len(python_versions)} jobs in parallel") + with ci_group(f"Building all airflow base images for python: {python_versions}"): + all_params = [ + f"Building all airflow base image for python: {python_version}" + for python_version in python_versions + ] + with run_with_pool( + parallelism=parallelism, + all_params=all_params, + debug_resources=debug_resources, + progress_matcher=DockerBuildxProgressMatcher(), + ) as (pool, outputs): + results = [ + pool.apply_async( + build_all_airflow_versions_base_image, + kwds={ + "python_version": python_version, + "confirm": False, + "output": outputs[index], + }, + ) + for (index, python_version) in enumerate(python_versions) + ] + check_async_run_results( + results=results, + success="All airflow base images were built successfully", + outputs=outputs, + include_success_outputs=include_success_outputs, + skip_cleanup=skip_cleanup, + ) + else: + for python_version in python_versions: + build_all_airflow_versions_base_image( + python_version=python_version, + confirm=False, + output=None, + ) + + @sbom.command(name="generate-providers-requirements", help="Generate requirements for selected provider.") +@option_historical_python_version @click.option( - "--airflow-version", type=str, required=False, help="Airflow version to use to generate the requirements" -) -@click.option( - "--python", - type=BetterChoice(ALL_HISTORICAL_PYTHON_VERSIONS), - default=DEFAULT_PYTHON_MAJOR_MINOR_VERSION, + "--provider-id", + type=BetterChoice(list(PROVIDER_DEPENDENCIES.keys())), required=False, - help="Python version to generate the requirements for", + help="Provider id to generate the requirements for", ) @click.option( - "--provider-id", - type=BetterChoice(list(PROVIDER_DEPENDENCIES.keys())), + "--provider-version", + type=str, required=False, - help="Provider to generate the requirements for", - multiple=True, + help="Provider version to generate the requirements for i.e `2.1.0`. `latest` is also a supported value " + "to account for the most recent version of the provider", ) @option_verbose @option_dry_run @@ -268,9 +334,9 @@ def update_sbom_information( help="Force update providers requirements even if they already exist.", ) def generate_providers_requirements( - airflow_version: str | None, python: str, - provider_id: tuple[str, ...], + provider_id: str | None, + provider_version: str | None, run_in_parallel: bool, parallelism: int, debug_resources: bool, @@ -280,36 +346,75 @@ def generate_providers_requirements( ): perform_environment_checks() - provider_ids = provider_id - if len(provider_ids) == 0: + if python is None: + python_versions = ALL_HISTORICAL_PYTHON_VERSIONS + else: + python_versions = [python] + + with open(PROVIDER_METADATA_JSON_FILE_PATH) as f: + provider_metadata = json.load(f) + + if provider_id is None: + if provider_version is not None and provider_version != "latest": + get_console().print( + "[error] You cannot pin the version of the providers if you generate the requirements for " + "all historical or latest versions. --provider-version needs to be unset when you pass None " + "or latest to --provider-id" + ) + sys.exit(1) + provider_ids = provider_metadata.keys() + else: + provider_ids = [provider_id] + + if provider_version is None: user_confirm( - "You are about to generate all providers requirements based on the " - "`provider_metadata.json` file (for all releases). Do you want to proceed?", + f"You are about to generate providers requirements for all historical versions for " + f"{len(provider_ids)} provider(s) based on `provider_metadata.json` file. " + f"Do you want to proceed?", quit_allowed=False, default_answer=Answer.YES, ) - with open(PROVIDER_METADATA_JSON_FILE_PATH) as f: - provider_metadata = json.load(f) - providers_info = [ - (p_id, p_version, info["associated_airflow_version"]) - for (p_id, p_versions) in provider_metadata.items() - for (p_version, info) in p_versions.items() - ] - else: - if airflow_version is None: - airflow_version = get_active_airflow_versions(confirm=False)[-1] - get_console().print(f"[info]Using {airflow_version} as airflow version") - providers_info = [(provider_id, None, airflow_version) for provider_id in provider_ids] - build_all_airflow_versions_base_image(python_version=python) + providers_info = [] + for provider_id in provider_ids: + if provider_version is not None: + if provider_version == "latest": + # Only the latest version for each provider + p_version, info = list(provider_metadata[provider_id].items())[-1] + else: + # Specified providers version + info = provider_metadata[provider_id][provider_version] + p_version = provider_version + + airflow_version = info["associated_airflow_version"] + + providers_info += [ + (provider_id, p_version, python_version, airflow_version) + for python_version in AIRFLOW_PYTHON_COMPATIBILITY_MATRIX[airflow_version] + if python_version in python_versions + ] + else: + # All historical providers' versions + providers_info += [ + ( + provider_id, + p_version, + python_version, + info["associated_airflow_version"], + ) + for (p_version, info) in provider_metadata[provider_id].items() + for python_version in AIRFLOW_PYTHON_COMPATIBILITY_MATRIX[info["associated_airflow_version"]] + if python_version in python_versions + ] if run_in_parallel: parallelism = min(parallelism, len(providers_info)) get_console().print(f"[info]Running {len(providers_info)} jobs in parallel") with ci_group(f"Generating provider requirements for {providers_info}"): all_params = [ - f"Generate provider requirements for {p_id} version {p_version}" - for (p_id, p_version, _) in providers_info + f"Generate provider requirements for {provider_id} version {provider_version} python " + f"{python_version}" + for (provider_id, provider_version, python_version, _) in providers_info ] with run_with_pool( parallelism=parallelism, @@ -321,14 +426,18 @@ def generate_providers_requirements( pool.apply_async( get_requirements_for_provider, kwds={ - "provider_id": p_id, - "provider_version": p_version, - "airflow_version": a_version, - "python_version": python, + "provider_id": provider_id, + "airflow_version": airflow_version, + "provider_version": provider_version, + "python_version": python_version, "force": force, + "output": outputs[index], }, ) - for (p_id, p_version, a_version) in providers_info + for ( + index, + (provider_id, provider_version, python_version, airflow_version), + ) in enumerate(providers_info) ] check_async_run_results( results=results, @@ -338,11 +447,12 @@ def generate_providers_requirements( skip_cleanup=skip_cleanup, ) else: - for p_id, p_version, a_version in providers_info: + for provider_id, provider_version, python_version, airflow_version in providers_info: get_requirements_for_provider( - provider_id=p_id, - provider_version=p_version, - airflow_version=a_version, - python_version=python, + provider_id=provider_id, + provider_version=provider_version, + airflow_version=airflow_version, + python_version=python_version, force=force, + output=None, ) diff --git a/dev/breeze/src/airflow_breeze/commands/sbom_commands_config.py b/dev/breeze/src/airflow_breeze/commands/sbom_commands_config.py index 763b133cf3..ce17e4a258 100644 --- a/dev/breeze/src/airflow_breeze/commands/sbom_commands_config.py +++ b/dev/breeze/src/airflow_breeze/commands/sbom_commands_config.py @@ -20,6 +20,7 @@ SBOM_COMMANDS: dict[str, str | list[str]] = { "name": "SBOM commands", "commands": [ "update-sbom-information", + "build-all-airflow-images", "generate-providers-requirements", ], } @@ -47,13 +48,31 @@ SBOM_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = { ], }, ], + "breeze sbom build-all-airflow-images": [ + { + "name": "Generate all airflow images flags", + "options": [ + "--python", + ], + }, + { + "name": "Parallel running", + "options": [ + "--run-in-parallel", + "--parallelism", + "--skip-cleanup", + "--debug-resources", + "--include-success-outputs", + ], + }, + ], "breeze sbom generate-providers-requirements": [ { "name": "Generate provider requirements flags", "options": [ - "--airflow-version", "--python", "--provider-id", + "--provider-version", "--force", ], }, diff --git a/dev/breeze/src/airflow_breeze/global_constants.py b/dev/breeze/src/airflow_breeze/global_constants.py index 094376b04b..dc7250f5b3 100644 --- a/dev/breeze/src/airflow_breeze/global_constants.py +++ b/dev/breeze/src/airflow_breeze/global_constants.py @@ -225,6 +225,44 @@ DEFAULT_MYSQL_VERSION = CURRENT_MYSQL_VERSIONS[0] CURRENT_MSSQL_VERSIONS = ["2017-latest", "2019-latest"] DEFAULT_MSSQL_VERSION = CURRENT_MSSQL_VERSIONS[0] + +AIRFLOW_PYTHON_COMPATIBILITY_MATRIX = { + "2.0.0": ["3.6", "3.7", "3.8"], + "2.0.1": ["3.6", "3.7", "3.8"], + "2.0.2": ["3.6", "3.7", "3.8"], + "2.1.0": ["3.6", "3.7", "3.8"], + "2.1.1": ["3.6", "3.7", "3.8"], + "2.1.2": ["3.6", "3.7", "3.8", "3.9"], + "2.1.3": ["3.6", "3.7", "3.8", "3.9"], + "2.1.4": ["3.6", "3.7", "3.8", "3.9"], + "2.2.0": ["3.6", "3.7", "3.8", "3.9"], + "2.2.1": ["3.6", "3.7", "3.8", "3.9"], + "2.2.2": ["3.6", "3.7", "3.8", "3.9"], + "2.2.3": ["3.6", "3.7", "3.8", "3.9"], + "2.2.4": ["3.6", "3.7", "3.8", "3.9"], + "2.2.5": ["3.6", "3.7", "3.8", "3.9"], + "2.3.0": ["3.7", "3.8", "3.9", "3.10"], + "2.3.1": ["3.7", "3.8", "3.9", "3.10"], + "2.3.2": ["3.7", "3.8", "3.9", "3.10"], + "2.3.3": ["3.7", "3.8", "3.9", "3.10"], + "2.3.4": ["3.7", "3.8", "3.9", "3.10"], + "2.4.0": ["3.7", "3.8", "3.9", "3.10"], + "2.4.1": ["3.7", "3.8", "3.9", "3.10"], + "2.4.2": ["3.7", "3.8", "3.9", "3.10"], + "2.4.3": ["3.7", "3.8", "3.9", "3.10"], + "2.5.0": ["3.7", "3.8", "3.9", "3.10"], + "2.5.1": ["3.7", "3.8", "3.9", "3.10"], + "2.5.2": ["3.7", "3.8", "3.9", "3.10"], + "2.5.3": ["3.7", "3.8", "3.9", "3.10"], + "2.6.0": ["3.7", "3.8", "3.9", "3.10"], + "2.6.1": ["3.7", "3.8", "3.9", "3.10"], + "2.6.2": ["3.7", "3.8", "3.9", "3.10", "3.11"], + "2.6.3": ["3.7", "3.8", "3.9", "3.10", "3.11"], + "2.7.0": ["3.8", "3.9", "3.10", "3.11"], + "2.7.1": ["3.8", "3.9", "3.10", "3.11"], + "2.7.2": ["3.8", "3.9", "3.10", "3.11"], +} + DB_RESET = False START_AIRFLOW = "false" LOAD_EXAMPLES = False diff --git a/dev/breeze/src/airflow_breeze/utils/cdxgen.py b/dev/breeze/src/airflow_breeze/utils/cdxgen.py index d329069872..977c20c0ac 100644 --- a/dev/breeze/src/airflow_breeze/utils/cdxgen.py +++ b/dev/breeze/src/airflow_breeze/utils/cdxgen.py @@ -29,12 +29,14 @@ from pathlib import Path import yaml -from airflow_breeze.global_constants import DEFAULT_PYTHON_MAJOR_MINOR_VERSION +from airflow_breeze.global_constants import ( + AIRFLOW_PYTHON_COMPATIBILITY_MATRIX, + DEFAULT_PYTHON_MAJOR_MINOR_VERSION, +) from airflow_breeze.utils.console import Output, get_console from airflow_breeze.utils.github import ( download_constraints_file, download_file_from_github, - get_active_airflow_versions, ) from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, FILES_DIR from airflow_breeze.utils.run_utils import run_command @@ -134,6 +136,7 @@ DOCKER_FILE_PREFIX = f"/files/{TARGET_DIR_NAME}/" def get_requirements_for_provider( provider_id: str, airflow_version: str, + output: Output | None, provider_version: str | None = None, python_version: str = DEFAULT_PYTHON_MAJOR_MINOR_VERSION, force: bool = False, @@ -144,34 +147,46 @@ def get_requirements_for_provider( *provider_path_array ) / "provider.yaml" provider_version = yaml.safe_load(provider_file.read_text())["versions"][0] - airflow_file_name = f"airflow-{airflow_version}-requirements.txt" - provider_with_airflow_file_name = ( - f"provider-{provider_id}-{provider_version}-with-airflow-requirements.txt" - ) - provider_file_name = f"provider-{provider_id}-{provider_version}-without-airflow-requirements.txt" + target_dir = FILES_DIR / TARGET_DIR_NAME - airflow_file = target_dir / airflow_file_name - provider_with_airflow_file = target_dir / provider_with_airflow_file_name + airflow_core_file_name = f"airflow-{airflow_version}-python{python_version}-requirements.txt" + airflow_core_path = target_dir / airflow_core_file_name + + provider_with_core_file_name = f"python{python_version}-with-core-requirements.txt" + provider_without_core_file_name = f"python{python_version}-without-core-requirements.txt" - if os.path.exists(airflow_file) and os.path.exists(provider_with_airflow_file) and force is False: - get_console().print( - f"[warning] Requirements for provider {provider_id} version {provider_version} already exist, " - f"skipping. Set force=True to force generation." + provider_folder_name = f"provider-{provider_id}-{provider_version}" + provider_folder_path = target_dir / provider_folder_name + provider_with_core_path = provider_folder_path / provider_with_core_file_name + provider_without_core_file = provider_folder_path / provider_without_core_file_name + + docker_file_provider_folder_prefix = f"{DOCKER_FILE_PREFIX}/{provider_folder_name}/" + + if ( + os.path.exists(provider_with_core_path) + and os.path.exists(provider_without_core_file) + and force is False + ): + get_console(output=output).print( + f"[warning] Requirements for provider {provider_id} version {provider_version} python " + f"{python_version} already exist, skipping. Set force=True to force generation." ) return ( 0, f"Provider requirements already existed, skipped generation for {provider_id} version " - f"{provider_version}", + f"{provider_version} python {python_version}", ) + else: + provider_folder_path.mkdir(exist_ok=True) command = f""" mkdir -pv {DOCKER_FILE_PREFIX} -/opt/airflow/airflow-{airflow_version}/bin/pip freeze | sort > {DOCKER_FILE_PREFIX}{airflow_file_name} +/opt/airflow/airflow-{airflow_version}/bin/pip freeze | sort > {DOCKER_FILE_PREFIX}{airflow_core_file_name} /opt/airflow/airflow-{airflow_version}/bin/pip install apache-airflow=={airflow_version} \ apache-airflow-providers-{provider_id}=={provider_version} /opt/airflow/airflow-{airflow_version}/bin/pip freeze | sort > \ - {DOCKER_FILE_PREFIX}{provider_with_airflow_file_name} -chown --recursive {os.getuid()}:{os.getgid()} {DOCKER_FILE_PREFIX} + {docker_file_provider_folder_prefix}{provider_with_core_file_name} +chown --recursive {os.getuid()}:{os.getgid()} {DOCKER_FILE_PREFIX}{provider_with_core_file_name} """ provider_command_result = run_command( [ @@ -187,28 +202,29 @@ chown --recursive {os.getuid()}:{os.getgid()} {DOCKER_FILE_PREFIX} get_all_airflow_versions_image_name(python_version=python_version), "-c", ";".join(command.splitlines()[1:-1]), - ] + ], + output=output, ) - get_console().print(f"[info]Airflow requirements in {airflow_file}") - get_console().print(f"[info]Provider requirements in {provider_with_airflow_file}") - base_packages = {package.split("==")[0] for package in airflow_file.read_text().splitlines()} + get_console(output=output).print(f"[info]Airflow requirements in {airflow_core_path}") + get_console(output=output).print(f"[info]Provider requirements in {provider_with_core_path}") + base_packages = {package.split("==")[0] for package in airflow_core_path.read_text().splitlines()} base_packages.add("apache-airflow-providers-" + provider_id.replace(".", "-")) provider_packages = sorted( [ line - for line in provider_with_airflow_file.read_text().splitlines() + for line in provider_with_core_path.read_text().splitlines() if line.split("==")[0] not in base_packages ] ) - get_console().print( + get_console(output=output).print( f"[info]Provider {provider_id} has {len(provider_packages)} transitively " f"dependent packages (excluding airflow and its dependencies)" ) - get_console().print(provider_packages) - provider_file = target_dir / provider_file_name - provider_file.write_text("".join(f"{p}\n" for p in provider_packages)) - get_console().print( - f"[success]Generated {provider_id}:{provider_version} requirements in {provider_file}" + get_console(output=output).print(provider_packages) + provider_without_core_file.write_text("".join(f"{p}\n" for p in provider_packages)) + get_console(output=output).print( + f"[success]Generated {provider_id}:{provider_version}:{python_version} requirements in " + f"{provider_without_core_file}" ) return ( @@ -217,7 +233,11 @@ chown --recursive {os.getuid()}:{os.getgid()} {DOCKER_FILE_PREFIX} ) -def build_all_airflow_versions_base_image(python_version: str): +def build_all_airflow_versions_base_image( + python_version: str, + output: Output | None, + confirm: bool = True, +) -> tuple[int, str]: """ Build an image with all airflow versions pre-installed in separate virtualenvs. """ @@ -225,20 +245,30 @@ def build_all_airflow_versions_base_image(python_version: str): image_name = get_all_airflow_versions_image_name(python_version=python_version) dockerfile = f""" FROM ghcr.io/apache/airflow/main/ci/python{python_version} -RUN pip install --upgrade pip +RUN pip install --upgrade pip --no-cache-dir # Prevent setting sources in PYTHONPATH to not interfere with virtualenvs ENV USE_AIRFLOW_VERSION=none +ENV START_AIRFLOW=none """ - for airflow_version in get_active_airflow_versions(): + compatible_airflow_versions = [ + airflow_version + for airflow_version, python_versions in AIRFLOW_PYTHON_COMPATIBILITY_MATRIX.items() + if python_version in python_versions + ] + + for airflow_version in compatible_airflow_versions: dockerfile += f""" # Create the virtualenv and install the proper airflow version in it RUN python -m venv /opt/airflow/airflow-{airflow_version} && \ -/opt/airflow/airflow-{airflow_version}/bin/pip install --upgrade pip && \ +/opt/airflow/airflow-{airflow_version}/bin/pip install --no-cache-dir --upgrade pip && \ /opt/airflow/airflow-{airflow_version}/bin/pip install apache-airflow=={airflow_version} \ --constraint https://raw.githubusercontent.com/apache/airflow/\ constraints-{airflow_version}/constraints-{python_version}.txt """ - run_command(["docker", "build", "--tag", image_name, "-"], input=dockerfile, text=True, check=True) + build_command = run_command( + ["docker", "build", "--tag", image_name, "-"], input=dockerfile, text=True, check=True, output=output + ) + return build_command.returncode, f"All airflow image built for python {python_version}" @dataclass diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt index 0dfeabe0e7..ff54cbc64d 100644 --- a/images/breeze/output-commands-hash.txt +++ b/images/breeze/output-commands-hash.txt @@ -52,16 +52,17 @@ release-management:start-release:419f48f6a4ff4457cb9de7ff496aebbe release-management:update-constraints:02ec4b119150e3fdbac52026e94820ef release-management:verify-provider-packages:96dce5644aad6b37080acf77b3d8de3a release-management:a78938d2775ea0253af625ce67dabcbb -sbom:generate-providers-requirements:51e0c660a5f7846ada099e871ebd4c67 +sbom:build-all-airflow-images:32f8acade299c2b112e986bae99846db +sbom:generate-providers-requirements:8fe04d5797c8f71f96f569f687827950 sbom:update-sbom-information:653be48be70b4b7ff5172d491aadc694 -sbom:b98ded4bbb76f0cb205cea32f3102aee +sbom:28d8581cba82cabc545dbb006d993072 setup:autocomplete:fffcd49e102e09ccd69b3841a9e3ea8e -setup:check-all-params-in-groups:7aa55fa1b0f17a6f7b7ca225c6b82574 +setup:check-all-params-in-groups:f9ca6bef11ed65e40f06d7cf261a4859 setup:config:aaff9748d0970f7cb02e592ac4046d5d -setup:regenerate-command-images:a228071206e00b6004ede2e69b8f4a6c +setup:regenerate-command-images:ea2fba3440bd4e84311a53abe6e8dc56 setup:self-upgrade:4af905a147fcd6670a0e33d3d369a94b setup:version:be116d90a21c2afe01087f7609774e1e -setup:c569719a4fc7be726556a266e447c871 +setup:244883e40b4d2ff7c4c7cf4b10efb680 shell:6840d0c0e939dcd03d127d5a040bf2f5 start-airflow:7981958d896eebbab19ec32147657eb6 static-checks:19926b8fcea5784b28d4a0d99865363c diff --git a/images/breeze/output_sbom.svg b/images/breeze/output_sbom.svg index 36f6faccd0..9ee73ec331 100644 --- a/images/breeze/output_sbom.svg +++ b/images/breeze/output_sbom.svg @@ -1,4 +1,4 @@ -<svg class="rich-terminal" viewBox="0 0 1482 342.79999999999995" xmlns="http://www.w3.org/2000/svg"> +<svg class="rich-terminal" viewBox="0 0 1482 367.2" xmlns="http://www.w3.org/2000/svg"> <!-- Generated with Rich https://www.textualize.io --> <style> @@ -42,7 +42,7 @@ <defs> <clipPath id="breeze-sbom-clip-terminal"> - <rect x="0" y="0" width="1463.0" height="291.79999999999995" /> + <rect x="0" y="0" width="1463.0" height="316.2" /> </clipPath> <clipPath id="breeze-sbom-line-0"> <rect x="0" y="1.5" width="1464" height="24.65"/> @@ -77,9 +77,12 @@ <clipPath id="breeze-sbom-line-10"> <rect x="0" y="245.5" width="1464" height="24.65"/> </clipPath> +<clipPath id="breeze-sbom-line-11"> + <rect x="0" y="269.9" 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="340.8" rx="8"/><text class="breeze-sbom-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: sbom</text> + <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="365.2" rx="8"/><text class="breeze-sbom-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: sbom</text> <g transform="translate(26,22)"> <circle cx="0" cy="0" r="7" fill="#ff5f57"/> <circle cx="22" cy="0" r="7" fill="#febc2e"/> @@ -98,9 +101,10 @@ </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-r1" 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-r1" 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)"> SBOM commands </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="549" clip-path="url(#breeze-sbom-line-9)">update-sbom-information                      </text><text class="breeze-sbom-r1" x="597.8" y="239.6" textLength="841.8" clip-path="url(#breeze-sbom-line-9)">Update&# [...] -</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="549" clip-path="url(#breeze-sbom-line-10)">generate-providers-requirements              </text><text class="breeze-sbom-r1" x="597.8" y="264" textLength="841.8" clip-path="url(#breeze-sbom-line-10)">Generate requirements for selected&# [...] -</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-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-line-11)"> +</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                     </text><text class="breeze-sbom-r1" x="585.6" y="239.6" textLength="854" clip-path="url(#breeze-sbom-line-9)">Update SB [...] +</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)">build-all-airflow-images                    </text><text class="breeze-sbom-r1" x="585.6" y="264" textLength="854" clip-path="url(#breeze-sbom-line-10)">Generate images&# [...] +</text><text class="breeze-sbom-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-line-11)">│</text><text class="breeze-sbom-r4" x="24.4" y="288.4" textLength="536.8" clip-path="url(#breeze-sbom-line-11)">generate-providers-requirements             </text><text class="breeze-sbom-r1" x="585.6" y="288.4" textLength="854" clip-path="url(#breeze-sbom-line-11)">Generate requirements for selected&# [...] +</text><text class="breeze-sbom-r5" x="0" y="312.8" textLength="1464" clip-path="url(#breeze-sbom-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-r1" x="1464" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-line-12)"> </text> </g> </g> diff --git a/images/breeze/output_sbom_build-all-airflow-images.svg b/images/breeze/output_sbom_build-all-airflow-images.svg new file mode 100644 index 0000000000..76e5648299 --- /dev/null +++ b/images/breeze/output_sbom_build-all-airflow-images.svg @@ -0,0 +1,156 @@ +<svg class="rich-terminal" viewBox="0 0 1482 635.5999999999999" 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-sbom-build-all-airflow-images-matrix { + font-family: Fira Code, monospace; + font-size: 20px; + line-height: 24.4px; + font-variant-east-asian: full-width; + } + + .breeze-sbom-build-all-airflow-images-title { + font-size: 18px; + font-weight: bold; + font-family: arial; + } + + .breeze-sbom-build-all-airflow-images-r1 { fill: #c5c8c6 } +.breeze-sbom-build-all-airflow-images-r2 { fill: #d0b344 } +.breeze-sbom-build-all-airflow-images-r3 { fill: #c5c8c6;font-weight: bold } +.breeze-sbom-build-all-airflow-images-r4 { fill: #68a0b3;font-weight: bold } +.breeze-sbom-build-all-airflow-images-r5 { fill: #868887 } +.breeze-sbom-build-all-airflow-images-r6 { fill: #8d7b39 } +.breeze-sbom-build-all-airflow-images-r7 { fill: #98a84b;font-weight: bold } + </style> + + <defs> + <clipPath id="breeze-sbom-build-all-airflow-images-clip-terminal"> + <rect x="0" y="0" width="1463.0" height="584.5999999999999" /> + </clipPath> + <clipPath id="breeze-sbom-build-all-airflow-images-line-0"> + <rect x="0" y="1.5" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-1"> + <rect x="0" y="25.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-2"> + <rect x="0" y="50.3" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-3"> + <rect x="0" y="74.7" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-4"> + <rect x="0" y="99.1" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-5"> + <rect x="0" y="123.5" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-6"> + <rect x="0" y="147.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-7"> + <rect x="0" y="172.3" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-8"> + <rect x="0" y="196.7" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-9"> + <rect x="0" y="221.1" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-10"> + <rect x="0" y="245.5" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-11"> + <rect x="0" y="269.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-12"> + <rect x="0" y="294.3" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-13"> + <rect x="0" y="318.7" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-14"> + <rect x="0" y="343.1" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-15"> + <rect x="0" y="367.5" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-16"> + <rect x="0" y="391.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-17"> + <rect x="0" y="416.3" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-18"> + <rect x="0" y="440.7" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-19"> + <rect x="0" y="465.1" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-20"> + <rect x="0" y="489.5" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-21"> + <rect x="0" y="513.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-build-all-airflow-images-line-22"> + <rect x="0" y="538.3" 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="633.6" rx="8"/><text class="breeze-sbom-build-all-airflow-images-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: sbom build-all-airflow-images</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-sbom-build-all-airflow-images-clip-terminal)"> + + <g class="breeze-sbom-build-all-airflow-images-matrix"> + <text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="20" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-0)"> +</text><text class="breeze-sbom-build-all-airflow-images-r2" x="12.2" y="44.4" textLength="73.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-1)">Usage:</text><text class="breeze-sbom-build-all-airflow-images-r3" x="97.6" y="44.4" textLength="439.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-1)">breeze sbom build-all-airflow-images</text><text class="breeze-sbom-build-all-airflow-images-r1" x="549" y="44.4" textLength="12.2" clip-path="url(#breeze-sb [...] +</text><text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="68.8" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-2)"> +</text><text class="breeze-sbom-build-all-airflow-images-r1" x="12.2" y="93.2" textLength="622.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-3)">Generate images with airflow versions pre-installed</text><text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-3)"> +</text><text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-4)"> +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-sbom-build-all-airflow-images-line-5)">╭─</text><text class="breeze-sbom-build-all-airflow-images-r5" x="24.4" y="142" textLength="427" clip-path="url(#breeze-sbom-build-all-airflow-images-line-5)"> Generate all airflow images flags </text><text class="breeze-sbom-build-all-airflow-images-r5" x="451.4" y="142" textLength="988.2" clip-path="url( [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-6)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-6)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="166.4" textLength="85.4" clip-path="url(#breeze-sbom-build-all-airflow-images-line-6)">-python</text [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-7)">│</text><text class="breeze-sbom-build-all-airflow-images-r6" x="170.8" y="190.8" textLength="976" clip-path="url(#breeze-sbom-build-all-airflow-images-line-7)">(3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11)               [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="215.2" textLength="1464" clip-path="url(#breeze-sbom-build-all-airflow-images-line-8)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-8)"> +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="239.6" textLength="24.4" clip-path="url(#breeze-sbom-build-all-airflow-images-line-9)">╭─</text><text class="breeze-sbom-build-all-airflow-images-r5" x="24.4" y="239.6" textLength="219.6" clip-path="url(#breeze-sbom-build-all-airflow-images-line-9)"> Parallel running </text><text class="breeze-sbom-build-all-airflow-images-r5" x="244" y="239.6" textLength="1195.6" clip-path="url(#breeze-sbom-build-all-ai [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-10)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="264" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-10)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="264" textLength="48.8" clip-path="url(#breeze-sbom-build-all-airflow-images-line-10)">-run</text><text [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-11)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-11)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="288.4" textLength="146.4" clip-path="url(#breeze-sbom-build-all-airflow-images-line-11)">-parallel [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-12)">│</text><text class="breeze-sbom-build-all-airflow-images-r6" x="378.2" y="312.8" textLength="915" clip-path="url(#breeze-sbom-build-all-airflow-images-line-12)">(INTEGER RANGE)                         &# [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-13)">│</text><text class="breeze-sbom-build-all-airflow-images-r5" x="378.2" y="337.2" textLength="915" clip-path="url(#breeze-sbom-build-all-airflow-images-line-13)">[default: 4; 1<=x<=8]                       [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-14)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-14)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="361.6" textLength="61" clip-path="url(#breeze-sbom-build-all-airflow-images-line-14)">-skip</text> [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-15)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="386" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-15)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="386" textLength="73.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-15)">-debug</text><te [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-16)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-16)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="410.4" textLength="97.6" clip-path="url(#breeze-sbom-build-all-airflow-images-line-16)">-include</ [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="434.8" textLength="1464" clip-path="url(#breeze-sbom-build-all-airflow-images-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-17)"> +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="459.2" textLength="24.4" clip-path="url(#breeze-sbom-build-all-airflow-images-line-18)">╭─</text><text class="breeze-sbom-build-all-airflow-images-r5" x="24.4" y="459.2" textLength="195.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-18)"> Common options </text><text class="breeze-sbom-build-all-airflow-images-r5" x="219.6" y="459.2" textLength="1220" clip-path="url(#breeze-sbom-build-all-ai [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-19)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-19)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="483.6" textLength="97.6" clip-path="url(#breeze-sbom-build-all-airflow-images-line-19)">-verbose</ [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-20)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-20)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="508" textLength="48.8" clip-path="url(#breeze-sbom-build-all-airflow-images-line-20)">-dry</text><text [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-21)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-21)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="532.4" textLength="85.4" clip-path="url(#breeze-sbom-build-all-airflow-images-line-21)">-answer</t [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-22)">│</text><text class="breeze-sbom-build-all-airflow-images-r4" x="24.4" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-22)">-</text><text class="breeze-sbom-build-all-airflow-images-r4" x="36.6" y="556.8" textLength="61" clip-path="url(#breeze-sbom-build-all-airflow-images-line-22)">-help</text> [...] +</text><text class="breeze-sbom-build-all-airflow-images-r5" x="0" y="581.2" textLength="1464" clip-path="url(#breeze-sbom-build-all-airflow-images-line-23)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-build-all-airflow-images-r1" x="1464" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-build-all-airflow-images-line-23)"> +</text> + </g> + </g> +</svg> diff --git a/images/breeze/output_sbom_generate-providers-requirements.svg b/images/breeze/output_sbom_generate-providers-requirements.svg index 1d5d38d00e..5504460a0e 100644 --- a/images/breeze/output_sbom_generate-providers-requirements.svg +++ b/images/breeze/output_sbom_generate-providers-requirements.svg @@ -1,4 +1,4 @@ -<svg class="rich-terminal" viewBox="0 0 1482 952.8" xmlns="http://www.w3.org/2000/svg"> +<svg class="rich-terminal" viewBox="0 0 1482 1026.0" xmlns="http://www.w3.org/2000/svg"> <!-- Generated with Rich https://www.textualize.io --> <style> @@ -43,7 +43,7 @@ <defs> <clipPath id="breeze-sbom-generate-providers-requirements-clip-terminal"> - <rect x="0" y="0" width="1463.0" height="901.8" /> + <rect x="0" y="0" width="1463.0" height="975.0" /> </clipPath> <clipPath id="breeze-sbom-generate-providers-requirements-line-0"> <rect x="0" y="1.5" width="1464" height="24.65"/> @@ -153,9 +153,18 @@ <clipPath id="breeze-sbom-generate-providers-requirements-line-35"> <rect x="0" y="855.5" width="1464" height="24.65"/> </clipPath> +<clipPath id="breeze-sbom-generate-providers-requirements-line-36"> + <rect x="0" y="879.9" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-generate-providers-requirements-line-37"> + <rect x="0" y="904.3" width="1464" height="24.65"/> + </clipPath> +<clipPath id="breeze-sbom-generate-providers-requirements-line-38"> + <rect x="0" y="928.7" width="1464" height="24.65"/> + </clipPath> </defs> - <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="950.8" rx="8"/><text class="breeze-sbom-generate-providers-requirements-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: sbom generate-providers-requirements</text> + <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1024" rx="8"/><text class="breeze-sbom-generate-providers-requirements-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: sbom generate-providers-requirements</text> <g transform="translate(26,22)"> <circle cx="0" cy="0" r="7" fill="#ff5f57"/> <circle cx="22" cy="0" r="7" fill="#febc2e"/> @@ -171,37 +180,40 @@ </text><text class="breeze-sbom-generate-providers-requirements-r1" x="12.2" y="93.2" textLength="536.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-3)">Generate requirements for selected provider.</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="93.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-3)"> </text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="117.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-4)"> </text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-5)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="142" textLength="463.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-5)"> Generate provider requirements flags </text><text class="breeze-sbom-generate-providers-requirements-r5" x="488" y="142" t [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-6)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-6)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="166.4" textLength="97.6" clip-path="url(#breeze-sbom-generate-pro [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-7)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-7)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="190.8" textLength="85.4" clip-path="url(#breeze-sbom-generate-pro [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-8)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-8)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="215.2" textLength="109.8" clip-path="url(#breeze-sbom-generate-pr [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-9)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="239.6" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-9)">(airbyte | alibaba | amazon | apache.beam | apache.cassandra | apache.drill | apache. [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="264" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">apache.flink | apache.hdfs | apache.hive | apache.impala | apache.kafka | apache.kylin | [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="288.4" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">apache.livy | apache.pig | apache.pinot | apache.spark | apache.sqoop | apprise | a [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="312.8" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">asana | atlassian.jira | celery | cloudant | cncf.kubernetes | common.sql | daskexe [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="337.2" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">databricks | datadog | dbt.cloud | dingding | discord | docker | elasticsearch  [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="361.6" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">facebook | ftp | github | google | grpc | hashicorp | http | imap |& [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="386" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">microsoft.azure | microsoft.mssql | microsoft.psrp | microsoft.winrm | mongo | mysql |  [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="410.4" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">odbc | openfaas | openlineage | opensearch | opsgenie | oracle | pagerduty |&# [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="434.8" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">| postgres | presto | redis | salesforce | samba | segment | sendgrid |&# [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="459.2" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">slack | smtp | snowflake | sqlite | ssh | tableau | tabular | telegram [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="280.6" y="483.6" textLength="1159" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">yandex | zendesk)                   &# [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="508" textLength="73.2" clip-path="url(#breeze-sbom-generate-provide [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="532.4" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)"> -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="556.8" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="556.8" textLength="219.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)"> Parallel running </text><text class="breeze-sbom-generate-providers-requirements-r5" x="244" y="556.8" textLength="1195.6" cli [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="581.2" textLength="48.8" clip-path="url(#breeze-sbom-generate-p [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="605.6" textLength="146.4" clip-path="url(#breeze-sbom-generate- [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="378.2" y="630" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">(INTEGER RANGE)                     &# [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">│</text><text class="breeze-sbom-generate-providers-requirements-r5" x="378.2" y="654.4" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">[default: 4; 1<=x<=8]                   [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="678.8" textLength="61" clip-path="url(#breeze-sbom-generate-pro [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="703.2" textLength="73.2" clip-path="url(#breeze-sbom-generate-p [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="727.6" textLength="97.6" clip-path="url(#breeze-sbom-generate-p [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)"> -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="776.4" textLength="195.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)"> Common options </text><text class="breeze-sbom-generate-providers-requirements-r5" x="219.6" y="776.4" textLength="1220" clip- [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="800.8" textLength="97.6" clip-path="url(#breeze-sbom-generate-p [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="825.2" textLength="48.8" clip-path="url(#breeze-sbom-generate-p [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="849.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="849.6" textLength="85.4" clip-path="url(#breeze-sbom-generate-p [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="874" textLength="61" clip-path="url(#breeze-sbom-generate-providers [...] -</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="898.4" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)"> +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-6)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="166.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-6)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="166.4" textLength="85.4" clip-path="url(#breeze-sbom-generate-pro [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-7)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="190.8" textLength="976" clip-path="url(#breeze-sbom-generate-providers-requirements-line-7)">(3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11)           [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-8)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="215.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-8)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="215.2" textLength="109.8" clip-path="url(#breeze-sbom-generate-pr [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-9)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="239.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-9)">(airbyte | alibaba | amazon | apache.beam | apache.cassandra | apache.drill | apach [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="264" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-10)">apache.flink | apache.hdfs | apache.hive | apache.impala | apache.kafka | apache.kylin |&# [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="288.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="288.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-11)">apache.livy | apache.pig | apache.pinot | apache.spark | apache.sqoop | apprise |  [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="312.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="312.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-12)">asana | atlassian.jira | celery | cloudant | cncf.kubernetes | common.sql | daske [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="337.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-13)">databricks | datadog | dbt.cloud | dingding | discord | docker | elasticsearch [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="361.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-14)">facebook | ftp | github | google | grpc | hashicorp | http | imap  [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="386" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-15)">| microsoft.azure | microsoft.mssql | microsoft.psrp | microsoft.winrm | mongo | mysql [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="410.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-16)">| odbc | openfaas | openlineage | opensearch | opsgenie | oracle | pagerduty [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="434.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-17)">plexus | postgres | presto | redis | salesforce | samba | segment | sen [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="459.2" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-18)">singularity | slack | smtp | snowflake | sqlite | ssh | tableau | tabul [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="483.6" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-19)">vertica | yandex | zendesk)                [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="508" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-20)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="508" textLength="109.8" clip-path="url(#breeze-sbom-generate-provid [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">│</text><text class="breeze-sbom-generate-providers-requirements-r1" x="292.8" y="532.4" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-21)">value to account for the most recent version of the provider     & [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="292.8" y="556.8" textLength="1146.8" clip-path="url(#breeze-sbom-generate-providers-requirements-line-22)">(TEXT)                       [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="581.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-23)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="581.2" textLength="73.2" clip-path="url(#breeze-sbom-generate-p [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="605.6" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="605.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-24)"> +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="630" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="630" textLength="219.6" clip-path="url(#breeze-sbom-generate-providers-requirements-line-25)"> Parallel running </text><text class="breeze-sbom-generate-providers-requirements-r5" x="244" y="630" textLength="1195.6" clip-path [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="654.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-26)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="654.4" textLength="48.8" clip-path="url(#breeze-sbom-generate-p [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="678.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-27)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="678.8" textLength="146.4" clip-path="url(#breeze-sbom-generate- [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">│</text><text class="breeze-sbom-generate-providers-requirements-r6" x="378.2" y="703.2" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-28)">(INTEGER RANGE)                     [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">│</text><text class="breeze-sbom-generate-providers-requirements-r5" x="378.2" y="727.6" textLength="915" clip-path="url(#breeze-sbom-generate-providers-requirements-line-29)">[default: 4; 1<=x<=8]                   [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="752" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-30)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="752" textLength="61" clip-path="url(#breeze-sbom-generate-providers [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="776.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-31)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="776.4" textLength="73.2" clip-path="url(#breeze-sbom-generate-p [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="800.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-32)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="800.8" textLength="97.6" clip-path="url(#breeze-sbom-generate-p [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="825.2" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="825.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-33)"> +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="849.6" textLength="24.4" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)">╭─</text><text class="breeze-sbom-generate-providers-requirements-r5" x="24.4" y="849.6" textLength="195.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-34)"> Common options </text><text class="breeze-sbom-generate-providers-requirements-r5" x="219.6" y="849.6" textLength="1220" clip- [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="874" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-35)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="874" textLength="97.6" clip-path="url(#breeze-sbom-generate-provide [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="898.4" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-36)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="898.4" textLength="48.8" clip-path="url(#breeze-sbom-generate-p [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="922.8" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-37)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="922.8" textLength="85.4" clip-path="url(#breeze-sbom-generate-p [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">│</text><text class="breeze-sbom-generate-providers-requirements-r4" x="24.4" y="947.2" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-38)">-</text><text class="breeze-sbom-generate-providers-requirements-r4" x="36.6" y="947.2" textLength="61" clip-path="url(#breeze-sbom-generate-pro [...] +</text><text class="breeze-sbom-generate-providers-requirements-r5" x="0" y="971.6" textLength="1464" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-sbom-generate-providers-requirements-r1" x="1464" y="971.6" textLength="12.2" clip-path="url(#breeze-sbom-generate-providers-requirements-line-39)"> </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 03f873859e..c29db1ff1f 100644 --- a/images/breeze/output_setup_check-all-params-in-groups.svg +++ b/images/breeze/output_setup_check-all-params-in-groups.svg @@ -167,11 +167,11 @@ </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="434.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="434.8" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">release-management:prepare-provider-packages | release-management:publish-docs |           [...] </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="459.2" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">release-management:release-prod-images | release-management:start-rc-process |            [...] </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="483.6" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">release-management:start-release | release-management:update-constraints |            [...] -</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="508" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">release-management:verify-provider-packages | release-management | sbom:generate-providers-requirements</text><text class="breeze-setup-check-a [...] -</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="532.4" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">| sbom:update-sbom-information | sbom | setup:autocomplete | setup:check-all-params-in-groups |     [...] -</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="556.8" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">setup:config | setup:regenerate-command-images | setup:self-upgrade | setup:version | setup | shell | [...] -</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)">start-airflow | static-checks | testing:docker-compose-tests | testing:helm-tests |        [...] -</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:integration-tests | testing:tests | testing)               [...] +</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="508" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">release-management:verify-provider-packages | release-management | sbom:build-all-airflow-images |     </text><te [...] +</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="532.4" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">sbom:generate-providers-requirements | sbom:update-sbom-information | sbom | setup:autocomplete |     [...] +</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="556.8" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">setup:check-all-params-in-groups | setup:config | setup:regenerate-command-images | setup:self-upgrade </text><text class="b [...] +</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-setup-check-all-params-in-groups-line-23)">│</text><text class="breeze-setup-check-all-params-in-groups-r6" x="183" y="581.2" textLength="1256.6" clip-path="url(#breeze-setup-check-all-params-in-groups-line-23)">| setup:version | setup | shell | start-airflow | static-checks | testing:docker-compose-tests | [...] +</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:helm-tests | testing:integration-tests | testing:tests | testing)         &# [...] </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-r1" 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)"> Common options </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 [...] diff --git a/images/breeze/output_setup_regenerate-command-images.svg b/images/breeze/output_setup_regenerate-command-images.svg index 427c8f14c1..bd4bd20270 100644 --- a/images/breeze/output_setup_regenerate-command-images.svg +++ b/images/breeze/output_setup_regenerate-command-images.svg @@ -180,7 +180,7 @@ </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-18)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="459.2" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-18)">release-management:prepare-provider-packages | release-management:publish-docs |           &# [...] </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-19)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="483.6" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-19)">release-management:release-prod-images | release-management:start-rc-process |            [...] </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-20)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="508" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-20)">release-management:start-release | release-management:update-constraints |              [...] -</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-21)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="532.4" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-21)">release-management:verify-provider-packages | release-management |              [...] +</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-21)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="532.4" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-21)">release-management:verify-provider-packages | release-management | sbom:build-all-airflow-images |  </text><text class="breeze-s [...] </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-22)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="556.8" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-22)">sbom:generate-providers-requirements | sbom:update-sbom-information | sbom | setup:autocomplete |   </text><text [...] </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-23)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="581.2" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-23)">setup:check-all-params-in-groups | setup:config | setup:regenerate-command-images |         & [...] </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-setup-regenerate-command-images-line-24)">│</text><text class="breeze-setup-regenerate-command-images-r6" x="219.6" y="605.6" textLength="1220" clip-path="url(#breeze-setup-regenerate-command-images-line-24)">setup:self-upgrade | setup:version | setup | shell | start-airflow | static-checks |     [...]