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

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new a0f8a008bf The "upgrade-on-failure" feature enabled by default in 
local environment (#37116)
a0f8a008bf is described below

commit a0f8a008bf30664491ca7c5b771b3b37f4dded6a
Author: Jarek Potiuk <[email protected]>
AuthorDate: Wed Jan 31 12:26:13 2024 +0100

    The "upgrade-on-failure" feature enabled by default in local environment 
(#37116)
    
    * The "upgrade-on-failure" feature enabled by default in local environment
    
    We have the `--upgrade-on-failure` flag that was used to automatically
    upgrade image when constraint build failed. This happens when there is
    a conflicting change merged, but the CI build has not managed yet to
    refresh the constraints (which sometime might take some time due
    to stability of our CI infrastructure - any intermittent failures in
    tests might delay constraint refreshing).
    
    What happens in this case, locally when you build image you would
    get dependency conflict.
    
    This PR flips the flag in local environmment in two cases:
    
    * when you run `breeze ci-image build` manually
    * when you run CI image build automatically while running other command
    
    On CI we want to keep control over constraint use, so the flag default
    is set to False in CI environment
    
    * Update dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
    
    Co-authored-by: Andrey Anshin <[email protected]>
    
    ---------
    
    Co-authored-by: Andrey Anshin <[email protected]>
---
 dev/breeze/doc/images/output_ci-image_build.svg    | 188 +++++++++++----------
 dev/breeze/doc/images/output_ci-image_build.txt    |   2 +-
 .../airflow_breeze/commands/ci_image_commands.py   |  13 +-
 3 files changed, 113 insertions(+), 90 deletions(-)

diff --git a/dev/breeze/doc/images/output_ci-image_build.svg 
b/dev/breeze/doc/images/output_ci-image_build.svg
index b6d63b0465..17ea15e9e9 100644
--- a/dev/breeze/doc/images/output_ci-image_build.svg
+++ b/dev/breeze/doc/images/output_ci-image_build.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2246.0" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 1482 2343.6" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-ci-image-build-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="2195.0" />
+      <rect x="0" y="0" width="1463.0" height="2292.6" />
     </clipPath>
     <clipPath id="breeze-ci-image-build-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -312,9 +312,21 @@
 <clipPath id="breeze-ci-image-build-line-88">
     <rect x="0" y="2148.7" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-ci-image-build-line-89">
+    <rect x="0" y="2173.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-image-build-line-90">
+    <rect x="0" y="2197.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-image-build-line-91">
+    <rect x="0" y="2221.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath id="breeze-ci-image-build-line-92">
+    <rect x="0" y="2246.3" width="1464" height="24.65"/>
+            </clipPath>
     </defs>
 
-    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="2244" rx="8"/><text 
class="breeze-ci-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;ci-image&#160;build</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="2341.6" rx="8"/><text 
class="breeze-ci-image-build-title" fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;ci-image&#160;build</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -330,90 +342,94 @@
 </text><text class="breeze-ci-image-build-r1" x="12.2" y="93.2" 
textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-3)">Build&#160;CI&#160;image.&#160;Include&#160;building&#160;multiple&#160;images&#160;for&#160;all&#160;python&#160;versions.</text><text
 class="breeze-ci-image-build-r1" x="1464" y="93.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-3)">
 </text><text class="breeze-ci-image-build-r1" x="1464" y="117.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-4)">
 </text><text class="breeze-ci-image-build-r5" x="0" y="142" textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-5)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="142" textLength="158.6" 
clip-path="url(#breeze-ci-image-build-line-5)">&#160;Basic&#160;usage&#160;</text><text
 class="breeze-ci-image-build-r5" x="183" y="142" textLength="1256.6" 
clip-path="url(#breeze-ci-image-build-line-5)">───────────────────────────────────────────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="166.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-6)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-6)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="166.4" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-6)">-python</text><text 
class="breeze-ci-image-build-r6" x="427" y="166.4" textLength="24.4" 
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="190.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-7)">│</text><text 
class="breeze-ci-image-build-r7" x="475.8" y="190.8" textLength="732" 
clip-path="url(#breeze-ci-image-build-line-7)">(&gt;3.8&lt;&#160;|&#160;3.9&#160;|&#160;3.10&#160;|&#160;3.11)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="215.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-8)">│</text><text 
class="breeze-ci-image-build-r5" x="475.8" y="215.2" textLength="732" 
clip-path="url(#breeze-ci-image-build-line-8)">[default:&#160;3.8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="239.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-9)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-9)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="239.6" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-9)">-upgrade</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="239.6" textLength="268.4" 
clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="264" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-10)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="264" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-10)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="264" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-10)">-upgrade</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="264" textLength="134.2" 
clip-path="url( [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="288.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-11)">│</text><text 
class="breeze-ci-image-build-r1" x="475.8" y="288.4" textLength="963.8" 
clip-path="url(#breeze-ci-image-build-line-11)">fails.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="312.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-12)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="312.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-12)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="312.8" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-12)">-image</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="312.8" textLength="48.8" 
clip-path= [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="337.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-13)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="337.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-13)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="337.2" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-13)">-tag</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="337.2" textLength="122" 
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="361.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-14)">│</text><text 
class="breeze-ci-image-build-r1" x="475.8" y="361.6" textLength="414.8" 
clip-path="url(#breeze-ci-image-build-line-14)">when&#160;you&#160;build&#160;or&#160;pull&#160;image&#160;with&#160;</text><text
 class="breeze-ci-image-build-r4" x="890.6" y="361.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-14)">-</text><text class="breeze-c 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-15)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="386" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-15)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="386" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-15)">-docker</text><text 
