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 b24538b0bc3 Added breeze generate issue content for airflow-ctl 
(#65042)
b24538b0bc3 is described below

commit b24538b0bc3a53d8c666b62e52e023a17d102467
Author: Justin Pakzad <[email protected]>
AuthorDate: Sun Apr 12 16:38:08 2026 -0400

    Added breeze generate issue content for airflow-ctl (#65042)
    
    * Add breeze generate issue content for airflow-ctl
    
    * add new command to doc
---
 dev/breeze/doc/09_release_management_tasks.rst     |  10 ++
 .../doc/images/output_release-management.svg       |  42 ++++---
 .../doc/images/output_release-management.txt       |   2 +-
 ...nagement_generate-issue-content-airflow-ctl.svg | 134 +++++++++++++++++++++
 ...nagement_generate-issue-content-airflow-ctl.txt |   1 +
 .../output_setup_check-all-params-in-groups.svg    |   4 +-
 .../output_setup_check-all-params-in-groups.txt    |   2 +-
 .../output_setup_regenerate-command-images.svg     |  72 +++++------
 .../output_setup_regenerate-command-images.txt     |   2 +-
 .../commands/release_management_commands.py        |  67 ++++++++++-
 .../commands/release_management_commands_config.py |  16 ++-
 11 files changed, 289 insertions(+), 63 deletions(-)

diff --git a/dev/breeze/doc/09_release_management_tasks.rst 
b/dev/breeze/doc/09_release_management_tasks.rst
index 195dfc22937..3d5faef5e21 100644
--- a/dev/breeze/doc/09_release_management_tasks.rst
+++ b/dev/breeze/doc/09_release_management_tasks.rst
@@ -894,6 +894,16 @@ If you pass ``--tag`` fag, the distribution will create a 
source tarball release
   :width: 100%
   :alt: Breeze release-management prepare-airflow-ctl-distributions
 
+Generating airflow-ctl issue
+""""""""""""""""""""""""""""
+
+You can use Breeze to generate an airflow-ctl issue when you release new 
airflow-ctl.
+
+.. image:: 
./images/output_release-management_generate-issue-content-airflow-ctl.svg
+  :target: 
https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.svg
+  :width: 100%
+  :alt: Breeze generate-issue-content-airflow-ctl
+
 Publishing the documentation to S3
 """"""""""""""""""""""""""""""""""
 
diff --git a/dev/breeze/doc/images/output_release-management.svg 
b/dev/breeze/doc/images/output_release-management.svg
index f125c70fe38..b6def918b85 100644
--- a/dev/breeze/doc/images/output_release-management.svg
+++ b/dev/breeze/doc/images/output_release-management.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1343.1999999999998" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 1482 1367.6" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -42,7 +42,7 @@
 
     <defs>
     <clipPath id="breeze-release-management-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="1292.1999999999998" />
+      <rect x="0" y="0" width="1463.0" height="1316.6" />
     </clipPath>
     <clipPath id="breeze-release-management-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -200,9 +200,12 @@
 <clipPath id="breeze-release-management-line-51">
     <rect x="0" y="1245.9" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-release-management-line-52">
+    <rect x="0" y="1270.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="1341.2" rx="8"/><text 
class="breeze-release-management-title" fill="#c5c8c6" text-anchor="middle" 
x="740" y="27">Command:&#160;release-management</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="1365.6" rx="8"/><text 
class="breeze-release-management-title" fill="#c5c8c6" text-anchor="middle" 
x="740" y="27">Command:&#160;release-management</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -249,22 +252,23 @@
 </text><text class="breeze-release-management-r5" x="0" y="849.6" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-34)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="849.6" textLength="512.4" 
clip-path="url(#breeze-release-management-line-34)">prepare-task-sdk-distributions&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="561.2" y="849.6" textLength="878.4" 
clip-path="url(#breeze-r [...]
 </text><text class="breeze-release-management-r5" x="0" y="874" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-35)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="874" textLength="12.2" 
clip-path="url(#breeze-release-management-line-35)">
 </text><text class="breeze-release-management-r5" x="0" y="898.4" 
textLength="24.4" 
clip-path="url(#breeze-release-management-line-36)">╭─</text><text 
class="breeze-release-management-r5" x="24.4" y="898.4" textLength="353.8" 
clip-path="url(#breeze-release-management-line-36)">&#160;airflowctl&#160;release&#160;commands&#160;</text><text
 class="breeze-release-management-r5" x="378.2" y="898.4" textLength="1061.4" 
clip-path="url(#breeze-release-management-line-36)">─────────────────────── 
[...]
-</text><text class="breeze-release-management-r5" x="0" y="922.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-37)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="922.8" textLength="585.6" 
clip-path="url(#breeze-release-management-line-37)">prepare-airflow-ctl-distributions&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="634.4" y="922.8" textLength="805.2" 
cli [...]
-</text><text class="breeze-release-management-r5" x="0" y="947.2" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-38)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="947.2" textLength="12.2" 
clip-path="url(#breeze-release-management-line-38)">
-</text><text class="breeze-release-management-r5" x="0" y="971.6" 
textLength="24.4" 
clip-path="url(#breeze-release-management-line-39)">╭─</text><text 
class="breeze-release-management-r5" x="24.4" y="971.6" textLength="292.8" 
clip-path="url(#breeze-release-management-line-39)">&#160;Other&#160;release&#160;commands&#160;</text><text
 class="breeze-release-management-r5" x="317.2" y="971.6" textLength="1122.4" 
clip-path="url(#breeze-release-management-line-39)">────────────────────────────
 [...]
-</text><text class="breeze-release-management-r5" x="0" y="996" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-40)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="996" textLength="292.8" 
clip-path="url(#breeze-release-management-line-40)">add-back-references&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="996" textLength="1098" 
clip-path="url(#breeze-release-management-line-40)">Command&#160;to&#160;add&#160;ba
 [...]
-</text><text class="breeze-release-management-r5" x="0" y="1020.4" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-41)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1020.4" textLength="292.8" 
clip-path="url(#breeze-release-management-line-41)">prepare-python-client&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1020.4" textLength="1098" 
clip-path="url(#breeze-release-management-line-41)">Prepares&#160;python&#160;client&
 [...]
