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

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


The following commit(s) were added to refs/heads/v3-3-test by this push:
     new 794bb2879f9 [v3-3-test] Regenerate API datamodels after the CI 
environment lock upgrade (#71718) (#71838)
794bb2879f9 is described below

commit 794bb2879f9884b3f2e4567c617d639957cd5526
Author: Jarek Potiuk <[email protected]>
AuthorDate: Wed Aug 19 14:29:43 2026 +0200

    [v3-3-test] Regenerate API datamodels after the CI environment lock upgrade 
(#71718) (#71838)
    
    `uv lock --upgrade` can move datamodel-code-generator, whose version is
    stamped into the header of every file it generates. The two codegen hooks
    are gated on the execution and core API sources, which an upgrade run never
    touches, so they stay dormant while the automation commits -- and the next
    CI run, which invokes them with --all-files, regenerates the headers and
    fails the static checks job on the upgrade PR itself.
    
    Tying the regeneration to the lock step keeps the upgrade PR 
self-consistent.
    (cherry picked from commit acfda3fc8e009975e2d4c7781e1e40d2960f093f)
---
 dev/breeze/doc/images/output_ci_upgrade.svg        | 32 ++++++++++++----------
 dev/breeze/doc/images/output_ci_upgrade.txt        |  2 +-
 .../src/airflow_breeze/commands/ci_commands.py     | 15 ++++++++--
 3 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/dev/breeze/doc/images/output_ci_upgrade.svg 
b/dev/breeze/doc/images/output_ci_upgrade.svg
index 6a4afbe0e4e..d5e86739e3b 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 1026.0" 
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="975.0" />
     </clipPath>
     <clipPath id="breeze-ci-upgrade-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -159,9 +159,12 @@
 <clipPath id="breeze-ci-upgrade-line-37">
     <rect x="0" y="904.3" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-ci-upgrade-line-38">
+    <rect x="0" y="928.7" 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="1024" 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"/>
@@ -199,17 +202,18 @@
 </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="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="695.4" 
clip-path="url(#breeze-ci-upgrade-line-28)">resolutions&#160;inside&#160;Breeze&#160;CI&#160;image,&#160;then&#160;regenerate&#160;the&#160;&#160;</text><text
 class="breeze-ci-upgrade-r5" x="1451.8" y="703.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-28)">│</text><text class [...]
+</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-r1" x="744.2" y="727.6" textLength="695.4" 
clip-path="url(#breeze-ci-upgrade-line-29)">API&#160;datamodels&#160;the&#160;resolved&#160;code&#160;generator&#160;stamps&#160;its&#160;&#160;&#160;&#160;</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><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-r1" x="744.2" y="752" textLength="158.6" 
clip-path="url(#breeze-ci-upgrade-line-30)">version&#160;into&#160;</text><text 
class="breeze-ci-upgrade-r5" x="902.8" y="752" textLength="305" 
clip-path="url(#breeze-ci-upgrade-line-30)">[default:&#160;update-uv-lock]</text><text
 class="breeze-ci-upgrade-r5" x="1451.8" y="752" textLength="12. [...]
+</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-r4" x="24.4" y="776.4" textLength="207.4" 
clip-path="url(#breeze-ci-upgrade-line-31)">--k8s-schema-sync</text><text 
class="breeze-ci-upgrade-r1" x="231.8" y="776.4" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-31)">/</text><text 
class="breeze-ci-upgrade-r4" x="244" y="776.4" textLength="244" 
clip-path="url(#breeze-ci-up [...]
+</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-r5" x="744.2" y="800.8" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-32)">k8s-schema-sync]</text><text 
class="breeze-ci-upgrade-r5" x="1451.8" y="800.8" textLength="12.2" 
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 [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="825.2" textLength="1464" 
clip-path="url(#breeze-ci-upgrade-line-33)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-upgrade-r1" x="1464" y="825.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-33)">
+</text><text class="breeze-ci-upgrade-r5" x="0" y="849.6" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-34)">╭─</text><text 
class="breeze-ci-upgrade-r5" x="24.4" y="849.6" textLength="195.2" 
clip-path="url(#breeze-ci-upgrade-line-34)">&#160;Common&#160;options&#160;</text><text
 class="breeze-ci-upgrade-r5" x="219.6" y="849.6" textLength="1220" 
clip-path="url(#breeze-ci-upgrade-line-34)">───────────────────────────────────────────────────────────────────────────────────────────
 [...]
+</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)">--answer&#160;</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="874" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-35)">-a</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="874" textLength="329.4" 
clip-path="url(#breeze-ci-upgrade- [...]
+</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)">--verbose</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="898.4" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-36)">-v</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="898.4" textLength="585.6" 
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)">--dry-run</text><text 
class="breeze-ci-upgrade-r7" x="158.6" y="922.8" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-37)">-D</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="922.8" textLength="719.8" 
clip-path="url(#breeze-ci-upgra [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="947.2" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-38)">│</text><text 
class="breeze-ci-upgrade-r4" x="24.4" y="947.2" textLength="109.8" 
clip-path="url(#breeze-ci-upgrade-line-38)">--help&#160;&#160;&#160;</text><text
 class="breeze-ci-upgrade-r7" x="158.6" y="947.2" textLength="24.4" 