class="breeze-ci-image-build-r4" x="122" y="386" textLength="73.2" 
clip-path="url(#bre [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="410.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-16)">│</text><text 
class="breeze-ci-image-build-r5" x="475.8" y="410.4" textLength="549" 
clip-path="url(#breeze-ci-image-build-line-16)">[default:&#160;registry]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-ci-image-build-r5" x="145 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="434.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="434.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-17)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="434.8" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-17)">-version</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="434.8" textLength="195.2" clip-pa 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="459.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-18)">│</text><text 
class="breeze-ci-image-build-r5" x="475.8" y="459.2" textLength="768.6" 
clip-path="url(#breeze-ci-image-build-line-18)">[default:&#160;dev0]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="483.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-19)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-19)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="483.6" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-19)">-build</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="483.6" textLength="109.8" 
clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-20)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-20)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="508" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-20)">-docker</text><text 
class="breeze-ci-image-build-r4" x="122" y="508" textLength="61" 
clip-path="url(#breez [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="532.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-21)">│</text><text 
class="breeze-ci-image-build-r1" x="475.8" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-21)">`</text><text 
class="breeze-ci-image-build-r4" x="488" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-21)">-</text><text 
class="breeze-ci-image-build-r4" x="500.2" y="532.4" textLength="97.6" 
clip-path="url( [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="556.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">│</text><text 
class="breeze-ci-image-build-r7" x="475.8" y="556.8" textLength="963.8" 
clip-path="url(#breeze-ci-image-build-line-22)">(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;&#
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="581.2" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-23)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-23)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="605.6" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-24)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="605.6" textLength="353.8" 
clip-path="url(#breeze-ci-image-build-line-24)">&#160;Building&#160;images&#160;in&#160;parallel&#160;</text><text
 class="breeze-ci-image-build-r5" x="378.2" y="605.6" textLength="1061.4" 
clip-path="url(#breeze-ci-image-build-line-24)">──────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-25)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-25)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="630" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-25)">-debug</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="630" textLength="122" 
clip-path="url(#bre [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="654.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="654.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-26)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="654.4" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-26)">-include</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="654.4" textLength="195.2" clip-pa 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="678.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-27)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-27)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="678.8" textLength="146.4" 
clip-path="url(#breeze-ci-image-build-line-27)">-parallelism</text><text 
class="breeze-ci-image-build-r1" x="378.2" y="678.8" textLength="915" clip [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="703.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-28)">│</text><text 
class="breeze-ci-image-build-r7" x="378.2" y="703.2" textLength="915" 
clip-path="url(#breeze-ci-image-build-line-28)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="727.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-29)">│</text><text 
class="breeze-ci-image-build-r5" x="378.2" y="727.6" textLength="915" 
clip-path="url(#breeze-ci-image-build-line-29)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-30)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-30)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="752" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-30)">-python</text><text 
class="breeze-ci-image-build-r4" x="122" y="752" textLength="109.8" 
clip-path="url(#br [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="776.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-31)">│</text><text 
class="breeze-ci-image-build-r5" x="378.2" y="776.4" textLength="951.6" 
clip-path="url(#breeze-ci-image-build-line-31)">[default:&#160;3.8&#160;3.9&#160;3.10&#160;3.11]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="800.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-32)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="800.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-32)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="800.8" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-32)">-run</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="800.8" textLength="146.4" 
clip-path="u [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="825.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="825.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-33)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="825.2" textLength="61" 
clip-path="url(#breeze-ci-image-build-line-33)">-skip</text><text 
class="breeze-ci-image-build-r4" x="97.6" y="825.2" textLength="97.6" 
clip-path="url [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="849.6" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-34)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="849.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-34)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="874" textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-35)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="874" textLength="512.4" 
clip-path="url(#breeze-ci-image-build-line-35)">&#160;Advanced&#160;build&#160;options&#160;(for&#160;power&#160;users)&#160;</text><text
 class="breeze-ci-image-build-r5" x="536.8" y="874" textLength="902.8" 