-</text><text class="breeze-release-management-r5" x="0" y="1044.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-42)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1044.8" textLength="292.8" 
clip-path="url(#breeze-release-management-line-42)">publish-docs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1044.8" textLength="1098" 
clip-path="url(#breeze-release-managemen [...]
-</text><text class="breeze-release-management-r5" x="0" y="1069.2" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-43)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1069.2" textLength="292.8" 
clip-path="url(#breeze-release-management-line-43)">generate-constraints&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1069.2" textLength="1098" 
clip-path="url(#breeze-release-management-line-43)">Generates&#160;pinned&#160;c
 [...]
-</text><text class="breeze-release-management-r5" x="0" y="1093.6" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-44)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1093.6" textLength="292.8" 
clip-path="url(#breeze-release-management-line-44)">update-constraints&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1093.6" textLength="1098" 
clip-path="url(#breeze-release-management-line-44)">Update&#160;releas [...]
-</text><text class="breeze-release-management-r5" x="0" y="1118" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-45)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1118" textLength="292.8" 
clip-path="url(#breeze-release-management-line-45)">publish-docs-to-s3&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1118" textLength="1098" 
clip-path="url(#breeze-release-management-line-45)">Publishes&#160;docs&#160 
[...]
-</text><text class="breeze-release-management-r5" x="0" y="1142.4" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-46)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1142.4" textLength="292.8" 
clip-path="url(#breeze-release-management-line-46)">verify-rc-by-pmc&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1142.4" textLength="1098" 
clip-path="url(#breeze-release-management-line-46)">[EXPERIM [...]
-</text><text class="breeze-release-management-r5" x="0" y="1166.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-47)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1166.8" textLength="292.8" 
clip-path="url(#breeze-release-management-line-47)">check-release-files&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1166.8" textLength="1098" 
clip-path="url(#breeze-release-management-line-47)">Verify&#160;that&#160;a 
[...]
-</text><text class="breeze-release-management-r5" x="0" y="1191.2" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-48)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="1191.2" textLength="12.2" 
clip-path="url(#breeze-release-management-line-48)">
-</text><text class="breeze-release-management-r5" x="0" y="1215.6" 
textLength="24.4" 
clip-path="url(#breeze-release-management-line-49)">╭─</text><text 
class="breeze-release-management-r5" x="24.4" y="1215.6" textLength="122" 
clip-path="url(#breeze-release-management-line-49)">&#160;Commands&#160;</text><text
 class="breeze-release-management-r5" x="146.4" y="1215.6" textLength="1293.2" 
clip-path="url(#breeze-release-management-line-49)">───────────────────────────────────────────────────
 [...]
-</text><text class="breeze-release-management-r5" x="0" y="1240" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-50)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1240" textLength="305" 
clip-path="url(#breeze-release-management-line-50)">constraints-version-check</text><text
 class="breeze-release-management-r1" x="353.8" y="1240" textLength="1085.8" 
clip-path="url(#breeze-release-management-line-50)">Check&#160;constraints&#160;against&#160;released&#16
 [...]
-</text><text class="breeze-release-management-r5" x="0" y="1264.4" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-51)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1264.4" textLength="305" 
clip-path="url(#breeze-release-management-line-51)">merge-prod-images&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="353.8" y="1264.4" textLength="1085.8" 
clip-path="url(#breeze-release-management-line-51)">Merge&# [...]
-</text><text class="breeze-release-management-r5" x="0" y="1288.8" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-52)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="1288.8" textLength="12.2" 
clip-path="url(#breeze-release-management-line-52)">
+</text><text class="breeze-release-management-r5" x="0" y="922.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-37)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="922.8" textLength="536.8" 
clip-path="url(#breeze-release-management-line-37)">prepare-airflow-ctl-distributions&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="585.6" y="922.8" textLength="854" 
clip-path="url(#breeze-releas [...]
+</text><text class="breeze-release-management-r5" x="0" y="947.2" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-38)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="947.2" textLength="536.8" 
clip-path="url(#breeze-release-management-line-38)">generate-issue-content-airflow-ctl&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="585.6" y="947.2" textLength="854" 
clip-path="url(#breeze-release-man [...]
+</text><text class="breeze-release-management-r5" x="0" y="971.6" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-39)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="971.6" textLength="12.2" 
clip-path="url(#breeze-release-management-line-39)">
+</text><text class="breeze-release-management-r5" x="0" y="996" 
textLength="24.4" 
clip-path="url(#breeze-release-management-line-40)">╭─</text><text 
class="breeze-release-management-r5" x="24.4" y="996" textLength="292.8" 
clip-path="url(#breeze-release-management-line-40)">&#160;Other&#160;release&#160;commands&#160;</text><text
 class="breeze-release-management-r5" x="317.2" y="996" textLength="1122.4" 
clip-path="url(#breeze-release-management-line-40)">──────────────────────────────────
 [...]
+</text><text class="breeze-release-management-r5" x="0" y="1020.4" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-41)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1020.4" textLength="292.8" 
clip-path="url(#breeze-release-management-line-41)">add-back-references&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1020.4" textLength="1098" 
clip-path="url(#breeze-release-management-line-41)">Command&#160;to&#160;ad 
[...]
+</text><text class="breeze-release-management-r5" x="0" y="1044.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-42)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1044.8" textLength="292.8" 
clip-path="url(#breeze-release-management-line-42)">prepare-python-client&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1044.8" textLength="1098" 
clip-path="url(#breeze-release-management-line-42)">Prepares&#160;python&#160;client&
 [...]
+</text><text class="breeze-release-management-r5" x="0" y="1069.2" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-43)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1069.2" textLength="292.8" 
clip-path="url(#breeze-release-management-line-43)">publish-docs&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1069.2" textLength="1098" 
clip-path="url(#breeze-release-managemen [...]
+</text><text class="breeze-release-management-r5" x="0" y="1093.6" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-44)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1093.6" textLength="292.8" 
clip-path="url(#breeze-release-management-line-44)">generate-constraints&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1093.6" textLength="1098" 
clip-path="url(#breeze-release-management-line-44)">Generates&#160;pinned&#160;c
 [...]
