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

ash pushed a commit to branch postgres-version-matrix
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 8b1437063fd8e2ed9195c5578d2aa4286a4bc1d2
Author: Ash Berlin-Taylor <[email protected]>
AuthorDate: Wed Nov 5 20:39:48 2025 +0000

    Update the version of postgres we test against
    
    v13 is reaching EOL in a few weeks (well before we will release 3.2,
    certainly) and v18 is out now, so we should test against it
---
 README.md                                                      |  2 +-
 dev/breeze/doc/images/output-commands.svg                      |  2 +-
 dev/breeze/doc/images/output_run.svg                           |  2 +-
 dev/breeze/doc/images/output_run.txt                           |  2 +-
 dev/breeze/doc/images/output_setup_config.svg                  |  2 +-
 dev/breeze/doc/images/output_setup_config.txt                  |  2 +-
 dev/breeze/doc/images/output_shell.svg                         | 10 +++++-----
 dev/breeze/doc/images/output_shell.txt                         |  2 +-
 dev/breeze/doc/images/output_start-airflow.svg                 | 10 +++++-----
 dev/breeze/doc/images/output_start-airflow.txt                 |  2 +-
 .../doc/images/output_testing_core-integration-tests.svg       |  2 +-
 .../doc/images/output_testing_core-integration-tests.txt       |  2 +-
 dev/breeze/doc/images/output_testing_core-tests.svg            |  6 +++---
 dev/breeze/doc/images/output_testing_core-tests.txt            |  2 +-
 .../doc/images/output_testing_providers-integration-tests.svg  |  2 +-
 .../doc/images/output_testing_providers-integration-tests.txt  |  2 +-
 dev/breeze/doc/images/output_testing_providers-tests.svg       |  6 +++---
 dev/breeze/doc/images/output_testing_providers-tests.txt       |  2 +-
 .../doc/images/output_testing_python-api-client-tests.svg      |  2 +-
 .../doc/images/output_testing_python-api-client-tests.txt      |  2 +-
 dev/breeze/doc/images/output_testing_system-tests.svg          |  6 +++---
 dev/breeze/doc/images/output_testing_system-tests.txt          |  2 +-
 dev/breeze/src/airflow_breeze/commands/common_options.py       |  3 ++-
 dev/breeze/src/airflow_breeze/global_constants.py              |  6 ++++--
 dev/breeze/src/airflow_breeze/params/shell_params.py           |  4 ++--
 dev/breeze/src/airflow_breeze/utils/selective_checks.py        |  1 +
 dev/breeze/tests/test_selective_checks.py                      | 10 +++++-----
 scripts/ci/docker-compose/backend-postgres.yml                 |  6 ++++--
 28 files changed, 54 insertions(+), 48 deletions(-)

diff --git a/README.md b/README.md
index 65342a7ef7d..f91bc364b77 100644
--- a/README.md
+++ b/README.md
@@ -104,7 +104,7 @@ Apache Airflow is tested with:
 | Python     | 3.10, 3.11, 3.12, 3.13       | 3.10, 3.11, 3.12, 3.13 |
 | Platform   | AMD64/ARM64(\*)              | AMD64/ARM64(\*)        |
 | Kubernetes | 1.30, 1.31, 1.32, 1.33, 1.34 | 1.30, 1.31, 1.32, 1.33 |
-| PostgreSQL | 13, 14, 15, 16, 17           | 13, 14, 15, 16, 17     |
+| PostgreSQL | 14, 15, 16, 17, 18           | 13, 14, 15, 16, 17     |
 | MySQL      | 8.0, 8.4, Innovation         | 8.0, 8.4, Innovation   |
 | SQLite     | 3.15.0+                      | 3.15.0+                |
 
diff --git a/dev/breeze/doc/images/output-commands.svg 
b/dev/breeze/doc/images/output-commands.svg
index d8ec4f40c1d..2a9d71767ef 100644
--- a/dev/breeze/doc/images/output-commands.svg
+++ b/dev/breeze/doc/images/output-commands.svg
@@ -369,7 +369,7 @@
 </text><text class="breeze-help-r5" x="0" y="898.4" textLength="12.2" 
clip-path="url(#breeze-help-line-36)">│</text><text class="breeze-help-r1" 
x="488" y="898.4" textLength="951.6" 
clip-path="url(#breeze-help-line-36)">test&#160;cases.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
 </text><text class="breeze-help-r5" x="0" y="922.8" textLength="12.2" 