clip-path="url(#breeze-ci-image-build-line-35)">────────────────────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="898.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="898.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-36)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="898.4" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-36)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="898.4" textLength="219.6" cli 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="922.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-37)">│</text><text 
class="breeze-ci-image-build-r1" x="439.2" y="922.8" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-37)">itself).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="947.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-38)">│</text><text 
class="breeze-ci-image-build-r7" x="439.2" y="947.2" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-38)">(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;&
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="971.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-39)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="971.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-39)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="971.6" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-39)">-commit</text><text 
class="breeze-ci-image-build-r4" x="122" y="971.6" textLength="48.8" 
clip-path=" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="996" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-40)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="996" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-40)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="996" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-40)">-debian</text><text 
class="breeze-ci-image-build-r4" x="122" y="996" textLength="97.6" 
clip-path="url(#bre [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1020.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">│</text><text 
class="breeze-ci-image-build-r7" x="439.2" y="1020.4" textLength="793" 
clip-path="url(#breeze-ci-image-build-line-41)">(bookworm&#160;|&#160;bullseye)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1044.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</text><text 
class="breeze-ci-image-build-r5" x="439.2" y="1044.8" textLength="793" 
clip-path="url(#breeze-ci-image-build-line-42)">[default:&#160;bookworm]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1069.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1069.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-43)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1069.2" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-43)">-install</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1069.2" textLength="219.6" cli 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1093.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1093.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-44)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1093.6" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-44)">-python</text><text 
class="breeze-ci-image-build-r4" x="122" y="1093.6" textLength="73.2" clip-pa 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1118" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-45)">│</text><text 
class="breeze-ci-image-build-r1" x="439.2" y="1118" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-45)">something&#160;like:&#160;python:VERSION-slim-bookworm.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1142.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">│</text><text 
class="breeze-ci-image-build-r7" x="439.2" y="1142.4" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-46)">(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
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1166.8" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-47)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1166.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-47)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1191.2" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-48)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1191.2" textLength="597.8" 
clip-path="url(#breeze-ci-image-build-line-48)">&#160;Selecting&#160;constraint&#160;location&#160;(for&#160;power&#160;users)&#160;</text><text
 class="breeze-ci-image-build-r5" x="622.2" y="1191.2" textLength="817.4" 
clip-path="url(#breeze-ci-image-build-line-48)">────────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1215.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1215.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-49)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1215.6" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-49)">-airflow</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1215.6" textLength="256.2" cli 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1240" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-50)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1240" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-50)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1240" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-50)">-airflow</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1240" textLength="207.4" 
clip-path=" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1264.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-51)">│</text><text 
class="breeze-ci-image-build-r7" x="451.4" y="1264.4" textLength="866.2" 
clip-path="url(#breeze-ci-image-build-line-51)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text
 class="breeze-ci-image-build-r5" x="1451.8" y="1264.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-51)">│</ [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1288.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-52)">│</text><text 
class="breeze-ci-image-build-r5" x="451.4" y="1288.8" textLength="866.2" 
clip-path="url(#breeze-ci-image-build-line-52)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1313.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1313.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-53)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1313.2" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-53)">-airflow</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1313.2" textLength="268.4" cli 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1337.6" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-54)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1337.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-54)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1362" textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-55)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1362" textLength="634.4" 
clip-path="url(#breeze-ci-image-build-line-55)">&#160;Choosing&#160;dependencies&#160;and&#160;extras&#160;(for&#160;power&#160;users)&#160;</text><text
 class="breeze-ci-image-build-r5" x="658.8" y="1362" textLength="780.8" 
clip-path="url(#breeze-ci-image-build-line-55)">──────── [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1386.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-56)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1386.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-56)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1386.4" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-56)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1386.4" textLength="183" c [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1410.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-57)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1410.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-57)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1410.8" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-57)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1410.8" textLength="146.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1435.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-58)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1435.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-58)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1435.2" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-58)">-dev</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="1435.2" textLength="109.8" 
clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1459.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-59)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1459.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-59)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1459.6" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-59)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1459.6" textLength="158.6" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1484" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-60)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1484" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-60)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1484" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-60)">-dev</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="1484" textLength="146.4" 
clip-path="url(# [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1508.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-61)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1508.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-61)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1508.4" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-61)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1508.4" textLength="195.2" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1532.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1532.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-62)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1532.8" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-62)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1532.8" textLength="146.4" [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1557.2" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1557.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-63)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1581.6" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-64)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1581.6" textLength="268.4" 
clip-path="url(#breeze-ci-image-build-line-64)">&#160;Backtracking&#160;options&#160;</text><text
 class="breeze-ci-image-build-r5" x="292.8" y="1581.6" textLength="1146.8" 
clip-path="url(#breeze-ci-image-build-line-64)">────────────────────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1606" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-65)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1606" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-65)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1606" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-65)">-build</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="1606" textLength="195.2" 
clip-path="ur [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1630.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">│</text><text 
class="breeze-ci-image-build-r1" x="549" y="1630.4" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-66)">backtracking&#160;problems.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1654.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-67)">│</text><text 
class="breeze-ci-image-build-r7" x="549" y="1654.8" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-67)">(INTEGER)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1679.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-68)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1679.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-68)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1679.2" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-68)">-eager</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="1679.2" textLength="390.4" clip- 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1703.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-69)">│</text><text 
class="breeze-ci-image-build-r1" x="549" y="1703.6" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-69)">(see&#160;`breeze&#160;ci&#160;find-backtracking-candidates`).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1728" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-70)">│</text><text 
class="breeze-ci-image-build-r7" x="549" y="1728" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-70)">(TEXT)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1752.4" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-71)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1752.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-71)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1776.8" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-72)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1776.8" textLength="622.2" 
clip-path="url(#breeze-ci-image-build-line-72)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;</text><text
 class="breeze-ci-image-build-r5" x="646.6" y="1776.8" textLength="793" 
