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 8b1460a7995 feat(breeze): Add distribution name support to tarball
command (#54798)
8b1460a7995 is described below
commit 8b1460a79950cdab704129dce15ce8e5c0a4258e
Author: Bugra Ozturk <[email protected]>
AuthorDate: Sun Aug 31 10:51:01 2025 +0200
feat(breeze): Add distribution name support to tarball command (#54798)
* feat(breeze): Add airflowctl tarball command
Include airflowctl and TaskSDK release commands into help
* fix(breeze): Output Path to Root out/
* feat(breeze): Enhance tarball creation to support distribution names
* feat(breeze): Add support for creating source tarball releases for
providers and integrate into release management commands
* Use Literal and Enum to regulate parameter types
---
dev/breeze/doc/09_release_management_tasks.rst | 27 ++++++
.../doc/images/output_release-management.svg | 54 +++++++----
.../doc/images/output_release-management.txt | 2 +-
...anagement_prepare-airflow-ctl-distributions.svg | 26 ++---
...anagement_prepare-airflow-ctl-distributions.txt | 2 +-
...se-management_prepare-airflow-distributions.svg | 22 +++--
...se-management_prepare-airflow-distributions.txt | 2 +-
..._release-management_prepare-airflow-tarball.svg | 40 +++++---
..._release-management_prepare-airflow-tarball.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 22 +++--
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-task-sdk-distributions.svg | 22 +++--
...e-management_prepare-task-sdk-distributions.txt | 2 +-
.../commands/release_candidate_command.py | 106 +++++++++++++++++----
.../commands/release_management_commands.py | 44 +++++++++
.../commands/release_management_commands_config.py | 8 +-
.../src/airflow_breeze/configure_rich_click.py | 4 +
dev/breeze/src/airflow_breeze/global_constants.py | 12 ++-
18 files changed, 294 insertions(+), 105 deletions(-)
diff --git a/dev/breeze/doc/09_release_management_tasks.rst
b/dev/breeze/doc/09_release_management_tasks.rst
index eaac22aa475..96cd38fd74c 100644
--- a/dev/breeze/doc/09_release_management_tasks.rst
+++ b/dev/breeze/doc/09_release_management_tasks.rst
@@ -54,6 +54,10 @@ default is to build ``both`` type of distributions ``sdist``
and ``wheel``.
breeze release-management prepare-airflow-distributions
--distribution-format=wheel
+If you pass ``--tag`` fag, the distribution will create a source tarball
release along with sdist.
+``--tag`` flag corresponds to actual tag in git.
+
+
.. image:: ./images/output_release-management_prepare-airflow-distributions.svg
:target:
https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.svg
:width: 100%
@@ -78,6 +82,13 @@ tarball for.
breeze release-management prepare-airflow-tarball --version 2.8.0rc1
+You can also specify distribution name which distribution of Airflow you are
preparing the tarball for.
+By default it is "airflow".
+
+.. code-block:: bash
+
+ breeze release-management prepare-airflow-tarball --version 2.8.0rc1
--distribution-name airflowctl
+
.. image:: ./images/output_release-management_prepare-airflow-tarball.svg
:target:
https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.svg
:width: 100%
@@ -380,6 +391,12 @@ before running, so you should run it before generating
Airflow package below as
The below example builds providers in the wheel format.
+.. code-block:: bash
+
+ breeze release-management prepare-provider-distributions
--distribution-format wheel
+
+The below example builds providers in both wheel and tar.gz (sdist) formats.
+
.. code-block:: bash
breeze release-management prepare-provider-distributions
@@ -398,6 +415,10 @@ You can see all providers available by running this
command:
breeze release-management prepare-provider-distributions --help
+If you pass ``--tag`` fag, the distribution will create a source tarball
release along with sdist.
+``--tag`` flag corresponds to actual tag in git.
+
+
.. image::
./images/output_release-management_prepare-provider-distributions.svg
:target:
https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.svg
:width: 100%
@@ -759,6 +780,9 @@ default is to build ``both`` type of distributions
``sdist`` and ``wheel``.
breeze release-management prepare-task-sdk-distributions
--distribution-format=wheel
+If you pass ``--tag`` fag, the distribution will create a source tarball
release along with sdist.
+``--tag`` flag corresponds to actual tag in git.
+
.. image::
./images/output_release-management_prepare-task-sdk-distributions.svg
:target:
https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.svg
:width: 100%
@@ -783,6 +807,9 @@ default is to build ``both`` type of distributions
``sdist`` and ``wheel``.
breeze release-management prepare-airflow-ctl-distributions
--distribution-format=wheel
+If you pass ``--tag`` fag, the distribution will create a source tarball
release along with sdist.
+``--tag`` flag corresponds to actual tag in git.
+
.. image::
./images/output_release-management_prepare-airflow-ctl-distributions.svg
:target:
https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.svg
:width: 100%
diff --git a/dev/breeze/doc/images/output_release-management.svg
b/dev/breeze/doc/images/output_release-management.svg
index a4988b0442e..e56fab233a6 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 1196.8"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1270.0"
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="1145.8" />
+ <rect x="0" y="0" width="1463.0" height="1219.0" />
</clipPath>
<clipPath id="breeze-release-management-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -182,17 +182,26 @@
<clipPath id="breeze-release-management-line-45">
<rect x="0" y="1099.5" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-line-46">
+ <rect x="0" y="1123.9" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-line-47">
+ <rect x="0" y="1148.3" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-line-48">
+ <rect x="0" y="1172.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="1194.8" rx="8"/><text
class="breeze-release-management-title" fill="#c5c8c6" text-anchor="middle"
x="740" y="27">Command: release-management</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="1268" rx="8"/><text
class="breeze-release-management-title" fill="#c5c8c6" text-anchor="middle"
x="740" y="27">Command: 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"/>
<circle cx="44" cy="0" r="7" fill="#28c840"/>
</g>
-
+
<g transform="translate(9, 41)"
clip-path="url(#breeze-release-management-clip-terminal)">
-
+
<g class="breeze-release-management-matrix">
<text class="breeze-release-management-r1" x="1464" y="20"
textLength="12.2" clip-path="url(#breeze-release-management-line-0)">
</text><text class="breeze-release-management-r2" x="12.2" y="44.4"
textLength="73.2"
clip-path="url(#breeze-release-management-line-1)">Usage:</text><text
class="breeze-release-management-r3" x="97.6" y="44.4" textLength="305"
clip-path="url(#breeze-release-management-line-1)">breeze release-management</text><text
class="breeze-release-management-r1" x="414.8" y="44.4" textLength="12.2"
clip-path="url(#breeze-release-management-line-1)">[</text><text
class="breeze-release-managemen [...]
@@ -205,7 +214,7 @@
</text><text class="breeze-release-management-r5" x="0" y="215.2"
textLength="24.4"
clip-path="url(#breeze-release-management-line-8)">╭─</text><text
class="breeze-release-management-r5" x="24.4" y="215.2" textLength="317.2"
clip-path="url(#breeze-release-management-line-8)"> Airflow release commands </text><text
class="breeze-release-management-r5" x="341.6" y="215.2" textLength="1098"
clip-path="url(#breeze-release-management-line-8)">───────────────────────────────
[...]
</text><text class="breeze-release-management-r5" x="0" y="239.6"
textLength="12.2"
clip-path="url(#breeze-release-management-line-9)">│</text><text
class="breeze-release-management-r4" x="24.4" y="239.6" textLength="414.8"
clip-path="url(#breeze-release-management-line-9)">create-minor-branch               </text><text
class="breeze-release-management-r1" x="463.6" y="239.6" textLength="976"
clip-path="url(#breez [...]
</text><text class="breeze-release-management-r5" x="0" y="264"
textLength="12.2"
clip-path="url(#breeze-release-management-line-10)">│</text><text
class="breeze-release-management-r4" x="24.4" y="264" textLength="414.8"
clip-path="url(#breeze-release-management-line-10)">prepare-airflow-distributions     </text><text
class="breeze-release-management-r1" x="463.6" y="264" textLength="976"
clip-path="url(#breeze-release-management-line-10)">Prepare sdist/whl&
[...]
-</text><text class="breeze-release-management-r5" x="0" y="288.4"
textLength="12.2"
clip-path="url(#breeze-release-management-line-11)">│</text><text
class="breeze-release-management-r4" x="24.4" y="288.4" textLength="414.8"
clip-path="url(#breeze-release-management-line-11)">prepare-airflow-tarball           </text><text
class="breeze-release-management-r1" x="463.6" y="288.4" textLength="976"
clip-path="url(#breeze-release-manageme [...]
+</text><text class="breeze-release-management-r5" x="0" y="288.4"
textLength="12.2"
clip-path="url(#breeze-release-management-line-11)">│</text><text
class="breeze-release-management-r4" x="24.4" y="288.4" textLength="414.8"
clip-path="url(#breeze-release-management-line-11)">prepare-airflow-tarball           </text><text
class="breeze-release-management-r1" x="463.6" y="288.4" textLength="976"
clip-path="url(#breeze-release-manageme [...]
</text><text class="breeze-release-management-r5" x="0" y="312.8"
textLength="12.2"
clip-path="url(#breeze-release-management-line-12)">│</text><text
class="breeze-release-management-r4" x="24.4" y="312.8" textLength="414.8"
clip-path="url(#breeze-release-management-line-12)">start-rc-process                  </text><text
class="breeze-release-management-r1" x="463.6" y="312.8" textLength="976" clip
[...]
</text><text class="breeze-release-management-r5" x="0" y="337.2"
textLength="12.2"
clip-path="url(#breeze-release-management-line-13)">│</text><text
class="breeze-release-management-r4" x="24.4" y="337.2" textLength="414.8"
clip-path="url(#breeze-release-management-line-13)">start-release                     </text><text
class="breeze-release-management-r1" x="463.6" y="337.2" textLe [...]
</text><text class="breeze-release-management-r5" x="0" y="361.6"
textLength="12.2"
clip-path="url(#breeze-release-management-line-14)">│</text><text
class="breeze-release-management-r4" x="24.4" y="361.6" textLength="414.8"
clip-path="url(#breeze-release-management-line-14)">release-prod-images               </text><text
class="breeze-release-management-r1" x="463.6" y="361.6" textLength="976"
clip-path="url(#bre [...]
@@ -226,21 +235,24 @@
</text><text class="breeze-release-management-r5" x="0" y="727.6"
textLength="12.2"
clip-path="url(#breeze-release-management-line-29)">│</text><text
class="breeze-release-management-r4" x="24.4" y="727.6" textLength="439.2"
clip-path="url(#breeze-release-management-line-29)">clean-old-provider-artifacts        </text><text
class="breeze-release-management-r1" x="488" y="727.6" textLength="951.6"
clip-path="url(#breeze-release-management-line-29)"> [...]
</text><text class="breeze-release-management-r5" x="0" y="752"
textLength="12.2"
clip-path="url(#breeze-release-management-line-30)">│</text><text
class="breeze-release-management-r4" x="24.4" y="752" textLength="439.2"
clip-path="url(#breeze-release-management-line-30)">tag-providers                       </text><text
class="breeze-release-management-r1" x="488" y="752" te [...]
</text><text class="breeze-release-management-r5" x="0" y="776.4"
textLength="1464"
clip-path="url(#breeze-release-management-line-31)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-r1" x="1464" y="776.4" textLength="12.2"
clip-path="url(#breeze-release-management-line-31)">
-</text><text class="breeze-release-management-r5" x="0" y="800.8"
textLength="24.4"
clip-path="url(#breeze-release-management-line-32)">╭─</text><text
class="breeze-release-management-r5" x="24.4" y="800.8" textLength="292.8"
clip-path="url(#breeze-release-management-line-32)"> Other release commands </text><text
class="breeze-release-management-r5" x="317.2" y="800.8" textLength="1122.4"
clip-path="url(#breeze-release-management-line-32)">────────────────────────────
[...]
-</text><text class="breeze-release-management-r5" x="0" y="825.2"
textLength="12.2"
clip-path="url(#breeze-release-management-line-33)">│</text><text
class="breeze-release-management-r4" x="24.4" y="825.2" textLength="292.8"
clip-path="url(#breeze-release-management-line-33)">add-back-references     </text><text
class="breeze-release-management-r1" x="341.6" y="825.2" textLength="1098"
clip-path="url(#breeze-release-management-line-33)">Command to add&#
[...]
-</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="292.8"
clip-path="url(#breeze-release-management-line-34)">prepare-python-client   </text><text
class="breeze-release-management-r1" x="341.6" y="849.6" textLength="1098"
clip-path="url(#breeze-release-management-line-34)">Prepares python client
[...]
-</text><text class="breeze-release-management-r5" x="0" y="874"
textLength="12.2"
clip-path="url(#breeze-release-management-line-35)">│</text><text
class="breeze-release-management-r4" x="24.4" y="874" textLength="292.8"
clip-path="url(#breeze-release-management-line-35)">publish-docs            </text><text
class="breeze-release-management-r1" x="341.6" y="874" textLength="1098"
clip-path="url(#breeze-release-management-line-35 [...]
-</text><text class="breeze-release-management-r5" x="0" y="898.4"
textLength="12.2"
clip-path="url(#breeze-release-management-line-36)">│</text><text
class="breeze-release-management-r4" x="24.4" y="898.4" textLength="292.8"
clip-path="url(#breeze-release-management-line-36)">generate-constraints    </text><text
class="breeze-release-management-r1" x="341.6" y="898.4" textLength="1098"
clip-path="url(#breeze-release-management-line-36)">Generates pinned cons
[...]
-</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="292.8"
clip-path="url(#breeze-release-management-line-37)">update-constraints      </text><text
class="breeze-release-management-r1" x="341.6" y="922.8" textLength="1098"
clip-path="url(#breeze-release-management-line-37)">Update released& [...]
-</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="292.8"
clip-path="url(#breeze-release-management-line-38)">publish-docs-to-s3      </text><text
class="breeze-release-management-r1" x="341.6" y="947.2" textLength="1098"
clip-path="url(#breeze-release-management-line-38)">Publishes docs&# [...]
-</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="122"
clip-path="url(#breeze-release-management-line-40)"> Commands </text><text
class="breeze-release-management-r5" x="146.4" y="996" textLength="1293.2"
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="402.6"
clip-path="url(#breeze-release-management-line-41)">constraints-version-check        </text><text
class="breeze-release-management-r1" x="451.4" y="1020.4" textLength="988.2"
clip-path="url(#breeze-release-management-line-41) [...]
-</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="402.6"
clip-path="url(#breeze-release-management-line-42)">merge-prod-images                </text><text
class="breeze-release-management-r1" x="451.4" y="1044.8" textLength="988.2"
clip-path= [...]
-</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-r1" x="451.4" y="1069.2" textLength="988.2"
clip-path="url(#breeze-release-management-line-43)">permissions).                                 &
[...]
-</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="402.6"
clip-path="url(#breeze-release-management-line-44)">prepare-airflow-ctl-distributions</text><text
class="breeze-release-management-r1" x="451.4" y="1093.6" textLength="988.2"
clip-path="url(#breeze-release-management-line-44)">Prepare sdist/whl distributi
[...]
-</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="402.6"
clip-path="url(#breeze-release-management-line-45)">prepare-task-sdk-distributions   </text><text
class="breeze-release-management-r1" x="451.4" y="1118" textLength="988.2"
clip-path="url(#breeze-release-management-line-45)">Prepare sdist/whl d
[...]
-</text><text class="breeze-release-management-r5" x="0" y="1142.4"
textLength="1464"
clip-path="url(#breeze-release-management-line-46)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-r1" x="1464" y="1142.4" textLength="12.2"
clip-path="url(#breeze-release-management-line-46)">
+</text><text class="breeze-release-management-r5" x="0" y="800.8"
textLength="24.4"
clip-path="url(#breeze-release-management-line-32)">╭─</text><text
class="breeze-release-management-r5" x="24.4" y="800.8" textLength="427"
clip-path="url(#breeze-release-management-line-32)"> Airflow Task SDK release commands </text><text
class="breeze-release-management-r5" x="451.4" y="800.8" textLength="988.2"
clip-path="url(#breeze-release-management-line-32)">────────── [...]
+</text><text class="breeze-release-management-r5" x="0" y="825.2"
textLength="12.2"
clip-path="url(#breeze-release-management-line-33)">│</text><text
class="breeze-release-management-r4" x="24.4" y="825.2" textLength="512.4"
clip-path="url(#breeze-release-management-line-33)">prepare-task-sdk-distributions            </text><text
class="breeze-release-management-r1" x="561.2" y="825.2" textLength="878.4"
clip-path="url(#breeze-r [...]
+</text><text class="breeze-release-management-r5" x="0" y="849.6"
textLength="1464"
clip-path="url(#breeze-release-management-line-34)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-r1" x="1464" y="849.6" textLength="12.2"
clip-path="url(#breeze-release-management-line-34)">
+</text><text class="breeze-release-management-r5" x="0" y="874"
textLength="24.4"
clip-path="url(#breeze-release-management-line-35)">╭─</text><text
class="breeze-release-management-r5" x="24.4" y="874" textLength="353.8"
clip-path="url(#breeze-release-management-line-35)"> airflowctl release commands </text><text
class="breeze-release-management-r5" x="378.2" y="874" textLength="1061.4"
clip-path="url(#breeze-release-management-line-35)">─────────────────────────────
[...]
+</text><text class="breeze-release-management-r5" x="0" y="898.4"
textLength="12.2"
clip-path="url(#breeze-release-management-line-36)">│</text><text
class="breeze-release-management-r4" x="24.4" y="898.4" textLength="585.6"
clip-path="url(#breeze-release-management-line-36)">prepare-airflow-ctl-distributions               </text><text
class="breeze-release-management-r1" x="634.4" y="898.4" textLength="805.2"
cli [...]
+</text><text class="breeze-release-management-r5" x="0" y="922.8"
textLength="1464"
clip-path="url(#breeze-release-management-line-37)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-r1" x="1464" y="922.8" textLength="12.2"
clip-path="url(#breeze-release-management-line-37)">
+</text><text class="breeze-release-management-r5" x="0" y="947.2"
textLength="24.4"
clip-path="url(#breeze-release-management-line-38)">╭─</text><text
class="breeze-release-management-r5" x="24.4" y="947.2" textLength="292.8"
clip-path="url(#breeze-release-management-line-38)"> Other release commands </text><text
class="breeze-release-management-r5" x="317.2" y="947.2" textLength="1122.4"
clip-path="url(#breeze-release-management-line-38)">────────────────────────────
[...]
+</text><text class="breeze-release-management-r5" x="0" y="971.6"
textLength="12.2"
clip-path="url(#breeze-release-management-line-39)">│</text><text
class="breeze-release-management-r4" x="24.4" y="971.6" textLength="292.8"
clip-path="url(#breeze-release-management-line-39)">add-back-references     </text><text
class="breeze-release-management-r1" x="341.6" y="971.6" textLength="1098"
clip-path="url(#breeze-release-management-line-39)">Command to add&#
[...]
+</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)">prepare-python-client   </text><text
class="breeze-release-management-r1" x="341.6" y="996" textLength="1098"
clip-path="url(#breeze-release-management-line-40)">Prepares python client pack
[...]
+</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)">publish-docs            </text><text
class="breeze-release-management-r1" x="341.6" y="1020.4" textLength="1098"
clip-path="url(#breeze-release-managemen [...]
+</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)">generate-constraints    </text><text
class="breeze-release-management-r1" x="341.6" y="1044.8" textLength="1098"
clip-path="url(#breeze-release-management-line-42)">Generates pinned c
[...]
+</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)">update-constraints      </text><text
class="breeze-release-management-r1" x="341.6" y="1069.2" textLength="1098"
clip-path="url(#breeze-release-management-line-43)">Update releas [...]
+</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)">publish-docs-to-s3      </text><text
class="breeze-release-management-r1" x="341.6" y="1093.6" textLength="1098"
clip-path="url(#breeze-release-management-line-44)">Publishes doc [...]
+</text><text class="breeze-release-management-r5" x="0" y="1118"
textLength="1464"
clip-path="url(#breeze-release-management-line-45)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-r1" x="1464" y="1118" textLength="12.2"
clip-path="url(#breeze-release-management-line-45)">
+</text><text class="breeze-release-management-r5" x="0" y="1142.4"
textLength="24.4"
clip-path="url(#breeze-release-management-line-46)">╭─</text><text
class="breeze-release-management-r5" x="24.4" y="1142.4" textLength="122"
clip-path="url(#breeze-release-management-line-46)"> Commands </text><text
class="breeze-release-management-r5" x="146.4" y="1142.4" textLength="1293.2"
clip-path="url(#breeze-release-management-line-46)">───────────────────────────────────────────────────
[...]
+</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="305"
clip-path="url(#breeze-release-management-line-47)">constraints-version-check</text><text
class="breeze-release-management-r1" x="353.8" y="1166.8" textLength="1085.8"
clip-path="url(#breeze-release-management-line-47)">Check constraints against releas
[...]
+</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="305"
clip-path="url(#breeze-release-management-line-48)">merge-prod-images        </text><text
class="breeze-release-management-r1" x="353.8" y="1191.2" textLength="1085.8"
clip-path="url(#breeze-release-management-line-48)">Merge&# [...]
+</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>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_release-management.txt
b/dev/breeze/doc/images/output_release-management.txt
index 6914785379b..807d6884b2b 100644
--- a/dev/breeze/doc/images/output_release-management.txt
+++ b/dev/breeze/doc/images/output_release-management.txt
@@ -1 +1 @@
-66c12fef8217c406f79e5a56aa6bf2f3
+2387270c0e14eb8ba7c5ff8c67b970aa
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.svg
b/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.svg
index 5730f621f0e..6fe8747b652 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.svg
+++
b/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 464.79999999999995"
xmlns="http://www.w3.org/2000/svg">
+<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>
@@ -43,7 +43,7 @@
<defs>
<clipPath
id="breeze-release-management-prepare-airflow-ctl-distributions-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="413.79999999999995" />
+ <rect x="0" y="0" width="1463.0" height="438.2" />
</clipPath>
<clipPath
id="breeze-release-management-prepare-airflow-ctl-distributions-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -93,17 +93,20 @@
<clipPath
id="breeze-release-management-prepare-airflow-ctl-distributions-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
+<clipPath
id="breeze-release-management-prepare-airflow-ctl-distributions-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="462.8" rx="8"/><text
class="breeze-release-management-prepare-airflow-ctl-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-airflow-ctl-distributions</text>
+ <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-prepare-airflow-ctl-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-airflow-ctl-distributions</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-prepare-airflow-ctl-distributions-clip-terminal)">
-
+
<g
class="breeze-release-management-prepare-airflow-ctl-distributions-matrix">
<text
class="breeze-release-management-prepare-airflow-ctl-distributions-r1" x="1464"
y="20" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-0)">
</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r2" x="12.2"
y="44.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-1)">Usage:</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r3"
x="97.6" y="44.4" textLength="719.8"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-1)">breeze release-management prepare-airflow-ctl-distributions</text
[...]
@@ -116,12 +119,13 @@
</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-8)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r1"
x="329.4" y="215.2" textLength="1110.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-8)">etc.). Note the `.` is need in `.dev0` 
[...]
</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-9)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r6"
x="329.4" y="239.6" textLength="1110.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-9)">(TEXT)            &
[...]
</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="264" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-10)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="264" textLength="207.4"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-10)">--use-local-hatch</text><text
class="breeze-release-management-prepare-airflow-ctl- [...]
-</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="288.4" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r1"
x="1464" y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepa [...]
-</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="312.8" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-12)">╭─</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5"
x="24.4" y="312.8" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-12)"> Common options </text><text
class="breeze-release-management-p [...]
-</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-13)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="337.2" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-13)">--verbose</text><text
class="breeze-release-management-prepare-airflow-ctl-dist [...]
-</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-14)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="361.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-14)">--dry-run</text><text
class="breeze-release-management-prepare-airflow-ctl-dist [...]
-</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="386" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-15)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="386" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-15)">--help</text><text
class="breeze-release-management-prepare-airflow-ctl-distribution [...]
-</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="410.4" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r1"
x="1464" y="410.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepa [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-11)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="288.4" textLength="61"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-11)">--tag</text><text
class="breeze-release-management-prepare-airflow-ctl-distributio [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r1"
x="1464" y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepa [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="337.2" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-13)">╭─</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5"
x="24.4" y="337.2" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-13)"> Common options </text><text
class="breeze-release-management-p [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-14)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="361.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-14)">--verbose</text><text
class="breeze-release-management-prepare-airflow-ctl-dist [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="386" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-15)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="386" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-15)">--dry-run</text><text
class="breeze-release-management-prepare-airflow-ctl-distribu [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="410.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-16)">│</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r4"
x="24.4" y="410.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-16)">--help</text><text
class="breeze-release-management-prepare-airflow-ctl-distribu [...]
+</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r5" x="0"
y="434.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-ctl-distributions-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-ctl-distributions-r1"
x="1464" y="434.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepa [...]
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.txt
b/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.txt
index 29d4041a01a..c43cf284be8 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.txt
+++
b/dev/breeze/doc/images/output_release-management_prepare-airflow-ctl-distributions.txt
@@ -1 +1 @@
-5a59e6772b7a51ca98f8e8180398bdf0
+3bd7d675eea1fa8b2103b05f9fe3687c
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.svg
b/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.svg
index da494b08875..485c3dc2749 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.svg
+++
b/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 464.79999999999995"
xmlns="http://www.w3.org/2000/svg">
+<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>
@@ -43,7 +43,7 @@
<defs>
<clipPath
id="breeze-release-management-prepare-airflow-distributions-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="413.79999999999995" />
+ <rect x="0" y="0" width="1463.0" height="438.2" />
</clipPath>
<clipPath
id="breeze-release-management-prepare-airflow-distributions-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -93,9 +93,12 @@
<clipPath id="breeze-release-management-prepare-airflow-distributions-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-prepare-airflow-distributions-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="462.8" rx="8"/><text
class="breeze-release-management-prepare-airflow-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-airflow-distributions</text>
+ <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-prepare-airflow-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-airflow-distributions</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -116,12 +119,13 @@
</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-8)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x="329.4"
y="215.2" textLength="1110.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-8)">etc.). Note the `.` is need in `.dev0` and `.post`
[...]
</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-9)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r6" x="329.4"
y="239.6" textLength="1110.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-9)">(TEXT)               
[...]
</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="264" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-10)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="264" textLength="207.4"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-10)">--use-local-hatch</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x= [...]
-</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="288.4" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x="1464"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-d [...]
-</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="312.8" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-12)">╭─</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="24.4"
y="312.8" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-12)"> Common options </text><text
class="breeze-release-management-prepare-airflow-d [...]
-</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-13)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="337.2" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-13)">--verbose</text><text
class="breeze-release-management-prepare-airflow-distributions-r7" x="158 [...]
-</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-14)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="361.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-14)">--dry-run</text><text
class="breeze-release-management-prepare-airflow-distributions-r7" x="158 [...]
-</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="386" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-15)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="386" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-15)">--help</text><text
class="breeze-release-management-prepare-airflow-distributions-r7" x="158.6"
y="3 [...]
-</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="410.4" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x="1464"
y="410.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-d [...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-11)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="288.4" textLength="61"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-11)">--tag</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x="329.4"
y=" [...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x="1464"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-d [...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="337.2" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-13)">╭─</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="24.4"
y="337.2" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-13)"> Common options </text><text
class="breeze-release-management-prepare-airflow-d [...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-14)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="361.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-14)">--verbose</text><text
class="breeze-release-management-prepare-airflow-distributions-r7" x="158 [...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="386" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-15)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="386" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-15)">--dry-run</text><text
class="breeze-release-management-prepare-airflow-distributions-r7" x="158.6"
[...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="410.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-16)">│</text><text
class="breeze-release-management-prepare-airflow-distributions-r4" x="24.4"
y="410.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-16)">--help</text><text
class="breeze-release-management-prepare-airflow-distributions-r7" x="158.6"
[...]
+</text><text
class="breeze-release-management-prepare-airflow-distributions-r5" x="0"
y="434.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-distributions-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-distributions-r1" x="1464"
y="434.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-d [...]
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.txt
b/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.txt
index 23cfaca1194..09c3d23b022 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.txt
+++
b/dev/breeze/doc/images/output_release-management_prepare-airflow-distributions.txt
@@ -1 +1 @@
-ded1f764fbbd1ef0cb885615f9e0ae83
+9a8864f40e52836268af594ccbbe5531
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.svg
b/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.svg
index 67c814251aa..b298e8e694a 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.svg
+++
b/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 367.2"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 440.4"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -37,15 +37,13 @@
.breeze-release-management-prepare-airflow-tarball-r3 { fill:
#c5c8c6;font-weight: bold }
.breeze-release-management-prepare-airflow-tarball-r4 { fill:
#68a0b3;font-weight: bold }
.breeze-release-management-prepare-airflow-tarball-r5 { fill: #868887 }
-.breeze-release-management-prepare-airflow-tarball-r6 { fill: #cc555a }
-.breeze-release-management-prepare-airflow-tarball-r7 { fill: #8d7b39 }
-.breeze-release-management-prepare-airflow-tarball-r8 { fill: #8a4346 }
-.breeze-release-management-prepare-airflow-tarball-r9 { fill:
#98a84b;font-weight: bold }
+.breeze-release-management-prepare-airflow-tarball-r6 { fill: #8d7b39 }
+.breeze-release-management-prepare-airflow-tarball-r7 { fill:
#98a84b;font-weight: bold }
</style>
<defs>
<clipPath
id="breeze-release-management-prepare-airflow-tarball-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="316.2" />
+ <rect x="0" y="0" width="1463.0" height="389.4" />
</clipPath>
<clipPath id="breeze-release-management-prepare-airflow-tarball-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -83,9 +81,18 @@
<clipPath id="breeze-release-management-prepare-airflow-tarball-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-prepare-airflow-tarball-line-12">
+ <rect x="0" y="294.3" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-prepare-airflow-tarball-line-13">
+ <rect x="0" y="318.7" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-prepare-airflow-tarball-line-14">
+ <rect x="0" y="343.1" 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="365.2" rx="8"/><text
class="breeze-release-management-prepare-airflow-tarball-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management prepare-airflow-tarball</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="438.4" rx="8"/><text
class="breeze-release-management-prepare-airflow-tarball-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management prepare-airflow-tarball</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -98,16 +105,19 @@
<text class="breeze-release-management-prepare-airflow-tarball-r1"
x="1464" y="20" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-0)">
</text><text class="breeze-release-management-prepare-airflow-tarball-r2"
x="12.2" y="44.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-1)">Usage:</text><text
class="breeze-release-management-prepare-airflow-tarball-r3" x="97.6" y="44.4"
textLength="597.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-1)">breeze release-management prepare-airflow-tarball</text><text
class="breeze-release-management-prepare-ai [...]
</text><text class="breeze-release-management-prepare-airflow-tarball-r1"
x="1464" y="68.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-2)">
-</text><text class="breeze-release-management-prepare-airflow-tarball-r1"
x="12.2" y="93.2" textLength="402.6"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-3)">Prepare airflow's source tarball.</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="1464" y="93.2"
textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-3)">
+</text><text class="breeze-release-management-prepare-airflow-tarball-r1"
x="12.2" y="93.2" textLength="695.4"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-3)">Prepare airflow's or airflow distribution source tarball.</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="1464" y="93.2"
textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-3)">
</text><text class="breeze-release-management-prepare-airflow-tarball-r1"
x="1464" y="117.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-4)">
</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="142" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-5)">╭─</text><text
class="breeze-release-management-prepare-airflow-tarball-r5" x="24.4" y="142"
textLength="183"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-5)"> Package flags </text><text
class="breeze-release-management-prepare-airflow-tarball-r5" x="207.4" y="142"
text [...]
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-6)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r6" x="24.4"
y="166.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-6)">*</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="61" y="166.4"
textLength="109.8" clip-path=" [...]
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="190.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="1464"
y="190.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-7)">
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="215.2" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-8)">╭─</text><text
class="breeze-release-management-prepare-airflow-tarball-r5" x="24.4"
y="215.2" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-8)"> Common options </text><text
class="breeze-release-management-prepare-airflow-tarball-r5" x="219.6" y="21
[...]
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-9)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="239.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-9)">--dry-run</text><text
class="breeze-release-management-prepare-airflow-tarball-r9" x="158.6"
y="239.6" textLength="24.4" [...]
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="264" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-10)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4" y="264"
textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-10)">--verbose</text><text
class="breeze-release-management-prepare-airflow-tarball-r9" x="158.6" y="264"
textLength="24.4" clip [...]
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-11)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="288.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-11)">--help</text><text
class="breeze-release-management-prepare-airflow-tarball-r9" x="158.6"
y="288.4" textLength="24.4" cl [...]
-</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="1464"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-12)">
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="166.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-6)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="166.4" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-6)">--version</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="305" y="166.4"
textLength="524.6" c [...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="190.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-7)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="190.8" textLength="231.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-7)">--distribution-name</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="305" y="190.8"
textLength [...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-8)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="215.2" textLength="61"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-8)">--tag</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="305" y="215.2"
textLength="1122.4" clip-pa [...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-9)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r6" x="305" y="239.6"
textLength="1122.4"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-9)">(TEXT)                   &
[...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="264" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-10)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="1464" y="264"
textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-10)">
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="288.4" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-11)">╭─</text><text
class="breeze-release-management-prepare-airflow-tarball-r5" x="24.4"
y="288.4" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-11)"> Common options </text><text
class="breeze-release-management-prepare-airflow-tarball-r5" x="219.6" y="
[...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-12)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="312.8" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-12)">--dry-run</text><text
class="breeze-release-management-prepare-airflow-tarball-r7" x="158.6"
y="312.8" textLength="24.4 [...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-13)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="337.2" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-13)">--verbose</text><text
class="breeze-release-management-prepare-airflow-tarball-r7" x="158.6"
y="337.2" textLength="24.4 [...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-14)">│</text><text
class="breeze-release-management-prepare-airflow-tarball-r4" x="24.4"
y="361.6" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-14)">--help</text><text
class="breeze-release-management-prepare-airflow-tarball-r7" x="158.6"
y="361.6" textLength="24.4" cl [...]
+</text><text class="breeze-release-management-prepare-airflow-tarball-r5"
x="0" y="386" textLength="1464"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-15)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-airflow-tarball-r1" x="1464" y="386"
textLength="12.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-15)">
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.txt
b/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.txt
index 19b5526b1c6..1f782aecabc 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.txt
+++
b/dev/breeze/doc/images/output_release-management_prepare-airflow-tarball.txt
@@ -1 +1 @@
-f98358d95810966a00142a5e654c7909
+d6bd14bc9e4d7bd1f6fb5b9b3272a3a1
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.svg
b/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.svg
index 35e62f8a7e7..7b0f7dba6af 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.svg
+++
b/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1099.2"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1123.6"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath
id="breeze-release-management-prepare-provider-distributions-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="1048.2" />
+ <rect x="0" y="0" width="1463.0" height="1072.6" />
</clipPath>
<clipPath
id="breeze-release-management-prepare-provider-distributions-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -171,9 +171,12 @@
<clipPath
id="breeze-release-management-prepare-provider-distributions-line-41">
<rect x="0" y="1001.9" width="1464" height="24.65"/>
</clipPath>
+<clipPath
id="breeze-release-management-prepare-provider-distributions-line-42">
+ <rect x="0" y="1026.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="1097.2" rx="8"/><text
class="breeze-release-management-prepare-provider-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-provider-distributions</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="1121.6" rx="8"/><text
class="breeze-release-management-prepare-provider-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-provider-distributions</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -220,12 +223,13 @@
</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="849.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-34)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="475.8"
y="849.6" textLength="963.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-34)">adding individual packages as arguments to every comman
[...]
</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="874" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-35)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="475.8"
y="874" textLength="963.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-35)">packages passed as arguments.        &#
[...]
</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="898.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-36)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r7" x="475.8"
y="898.4" textLength="963.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-36)">(TEXT)              
[...]
-</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="922.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-37)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="1464"
y="922.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provid [...]
-</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="947.2" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-38)">╭─</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="24.4"
y="947.2" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-38)"> Common options </text><text
class="breeze-release-management-prepare-provi [...]
-</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="971.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-39)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="971.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-39)">--dry-run</text><text
class="breeze-release-management-prepare-provider-distributions-r6" x [...]
-</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="996" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-40)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="996" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-40)">--verbose</text><text
class="breeze-release-management-prepare-provider-distributions-r6" x="15 [...]
-</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="1020.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-41)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="1020.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-41)">--help</text><text
class="breeze-release-management-prepare-provider-distributions-r6" x=" [...]
-</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="1044.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-42)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="1464"
y="1044.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-prov [...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="922.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-37)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="922.8" textLength="61"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-37)">--tag</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="475.8
[...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="947.2" textLength="1464"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-38)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="1464"
y="947.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provid [...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="971.6" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-39)">╭─</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="24.4"
y="971.6" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-39)"> Common options </text><text
class="breeze-release-management-prepare-provi [...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="996" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-40)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="996" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-40)">--dry-run</text><text
class="breeze-release-management-prepare-provider-distributions-r6" x="15 [...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="1020.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-41)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="1020.4" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-41)">--verbose</text><text
class="breeze-release-management-prepare-provider-distributions-r6" [...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="1044.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-42)">│</text><text
class="breeze-release-management-prepare-provider-distributions-r4" x="24.4"
y="1044.8" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-42)">--help</text><text
class="breeze-release-management-prepare-provider-distributions-r6" x=" [...]
+</text><text
class="breeze-release-management-prepare-provider-distributions-r5" x="0"
y="1069.2" textLength="1464"
clip-path="url(#breeze-release-management-prepare-provider-distributions-line-43)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-provider-distributions-r1" x="1464"
y="1069.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-prov [...]
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.txt
b/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.txt
index d9a7af41394..f61d4024bcc 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.txt
+++
b/dev/breeze/doc/images/output_release-management_prepare-provider-distributions.txt
@@ -1 +1 @@
-1d031671d50f0a45410fda366afe659f
+2b84369620049c7b407390f681587198
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.svg
b/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.svg
index 3a5c40292cf..22da5af8b14 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.svg
+++
b/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 464.79999999999995"
xmlns="http://www.w3.org/2000/svg">
+<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>
@@ -43,7 +43,7 @@
<defs>
<clipPath
id="breeze-release-management-prepare-task-sdk-distributions-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="413.79999999999995" />
+ <rect x="0" y="0" width="1463.0" height="438.2" />
</clipPath>
<clipPath
id="breeze-release-management-prepare-task-sdk-distributions-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -93,9 +93,12 @@
<clipPath
id="breeze-release-management-prepare-task-sdk-distributions-line-15">
<rect x="0" y="367.5" width="1464" height="24.65"/>
</clipPath>
+<clipPath
id="breeze-release-management-prepare-task-sdk-distributions-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="462.8" rx="8"/><text
class="breeze-release-management-prepare-task-sdk-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-task-sdk-distributions</text>
+ <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-prepare-task-sdk-distributions-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management prepare-task-sdk-distributions</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -116,12 +119,13 @@
</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-8)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r1" x="329.4"
y="215.2" textLength="1110.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-8)">etc.). Note the `.` is need in `.dev0` and `.p
[...]
</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-9)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r6" x="329.4"
y="239.6" textLength="1110.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-9)">(TEXT)              &
[...]
</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="264" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-10)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="264" textLength="207.4"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-10)">--use-local-hatch</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r [...]
-</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="288.4" textLength="1464"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r1" x="1464"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-s [...]
-</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="312.8" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-12)">╭─</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="24.4"
y="312.8" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-12)"> Common options </text><text
class="breeze-release-management-prepare-task- [...]
-</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-13)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="337.2" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-13)">--verbose</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r7" x [...]
-</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-14)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="361.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-14)">--dry-run</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r7" x [...]
-</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="386" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-15)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="386" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-15)">--help</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r7" x="158.6"
[...]
-</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="410.4" textLength="1464"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r1" x="1464"
y="410.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-s [...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-11)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="288.4" textLength="61"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-11)">--tag</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r1" x="329.4
[...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r1" x="1464"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-s [...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="337.2" textLength="24.4"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-13)">╭─</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="24.4"
y="337.2" textLength="195.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-13)"> Common options </text><text
class="breeze-release-management-prepare-task- [...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-14)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="361.6" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-14)">--verbose</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r7" x [...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="386" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-15)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="386" textLength="109.8"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-15)">--dry-run</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r7" x="15 [...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="410.4" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-16)">│</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r4" x="24.4"
y="410.4" textLength="73.2"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-16)">--help</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r7" x="15 [...]
+</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r5" x="0"
y="434.8" textLength="1464"
clip-path="url(#breeze-release-management-prepare-task-sdk-distributions-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-prepare-task-sdk-distributions-r1" x="1464"
y="434.8" textLength="12.2"
clip-path="url(#breeze-release-management-prepare-task-s [...]
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.txt
b/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.txt
index 67f5f0cf65b..2c5b366cba0 100644
---
a/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.txt
+++
b/dev/breeze/doc/images/output_release-management_prepare-task-sdk-distributions.txt
@@ -1 +1 @@
-d4edfdcbafb4f63ddeca69d26851eb20
+092958649cfdcc6c09a5d645bd82841b
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
index b793a4478b7..d588eedd7f4 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
@@ -18,15 +18,27 @@ from __future__ import annotations
import os
import shutil
+from datetime import datetime
from pathlib import Path
+from typing import Literal
import click
from airflow_breeze.commands.common_options import option_answer,
option_dry_run, option_verbose
from airflow_breeze.commands.release_management_group import release_management
+from airflow_breeze.global_constants import (
+ DistributionType,
+ get_airflow_version,
+ get_airflowctl_version,
+ get_task_sdk_version,
+)
from airflow_breeze.utils.confirm import confirm_action
from airflow_breeze.utils.console import console_print
-from airflow_breeze.utils.path_utils import AIRFLOW_DIST_PATH,
AIRFLOW_ROOT_PATH, OUT_PATH
+from airflow_breeze.utils.path_utils import (
+ AIRFLOW_DIST_PATH,
+ AIRFLOW_ROOT_PATH,
+ OUT_PATH,
+)
from airflow_breeze.utils.reproducible import get_source_date_epoch,
repack_deterministically
from airflow_breeze.utils.run_utils import run_command
from airflow_breeze.utils.shared_options import get_dry_run
@@ -236,12 +248,18 @@ def git_clean():
console_print("[success]Git repo cleaned")
-def tarball_release(version: str, version_without_rc: str, source_date_epoch:
int):
- console_print(f"[info]Creating tarball for Airflow {version}")
+def tarball_release(
+ version: str,
+ version_without_rc: str,
+ source_date_epoch: int,
+ distribution_name: DistributionType,
+ tag: str | None = None,
+):
+ console_print(f"[info]Creating tarball for Apache
{distribution_name.value} {version}")
shutil.rmtree(OUT_PATH, ignore_errors=True)
OUT_PATH.mkdir(exist_ok=True)
AIRFLOW_DIST_PATH.mkdir(exist_ok=True)
- archive_name = f"apache-airflow-{version_without_rc}-source.tar.gz"
+ archive_name =
f"apache-{distribution_name.value}-{version_without_rc}-source.tar.gz"
temporary_archive = OUT_PATH / archive_name
result = run_command(
[
@@ -250,15 +268,17 @@ def tarball_release(version: str, version_without_rc:
str, source_date_epoch: in
"tar.umask=0077",
"archive",
"--format=tar.gz",
- f"{version}",
- f"--prefix=apache-airflow-{version_without_rc}/",
+ f"{version if tag is None else tag}",
+ f"--prefix=apache-{distribution_name.value}-{version_without_rc}/",
"-o",
temporary_archive.as_posix(),
],
check=False,
)
if result.returncode != 0:
- console_print(f"[error]Failed to create tarball {temporary_archive}
for Airflow {version}")
+ console_print(
+ f"[error]Failed to create tarball {temporary_archive} for Apache
{distribution_name.value} {version}"
+ )
exit(result.returncode)
final_archive = AIRFLOW_DIST_PATH / archive_name
result = repack_deterministically(
@@ -273,6 +293,41 @@ def tarball_release(version: str, version_without_rc: str,
source_date_epoch: in
console_print(f"[success]Tarball created in {final_archive}")
+def create_tarball_release(
+ version: str,
+ distribution_name: Literal["airflow", "task-sdk", "providers",
"airflowctl"],
+ tag: str | None,
+):
+ from packaging.version import Version
+
+ distribution_name = DistributionType(distribution_name)
+ if not version:
+ if distribution_name == DistributionType.AIRFLOW_CORE:
+ version = get_airflow_version()
+ elif distribution_name == DistributionType.TASK_SDK:
+ version = get_task_sdk_version()
+ elif distribution_name == DistributionType.AIRFLOW_CTL:
+ version = get_airflowctl_version()
+ elif distribution_name == DistributionType.PROVIDERS:
+ version = get_airflow_version()
+ distribution_version = Version(version)
+ source_date_epoch = get_source_date_epoch(AIRFLOW_ROOT_PATH)
+ version_without_rc = (
+ distribution_version.base_version
+ if distribution_name != DistributionType.PROVIDERS
+ else f"{datetime.now().strftime('%Y-%m-%d')}"
+ )
+
+ # Create the tarball
+ tarball_release(
+ version=version,
+ version_without_rc=version_without_rc,
+ source_date_epoch=source_date_epoch,
+ distribution_name=distribution_name,
+ tag=tag,
+ )
+
+
def create_artifacts_with_hatch(source_date_epoch: int):
console_print("[info]Creating artifacts with hatch")
shutil.rmtree(AIRFLOW_DIST_PATH, ignore_errors=True)
@@ -523,24 +578,30 @@ def remove_old_releases(version, repo_root):
@release_management.command(
name="prepare-airflow-tarball",
- help="Prepare airflow's source tarball.",
+ help="Prepare airflow's or airflow distribution source tarball.",
+)
[email protected]("--version", help="The release candidate version e.g. 2.4.3rc1",
envvar="VERSION")
[email protected](
+ "--distribution-name",
+ default="airflow",
+ help="The distribution name, airflow, task-sdk, providers, airflowctl",
)
@click.option(
- "--version", required=True, help="The release candidate version e.g.
2.4.3rc1", envvar="VERSION"
+ "--tag",
+ help="The git tag to use for creating the tarball. If not provided,
__init__ file version is used.",
+ default=None,
)
@option_dry_run
@option_verbose
-def prepare_airflow_tarball(version: str):
- from packaging.version import Version
-
- airflow_version = Version(version)
- if not airflow_version.is_prerelease:
- exit("--version value must be a pre-release")
- source_date_epoch = get_source_date_epoch(AIRFLOW_ROOT_PATH)
- version_without_rc = airflow_version.base_version
- # Create the tarball
- tarball_release(
- version=version, version_without_rc=version_without_rc,
source_date_epoch=source_date_epoch
+def prepare_airflow_tarball(
+ version: str,
+ distribution_name: Literal["airflow", "task-sdk", "providers",
"airflowctl"],
+ tag: str | None,
+):
+ create_tarball_release(
+ version=version,
+ distribution_name=distribution_name,
+ tag=tag,
)
@@ -627,7 +688,10 @@ def publish_release_candidate(version, previous_version,
task_sdk_version, githu
if confirm_action("Create tarball?"):
# Create the tarball
tarball_release(
- version=version, version_without_rc=version_without_rc,
source_date_epoch=source_date_epoch
+ version=version,
+ version_without_rc=version_without_rc,
+ source_date_epoch=source_date_epoch,
+ distribution_name=DistributionType.AIRFLOW_CORE,
)
# Sign the release
sign_the_release(airflow_repo_root)
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 74a5ac583b3..706d76a6c51 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -88,6 +88,7 @@ from
airflow_breeze.commands.common_package_installation_options import (
option_providers_skip_constraints,
option_use_distributions_from_dist,
)
+from airflow_breeze.commands.release_candidate_command import
create_tarball_release
from airflow_breeze.commands.release_management_group import release_management
from airflow_breeze.global_constants import (
ALL_PYTHON_VERSION_TO_PATCHLEVEL_VERSION,
@@ -227,6 +228,12 @@ option_use_local_hatch = click.option(
envvar="USE_LOCAL_HATCH",
help="Use local hatch instead of docker to build the package. You need to
have hatch installed.",
)
+option_tag = click.option(
+ "--tag",
+ type=str,
+ help="Tag to use for the release processes",
+ default=None,
+)
MY_DIR_PATH = os.path.dirname(__file__)
SOURCE_DIR_PATH = os.path.abspath(
@@ -538,12 +545,14 @@ def _check_sdist_to_wheel(python_path: Path, dist_info:
DistributionPackageInfo,
@option_distribution_format
@option_version_suffix
@option_use_local_hatch
+@option_tag
@option_verbose
@option_dry_run
def prepare_airflow_distributions(
distribution_format: str,
version_suffix: str,
use_local_hatch: bool,
+ tag: str | None = None,
):
perform_environment_checks()
fix_ownership_using_docker()
@@ -574,6 +583,13 @@ def prepare_airflow_distributions(
version_suffix=version_suffix,
)
get_console().print("[success]Successfully prepared Airflow packages")
+ if tag is not None:
+ # Create the tarball
+ create_tarball_release(
+ version=version_suffix,
+ distribution_name="airflow",
+ tag=tag,
+ )
def _prepare_non_core_distributions(
@@ -700,12 +716,14 @@ def _prepare_non_core_distributions(
@option_distribution_format
@option_version_suffix
@option_use_local_hatch
+@option_tag
@option_verbose
@option_dry_run
def prepare_task_sdk_distributions(
distribution_format: str,
version_suffix: str,
use_local_hatch: bool,
+ tag: str | None = None,
):
_prepare_non_core_distributions(
# Argument parameters
@@ -719,6 +737,13 @@ def prepare_task_sdk_distributions(
distribution_name="task-sdk",
distribution_pretty_name="Task SDK",
)
+ if tag is not None:
+ # Create the tarball
+ create_tarball_release(
+ version=version_suffix,
+ distribution_name="task-sdk",
+ tag=tag,
+ )
@release_management.command(
@@ -728,12 +753,14 @@ def prepare_task_sdk_distributions(
@option_distribution_format
@option_version_suffix
@option_use_local_hatch
+@option_tag
@option_verbose
@option_dry_run
def prepare_airflow_ctl_distributions(
distribution_format: str,
version_suffix: str,
use_local_hatch: bool,
+ tag: str | None = None,
):
_prepare_non_core_distributions(
# Argument parameters
@@ -748,6 +775,14 @@ def prepare_airflow_ctl_distributions(
distribution_pretty_name="",
full_distribution_pretty_name="airflowctl",
)
+ print(f"tag passed: {tag}")
+ if tag is not None:
+ # Create the tarball
+ create_tarball_release(
+ version=version_suffix,
+ distribution_name="airflowctl",
+ tag=tag,
+ )
def provider_action_summary(description: str, message_type: MessageType,
packages: list[str]):
@@ -1042,6 +1077,7 @@ def _build_provider_distributions(
@option_include_not_ready_providers
@option_include_removed_providers
@argument_provider_distributions
+@option_tag
@option_verbose
def prepare_provider_distributions(
clean_dist: bool,
@@ -1055,6 +1091,7 @@ def prepare_provider_distributions(
skip_deleting_generated_files: bool,
skip_tag_check: bool,
version_suffix: str,
+ tag: str | None = None,
):
perform_environment_checks()
fix_ownership_using_docker()
@@ -1139,6 +1176,13 @@ def prepare_provider_distributions(
for dist_info in packages:
get_console().print(str(dist_info))
get_console().print()
+ # Create the tarball
+ if tag is not None:
+ create_tarball_release(
+ version=version_suffix,
+ distribution_name="providers",
+ tag=tag,
+ )
def run_generate_constraints(
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 09eae51533c..903f547486d 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
@@ -86,15 +86,14 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str
| list[str]]]] = {
"--distribution-format",
"--version-suffix",
"--use-local-hatch",
+ "--tag",
],
}
],
"breeze release-management prepare-airflow-tarball": [
{
"name": "Package flags",
- "options": [
- "--version",
- ],
+ "options": ["--version", "--distribution-name", "--tag"],
}
],
"breeze release-management prepare-task-sdk-distributions": [
@@ -104,6 +103,7 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str
| list[str]]]] = {
"--distribution-format",
"--version-suffix",
"--use-local-hatch",
+ "--tag",
],
}
],
@@ -114,6 +114,7 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str
| list[str]]]] = {
"--distribution-format",
"--version-suffix",
"--use-local-hatch",
+ "--tag",
],
}
],
@@ -234,6 +235,7 @@ RELEASE_MANAGEMENT_PARAMETERS: dict[str, list[dict[str, str
| list[str]]]] = {
"--skip-tag-check",
"--version-suffix",
"--distributions-list",
+ "--tag",
],
}
],
diff --git a/dev/breeze/src/airflow_breeze/configure_rich_click.py
b/dev/breeze/src/airflow_breeze/configure_rich_click.py
index a5b1df980c8..3ac1a200a41 100644
--- a/dev/breeze/src/airflow_breeze/configure_rich_click.py
+++ b/dev/breeze/src/airflow_breeze/configure_rich_click.py
@@ -49,6 +49,8 @@ else:
)
from airflow_breeze.commands.release_management_commands_config import (
RELEASE_AIRFLOW_COMMANDS,
+ RELEASE_AIRFLOW_CTL_COMMANDS,
+ RELEASE_AIRFLOW_TASK_SDK_COMMANDS,
RELEASE_HELM_COMMANDS,
RELEASE_MANAGEMENT_PARAMETERS,
RELEASE_OTHER_COMMANDS,
@@ -112,6 +114,8 @@ else:
RELEASE_AIRFLOW_COMMANDS,
RELEASE_HELM_COMMANDS,
RELEASE_PROVIDERS_COMMANDS,
+ RELEASE_AIRFLOW_TASK_SDK_COMMANDS,
+ RELEASE_AIRFLOW_CTL_COMMANDS,
RELEASE_OTHER_COMMANDS,
],
"breeze sbom": [SBOM_COMMANDS],
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py
b/dev/breeze/src/airflow_breeze/global_constants.py
index 2ee0c045ecd..fd13e723e4b 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -206,7 +206,7 @@ UV_VERSION = "0.8.14"
DEFAULT_UV_HTTP_TIMEOUT = 300
DEFAULT_WSL2_HTTP_TIMEOUT = 900
-# packages that providers docs
+# packages that providers docs
REGULAR_DOC_PACKAGES = [
"apache-airflow",
"docker-stack",
@@ -216,6 +216,16 @@ REGULAR_DOC_PACKAGES = [
"apache-airflow-ctl",
]
+
+# packages that are distributions of Airflow
+class DistributionType(Enum):
+ AIRFLOW_CORE = "airflow"
+ PROVIDERS = "providers"
+ TASK_SDK = "task-sdk"
+ AIRFLOW_CTL = "airflowctl"
+ HELM_CHART = "helm-chart"
+
+
DESTINATION_LOCATIONS = [
"s3://live-docs-airflow-apache-org/docs/",
"s3://staging-docs-airflow-apache-org/docs/",