clip-path="url(#breeze-help-line-37)">│</text><text class="breeze-help-r7" 
x="488" y="922.8" textLength="951.6" 
clip-path="url(#breeze-help-line-37)">(&gt;sqlite&lt;&#160;|&#160;mysql&#160;|&#160;postgres&#160;|&#160;none)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
 </text><text class="breeze-help-r5" x="0" y="947.2" textLength="12.2" 
clip-path="url(#breeze-help-line-38)">│</text><text class="breeze-help-r5" 
x="488" y="947.2" textLength="951.6" 
clip-path="url(#breeze-help-line-38)">[default:&#160;sqlite]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-help-r5" x="0" y="971.6" textLength="12.2" 
clip-path="url(#breeze-help-line-39)">│</text><text class="breeze-help-r4" 
x="24.4" y="971.6" textLength="219.6" 
clip-path="url(#breeze-help-line-39)">--postgres-version</text><text 
class="breeze-help-r6" x="268.4" y="971.6" textLength="24.4" 
clip-path="url(#breeze-help-line-39)">-P</text><text class="breeze-help-r1" 
x="488" y="971.6" textLength="305" 
clip-path="url(#breeze-help-line-39)">Version&#160;of&#160;Postgres& [...]
+</text><text class="breeze-help-r5" x="0" y="971.6" textLength="12.2" 
clip-path="url(#breeze-help-line-39)">│</text><text class="breeze-help-r4" 
x="24.4" y="971.6" textLength="219.6" 
clip-path="url(#breeze-help-line-39)">--postgres-version</text><text 
class="breeze-help-r6" x="268.4" y="971.6" textLength="24.4" 
clip-path="url(#breeze-help-line-39)">-P</text><text class="breeze-help-r1" 
x="488" y="971.6" textLength="305" 
clip-path="url(#breeze-help-line-39)">Version&#160;of&#160;Postgres& [...]
 </text><text class="breeze-help-r5" x="0" y="996" textLength="12.2" 
clip-path="url(#breeze-help-line-40)">│</text><text class="breeze-help-r4" 
x="24.4" y="996" textLength="183" 
clip-path="url(#breeze-help-line-40)">--mysql-version</text><text 
class="breeze-help-r6" x="268.4" y="996" textLength="24.4" 
clip-path="url(#breeze-help-line-40)">-M</text><text class="breeze-help-r1" 
x="488" y="996" textLength="268.4" 
clip-path="url(#breeze-help-line-40)">Version&#160;of&#160;MySQL&#160;used.</te 
[...]
 </text><text class="breeze-help-r5" x="0" y="1020.4" textLength="12.2" 
clip-path="url(#breeze-help-line-41)">│</text><text class="breeze-help-r4" 
x="24.4" y="1020.4" textLength="122" 
clip-path="url(#breeze-help-line-41)">--db-reset</text><text 
class="breeze-help-r6" x="268.4" y="1020.4" textLength="24.4" 
clip-path="url(#breeze-help-line-41)">-d</text><text class="breeze-help-r1" 
x="292.8" y="1020.4" textLength="12.2" 
clip-path="url(#breeze-help-line-41)">/</text><text class="breeze-help- [...]
 </text><text class="breeze-help-r5" x="0" y="1044.8" textLength="1464" 
clip-path="url(#breeze-help-line-42)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-help-r1" x="1464" y="1044.8" textLength="12.2" 
clip-path="url(#breeze-help-line-42)">
diff --git a/dev/breeze/doc/images/output_run.svg 
b/dev/breeze/doc/images/output_run.svg
index f279e4efc40..24c0661d409 100644
--- a/dev/breeze/doc/images/output_run.svg
+++ b/dev/breeze/doc/images/output_run.svg
@@ -217,7 +217,7 @@
 </text><text class="breeze-run-r5" x="0" y="264" textLength="12.2" 
clip-path="url(#breeze-run-line-10)">│</text><text class="breeze-run-r1" 
x="317.2" y="264" textLength="1122.4" 
clip-path="url(#breeze-run-line-10)">Airflow&#160;will&#160;fail.&#160;Use&#160;&#x27;none&#x27;&#160;only&#160;for&#160;specific&#160;non-DB&#160;test&#160;cases.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
 </text><text class="breeze-run-r5" x="0" y="288.4" textLength="12.2" 
clip-path="url(#breeze-run-line-11)">│</text><text class="breeze-run-r7" 
x="317.2" y="288.4" textLength="1122.4" 
clip-path="url(#breeze-run-line-11)">(&gt;sqlite&lt;&#160;|&#160;mysql&#160;|&#160;postgres&#160;|&#160;none)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
 </text><text class="breeze-run-r5" x="0" y="312.8" textLength="12.2" 
clip-path="url(#breeze-run-line-12)">│</text><text class="breeze-run-r5" 
x="317.2" y="312.8" textLength="1122.4" 
clip-path="url(#breeze-run-line-12)">[default:&#160;sqlite]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
-</text><text class="breeze-run-r5" x="0" y="337.2" textLength="12.2" 
clip-path="url(#breeze-run-line-13)">│</text><text class="breeze-run-r4" 
x="24.4" y="337.2" textLength="219.6" 
clip-path="url(#breeze-run-line-13)">--postgres-version</text><text 
class="breeze-run-r6" x="268.4" y="337.2" textLength="24.4" 
clip-path="url(#breeze-run-line-13)">-P</text><text class="breeze-run-r1" 
x="317.2" y="337.2" textLength="305" 
clip-path="url(#breeze-run-line-13)">Version&#160;of&#160;Postgres&#160;u [...]
+</text><text class="breeze-run-r5" x="0" y="337.2" textLength="12.2" 
clip-path="url(#breeze-run-line-13)">│</text><text class="breeze-run-r4" 
x="24.4" y="337.2" textLength="219.6" 
clip-path="url(#breeze-run-line-13)">--postgres-version</text><text 
class="breeze-run-r6" x="268.4" y="337.2" textLength="24.4" 
clip-path="url(#breeze-run-line-13)">-P</text><text class="breeze-run-r1" 
x="317.2" y="337.2" textLength="305" 
clip-path="url(#breeze-run-line-13)">Version&#160;of&#160;Postgres&#160;u [...]
 </text><text class="breeze-run-r5" x="0" y="361.6" textLength="12.2" 
clip-path="url(#breeze-run-line-14)">│</text><text class="breeze-run-r4" 
x="24.4" y="361.6" textLength="183" 
clip-path="url(#breeze-run-line-14)">--mysql-version</text><text 
class="breeze-run-r6" x="268.4" y="361.6" textLength="24.4" 
clip-path="url(#breeze-run-line-14)">-M</text><text class="breeze-run-r1" 
x="317.2" y="361.6" textLength="268.4" 
clip-path="url(#breeze-run-line-14)">Version&#160;of&#160;MySQL&#160;used.</ 
[...]
 </text><text class="breeze-run-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-run-line-15)">│</text><text class="breeze-run-r4" 
x="24.4" y="386" textLength="61" 
clip-path="url(#breeze-run-line-15)">--tty</text><text class="breeze-run-r1" 
x="317.2" y="386" textLength="1122.4" 
clip-path="url(#breeze-run-line-15)">Whether&#160;to&#160;allocate&#160;pseudo-tty&#160;when&#160;running&#160;docker&#160;command&#160;(useful&#160;for&#160;prek&#160;and&#160;CI&#160;to&#160;&#160;&#160
 [...]
 </text><text class="breeze-run-r5" x="0" y="410.4" textLength="12.2" 
clip-path="url(#breeze-run-line-16)">│</text><text class="breeze-run-r1" 
x="317.2" y="410.4" textLength="1122.4" 
clip-path="url(#breeze-run-line-16)">force-enable&#160;it).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
diff --git a/dev/breeze/doc/images/output_run.txt 
b/dev/breeze/doc/images/output_run.txt
index 81b3f8d344b..aeaf41df41d 100644
--- a/dev/breeze/doc/images/output_run.txt
+++ b/dev/breeze/doc/images/output_run.txt
@@ -1 +1 @@
-ca2aa23c62783955da21acd93dcb76de
+b02222411d72f3b83e237845c552e3b3
diff --git a/dev/breeze/doc/images/output_setup_config.svg 
b/dev/breeze/doc/images/output_setup_config.svg
index 1080ecd5fec..103bc75fff8 100644
--- a/dev/breeze/doc/images/output_setup_config.svg
+++ b/dev/breeze/doc/images/output_setup_config.svg
@@ -147,7 +147,7 @@
 </text><text class="breeze-setup-config-r5" x="0" y="312.8" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-12)">│</text><text 
class="breeze-setup-config-r1" x="475.8" y="312.8" textLength="963.8" 
clip-path="url(#breeze-setup-config-line-12)">test&#160;cases.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-setup-config-r5" x="0" y="337.2" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-13)">│</text><text 
class="breeze-setup-config-r7" x="475.8" y="337.2" textLength="963.8" 
clip-path="url(#breeze-setup-config-line-13)">(&gt;sqlite&lt;&#160;|&#160;mysql&#160;|&#160;postgres&#160;|&#160;none)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
 </text><text class="breeze-setup-config-r5" x="0" y="361.6" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-14)">│</text><text 
class="breeze-setup-config-r5" x="475.8" y="361.6" textLength="963.8" 
clip-path="url(#breeze-setup-config-line-14)">[default:&#160;sqlite]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-setup-config-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-15)">│</text><text 
class="breeze-setup-config-r4" x="24.4" y="386" textLength="219.6" 
clip-path="url(#breeze-setup-config-line-15)">--postgres-version</text><text 
class="breeze-setup-config-r6" x="390.4" y="386" textLength="24.4" 
clip-path="url(#breeze-setup-config-line-15)">-P</text><text 
class="breeze-setup-config-r1" x="475.8" y="386" textLength="305" 
clip-path="url(#br [...]
+</text><text class="breeze-setup-config-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-15)">│</text><text 
class="breeze-setup-config-r4" x="24.4" y="386" textLength="219.6" 
clip-path="url(#breeze-setup-config-line-15)">--postgres-version</text><text 
class="breeze-setup-config-r6" x="390.4" y="386" textLength="24.4" 
clip-path="url(#breeze-setup-config-line-15)">-P</text><text 
class="breeze-setup-config-r1" x="475.8" y="386" textLength="305" 
clip-path="url(#br [...]
 </text><text class="breeze-setup-config-r5" x="0" y="410.4" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-16)">│</text><text 
class="breeze-setup-config-r4" x="24.4" y="410.4" textLength="183" 
clip-path="url(#breeze-setup-config-line-16)">--mysql-version</text><text 
class="breeze-setup-config-r6" x="390.4" y="410.4" textLength="24.4" 
clip-path="url(#breeze-setup-config-line-16)">-M</text><text 
class="breeze-setup-config-r1" x="475.8" y="410.4" textLength="268.4" 
clip-path="ur [...]
 </text><text class="breeze-setup-config-r5" x="0" y="434.8" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-17)">│</text><text 
class="breeze-setup-config-r4" x="24.4" y="434.8" textLength="170.8" 
clip-path="url(#breeze-setup-config-line-17)">--auth-manager</text><text 
class="breeze-setup-config-r1" x="475.8" y="434.8" textLength="378.2" 
clip-path="url(#breeze-setup-config-line-17)">Specify&#160;the&#160;auth&#160;manager&#160;to&#160;set</text><text
 class="breeze-setup-config- [...]
 </text><text class="breeze-setup-config-r5" x="0" y="459.2" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-18)">│</text><text 
class="breeze-setup-config-r5" x="475.8" y="459.2" textLength="378.2" 
clip-path="url(#breeze-setup-config-line-18)">[default:&#160;SimpleAuthManager]&#160;&#160;&#160;</text><text
 class="breeze-setup-config-r5" x="1451.8" y="459.2" textLength="12.2" 
clip-path="url(#breeze-setup-config-line-18)">│</text><text 
class="breeze-setup-config-r1" x="1464" y="4 [...]
diff --git a/dev/breeze/doc/images/output_setup_config.txt 
b/dev/breeze/doc/images/output_setup_config.txt
index c16b67f110b..642ccd1a9de 100644
--- a/dev/breeze/doc/images/output_setup_config.txt
+++ b/dev/breeze/doc/images/output_setup_config.txt
@@ -1 +1 @@
-56e7d6da2cb474fc0bc61f9004966c8e
+f7db7e6d471e1d8feb2a05a3edf90bc6
diff --git a/dev/breeze/doc/images/output_shell.svg 
b/dev/breeze/doc/images/output_shell.svg
index 4863b6c739e..f1c6449340a 100644
--- a/dev/breeze/doc/images/output_shell.svg
+++ b/dev/breeze/doc/images/output_shell.svg
@@ -618,8 +618,8 @@
 </text><text class="breeze-shell-r5" x="0" y="459.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-18)">│</text><text class="breeze-shell-r1" 
x="768.6" y="459.2" textLength="671" 
clip-path="url(#breeze-shell-line-18)">Airflow.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
 </text><text class="breeze-shell-r5" x="0" y="483.6" textLength="12.2" 
clip-path="url(#breeze-shell-line-19)">│</text><text class="breeze-shell-r4" 
x="24.4" y="483.6" textLength="317.2" 
clip-path="url(#breeze-shell-line-19)">--load-default-connections</text><text 
class="breeze-shell-r6" x="719.8" y="483.6" textLength="24.4" 
clip-path="url(#breeze-shell-line-19)">-c</text><text class="breeze-shell-r1" 
x="768.6" y="483.6" textLength="671" 
clip-path="url(#breeze-shell-line-19)">Enable&#160; [...]
 </text><text class="breeze-shell-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-shell-line-20)">│</text><text class="breeze-shell-r1" 
x="768.6" y="508" textLength="671" 
clip-path="url(#breeze-shell-line-20)">starting&#160;Airflow.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="br [...]
-</text><text class="breeze-shell-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-21)">│</text><text class="breeze-shell-r4" 
x="24.4" y="532.4" textLength="317.2" 
clip-path="url(#breeze-shell-line-21)">--standalone-dag-processor</text><text 
class="breeze-shell-r1" x="341.6" y="532.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-21)">/</text><text class="breeze-shell-r4" 
x="353.8" y="532.4" textLength="341.6" 
clip-path="url(#breeze-shell-line-21)">--no-standa [...]
-</text><text class="breeze-shell-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-22)">│</text><text class="breeze-shell-r1" 
x="768.6" y="556.8" textLength="671" 
clip-path="url(#breeze-shell-line-22)">(required&#160;for&#160;Airflow&#160;3).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-shell-r5" x="1451.8"  [...]
+</text><text class="breeze-shell-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-21)">│</text><text class="breeze-shell-r4" 
x="24.4" y="532.4" textLength="317.2" 
clip-path="url(#breeze-shell-line-21)">--standalone-dag-processor</text><text 
class="breeze-shell-r1" x="341.6" y="532.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-21)">/</text><text class="breeze-shell-r4" 
x="353.8" y="532.4" textLength="341.6" 
clip-path="url(#breeze-shell-line-21)">--no-standa [...]
+</text><text class="breeze-shell-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-22)">│</text><text class="breeze-shell-r4" 
x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-22)">r</text><text class="breeze-shell-r1" 
x="768.6" y="556.8" textLength="671" 
clip-path="url(#breeze-shell-line-22)">(required&#160;for&#160;Airflow&#160;3).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-shell-r5" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-23)">│</text><text class="breeze-shell-r5" 
x="768.6" y="581.2" textLength="671" 
clip-path="url(#breeze-shell-line-23)">[default:&#160;standalone-dag-processor]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-shell-r5" x="1451.8" y="581.2" textLength="12.2" 
clip-path="url(#breeze-shell-lin [...]
 </text><text class="breeze-shell-r5" x="0" y="605.6" textLength="12.2" 
clip-path="url(#breeze-shell-line-24)">│</text><text class="breeze-shell-r4" 
x="24.4" y="605.6" textLength="390.4" 
clip-path="url(#breeze-shell-line-24)">--start-api-server-with-examples</text><text
 class="breeze-shell-r1" x="768.6" y="605.6" textLength="671" 
clip-path="url(#breeze-shell-line-24)">Start&#160;minimal&#160;airflow&#160;api-server&#160;with&#160;examples&#160;(for&#160;&#160;&#160;&#160;</text><text
 clas [...]
 </text><text class="breeze-shell-r5" x="0" y="630" textLength="12.2" 
clip-path="url(#breeze-shell-line-25)">│</text><text class="breeze-shell-r1" 
x="768.6" y="630" textLength="671" 
clip-path="url(#breeze-shell-line-25)">testing&#160;purposes)&#160;when&#160;entering&#160;breeze.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-shell-r5" x="1451.8" y="630" textLength="12.2" 
clip-path="url(#breeze-shell-line-25)">│</t [...]
@@ -655,7 +655,7 @@
 </text><text class="breeze-shell-r5" x="0" y="1362" textLength="12.2" 
clip-path="url(#breeze-shell-line-55)">│</text><text class="breeze-shell-r1" 
x="488" y="1362" textLength="951.6" 
clip-path="url(#breeze-shell-line-55)">test&#160;cases.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
 </text><text class="breeze-shell-r5" x="0" y="1386.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-56)">│</text><text class="breeze-shell-r7" 
x="488" y="1386.4" textLength="951.6" 
clip-path="url(#breeze-shell-line-56)">(&gt;sqlite&lt;&#160;|&#160;mysql&#160;|&#160;postgres&#160;|&#160;none)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
 </text><text class="breeze-shell-r5" x="0" y="1410.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-57)">│</text><text class="breeze-shell-r5" 
x="488" y="1410.8" textLength="951.6" 
clip-path="url(#breeze-shell-line-57)">[default:&#160;sqlite]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-shell-r5" x="0" y="1435.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-58)">│</text><text class="breeze-shell-r4" 
x="24.4" y="1435.2" textLength="219.6" 
clip-path="url(#breeze-shell-line-58)">--postgres-version</text><text 
class="breeze-shell-r6" x="268.4" y="1435.2" textLength="24.4" 
clip-path="url(#breeze-shell-line-58)">-P</text><text class="breeze-shell-r1" 
x="488" y="1435.2" textLength="305" 
clip-path="url(#breeze-shell-line-58)">Version&#160;of&#1 [...]
+</text><text class="breeze-shell-r5" x="0" y="1435.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-58)">│</text><text class="breeze-shell-r4" 
x="24.4" y="1435.2" textLength="219.6" 
clip-path="url(#breeze-shell-line-58)">--postgres-version</text><text 
class="breeze-shell-r6" x="268.4" y="1435.2" textLength="24.4" 
clip-path="url(#breeze-shell-line-58)">-P</text><text class="breeze-shell-r1" 
x="488" y="1435.2" textLength="305" 
clip-path="url(#breeze-shell-line-58)">Version&#160;of&#1 [...]
 </text><text class="breeze-shell-r5" x="0" y="1459.6" textLength="12.2" 
clip-path="url(#breeze-shell-line-59)">│</text><text class="breeze-shell-r4" 
x="24.4" y="1459.6" textLength="183" 
clip-path="url(#breeze-shell-line-59)">--mysql-version</text><text 
class="breeze-shell-r6" x="268.4" y="1459.6" textLength="24.4" 
clip-path="url(#breeze-shell-line-59)">-M</text><text class="breeze-shell-r1" 
x="488" y="1459.6" textLength="268.4" 
clip-path="url(#breeze-shell-line-59)">Version&#160;of&#160; [...]
 </text><text class="breeze-shell-r5" x="0" y="1484" textLength="12.2" 
clip-path="url(#breeze-shell-line-60)">│</text><text class="breeze-shell-r4" 
x="24.4" y="1484" textLength="122" 
clip-path="url(#breeze-shell-line-60)">--db-reset</text><text 
class="breeze-shell-r6" x="268.4" y="1484" textLength="24.4" 
clip-path="url(#breeze-shell-line-60)">-d</text><text class="breeze-shell-r1" 
x="292.8" y="1484" textLength="12.2" 
clip-path="url(#breeze-shell-line-60)">/</text><text class="breeze-shell [...]
 </text><text class="breeze-shell-r5" x="0" y="1508.4" textLength="1464" 
clip-path="url(#breeze-shell-line-61)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-shell-r1" x="1464" y="1508.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-61)">
@@ -713,8 +713,8 @@
 </text><text class="breeze-shell-r5" x="0" y="2777.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-113)">│</text><text class="breeze-shell-r4" 
x="24.4" y="2777.2" textLength="244" 
clip-path="url(#breeze-shell-line-113)">--excluded-providers</text><text 
class="breeze-shell-r1" x="756.4" y="2777.2" textLength="683.2" 
clip-path="url(#breeze-shell-line-113)">JSON-string&#160;of&#160;dictionary&#160;containing&#160;excluded&#160;providers&#160;</text><text
 class="breeze-shell-r5" x="14 [...]
 </text><text class="breeze-shell-r5" x="0" y="2801.6" textLength="12.2" 
clip-path="url(#breeze-shell-line-114)">│</text><text class="breeze-shell-r1" 
x="756.4" y="2801.6" textLength="683.2" 
clip-path="url(#breeze-shell-line-114)">per&#160;python&#160;version&#160;({&#x27;3.12&#x27;:&#160;[&#x27;provider&#x27;]})&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-shell-r5" x="1451.8" y="2801.6" textLength="12.2" 
clip-path="url(#breeze-s [...]
 </text><text class="breeze-shell-r5" x="0" y="2826" textLength="12.2" 
clip-path="url(#breeze-shell-line-115)">│</text><text class="breeze-shell-r7" 
x="756.4" y="2826" textLength="683.2" 
clip-path="url(#breeze-shell-line-115)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-shell-r5" x="0" y="2850.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-116)">│</text><text class="breeze-shell-r4" 
x="24.4" y="2850.4" textLength="414.8" 
clip-path="url(#breeze-shell-line-116)">--install-airflow-with-constraints</text><text
 class="breeze-shell-r1" x="439.2" y="2850.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-116)">/</text><text class="breeze-shell-r4" 
x="451.4" y="2850.4" textLength="256.2" clip-path="url(#breeze-shell-line-1 
[...]
-</text><text class="breeze-shell-r5" x="0" y="2874.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-117)">│</text><text class="breeze-shell-r1" 
x="756.4" y="2874.8" textLength="683.2" 
clip-path="url(#breeze-shell-line-117)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-shell-r5" x="1451.8" y="2874.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-117)" [...]
+</text><text class="breeze-shell-r5" x="0" y="2850.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-116)">│</text><text class="breeze-shell-r4" 
x="24.4" y="2850.4" textLength="414.8" 
clip-path="url(#breeze-shell-line-116)">--install-airflow-with-constraints</text><text
 class="breeze-shell-r1" x="439.2" y="2850.4" textLength="12.2" 
clip-path="url(#breeze-shell-line-116)">/</text><text class="breeze-shell-r4" 
x="451.4" y="2850.4" textLength="256.2" clip-path="url(#breeze-shell-line-1 
[...]
+</text><text class="breeze-shell-r5" x="0" y="2874.8" textLength="12.2" 
clip-path="url(#breeze-shell-line-117)">│</text><text class="breeze-shell-r4" 
x="24.4" y="2874.8" textLength="195.2" 
clip-path="url(#breeze-shell-line-117)">with-constraints</text><text 
class="breeze-shell-r1" x="756.4" y="2874.8" textLength="683.2" 
clip-path="url(#breeze-shell-line-117)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
 </text><text class="breeze-shell-r5" x="0" y="2899.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-118)">│</text><text class="breeze-shell-r5" 
x="756.4" y="2899.2" textLength="683.2" 
clip-path="url(#breeze-shell-line-118)">[default:&#160;install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-shell-r5" x="1451.8" y="2899.2" textLength="12.2" 
clip-path="url(#breeze-shell-line-118)">│</text><text class [...]
 </text><text class="breeze-shell-r5" x="0" y="2923.6" textLength="12.2" 
clip-path="url(#breeze-shell-line-119)">│</text><text class="breeze-shell-r4" 
x="24.4" y="2923.6" textLength="341.6" 
clip-path="url(#breeze-shell-line-119)">--install-selected-providers</text><text
 class="breeze-shell-r1" x="756.4" y="2923.6" textLength="683.2" 
clip-path="url(#breeze-shell-line-119)">Comma-separated&#160;list&#160;of&#160;providers&#160;selected&#160;to&#160;be&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
 </text><text class="breeze-shell-r5" x="0" y="2948" textLength="12.2" 
clip-path="url(#breeze-shell-line-120)">│</text><text class="breeze-shell-r1" 
x="756.4" y="2948" textLength="231.8" 
clip-path="url(#breeze-shell-line-120)">installed&#160;(implies&#160;</text><text
 class="breeze-shell-r4" x="988.2" y="2948" textLength="353.8" 
clip-path="url(#breeze-shell-line-120)">--use-distributions-from-dist</text><text
 class="breeze-shell-r1" x="1342" y="2948" textLength="97.6" 
clip-path="url(#bree [...]
diff --git a/dev/breeze/doc/images/output_shell.txt 
b/dev/breeze/doc/images/output_shell.txt
index 90366bcf773..7f7f0130866 100644
--- a/dev/breeze/doc/images/output_shell.txt
+++ b/dev/breeze/doc/images/output_shell.txt
@@ -1 +1 @@
-95e0df9ab3cf89dbd869e6e9de9062ea
+8464ae6ecd0d5580f3e6d23a9e8c455c
diff --git a/dev/breeze/doc/images/output_start-airflow.svg 
b/dev/breeze/doc/images/output_start-airflow.svg
index 147bf7d18c7..23dc08e6509 100644
--- a/dev/breeze/doc/images/output_start-airflow.svg
+++ b/dev/breeze/doc/images/output_start-airflow.svg
@@ -528,8 +528,8 @@
 </text><text class="breeze-start-airflow-r5" x="0" y="459.2" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-18)">│</text><text 
class="breeze-start-airflow-r7" x="768.6" y="459.2" textLength="671" 
clip-path="url(#breeze-start-airflow-line-18)">localstack&#160;|&#160;mongo&#160;|&#160;mssql&#160;|&#160;openlineage&#160;|&#160;otel&#160;|&#160;pinot</text><text
 class="breeze-start-airflow-r5" x="1451.8" y="459.2" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-18)"> [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="483.6" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-19)">│</text><text 
class="breeze-start-airflow-r7" x="768.6" y="483.6" textLength="671" 
clip-path="url(#breeze-start-airflow-line-19)">|&#160;qdrant&#160;|&#160;redis&#160;|&#160;redis&#160;|&#160;statsd&#160;|&#160;tinkerpop&#160;|&#160;trino&#160;|</text><text
 class="breeze-start-airflow-r5" x="1451.8" y="483.6" textLength="12.2" 
clip-path="url(#breeze-start-airflow- [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-20)">│</text><text 
class="breeze-start-airflow-r7" x="768.6" y="508" textLength="671" 
clip-path="url(#breeze-start-airflow-line-20)">ydb)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-21)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="532.4" textLength="317.2" 
clip-path="url(#breeze-start-airflow-line-21)">--standalone-dag-processor</text><text
 class="breeze-start-airflow-r1" x="341.6" y="532.4" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-21)">/</text><text 
class="breeze-start-airflow-r4" x="353.8" y="532.4" textLength="3 [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-22)">│</text><text 
class="breeze-start-airflow-r1" x="768.6" y="556.8" textLength="671" 
clip-path="url(#breeze-start-airflow-line-22)">(required&#160;for&#160;Airflow&#160;3).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 cla [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-21)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="532.4" textLength="317.2" 
clip-path="url(#breeze-start-airflow-line-21)">--standalone-dag-processor</text><text
 class="breeze-start-airflow-r1" x="341.6" y="532.4" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-21)">/</text><text 
class="breeze-start-airflow-r4" x="353.8" y="532.4" textLength="3 [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-22)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-22)">r</text><text 
class="breeze-start-airflow-r1" x="768.6" y="556.8" textLength="671" 
clip-path="url(#breeze-start-airflow-line-22)">(required&#160;for&#160;Airflow&#160;3).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-23)">│</text><text 
class="breeze-start-airflow-r5" x="768.6" y="581.2" textLength="671" 
clip-path="url(#breeze-start-airflow-line-23)">[default:&#160;standalone-dag-processor]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-start-airflow-r5" x="1451.8" y="581.2" textLength [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="605.6" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-24)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="605.6" textLength="170.8" 
clip-path="url(#breeze-start-airflow-line-24)">--auth-manager</text><text 
class="breeze-start-airflow-r1" x="768.6" y="605.6" textLength="463.6" 
clip-path="url(#breeze-start-airflow-line-24)">Specify&#160;the&#160;auth&#160;manager&#160;to&#160;set&#160;&#160;&#160;&#160;&#160;&#16
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="630" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-25)">│</text><text 
class="breeze-start-airflow-r7" x="768.6" y="630" textLength="463.6" 
clip-path="url(#breeze-start-airflow-line-25)">(&gt;SimpleAuthManager&lt;&#160;|&#160;FabAuthManager)</text><text
 class="breeze-start-airflow-r5" x="1451.8" y="630" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-25)">│</text><text 
class="breeze-start-airflow-r1" x="1464"  [...]
@@ -557,7 +557,7 @@
 </text><text class="breeze-start-airflow-r5" x="0" y="1166.8" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-47)">│</text><text 
class="breeze-start-airflow-r1" x="488" y="1166.8" textLength="951.6" 
clip-path="url(#breeze-start-airflow-line-47)">test&#160;cases.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="1191.2" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-48)">│</text><text 
class="breeze-start-airflow-r7" x="488" y="1191.2" textLength="951.6" 
clip-path="url(#breeze-start-airflow-line-48)">(&gt;sqlite&lt;&#160;|&#160;mysql&#160;|&#160;postgres&#160;|&#160;none)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="1215.6" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-49)">│</text><text 
class="breeze-start-airflow-r5" x="488" y="1215.6" textLength="951.6" 
clip-path="url(#breeze-start-airflow-line-49)">[default:&#160;sqlite]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="1240" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-50)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="1240" textLength="219.6" 
clip-path="url(#breeze-start-airflow-line-50)">--postgres-version</text><text 
class="breeze-start-airflow-r6" x="268.4" y="1240" textLength="24.4" 
clip-path="url(#breeze-start-airflow-line-50)">-P</text><text 
class="breeze-start-airflow-r1" x="488" y="1240" textLength="305" clip-path 
[...]
+</text><text class="breeze-start-airflow-r5" x="0" y="1240" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-50)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="1240" textLength="219.6" 
clip-path="url(#breeze-start-airflow-line-50)">--postgres-version</text><text 
class="breeze-start-airflow-r6" x="268.4" y="1240" textLength="24.4" 
clip-path="url(#breeze-start-airflow-line-50)">-P</text><text 
class="breeze-start-airflow-r1" x="488" y="1240" textLength="305" clip-path 
[...]
 </text><text class="breeze-start-airflow-r5" x="0" y="1264.4" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-51)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="1264.4" textLength="183" 
clip-path="url(#breeze-start-airflow-line-51)">--mysql-version</text><text 
class="breeze-start-airflow-r6" x="268.4" y="1264.4" textLength="24.4" 
clip-path="url(#breeze-start-airflow-line-51)">-M</text><text 
class="breeze-start-airflow-r1" x="488" y="1264.4" textLength="268.4" clip [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="1288.8" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-52)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="1288.8" textLength="122" 
clip-path="url(#breeze-start-airflow-line-52)">--db-reset</text><text 
class="breeze-start-airflow-r6" x="268.4" y="1288.8" textLength="24.4" 
clip-path="url(#breeze-start-airflow-line-52)">-d</text><text 
class="breeze-start-airflow-r1" x="292.8" y="1288.8" textLength="12.2" clip-pat 
[...]
 </text><text class="breeze-start-airflow-r5" x="0" y="1313.2" 
textLength="1464" 
clip-path="url(#breeze-start-airflow-line-53)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-start-airflow-r1" x="1464" y="1313.2" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-53)">
@@ -605,8 +605,8 @@
 </text><text class="breeze-start-airflow-r5" x="0" y="2338" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-95)">│</text><text 
