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: ci-image 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: ci-image 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 CI image. Include building multiple images for all python 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)"> Basic usage </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)">(>3.8< | 3.9 | 3.10 | 3.11)                            
[...]
-</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: 3.8]                                    
[...]
-</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.                                     &#
[...]
-</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 you build or pull image with </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: registry]                          </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: dev0]                                   
[...]
-</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)                                     &#
[...]
-</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)"> Building images in parallel </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 RANGE)                                   &#
[...]
-</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: 4; 1<=x<=8]                                
[...]
-</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: 3.8 3.9 3.10 3.11]                              &#
[...]
-</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)"> Advanced build options (for power users) </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).                                     
[...]
-</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)                                     &
[...]
-</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 | bullseye)                                 &
[...]
-</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: bookworm]                                  &#
[...]
-</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 like: python:VERSION-slim-bookworm.                             &#
[...]
-</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)                                     
[...]
-</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)"> Selecting constraint location (for power users) </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 | constraints | 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: constraints-source-providers]                              
[...]
-</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)"> Choosing dependencies and extras (for power users) </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)"> Backtracking options </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 problems.                                  
[...]
-</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)                                     
[...]
-</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 `breeze ci find-backtracking-candidates`).                          </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)                                      
[...]
-</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)"> Preparing cache and push (for maintainers and CI) </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: autodetect]                                 
[...]
-</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).                                     
[...]
-</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)"> Github authentication </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)">(>3.8< | 3.9 | 3.10 | 3.11)                            
[...]
+</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: 3.8]                                    
[...]
+</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 build fails. It is set to False by default on CI and True </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 default locally.                                 
[...]
+</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: upgrade-on-failure]                                
[...]
+</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. Useful when you build or pull image with </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 | local | disabled)                </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: registry]                          </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)                                     &#
[...]
+</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: dev0]                                   
[...]
+</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, the `</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)                                     &#
[...]
+</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)"> Building images in parallel </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 RANGE)                                   &#
[...]
+</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: 4; 1<=x<=8]                                
[...]
+</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: 3.8 3.9 3.10 3.11]                               
[...]
+</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)"> Advanced build options (for power users) </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).                                    
[...]
+</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)                                     
[...]
+</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 | bullseye)                                  
[...]
+</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: bookworm]                                  &#
[...]
+</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 like: python:VERSION-slim-bookworm.                            
[...]
+</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)                                     
[...]
+</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)"> Selecting constraint location (for power users) </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 | constraints | 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: constraints-source-providers]                              
[...]
+</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)"> Choosing dependencies and extras (for power users) </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)"> Backtracking options </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 problems.                                  
[...]
+</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)                                     
[...]
+</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 `breeze ci find-backtracking-candidates`).                          </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)                                     &#
[...]
+</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)"> Preparing cache and push (for maintainers and CI) </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: autodetect]                                 
[...]
+</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).                                     
[...]
</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)"> Common options </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)"> Github authentication </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)"> Common options </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(