clip-path="url(#breeze-ci-image-build-line-72)"> [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1801.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-73)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1801.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-73)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1801.2" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-73)">-builder</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1801.2" textLength="756.4" cli 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1825.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-74)">│</text><text 
class="breeze-ci-image-build-r5" x="341.6" y="1825.6" textLength="756.4" 
clip-path="url(#breeze-ci-image-build-line-74)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1850" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-75)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1850" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-75)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1850" textLength="109.8" 
clip-path="url(#breeze-ci-image-build-line-75)">-platform</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1850" textLength="329.4" 
clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1874.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-76)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1874.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-76)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1874.4" textLength="61" 
clip-path="url(#breeze-ci-image-build-line-76)">-push</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1874.4" textLength="353.8" 
clip-pat [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1898.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-77)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1898.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-77)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1898.8" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-77)">-prepare</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1898.8" textLength="158.6" cli 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1923.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-78)">│</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1923.2" textLength="1098" 
clip-path="url(#breeze-ci-image-build-line-78)">image).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1947.6" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-79)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1947.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-79)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="1972" textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-80)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1972" textLength="280.6" 
clip-path="url(#breeze-ci-image-build-line-80)">&#160;Github&#160;authentication&#160;</text><text
 class="breeze-ci-image-build-r5" x="305" y="1972" textLength="1134.6" 
clip-path="url(#breeze-ci-image-build-line-80)">───────────────────────────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="1996.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-81)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1996.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-81)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1996.4" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-81)">-github</text><text 
class="breeze-ci-image-build-r4" x="122" y="1996.4" textLength="134.2" clip-p 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2020.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-82)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2020.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-82)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2020.8" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-82)">-github</text><text 
class="breeze-ci-image-build-r4" x="122" y="2020.8" textLength="73.2" clip-pa 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="166.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-6)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="166.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-6)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="166.4" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-6)">-python</text><text 
class="breeze-ci-image-build-r6" x="585.6" y="166.4" textLength="24.4" 
clip-path="u [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="190.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-7)">│</text><text 
class="breeze-ci-image-build-r7" x="634.4" y="190.8" textLength="732" 
clip-path="url(#breeze-ci-image-build-line-7)">(&gt;3.8&lt;&#160;|&#160;3.9&#160;|&#160;3.10&#160;|&#160;3.11)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="215.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-8)">│</text><text 
class="breeze-ci-image-build-r5" x="634.4" y="215.2" textLength="732" 
clip-path="url(#breeze-ci-image-build-line-8)">[default:&#160;3.8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="239.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-9)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-9)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="239.6" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-9)">-upgrade</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="239.6" textLength="268.4" 
clip-path= [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="264" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-10)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="264" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-10)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="264" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-10)">-upgrade</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="264" textLength="134.2" 
clip-path="url( [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="288.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-11)">│</text><text 
class="breeze-ci-image-build-r1" x="634.4" y="288.4" textLength="805.2" 
clip-path="url(#breeze-ci-image-build-line-11)">regular&#160;build&#160;fails.&#160;It&#160;is&#160;set&#160;to&#160;False&#160;by&#160;default&#160;on&#160;CI&#160;and&#160;True&#160;</text><text
 class="breeze-ci-image-build-r5" x="1451.8" y="288.4" textLength="12.2" 
clip-path [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="312.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-12)">│</text><text 
class="breeze-ci-image-build-r1" x="634.4" y="312.8" textLength="805.2" 
clip-path="url(#breeze-ci-image-build-line-12)">by&#160;default&#160;locally.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="337.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-13)">│</text><text 
class="breeze-ci-image-build-r5" x="634.4" y="337.2" textLength="805.2" 
clip-path="url(#breeze-ci-image-build-line-13)">[default:&#160;upgrade-on-failure]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="361.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-14)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="361.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-14)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="361.6" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-14)">-image</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="361.6" textLength="48.8" 
clip-path= [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="386" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-15)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="386" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-15)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="386" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-15)">-tag</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="386" textLength="122" 
clip-path="url(#breeze [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="410.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-16)">│</text><text 
class="breeze-ci-image-build-r1" x="634.4" y="410.4" textLength="610" 
clip-path="url(#breeze-ci-image-build-line-16)">pulling.&#160;Useful&#160;when&#160;you&#160;build&#160;or&#160;pull&#160;image&#160;with&#160;</text><text
 class="breeze-ci-image-build-r4" x="1244.4" y="410.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-16)">-</t [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="434.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-17)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="434.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-17)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="434.8" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-17)">-docker</text><text 