class="breeze-start-airflow-r5" x="756.4" y="2338" textLength="683.2" 
clip-path="url(#breeze-start-airflow-line-95)">[default:&#160;&quot;&quot;]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="2362.4" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-96)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="2362.4" textLength="341.6" 
clip-path="url(#breeze-start-airflow-line-96)">--clean-airflow-installation</text><text
 class="breeze-start-airflow-r1" x="756.4" y="2362.4" textLength="683.2" 
clip-path="url(#breeze-start-airflow-line-96)">Clean&#160;the&#160;airflow&#160;installation&#160;before&#160;installing
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="2386.8" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-97)">│</text><text 
class="breeze-start-airflow-r1" x="756.4" y="2386.8" textLength="158.6" 
clip-path="url(#breeze-start-airflow-line-97)">specified&#160;by&#160;</text><text
 class="breeze-start-airflow-r4" x="915" y="2386.8" textLength="256.2" 
clip-path="url(#breeze-start-airflow-line-97)">--use-airflow-version</text><text
 class="breeze-start-airflow-r1" x="1171.2" y= [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2411.2" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-98)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="2411.2" textLength="414.8" 
clip-path="url(#breeze-start-airflow-line-98)">--install-airflow-with-constraints</text><text
 class="breeze-start-airflow-r1" x="439.2" y="2411.2" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-98)">/</text><text 