+</text><text class="breeze-release-management-r5" x="0" y="1118" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-45)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1118" textLength="292.8" 
clip-path="url(#breeze-release-management-line-45)">update-constraints&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1118" textLength="1098" 
clip-path="url(#breeze-release-management-line-45)">Update&#160;released&#16 
[...]
+</text><text class="breeze-release-management-r5" x="0" y="1142.4" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-46)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1142.4" textLength="292.8" 
clip-path="url(#breeze-release-management-line-46)">publish-docs-to-s3&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1142.4" textLength="1098" 
clip-path="url(#breeze-release-management-line-46)">Publishes&#160;doc [...]
+</text><text class="breeze-release-management-r5" x="0" y="1166.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-47)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1166.8" textLength="292.8" 
clip-path="url(#breeze-release-management-line-47)">verify-rc-by-pmc&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1166.8" textLength="1098" 
clip-path="url(#breeze-release-management-line-47)">[EXPERIM [...]
+</text><text class="breeze-release-management-r5" x="0" y="1191.2" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-48)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1191.2" textLength="292.8" 
clip-path="url(#breeze-release-management-line-48)">check-release-files&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="341.6" y="1191.2" textLength="1098" 
clip-path="url(#breeze-release-management-line-48)">Verify&#160;that&#160;a 
[...]
+</text><text class="breeze-release-management-r5" x="0" y="1215.6" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="1215.6" textLength="12.2" 
clip-path="url(#breeze-release-management-line-49)">
+</text><text class="breeze-release-management-r5" x="0" y="1240" 
textLength="24.4" 
clip-path="url(#breeze-release-management-line-50)">╭─</text><text 
class="breeze-release-management-r5" x="24.4" y="1240" textLength="122" 
clip-path="url(#breeze-release-management-line-50)">&#160;Commands&#160;</text><text
 class="breeze-release-management-r5" x="146.4" y="1240" textLength="1293.2" 
clip-path="url(#breeze-release-management-line-50)">─────────────────────────────────────────────────────────
 [...]
+</text><text class="breeze-release-management-r5" x="0" y="1264.4" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-51)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1264.4" textLength="305" 
clip-path="url(#breeze-release-management-line-51)">constraints-version-check</text><text
 class="breeze-release-management-r1" x="353.8" y="1264.4" textLength="1085.8" 
clip-path="url(#breeze-release-management-line-51)">Check&#160;constraints&#160;against&#160;releas
 [...]
+</text><text class="breeze-release-management-r5" x="0" y="1288.8" 
textLength="12.2" 
clip-path="url(#breeze-release-management-line-52)">│</text><text 
class="breeze-release-management-r4" x="24.4" y="1288.8" textLength="305" 
clip-path="url(#breeze-release-management-line-52)">merge-prod-images&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-management-r1" x="353.8" y="1288.8" textLength="1085.8" 
clip-path="url(#breeze-release-management-line-52)">Merge&# [...]
+</text><text class="breeze-release-management-r5" x="0" y="1313.2" 
textLength="1464" 
clip-path="url(#breeze-release-management-line-53)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-r1" x="1464" y="1313.2" textLength="12.2" 
clip-path="url(#breeze-release-management-line-53)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_release-management.txt 
b/dev/breeze/doc/images/output_release-management.txt
index 37bc4826d0a..ebe977dad75 100644
--- a/dev/breeze/doc/images/output_release-management.txt
+++ b/dev/breeze/doc/images/output_release-management.txt
@@ -1 +1 @@
-79e5925d47d1fdbf49a06ba80f113d05
+8f4b47cae96d73578872d9454722e7c0
diff --git 
a/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.svg
 
b/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.svg
new file mode 100644
index 00000000000..efb6cda10a6
--- /dev/null
+++ 
b/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.svg
@@ -0,0 +1,134 @@
+<svg class="rich-terminal" viewBox="0 0 1482 489.2" 
xmlns="http://www.w3.org/2000/svg";>
+    <!-- Generated with Rich https://www.textualize.io -->
+    <style>
+
+    @font-face {
+        font-family: "Fira Code";
+        src: local("FiraCode-Regular"),
+                
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2";)
 format("woff2"),
+                
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff";)
 format("woff");
+        font-style: normal;
+        font-weight: 400;
+    }
+    @font-face {
+        font-family: "Fira Code";
+        src: local("FiraCode-Bold"),
+                
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2";)
 format("woff2"),
+                
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff";)
 format("woff");
+        font-style: bold;
+        font-weight: 700;
+    }
+
+    .breeze-release-management-generate-issue-content-airflow-ctl-matrix {
+        font-family: Fira Code, monospace;
+        font-size: 20px;
+        line-height: 24.4px;
+        font-variant-east-asian: full-width;
+    }
+
+    .breeze-release-management-generate-issue-content-airflow-ctl-title {
+        font-size: 18px;
+        font-weight: bold;
+        font-family: arial;
+    }
+
+    .breeze-release-management-generate-issue-content-airflow-ctl-r1 { fill: 
#c5c8c6 }
+.breeze-release-management-generate-issue-content-airflow-ctl-r2 { fill: 
#d0b344 }
+.breeze-release-management-generate-issue-content-airflow-ctl-r3 { fill: 
#c5c8c6;font-weight: bold }
+.breeze-release-management-generate-issue-content-airflow-ctl-r4 { fill: 
#68a0b3;font-weight: bold }
+.breeze-release-management-generate-issue-content-airflow-ctl-r5 { fill: 
#868887 }
+.breeze-release-management-generate-issue-content-airflow-ctl-r6 { fill: 
#8d7b39 }
+.breeze-release-management-generate-issue-content-airflow-ctl-r7 { fill: 
#cc555a }
+.breeze-release-management-generate-issue-content-airflow-ctl-r8 { fill: 
#8a4346 }
+.breeze-release-management-generate-issue-content-airflow-ctl-r9 { fill: 
#98a84b;font-weight: bold }
+    </style>
+
+    <defs>
+    <clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-clip-terminal">
+      <rect x="0" y="0" width="1463.0" height="438.2" />
+    </clipPath>
+    <clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-0">
+    <rect x="0" y="1.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-1">
+    <rect x="0" y="25.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-2">
+    <rect x="0" y="50.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-3">
+    <rect x="0" y="74.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-4">
+    <rect x="0" y="99.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-5">
+    <rect x="0" y="123.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-6">
+    <rect x="0" y="147.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-7">
+    <rect x="0" y="172.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-8">
+    <rect x="0" y="196.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-9">
+    <rect x="0" y="221.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-10">
+    <rect x="0" y="245.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-11">
+    <rect x="0" y="269.9" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-12">
+    <rect x="0" y="294.3" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-13">
+    <rect x="0" y="318.7" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-14">
+    <rect x="0" y="343.1" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-15">
+    <rect x="0" y="367.5" width="1464" height="24.65"/>
+            </clipPath>
+<clipPath 
id="breeze-release-management-generate-issue-content-airflow-ctl-line-16">
+    <rect x="0" y="391.9" 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="487.2" rx="8"/><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-title" 
fill="#c5c8c6" text-anchor="middle" x="740" 
y="27">Command:&#160;release-management&#160;generate-issue-content-airflow-ctl</text>
+            <g transform="translate(26,22)">
+            <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
+            <circle cx="22" cy="0" r="7" fill="#febc2e"/>
+            <circle cx="44" cy="0" r="7" fill="#28c840"/>
+            </g>
+        
+    <g transform="translate(9, 41)" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-clip-terminal)">
+    
+    <g 
class="breeze-release-management-generate-issue-content-airflow-ctl-matrix">
+    <text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="1464" y="20" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-0)">
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r2" 
x="12.2" y="44.4" textLength="73.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-1)">Usage:</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r3" 
x="97.6" y="44.4" textLength="732" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-1)">breeze&#160;release-management&#160;generate-issue-content-airflow-ctl</t
 [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="1464" y="68.8" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-2)">
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="12.2" y="93.2" textLength="683.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-3)">Generates&#160;content&#160;for&#160;issue&#160;to&#160;test&#160;airflow-ctl&#160;release.</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="1464" y="93.2" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="1464" y="117.6" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-4)">
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="142" textLength="24.4" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-5)">╭─</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r5" 
x="24.4" y="142" textLength="268.4" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-5)">&#160;Generate&#160;issue&#160;flags&#160;</text><text
 class="breeze-release-man [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="166.4" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-6)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r4" x="61" 
y="166.4" textLength="219.6" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-6)">--github-token&#160;&#160;&#160;&#160;</text><text
 class="breeze-release-manage [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="190.8" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-7)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="305" y="190.8" textLength="1134.6" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-7)">set.&#160;Can&#160;be&#160;generated&#160;with:&#160;&#160;&#160;&#160;&#160;
 [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="215.2" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-8)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="305" y="215.2" textLength="1024.8" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-8)">https://github.com/settings/tokens/new?description=Read%20sssues&amp;scopes=r
 [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="239.6" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-9)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r7" 
x="24.4" y="239.6" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-9)">*</text><text
 class="breeze-release-management-generate-issue-content-airflow- [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="264" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-10)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r7" 
x="24.4" y="264" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-10)">*</text><text
 class="breeze-release-management-generate-issue-content-airflow-ct [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="288.4" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-11)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r4" x="61" 
