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

potiuk pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-2-test by this push:
     new 7a998637b74 [v3-2-test] [main] Force building CI image on upgrade 
important CI environment (#64536) (#64769)
7a998637b74 is described below

commit 7a998637b743eeed20d82770dc0c0f2fbe12123b
Author: Jarek Potiuk <[email protected]>
AuthorDate: Mon Apr 6 17:46:56 2026 +0200

    [v3-2-test] [main] Force building CI image on upgrade important CI 
environment (#64536) (#64769)
    
    * Build CI image before syncing breeze lock in version upgrades
    
    When upgrade_important_versions.py detects changed versions, force-build
    the CI image for Python 3.10 before running breeze's uv sync so that
    the lock file is generated against the updated image.
    
    * CI: Upgrade important CI environment
    (cherry picked from commit 152295362e53098f660c6f2bac822c2756a4d05a)
---
 .pre-commit-config.yaml                            |  2 +-
 contributing-docs/08_static_code_checks.rst        | 16 --------
 dev/breeze/doc/images/output_ci_upgrade.svg        | 46 +++++++++-------------
 dev/breeze/doc/images/output_ci_upgrade.txt        |  2 +-
 .../src/airflow_breeze/commands/ci_commands.py     | 18 ++++-----
 .../airflow_breeze/commands/ci_commands_config.py  |  1 -
 6 files changed, 30 insertions(+), 55 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 4d47e392fd3..5ae63005dc5 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -256,7 +256,7 @@ repos:
           (?x)
           ^\.pre-commit-config\.yaml$|
           ^\.github/\.pre-commit-config\.yaml$|
-          ^scripts/ci/prek/update_installers_and_prek\.py$
+          ^scripts/ci/prek/upgrade_important_versions\.py$
         pass_filenames: false
         require_serial: true
   - repo: https://github.com/adamchainz/blacken-docs
diff --git a/contributing-docs/08_static_code_checks.rst 
b/contributing-docs/08_static_code_checks.rst
index 2750cbafe5d..1d009b92cef 100644
--- a/contributing-docs/08_static_code_checks.rst
+++ b/contributing-docs/08_static_code_checks.rst
@@ -276,22 +276,6 @@ Most of the checks we run are configured to run 
automatically when you commit th
 there are some checks that are not run automatically and you need to run them 
manually. You can run
 them manually by running ``prek --stage manual <hook-id>``.
 
-Special pin-versions prek
--------------------------
-
-There is a separate prek ``pin-versions`` prek hook which is used to pin 
versions of
-GitHub Actions in the CI workflows.
-
-This action requires ``GITHUB_TOKEN`` to be set, otherwise you might hit the 
rate limits with GitHub API, it
-It is not run automatically when you commit the code but in runs as a separate 
job in the CI.
-However, you can run it manually by running:
-
-.. code-block:: bash
-
-    export GITHUB_TOKEN=YOUR_GITHUB_TOKEN
-    prek --all-files --stage manual --verbose pin-versions
-
-
 Mypy checks
 -----------
 
diff --git a/dev/breeze/doc/images/output_ci_upgrade.svg 
b/dev/breeze/doc/images/output_ci_upgrade.svg
index 930f22c68e2..5370d25bff3 100644
--- a/dev/breeze/doc/images/output_ci_upgrade.svg
+++ b/dev/breeze/doc/images/output_ci_upgrade.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1001.5999999999999" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 1482 952.8" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-ci-upgrade-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="950.5999999999999" />
+      <rect x="0" y="0" width="1463.0" height="901.8" />
     </clipPath>
     <clipPath id="breeze-ci-upgrade-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -153,15 +153,9 @@
 <clipPath id="breeze-ci-upgrade-line-35">
     <rect x="0" y="855.5" width="1464" height="24.65"/>
             </clipPath>
-<clipPath id="breeze-ci-upgrade-line-36">
-    <rect x="0" y="879.9" width="1464" height="24.65"/>
-            </clipPath>
-<clipPath id="breeze-ci-upgrade-line-37">
-    <rect x="0" y="904.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="999.6" rx="8"/><text 
class="breeze-ci-upgrade-title" fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;ci&#160;upgrade</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="950.8" rx="8"/><text 
class="breeze-ci-upgrade-title" fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;ci&#160;upgrade</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -192,24 +186,22 @@
 </text><text class="breeze-ci-upgrade-r5" x="0" y="459.2" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-18)">╭─</text><text 
class="breeze-ci-upgrade-r5" x="24.4" y="459.2" textLength="183" 
clip-path="url(#breeze-ci-upgrade-line-18)">&#160;Upgrade&#160;steps&#160;</text><text
 class="breeze-ci-upgrade-r5" x="207.4" y="459.2" textLength="1232.2" 
clip-path="url(#breeze-ci-upgrade-line-18)">────────────────────────────────────────────────────────────────────────────────────────────
 [...]
 </text><text class="breeze-ci-upgrade-r5" x="0" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-19)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="483.6" textLength="146.4" 
