This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-0-test by this push:
new af62dbb0e72 Switch to built-in dry-run/verbose commands for breeze
release commands (#49616)
af62dbb0e72 is described below
commit af62dbb0e723d0ce66a33967670de34717550d46
Author: Jarek Potiuk <[email protected]>
AuthorDate: Thu Apr 24 08:00:52 2025 +0200
Switch to built-in dry-run/verbose commands for breeze release commands
(#49616)
The release commands were using special "if CI" case which has been
pretty problematic to test and run - instead we switch to the built-in
dry-run/verbose functionality which will produce cleaner code.
(cherry picked from commit 42f81ebc70fc9e4c7916ad0494395764ad43f561)
---
.github/workflows/basic-tests.yml | 28 ++++----
...tput_release-management_create-minor-branch.svg | 20 ++++--
...tput_release-management_create-minor-branch.txt | 2 +-
...ease-management_generate-providers-metadata.svg | 18 ++++--
...ease-management_generate-providers-metadata.txt | 2 +-
..._release-management_prepare-airflow-tarball.svg | 18 ++++--
..._release-management_prepare-airflow-tarball.txt | 2 +-
.../output_release-management_start-rc-process.svg | 20 ++++--
.../output_release-management_start-rc-process.txt | 2 +-
.../output_release-management_start-release.svg | 20 ++++--
.../output_release-management_start-release.txt | 2 +-
.../commands/minor_release_command.py | 72 +++++----------------
.../commands/release_candidate_command.py | 75 +++++++++-------------
.../src/airflow_breeze/commands/release_command.py | 40 ++++--------
.../commands/release_management_commands.py | 2 +
dev/breeze/src/airflow_breeze/utils/ci_group.py | 9 ++-
16 files changed, 157 insertions(+), 175 deletions(-)
diff --git a/.github/workflows/basic-tests.yml
b/.github/workflows/basic-tests.yml
index 2eca2eec247..176921df494 100644
--- a/.github/workflows/basic-tests.yml
+++ b/.github/workflows/basic-tests.yml
@@ -337,24 +337,24 @@ jobs:
- name: Install twine
run: pip install twine
- name: "Check Airflow create minor branch command"
- run: |
- ./scripts/ci/testing/run_breeze_command_with_retries.sh \
- release-management create-minor-branch --version-branch 2-8 --answer
yes
+ run: >
+ breeze release-management create-minor-branch
+ --version-branch 3-1 --answer yes --dry-run
- name: "Check Airflow RC process command"
- run: |
- ./scripts/ci/testing/run_breeze_command_with_retries.sh \
- release-management start-rc-process --version 2.8.3rc1
--previous-version 2.8.0 --answer yes
+ run: >
+ breeze release-management start-rc-process
+ --version 3.1.0rc1 --previous-version 3.0.0 --answer yes --dry-run
- name: "Check Airflow release process command"
- run: |
- ./scripts/ci/testing/run_breeze_command_with_retries.sh \
- release-management start-release --release-candidate 2.8.3rc1
--previous-release 2.8.0 --answer yes
+ run: >
+ breeze release-management start-release --release-candidate 3.1.0rc1
+ --previous-release 3.0.0 --answer yes --dry-run
- name: "Test providers metadata generation"
run: |
- ./scripts/ci/testing/run_breeze_command_with_retries.sh \
- release-management generate-providers-metadata --refresh-constraints
- - name: "Fetch all git tags"
+ git remote add apache https://github.com/apache/airflow.git
+ git fetch apache --tags
+ breeze release-management generate-providers-metadata
--refresh-constraints
+ - name: "Fetch all git tags for origin"
run: git fetch --tags >/dev/null 2>&1 || true
- name: "Test airflow core issue generation automatically"
run: |
- ./scripts/ci/testing/run_breeze_command_with_retries.sh \
- release-management generate-issue-content-core --limit-pr-count 25
--latest --verbose
+ breeze release-management generate-issue-content-core
--limit-pr-count 25 --latest --verbose
diff --git
a/dev/breeze/doc/images/output_release-management_create-minor-branch.svg
b/dev/breeze/doc/images/output_release-management_create-minor-branch.svg
index 3f051b9276f..7262f9b73a2 100644
--- a/dev/breeze/doc/images/output_release-management_create-minor-branch.svg
+++ b/dev/breeze/doc/images/output_release-management_create-minor-branch.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 342.79999999999995"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 391.59999999999997"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -45,7 +45,7 @@
<defs>
<clipPath id="breeze-release-management-create-minor-branch-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="291.79999999999995" />
+ <rect x="0" y="0" width="1463.0" height="340.59999999999997" />
</clipPath>
<clipPath id="breeze-release-management-create-minor-branch-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -80,9 +80,15 @@
<clipPath id="breeze-release-management-create-minor-branch-line-10">
<rect x="0" y="245.5" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-create-minor-branch-line-11">
+ <rect x="0" y="269.9" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-create-minor-branch-line-12">
+ <rect x="0" y="294.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="340.8" rx="8"/><text
class="breeze-release-management-create-minor-branch-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management create-minor-branch</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="389.6" rx="8"/><text
class="breeze-release-management-create-minor-branch-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management create-minor-branch</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -101,9 +107,11 @@
</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="166.4" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-6)">│</text><text
class="breeze-release-management-create-minor-branch-r6" x="24.4" y="166.4"
textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-6)">*</text><text
class="breeze-release-management-create-minor-branch-r4" x="61" y="166.4"
textLength="195.2" clip-path="url(#breeze-release- [...]
</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="190.8" textLength="1464"
clip-path="url(#breeze-release-management-create-minor-branch-line-7)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-create-minor-branch-r1" x="1464" y="190.8"
textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-7)">
</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="215.2" textLength="24.4"
clip-path="url(#breeze-release-management-create-minor-branch-line-8)">╭─</text><text
class="breeze-release-management-create-minor-branch-r5" x="24.4" y="215.2"
textLength="195.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-8)"> Common options </text><text
class="breeze-release-management-create-minor-branch-r5" x="219.6" y="215.2"
textLength="122 [...]
-</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-9)">│</text><text
class="breeze-release-management-create-minor-branch-r4" x="24.4" y="239.6"
textLength="97.6"
clip-path="url(#breeze-release-management-create-minor-branch-line-9)">--answer</text><text
class="breeze-release-management-create-minor-branch-r9" x="146.4" y="239.6"
textLength="24.4" clip-path="url(#breeze [...]
-</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="264" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-10)">│</text><text
class="breeze-release-management-create-minor-branch-r4" x="24.4" y="264"
textLength="73.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-10)">--help</text><text
class="breeze-release-management-create-minor-branch-r9" x="146.4" y="264"
textLength="24.4" clip-path="url(#breeze-relea [...]
-</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="288.4" textLength="1464"
clip-path="url(#breeze-release-management-create-minor-branch-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-create-minor-branch-r1" x="1464" y="288.4"
textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-11)">
+</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-9)">│</text><text
class="breeze-release-management-create-minor-branch-r4" x="24.4" y="239.6"
textLength="97.6"
clip-path="url(#breeze-release-management-create-minor-branch-line-9)">--answer</text><text
class="breeze-release-management-create-minor-branch-r9" x="158.6" y="239.6"
textLength="24.4" clip-path="url(#breeze [...]
+</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="264" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-10)">│</text><text
class="breeze-release-management-create-minor-branch-r4" x="24.4" y="264"
textLength="109.8"
clip-path="url(#breeze-release-management-create-minor-branch-line-10)">--verbose</text><text
class="breeze-release-management-create-minor-branch-r9" x="158.6" y="264"
textLength="24.4" clip-path="url(#breeze-r [...]
+</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-11)">│</text><text
class="breeze-release-management-create-minor-branch-r4" x="24.4" y="288.4"
textLength="109.8"
clip-path="url(#breeze-release-management-create-minor-branch-line-11)">--dry-run</text><text
class="breeze-release-management-create-minor-branch-r9" x="158.6" y="288.4"
textLength="24.4" clip-path="url(#br [...]
+</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-12)">│</text><text
class="breeze-release-management-create-minor-branch-r4" x="24.4" y="312.8"
textLength="73.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-12)">--help</text><text
class="breeze-release-management-create-minor-branch-r9" x="158.6" y="312.8"
textLength="24.4" clip-path="url(#breeze [...]
+</text><text class="breeze-release-management-create-minor-branch-r5" x="0"
y="337.2" textLength="1464"
clip-path="url(#breeze-release-management-create-minor-branch-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-create-minor-branch-r1" x="1464" y="337.2"
textLength="12.2"
clip-path="url(#breeze-release-management-create-minor-branch-line-13)">
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_create-minor-branch.txt
b/dev/breeze/doc/images/output_release-management_create-minor-branch.txt
index ba10a8aae05..52b3e6a8f57 100644
--- a/dev/breeze/doc/images/output_release-management_create-minor-branch.txt
+++ b/dev/breeze/doc/images/output_release-management_create-minor-branch.txt
@@ -1 +1 @@
-5b63e90b9597e5a47cc4fbfa32ab9fbe
+83ae80576428b38723dccf2c385c1407
diff --git
a/dev/breeze/doc/images/output_release-management_generate-providers-metadata.svg
b/dev/breeze/doc/images/output_release-management_generate-providers-metadata.svg
index 08a49800323..9c6a8105daa 100644
---
a/dev/breeze/doc/images/output_release-management_generate-providers-metadata.svg
+++
b/dev/breeze/doc/images/output_release-management_generate-providers-metadata.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 416.0"
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-generate-providers-metadata-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="316.2" />
+ <rect x="0" y="0" width="1463.0" height="365.0" />
</clipPath>
<clipPath
id="breeze-release-management-generate-providers-metadata-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -81,9 +81,15 @@
<clipPath id="breeze-release-management-generate-providers-metadata-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-generate-providers-metadata-line-12">
+ <rect x="0" y="294.3" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-generate-providers-metadata-line-13">
+ <rect x="0" y="318.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="365.2" rx="8"/><text
class="breeze-release-management-generate-providers-metadata-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management generate-providers-metadata</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="414" rx="8"/><text
class="breeze-release-management-generate-providers-metadata-title"
fill="#c5c8c6" text-anchor="middle" x="740"
y="27">Command: release-management generate-providers-metadata</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -104,8 +110,10 @@
</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-8)">│</text><text
class="breeze-release-management-generate-providers-metadata-r6" x="329.4"
y="215.2" textLength="976"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-8)">(3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 | 3.12)&#
[...]
</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="239.6" textLength="1464"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-9)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-generate-providers-metadata-r1" x="1464"
y="239.6" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-metad [...]
</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="264" textLength="24.4"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-10)">╭─</text><text
class="breeze-release-management-generate-providers-metadata-r5" x="24.4"
y="264" textLength="195.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-10)"> Common options </text><text
class="breeze-release-management-generate-providers-metadata-r [...]
-</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-11)">│</text><text
class="breeze-release-management-generate-providers-metadata-r4" x="24.4"
y="288.4" textLength="73.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-11)">--help</text><text
class="breeze-release-management-generate-providers-metadata-r7" x="122"
y="288.4" te [...]
-</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-generate-providers-metadata-r1" x="1464"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-meta [...]
+</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-11)">│</text><text
class="breeze-release-management-generate-providers-metadata-r4" x="24.4"
y="288.4" textLength="109.8"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-11)">--dry-run</text><text
class="breeze-release-management-generate-providers-metadata-r7" x="158.6"
y="288 [...]
+</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-12)">│</text><text
class="breeze-release-management-generate-providers-metadata-r4" x="24.4"
y="312.8" textLength="109.8"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-12)">--verbose</text><text
class="breeze-release-management-generate-providers-metadata-r7" x="158.6"
y="312 [...]
+</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-13)">│</text><text
class="breeze-release-management-generate-providers-metadata-r4" x="24.4"
y="337.2" textLength="73.2"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-13)">--help</text><text
class="breeze-release-management-generate-providers-metadata-r7" x="158.6"
y="337.2" [...]
+</text><text class="breeze-release-management-generate-providers-metadata-r5"
x="0" y="361.6" textLength="1464"
clip-path="url(#breeze-release-management-generate-providers-metadata-line-14)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-generate-providers-metadata-r1" x="1464"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-generate-providers-meta [...]
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_generate-providers-metadata.txt
b/dev/breeze/doc/images/output_release-management_generate-providers-metadata.txt
index a7a955ae179..8d686a6b365 100644
---
a/dev/breeze/doc/images/output_release-management_generate-providers-metadata.txt
+++
b/dev/breeze/doc/images/output_release-management_generate-providers-metadata.txt
@@ -1 +1 @@
-1677df1d9992caf2709c5fa9cd4668b2
+572b36905a967caed880209b60618ede
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 7d39409c81b..67c814251aa 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 318.4"
xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 367.2"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -45,7 +45,7 @@
<defs>
<clipPath
id="breeze-release-management-prepare-airflow-tarball-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="267.4" />
+ <rect x="0" y="0" width="1463.0" height="316.2" />
</clipPath>
<clipPath id="breeze-release-management-prepare-airflow-tarball-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -77,9 +77,15 @@
<clipPath id="breeze-release-management-prepare-airflow-tarball-line-9">
<rect x="0" y="221.1" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-prepare-airflow-tarball-line-10">
+ <rect x="0" y="245.5" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-prepare-airflow-tarball-line-11">
+ <rect x="0" y="269.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="316.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>
+ <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>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -98,8 +104,10 @@
</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="73.2"
clip-path="url(#breeze-release-management-prepare-airflow-tarball-line-9)">--help</text><text
class="breeze-release-management-prepare-airflow-tarball-r9" x="122" y="239.6"
textLength="24.4" clip-p [...]
-</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="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>
</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 12bc4ebe940..19b5526b1c6 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 @@
-7cf8b45e0b23837e8bf99d5a4907d48c
+f98358d95810966a00142a5e654c7909
diff --git
a/dev/breeze/doc/images/output_release-management_start-rc-process.svg
b/dev/breeze/doc/images/output_release-management_start-rc-process.svg
index b0d93b28c1c..cd966701475 100644
--- a/dev/breeze/doc/images/output_release-management_start-rc-process.svg
+++ b/dev/breeze/doc/images/output_release-management_start-rc-process.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 391.59999999999997"
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>
@@ -45,7 +45,7 @@
<defs>
<clipPath id="breeze-release-management-start-rc-process-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="340.59999999999997" />
+ <rect x="0" y="0" width="1463.0" height="389.4" />
</clipPath>
<clipPath id="breeze-release-management-start-rc-process-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -86,9 +86,15 @@
<clipPath id="breeze-release-management-start-rc-process-line-12">
<rect x="0" y="294.3" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-start-rc-process-line-13">
+ <rect x="0" y="318.7" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-start-rc-process-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="389.6" rx="8"/><text
class="breeze-release-management-start-rc-process-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management start-rc-process</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-start-rc-process-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management start-rc-process</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -109,9 +115,11 @@
</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="215.2" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-8)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="61" y="215.2"
textLength="170.8"
clip-path="url(#breeze-release-management-start-rc-process-line-8)">--github-token</text><text
class="breeze-release-management-start-rc-process-r1" x="329.4" y="215.2"
textLength="878.4" clip-path="url(#breeze-release- [...]
</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="239.6" textLength="1464"
clip-path="url(#breeze-release-management-start-rc-process-line-9)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-start-rc-process-r1" x="1464" y="239.6"
textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-9)">
</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="264" textLength="24.4"
clip-path="url(#breeze-release-management-start-rc-process-line-10)">╭─</text><text
class="breeze-release-management-start-rc-process-r5" x="24.4" y="264"
textLength="195.2"
clip-path="url(#breeze-release-management-start-rc-process-line-10)"> Common options </text><text
class="breeze-release-management-start-rc-process-r5" x="219.6" y="264"
textLength="1220" clip-path="url(# [...]
-</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-11)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="24.4" y="288.4"
textLength="97.6"
clip-path="url(#breeze-release-management-start-rc-process-line-11)">--answer</text><text
class="breeze-release-management-start-rc-process-r9" x="146.4" y="288.4"
textLength="24.4" clip-path="url(#breeze-release-mana [...]
-</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-12)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="24.4" y="312.8"
textLength="73.2"
clip-path="url(#breeze-release-management-start-rc-process-line-12)">--help</text><text
class="breeze-release-management-start-rc-process-r9" x="146.4" y="312.8"
textLength="24.4" clip-path="url(#breeze-release-manage [...]
-</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="337.2" textLength="1464"
clip-path="url(#breeze-release-management-start-rc-process-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-start-rc-process-r1" x="1464" y="337.2"
textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-13)">
+</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-11)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="24.4" y="288.4"
textLength="97.6"
clip-path="url(#breeze-release-management-start-rc-process-line-11)">--answer</text><text
class="breeze-release-management-start-rc-process-r9" x="158.6" y="288.4"
textLength="24.4" clip-path="url(#breeze-release-mana [...]
+</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-12)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="24.4" y="312.8"
textLength="109.8"
clip-path="url(#breeze-release-management-start-rc-process-line-12)">--dry-run</text><text
class="breeze-release-management-start-rc-process-r9" x="158.6" y="312.8"
textLength="24.4" clip-path="url(#breeze-release-ma [...]
+</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-13)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="24.4" y="337.2"
textLength="109.8"
clip-path="url(#breeze-release-management-start-rc-process-line-13)">--verbose</text><text
class="breeze-release-management-start-rc-process-r9" x="158.6" y="337.2"
textLength="24.4" clip-path="url(#breeze-release-ma [...]
+</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="361.6" textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-14)">│</text><text
class="breeze-release-management-start-rc-process-r4" x="24.4" y="361.6"
textLength="73.2"
clip-path="url(#breeze-release-management-start-rc-process-line-14)">--help</text><text
class="breeze-release-management-start-rc-process-r9" x="158.6" y="361.6"
textLength="24.4" clip-path="url(#breeze-release-manage [...]
+</text><text class="breeze-release-management-start-rc-process-r5" x="0"
y="386" textLength="1464"
clip-path="url(#breeze-release-management-start-rc-process-line-15)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-start-rc-process-r1" x="1464" y="386"
textLength="12.2"
clip-path="url(#breeze-release-management-start-rc-process-line-15)">
</text>
</g>
</g>
diff --git
a/dev/breeze/doc/images/output_release-management_start-rc-process.txt
b/dev/breeze/doc/images/output_release-management_start-rc-process.txt
index dfc14f293dd..b3b458160d9 100644
--- a/dev/breeze/doc/images/output_release-management_start-rc-process.txt
+++ b/dev/breeze/doc/images/output_release-management_start-rc-process.txt
@@ -1 +1 @@
-e75bc9b0750c67b82bb1cf41b6cb0ccd
+e213b793839b778288f40a3af9e076f6
diff --git a/dev/breeze/doc/images/output_release-management_start-release.svg
b/dev/breeze/doc/images/output_release-management_start-release.svg
index d5efa8eb37e..91411fe496c 100644
--- a/dev/breeze/doc/images/output_release-management_start-release.svg
+++ b/dev/breeze/doc/images/output_release-management_start-release.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 416.0"
xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -45,7 +45,7 @@
<defs>
<clipPath id="breeze-release-management-start-release-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="316.2" />
+ <rect x="0" y="0" width="1463.0" height="365.0" />
</clipPath>
<clipPath id="breeze-release-management-start-release-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -83,9 +83,15 @@
<clipPath id="breeze-release-management-start-release-line-11">
<rect x="0" y="269.9" width="1464" height="24.65"/>
</clipPath>
+<clipPath id="breeze-release-management-start-release-line-12">
+ <rect x="0" y="294.3" width="1464" height="24.65"/>
+ </clipPath>
+<clipPath id="breeze-release-management-start-release-line-13">
+ <rect x="0" y="318.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="365.2" rx="8"/><text
class="breeze-release-management-start-release-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management start-release</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1"
x="1" y="1" width="1480" height="414" rx="8"/><text
class="breeze-release-management-start-release-title" fill="#c5c8c6"
text-anchor="middle" x="740"
y="27">Command: release-management start-release</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -105,9 +111,11 @@
</text><text class="breeze-release-management-start-release-r5" x="0"
y="190.8" textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-7)">│</text><text
class="breeze-release-management-start-release-r6" x="24.4" y="190.8"
textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-7)">*</text><text
class="breeze-release-management-start-release-r4" x="61" y="190.8"
textLength="219.6"
clip-path="url(#breeze-release-management-start-release-line- [...]
</text><text class="breeze-release-management-start-release-r5" x="0"
y="215.2" textLength="1464"
clip-path="url(#breeze-release-management-start-release-line-8)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-start-release-r1" x="1464" y="215.2"
textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-8)">
</text><text class="breeze-release-management-start-release-r5" x="0"
y="239.6" textLength="24.4"
clip-path="url(#breeze-release-management-start-release-line-9)">╭─</text><text
class="breeze-release-management-start-release-r5" x="24.4" y="239.6"
textLength="195.2"
clip-path="url(#breeze-release-management-start-release-line-9)"> Common options </text><text
class="breeze-release-management-start-release-r5" x="219.6" y="239.6"
textLength="1220" clip-path="url(#breeze-rele [...]
-</text><text class="breeze-release-management-start-release-r5" x="0" y="264"
textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-10)">│</text><text
class="breeze-release-management-start-release-r4" x="24.4" y="264"
textLength="97.6"
clip-path="url(#breeze-release-management-start-release-line-10)">--answer</text><text
class="breeze-release-management-start-release-r9" x="146.4" y="264"
textLength="24.4" clip-path="url(#breeze-release-management-start-release- [...]
-</text><text class="breeze-release-management-start-release-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-11)">│</text><text
class="breeze-release-management-start-release-r4" x="24.4" y="288.4"
textLength="73.2"
clip-path="url(#breeze-release-management-start-release-line-11)">--help</text><text
class="breeze-release-management-start-release-r9" x="146.4" y="288.4"
textLength="24.4" clip-path="url(#breeze-release-management-start-rele [...]
-</text><text class="breeze-release-management-start-release-r5" x="0"
y="312.8" textLength="1464"
clip-path="url(#breeze-release-management-start-release-line-12)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-start-release-r1" x="1464" y="312.8"
textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-12)">
+</text><text class="breeze-release-management-start-release-r5" x="0" y="264"
textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-10)">│</text><text
class="breeze-release-management-start-release-r4" x="24.4" y="264"
textLength="97.6"
clip-path="url(#breeze-release-management-start-release-line-10)">--answer</text><text
class="breeze-release-management-start-release-r9" x="158.6" y="264"
textLength="24.4" clip-path="url(#breeze-release-management-start-release- [...]
+</text><text class="breeze-release-management-start-release-r5" x="0"
y="288.4" textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-11)">│</text><text
class="breeze-release-management-start-release-r4" x="24.4" y="288.4"
textLength="109.8"
clip-path="url(#breeze-release-management-start-release-line-11)">--dry-run</text><text
class="breeze-release-management-start-release-r9" x="158.6" y="288.4"
textLength="24.4" clip-path="url(#breeze-release-management-start- [...]
+</text><text class="breeze-release-management-start-release-r5" x="0"
y="312.8" textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-12)">│</text><text
class="breeze-release-management-start-release-r4" x="24.4" y="312.8"
textLength="109.8"
clip-path="url(#breeze-release-management-start-release-line-12)">--verbose</text><text
class="breeze-release-management-start-release-r9" x="158.6" y="312.8"
textLength="24.4" clip-path="url(#breeze-release-management-start- [...]
+</text><text class="breeze-release-management-start-release-r5" x="0"
y="337.2" textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-13)">│</text><text
class="breeze-release-management-start-release-r4" x="24.4" y="337.2"
textLength="73.2"
clip-path="url(#breeze-release-management-start-release-line-13)">--help</text><text
class="breeze-release-management-start-release-r9" x="158.6" y="337.2"
textLength="24.4" clip-path="url(#breeze-release-management-start-rele [...]
+</text><text class="breeze-release-management-start-release-r5" x="0"
y="361.6" textLength="1464"
clip-path="url(#breeze-release-management-start-release-line-14)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text
class="breeze-release-management-start-release-r1" x="1464" y="361.6"
textLength="12.2"
clip-path="url(#breeze-release-management-start-release-line-14)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_release-management_start-release.txt
b/dev/breeze/doc/images/output_release-management_start-release.txt
index 156ac248a84..98156901ab4 100644
--- a/dev/breeze/doc/images/output_release-management_start-release.txt
+++ b/dev/breeze/doc/images/output_release-management_start-release.txt
@@ -1 +1 @@
-495a5e3d024bc6039290d9f4528a3ca4
+d84c6e5a6fcab35c07287bc4d2d65841
diff --git a/dev/breeze/src/airflow_breeze/commands/minor_release_command.py
b/dev/breeze/src/airflow_breeze/commands/minor_release_command.py
index c55a9581bbe..edacafdcd7a 100644
--- a/dev/breeze/src/airflow_breeze/commands/minor_release_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/minor_release_command.py
@@ -21,28 +21,18 @@ import sys
import click
-from airflow_breeze.commands.common_options import option_answer
+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.utils.confirm import confirm_action
from airflow_breeze.utils.console import console_print
from airflow_breeze.utils.path_utils import AIRFLOW_ROOT_PATH
from airflow_breeze.utils.run_utils import run_command
-CI = os.environ.get("CI")
-DRY_RUN = True if CI else False
-
def create_branch(version_branch):
if confirm_action(f"Create version branch: {version_branch}?"):
- if DRY_RUN:
- console_print("Skipping below command on CI")
-
- run_command(["git", "checkout", "main"], dry_run_override=DRY_RUN,
check=True)
- if DRY_RUN:
- console_print("Skipping below command on CI")
- run_command(
- ["git", "checkout", "-b", f"v{version_branch}-test"],
dry_run_override=DRY_RUN, check=True
- )
+ run_command(["git", "checkout", "main"], check=True)
+ run_command(["git", "checkout", "-b", f"v{version_branch}-test"],
check=True)
console_print(f"Created branch: v{version_branch}-test")
@@ -63,25 +53,16 @@ def update_default_branch(version_branch):
def commit_changes(version_branch):
if confirm_action("Commit the above changes?"):
- if DRY_RUN:
- console_print("Skipping below command on CI")
- run_command(["git", "add", "-p", "."], dry_run_override=DRY_RUN,
check=True)
- if DRY_RUN:
- console_print("Skipping below command on CI")
+ run_command(["git", "add", "-p", "."], check=True)
run_command(
["git", "commit", "-m", f"Update default branches for
{version_branch}", "--no-verify"],
- dry_run_override=DRY_RUN,
check=True,
)
def create_stable_branch(version_branch):
if confirm_action(f"Create stable branch: v{version_branch}-stable?"):
- if DRY_RUN:
- console_print("Skipping below command on CI")
- run_command(
- ["git", "checkout", "-b", f"v{version_branch}-stable"],
dry_run_override=DRY_RUN, check=True
- )
+ run_command(["git", "checkout", "-b", f"v{version_branch}-stable"],
check=True)
console_print(f"Created branch: v{version_branch}-stable")
else:
run_command(["git", "checkout", f"v{version_branch}-stable"],
check=True)
@@ -89,45 +70,27 @@ def create_stable_branch(version_branch):
def push_test_and_stable_branch(version_branch):
if confirm_action("Push test and stable branches?"):
- if DRY_RUN:
- console_print("Skipping below command on CI")
-
- run_command(["git", "checkout", f"v{version_branch}-test"],
dry_run_override=DRY_RUN, check=True)
- if DRY_RUN:
- console_print("Skipping below command on CI")
run_command(
+ ["git", "checkout", f"v{version_branch}-test"],
["git", "push", "--set-upstream", "origin",
f"v{version_branch}-test"],
- dry_run_override=DRY_RUN,
check=True,
)
- if DRY_RUN:
- console_print("Skipping below command on CI")
-
- run_command(["git", "checkout", f"v{version_branch}-stable"],
dry_run_override=DRY_RUN, check=True)
- if DRY_RUN:
- console_print("Skipping below command on CI")
+ run_command(["git", "checkout", f"v{version_branch}-stable"],
check=True)
run_command(
["git", "push", "--set-upstream", "origin",
f"v{version_branch}-stable"],
- dry_run_override=DRY_RUN,
check=True,
)
def checkout_main():
if confirm_action("We now need to checkout main. Continue?"):
- if DRY_RUN:
- console_print("Skipping below command on CI")
- result = run_command(
- ["git", "checkout", "main"], dry_run_override=DRY_RUN,
check=False, capture_output=True
- )
+ result = run_command(["git", "checkout", "main"], check=False,
capture_output=True)
if result.returncode != 0:
console_print("[error]Failed to checkout main.[/]")
console_print(result.stdout)
console_print(result.stderr)
sys.exit(1)
- if DRY_RUN:
- console_print("Skipping below command on CI")
- result = run_command(["git", "pull"], dry_run_override=DRY_RUN,
capture_output=True, check=False)
+ result = run_command(["git", "pull"], capture_output=True, check=False)
if result.returncode != 0:
console_print("[error]Failed to pull repo.[/]")
console_print(result.stdout)
@@ -175,17 +138,12 @@ def instruction_update_version_branch(version_branch):
def create_constraints(version_branch):
if confirm_action("Do you want to create branches from the constraints
main?"):
- if DRY_RUN:
- console_print("Skipping below 4 commands on CI")
- run_command(["git", "checkout", "constraints-main"],
dry_run_override=DRY_RUN, check=True)
- run_command(["git", "pull", "origin", "constraints-main"],
dry_run_override=DRY_RUN, check=True)
- run_command(
- ["git", "checkout", "-b", f"constraints-{version_branch}"],
dry_run_override=DRY_RUN, check=True
- )
+ run_command(["git", "checkout", "constraints-main"], check=True)
+ run_command(["git", "pull", "origin", "constraints-main"], check=True)
+ run_command(["git", "checkout", "-b",
f"constraints-{version_branch}"], check=True)
if confirm_action("Push the new branch?"):
run_command(
["git", "push", "--set-upstream", "origin",
f"constraints-{version_branch}"],
- dry_run_override=DRY_RUN,
check=True,
)
@@ -196,6 +154,8 @@ def create_constraints(version_branch):
)
@click.option("--version-branch", help="The version branch you want to create
e.g 2-4", required=True)
@option_answer
+@option_verbose
+@option_dry_run
def create_minor_version_branch(version_branch):
for obj in version_branch.split("-"):
if not obj.isdigit():
@@ -225,9 +185,7 @@ def create_minor_version_branch(version_branch):
create_branch(version_branch)
# Build ci image
if confirm_action("Build latest breeze image?"):
- if DRY_RUN:
- console_print("Skipping below command on CI")
- run_command(["breeze", "ci-image", "build", "--python", "3.9"],
dry_run_override=DRY_RUN, check=True)
+ run_command(["breeze", "ci-image", "build", "--python", "3.9"],
check=True)
# Update default branches
update_default_branch(version_branch)
# Commit changes
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 e52e4b06d2a..fb78d3b8e36 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
@@ -22,16 +22,14 @@ from pathlib import Path
import click
-from airflow_breeze.commands.common_options import option_answer
+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.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.reproducible import get_source_date_epoch,
repack_deterministically
from airflow_breeze.utils.run_utils import run_command
-
-CI = os.environ.get("CI")
-RUNNING_IN_CI = True if CI else False
+from airflow_breeze.utils.shared_options import get_dry_run
def merge_pr(version_branch):
@@ -42,47 +40,36 @@ def merge_pr(version_branch):
"checkout",
f"v{version_branch}-stable",
],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
run_command(
["git", "reset", "--hard", f"origin/v{version_branch}-stable"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
run_command(
["git", "merge", "--ff-only", f"v{version_branch}-test"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
if confirm_action("Do you want to push the changes? Pushing the
changes closes the PR"):
run_command(
["git", "push", "origin", f"v{version_branch}-stable"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
def git_tag(version):
if confirm_action(f"Tag {version}?"):
- if RUNNING_IN_CI:
- # override tags when running in CI
- run_command(
- ["git", "tag", "-f", f"{version}", "-m", f"Apache Airflow
{version}"],
- check=True,
- )
- else:
- run_command(
- ["git", "tag", "-s", f"{version}", "-m", f"Apache Airflow
{version}"],
- check=True,
- )
+ run_command(
+ ["git", "tag", "-s", f"{version}", "-m", f"Apache Airflow
{version}"],
+ check=True,
+ )
console_print("[success]Tagged")
def git_clean():
if confirm_action("Clean git repo?"):
- run_command(["breeze", "ci", "fix-ownership"],
dry_run_override=RUNNING_IN_CI, check=True)
- run_command(["git", "clean", "-fxd"], dry_run_override=RUNNING_IN_CI,
check=True)
+ run_command(["breeze", "ci", "fix-ownership"], check=True)
+ run_command(["git", "clean", "-fxd"], check=True)
console_print("[success]Git repo cleaned")
@@ -156,7 +143,7 @@ def create_artifacts_with_docker():
def sign_the_release(repo_root):
if confirm_action("Do you want to sign the release?"):
os.chdir(f"{repo_root}/dist")
- run_command("./../dev/sign.sh *", dry_run_override=RUNNING_IN_CI,
check=True, shell=True)
+ run_command("./../dev/sign.sh *", check=True, shell=True)
console_print("[success]Release signed")
@@ -164,7 +151,6 @@ def tag_and_push_constraints(version, version_branch):
if confirm_action("Do you want to tag and push constraints?"):
run_command(
["git", "checkout", f"origin/constraints-{version_branch}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
run_command(
@@ -176,12 +162,10 @@ def tag_and_push_constraints(version, version_branch):
"-m",
f"Constraints for Apache Airflow {version}",
],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
run_command(
["git", "push", "origin", "tag", f"constraints-{version}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
console_print("[success]Constraints tagged and pushed")
@@ -193,33 +177,35 @@ def clone_asf_repo(version, repo_root):
run_command(
["svn", "checkout", "--depth=immediates",
"https://dist.apache.org/repos/dist", "asf-dist"],
check=True,
+ dry_run_override=False,
+ )
+ run_command(
+ ["svn", "update", "--set-depth=infinity", "asf-dist/dev/airflow"],
+ check=True,
+ dry_run_override=False,
)
- run_command(["svn", "update", "--set-depth=infinity",
"asf-dist/dev/airflow"], check=True)
console_print("[success]Cloned ASF repo successfully")
def move_artifacts_to_svn(version, repo_root):
if confirm_action("Do you want to move artifacts to SVN?"):
os.chdir(f"{repo_root}/asf-dist/dev/airflow")
- run_command(["svn", "mkdir", f"{version}"],
dry_run_override=RUNNING_IN_CI, check=True)
- run_command(
- f"mv {repo_root}/dist/* {version}/",
dry_run_override=RUNNING_IN_CI, check=True, shell=True
- )
+ run_command(["svn", "mkdir", f"{version}"], check=True)
+ run_command(f"mv {repo_root}/dist/* {version}/", check=True,
shell=True)
console_print("[success]Moved artifacts to SVN:")
- run_command(["ls"], dry_run_override=RUNNING_IN_CI)
+ run_command(["ls"])
def push_artifacts_to_asf_repo(version, repo_root):
if confirm_action("Do you want to push artifacts to ASF repo?"):
console_print("Files to push to svn:")
- if not RUNNING_IN_CI:
+ if not get_dry_run():
os.chdir(f"{repo_root}/asf-dist/dev/airflow/{version}")
- run_command(["ls"], dry_run_override=RUNNING_IN_CI)
+ run_command(["ls"])
confirm_action("Do you want to continue?", abort=True)
- run_command("svn add *", dry_run_override=RUNNING_IN_CI, check=True,
shell=True)
+ run_command("svn add *", check=True, shell=True)
run_command(
["svn", "commit", "-m", f"Add artifacts for Airflow {version}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
console_print("[success]Files pushed to svn")
@@ -231,14 +217,14 @@ def push_artifacts_to_asf_repo(version, repo_root):
def delete_asf_repo(repo_root):
os.chdir(repo_root)
if confirm_action("Do you want to remove the cloned asf repo?"):
- run_command(["rm", "-rf", "asf-dist"], dry_run_override=RUNNING_IN_CI,
check=True)
+ run_command(["rm", "-rf", "asf-dist"], check=True)
def prepare_pypi_packages(version, version_suffix, repo_root):
if confirm_action("Prepare pypi packages?"):
console_print("[info]Preparing PyPI packages")
os.chdir(repo_root)
- run_command(["git", "checkout", f"{version}"],
dry_run_override=RUNNING_IN_CI, check=True)
+ run_command(["git", "checkout", f"{version}"], check=True)
run_command(
[
"breeze",
@@ -261,7 +247,7 @@ def prepare_pypi_packages(version, version_suffix,
repo_root):
def push_packages_to_pypi(version):
if confirm_action("Do you want to push packages to production PyPI?"):
- run_command(["twine", "upload", "-r", "pypi", "dist/*"],
dry_run_override=RUNNING_IN_CI, check=True)
+ run_command(["twine", "upload", "-r", "pypi", "dist/*"], check=True)
console_print("[success]Packages pushed to production PyPI")
console_print(
"Again, confirm that the package is available here:
https://pypi.python.org/pypi/apache-airflow"
@@ -297,9 +283,7 @@ def push_release_candidate_tag_to_github(version):
"""
)
confirm_action(f"Confirm that {version} is pushed to PyPI(not PyPI
test). Is it pushed?", abort=True)
- run_command(
- ["git", "push", "origin", "tag", f"{version}"],
dry_run_override=RUNNING_IN_CI, check=True
- )
+ run_command(["git", "push", "origin", "tag", f"{version}"], check=True)
console_print("[success]Release candidate tag pushed to GitHub")
@@ -322,10 +306,9 @@ def remove_old_releases(version, repo_root):
for old_release in old_releases:
if confirm_action(f"Remove old RC {old_release}?"):
- run_command(["svn", "rm", old_release],
dry_run_override=RUNNING_IN_CI, check=True)
+ run_command(["svn", "rm", old_release], check=True)
run_command(
["svn", "commit", "-m", f"Remove old release: {old_release}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
console_print("[success]Old releases removed")
@@ -339,6 +322,8 @@ def remove_old_releases(version, repo_root):
@click.option(
"--version", required=True, help="The release candidate version e.g.
2.4.3rc1", envvar="VERSION"
)
+@option_dry_run
+@option_verbose
def prepare_airflow_tarball(version: str):
from packaging.version import Version
@@ -364,6 +349,8 @@ def prepare_airflow_tarball(version: str):
"--github-token", help="GitHub token to use in generating issue for
testing of release candidate"
)
@option_answer
+@option_dry_run
+@option_verbose
def publish_release_candidate(version, previous_version, github_token):
from packaging.version import Version
@@ -394,7 +381,7 @@ def publish_release_candidate(version, previous_version,
github_token):
console_print(f"airflow_repo_root: {airflow_repo_root}")
console_print()
console_print("Below are your git remotes. We will push to origin:")
- run_command(["git", "remote", "-v"], dry_run_override=RUNNING_IN_CI)
+ run_command(["git", "remote", "-v"])
console_print()
confirm_action("Verify that the above information is correct. Do you want
to continue?", abort=True)
# Final confirmation
diff --git a/dev/breeze/src/airflow_breeze/commands/release_command.py
b/dev/breeze/src/airflow_breeze/commands/release_command.py
index 5ec422c79d0..5d8d45938c3 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_command.py
@@ -20,16 +20,13 @@ import os
import click
-from airflow_breeze.commands.common_options import option_answer
+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.utils.confirm import confirm_action
from airflow_breeze.utils.console import console_print
from airflow_breeze.utils.path_utils import AIRFLOW_ROOT_PATH
from airflow_breeze.utils.run_utils import run_command
-CI = os.environ.get("CI")
-RUNNING_IN_CI = True if CI else False
-
def clone_asf_repo(working_dir):
if confirm_action("Clone ASF repo?"):
@@ -37,16 +34,19 @@ def clone_asf_repo(working_dir):
run_command(
["svn", "checkout", "--depth=immediates",
"https://dist.apache.org/repos/dist", "asf-dist"],
check=True,
+ dry_run_override=False,
)
dev_dir = f"{working_dir}/asf-dist/dev/airflow"
release_dir = f"{working_dir}/asf-dist/release/airflow"
- run_command(["svn", "update", "--set-depth", "infinity", dev_dir],
check=True)
- run_command(["svn", "update", "--set-depth", "infinity", release_dir],
check=True)
+ run_command(["svn", "update", "--set-depth", "infinity", dev_dir],
dry_run_override=False, check=True)
+ run_command(
+ ["svn", "update", "--set-depth", "infinity", release_dir],
dry_run_override=False, check=True
+ )
def create_version_dir(version):
if confirm_action(f"Create SVN version directory for {version}?"):
- run_command(["svn", "mkdir", f"{version}"],
dry_run_override=RUNNING_IN_CI, check=True)
+ run_command(["svn", "mkdir", f"{version}"], check=True)
console_print(f"{version} directory created")
@@ -64,28 +64,25 @@ def copy_artifacts_to_svn(rc, svn_dev_repo):
"-c",
bash_command,
],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
console_print("Artifacts copied to SVN:")
- run_command(["ls"], dry_run_override=RUNNING_IN_CI)
+ run_command(["ls"])
def commit_release(version, rc, svn_release_version_dir):
if confirm_action(f"Commit release {version} to SVN?"):
run_command(
["svn", "commit", "-m", f"Release Airflow {version} from {rc}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
def remove_old_release(previous_release):
if confirm_action(f"Remove old release {previous_release}?"):
- run_command(["svn", "rm", f"{previous_release}"],
dry_run_override=RUNNING_IN_CI, check=True)
+ run_command(["svn", "rm", f"{previous_release}"], check=True)
run_command(
["svn", "commit", "-m", f"Remove old release: {previous_release}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
confirm_action(
@@ -97,16 +94,13 @@ def remove_old_release(previous_release):
def verify_pypi_package(version):
if confirm_action("Verify PyPI package?"):
- run_command(
- ["twine", "check", "*.whl", f"*{version}.tar.gz"],
dry_run_override=RUNNING_IN_CI, check=True
- )
+ run_command(["twine", "check", "*.whl", f"*{version}.tar.gz"],
check=True)
def upload_to_pypi(version):
if confirm_action("Upload to PyPI?"):
run_command(
["twine", "upload", "-r", "pypi", "*.whl", f"*{version}.tar.gz"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
console_print("Packages pushed to production PyPI")
@@ -121,7 +115,6 @@ def retag_constraints(release_candidate, version):
if confirm_action(f"Retag constraints for {release_candidate} as
{version}?"):
run_command(
["git", "checkout", f"constraints-{release_candidate}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
run_command(
@@ -133,13 +126,11 @@ def retag_constraints(release_candidate, version):
"-m",
f"Constraints for Apache Airflow {version}",
],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
if confirm_action(f"Push contraints-{version} tag to GitHub?"):
run_command(
["git", "push", "origin", "tag", f"constraints-{version}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
@@ -157,13 +148,11 @@ def tag_and_push_latest_constraint(version):
"-m",
f"Latest constraints set to Apache Airflow {version}",
],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
if confirm_action("Push latest constraints tag to GitHub?"):
run_command(
["git", "push", "origin", "tag", "-f", "constraints-latest"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
@@ -179,15 +168,12 @@ def push_tag_for_final_version(version,
release_candidate):
)
confirm_action(f"Confirm that {version} is pushed to PyPI(not PyPI
test). Is it pushed?", abort=True)
- run_command(["git", "checkout", f"{release_candidate}"],
dry_run_override=RUNNING_IN_CI, check=True)
+ run_command(["git", "checkout", f"{release_candidate}"], check=True)
run_command(
["git", "tag", "-s", f"{version}", "-m", f"Apache Airflow
{version}"],
- dry_run_override=RUNNING_IN_CI,
check=True,
)
- run_command(
- ["git", "push", "origin", "tag", f"{version}"],
dry_run_override=RUNNING_IN_CI, check=True
- )
+ run_command(["git", "push", "origin", "tag", f"{version}"], check=True)
@release_management.command(
@@ -199,6 +185,8 @@ def push_tag_for_final_version(version, release_candidate):
@click.option("--release-candidate", required=True)
@click.option("--previous-release", required=True)
@option_answer
+@option_dry_run
+@option_verbose
def airflow_release(release_candidate, previous_release):
if "rc" not in release_candidate:
exit("Release candidate must contain 'rc'")
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 1e2ae72d1ca..78c6fd6c199 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -2851,6 +2851,8 @@ def load_constraints(python_version: str) -> dict[str,
dict[str, str]]:
help="Refresh constraints before generating metadata",
)
@option_historical_python_version
+@option_dry_run
+@option_verbose
def generate_providers_metadata(refresh_constraints: bool, python: str | None):
metadata_dict: dict[str, dict[str, dict[str, str]]] = {}
if python is None:
diff --git a/dev/breeze/src/airflow_breeze/utils/ci_group.py
b/dev/breeze/src/airflow_breeze/utils/ci_group.py
index b8efb915d5e..82b2b020f69 100644
--- a/dev/breeze/src/airflow_breeze/utils/ci_group.py
+++ b/dev/breeze/src/airflow_breeze/utils/ci_group.py
@@ -30,6 +30,13 @@ if TYPE_CHECKING:
_in_ci_group = False
+def in_github_actions() -> bool:
+ """
+ Check if the code is running in GitHub Actions.
+ """
+ return os.environ.get("GITHUB_ACTIONS", "false") == "true"
+
+
@contextmanager
def ci_group(
title: str,
@@ -48,7 +55,7 @@ def ci_group(
if _in_ci_group or skip_group_output():
yield
return
- if os.environ.get("GITHUB_ACTIONS", "false") != "true":
+ if not in_github_actions():
if not skip_printing_title:
if message_type is not None:
get_console(output=output).print(f"\n[{message_type.value}]{title}\n")