Skip to content

Commit 0bde580

Browse files
committed
Add start-beta-process command to cut beta pre-releases
Betas are cut from vX-Y-test only: there is no vX-Y-stable branch yet and no sync PR (a sync PR exists only to carry changes from vX-Y-test into vX-Y-stable for an rc or final), and there is no vote. start-rc-process requires the stable branch and a sync branch, so a beta had to be cut by hand. A dedicated command keeps start-rc-process untouched and models the real beta flow: tag the vX-Y-test tip (the version-bump and release-notes commits are pushed there beforehand through normal PRs) and tag the constraints at the constraints-X-Y branch tip rather than running the release-constraints workflow, which a beta's resolution does not need.
1 parent ef9feef commit 0bde580

13 files changed

Lines changed: 607 additions & 112 deletions

‎dev/README_RELEASE_AIRFLOW.md‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,32 @@ moves `vX-Y-test` forward to the current `main` - only the branch-specific commi
114114
`Update default branches for X.Y`) are kept on top of `main`. Each beta is cut from the branch
115115
in that state, so everything merged to `main` lands in the next beta.
116116

117+
### Cutting a beta
118+
119+
A beta is cut with `breeze release-management start-beta-process`, not `start-rc-process`. A beta is
120+
released from `vX-Y-test` only: there is no `vX-Y-stable` branch yet and therefore no sync PR (a sync
121+
PR exists only to carry changes from `vX-Y-test` into `vX-Y-stable` for an `rc`/final), and there is
122+
no vote.
123+
124+
1. Push the version-bump and release-notes commits to `vX-Y-test` through normal PRs, so the tip of
125+
`vX-Y-test` is exactly what the beta should ship.
126+
2. Refresh the constraints: run the `Refresh constraints` workflow from `main` with `ref=vX-Y-test`,
127+
which rewrites `constraints-X-Y` from that ref's sources. A beta pins providers at their released
128+
versions (there is no provider wave on PyPI yet), so this tip is what the beta ships.
129+
3. Run:
130+
131+
```shell script
132+
breeze release-management start-beta-process \
133+
--version ${VERSION} \
134+
--previous-version ${PREVIOUS_VERSION} \
135+
--task-sdk-version ${TASK_SDK_VERSION}
136+
```
137+
138+
It validates that `vX-Y-test` exists, checks out its tip, tags the beta there, builds and signs
139+
the artifacts, tags `constraints-X.Y.0bN` at the `constraints-X-Y` tip (no `release-constraints`
140+
workflow), uploads to SVN dev and PyPI, and pushes the tags. Everything downstream of the tag is
141+
the same as an `rc`; only the branch/sync/constraints/vote handling differs.
142+
117143
During this phase, all automation that would add commits directly to `vX-Y-test` must be paused -
118144
any such commit makes `vX-Y-test` diverge from `main` and breaks the next fast-forward. Upgrades and
119145
fixes land on `main` only and reach `vX-Y-test` with the next fast-forward. When you add the new

‎dev/breeze/doc/09_release_management_tasks.rst‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,20 @@ automates it.
176176
:alt: Breeze release-management create-minor-branch
177177

178178

179+
Start beta process
180+
""""""""""""""""""
181+
182+
When we prepare a beta pre-release, we automate some of the steps we need to do.
183+
184+
.. code-block:: bash
185+
186+
breeze release-management start-beta-process
187+
188+
.. image:: ./images/output_release-management_start-beta-process.svg
189+
:target: https://raw.githubusercontent.com/apache/airflow/main/dev/breeze/doc/images/output_release-management_start-beta-process.svg
190+
:width: 100%
191+
:alt: Breeze release-management start-beta-process
192+
179193
Start release candidate process
180194
"""""""""""""""""""""""""""""""
181195

‎dev/breeze/doc/images/output_release-management.svg‎

Lines changed: 62 additions & 58 deletions
Loading
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
016eb82c476bc36ac2bcb754d3e87919
1+
186f43f8d9e9e522daa2e16d537a46d3

‎dev/breeze/doc/images/output_release-management_start-beta-process.svg‎

Lines changed: 146 additions & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
571d4a7aa1b635323255d4bfe243d344

‎dev/breeze/doc/images/output_setup_check-all-params-in-groups.svg‎

Lines changed: 26 additions & 22 deletions
Loading
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
071569892714c5561156e19cdaa04041
1+
cd743de2ac920faaec5a33b506ede093

‎dev/breeze/doc/images/output_setup_regenerate-command-images.svg‎

Lines changed: 30 additions & 26 deletions
Loading
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
57d31722815e46eeb1cdf1b92d5a87b1
1+
b34bcd0ca3348d1279d48f96682a25e5

0 commit comments

Comments
 (0)