class="breeze-start-airflow-r4" x="451.4" y="2411.2" t [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2435.6" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-99)">│</text><text 
class="breeze-start-airflow-r1" x="756.4" y="2435.6" textLength="683.2" 
clip-path="url(#breeze-start-airflow-line-99)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-start-airflow-r5" x="1451.8" y="2435.6" textLength="12.2" c [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2411.2" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-98)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="2411.2" textLength="414.8" 
clip-path="url(#breeze-start-airflow-line-98)">--install-airflow-with-constraints</text><text
 class="breeze-start-airflow-r1" x="439.2" y="2411.2" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-98)">/</text><text 
class="breeze-start-airflow-r4" x="451.4" y="2411.2" t [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2435.6" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-99)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="2435.6" textLength="195.2" 
clip-path="url(#breeze-start-airflow-line-99)">with-constraints</text><text 
class="breeze-start-airflow-r1" x="756.4" y="2435.6" textLength="683.2" 
clip-path="url(#breeze-start-airflow-line-99)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="2460" textLength="12.2" 
clip-path="url(#breeze-start-airflow-line-100)">│</text><text 
class="breeze-start-airflow-r5" x="756.4" y="2460" textLength="683.2" 
clip-path="url(#breeze-start-airflow-line-100)">[default:&#160;install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-start-airflow-r5" x="1451.8" y="2460" textLength="12.2" 
clip-path="url(#breeze-st [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="2484.4" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-101)">│</text><text 
class="breeze-start-airflow-r4" x="24.4" y="2484.4" textLength="341.6" 
clip-path="url(#breeze-start-airflow-line-101)">--install-selected-providers</text><text
 class="breeze-start-airflow-r1" x="756.4" y="2484.4" textLength="683.2" 
clip-path="url(#breeze-start-airflow-line-101)">Comma-separated&#160;list&#160;of&#160;providers&#160;selected&#160;to
 [...]
 </text><text class="breeze-start-airflow-r5" x="0" y="2508.8" 
textLength="12.2" clip-path="url(#breeze-start-airflow-line-102)">│</text><text 
class="breeze-start-airflow-r1" x="756.4" y="2508.8" textLength="231.8" 
clip-path="url(#breeze-start-airflow-line-102)">installed&#160;(implies&#160;</text><text
 class="breeze-start-airflow-r4" x="988.2" y="2508.8" textLength="353.8" 
clip-path="url(#breeze-start-airflow-line-102)">--use-distributions-from-dist</text><text
 class="breeze-start-airflo [...]
diff --git a/dev/breeze/doc/images/output_start-airflow.txt 
b/dev/breeze/doc/images/output_start-airflow.txt
index 67f111559ff..3cb3caeb201 100644
--- a/dev/breeze/doc/images/output_start-airflow.txt
+++ b/dev/breeze/doc/images/output_start-airflow.txt
@@ -1 +1 @@
-7854062431a9966d0de111cbd5a52cf0
+9b8dc4493f133164b5452b3253712635
diff --git a/dev/breeze/doc/images/output_testing_core-integration-tests.svg 
b/dev/breeze/doc/images/output_testing_core-integration-tests.svg
index 2958f5cb9ac..706a1e9fe2a 100644
--- a/dev/breeze/doc/images/output_testing_core-integration-tests.svg
+++ b/dev/breeze/doc/images/output_testing_core-integration-tests.svg
@@ -226,7 +226,7 @@
 </text><text class="breeze-testing-core-integration-tests-r5" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-22)">│</text><text 
class="breeze-testing-core-integration-tests-r4" x="24.4" y="556.8" 
textLength="97.6" 
clip-path="url(#breeze-testing-core-integration-tests-line-22)">--python</text><text
 class="breeze-testing-core-integration-tests-r7" x="561.2" y="556.8" 
textLength="24.4" clip-path="url(#breeze-testing-core-integration-tests-line-2 
[...]
 </text><text class="breeze-testing-core-integration-tests-r5" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-23)">│</text><text 
class="breeze-testing-core-integration-tests-r6" x="610" y="581.2" 
textLength="732" 
clip-path="url(#breeze-testing-core-integration-tests-line-23)">(&gt;3.10&lt;&#160;|&#160;3.11&#160;|&#160;3.12&#160;|&#160;3.13)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
 </text><text class="breeze-testing-core-integration-tests-r5" x="0" y="605.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-24)">│</text><text 
class="breeze-testing-core-integration-tests-r5" x="610" y="605.6" 
textLength="732" 
clip-path="url(#breeze-testing-core-integration-tests-line-24)">[default:&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-testing-core-integration-tests-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-25)">│</text><text 
class="breeze-testing-core-integration-tests-r4" x="24.4" y="630" 
textLength="219.6" 
clip-path="url(#breeze-testing-core-integration-tests-line-25)">--postgres-version</text><text
 class="breeze-testing-core-integration-tests-r7" x="561.2" y="630" 
textLength="24.4" clip-path="url(#breeze-testing-core-integration-tests-l [...]
+</text><text class="breeze-testing-core-integration-tests-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-25)">│</text><text 
class="breeze-testing-core-integration-tests-r4" x="24.4" y="630" 
textLength="219.6" 
clip-path="url(#breeze-testing-core-integration-tests-line-25)">--postgres-version</text><text
 class="breeze-testing-core-integration-tests-r7" x="561.2" y="630" 
textLength="24.4" clip-path="url(#breeze-testing-core-integration-tests-l [...]
 </text><text class="breeze-testing-core-integration-tests-r5" x="0" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-26)">│</text><text 
class="breeze-testing-core-integration-tests-r4" x="24.4" y="654.4" 
textLength="183" 
clip-path="url(#breeze-testing-core-integration-tests-line-26)">--mysql-version</text><text
 class="breeze-testing-core-integration-tests-r7" x="561.2" y="654.4" 
textLength="24.4" clip-path="url(#breeze-testing-core-integration-tests- [...]
 </text><text class="breeze-testing-core-integration-tests-r5" x="0" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-27)">│</text><text 