class="breeze-ci-image-build-r4" x="122" y="434.8" textLength="73.2" 
clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="459.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-18)">│</text><text 
class="breeze-ci-image-build-r7" x="634.4" y="459.2" textLength="549" 
clip-path="url(#breeze-ci-image-build-line-18)">(registry&#160;|&#160;local&#160;|&#160;disabled)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-ci-image-build-r5" x="1451.8" y="459.2" textLength="12.2" cl 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="483.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-19)">│</text><text 
class="breeze-ci-image-build-r5" x="634.4" y="483.6" textLength="549" 
clip-path="url(#breeze-ci-image-build-line-19)">[default:&#160;registry]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-ci-image-build-r5" x="145 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-20)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-20)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="508" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-20)">-version</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="508" textLength="195.2" 
clip-path="url( [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="532.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-21)">│</text><text 
class="breeze-ci-image-build-r7" x="634.4" y="532.4" textLength="768.6" 
clip-path="url(#breeze-ci-image-build-line-21)">(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;&#
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="556.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-22)">│</text><text 
class="breeze-ci-image-build-r5" x="634.4" y="556.8" textLength="768.6" 
clip-path="url(#breeze-ci-image-build-line-22)">[default:&#160;dev0]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="581.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-23)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-23)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="581.2" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-23)">-build</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="581.2" textLength="109.8" 
clip-path [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="605.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-24)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="605.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-24)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="605.6" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-24)">-docker</text><text 
class="breeze-ci-image-build-r4" x="122" y="605.6" textLength="61" 
clip-path="ur [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-25)">│</text><text 
class="breeze-ci-image-build-r1" x="634.4" y="630" textLength="122" 
clip-path="url(#breeze-ci-image-build-line-25)">set,&#160;the&#160;`</text><text
 class="breeze-ci-image-build-r4" x="756.4" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-25)">-</text><text 
class="breeze-ci-image-build-r4" x="768.6" y="630" textLength="97.6" cli [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="654.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-26)">│</text><text 
class="breeze-ci-image-build-r7" x="634.4" y="654.4" textLength="805.2" 
clip-path="url(#breeze-ci-image-build-line-26)">(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;&#
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="678.8" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-27)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-27)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="703.2" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-28)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="703.2" textLength="353.8" 
clip-path="url(#breeze-ci-image-build-line-28)">&#160;Building&#160;images&#160;in&#160;parallel&#160;</text><text
 class="breeze-ci-image-build-r5" x="378.2" y="703.2" textLength="1061.4" 
clip-path="url(#breeze-ci-image-build-line-28)">──────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="727.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-29)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-29)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="727.6" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-29)">-debug</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="727.6" textLength="122" 
clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-30)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-30)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="752" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-30)">-include</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="752" textLength="195.2" 
clip-path="url( [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="776.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-31)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="776.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-31)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="776.4" textLength="146.4" 
clip-path="url(#breeze-ci-image-build-line-31)">-parallelism</text><text 
class="breeze-ci-image-build-r1" x="378.2" y="776.4" textLength="915" clip [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="800.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-32)">│</text><text 
class="breeze-ci-image-build-r7" x="378.2" y="800.8" textLength="915" 
clip-path="url(#breeze-ci-image-build-line-32)">(INTEGER&#160;RANGE)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="825.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-33)">│</text><text 
class="breeze-ci-image-build-r5" x="378.2" y="825.2" textLength="915" 
clip-path="url(#breeze-ci-image-build-line-33)">[default:&#160;4;&#160;1&lt;=x&lt;=8]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="849.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-34)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="849.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-34)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="849.6" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-34)">-python</text><text 
class="breeze-ci-image-build-r4" x="122" y="849.6" textLength="109.8" 
clip-path= [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="874" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-35)">│</text><text 
class="breeze-ci-image-build-r5" x="378.2" y="874" textLength="951.6" 
clip-path="url(#breeze-ci-image-build-line-35)">[default:&#160;3.8&#160;3.9&#160;3.10&#160;3.11]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="898.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-36)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="898.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-36)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="898.4" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-36)">-run</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="898.4" textLength="146.4" 
clip-path="u [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="922.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-37)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="922.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-37)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="922.8" textLength="61" 
clip-path="url(#breeze-ci-image-build-line-37)">-skip</text><text 
class="breeze-ci-image-build-r4" x="97.6" y="922.8" textLength="97.6" 
clip-path="url [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="947.2" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-38)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="947.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-38)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="971.6" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-39)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="971.6" textLength="512.4" 
clip-path="url(#breeze-ci-image-build-line-39)">&#160;Advanced&#160;build&#160;options&#160;(for&#160;power&#160;users)&#160;</text><text
 class="breeze-ci-image-build-r5" x="536.8" y="971.6" textLength="902.8" 
clip-path="url(#breeze-ci-image-build-line-39)">──────────────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="996" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-40)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="996" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-40)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="996" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-40)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="996" textLength="219.6" 
clip-path=" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1020.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-41)">│</text><text 
class="breeze-ci-image-build-r1" x="439.2" y="1020.4" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-41)">itself).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1044.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-42)">│</text><text 
class="breeze-ci-image-build-r7" x="439.2" y="1044.8" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-42)">(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
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1069.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-43)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1069.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-43)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1069.2" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-43)">-commit</text><text 
class="breeze-ci-image-build-r4" x="122" y="1069.2" textLength="48.8" clip-pa 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1093.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-44)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1093.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-44)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1093.6" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-44)">-debian</text><text 
class="breeze-ci-image-build-r4" x="122" y="1093.6" textLength="97.6" clip-pa 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1118" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-45)">│</text><text 
class="breeze-ci-image-build-r7" x="439.2" y="1118" textLength="793" 
clip-path="url(#breeze-ci-image-build-line-45)">(bookworm&#160;|&#160;bullseye)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1142.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-46)">│</text><text 
class="breeze-ci-image-build-r5" x="439.2" y="1142.4" textLength="793" 
clip-path="url(#breeze-ci-image-build-line-46)">[default:&#160;bookworm]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1166.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-47)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1166.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-47)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1166.8" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-47)">-install</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1166.8" textLength="219.6" cli 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1191.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-48)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1191.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-48)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1191.2" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-48)">-python</text><text 
class="breeze-ci-image-build-r4" x="122" y="1191.2" textLength="73.2" clip-pa 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1215.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-49)">│</text><text 
class="breeze-ci-image-build-r1" x="439.2" y="1215.6" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-49)">something&#160;like:&#160;python:VERSION-slim-bookworm.&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1240" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-50)">│</text><text 
class="breeze-ci-image-build-r7" x="439.2" y="1240" textLength="1000.4" 
clip-path="url(#breeze-ci-image-build-line-50)">(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;&#1
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1264.4" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-51)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1264.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-51)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1288.8" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-52)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1288.8" textLength="597.8" 
clip-path="url(#breeze-ci-image-build-line-52)">&#160;Selecting&#160;constraint&#160;location&#160;(for&#160;power&#160;users)&#160;</text><text
 class="breeze-ci-image-build-r5" x="622.2" y="1288.8" textLength="817.4" 
