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 acfda3fc8e0 Regenerate API datamodels after the CI environment lock 
upgrade (#71718)
acfda3fc8e0 is described below

commit acfda3fc8e009975e2d4c7781e1e40d2960f093f
Author: Jarek Potiuk <[email protected]>
AuthorDate: Wed Aug 19 14:09:19 2026 +0200

    Regenerate API datamodels after the CI environment lock upgrade (#71718)
    
    `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.
---
 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 6bca01160d0..1eca2af7be5 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 d26a86502dc..6a1ee23da1d 100644
--- a/dev/breeze/doc/images/output_ci_upgrade.txt
+++ b/dev/breeze/doc/images/output_ci_upgrade.txt
@@ -1 +1 @@
-2982b71d3fe990ce8f59410e96621f4d
+a3ec0a8b87e70c03dd4285131ec06f75
diff --git a/dev/breeze/src/airflow_breeze/commands/ci_commands.py 
b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
index f7d0b82b02b..00c961d2c63 100644
--- a/dev/breeze/src/airflow_breeze/commands/ci_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/ci_commands.py
@@ -613,7 +613,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",
@@ -810,7 +811,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"),
         (
@@ -825,6 +827,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 = {
@@ -832,6 +842,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