class="breeze-testing-core-integration-tests-r4" x="24.4" y="678.8" 
textLength="256.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-27)">--forward-credentials</text><text
 class="breeze-testing-core-integration-tests-r7" x="561.2" y="678.8" 
textLength="24.4" clip-path="url(#breeze-testing-core-integratio [...]
 </text><text class="breeze-testing-core-integration-tests-r5" x="0" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-integration-tests-line-28)">│</text><text 
class="breeze-testing-core-integration-tests-r4" x="24.4" y="703.2" 
textLength="231.8" 
clip-path="url(#breeze-testing-core-integration-tests-line-28)">--force-sa-warnings</text><text
 class="breeze-testing-core-integration-tests-r1" x="256.2" y="703.2" 
textLength="12.2" clip-path="url(#breeze-testing-core-integration- [...]
diff --git a/dev/breeze/doc/images/output_testing_core-integration-tests.txt 
b/dev/breeze/doc/images/output_testing_core-integration-tests.txt
index 6f65bfd22bc..94477c562d3 100644
--- a/dev/breeze/doc/images/output_testing_core-integration-tests.txt
+++ b/dev/breeze/doc/images/output_testing_core-integration-tests.txt
@@ -1 +1 @@
-fcdfb10dd9218ce4bc86610506cdddc9
+53fe8db08521c534a14d2b9fb2e5dc3a
diff --git a/dev/breeze/doc/images/output_testing_core-tests.svg 
b/dev/breeze/doc/images/output_testing_core-tests.svg
index 24aaae69c43..c59932ba8e4 100644
--- a/dev/breeze/doc/images/output_testing_core-tests.svg
+++ b/dev/breeze/doc/images/output_testing_core-tests.svg
@@ -435,7 +435,7 @@
 </text><text class="breeze-testing-core-tests-r5" x="0" y="971.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-39)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="971.6" textLength="97.6" 
clip-path="url(#breeze-testing-core-tests-line-39)">--python</text><text 
class="breeze-testing-core-tests-r7" x="561.2" y="971.6" textLength="24.4" 
clip-path="url(#breeze-testing-core-tests-line-39)">-p</text><text 
class="breeze-testing-core-tests-r1" x="610" y="971.6 [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="996" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-40)">│</text><text 
class="breeze-testing-core-tests-r6" x="610" y="996" textLength="732" 
clip-path="url(#breeze-testing-core-tests-line-40)">(&gt;3.10&lt;&#160;|&#160;3.11&#160;|&#160;3.12&#160;|&#160;3.13)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1020.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-41)">│</text><text 
class="breeze-testing-core-tests-r5" x="610" y="1020.4" textLength="732" 
clip-path="url(#breeze-testing-core-tests-line-41)">[default:&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1044.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-42)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="1044.8" textLength="219.6" 
clip-path="url(#breeze-testing-core-tests-line-42)">--postgres-version</text><text
 class="breeze-testing-core-tests-r7" x="561.2" y="1044.8" textLength="24.4" 
clip-path="url(#breeze-testing-core-tests-line-42)">-P</text><text 
class="breeze-testing-core-tests-r1" x= [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1044.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-42)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="1044.8" textLength="219.6" 
clip-path="url(#breeze-testing-core-tests-line-42)">--postgres-version</text><text
 class="breeze-testing-core-tests-r7" x="561.2" y="1044.8" textLength="24.4" 
clip-path="url(#breeze-testing-core-tests-line-42)">-P</text><text 
class="breeze-testing-core-tests-r1" x= [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1069.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-43)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="1069.2" textLength="183" 
clip-path="url(#breeze-testing-core-tests-line-43)">--mysql-version</text><text 
class="breeze-testing-core-tests-r7" x="561.2" y="1069.2" textLength="24.4" 
clip-path="url(#breeze-testing-core-tests-line-43)">-M</text><text 
class="breeze-testing-core-tests-r1" x="610" [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1093.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-44)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="1093.6" textLength="256.2" 
clip-path="url(#breeze-testing-core-tests-line-44)">--forward-credentials</text><text
 class="breeze-testing-core-tests-r7" x="561.2" y="1093.6" textLength="24.4" 
clip-path="url(#breeze-testing-core-tests-line-44)">-f</text><text 
class="breeze-testing-core-tests-r1" [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="1118" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-45)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="1118" textLength="231.8" 
clip-path="url(#breeze-testing-core-tests-line-45)">--force-sa-warnings</text><text
 class="breeze-testing-core-tests-r1" x="256.2" y="1118" textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-45)">/</text><text 
class="breeze-testing-core-tests-r4" x="268.4 [...]
@@ -479,8 +479,8 @@
 </text><text class="breeze-testing-core-tests-r5" x="0" y="2045.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-83)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="2045.2" textLength="329.4" 
clip-path="url(#breeze-testing-core-tests-line-83)">--force-lowest-dependencies</text><text
 class="breeze-testing-core-tests-r1" x="756.4" y="2045.2" textLength="683.2" 
clip-path="url(#breeze-testing-core-tests-line-83)">Run&#160;tests&#160;for&#160;the&#160;lowest
 [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="2069.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-84)">│</text><text 
class="breeze-testing-core-tests-r1" x="756.4" y="2069.6" textLength="683.2" 
clip-path="url(#breeze-testing-core-tests-line-84)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text
 class="breeze-testing-core-tests-r5" x="1451.8" y="2069.6" textLength="12.2" 
clip-path="url(#breeze-testing- [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="2094" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-85)">│</text><text 
class="breeze-testing-core-tests-r1" x="756.4" y="2094" textLength="683.2" 
clip-path="url(#breeze-testing-core-tests-line-85)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2118.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-86)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="2118.4" textLength="414.8" 
clip-path="url(#breeze-testing-core-tests-line-86)">--install-airflow-with-constraints</text><text
 class="breeze-testing-core-tests-r1" x="439.2" y="2118.4" textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-86)">/</text><text 
class="breeze-testing-co [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2142.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-87)">│</text><text 
class="breeze-testing-core-tests-r1" x="756.4" y="2142.8" textLength="683.2" 
clip-path="url(#breeze-testing-core-tests-line-87)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-testing-core-tests-r5" x="1451.8" y="21 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2118.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-86)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="2118.4" textLength="414.8" 
clip-path="url(#breeze-testing-core-tests-line-86)">--install-airflow-with-constraints</text><text
 class="breeze-testing-core-tests-r1" x="439.2" y="2118.4" textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-86)">/</text><text 
class="breeze-testing-co [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2142.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-87)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="2142.8" textLength="195.2" 
clip-path="url(#breeze-testing-core-tests-line-87)">with-constraints</text><text
 class="breeze-testing-core-tests-r1" x="756.4" y="2142.8" textLength="683.2" 
clip-path="url(#breeze-testing-core-tests-line-87)">determined&#160;from&#160;package&#160;or&#160;airflow&
 [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="2167.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-88)">│</text><text 
class="breeze-testing-core-tests-r5" x="756.4" y="2167.2" textLength="683.2" 
clip-path="url(#breeze-testing-core-tests-line-88)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-testing-core-tests-r5" x="1451.8" y="2167.2" textLength="12.2" 
clip-path=" [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="2191.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text 
class="breeze-testing-core-tests-r4" x="24.4" y="2191.6" textLength="256.2" 
clip-path="url(#breeze-testing-core-tests-line-89)">--distribution-format</text><text
 class="breeze-testing-core-tests-r1" x="756.4" y="2191.6" textLength="231.8" 
clip-path="url(#breeze-testing-core-tests-line-89)">Format&#160;of&#160;packages.</text><text
 class="b [...]
 </text><text class="breeze-testing-core-tests-r5" x="0" y="2216" 
textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text 
class="breeze-testing-core-tests-r5" x="756.4" y="2216" textLength="231.8" 
clip-path="url(#breeze-testing-core-tests-line-90)">[default:&#160;wheel]&#160;&#160;&#160;</text><text
 class="breeze-testing-core-tests-r5" x="1451.8" y="2216" textLength="12.2" 
clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text 
class="breeze-testing-c [...]
diff --git a/dev/breeze/doc/images/output_testing_core-tests.txt 
b/dev/breeze/doc/images/output_testing_core-tests.txt
index 813a22363e3..91014b8330a 100644
--- a/dev/breeze/doc/images/output_testing_core-tests.txt
+++ b/dev/breeze/doc/images/output_testing_core-tests.txt
@@ -1 +1 @@
-45ec527f9e8de3f51bc10cfa82c8b073
+58e2749e4096ebef0ac10a65fc8215aa
diff --git 
a/dev/breeze/doc/images/output_testing_providers-integration-tests.svg 
b/dev/breeze/doc/images/output_testing_providers-integration-tests.svg
index 5502d52d7cf..81233f60a2d 100644
--- a/dev/breeze/doc/images/output_testing_providers-integration-tests.svg
+++ b/dev/breeze/doc/images/output_testing_providers-integration-tests.svg
@@ -229,7 +229,7 @@
 </text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="556.8" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-22)">│</text><text
 class="breeze-testing-providers-integration-tests-r4" x="24.4" y="556.8" 
textLength="97.6" 
clip-path="url(#breeze-testing-providers-integration-tests-line-22)">--python</text><text
 class="breeze-testing-providers-integration-tests-r7" x="561.2" y="556.8" 
textLength="24.4" clip-path="url(#breeze-testing-prov [...]
 </text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="581.2" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-23)">│</text><text
 class="breeze-testing-providers-integration-tests-r6" x="610" y="581.2" 