clip-path="url(#breeze-ci-upgrade-line-38)">-h</text><text 
class="breeze-ci-upgrade-r1" x="207.4" y="947.2" textLength="329.4" 
clip-path="url(# [...]
+</text><text class="breeze-ci-upgrade-r5" x="0" y="971.6" textLength="1464" 
clip-path="url(#breeze-ci-upgrade-line-39)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-ci-upgrade-r1" x="1464" y="971.6" textLength="12.2" 
clip-path="url(#breeze-ci-upgrade-line-39)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_ci_upgrade.txt 
b/dev/breeze/doc/images/output_ci_upgrade.txt
index 2500d0b9d7f..0dfdad6effa 100644
--- a/dev/breeze/doc/images/output_ci_upgrade.txt
+++ b/dev/breeze/doc/images/output_ci_upgrade.txt
@@ -1 +1 @@
-20100f261819662d368dac8c3e94bf19
+edaa8a170a17c7208ed46a813e40aa57
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
index 686def2fc0b..70c5fa01f37 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
@@ -599,7 +599,8 @@ def _sync_k8s_schemas_to_airflow_site(airflow_site: Path, 
force: bool, command_e
     "--update-uv-lock/--no-update-uv-lock",
     default=True,
     show_default=True,
-    help="Run update-uv-lock to regenerate uv.lock with latest resolutions 
inside Breeze CI image",
+    help="Run update-uv-lock to regenerate uv.lock with latest resolutions 
inside Breeze CI image, "
+    "then regenerate the API datamodels the resolved code generator stamps its 
version into",
 )
 @click.option(
     "--k8s-schema-sync/--no-k8s-schema-sync",
@@ -795,7 +796,8 @@ def upgrade(
         )
 
     # All upgrade commands run locally with check=False to continue on errors.
-    # The uv lock --upgrade step must run last so it can incorporate changes 
from the other steps.
+    # The uv lock --upgrade step must run after the steps that change 
dependencies, so it can
+    # incorporate them -- and before the steps that regenerate code from the 
resolved versions.
     upgrade_commands: list[tuple[str, str]] = [
         ("autoupdate", "prek autoupdate --cooldown-days 4 --freeze"),
         (
@@ -810,6 +812,14 @@ def upgrade(
             "update-uv-lock",
             "uv lock --upgrade",
         ),
+        (
+            # The lock upgrade can bump datamodel-code-generator, whose 
version is stamped into the
+            # generated files' header. These hooks only watch the API sources, 
which an upgrade run
+            # never touches, so nothing regenerates them here and CI's 
--all-files run goes red.
+            "regenerate-datamodels",
+            "prek --all-files --show-diff-on-failure --color always --verbose "
+            "generate-tasksdk-datamodels generate-airflowctl-datamodels",
+        ),
     ]
 
     step_enabled = {
@@ -817,6 +827,7 @@ def upgrade(
         "update-chart-dependencies": update_chart_dependencies,
         "upgrade-important-versions": upgrade_important_versions,
         "update-uv-lock": update_uv_lock,
+        "regenerate-datamodels": update_uv_lock,
     }
 
     # Execute upgrade commands

Reply via email to