clip-path="url(#breeze-ci-image-build-line-52)">────────── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1313.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-53)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1313.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-53)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1313.2" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-53)">-airflow</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1313.2" textLength="256.2" cli 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1337.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-54)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1337.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-54)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1337.6" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-54)">-airflow</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1337.6" textLength="207.4" cli 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1362" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-55)">│</text><text 
class="breeze-ci-image-build-r7" x="451.4" y="1362" textLength="866.2" 
clip-path="url(#breeze-ci-image-build-line-55)">(constraints-source-providers&#160;|&#160;constraints&#160;|&#160;constraints-no-providers)</text><text
 class="breeze-ci-image-build-r5" x="1451.8" y="1362" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-55)">│</text>< [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1386.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-56)">│</text><text 
class="breeze-ci-image-build-r5" x="451.4" y="1386.4" textLength="866.2" 
clip-path="url(#breeze-ci-image-build-line-56)">[default:&#160;constraints-source-providers]&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1410.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-57)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1410.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-57)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1410.8" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-57)">-airflow</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1410.8" textLength="268.4" cli 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1435.2" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-58)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1435.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-58)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1459.6" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-59)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1459.6" textLength="634.4" 
clip-path="url(#breeze-ci-image-build-line-59)">&#160;Choosing&#160;dependencies&#160;and&#160;extras&#160;(for&#160;power&#160;users)&#160;</text><text
 class="breeze-ci-image-build-r5" x="658.8" y="1459.6" textLength="780.8" 
clip-path="url(#breeze-ci-image-build-line-59)">── [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1484" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-60)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1484" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-60)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1484" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-60)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1484" textLength="183" clip-path 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1508.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-61)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1508.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-61)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1508.4" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-61)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1508.4" textLength="146.4" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1532.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-62)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1532.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-62)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1532.8" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-62)">-dev</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="1532.8" textLength="109.8" 
clip-pat [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1557.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-63)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1557.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-63)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1557.2" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-63)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1557.2" textLength="158.6" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1581.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-64)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1581.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-64)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1581.6" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-64)">-dev</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="1581.6" textLength="146.4" 
clip-pat [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1606" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-65)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1606" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-65)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1606" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-65)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1606" textLength="195.2" clip-pa 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1630.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-66)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1630.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-66)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1630.4" textLength="134.2" 
clip-path="url(#breeze-ci-image-build-line-66)">-additional</text><text 
class="breeze-ci-image-build-r4" x="170.8" y="1630.4" textLength="146.4" [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1654.8" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1654.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-67)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1679.2" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-68)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1679.2" textLength="268.4" 
clip-path="url(#breeze-ci-image-build-line-68)">&#160;Backtracking&#160;options&#160;</text><text
 class="breeze-ci-image-build-r5" x="292.8" y="1679.2" textLength="1146.8" 