textLength="732" 
clip-path="url(#breeze-testing-providers-integration-tests-line-23)">(&gt;3.10&lt;&#160;|&#160;3.11&#160;|&#160;3.12&#160;|&#160;3.13)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
 </text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="605.6" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-24)">│</text><text
 class="breeze-testing-providers-integration-tests-r5" x="610" y="605.6" 
textLength="732" 
clip-path="url(#breeze-testing-providers-integration-tests-line-24)">[default:&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="630" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-25)">│</text><text
 class="breeze-testing-providers-integration-tests-r4" x="24.4" y="630" 
textLength="219.6" 
clip-path="url(#breeze-testing-providers-integration-tests-line-25)">--postgres-version</text><text
 class="breeze-testing-providers-integration-tests-r7" x="561.2" y="630" 
textLength="24.4" clip-path="url(#breeze-testing [...]
+</text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="630" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-25)">│</text><text
 class="breeze-testing-providers-integration-tests-r4" x="24.4" y="630" 
textLength="219.6" 
clip-path="url(#breeze-testing-providers-integration-tests-line-25)">--postgres-version</text><text
 class="breeze-testing-providers-integration-tests-r7" x="561.2" y="630" 
textLength="24.4" clip-path="url(#breeze-testing [...]
 </text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="654.4" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-26)">│</text><text
 class="breeze-testing-providers-integration-tests-r4" x="24.4" y="654.4" 
textLength="183" 
clip-path="url(#breeze-testing-providers-integration-tests-line-26)">--mysql-version</text><text
 class="breeze-testing-providers-integration-tests-r7" x="561.2" y="654.4" 
textLength="24.4" clip-path="url(#breeze-testin [...]
 </text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="678.8" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-27)">│</text><text
 class="breeze-testing-providers-integration-tests-r4" x="24.4" y="678.8" 
textLength="256.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-27)">--forward-credentials</text><text
 class="breeze-testing-providers-integration-tests-r7" x="561.2" y="678.8" 
textLength="24.4" clip-path="url(#breez [...]
 </text><text class="breeze-testing-providers-integration-tests-r5" x="0" 
y="703.2" textLength="12.2" 
clip-path="url(#breeze-testing-providers-integration-tests-line-28)">│</text><text
 class="breeze-testing-providers-integration-tests-r4" x="24.4" y="703.2" 
textLength="231.8" 
clip-path="url(#breeze-testing-providers-integration-tests-line-28)">--force-sa-warnings</text><text
 class="breeze-testing-providers-integration-tests-r1" x="256.2" y="703.2" 
textLength="12.2" clip-path="url(#breeze- [...]
diff --git 
a/dev/breeze/doc/images/output_testing_providers-integration-tests.txt 
b/dev/breeze/doc/images/output_testing_providers-integration-tests.txt
index 1c00b68dbc1..0f5cb0e91ee 100644
--- a/dev/breeze/doc/images/output_testing_providers-integration-tests.txt
+++ b/dev/breeze/doc/images/output_testing_providers-integration-tests.txt
@@ -1 +1 @@
-c4deddd187c7baa711961f6733d5d4a2
+4f019e3738dd7dd0cfd8062cf2004745
diff --git a/dev/breeze/doc/images/output_testing_providers-tests.svg 
b/dev/breeze/doc/images/output_testing_providers-tests.svg
index 562fb03740c..6f69d034c1a 100644
--- a/dev/breeze/doc/images/output_testing_providers-tests.svg
+++ b/dev/breeze/doc/images/output_testing_providers-tests.svg
@@ -466,7 +466,7 @@
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="996" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-40)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="996" textLength="97.6" 
clip-path="url(#breeze-testing-providers-tests-line-40)">--python</text><text 
class="breeze-testing-providers-tests-r6" x="561.2" y="996" textLength="24.4" 
clip-path="url(#breeze-testing-providers-tests-line-40)">-p</text><text 
class="breeze-testing-provide [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1020.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-41)">│</text><text 
class="breeze-testing-providers-tests-r7" x="610" y="1020.4" textLength="732" 
clip-path="url(#breeze-testing-providers-tests-line-41)">(&gt;3.10&lt;&#160;|&#160;3.11&#160;|&#160;3.12&#160;|&#160;3.13)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1044.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-42)">│</text><text 
class="breeze-testing-providers-tests-r5" x="610" y="1044.8" textLength="732" 
clip-path="url(#breeze-testing-providers-tests-line-42)">[default:&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="1069.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-43)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="1069.2" 
textLength="219.6" 
clip-path="url(#breeze-testing-providers-tests-line-43)">--postgres-version</text><text
 class="breeze-testing-providers-tests-r6" x="561.2" y="1069.2" 
textLength="24.4" 
clip-path="url(#breeze-testing-providers-tests-line-43)">-P</text><text 
class="br [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="1069.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-43)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="1069.2" 
textLength="219.6" 
clip-path="url(#breeze-testing-providers-tests-line-43)">--postgres-version</text><text
 class="breeze-testing-providers-tests-r6" x="561.2" y="1069.2" 
textLength="24.4" 
clip-path="url(#breeze-testing-providers-tests-line-43)">-P</text><text 
class="br [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1093.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-44)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="1093.6" textLength="183" 
clip-path="url(#breeze-testing-providers-tests-line-44)">--mysql-version</text><text
 class="breeze-testing-providers-tests-r6" x="561.2" y="1093.6" 
textLength="24.4" 
clip-path="url(#breeze-testing-providers-tests-line-44)">-M</text><text 
class="breeze- [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1118" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-45)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="1118" textLength="256.2" 
clip-path="url(#breeze-testing-providers-tests-line-45)">--forward-credentials</text><text
 class="breeze-testing-providers-tests-r6" x="561.2" y="1118" textLength="24.4" 
clip-path="url(#breeze-testing-providers-tests-line-45)">-f</text><text 
class="breez [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="1142.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-46)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="1142.4" 
textLength="231.8" 
clip-path="url(#breeze-testing-providers-tests-line-46)">--force-sa-warnings</text><text
 class="breeze-testing-providers-tests-r1" x="256.2" y="1142.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-46)">/</text><text 
class="br [...]
@@ -510,8 +510,8 @@
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="2069.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-84)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="2069.6" 
textLength="329.4" 
clip-path="url(#breeze-testing-providers-tests-line-84)">--force-lowest-dependencies</text><text
 class="breeze-testing-providers-tests-r1" x="756.4" y="2069.6" 
textLength="683.2" 
clip-path="url(#breeze-testing-providers-tests-line-84)">Run&#160;tests [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="2094" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-85)">│</text><text 
class="breeze-testing-providers-tests-r1" x="756.4" y="2094" textLength="683.2" 
clip-path="url(#breeze-testing-providers-tests-line-85)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text
 class="breeze-testing-providers-tests-r5" x="1451.8" y="2094" 
textLength="12.2" clip-path="u [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="2118.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-86)">│</text><text 
class="breeze-testing-providers-tests-r1" x="756.4" y="2118.4" 
textLength="683.2" 
clip-path="url(#breeze-testing-providers-tests-line-86)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2142.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-87)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="2142.8" 
textLength="414.8" 
clip-path="url(#breeze-testing-providers-tests-line-87)">--install-airflow-with-constraints</text><text
 class="breeze-testing-providers-tests-r1" x="439.2" y="2142.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-87)">/</text> [...]
-</text><text class="breeze-testing-providers-tests-r5" x="0" y="2167.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-88)">│</text><text 
class="breeze-testing-providers-tests-r1" x="756.4" y="2167.2" 
textLength="683.2" 
clip-path="url(#breeze-testing-providers-tests-line-88)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-testing-providers-t [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2142.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-87)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="2142.8" 
textLength="414.8" 
clip-path="url(#breeze-testing-providers-tests-line-87)">--install-airflow-with-constraints</text><text
 class="breeze-testing-providers-tests-r1" x="439.2" y="2142.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-87)">/</text> [...]
+</text><text class="breeze-testing-providers-tests-r5" x="0" y="2167.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-88)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="2167.2" 
textLength="195.2" 
clip-path="url(#breeze-testing-providers-tests-line-88)">with-constraints</text><text
 class="breeze-testing-providers-tests-r1" x="756.4" y="2167.2" 
textLength="683.2" 
clip-path="url(#breeze-testing-providers-tests-line-88)">determined&#160;from&#160
 [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="2191.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-89)">│</text><text 
class="breeze-testing-providers-tests-r5" x="756.4" y="2191.6" 
textLength="683.2" 
clip-path="url(#breeze-testing-providers-tests-line-89)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-testing-providers-tests-r5" x="1451.8" y="2191.6" text [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="2216" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-90)">│</text><text 
class="breeze-testing-providers-tests-r4" x="24.4" y="2216" textLength="256.2" 
clip-path="url(#breeze-testing-providers-tests-line-90)">--distribution-format</text><text
 class="breeze-testing-providers-tests-r1" x="756.4" y="2216" 
textLength="231.8" 
clip-path="url(#breeze-testing-providers-tests-line-90)">Format&#160;of&#160;packag
 [...]
 </text><text class="breeze-testing-providers-tests-r5" x="0" y="2240.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-providers-tests-line-91)">│</text><text 
class="breeze-testing-providers-tests-r5" x="756.4" y="2240.4" 
textLength="231.8" 
clip-path="url(#breeze-testing-providers-tests-line-91)">[default:&#160;wheel]&#160;&#160;&#160;</text><text
 class="breeze-testing-providers-tests-r5" x="1451.8" y="2240.4" 
textLength="12.2" clip-path="url(#breeze-testing-providers-tests-line-91)">│ 
[...]
diff --git a/dev/breeze/doc/images/output_testing_providers-tests.txt 
b/dev/breeze/doc/images/output_testing_providers-tests.txt
index 825b39a5afd..30eeaad0b2e 100644
--- a/dev/breeze/doc/images/output_testing_providers-tests.txt
+++ b/dev/breeze/doc/images/output_testing_providers-tests.txt
@@ -1 +1 @@
-3c2165a8e4b357b8f19dbbb835e86810
+3c60c94790ea4e2222e13b75719c8893
diff --git a/dev/breeze/doc/images/output_testing_python-api-client-tests.svg 
b/dev/breeze/doc/images/output_testing_python-api-client-tests.svg
index 7b227c8955f..8938220acd2 100644
--- a/dev/breeze/doc/images/output_testing_python-api-client-tests.svg
+++ b/dev/breeze/doc/images/output_testing_python-api-client-tests.svg
@@ -207,7 +207,7 @@
 </text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-27)">│</text><text 
class="breeze-testing-python-api-client-tests-r4" x="24.4" y="678.8" 
textLength="97.6" 
clip-path="url(#breeze-testing-python-api-client-tests-line-27)">--python</text><text
 class="breeze-testing-python-api-client-tests-r6" x="561.2" y="678.8" 
textLength="24.4" clip-path="url(#breeze-testing-python-api-client-tests- [...]
 </text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-28)">│</text><text 