y="288.4" textLength="219.6" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-11)">--excluded-pr-list</text><text
 class="breeze-release-management-generate-issu [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="312.8" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-12)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r4" x="61" 
y="312.8" textLength="219.6" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-12)">--limit-pr-count&#160;&#160;</text><text
 class="breeze-release-management-gen [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="337.2" textLength="1464" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="1464" y="337.2" textLength="12.2" 
clip-path="url(#breeze-release-management-ge [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="361.6" textLength="24.4" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-14)">╭─</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r5" 
x="24.4" y="361.6" textLength="195.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-14)">&#160;Common&#160;options&#160;</text><text
 class="breeze-release-manageme [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="386" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-15)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r4" 
x="24.4" y="386" textLength="109.8" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-15)">--verbose</text><text
 class="breeze-release-management-generate-issue-content-a [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="410.4" textLength="12.2" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-16)">│</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r4" 
x="24.4" y="410.4" textLength="109.8" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-16)">--help&#160;&#160;&#160;</text><text
 class="breeze-release-management-gener [...]
+</text><text 
class="breeze-release-management-generate-issue-content-airflow-ctl-r5" x="0" 
y="434.8" textLength="1464" 
clip-path="url(#breeze-release-management-generate-issue-content-airflow-ctl-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-release-management-generate-issue-content-airflow-ctl-r1" 
x="1464" y="434.8" textLength="12.2" 
clip-path="url(#breeze-release-management-ge [...]
+</text>
+    </g>
+    </g>
+</svg>
diff --git 
a/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.txt
 
b/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.txt
new file mode 100644
index 00000000000..0e7d8691f2b
--- /dev/null
+++ 
b/dev/breeze/doc/images/output_release-management_generate-issue-content-airflow-ctl.txt
@@ -0,0 +1 @@
+9ccebae692bfa80fcd28341dc5aeb359
diff --git a/dev/breeze/doc/images/output_setup_check-all-params-in-groups.svg 
b/dev/breeze/doc/images/output_setup_check-all-params-in-groups.svg
index b43dd779612..bd3b4cdb980 100644
--- a/dev/breeze/doc/images/output_setup_check-all-params-in-groups.svg
+++ b/dev/breeze/doc/images/output_setup_check-all-params-in-groups.svg
@@ -210,8 +210,8 @@
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="386" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-15)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="386" 
textLength="1098" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-15)">registry:publish-versions&#160;|&#160;release-management&#160;|&#160;release-management:add-back-references&#160;|&#160;</text><text
 class="breeze-setup-check-all- [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="410.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-16)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="410.4" 
textLength="1110.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-16)">release-management:check-release-files&#160;|&#160;release-management:clean-old-provider-artifacts&#160;|&#160;</text><text
 class="breeze-setup-check-all-par [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="434.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="434.8" 
textLength="1073.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-17)">release-management:constraints-version-check&#160;|&#160;release-management:create-minor-branch&#160;|&#160;</text><text
 class="breeze-setup-check-all-params [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="459.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="459.2" 
textLength="1110.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">release-management:generate-constraints&#160;|&#160;release-management:generate-issue-content-core&#160;|&#160;</text><text
 class="breeze-setup-check-all-par [...]
-</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="483.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="483.6" 
textLength="671" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">release-management:generate-issue-content-helm-chart&#160;|&#160;</text><text
 class="breeze-setup-check-all-params-in-groups-r5" x="1451.8" y="483.6" 
textLength [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="459.2" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="459.2" 
textLength="1195.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-18)">release-management:generate-constraints&#160;|&#160;release-management:generate-issue-content-airflow-ctl&#160;|&#160;</text><text
 class="breeze-setup-check- [...]
+</text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="483.6" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="483.6" 
textLength="1268.8" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-19)">release-management:generate-issue-content-core&#160;|&#160;release-management:generate-issue-content-helm-chart&#160;|&#160;</text><text
 class="breeze-setup- [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="508" 
textLength="1256.6" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-20)">release-management:generate-issue-content-providers&#160;|&#160;release-management:generate-providers-metadata&#160;|&#160;</text><text
 class="breeze-setup-check [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="532.4" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="532.4" 
textLength="1110.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-21)">release-management:install-provider-distributions&#160;|&#160;release-management:merge-prod-images&#160;|&#160;</text><text
 class="breeze-setup-check-all-par [...]
 </text><text class="breeze-setup-check-all-params-in-groups-r5" x="0" 