clip-path="url(#breeze-ci-image-build-line-68)">────────────────────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1703.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-69)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1703.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-69)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1703.6" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-69)">-build</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="1703.6" textLength="195.2" clip- 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1728" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-70)">│</text><text 
class="breeze-ci-image-build-r1" x="549" y="1728" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-70)">backtracking&#160;problems.&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#1
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1752.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-71)">│</text><text 
class="breeze-ci-image-build-r7" x="549" y="1752.4" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-71)">(INTEGER)&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1776.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-72)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1776.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-72)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1776.8" textLength="73.2" 
clip-path="url(#breeze-ci-image-build-line-72)">-eager</text><text 
class="breeze-ci-image-build-r4" x="109.8" y="1776.8" textLength="390.4" clip- 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1801.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-73)">│</text><text 
class="breeze-ci-image-build-r1" x="549" y="1801.2" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-73)">(see&#160;`breeze&#160;ci&#160;find-backtracking-candidates`).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1825.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-74)">│</text><text 
class="breeze-ci-image-build-r7" x="549" y="1825.6" textLength="890.6" 
clip-path="url(#breeze-ci-image-build-line-74)">(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;&#
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1850" textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-75)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="1850" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-75)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="1874.4" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-76)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="1874.4" textLength="622.2" 
clip-path="url(#breeze-ci-image-build-line-76)">&#160;Preparing&#160;cache&#160;and&#160;push&#160;(for&#160;maintainers&#160;and&#160;CI)&#160;</text><text
 class="breeze-ci-image-build-r5" x="646.6" y="1874.4" textLength="793" 
clip-path="url(#breeze-ci-image-build-line-76)"> [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1898.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-77)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1898.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-77)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1898.8" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-77)">-builder</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1898.8" textLength="756.4" cli 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1923.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-78)">│</text><text 
class="breeze-ci-image-build-r5" x="341.6" y="1923.2" textLength="756.4" 
clip-path="url(#breeze-ci-image-build-line-78)">[default:&#160;autodetect]&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#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-ci-image-build-r5" x="0" y="1947.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-79)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1947.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-79)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1947.6" textLength="109.8" 
clip-path="url(#breeze-ci-image-build-line-79)">-platform</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1947.6" textLength="329.4" c [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1972" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-80)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1972" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-80)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1972" textLength="61" 
clip-path="url(#breeze-ci-image-build-line-80)">-push</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="1972" textLength="353.8" 
clip-path="url(# [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="1996.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-81)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="1996.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-81)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="1996.4" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-81)">-prepare</text><text 
class="breeze-ci-image-build-r4" x="134.2" y="1996.4" textLength="158.6" cli 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2020.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-82)">│</text><text 
class="breeze-ci-image-build-r1" x="341.6" y="2020.8" textLength="1098" 
clip-path="url(#breeze-ci-image-build-line-82)">image).&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
 [...]
 </text><text class="breeze-ci-image-build-r5" x="0" y="2045.2" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-83)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="2045.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-83)">
-</text><text class="breeze-ci-image-build-r5" x="0" y="2069.6" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-84)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="2069.6" textLength="195.2" 
clip-path="url(#breeze-ci-image-build-line-84)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-image-build-r5" x="219.6" y="2069.6" textLength="1220" 
clip-path="url(#breeze-ci-image-build-line-84)">────────────────────────────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2094" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-85)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2094" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-85)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2094" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-85)">-answer</text><text 
class="breeze-ci-image-build-r6" x="158.6" y="2094" textLength="24.4" 
clip-path="ur [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2118.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-86)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2118.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-86)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2118.4" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-86)">-dry</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="2118.4" textLength="48.8" 
clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2142.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-87)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2142.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-87)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2142.8" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-87)">-verbose</text><text 
class="breeze-ci-image-build-r6" x="158.6" y="2142.8" textLength="24.4" clip 
[...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2167.2" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-88)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2167.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-88)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2167.2" textLength="61" 
clip-path="url(#breeze-ci-image-build-line-88)">-help</text><text 
class="breeze-ci-image-build-r6" x="158.6" y="2167.2" textLength="24.4" 
clip-path [...]
-</text><text class="breeze-ci-image-build-r5" x="0" y="2191.6" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-89)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="2191.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-89)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="2069.6" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-84)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="2069.6" textLength="280.6" 
clip-path="url(#breeze-ci-image-build-line-84)">&#160;Github&#160;authentication&#160;</text><text
 class="breeze-ci-image-build-r5" x="305" y="2069.6" textLength="1134.6" 