class="breeze-testing-python-api-client-tests-r7" x="610" y="703.2" 
textLength="732" 
clip-path="url(#breeze-testing-python-api-client-tests-line-28)">(&gt;3.10&lt;&#160;|&#160;3.11&#160;|&#160;3.12&#160;|&#160;3.13)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
 </text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="727.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-29)">│</text><text 
class="breeze-testing-python-api-client-tests-r5" x="610" y="727.6" 
textLength="732" 
clip-path="url(#breeze-testing-python-api-client-tests-line-29)">[default:&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="752" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-30)">│</text><text 
class="breeze-testing-python-api-client-tests-r4" x="24.4" y="752" 
textLength="219.6" 
clip-path="url(#breeze-testing-python-api-client-tests-line-30)">--postgres-version</text><text
 class="breeze-testing-python-api-client-tests-r6" x="561.2" y="752" 
textLength="24.4" clip-path="url(#breeze-testing-python-api-client-t [...]
+</text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="752" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-30)">│</text><text 
class="breeze-testing-python-api-client-tests-r4" x="24.4" y="752" 
textLength="219.6" 
clip-path="url(#breeze-testing-python-api-client-tests-line-30)">--postgres-version</text><text
 class="breeze-testing-python-api-client-tests-r6" x="561.2" y="752" 
textLength="24.4" clip-path="url(#breeze-testing-python-api-client-t [...]
 </text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="776.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-31)">│</text><text 
class="breeze-testing-python-api-client-tests-r4" x="24.4" y="776.4" 
textLength="183" 
clip-path="url(#breeze-testing-python-api-client-tests-line-31)">--mysql-version</text><text
 class="breeze-testing-python-api-client-tests-r6" x="561.2" y="776.4" 
textLength="24.4" clip-path="url(#breeze-testing-python-api-client- [...]
 </text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="800.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-32)">│</text><text 
class="breeze-testing-python-api-client-tests-r4" x="24.4" y="800.8" 
textLength="256.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-32)">--forward-credentials</text><text
 class="breeze-testing-python-api-client-tests-r6" x="561.2" y="800.8" 
textLength="24.4" clip-path="url(#breeze-testing-python-api [...]
 </text><text class="breeze-testing-python-api-client-tests-r5" x="0" y="825.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-python-api-client-tests-line-33)">│</text><text 
class="breeze-testing-python-api-client-tests-r4" x="24.4" y="825.2" 
textLength="231.8" 
clip-path="url(#breeze-testing-python-api-client-tests-line-33)">--force-sa-warnings</text><text
 class="breeze-testing-python-api-client-tests-r1" x="256.2" y="825.2" 
textLength="12.2" clip-path="url(#breeze-testing-python-api-c [...]
diff --git a/dev/breeze/doc/images/output_testing_python-api-client-tests.txt 
b/dev/breeze/doc/images/output_testing_python-api-client-tests.txt
index ebf7bdc44bf..2ce126ccc85 100644
--- a/dev/breeze/doc/images/output_testing_python-api-client-tests.txt
+++ b/dev/breeze/doc/images/output_testing_python-api-client-tests.txt
@@ -1 +1 @@
-cfbe05e938f3f11a6946953baea8b29b
+eecc118553c05454fb6b541ca6247fe7
diff --git a/dev/breeze/doc/images/output_testing_system-tests.svg 
b/dev/breeze/doc/images/output_testing_system-tests.svg
index 87c0886c9b2..ac8ae878df5 100644
--- a/dev/breeze/doc/images/output_testing_system-tests.svg
+++ b/dev/breeze/doc/images/output_testing_system-tests.svg
@@ -307,7 +307,7 @@
 </text><text class="breeze-testing-system-tests-r5" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-22)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="556.8" textLength="97.6" 
clip-path="url(#breeze-testing-system-tests-line-22)">--python</text><text 
class="breeze-testing-system-tests-r7" x="561.2" y="556.8" textLength="24.4" 
clip-path="url(#breeze-testing-system-tests-line-22)">-p</text><text 
class="breeze-testing-system-tests-r1" x= [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-23)">│</text><text 
class="breeze-testing-system-tests-r6" x="610" y="581.2" textLength="732" 
clip-path="url(#breeze-testing-system-tests-line-23)">(&gt;3.10&lt;&#160;|&#160;3.11&#160;|&#160;3.12&#160;|&#160;3.13)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="605.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-24)">│</text><text 
class="breeze-testing-system-tests-r5" x="610" y="605.6" textLength="732" 
clip-path="url(#breeze-testing-system-tests-line-24)">[default:&#160;3.10]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#16
 [...]
-</text><text class="breeze-testing-system-tests-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-25)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="630" textLength="219.6" 
clip-path="url(#breeze-testing-system-tests-line-25)">--postgres-version</text><text
 class="breeze-testing-system-tests-r7" x="561.2" y="630" textLength="24.4" 
clip-path="url(#breeze-testing-system-tests-line-25)">-P</text><text 
class="breeze-testing-system-tests-r [...]
+</text><text class="breeze-testing-system-tests-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-25)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="630" textLength="219.6" 
clip-path="url(#breeze-testing-system-tests-line-25)">--postgres-version</text><text
 class="breeze-testing-system-tests-r7" x="561.2" y="630" textLength="24.4" 
clip-path="url(#breeze-testing-system-tests-line-25)">-P</text><text 
class="breeze-testing-system-tests-r [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-26)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="654.4" textLength="183" 
clip-path="url(#breeze-testing-system-tests-line-26)">--mysql-version</text><text
 class="breeze-testing-system-tests-r7" x="561.2" y="654.4" textLength="24.4" 
clip-path="url(#breeze-testing-system-tests-line-26)">-M</text><text 
class="breeze-testing-system-tests- [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-27)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="678.8" textLength="256.2" 
clip-path="url(#breeze-testing-system-tests-line-27)">--forward-credentials</text><text
 class="breeze-testing-system-tests-r7" x="561.2" y="678.8" textLength="24.4" 
clip-path="url(#breeze-testing-system-tests-line-27)">-f</text><text 
class="breeze-testing-syste [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-28)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="703.2" textLength="231.8" 
clip-path="url(#breeze-testing-system-tests-line-28)">--force-sa-warnings</text><text
 class="breeze-testing-system-tests-r1" x="256.2" y="703.2" textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-28)">/</text><text 
class="breeze-testing-system-t [...]
@@ -331,8 +331,8 @@
 </text><text class="breeze-testing-system-tests-r5" x="0" y="1142.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-46)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="1142.4" textLength="329.4" 
clip-path="url(#breeze-testing-system-tests-line-46)">--force-lowest-dependencies</text><text
 class="breeze-testing-system-tests-r1" x="756.4" y="1142.4" textLength="683.2" 
clip-path="url(#breeze-testing-system-tests-line-46)">Run&#160;tests&#160;for&#160;the
 [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="1166.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-47)">│</text><text 
class="breeze-testing-system-tests-r1" x="756.4" y="1166.8" textLength="683.2" 
clip-path="url(#breeze-testing-system-tests-line-47)">or&#160;selected&#160;provider&#160;if&#160;`Provider[PROVIDER_ID]`&#160;is&#160;used&#160;</text><text
 class="breeze-testing-system-tests-r5" x="1451.8" y="1166.8" textLength="12.2" 
clip-path="url(#breez [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="1191.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-48)">│</text><text 
class="breeze-testing-system-tests-r1" x="756.4" y="1191.2" textLength="683.2" 
clip-path="url(#breeze-testing-system-tests-line-48)">as&#160;test&#160;type.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-testing-system-tests-r5" x="0" y="1215.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-49)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="1215.6" textLength="414.8" 
clip-path="url(#breeze-testing-system-tests-line-49)">--install-airflow-with-constraints</text><text
 class="breeze-testing-system-tests-r1" x="439.2" y="1215.6" textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-49)">/</text><text 
class="breez [...]
-</text><text class="breeze-testing-system-tests-r5" x="0" y="1240" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-50)">│</text><text 
class="breeze-testing-system-tests-r1" x="756.4" y="1240" textLength="683.2" 
clip-path="url(#breeze-testing-system-tests-line-50)">determined&#160;from&#160;package&#160;or&#160;airflow&#160;version.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-testing-system-tests-r5" x="1451.8" [...]
+</text><text class="breeze-testing-system-tests-r5" x="0" y="1215.6" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-49)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="1215.6" textLength="414.8" 
clip-path="url(#breeze-testing-system-tests-line-49)">--install-airflow-with-constraints</text><text
 class="breeze-testing-system-tests-r1" x="439.2" y="1215.6" textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-49)">/</text><text 
class="breez [...]
+</text><text class="breeze-testing-system-tests-r5" x="0" y="1240" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-50)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="1240" textLength="195.2" 
clip-path="url(#breeze-testing-system-tests-line-50)">with-constraints</text><text
 class="breeze-testing-system-tests-r1" x="756.4" y="1240" textLength="683.2" 
clip-path="url(#breeze-testing-system-tests-line-50)">determined&#160;from&#160;package&#160;or&#160;ai
 [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="1264.4" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-51)">│</text><text 