y="556.8" textLength="12.2" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">│</text><text 
class="breeze-setup-check-all-params-in-groups-r6" x="158.6" y="556.8" 
textLength="1281" 
clip-path="url(#breeze-setup-check-all-params-in-groups-line-22)">release-management:prepare-airflow-ctl-distributions&#160;|&#160;release-management:prepare-airflow-distributions&#160;|</text><text
 class="breeze-setup-check- [...]
diff --git a/dev/breeze/doc/images/output_setup_check-all-params-in-groups.txt 
b/dev/breeze/doc/images/output_setup_check-all-params-in-groups.txt
index bd0ef796d4b..f0e39386d5f 100644
--- a/dev/breeze/doc/images/output_setup_check-all-params-in-groups.txt
+++ b/dev/breeze/doc/images/output_setup_check-all-params-in-groups.txt
@@ -1 +1 @@
-eba55480dd7f88affd08c6f609ad8c40
+bbfdc83b48ce5463c194360826da069a
diff --git a/dev/breeze/doc/images/output_setup_regenerate-command-images.svg 
b/dev/breeze/doc/images/output_setup_regenerate-command-images.svg
index 2d6b2bae76c..03edcf75bdf 100644
--- a/dev/breeze/doc/images/output_setup_regenerate-command-images.svg
+++ b/dev/breeze/doc/images/output_setup_regenerate-command-images.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1294.3999999999999" 
xmlns="http://www.w3.org/2000/svg";>
+<svg class="rich-terminal" viewBox="0 0 1482 1318.8" 
xmlns="http://www.w3.org/2000/svg";>
     <!-- Generated with Rich https://www.textualize.io -->
     <style>
 
@@ -43,7 +43,7 @@
 
     <defs>
     <clipPath id="breeze-setup-regenerate-command-images-clip-terminal">
-      <rect x="0" y="0" width="1463.0" height="1243.3999999999999" />
+      <rect x="0" y="0" width="1463.0" height="1267.8" />
     </clipPath>
     <clipPath id="breeze-setup-regenerate-command-images-line-0">
     <rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -195,9 +195,12 @@
 <clipPath id="breeze-setup-regenerate-command-images-line-49">
     <rect x="0" y="1197.1" width="1464" height="24.65"/>
             </clipPath>
+<clipPath id="breeze-setup-regenerate-command-images-line-50">
+    <rect x="0" y="1221.5" 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="1292.4" rx="8"/><text 
class="breeze-setup-regenerate-command-images-title" fill="#c5c8c6" 
text-anchor="middle" x="740" 
y="27">Command:&#160;setup&#160;regenerate-command-images</text>
+    <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" 
x="1" y="1" width="1480" height="1316.8" rx="8"/><text 
class="breeze-setup-regenerate-command-images-title" fill="#c5c8c6" 
text-anchor="middle" x="740" 
y="27">Command:&#160;setup&#160;regenerate-command-images</text>
             <g transform="translate(26,22)">
             <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
             <circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -227,37 +230,38 @@
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="434.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-17)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="434.8" 
textLength="1000.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-17)">release-management:add-back-references&#160;|&#160;release-management:check-release-files&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images- [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="459.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-18)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="459.2" 
textLength="1183.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-18)">release-management:clean-old-provider-artifacts&#160;|&#160;release-management:constraints-version-check&#160;|&#160;</text><text
 class="breeze-setup-regenerate- [...]
 </text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="483.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-19)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="483.6" 
textLength="1012.6" 
clip-path="url(#breeze-setup-regenerate-command-images-line-19)">release-management:create-minor-branch&#160;|&#160;release-management:generate-constraints&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="508" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">release-management:generate-issue-content-core&#160;|&#160;release-management:generate-issue-content-helm-chart&#160;</text><text
 class="breeze-setup-regenerate-comm [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="532.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="532.4" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">|&#160;release-management:generate-issue-content-providers&#160;|&#160;release-management:generate-providers-metadata</text><text
 class="breeze-setup-regenerate- [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="556.8" 
textLength="1134.6" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">|&#160;release-management:install-provider-distributions&#160;|&#160;release-management:merge-prod-images&#160;|&#160;</text><text
 class="breeze-setup-regenerate [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="581.2" 
textLength="671" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">release-management:prepare-airflow-ctl-distributions&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" y="581.2" 
textLength="12. [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="605.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="605.6" 
textLength="1207.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">release-management:prepare-airflow-distributions&#160;|&#160;release-management:prepare-helm-chart-package&#160;|&#160;</text><text
 class="breeze-setup-regenerat [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="630" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">release-management:prepare-helm-chart-tarball&#160;|&#160;release-management:prepare-provider-distributions&#160;|&#160;</text><text
 class="breeze-setup-regenerate-com [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="654.4" 
textLength="1159" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">release-management:prepare-provider-documentation&#160;|&#160;release-management:prepare-python-client&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comm [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="678.8" 
textLength="1085.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27)">release-management:prepare-tarball&#160;|&#160;release-management:prepare-task-sdk-distributions&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command- [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-28)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="703.2" 
textLength="902.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-28)">release-management:publish-docs&#160;|&#160;release-management:publish-docs-to-s3&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="14 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="727.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-29)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="727.6" 
textLength="963.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-29)">release-management:release-prod-images&#160;|&#160;release-management:start-rc-process&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5"  [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="752" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-30)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="752" 
textLength="854" 
clip-path="url(#breeze-setup-regenerate-command-images-line-30)">release-management:start-release&#160;|&#160;release-management:tag-providers&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" y="7 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="776.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-31)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="776.4" 
textLength="1110.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-31)">release-management:update-constraints&#160;|&#160;release-management:update-providers-next-version&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comman [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="800.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-32)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="800.8" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-32)">release-management:verify-provider-distributions&#160;|&#160;release-management:verify-rc-by-pmc&#160;|&#160;run&#160;|&#160;sbom&#160;|&#160;</text><text
 class= [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="825.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-33)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="825.2" 
textLength="841.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-33)">sbom:build-all-airflow-images&#160;|&#160;sbom:export-dependency-information&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="849.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-34)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="849.6" 
textLength="1207.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-34)">sbom:generate-providers-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;setup&#160;|&#160;setup:autocomplete&#160;|&#160;</text><text
 class="br [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="874" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-35)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="874" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-35)">setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;setup:regenerate-command-images&#160;|&#160;setup:self-upgrade</text><text
 class="breeze-setup- [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="898.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-36)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="898.4" 
