diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 034c8def3ec30..a7e685c3afe96 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -843,6 +843,11 @@ jobs:
RUNS_ON: "${{needs.build-info.outputs.runs-on}}"
BACKEND: sqlite
PYTHON_MAJOR_MINOR_VERSION: "${{needs.build-info.outputs.default-python-version}}"
+ TEST_TYPES: "${{needs.build-info.outputs.test-types}}"
+ FULL_TESTS_NEEDED: "${{needs.build-info.outputs.full-tests-needed}}"
+ DEBUG_RESOURCES: "${{needs.build-info.outputs.debug-resources}}"
+ JOB_ID: "test-pytest-collection"
+ COVERAGE: "false"
steps:
- name: Cleanup repo
run: docker run -v "${GITHUB_WORKSPACE}:/workspace" -u 0:0 bash -c "rm -rf /workspace/*"
@@ -858,7 +863,7 @@ jobs:
env:
DEBUG_RESOURCES: ${{needs.build-info.outputs.debug-resources}}
- name: "Tests Pytest collection"
- run: breeze shell "python /opt/airflow/scripts/in_container/test_pytest_collection.py"
+ run: breeze testing tests --run-in-parallel --collect-only
- name: "Fix ownership"
run: breeze ci fix-ownership
if: always()
@@ -904,7 +909,7 @@ jobs:
- name: "Tests: ${{matrix.python-version}}:${{needs.build-info.outputs.test-types}}"
run: breeze testing tests --run-in-parallel
- name: "Tests ARM Pytest collection: ${{matrix.python-version}}"
- run: breeze shell "python /opt/airflow/scripts/in_container/test_pytest_collection.py" arm
+ run: breeze testing tests --run-in-parallel --collect-only --remove-arm-packages
- name: "Post Tests: ${{matrix.python-version}}:${{needs.build-info.outputs.test-types}}"
uses: ./.github/actions/post_tests
@@ -992,7 +997,7 @@ jobs:
run: breeze testing tests --run-in-parallel
- name: "Tests ARM Pytest collection: ${{matrix.python-version}}"
if: env.MYSQL_VERSION != '5.7'
- run: breeze shell "python /opt/airflow/scripts/in_container/test_pytest_collection.py" arm
+ run: breeze testing tests --run-in-parallel --collect-only --remove-arm-packages
- name: "Post Tests: ${{matrix.python-version}}:${{needs.build-info.outputs.test-types}}"
uses: ./.github/actions/post_tests
@@ -1076,7 +1081,7 @@ jobs:
- name: "Tests: ${{matrix.python-version}}:${{needs.build-info.outputs.test-types}}"
run: breeze testing tests --run-in-parallel
- name: "Tests ARM Pytest collection: ${{matrix.python-version}}"
- run: breeze shell "python /opt/airflow/scripts/in_container/test_pytest_collection.py" arm
+ run: breeze testing tests --run-in-parallel --collect-only --remove-arm-packages
- name: "Post Tests: ${{matrix.python-version}}:${{needs.build-info.outputs.test-types}}"
uses: ./.github/actions/post_tests
diff --git a/Dockerfile.ci b/Dockerfile.ci
index 15366731df921..b2b83d50f1e90 100644
--- a/Dockerfile.ci
+++ b/Dockerfile.ci
@@ -912,6 +912,21 @@ if [[ ${ENABLE_TEST_COVERAGE:="false"} == "true" ]]; then
)
fi
+if [[ ${COLLECT_ONLY:="false"} == "true" ]]; then
+ EXTRA_PYTEST_ARGS+=(
+ "--collect-only"
+ "-qqqq"
+ "--disable-warnings"
+ )
+fi
+
+if [[ ${REMOVE_ARM_PACKAGES:="false"} == "true" ]]; then
+ # Test what happens if we do not have ARM packages installed.
+ # This is useful to see if pytest collection works without ARM packages which is important
+ # for the MacOS M1 users running tests in their ARM machines with `breeze testing tests` command
+ python "${IN_CONTAINER_DIR}/remove_arm_packages.py"
+fi
+
declare -a SELECTED_TESTS CLI_TESTS API_TESTS PROVIDERS_TESTS CORE_TESTS WWW_TESTS \
ALL_TESTS ALL_PRESELECTED_TESTS ALL_OTHER_TESTS
diff --git a/dev/breeze/src/airflow_breeze/commands/testing_commands.py b/dev/breeze/src/airflow_breeze/commands/testing_commands.py
index 912cc2407f48d..8aa1a02135a60 100644
--- a/dev/breeze/src/airflow_breeze/commands/testing_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/testing_commands.py
@@ -131,6 +131,8 @@ def _run_test(
if db_reset:
env_variables["DB_RESET"] = "true"
env_variables["TEST_TYPE"] = exec_shell_params.test_type
+ env_variables["COLLECT_ONLY"] = str(exec_shell_params.collect_only).lower()
+ env_variables["REMOVE_ARM_PACKAGES"] = str(exec_shell_params.remove_arm_packages).lower()
env_variables["SKIP_PROVIDER_TESTS"] = str(exec_shell_params.skip_provider_tests).lower()
if "[" in exec_shell_params.test_type and not exec_shell_params.test_type.startswith("Providers"):
get_console(output=output).print(
@@ -367,6 +369,18 @@ def run_tests_in_parallel(
is_flag=True,
envvar="UPGRADE_BOTO",
)
+@click.option(
+ "--collect-only",
+ help="Collect tests only, do not run them.",
+ is_flag=True,
+ envvar="COLLECT_ONLY",
+)
+@click.option(
+ "--remove-arm-packages",
+ help="Removes arm packages from the image to test if ARM collection works",
+ is_flag=True,
+ envvar="REMOVE_ARM_PACKAGES",
+)
@option_verbose
@option_dry_run
@click.argument("extra_pytest_args", nargs=-1, type=click.UNPROCESSED)
@@ -391,6 +405,8 @@ def command_for_tests(
mount_sources: str,
extra_pytest_args: tuple,
upgrade_boto: bool,
+ collect_only: bool,
+ remove_arm_packages: bool,
):
docker_filesystem = get_filesystem_type("/var/lib/docker")
get_console().print(f"Docker filesystem: {docker_filesystem}")
@@ -406,6 +422,8 @@ def command_for_tests(
forward_ports=False,
test_type=test_type,
upgrade_boto=upgrade_boto,
+ collect_only=collect_only,
+ remove_arm_packages=remove_arm_packages,
)
rebuild_or_pull_ci_image_if_needed(command_params=exec_shell_params)
cleanup_python_generated_files()
diff --git a/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py b/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
index 7cd81a33d9b7d..e041e5b01088f 100644
--- a/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/testing_commands_config.py
@@ -27,6 +27,7 @@
"options": [
"--test-type",
"--test-timeout",
+ "--collect-only",
"--db-reset",
"--backend",
"--python",
@@ -54,6 +55,7 @@
"--image-tag",
"--mount-sources",
"--upgrade-boto",
+ "--remove-arm-packages",
],
},
],
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 10b820617f595..e854c3db83e62 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -76,6 +76,7 @@ class ShellParams:
backend: str = ALLOWED_BACKENDS[0]
base_branch: str = "main"
ci: bool = False
+ collect_only: bool = False
db_reset: bool = False
dev_mode: bool = False
extra_args: tuple = ()
@@ -102,6 +103,7 @@ class ShellParams:
platform: str = DOCKER_DEFAULT_PLATFORM
postgres_version: str = ALLOWED_POSTGRES_VERSIONS[0]
python: str = ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[0]
+ remove_arm_packages: bool = False
skip_environment_initialization: bool = False
skip_constraints: bool = False
start_airflow: str = "false"
diff --git a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
index 08f1ce45bca9f..43661474fb2b9 100644
--- a/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/docker_command_utils.py
@@ -596,6 +596,7 @@ def update_expected_environment_variables(env: dict[str, str]) -> None:
set_value_to_default_if_not_set(env, "CI_TARGET_BRANCH", AIRFLOW_BRANCH)
set_value_to_default_if_not_set(env, "CI_TARGET_REPO", APACHE_AIRFLOW_GITHUB_REPOSITORY)
set_value_to_default_if_not_set(env, "COMMIT_SHA", commit_sha())
+ set_value_to_default_if_not_set(env, "COLLECT_ONLY", "false")
set_value_to_default_if_not_set(env, "DB_RESET", "false")
set_value_to_default_if_not_set(env, "DEFAULT_BRANCH", AIRFLOW_BRANCH)
set_value_to_default_if_not_set(env, "ENABLED_SYSTEMS", "")
@@ -610,6 +611,7 @@ def update_expected_environment_variables(env: dict[str, str]) -> None:
set_value_to_default_if_not_set(env, "LOAD_EXAMPLES", "false")
set_value_to_default_if_not_set(env, "PACKAGE_FORMAT", ALLOWED_PACKAGE_FORMATS[0])
set_value_to_default_if_not_set(env, "PYTHONDONTWRITEBYTECODE", "true")
+ set_value_to_default_if_not_set(env, "REMOVE_ARM_PACKAGES", "false")
set_value_to_default_if_not_set(env, "RUN_SYSTEM_TESTS", "false")
set_value_to_default_if_not_set(env, "RUN_TESTS", "false")
set_value_to_default_if_not_set(env, "SKIP_ENVIRONMENT_INITIALIZATION", "false")
diff --git a/images/breeze/output-commands-hash.txt b/images/breeze/output-commands-hash.txt
index dbe5fe32c084f..a3f76ce208a1f 100644
--- a/images/breeze/output-commands-hash.txt
+++ b/images/breeze/output-commands-hash.txt
@@ -60,5 +60,5 @@ stop:e5aa686b4e53707ced4039d8414d5cd6
testing:docker-compose-tests:b86c044b24138af0659a05ed6331576c
testing:helm-tests:94a442e7f3f63b34c4831a84d165690a
testing:integration-tests:225ddb6243cce5fc64f4824b87adfd98
-testing:tests:6abb9e771e9af02d352ef1cafccf260e
-testing:dec193f57ad7ac385b785dc68adf1f66
+testing:tests:953ce65d99acee99014061b2fab7b8a3
+testing:bc492ec01c4de953f28a66d0e8f50bc9
diff --git a/images/breeze/output-commands.svg b/images/breeze/output-commands.svg
index 784715a8cce83..790b9fe55da49 100644
--- a/images/breeze/output-commands.svg
+++ b/images/breeze/output-commands.svg
@@ -35,8 +35,8 @@
.breeze-help-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-help-r2 { fill: #c5c8c6 }
.breeze-help-r3 { fill: #d0b344;font-weight: bold }
-.breeze-help-r4 { fill: #868887 }
-.breeze-help-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-help-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-help-r5 { fill: #868887 }
.breeze-help-r6 { fill: #98a84b;font-weight: bold }
.breeze-help-r7 { fill: #8d7b39 }
@@ -190,50 +190,50 @@
-Usage: breeze [OPTIONS] COMMAND [ARGS]...
+Usage: breeze [OPTIONS] COMMAND [ARGS]...
-╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--python-pPython major/minor version used in Airflow image for images.(>3.7< | 3.8 | 3.9 | 3.10)│
-│[default: 3.7] │
-│--backend-bDatabase backend to use.(>sqlite< | mysql | postgres | mssql)[default: sqlite]│
-│--postgres-version-PVersion of Postgres used.(>11< | 12 | 13 | 14 | 15)[default: 11]│
-│--mysql-version-MVersion of MySQL used.(>5.7< | 8)[default: 5.7]│
-│--mssql-version-SVersion of MsSQL used.(>2017-latest< | 2019-latest)[default: 2017-latest]│
-│--integrationIntegration(s) to enable when running (can be more than one). │
-│(all | all-testable | cassandra | celery | kerberos | mongo | otel | pinot | statsd | │
-│statsd | trino) │
-│--forward-credentials-fForward local credentials to container when running.│
-│--db-reset-dReset DB when entering the container.│
-│--max-timeMaximum time that the command should take - if it takes longer, the command will fail.│
-│(INTEGER RANGE) │
-│--github-repository-gGitHub repository used to pull, push run images.(TEXT)[default: apache/airflow]│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--verbose-vPrint verbose information about performed steps.│
-│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
-│--answer-aForce answer to questions.(y | n | q | yes | no | quit)│
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Basic developer commands ───────────────────────────────────────────────────────────────────────────────────────────╮
-│start-airflow Enter breeze environment and starts all Airflow components in the tmux session. Compile assets │
-│if contents of www directory changed. │
-│static-checks Run static checks. │
-│build-docs Build documentation in the container. │
-│stop Stop running breeze environment. │
-│shell Enter breeze environment. this is the default command use when no other is selected. │
-│exec Joins the interactive shell of running airflow container. │
-│compile-www-assetsCompiles www assets. │
-│cleanup Cleans the cache of parameters, docker cache and optionally built CI/PROD images. │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Advanced command groups ────────────────────────────────────────────────────────────────────────────────────────────╮
-│testing Tools that developers can use to run tests │
-│ci-image Tools that developers can use to manually manage CI images │
-│k8s Tools that developers use to run Kubernetes tests │
-│prod-image Tools that developers can use to manually manage PROD images │
-│setup Tools that developers can use to configure Breeze │
-│release-management Tools that release managers can use to prepare and manage Airflow releases │
-│ci Tools that CI workflows use to cleanup/manage CI environment │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Basic flags ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--python-pPython major/minor version used in Airflow image for images.(>3.7< | 3.8 | 3.9 | 3.10)│
+│[default: 3.7] │
+│--backend-bDatabase backend to use.(>sqlite< | mysql | postgres | mssql)[default: sqlite]│
+│--postgres-version-PVersion of Postgres used.(>11< | 12 | 13 | 14 | 15)[default: 11]│
+│--mysql-version-MVersion of MySQL used.(>5.7< | 8)[default: 5.7]│
+│--mssql-version-SVersion of MsSQL used.(>2017-latest< | 2019-latest)[default: 2017-latest]│
+│--integrationIntegration(s) to enable when running (can be more than one). │
+│(all | all-testable | cassandra | celery | kerberos | mongo | otel | pinot | statsd | │
+│statsd | trino) │
+│--forward-credentials-fForward local credentials to container when running.│
+│--db-reset-dReset DB when entering the container.│
+│--max-timeMaximum time that the command should take - if it takes longer, the command will fail.│
+│(INTEGER RANGE) │
+│--github-repository-gGitHub repository used to pull, push run images.(TEXT)[default: apache/airflow]│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--verbose-vPrint verbose information about performed steps.│
+│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
+│--answer-aForce answer to questions.(y | n | q | yes | no | quit)│
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Basic developer commands ───────────────────────────────────────────────────────────────────────────────────────────╮
+│start-airflow Enter breeze environment and starts all Airflow components in the tmux session. Compile assets │
+│if contents of www directory changed. │
+│static-checks Run static checks. │
+│build-docs Build documentation in the container. │
+│stop Stop running breeze environment. │
+│shell Enter breeze environment. this is the default command use when no other is selected. │
+│exec Joins the interactive shell of running airflow container. │
+│compile-www-assetsCompiles www assets. │
+│cleanup Cleans the cache of parameters, docker cache and optionally built CI/PROD images. │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Advanced command groups ────────────────────────────────────────────────────────────────────────────────────────────╮
+│testing Tools that developers can use to run tests │
+│ci-image Tools that developers can use to manually manage CI images │
+│k8s Tools that developers use to run Kubernetes tests │
+│prod-image Tools that developers can use to manually manage PROD images │
+│setup Tools that developers can use to configure Breeze │
+│release-management Tools that release managers can use to prepare and manage Airflow releases │
+│ci Tools that CI workflows use to cleanup/manage CI environment │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_ci-image.svg b/images/breeze/output_ci-image.svg
index 3025e6e470c36..bf1df9347a162 100644
--- a/images/breeze/output_ci-image.svg
+++ b/images/breeze/output_ci-image.svg
@@ -35,8 +35,8 @@
.breeze-ci-image-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-ci-image-r2 { fill: #c5c8c6 }
.breeze-ci-image-r3 { fill: #d0b344;font-weight: bold }
-.breeze-ci-image-r4 { fill: #868887 }
-.breeze-ci-image-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-ci-image-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-ci-image-r5 { fill: #868887 }
.breeze-ci-image-r6 { fill: #98a84b;font-weight: bold }
@@ -93,18 +93,18 @@
-Usage: breeze ci-image [OPTIONS] COMMAND [ARGS]...
+Usage: breeze ci-image [OPTIONS] COMMAND [ARGS]...
-Tools that developers can use to manually manage CI images
+Tools that developers can use to manually manage CI images
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ CI Image tools ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│build Build CI image. Include building multiple images for all python versions. │
-│pull Pull and optionally verify CI images - possibly in parallel for all Python versions. │
-│verify Verify CI image. │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ CI Image tools ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│build Build CI image. Include building multiple images for all python versions. │
+│pull Pull and optionally verify CI images - possibly in parallel for all Python versions. │
+│verify Verify CI image. │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_ci-image_build.svg b/images/breeze/output_ci-image_build.svg
index fb6299cb70534..8319e04d12496 100644
--- a/images/breeze/output_ci-image_build.svg
+++ b/images/breeze/output_ci-image_build.svg
@@ -35,8 +35,8 @@
.breeze-ci-image-build-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-ci-image-build-r2 { fill: #c5c8c6 }
.breeze-ci-image-build-r3 { fill: #d0b344;font-weight: bold }
-.breeze-ci-image-build-r4 { fill: #868887 }
-.breeze-ci-image-build-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-ci-image-build-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-ci-image-build-r5 { fill: #868887 }
.breeze-ci-image-build-r6 { fill: #98a84b;font-weight: bold }
.breeze-ci-image-build-r7 { fill: #8d7b39 }
@@ -274,78 +274,78 @@
-Usage: breeze ci-image build [OPTIONS]
+Usage: breeze ci-image build [OPTIONS]
-Build CI image. Include building multiple images for all python versions.
+Build CI image. Include building multiple images for all python versions.
-╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--python-pPython major/minor version used in Airflow image for images.│
-│(>3.7< | 3.8 | 3.9 | 3.10) │
-│[default: 3.7] │
-│--upgrade-to-newer-dependencies-uWhen set, upgrade all PIP packages to latest.│
-│--upgrade-on-failureWhen set, attempt to run upgrade to newer dependencies when regular build │
-│fails. │
-│--image-tag-tTag the image after building it.(TEXT)[default: latest]│
-│--tag-as-latestTags the image as latest and update checksum of all files after pulling. Useful│
-│when you build or pull image with --image-tag. │
-│--docker-cache-cCache option for image used during the build.(registry | local | disabled)│
-│[default: registry] │
-│--force-buildForce image build no matter if it is determined as needed.│
-│--github-repository-gGitHub repository used to pull, push run images.(TEXT)│
-│[default: apache/airflow] │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Building images in parallel ────────────────────────────────────────────────────────────────────────────────────────╮
-│--run-in-parallelRun the operation in parallel on all or selected subset of Python versions.│
-│--parallelismMaximum number of processes to use while running the operation in parallel.│
-│(INTEGER RANGE) │
-│[default: 4; 1<=x<=8] │
-│--python-versionsSpace separated list of python versions used for build with multiple versions.(TEXT)│
-│[default: 3.7 3.8 3.9 3.10] │
-│--skip-cleanupSkip cleanup of temporary files created during parallel run.│
-│--debug-resourcesWhether to show resource information while running in parallel.│
-│--include-success-outputsWhether to include outputs of successful parallel runs (skipped by default).│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Advanced options (for power users) ─────────────────────────────────────────────────────────────────────────────────╮
-│--builderBuildx builder used to perform `docker buildx build` commands.(TEXT)│
-│--install-providers-from-sourcesInstall providers from sources when installing.│
-│--airflow-constraints-locationIf specified, it is used instead of calculating reference to the constraint │
-│file. It could be full remote URL to the location file, or local file placed in │
-│`docker-context-files` (in this case it has to start with │
-│/opt/airflow/docker-context-files). │
-│(TEXT) │
-│--airflow-constraints-modeMode of constraints for CI image building. │
-│(constraints-source-providers | constraints | constraints-no-providers)│
-│[default: constraints-source-providers] │
-│--airflow-constraints-referenceConstraint reference to use when building the image.(TEXT)│
-│--python-imageIf specified this is the base python image used to build the image. Should be │
-│something like: python:VERSION-slim-bullseye. │
-│(TEXT) │
-│--additional-python-depsAdditional python dependencies to use when building the images.(TEXT)│
-│--additional-extrasAdditional extra package while installing Airflow in the image.(TEXT)│
-│--additional-pip-install-flagsAdditional flags added to `pip install` commands (except reinstalling `pip` │
-│itself). │
-│(TEXT) │
-│--additional-dev-apt-depsAdditional apt dev dependencies to use when building the images.(TEXT)│
-│--additional-dev-apt-envAdditional environment variables set when adding dev dependencies.(TEXT)│
-│--additional-dev-apt-commandAdditional command executed before dev apt deps are installed.(TEXT)│
-│--dev-apt-depsApt dev dependencies to use when building the images.(TEXT)│
-│--dev-apt-commandCommand executed before dev apt deps are installed.(TEXT)│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮
-│--github-tokenThe token used to authenticate to GitHub.(TEXT)│
-│--github-usernameThe user name used to authenticate to GitHub.(TEXT)│
-│--platformPlatform for Airflow image.(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)│
-│--pushPush image after building it.│
-│--empty-imagePrepare empty image tagged with the same name as the Airflow image.│
-│--prepare-buildx-cachePrepares build cache (this is done as separate per-platform steps instead of building the │
-│image). │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--verbose-vPrint verbose information about performed steps.│
-│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
-│--answer-aForce answer to questions.(y | n | q | yes | no | quit)│
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--python-pPython major/minor version used in Airflow image for images.│
+│(>3.7< | 3.8 | 3.9 | 3.10) │
+│[default: 3.7] │
+│--upgrade-to-newer-dependencies-uWhen set, upgrade all PIP packages to latest.│
+│--upgrade-on-failureWhen set, attempt to run upgrade to newer dependencies when regular build │
+│fails. │
+│--image-tag-tTag the image after building it.(TEXT)[default: latest]│
+│--tag-as-latestTags the image as latest and update checksum of all files after pulling. Useful│
+│when you build or pull image with --image-tag. │
+│--docker-cache-cCache option for image used during the build.(registry | local | disabled)│
+│[default: registry] │
+│--force-buildForce image build no matter if it is determined as needed.│
+│--github-repository-gGitHub repository used to pull, push run images.(TEXT)│
+│[default: apache/airflow] │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Building images in parallel ────────────────────────────────────────────────────────────────────────────────────────╮
+│--run-in-parallelRun the operation in parallel on all or selected subset of Python versions.│
+│--parallelismMaximum number of processes to use while running the operation in parallel.│
+│(INTEGER RANGE) │
+│[default: 4; 1<=x<=8] │
+│--python-versionsSpace separated list of python versions used for build with multiple versions.(TEXT)│
+│[default: 3.7 3.8 3.9 3.10] │
+│--skip-cleanupSkip cleanup of temporary files created during parallel run.│
+│--debug-resourcesWhether to show resource information while running in parallel.│
+│--include-success-outputsWhether to include outputs of successful parallel runs (skipped by default).│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Advanced options (for power users) ─────────────────────────────────────────────────────────────────────────────────╮
+│--builderBuildx builder used to perform `docker buildx build` commands.(TEXT)│
+│--install-providers-from-sourcesInstall providers from sources when installing.│
+│--airflow-constraints-locationIf specified, it is used instead of calculating reference to the constraint │
+│file. It could be full remote URL to the location file, or local file placed in │
+│`docker-context-files` (in this case it has to start with │
+│/opt/airflow/docker-context-files). │
+│(TEXT) │
+│--airflow-constraints-modeMode of constraints for CI image building. │
+│(constraints-source-providers | constraints | constraints-no-providers)│
+│[default: constraints-source-providers] │
+│--airflow-constraints-referenceConstraint reference to use when building the image.(TEXT)│
+│--python-imageIf specified this is the base python image used to build the image. Should be │
+│something like: python:VERSION-slim-bullseye. │
+│(TEXT) │
+│--additional-python-depsAdditional python dependencies to use when building the images.(TEXT)│
+│--additional-extrasAdditional extra package while installing Airflow in the image.(TEXT)│
+│--additional-pip-install-flagsAdditional flags added to `pip install` commands (except reinstalling `pip` │
+│itself). │
+│(TEXT) │
+│--additional-dev-apt-depsAdditional apt dev dependencies to use when building the images.(TEXT)│
+│--additional-dev-apt-envAdditional environment variables set when adding dev dependencies.(TEXT)│
+│--additional-dev-apt-commandAdditional command executed before dev apt deps are installed.(TEXT)│
+│--dev-apt-depsApt dev dependencies to use when building the images.(TEXT)│
+│--dev-apt-commandCommand executed before dev apt deps are installed.(TEXT)│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮
+│--github-tokenThe token used to authenticate to GitHub.(TEXT)│
+│--github-usernameThe user name used to authenticate to GitHub.(TEXT)│
+│--platformPlatform for Airflow image.(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)│
+│--pushPush image after building it.│
+│--empty-imagePrepare empty image tagged with the same name as the Airflow image.│
+│--prepare-buildx-cachePrepares build cache (this is done as separate per-platform steps instead of building the │
+│image). │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--verbose-vPrint verbose information about performed steps.│
+│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
+│--answer-aForce answer to questions.(y | n | q | yes | no | quit)│
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_prod-image.svg b/images/breeze/output_prod-image.svg
index cd179a225efee..35bf4ae86bb6e 100644
--- a/images/breeze/output_prod-image.svg
+++ b/images/breeze/output_prod-image.svg
@@ -35,8 +35,8 @@
.breeze-prod-image-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-prod-image-r2 { fill: #c5c8c6 }
.breeze-prod-image-r3 { fill: #d0b344;font-weight: bold }
-.breeze-prod-image-r4 { fill: #868887 }
-.breeze-prod-image-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-prod-image-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-prod-image-r5 { fill: #868887 }
.breeze-prod-image-r6 { fill: #98a84b;font-weight: bold }
@@ -93,18 +93,18 @@
-Usage: breeze prod-image [OPTIONS] COMMAND [ARGS]...
+Usage: breeze prod-image [OPTIONS] COMMAND [ARGS]...
-Tools that developers can use to manually manage PROD images
+Tools that developers can use to manually manage PROD images
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Production Image tools ─────────────────────────────────────────────────────────────────────────────────────────────╮
-│build Build Production image. Include building multiple images for all or selected Python versions sequentially. │
-│pull Pull and optionally verify Production images - possibly in parallel for all Python versions. │
-│verify Verify Production image. │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Production Image tools ─────────────────────────────────────────────────────────────────────────────────────────────╮
+│build Build Production image. Include building multiple images for all or selected Python versions sequentially. │
+│pull Pull and optionally verify Production images - possibly in parallel for all Python versions. │
+│verify Verify Production image. │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_prod-image_build.svg b/images/breeze/output_prod-image_build.svg
index bf8a3d7bee23c..0358c680836f0 100644
--- a/images/breeze/output_prod-image_build.svg
+++ b/images/breeze/output_prod-image_build.svg
@@ -35,8 +35,8 @@
.breeze-prod-image-build-r1 { fill: #c5c8c6;font-weight: bold }
.breeze-prod-image-build-r2 { fill: #c5c8c6 }
.breeze-prod-image-build-r3 { fill: #d0b344;font-weight: bold }
-.breeze-prod-image-build-r4 { fill: #868887 }
-.breeze-prod-image-build-r5 { fill: #68a0b3;font-weight: bold }
+.breeze-prod-image-build-r4 { fill: #68a0b3;font-weight: bold }
+.breeze-prod-image-build-r5 { fill: #868887 }
.breeze-prod-image-build-r6 { fill: #98a84b;font-weight: bold }
.breeze-prod-image-build-r7 { fill: #8d7b39 }
@@ -334,98 +334,98 @@
-Usage: breeze prod-image build [OPTIONS]
+Usage: breeze prod-image build [OPTIONS]Build Production image. Include building multiple images for all or selected Python versions sequentially.
-╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--python-pPython major/minor version used in Airflow image for images.│
-│(>3.7< | 3.8 | 3.9 | 3.10) │
-│[default: 3.7] │
-│--install-airflow-version-VInstall version of Airflow from PyPI.(TEXT)│
-│--upgrade-to-newer-dependencies-uWhen set, upgrade all PIP packages to latest.│
-│--upgrade-on-failureWhen set, attempt to run upgrade to newer dependencies when regular build │
-│fails. │
-│--image-tag-tTag the image after building it.(TEXT)[default: latest]│
-│--tag-as-latestTags the image as latest and update checksum of all files after pulling. Useful│
-│when you build or pull image with --image-tag. │
-│--docker-cache-cCache option for image used during the build.(registry | local | disabled)│
-│[default: registry] │
-│--github-repository-gGitHub repository used to pull, push run images.(TEXT)│
-│[default: apache/airflow] │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Building images in parallel ────────────────────────────────────────────────────────────────────────────────────────╮
-│--run-in-parallelRun the operation in parallel on all or selected subset of Python versions.│
-│--parallelismMaximum number of processes to use while running the operation in parallel.│
-│(INTEGER RANGE) │
-│[default: 4; 1<=x<=8] │
-│--python-versionsSpace separated list of python versions used for build with multiple versions.(TEXT)│
-│[default: 3.7 3.8 3.9 3.10] │
-│--skip-cleanupSkip cleanup of temporary files created during parallel run.│
-│--debug-resourcesWhether to show resource information while running in parallel.│
-│--include-success-outputsWhether to include outputs of successful parallel runs (skipped by default).│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Options for customizing images ─────────────────────────────────────────────────────────────────────────────────────╮
-│--builderBuildx builder used to perform `docker buildx build` commands.(TEXT)│
-│--install-providers-from-sourcesInstall providers from sources when installing.│
-│--airflow-extrasExtras to install by default. │
-│(TEXT) │
-│[default: │
-│aiobotocore,amazon,async,celery,cncf.kubernetes,dask,docker,elasticsearch,ftp,g…│
-│--airflow-constraints-locationIf specified, it is used instead of calculating reference to the constraint │
-│file. It could be full remote URL to the location file, or local file placed in │
-│`docker-context-files` (in this case it has to start with │
-│/opt/airflow/docker-context-files). │
-│(TEXT) │
-│--airflow-constraints-modeMode of constraints for PROD image building. │
-│(constraints | constraints-no-providers | constraints-source-providers)│
-│[default: constraints] │
-│--airflow-constraints-referenceConstraint reference to use when building the image.(TEXT)│
-│--python-imageIf specified this is the base python image used to build the image. Should be │
-│something like: python:VERSION-slim-bullseye. │
-│(TEXT) │
-│--additional-extrasAdditional extra package while installing Airflow in the image.(TEXT)│
-│--additional-pip-install-flagsAdditional flags added to `pip install` commands (except reinstalling `pip` │
-│itself). │
-│(TEXT) │
-│--additional-python-depsAdditional python dependencies to use when building the images.(TEXT)│
-│--additional-runtime-apt-depsAdditional apt runtime dependencies to use when building the images.(TEXT)│
-│--additional-runtime-apt-envAdditional environment variables set when adding runtime dependencies.(TEXT)│
-│--additional-runtime-apt-commandAdditional command executed before runtime apt deps are installed.(TEXT)│
-│--additional-dev-apt-depsAdditional apt dev dependencies to use when building the images.(TEXT)│
-│--additional-dev-apt-envAdditional environment variables set when adding dev dependencies.(TEXT)│
-│--additional-dev-apt-commandAdditional command executed before dev apt deps are installed.(TEXT)│
-│--runtime-apt-depsApt runtime dependencies to use when building the images.(TEXT)│
-│--runtime-apt-commandCommand executed before runtime apt deps are installed.(TEXT)│
-│--dev-apt-depsApt dev dependencies to use when building the images.(TEXT)│
-│--dev-apt-commandCommand executed before dev apt deps are installed.(TEXT)│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Customization options (for specific customization needs) ───────────────────────────────────────────────────────────╮
-│--install-packages-from-contextInstall wheels from local docker-context-files when building image. │
-│Implies --disable-airflow-repo-cache. │
-│--cleanup-contextClean up docker context files before running build (cannot be used │
-│together with --install-packages-from-context). │
-│--disable-mysql-client-installationDo not install MySQL client.│
-│--disable-mssql-client-installationDo not install MsSQl client.│
-│--disable-postgres-client-installationDo not install Postgres client.│
-│--disable-airflow-repo-cacheDisable cache from Airflow repository during building.│
-│--install-airflow-referenceInstall Airflow using GitHub tag or branch.(TEXT)│
-│--installation-methodInstall Airflow from: sources or PyPI.(. | apache-airflow)│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮
-│--github-tokenThe token used to authenticate to GitHub.(TEXT)│
-│--github-usernameThe user name used to authenticate to GitHub.(TEXT)│
-│--platformPlatform for Airflow image.(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)│
-│--pushPush image after building it.│
-│--empty-imagePrepare empty image tagged with the same name as the Airflow image.│
-│--prepare-buildx-cachePrepares build cache (this is done as separate per-platform steps instead of building the │
-│image). │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--verbose-vPrint verbose information about performed steps.│
-│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Basic usage ────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--python-pPython major/minor version used in Airflow image for images.│
+│(>3.7< | 3.8 | 3.9 | 3.10) │
+│[default: 3.7] │
+│--install-airflow-version-VInstall version of Airflow from PyPI.(TEXT)│
+│--upgrade-to-newer-dependencies-uWhen set, upgrade all PIP packages to latest.│
+│--upgrade-on-failureWhen set, attempt to run upgrade to newer dependencies when regular build │
+│fails. │
+│--image-tag-tTag the image after building it.(TEXT)[default: latest]│
+│--tag-as-latestTags the image as latest and update checksum of all files after pulling. Useful│
+│when you build or pull image with --image-tag. │
+│--docker-cache-cCache option for image used during the build.(registry | local | disabled)│
+│[default: registry] │
+│--github-repository-gGitHub repository used to pull, push run images.(TEXT)│
+│[default: apache/airflow] │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Building images in parallel ────────────────────────────────────────────────────────────────────────────────────────╮
+│--run-in-parallelRun the operation in parallel on all or selected subset of Python versions.│
+│--parallelismMaximum number of processes to use while running the operation in parallel.│
+│(INTEGER RANGE) │
+│[default: 4; 1<=x<=8] │
+│--python-versionsSpace separated list of python versions used for build with multiple versions.(TEXT)│
+│[default: 3.7 3.8 3.9 3.10] │
+│--skip-cleanupSkip cleanup of temporary files created during parallel run.│
+│--debug-resourcesWhether to show resource information while running in parallel.│
+│--include-success-outputsWhether to include outputs of successful parallel runs (skipped by default).│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Options for customizing images ─────────────────────────────────────────────────────────────────────────────────────╮
+│--builderBuildx builder used to perform `docker buildx build` commands.(TEXT)│
+│--install-providers-from-sourcesInstall providers from sources when installing.│
+│--airflow-extrasExtras to install by default. │
+│(TEXT) │
+│[default: │
+│aiobotocore,amazon,async,celery,cncf.kubernetes,dask,docker,elasticsearch,ftp,g…│
+│--airflow-constraints-locationIf specified, it is used instead of calculating reference to the constraint │
+│file. It could be full remote URL to the location file, or local file placed in │
+│`docker-context-files` (in this case it has to start with │
+│/opt/airflow/docker-context-files). │
+│(TEXT) │
+│--airflow-constraints-modeMode of constraints for PROD image building. │
+│(constraints | constraints-no-providers | constraints-source-providers)│
+│[default: constraints] │
+│--airflow-constraints-referenceConstraint reference to use when building the image.(TEXT)│
+│--python-imageIf specified this is the base python image used to build the image. Should be │
+│something like: python:VERSION-slim-bullseye. │
+│(TEXT) │
+│--additional-extrasAdditional extra package while installing Airflow in the image.(TEXT)│
+│--additional-pip-install-flagsAdditional flags added to `pip install` commands (except reinstalling `pip` │
+│itself). │
+│(TEXT) │
+│--additional-python-depsAdditional python dependencies to use when building the images.(TEXT)│
+│--additional-runtime-apt-depsAdditional apt runtime dependencies to use when building the images.(TEXT)│
+│--additional-runtime-apt-envAdditional environment variables set when adding runtime dependencies.(TEXT)│
+│--additional-runtime-apt-commandAdditional command executed before runtime apt deps are installed.(TEXT)│
+│--additional-dev-apt-depsAdditional apt dev dependencies to use when building the images.(TEXT)│
+│--additional-dev-apt-envAdditional environment variables set when adding dev dependencies.(TEXT)│
+│--additional-dev-apt-commandAdditional command executed before dev apt deps are installed.(TEXT)│
+│--runtime-apt-depsApt runtime dependencies to use when building the images.(TEXT)│
+│--runtime-apt-commandCommand executed before runtime apt deps are installed.(TEXT)│
+│--dev-apt-depsApt dev dependencies to use when building the images.(TEXT)│
+│--dev-apt-commandCommand executed before dev apt deps are installed.(TEXT)│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Customization options (for specific customization needs) ───────────────────────────────────────────────────────────╮
+│--install-packages-from-contextInstall wheels from local docker-context-files when building image. │
+│Implies --disable-airflow-repo-cache. │
+│--cleanup-contextClean up docker context files before running build (cannot be used │
+│together with --install-packages-from-context). │
+│--disable-mysql-client-installationDo not install MySQL client.│
+│--disable-mssql-client-installationDo not install MsSQl client.│
+│--disable-postgres-client-installationDo not install Postgres client.│
+│--disable-airflow-repo-cacheDisable cache from Airflow repository during building.│
+│--install-airflow-referenceInstall Airflow using GitHub tag or branch.(TEXT)│
+│--installation-methodInstall Airflow from: sources or PyPI.(. | apache-airflow)│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Preparing cache and push (for maintainers and CI) ──────────────────────────────────────────────────────────────────╮
+│--github-tokenThe token used to authenticate to GitHub.(TEXT)│
+│--github-usernameThe user name used to authenticate to GitHub.(TEXT)│
+│--platformPlatform for Airflow image.(linux/amd64 | linux/arm64 | linux/amd64,linux/arm64)│
+│--pushPush image after building it.│
+│--empty-imagePrepare empty image tagged with the same name as the Airflow image.│
+│--prepare-buildx-cachePrepares build cache (this is done as separate per-platform steps instead of building the │
+│image). │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--verbose-vPrint verbose information about performed steps.│
+│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_static-checks.svg b/images/breeze/output_static-checks.svg
index 193609a26b7d2..74f95460f171c 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 }
@@ -220,60 +220,60 @@
-Usage: breeze static-checks [OPTIONS] [PRECOMMIT_ARGS]...
+Usage: breeze static-checks [OPTIONS] [PRECOMMIT_ARGS]...Run static checks.
-╭─ Pre-commit flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--type-tType(s) of the static checks to run. │
-│(all | black | blacken-docs | check-airflow-config-yaml-consistent | │
-│check-airflow-provider-compatibility | check-apache-license-rat | │
-│check-base-operator-partial-arguments | check-base-operator-usage | │
-│check-boring-cyborg-configuration | check-breeze-top-dependencies-limited | │
-│check-builtin-literals | check-changelog-has-no-duplicates | │
-│check-core-deprecation-classes | check-daysago-import-from-utils | │
-│check-decorated-operator-implements-custom-name | check-docstring-param-types | │
-│check-example-dags-urls | check-executables-have-shebangs | │
-│check-extra-packages-references | check-extras-order | check-for-inclusive-language | │
-│check-hooks-apply | check-incorrect-use-of-LoggingMixin | check-init-decorator-arguments│
-│| check-lazy-logging | check-links-to-example-dags-do-not-use-hardcoded-versions | │
-│check-merge-conflict | check-newsfragments-are-valid | │
-│check-no-providers-in-core-examples | check-no-relative-imports | │
-│check-only-new-session-with-provide-session | │
-│check-persist-credentials-disabled-in-github-workflows | │
-│check-pre-commit-information-consistent | check-provide-create-sessions-imports | │
-│check-provider-yaml-valid | check-providers-init-file-missing | │
-│check-providers-subpackages-init-file-exist | check-pydevd-left-in-code | │
-│check-revision-heads-map | check-safe-filter-usage-in-html | check-setup-order | │
-│check-start-date-not-used-in-defaults | check-system-tests-present | │
-│check-system-tests-tocs | check-urlparse-usage-in-code | check-xml | codespell | │
-│compile-www-assets | compile-www-assets-dev | create-missing-init-py-files-tests | │
-│debug-statements | detect-private-key | doctoc | end-of-file-fixer | fix-encoding-pragma│
-│| flynt | identity | insert-license | lint-chart-schema | lint-css | lint-dockerfile | │
-│lint-helm-chart | lint-json-schema | lint-markdown | lint-openapi | mixed-line-ending | │
-│pretty-format-json | python-no-log-warn | replace-bad-characters | rst-backticks | ruff │
-│| run-mypy | run-shellcheck | trailing-whitespace | ts-compile-format-lint-www | │
-│update-black-version | update-breeze-cmd-output | update-breeze-readme-config-hash | │
-│update-common-sql-api-stubs | update-er-diagram | update-extras | │
-│update-in-the-wild-to-be-sorted | update-inlined-dockerfile-scripts | │
-│update-installed-providers-to-be-sorted | update-local-yml-file | │
-│update-migration-references | update-providers-dependencies | │
-│update-spelling-wordlist-to-be-sorted | update-supported-versions | │
-│update-vendored-in-k8s-json-schema | update-version | yamllint) │
-│--file-fList of files to run the checks on.(PATH)│
-│--all-files-aRun checks on all files.│
-│--show-diff-on-failure-sShow diff for files modified by the checks.│
-│--last-commit-cRun checks for all files in last commit. Mutually exclusive with --commit-ref.│
-│--commit-ref-rRun checks for this commit reference only (can be any git commit-ish reference). │
-│Mutually exclusive with --last-commit. │
-│(TEXT) │
-│--github-repository-gGitHub repository used to pull, push run images.(TEXT)[default: apache/airflow]│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--verbose-vPrint verbose information about performed steps.│
-│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Pre-commit flags ───────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--type-tType(s) of the static checks to run. │
+│(all | black | blacken-docs | check-airflow-config-yaml-consistent | │
+│check-airflow-provider-compatibility | check-apache-license-rat | │
+│check-base-operator-partial-arguments | check-base-operator-usage | │
+│check-boring-cyborg-configuration | check-breeze-top-dependencies-limited | │
+│check-builtin-literals | check-changelog-has-no-duplicates | │
+│check-core-deprecation-classes | check-daysago-import-from-utils | │
+│check-decorated-operator-implements-custom-name | check-docstring-param-types | │
+│check-example-dags-urls | check-executables-have-shebangs | │
+│check-extra-packages-references | check-extras-order | check-for-inclusive-language | │
+│check-hooks-apply | check-incorrect-use-of-LoggingMixin | check-init-decorator-arguments│
+│| check-lazy-logging | check-links-to-example-dags-do-not-use-hardcoded-versions | │
+│check-merge-conflict | check-newsfragments-are-valid | │
+│check-no-providers-in-core-examples | check-no-relative-imports | │
+│check-only-new-session-with-provide-session | │
+│check-persist-credentials-disabled-in-github-workflows | │
+│check-pre-commit-information-consistent | check-provide-create-sessions-imports | │
+│check-provider-yaml-valid | check-providers-init-file-missing | │
+│check-providers-subpackages-init-file-exist | check-pydevd-left-in-code | │
+│check-revision-heads-map | check-safe-filter-usage-in-html | check-setup-order | │
+│check-start-date-not-used-in-defaults | check-system-tests-present | │
+│check-system-tests-tocs | check-urlparse-usage-in-code | check-xml | codespell | │
+│compile-www-assets | compile-www-assets-dev | create-missing-init-py-files-tests | │
+│debug-statements | detect-private-key | doctoc | end-of-file-fixer | fix-encoding-pragma│
+│| flynt | identity | insert-license | lint-chart-schema | lint-css | lint-dockerfile | │
+│lint-helm-chart | lint-json-schema | lint-markdown | lint-openapi | mixed-line-ending | │
+│pretty-format-json | python-no-log-warn | replace-bad-characters | rst-backticks | ruff │
+│| run-mypy | run-shellcheck | trailing-whitespace | ts-compile-format-lint-www | │
+│update-black-version | update-breeze-cmd-output | update-breeze-readme-config-hash | │
+│update-common-sql-api-stubs | update-er-diagram | update-extras | │
+│update-in-the-wild-to-be-sorted | update-inlined-dockerfile-scripts | │
+│update-installed-providers-to-be-sorted | update-local-yml-file | │
+│update-migration-references | update-providers-dependencies | │
+│update-spelling-wordlist-to-be-sorted | update-supported-versions | │
+│update-vendored-in-k8s-json-schema | update-version | yamllint) │
+│--file-fList of files to run the checks on.(PATH)│
+│--all-files-aRun checks on all files.│
+│--show-diff-on-failure-sShow diff for files modified by the checks.│
+│--last-commit-cRun checks for all files in last commit. Mutually exclusive with --commit-ref.│
+│--commit-ref-rRun checks for this commit reference only (can be any git commit-ish reference). │
+│Mutually exclusive with --last-commit. │
+│(TEXT) │
+│--github-repository-gGitHub repository used to pull, push run images.(TEXT)[default: apache/airflow]│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--verbose-vPrint verbose information about performed steps.│
+│--dry-run-DIf dry-run is set, commands are only printed, not executed.│
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_testing.svg b/images/breeze/output_testing.svg
index 691a330582364..db5690e0ad3e1 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 }
@@ -96,19 +96,19 @@
-Usage: breeze testing [OPTIONS] COMMAND [ARGS]...
+Usage: breeze testing [OPTIONS] COMMAND [ARGS]...Tools that developers can use to run tests
-╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│--help-hShow this message and exit.│
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
-╭─ Testing ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
-│tests Run the specified unit test targets. │
-│integration-tests Run the specified integratio tests. │
-│helm-tests Run Helm chart tests. │
-│docker-compose-tests Run docker-compose tests. │
-╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Common options ─────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│--help-hShow this message and exit.│
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
+╭─ Testing ────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
+│tests Run the specified unit test targets. │
+│integration-tests Run the specified integratio tests. │
+│helm-tests Run Helm chart tests. │
+│docker-compose-tests Run docker-compose tests. │
+╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
diff --git a/images/breeze/output_testing_tests.svg b/images/breeze/output_testing_tests.svg
index 705d63ce88fac..f28a0c9036c2c 100644
--- a/images/breeze/output_testing_tests.svg
+++ b/images/breeze/output_testing_tests.svg
@@ -1,4 +1,4 @@
-