class="breeze-testing-system-tests-r5" x="756.4" y="1264.4" textLength="683.2" 
clip-path="url(#breeze-testing-system-tests-line-51)">[default:&#160;no-install-airflow-with-constraints]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-testing-system-tests-r5" x="1451.8" y="1264.4" textLength="12.2" 
c [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="1288.8" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-52)">│</text><text 
class="breeze-testing-system-tests-r4" x="24.4" y="1288.8" textLength="256.2" 
clip-path="url(#breeze-testing-system-tests-line-52)">--distribution-format</text><text
 class="breeze-testing-system-tests-r1" x="756.4" y="1288.8" textLength="231.8" 
clip-path="url(#breeze-testing-system-tests-line-52)">Format&#160;of&#160;packages.</text><t
 [...]
 </text><text class="breeze-testing-system-tests-r5" x="0" y="1313.2" 
textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-53)">│</text><text 
class="breeze-testing-system-tests-r5" x="756.4" y="1313.2" textLength="231.8" 
clip-path="url(#breeze-testing-system-tests-line-53)">[default:&#160;wheel]&#160;&#160;&#160;</text><text
 class="breeze-testing-system-tests-r5" x="1451.8" y="1313.2" textLength="12.2" 
clip-path="url(#breeze-testing-system-tests-line-53)">│</text><text class [...]
diff --git a/dev/breeze/doc/images/output_testing_system-tests.txt 
b/dev/breeze/doc/images/output_testing_system-tests.txt
index dc5d8e8abea..ab32adcaf64 100644
--- a/dev/breeze/doc/images/output_testing_system-tests.txt
+++ b/dev/breeze/doc/images/output_testing_system-tests.txt
@@ -1 +1 @@
-3f6c8a845e6e55adb1818876c84da2d9
+b585e5052df47d20283a02c877e0e7f7
diff --git a/dev/breeze/src/airflow_breeze/commands/common_options.py 
b/dev/breeze/src/airflow_breeze/commands/common_options.py
index 88758531b9b..7382c2fd528 100644
--- a/dev/breeze/src/airflow_breeze/commands/common_options.py
+++ b/dev/breeze/src/airflow_breeze/commands/common_options.py
@@ -37,6 +37,7 @@ from airflow_breeze.global_constants import (
     AUTOCOMPLETE_ALL_INTEGRATIONS,
     AUTOCOMPLETE_CORE_INTEGRATIONS,
     AUTOCOMPLETE_PROVIDERS_INTEGRATIONS,
+    DEFAULT_POSTGRES_VERSION,
     DEFAULT_UV_HTTP_TIMEOUT,
     DOCKER_DEFAULT_PLATFORM,
     SINGLE_PLATFORMS,
@@ -312,7 +313,7 @@ option_postgres_version = click.option(
     "-P",
     "--postgres-version",
     type=BackendVersionChoice(ALLOWED_POSTGRES_VERSIONS),
-    default=CacheableDefault(ALLOWED_POSTGRES_VERSIONS[0]),
+    default=CacheableDefault(DEFAULT_POSTGRES_VERSION),
     envvar="POSTGRES_VERSION",
     show_default=True,
     help="Version of Postgres used.",
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py 
b/dev/breeze/src/airflow_breeze/global_constants.py
index e0f4793cca2..8bd01a6135b 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -204,7 +204,6 @@ ALLOWED_MOUNT_OPTIONS = [
 ]
 
 USE_AIRFLOW_MOUNT_SOURCES = [MOUNT_REMOVE, MOUNT_TESTS, 
MOUNT_PROVIDERS_AND_TESTS]
-ALLOWED_POSTGRES_VERSIONS = ["13", "14", "15", "16", "17"]
 # Oracle introduced new release model for MySQL
 # - LTS: Long Time Support releases, new release approx every 2 year,
 #  with 5 year premier and 3 year extended support, no new features/removals 
during current LTS release.
@@ -440,8 +439,11 @@ PRODUCTION_IMAGE = False
 # changes from main to the previous branch.
 ALL_PYTHON_MAJOR_MINOR_VERSIONS = ["3.10", "3.11", "3.12", "3.13"]
 CURRENT_PYTHON_MAJOR_MINOR_VERSIONS = ALL_PYTHON_MAJOR_MINOR_VERSIONS
-CURRENT_POSTGRES_VERSIONS = ["13", "14", "15", "16", "17"]
+# All versions we can run against (Need to include versions for main branch 
and the current release branch)
+ALLOWED_POSTGRES_VERSIONS = ["13", "14", "15", "16", "17", "18"]
+CURRENT_POSTGRES_VERSIONS = ["14", "15", "16", "17", "18"]
 DEFAULT_POSTGRES_VERSION = CURRENT_POSTGRES_VERSIONS[0]
+
 USE_MYSQL_INNOVATION_RELEASE = True
 if USE_MYSQL_INNOVATION_RELEASE:
     CURRENT_MYSQL_VERSIONS = ALLOWED_MYSQL_VERSIONS.copy()
diff --git a/dev/breeze/src/airflow_breeze/params/shell_params.py 
b/dev/breeze/src/airflow_breeze/params/shell_params.py
index 082b3838f75..bce82a35e12 100644
--- a/dev/breeze/src/airflow_breeze/params/shell_params.py
+++ b/dev/breeze/src/airflow_breeze/params/shell_params.py
@@ -34,7 +34,6 @@ from airflow_breeze.global_constants import (
     ALLOWED_DOCKER_COMPOSE_PROJECTS,
     ALLOWED_INSTALLATION_DISTRIBUTION_FORMATS,
     ALLOWED_MYSQL_VERSIONS,
-    ALLOWED_POSTGRES_VERSIONS,
     ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS,
     APACHE_AIRFLOW_GITHUB_REPOSITORY,
     BREEZE_DEBUG_APISERVER_PORT,
@@ -47,6 +46,7 @@ from airflow_breeze.global_constants import (
     CELERY_BROKER_URLS_MAP,
     CELERY_EXECUTOR,
     DEFAULT_CELERY_BROKER,
+    DEFAULT_POSTGRES_VERSION,
     DEFAULT_UV_HTTP_TIMEOUT,
     DOCKER_DEFAULT_PLATFORM,
     DRILL_HOST_PORT,
@@ -196,7 +196,7 @@ class ShellParams:
     parallel_test_types_list: list[str] = field(default_factory=list)
     parallelism: int = 0
     platform: str = DOCKER_DEFAULT_PLATFORM
-    postgres_version: str = ALLOWED_POSTGRES_VERSIONS[0]
+    postgres_version: str = DEFAULT_POSTGRES_VERSION
     project_name: str = ALLOWED_DOCKER_COMPOSE_PROJECTS[0]
     providers_constraints_location: str = ""
     providers_constraints_mode: str = ALLOWED_CONSTRAINTS_MODES_CI[0]
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py 
b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index 3cebaee4f2f..6ebfac3e04b 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -31,6 +31,7 @@ from typing import Any, TypeVar
 from airflow_breeze.branch_defaults import AIRFLOW_BRANCH, 
DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH
 from airflow_breeze.global_constants import (
     ALL_PYTHON_MAJOR_MINOR_VERSIONS,
+    ALLOWED_POSTGRES_VERSIONS,
     APACHE_AIRFLOW_GITHUB_REPOSITORY,
     COMMITTERS,
     CURRENT_KUBERNETES_VERSIONS,
diff --git a/dev/breeze/tests/test_selective_checks.py 
b/dev/breeze/tests/test_selective_checks.py
index b0fd17b48fa..6a7cdd98853 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -1310,7 +1310,7 @@ def test_full_test_needed_when_scripts_changes(files: 
tuple[str, ...], expected_
                     "all-python-versions-list-as-string": 
DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
                     "all-versions": "false",
                     "mysql-versions": "['8.0']",
-                    "postgres-versions": "['13']",
+                    "postgres-versions": "['14']",
                     "python-versions": 
f"['{DEFAULT_PYTHON_MAJOR_MINOR_VERSION}']",
                     "python-versions-list-as-string": 
DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
                     "kubernetes-versions": f"['{DEFAULT_KUBERNETES_VERSION}']",
@@ -1345,7 +1345,7 @@ def test_full_test_needed_when_scripts_changes(files: 
tuple[str, ...], expected_
                     "all-python-versions": ALL_PYTHON_VERSIONS_AS_LIST,
                     "all-python-versions-list-as-string": 
ALL_PYTHON_VERSIONS_AS_STRING,
                     "mysql-versions": "['8.0', '8.4']",
-                    "postgres-versions": "['13', '14', '15', '16', '17']",
+                    "postgres-versions": "['14', '15', '16', '17', '18']",
                     "python-versions": ALL_PYTHON_VERSIONS_AS_LIST,
                     "python-versions-list-as-string": 
ALL_PYTHON_VERSIONS_AS_STRING,
                     "kubernetes-versions": ALL_KUBERNETES_VERSIONS_AS_LIST,
@@ -1380,7 +1380,7 @@ def test_full_test_needed_when_scripts_changes(files: 
tuple[str, ...], expected_
                     "all-python-versions-list-as-string": 
DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
                     "all-versions": "false",
                     "mysql-versions": "['8.0']",
-                    "postgres-versions": "['13']",
+                    "postgres-versions": "['14']",
                     "python-versions": 
f"['{DEFAULT_PYTHON_MAJOR_MINOR_VERSION}']",
                     "python-versions-list-as-string": 
DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
                     "kubernetes-versions": f"['{DEFAULT_KUBERNETES_VERSION}']",
@@ -1415,7 +1415,7 @@ def test_full_test_needed_when_scripts_changes(files: 
tuple[str, ...], expected_
                     "all-python-versions-list-as-string": 
DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
                     "all-versions": "false",
                     "mysql-versions": "['8.0']",
-                    "postgres-versions": "['13']",
+                    "postgres-versions": "['14']",
                     "python-versions": 
f"['{DEFAULT_PYTHON_MAJOR_MINOR_VERSION}']",
                     "python-versions-list-as-string": 
DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
                     "kubernetes-versions": f"['{DEFAULT_KUBERNETES_VERSION}']",
@@ -1451,7 +1451,7 @@ def test_full_test_needed_when_scripts_changes(files: 
tuple[str, ...], expected_
                     "all-versions": "false",
                     "default-python-version": 
f"{ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[-1]}",
                     "mysql-versions": "['8.4']",
-                    "postgres-versions": "['17']",
+                    "postgres-versions": "['14']",
                     "python-versions": 
f"['{ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[-1]}']",
                     "python-versions-list-as-string": 
f"{ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS[-1]}",
                     "kubernetes-versions": 
f"['{ALLOWED_KUBERNETES_VERSIONS[-1]}']",
diff --git a/scripts/ci/docker-compose/backend-postgres.yml 
b/scripts/ci/docker-compose/backend-postgres.yml
index 3baee88cfe3..a69c462f4a2 100644
--- a/scripts/ci/docker-compose/backend-postgres.yml
+++ b/scripts/ci/docker-compose/backend-postgres.yml
@@ -33,7 +33,8 @@ services:
       - POSTGRES_DB=airflow
       - POSTGRES_HOST_AUTH_METHOD=password
     volumes:
-      - postgres-db-volume:/var/lib/postgresql/data
+      - postgres-db-volume:/var/lib/postgresql
+      - postgres-data-volume:/var/lib/postgresql/{$POSTGRES_VERSION}/docker
     healthcheck:
       test: ["CMD", "psql", "-h", "localhost", "-U", "postgres", "-c", "select 
1", "airflow"]
       interval: 10s
@@ -42,4 +43,5 @@ services:
       retries: 5
     restart: "on-failure"
 volumes:
-  postgres-db-volume:
+  postgres-dat-volume:
+    name: "postgres${POSTGRES_VERSION}-db-volume"

Reply via email to