clip-path="url(#breeze-ci-upgrade-line-19)">--autoupdate</text><text 
class="breeze-ci-upgrade-r1" x="170.8" y="483.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-19)">/</text><text 
class="breeze-ci-upgrade-r4" x="183" y="483.6" textLength="183" 
clip-path="url(#breeze-ci-upgrade [...]
 </text><text class="breeze-ci-upgrade-r5" x="0" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-20)">│</text><text 
class="breeze-ci-upgrade-r5" x="744.2" y="508" textLength="134.2" 
clip-path="url(#breeze-ci-upgrade-line-20)">autoupdate]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-20)">│</text><text 
class="breeze-ci-upgrade-r1" x="1464" y="508" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-20)">
-</text><text class="breeze-ci-upgrade-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-21)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="532.4" textLength="170.8" 
clip-path="url(#breeze-ci-upgrade-line-21)">--pin-versions</text><text 
class="breeze-ci-upgrade-r1" x="195.2" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-21)">/</text><text 
class="breeze-ci-upgrade-r4" x="207.4" y="532.4" textLength="207.4" 
clip-path="url(#breeze-ci-u [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-22)">│</text><text 
class="breeze-ci-upgrade-r5" x="744.2" y="556.8" textLength="158.6" 
clip-path="url(#breeze-ci-upgrade-line-22)">pin-versions]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-22)">│</text><text 
class="breeze-ci-upgrade-r1" x="1464" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-up [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-23)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="581.2" textLength="329.4" 
clip-path="url(#breeze-ci-upgrade-line-23)">--update-chart-dependencies</text><text
 class="breeze-ci-upgrade-r1" x="353.8" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-23)">/</text><text 
class="breeze-ci-upgrade-r4" x="366" y="581.2" textLength="353.8" 
clip-path="url(# [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="605.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-24)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="605.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-24)">s</text><text 
class="breeze-ci-upgrade-r1" x="744.2" y="605.6" textLength="158.6" 
clip-path="url(#breeze-ci-upgrade-line-24)">dependencies&#160;</text><text 
class="breeze-ci-upgrade-r5" x="902.8" y="605.6" textLength="439.2" 
clip-path="url(#breeze- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-25)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="630" textLength="341.6" 
clip-path="url(#breeze-ci-upgrade-line-25)">--upgrade-important-versions</text><text
 class="breeze-ci-upgrade-r1" x="366" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-25)">/</text><text 
class="breeze-ci-upgrade-r4" x="378.2" y="630" textLength="341.6" 
clip-path="url(#breeze- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="654.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-26)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="654.4" textLength="36.6" 
clip-path="url(#breeze-ci-upgrade-line-26)">ons</text><text 
class="breeze-ci-upgrade-r1" x="744.2" y="654.4" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-26)">versions&#160;</text><text 
class="breeze-ci-upgrade-r5" x="854" y="654.4" textLength="451.4" 
clip-path="url(#breeze-ci-u [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-27)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="678.8" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-27)">--update-uv-lock</text><text 
class="breeze-ci-upgrade-r1" x="219.6" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-27)">/</text><text 
class="breeze-ci-upgrade-r4" x="231.8" y="678.8" textLength="231.8" 
clip-path="url(#breeze-ci [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="703.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-28)">│</text><text 
class="breeze-ci-upgrade-r1" x="744.2" y="703.2" textLength="427" 
clip-path="url(#breeze-ci-upgrade-line-28)">resolutions&#160;inside&#160;Breeze&#160;CI&#160;image&#160;</text><text
 class="breeze-ci-upgrade-r5" x="1171.2" y="703.2" textLength="122" 