clip-path="url(#breeze-ci-image-build-line-84)">─────────────────────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2094" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-85)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2094" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-85)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2094" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-85)">-github</text><text 
class="breeze-ci-image-build-r4" x="122" y="2094" textLength="134.2" 
clip-path="url [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2118.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-86)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2118.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-86)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2118.4" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-86)">-github</text><text 
class="breeze-ci-image-build-r4" x="122" y="2118.4" textLength="73.2" clip-pa 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2142.8" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-87)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="2142.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-87)">
+</text><text class="breeze-ci-image-build-r5" x="0" y="2167.2" 
textLength="24.4" 
clip-path="url(#breeze-ci-image-build-line-88)">╭─</text><text 
class="breeze-ci-image-build-r5" x="24.4" y="2167.2" textLength="195.2" 
clip-path="url(#breeze-ci-image-build-line-88)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-image-build-r5" x="219.6" y="2167.2" textLength="1220" 
clip-path="url(#breeze-ci-image-build-line-88)">────────────────────────────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2191.6" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-89)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2191.6" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-89)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2191.6" textLength="85.4" 
clip-path="url(#breeze-ci-image-build-line-89)">-answer</text><text 
class="breeze-ci-image-build-r6" x="158.6" y="2191.6" textLength="24.4" clip- 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2216" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-90)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2216" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-90)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2216" textLength="48.8" 
clip-path="url(#breeze-ci-image-build-line-90)">-dry</text><text 
class="breeze-ci-image-build-r4" x="85.4" y="2216" textLength="48.8" 
clip-path="url(#b [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2240.4" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-91)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2240.4" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-91)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2240.4" textLength="97.6" 
clip-path="url(#breeze-ci-image-build-line-91)">-verbose</text><text 
class="breeze-ci-image-build-r6" x="158.6" y="2240.4" textLength="24.4" clip 
[...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2264.8" 
textLength="12.2" clip-path="url(#breeze-ci-image-build-line-92)">│</text><text 
class="breeze-ci-image-build-r4" x="24.4" y="2264.8" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-92)">-</text><text 
class="breeze-ci-image-build-r4" x="36.6" y="2264.8" textLength="61" 
clip-path="url(#breeze-ci-image-build-line-92)">-help</text><text 
class="breeze-ci-image-build-r6" x="158.6" y="2264.8" textLength="24.4" 
clip-path [...]
+</text><text class="breeze-ci-image-build-r5" x="0" y="2289.2" 
textLength="1464" 
clip-path="url(#breeze-ci-image-build-line-93)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-image-build-r1" x="1464" y="2289.2" textLength="12.2" 
clip-path="url(#breeze-ci-image-build-line-93)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_ci-image_build.txt 
b/dev/breeze/doc/images/output_ci-image_build.txt
index da1629b42b..b4ab5dac08 100644
--- a/dev/breeze/doc/images/output_ci-image_build.txt
+++ b/dev/breeze/doc/images/output_ci-image_build.txt
@@ -1 +1 @@
-f03ff588764a885cae1ca012e09f3354
+d2ef2733519d945c8cfd4fed63a43f24
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
index 7433e99249..103d4dafd5 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_image_commands.py
@@ -102,6 +102,7 @@ from airflow_breeze.utils.parallel import (
 )
 from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, 
BUILD_CACHE_DIR
 from airflow_breeze.utils.python_versions import get_python_version_list
+from airflow_breeze.utils.recording import generating_command_images
 from airflow_breeze.utils.registry import login_to_github_docker_registry
 from airflow_breeze.utils.run_tests import verify_an_image
 from airflow_breeze.utils.run_utils import (
@@ -260,10 +261,13 @@ option_upgrade_to_newer_dependencies = click.option(
 )
 
 option_upgrade_on_failure = click.option(
-    "--upgrade-on-failure",
+    "--upgrade-on-failure/--no-upgrade-on-failure",
     is_flag=True,
-    help="When set, attempt to run upgrade to newer dependencies when regular 
build fails.",
+    help="When set, attempt to run upgrade to newer dependencies when regular 
build fails. It is set to False"
+    " by default on CI and True by default locally.",
     envvar="UPGRADE_ON_FAILURE",
+    show_default=True,
+    default=not os.environ.get("CI", "") if not generating_command_images() 
else True,
 )
 
 option_version_suffix_for_pypi_ci = click.option(
@@ -798,7 +802,7 @@ def run_build_ci_image(
             if ci_image_params.upgrade_on_failure:
                 ci_image_params.upgrade_to_newer_dependencies = True
                 get_console().print(
-                    "[warning]Attempting to build with 
upgrade_to_newer_dependencies on failure"
+                    "[warning]Attempting to build with 
--upgrade-to-newer-dependencies on failure"
                 )
                 build_command_result = run_command(
                     prepare_docker_build_command(
@@ -851,6 +855,9 @@ def rebuild_or_pull_ci_image_if_needed(command_params: 
ShellParams | BuildCiPara
         
skip_provider_dependencies_check=command_params.skip_provider_dependencies_check,
         upgrade_to_newer_dependencies=False,
         warn_image_upgrade_needed=command_params.warn_image_upgrade_needed,
+        # upgrade on failure is disabled on CI but enabled locally, to make 
sure we are not
+        # accidentally upgrading dependencies on CI
+        upgrade_on_failure=not os.environ.get("CI", ""),
     )
     if command_params.image_tag is not None and command_params.image_tag != 
"latest":
         return_code, message = run_pull_image(


Reply via email to