textLength="1037" 
clip-path="url(#breeze-setup-regenerate-command-images-line-36)">|&#160;setup:synchronize-local-mounts&#160;|&#160;setup:version&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;testing&#160;|&#160;</text><text
 class="bre [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="922.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-37)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="922.8" 
textLength="1171.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-37)">testing:airflow-ctl-integration-tests&#160;|&#160;testing:airflow-ctl-tests&#160;|&#160;testing:airflow-e2e-tests&#160;|&#160;</text><text
 class="breeze-setup-re [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="947.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-38)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="947.2" 
textLength="1037" 
clip-path="url(#breeze-setup-regenerate-command-images-line-38)">testing:core-integration-tests&#160;|&#160;testing:core-tests&#160;|&#160;testing:docker-compose-tests&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comm [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="971.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-39)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="971.6" 
textLength="1037" 
clip-path="url(#breeze-setup-regenerate-command-images-line-39)">testing:helm-tests&#160;|&#160;testing:providers-integration-tests&#160;|&#160;testing:providers-tests&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comm [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="996" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-40)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="996" 
textLength="1146.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-40)">testing:python-api-client-tests&#160;|&#160;testing:system-tests&#160;|&#160;testing:task-sdk-integration-tests&#160;|&#160;</text><text
 class="breeze-setup-regenera [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1020.4" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-41)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="1020.4" 
textLength="1085.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-41)">testing:task-sdk-tests&#160;|&#160;testing:ui-e2e-tests&#160;|&#160;ui&#160;|&#160;ui:check-translation-completeness&#160;|&#160;</text><text
 class="breeze-set [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1044.8" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-42)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="1044.8" 
textLength="744.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-42)">ui:compile-assets&#160;|&#160;workflow-run&#160;|&#160;workflow-run:publish-docs)</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" y="10 [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1069.2" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-43)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1069.2" 
textLength="146.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-43)">--check-only</text><text
 class="breeze-setup-regenerate-command-images-r1" x="195.2" y="1069.2" 
textLength="1244.4" clip-path="url(#breeze-setup-regenerate-comma [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1093.6" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-44)">│</text><text 
class="breeze-setup-regenerate-command-images-r1" x="195.2" y="1093.6" 
textLength="170.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-44)">together&#160;with&#160;</text><text
 class="breeze-setup-regenerate-command-images-r4" x="366" y="1093.6" 
textLength="109.8" clip-path="url(#breeze-setup-regene [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="1118" 
textLength="1464" 
clip-path="url(#breeze-setup-regenerate-command-images-line-45)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-setup-regenerate-command-images-r1" x="1464" y="1118" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-45)">
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1142.4" textLength="24.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-46)">╭─</text><text 
class="breeze-setup-regenerate-command-images-r5" x="24.4" y="1142.4" 
textLength="195.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-46)">&#160;Common&#160;options&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="219.6" y="1142.4" 
textLength="1220" clip-path="url(#breeze-setu [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1166.8" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-47)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1166.8" 
textLength="109.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-47)">--verbose</text><text
 class="breeze-setup-regenerate-command-images-r7" x="158.6" y="1166.8" 
textLength="24.4" clip-path="url(#breeze-setup-regenerate-command-im [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1191.2" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-48)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1191.2" 
textLength="109.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-48)">--dry-run</text><text
 class="breeze-setup-regenerate-command-images-r7" x="158.6" y="1191.2" 
textLength="24.4" clip-path="url(#breeze-setup-regenerate-command-im [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1215.6" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-49)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1215.6" 
textLength="109.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-49)">--help&#160;&#160;&#160;</text><text
 class="breeze-setup-regenerate-command-images-r7" x="158.6" y="1215.6" 
textLength="24.4" clip-path="url(#breeze-setup-regene [...]
-</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="1240" 
textLength="1464" 
clip-path="url(#breeze-setup-regenerate-command-images-line-50)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-setup-regenerate-command-images-r1" x="1464" y="1240" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-50)">
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="508" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="508" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-20)">release-management:generate-issue-content-airflow-ctl&#160;|&#160;release-management:generate-issue-content-core</text><text
 class="breeze-setup-regenerate-command-i [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="532.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="532.4" 
textLength="695.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-21)">|&#160;release-management:generate-issue-content-helm-chart&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" y="532.4" textLe 
[...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="556.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="556.8" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-22)">release-management:generate-issue-content-providers&#160;|&#160;release-management:generate-providers-metadata&#160;|</text><text
 class="breeze-setup-regenerate- [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="581.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="581.2" 
textLength="1110.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-23)">release-management:install-provider-distributions&#160;|&#160;release-management:merge-prod-images&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comman [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="605.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="605.6" 
textLength="671" 
clip-path="url(#breeze-setup-regenerate-command-images-line-24)">release-management:prepare-airflow-ctl-distributions&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" y="605.6" 
textLength="12. [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="630" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="630" 
textLength="1207.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-25)">release-management:prepare-airflow-distributions&#160;|&#160;release-management:prepare-helm-chart-package&#160;|&#160;</text><text
 class="breeze-setup-regenerate-co [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="654.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="654.4" 
textLength="1220" 
clip-path="url(#breeze-setup-regenerate-command-images-line-26)">release-management:prepare-helm-chart-tarball&#160;|&#160;release-management:prepare-provider-distributions&#160;|&#160;</text><text
 class="breeze-setup-regenerate [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="678.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="678.8" 
textLength="1159" 
clip-path="url(#breeze-setup-regenerate-command-images-line-27)">release-management:prepare-provider-documentation&#160;|&#160;release-management:prepare-python-client&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comm [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="703.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-28)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="703.2" 
textLength="1085.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-28)">release-management:prepare-tarball&#160;|&#160;release-management:prepare-task-sdk-distributions&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command- [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="727.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-29)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="727.6" 
textLength="902.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-29)">release-management:publish-docs&#160;|&#160;release-management:publish-docs-to-s3&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="14 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="752" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-30)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="752" 
textLength="963.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-30)">release-management:release-prod-images&#160;|&#160;release-management:start-rc-process&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="776.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-31)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="776.4" 
textLength="854" 
clip-path="url(#breeze-setup-regenerate-command-images-line-31)">release-management:start-release&#160;|&#160;release-management:tag-providers&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8"  [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="800.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-32)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="800.8" 
textLength="1110.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-32)">release-management:update-constraints&#160;|&#160;release-management:update-providers-next-version&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comman [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="825.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-33)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="825.2" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-33)">release-management:verify-provider-distributions&#160;|&#160;release-management:verify-rc-by-pmc&#160;|&#160;run&#160;|&#160;sbom&#160;|&#160;</text><text
 class= [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="849.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-34)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="849.6" 
textLength="841.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-34)">sbom:build-all-airflow-images&#160;|&#160;sbom:export-dependency-information&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="874" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-35)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="874" 
textLength="1207.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-35)">sbom:generate-providers-requirements&#160;|&#160;sbom:update-sbom-information&#160;|&#160;setup&#160;|&#160;setup:autocomplete&#160;|&#160;</text><text
 class="breeze [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="898.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-36)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="898.4" 
textLength="1244.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-36)">setup:check-all-params-in-groups&#160;|&#160;setup:config&#160;|&#160;setup:regenerate-command-images&#160;|&#160;setup:self-upgrade</text><text
 class="breeze-se [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="922.8" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-37)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="922.8" 
textLength="1037" 
clip-path="url(#breeze-setup-regenerate-command-images-line-37)">|&#160;setup:synchronize-local-mounts&#160;|&#160;setup:version&#160;|&#160;shell&#160;|&#160;start-airflow&#160;|&#160;testing&#160;|&#160;</text><text
 class="bre [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="947.2" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-38)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="947.2" 
textLength="1171.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-38)">testing:airflow-ctl-integration-tests&#160;|&#160;testing:airflow-ctl-tests&#160;|&#160;testing:airflow-e2e-tests&#160;|&#160;</text><text
 class="breeze-setup-re [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="971.6" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-39)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="971.6" 
textLength="1037" 
clip-path="url(#breeze-setup-regenerate-command-images-line-39)">testing:core-integration-tests&#160;|&#160;testing:core-tests&#160;|&#160;testing:docker-compose-tests&#160;|&#160;</text><text
 class="breeze-setup-regenerate-comm [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="996" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-40)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="996" 
textLength="1037" 
clip-path="url(#breeze-setup-regenerate-command-images-line-40)">testing:helm-tests&#160;|&#160;testing:providers-integration-tests&#160;|&#160;testing:providers-tests&#160;|&#160;</text><text
 class="breeze-setup-regenerate-command- [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1020.4" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-41)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="1020.4" 