clip-path="url(#breeze-ci-upgrade-line-28)">[default:&#160;</text><text 
class="breeze-ci-upgrade-r5" x="1451 [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text 
class="breeze-ci-upgrade-r5" x="744.2" y="727.6" textLength="183" 
clip-path="url(#breeze-ci-upgrade-line-29)">update-uv-lock]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text 
class="breeze-ci-upgrade-r1" x="1464" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci-up [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-30)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="752" textLength="207.4" 
clip-path="url(#breeze-ci-upgrade-line-30)">--k8s-schema-sync</text><text 
class="breeze-ci-upgrade-r1" x="231.8" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-30)">/</text><text 
class="breeze-ci-upgrade-r4" x="244" y="752" textLength="244" 
clip-path="url(#breeze-ci-upgrade-li [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="776.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-31)">│</text><text 
class="breeze-ci-upgrade-r5" x="744.2" y="776.4" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-31)">k8s-schema-sync]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="776.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-31)">│</text><text 
class="breeze-ci-upgrade-r1" x="1464" y="776.4" textLength="12.2" 
clip-path="url(#breeze-ci [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="800.8" textLength="1464" 
clip-path="url(#breeze-ci-upgrade-line-32)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-upgrade-r1" x="1464" y="800.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-32)">
-</text><text class="breeze-ci-upgrade-r5" x="0" y="825.2" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-33)">╭─</text><text 
class="breeze-ci-upgrade-r5" x="24.4" y="825.2" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-33)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-upgrade-r5" x="219.6" y="825.2" textLength="1220" 
clip-path="url(#breeze-ci-upgrade-line-33)">───────────────────────────────────────────────────────────────────────────────────────────
 [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="849.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-34)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="849.6" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-34)">--answer&#160;</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="849.6" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-34)">-a</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="849.6" textLength="329.4" 
clip-path="url(#breeze-ci- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="874" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-35)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="874" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-35)">--verbose</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="874" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-35)">-v</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="874" textLength="585.6" 
clip-path="url(#breeze-ci-upgrade-line- [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="898.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-36)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="898.4" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-36)">--dry-run</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="898.4" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-36)">-D</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="898.4" textLength="719.8" 
clip-path="url(#breeze-ci-upgra [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="922.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-37)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="922.8" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-37)">--help&#160;&#160;&#160;</text><text
 class="breeze-ci-upgrade-r7" x="158.6" y="922.8" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-37)">-h</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="922.8" textLength="329.4" 
clip-path="url(# [...]
-</text><text class="breeze-ci-upgrade-r5" x="0" y="947.2" textLength="1464" 
clip-path="url(#breeze-ci-upgrade-line-38)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-upgrade-r1" x="1464" y="947.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-38)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-21)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="532.4" textLength="329.4" 
clip-path="url(#breeze-ci-upgrade-line-21)">--update-chart-dependencies</text><text
 class="breeze-ci-upgrade-r1" x="353.8" y="532.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-21)">/</text><text 
class="breeze-ci-upgrade-r4" x="366" y="532.4" textLength="353.8" 
clip-path="url(# [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-22)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="556.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-22)">s</text><text 
class="breeze-ci-upgrade-r1" x="744.2" y="556.8" textLength="158.6" 
clip-path="url(#breeze-ci-upgrade-line-22)">dependencies&#160;</text><text 
class="breeze-ci-upgrade-r5" x="902.8" y="556.8" textLength="439.2" 
clip-path="url(#breeze- [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-23)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="581.2" textLength="341.6" 
clip-path="url(#breeze-ci-upgrade-line-23)">--upgrade-important-versions</text><text
 class="breeze-ci-upgrade-r1" x="366" y="581.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-23)">/</text><text 
class="breeze-ci-upgrade-r4" x="378.2" y="581.2" textLength="341.6" 
clip-path="url( [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="605.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-24)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="605.6" textLength="36.6" 
clip-path="url(#breeze-ci-upgrade-line-24)">ons</text><text 
class="breeze-ci-upgrade-r1" x="744.2" y="605.6" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-24)">versions&#160;</text><text 
class="breeze-ci-upgrade-r5" x="854" y="605.6" textLength="451.4" 
clip-path="url(#breeze-ci-u [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-25)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="630" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-25)">--update-uv-lock</text><text 
class="breeze-ci-upgrade-r1" x="219.6" y="630" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-25)">/</text><text 
class="breeze-ci-upgrade-r4" x="231.8" y="630" textLength="231.8" 
clip-path="url(#breeze-ci-upgrade [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="654.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-26)">│</text><text 
class="breeze-ci-upgrade-r1" x="744.2" y="654.4" textLength="427" 
clip-path="url(#breeze-ci-upgrade-line-26)">resolutions&#160;inside&#160;Breeze&#160;CI&#160;image&#160;</text><text
 class="breeze-ci-upgrade-r5" x="1171.2" y="654.4" textLength="122" 