textLength="1146.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-41)">testing:python-api-client-tests&#160;|&#160;testing:system-tests&#160;|&#160;testing:task-sdk-integration-tests&#160;|&#160;</text><text
 class="breeze-setup-re [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1044.8" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-42)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="1044.8" 
textLength="1085.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-42)">testing:task-sdk-tests&#160;|&#160;testing:ui-e2e-tests&#160;|&#160;ui&#160;|&#160;ui:check-translation-completeness&#160;|&#160;</text><text
 class="breeze-set [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1069.2" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-43)">│</text><text 
class="breeze-setup-regenerate-command-images-r6" x="195.2" y="1069.2" 
textLength="744.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-43)">ui:compile-assets&#160;|&#160;workflow-run&#160;|&#160;workflow-run:publish-docs)</text><text
 class="breeze-setup-regenerate-command-images-r5" x="1451.8" y="10 [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1093.6" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-44)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1093.6" 
textLength="146.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-44)">--check-only</text><text
 class="breeze-setup-regenerate-command-images-r1" x="195.2" y="1093.6" 
textLength="1244.4" clip-path="url(#breeze-setup-regenerate-comma [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="1118" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-45)">│</text><text 
class="breeze-setup-regenerate-command-images-r1" x="195.2" y="1118" 
textLength="170.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-45)">together&#160;with&#160;</text><text
 class="breeze-setup-regenerate-command-images-r4" x="366" y="1118" 
textLength="109.8" clip-path="url(#breeze-setup-regenerate-c [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1142.4" textLength="1464" 
clip-path="url(#breeze-setup-regenerate-command-images-line-46)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-setup-regenerate-command-images-r1" x="1464" y="1142.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-46)">
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1166.8" textLength="24.4" 
clip-path="url(#breeze-setup-regenerate-command-images-line-47)">╭─</text><text 
class="breeze-setup-regenerate-command-images-r5" x="24.4" y="1166.8" 
textLength="195.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-47)">&#160;Common&#160;options&#160;</text><text
 class="breeze-setup-regenerate-command-images-r5" x="219.6" y="1166.8" 
textLength="1220" clip-path="url(#breeze-setu [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1191.2" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-48)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1191.2" 
textLength="109.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-48)">--verbose</text><text
 class="breeze-setup-regenerate-command-images-r7" x="158.6" y="1191.2" 
textLength="24.4" clip-path="url(#breeze-setup-regenerate-command-im [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1215.6" textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-49)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1215.6" 
textLength="109.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-49)">--dry-run</text><text
 class="breeze-setup-regenerate-command-images-r7" x="158.6" y="1215.6" 
textLength="24.4" clip-path="url(#breeze-setup-regenerate-command-im [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" y="1240" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-50)">│</text><text 
class="breeze-setup-regenerate-command-images-r4" x="24.4" y="1240" 
textLength="109.8" 
clip-path="url(#breeze-setup-regenerate-command-images-line-50)">--help&#160;&#160;&#160;</text><text
 class="breeze-setup-regenerate-command-images-r7" x="158.6" y="1240" 
textLength="24.4" clip-path="url(#breeze-setup-regenerate-c [...]
+</text><text class="breeze-setup-regenerate-command-images-r5" x="0" 
y="1264.4" textLength="1464" 
clip-path="url(#breeze-setup-regenerate-command-images-line-51)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
 class="breeze-setup-regenerate-command-images-r1" x="1464" y="1264.4" 
textLength="12.2" 
clip-path="url(#breeze-setup-regenerate-command-images-line-51)">
 </text>
     </g>
     </g>
diff --git a/dev/breeze/doc/images/output_setup_regenerate-command-images.txt 
b/dev/breeze/doc/images/output_setup_regenerate-command-images.txt
index 45cb2a115ab..5f1cbe61c45 100644
--- a/dev/breeze/doc/images/output_setup_regenerate-command-images.txt
+++ b/dev/breeze/doc/images/output_setup_regenerate-command-images.txt
@@ -1 +1 @@
-3b18680cf71a6fe2ac14af44b029a537
+c3aa8a568d6aaa55aae183f1da0697a1
diff --git 
a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py 
b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index ca24ba0daf3..a0db16d5a86 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -2741,6 +2741,7 @@ def get_git_log_command(
     from_commit: str | None = None,
     to_commit: str | None = None,
     is_helm_chart: bool = True,
+    is_airflow_ctl: bool = False,
 ) -> list[str]:
     git_cmd = [
         "git",
@@ -2754,6 +2755,8 @@ def get_git_log_command(
         git_cmd.append(from_commit)
     if is_helm_chart:
         git_cmd.extend(["--", "chart/"])
+    elif is_airflow_ctl:
+        git_cmd.extend(["--", "airflow-ctl/"])
     else:
         git_cmd.extend(["--", "."])
     if verbose:
@@ -2794,6 +2797,7 @@ def get_changes(
     previous_release: str,
     current_release: str,
     is_helm_chart: bool = False,
+    is_airflow_ctl: bool = False,
 ) -> list[Change]:
     print(MY_DIR_PATH, SOURCE_DIR_PATH)
     change_strings = subprocess.check_output(
@@ -2802,6 +2806,7 @@ def get_changes(
             from_commit=previous_release,
             to_commit=current_release,
             is_helm_chart=is_helm_chart,
+            is_airflow_ctl=is_airflow_ctl,
         ),
         cwd=SOURCE_DIR_PATH,
         text=True,
@@ -2835,12 +2840,17 @@ def print_issue_content(
     linked_issues,
     users: dict[int, set[str]],
     is_helm_chart: bool = False,
+    is_airflow_ctl: bool = False,
 ):
     link = f"https://pypi.org/project/apache-airflow/{current_release}/";
     link_text = f"Apache Airflow RC {current_release}"
     if is_helm_chart:
         link = 
f"https://dist.apache.org/repos/dist/dev/airflow/{current_release}";
         link_text = f"Apache Airflow Helm Chart 
{current_release.split('/')[-1]}"
+    elif is_airflow_ctl:
+        link = 
f"https://pypi.org/project/apache-airflow-ctl/{current_release.split('/')[-1]}/"
+        link_text = f"Apache Airflow CTL RC {current_release.split('/')[-1]}"
+
     # Only include PRs that have corresponding user data to avoid KeyError in 
template
     pr_list = sorted([pr for pr in pull_requests.keys() if pr in users])
     user_logins: dict[int, str] = {pr: " ".join(f"@{u}" for u in uu) for pr, 
uu in users.items()}
@@ -2970,6 +2980,58 @@ def generate_issue_content_core(
     )
 
 
+@release_management_group.command(
+    name="generate-issue-content-airflow-ctl", help="Generates content for 
issue to test airflow-ctl release."
+)
[email protected](
+    "--github-token",
+    envvar="GITHUB_TOKEN",
+    help=textwrap.dedent(
+        """
+      GitHub token used to authenticate.
+      You can set omit it if you have GITHUB_TOKEN env variable set.
+      Can be generated with:
+      
https://github.com/settings/tokens/new?description=Read%20sssues&scopes=repo:status""";
+    ),
+)
[email protected](
+    "--previous-release",
+    type=str,
+    help="commit reference (for example hash or tag) of the previous release.",
+    required=True,
+)
[email protected](
+    "--current-release",
+    type=str,
+    help="commit reference (for example hash or tag) of the current release.",
+    required=True,
+)
[email protected]("--excluded-pr-list", type=str, help="Coma-separated list of PRs 
to exclude from the issue.")
[email protected](
+    "--limit-pr-count",
+    type=int,
+    default=None,
+    help="Limit PR count processes (useful for testing small subset of PRs).",
+)
+@option_verbose
+def generate_issue_content_airflow_ctl(
+    github_token: str,
+    previous_release: str,
+    current_release: str,
+    excluded_pr_list: str,
+    limit_pr_count: int | None,
+):
+    generate_issue_content(
+        github_token,
+        previous_release,
+        current_release,
+        excluded_pr_list,
+        limit_pr_count,
+        is_helm_chart=False,
+        is_airflow_ctl=True,
+    )
+
+
 @release_management_group.command(
     name="generate-providers-metadata", help="Generates metadata for 
providers."
 )
@@ -4044,6 +4106,7 @@ def generate_issue_content(
     excluded_pr_list: str,
     limit_pr_count: int | None,
     is_helm_chart: bool,
+    is_airflow_ctl: bool = False,
 ):
     from github import Github, Issue, PullRequest, UnknownObjectException
 
@@ -4053,7 +4116,7 @@ def generate_issue_content(
     previous = previous_release
     current = current_release
 
-    changes = get_changes(verbose, previous, current, is_helm_chart)
+    changes = get_changes(verbose, previous, current, is_helm_chart, 
is_airflow_ctl)
     change_prs = [change.pr for change in changes]
     if excluded_pr_list:
         excluded_prs = [int(pr) for pr in excluded_pr_list.split(",")]
@@ -4138,7 +4201,7 @@ def generate_issue_content(
                 users[pr_number].add(linked_issue.user.login)
             progress.advance(task)
 
-    print_issue_content(current, pull_requests, linked_issues, users, 
is_helm_chart)
+    print_issue_content(current, pull_requests, linked_issues, users, 
is_helm_chart, is_airflow_ctl)
 
 
 @release_management_group.command(name="publish-docs-to-s3", help="Publishes 
docs to S3.")
diff --git 
a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py 
b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
index 6381bdadb31..aed28fb03bc 100644
--- 
a/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
+++ 
b/dev/breeze/src/airflow_breeze/commands/release_management_commands_config.py
@@ -62,9 +62,7 @@ RELEASE_AIRFLOW_TASK_SDK_COMMANDS: dict[str, str | list[str]] 
= {
 
 RELEASE_AIRFLOW_CTL_COMMANDS: dict[str, str | list[str]] = {
     "name": "airflowctl release commands",
-    "commands": [
-        "prepare-airflow-ctl-distributions",
-    ],
+    "commands": ["prepare-airflow-ctl-distributions", 
"generate-issue-content-airflow-ctl"],
 }
 
 RELEASE_OTHER_COMMANDS: dict[str, str | list[str]] = {
@@ -118,6 +116,18 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, 
str | list[str]]]] = {
             ],
         }
     ],
+    "breeze release-management generate-issue-content-airflow-ctl": [
+        {
+            "name": "Generate issue flags",
+            "options": [
+                "--github-token",
+                "--previous-release",
+                "--current-release",
+                "--excluded-pr-list",
+                "--limit-pr-count",
+            ],
+        }
+    ],
     "breeze release-management prepare-helm-chart-tarball": [
         {
             "name": "Package flags",

Reply via email to