clip-path="url(#breeze-ci-upgrade-line-26)">[default:&#160;</text><text 
class="breeze-ci-upgrade-r5" x="1451 [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-27)">│</text><text 
class="breeze-ci-upgrade-r5" x="744.2" y="678.8" textLength="183" 
clip-path="url(#breeze-ci-upgrade-line-27)">update-uv-lock]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-27)">│</text><text 
class="breeze-ci-upgrade-r1" x="1464" y="678.8" textLength="12.2" 
clip-path="url(#breeze-ci-up [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="703.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-28)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="703.2" textLength="207.4" 
clip-path="url(#breeze-ci-upgrade-line-28)">--k8s-schema-sync</text><text 
class="breeze-ci-upgrade-r1" x="231.8" y="703.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-28)">/</text><text 
class="breeze-ci-upgrade-r4" x="244" y="703.2" textLength="244" 
clip-path="url(#breeze-ci-up [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text 
class="breeze-ci-upgrade-r5" x="744.2" y="727.6" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-29)">k8s-schema-sync]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-29)">│</text><text 
class="breeze-ci-upgrade-r1" x="1464" y="727.6" textLength="12.2" 
clip-path="url(#breeze-ci [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="752" textLength="1464" 
clip-path="url(#breeze-ci-upgrade-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-upgrade-r1" x="1464" y="752" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-30)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="776.4" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-31)">╭─</text><text 
class="breeze-ci-upgrade-r5" x="24.4" y="776.4" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-31)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-upgrade-r5" x="219.6" y="776.4" textLength="1220" 
clip-path="url(#breeze-ci-upgrade-line-31)">───────────────────────────────────────────────────────────────────────────────────────────
 [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="800.8" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-32)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="800.8" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-32)">--answer&#160;</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="800.8" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-32)">-a</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="800.8" textLength="329.4" 
clip-path="url(#breeze-ci- [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="825.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-33)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="825.2" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-33)">--verbose</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="825.2" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-33)">-v</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="825.2" textLength="585.6" 
clip-path="url(#breeze-ci-upgra [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="849.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-34)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="849.6" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-34)">--dry-run</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="849.6" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-34)">-D</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="849.6" textLength="719.8" 
clip-path="url(#breeze-ci-upgra [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="874" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-35)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="874" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-35)">--help&#160;&#160;&#160;</text><text
 class="breeze-ci-upgrade-r7" x="158.6" y="874" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-35)">-h</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="874" textLength="329.4" 
clip-path="url(#breeze-c [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="898.4" textLength="1464" 
clip-path="url(#breeze-ci-upgrade-line-36)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-upgrade-r1" x="1464" y="898.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-36)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_ci_upgrade.txt 
b/dev/breeze/doc/images/output_ci_upgrade.txt
index 9f16fde993f..d4c9261560f 100644
--- a/dev/breeze/doc/images/output_ci_upgrade.txt
+++ b/dev/breeze/doc/images/output_ci_upgrade.txt
@@ -1 +1 @@
-fb7d9c3f3084eefed384c3626a0cfcdd
+c31c21e727da6c84a6b2d7f1a7d18718
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
index 5d5f7c63320..7edf6fc2ac5 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
@@ -561,12 +561,6 @@ def _sync_k8s_schemas_to_airflow_site(airflow_site: Path, 
force: bool, command_e
     show_default=True,
     help="Run prek autoupdate to update hook revisions",
 )
[email protected](
-    "--pin-versions/--no-pin-versions",
-    default=True,
-    show_default=True,
-    help="Run pin-versions to pin CI dependency versions",
-)
 @click.option(
     "--update-chart-dependencies/--no-update-chart-dependencies",
     default=True,
@@ -602,7 +596,6 @@ def upgrade(
     airflow_site: Path,
     force_k8s_schema_sync: bool,
     autoupdate: bool,
-    pin_versions: bool,
     update_chart_dependencies: bool,
     upgrade_important_versions: bool,
     update_uv_lock: bool,
@@ -785,10 +778,18 @@ def upgrade(
             "Commands may fail if they require authentication.[/]"
         )
 
+    # Build the CI image for Python 3.10 first so that subsequent steps (e.g. 
uv lock
+    # updates inside the image) use an up-to-date environment.
+    console_print("[info]Building CI image for Python 3.10 …[/]")
+    run_command(
+        ["breeze", "ci-image", "build", "--python", "3.10"],
+        check=False,
+        env=command_env,
+    )
+
     # Define all upgrade commands to run (all run with check=False to continue 
on errors)
     upgrade_commands: list[tuple[str, str]] = [
         ("autoupdate", "prek autoupdate --cooldown-days 4 --freeze"),
-        ("pin-versions", "prek --all-files --verbose --stage manual 
pin-versions"),
         (
             "update-chart-dependencies",
             "prek --all-files --show-diff-on-failure --color always --verbose 
--stage manual update-chart-dependencies",
@@ -804,7 +805,6 @@ def upgrade(
     ]
     step_enabled = {
         "autoupdate": autoupdate,
-        "pin-versions": pin_versions,
         "update-chart-dependencies": update_chart_dependencies,
         "upgrade-important-versions": upgrade_important_versions,
         "update-uv-lock": update_uv_lock,
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py 
b/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
index 6d883b3eafa..8c02d6c9c06 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands_config.py
@@ -84,7 +84,6 @@ CI_PARAMETERS: dict[str, list[dict[str, str | list[str]]]] = {
             "name": "Upgrade steps",
             "options": [
                 "--autoupdate",
-                "--pin-versions",
                 "--update-chart-dependencies",
                 "--upgrade-important-versions",
                 "--update-uv-lock",

Reply via email to