Skip to content

Add start-beta-process command to cut beta pre-releases - #74464

Open
vatsrahul1001 wants to merge 1 commit into
mainfrom
beta-aware-start-rc-process
Open

vatsrahul1001 wants to merge 1 commit into
mainfrom
beta-aware-start-rc-process

Conversation

@vatsrahul1001

@vatsrahul1001 vatsrahul1001 commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Betas are cut from vX-Y-test only — there's no vX-Y-stable branch yet, no sync PR (a sync PR only exists to carry changes from vX-Y-test into vX-Y-stable for an rc/final), and no vote. start-rc-process requires the stable branch and a sync branch, so until now a beta had to be cut by hand.

Rather than bolt beta special-cases onto start-rc-process, this adds a dedicated breeze release-management start-beta-process and leaves start-rc-process untouched. The version-bump and release-notes commits are pushed to vX-Y-test through normal PRs beforehand; the command then:

  • validates vX-Y-test exists (no stable branch needed),
  • checks out and hard-resets to the vX-Y-test tip and tags the beta there — so the tag is exactly what was pushed (3.3.0b1 was mistakenly tagged on a divergent local copy; this avoids that),
  • builds, signs, uploads to SVN dev and PyPI, and pushes the tags via the same shared helpers start-rc-process uses,
  • resolves constraints through the release-constraints workflow from vX-Y-test, the same way an rc does.

To support that last point, the release-constraints workflow is taught to accept beta versions (X.Y.0bN) and treat them as pre-releases, exactly like an rc: provider rc waves are allowed and the result lands on its own constraints-X.Y.0bN branch and tag, leaving the shared constraints-X-Y branch untouched. The rc and final behaviour is unchanged — a final still pins released providers and commits onto constraints-X-Y.

The only change to the existing start-rc-process code is renaming RC_PATTERN to PRE_RELEASE_PATTERN and broadening it to match bN as well as rcN, so remove_old_releases also cleans up old beta directories.

dev/breeze/doc/09_release_management_tasks.rst and the beta section of README_RELEASE_AIRFLOW.md document the flow. Tests cover the version/branch handling, the branch-tip checkout, the pattern, and the beta-dir cleanup.


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 4.8)

Generated-by: Claude Code (Opus 4.8) following the guidelines

@vatsrahul1001
vatsrahul1001 force-pushed the beta-aware-start-rc-process branch from 52d5255 to 67b1076 Compare October 8, 2026 14:35
@vatsrahul1001 vatsrahul1001 changed the title Support cutting beta pre-releases with start-rc-process Support cutting beta with start-rc-process Oct 8, 2026
@vatsrahul1001 vatsrahul1001 changed the title Support cutting beta with start-rc-process Support cutting beta without stable branch Oct 8, 2026
@vatsrahul1001
vatsrahul1001 force-pushed the beta-aware-start-rc-process branch from 67b1076 to 7373368 Compare October 8, 2026 14:54
@vatsrahul1001
vatsrahul1001 requested a review from kaxil October 8, 2026 15:10
Comment thread dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
Comment thread dev/breeze/src/airflow_breeze/commands/release_candidate_command.py Outdated
Comment thread dev/README_RELEASE_AIRFLOW.md Outdated
Comment thread dev/README_RELEASE_AIRFLOW.md Outdated
Comment thread dev/breeze/tests/test_release_candidate_command.py Outdated
@vatsrahul1001
vatsrahul1001 force-pushed the beta-aware-start-rc-process branch 2 times, most recently from 7271623 to 0bde580 Compare October 9, 2026 09:32
@vatsrahul1001 vatsrahul1001 changed the title Support cutting beta without stable branch Add start-beta-process command to cut beta pre-releases Oct 9, 2026
@vatsrahul1001
vatsrahul1001 force-pushed the beta-aware-start-rc-process branch 2 times, most recently from 0ff7b12 to 2a6eefd Compare October 9, 2026 13:37
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 resolve the
constraints through the release-constraints workflow from vX-Y-test, the
same way an rc does. The workflow is taught to accept beta versions and
treat them as pre-releases: provider rc waves are allowed and the result
lands on its own constraints-X.Y.0bN branch and tag, leaving the shared
constraints-X-Y branch untouched (only a final moves it).
@vatsrahul1001
vatsrahul1001 force-pushed the beta-aware-start-rc-process branch from 2a6eefd to 6c4ba97 Compare October 11, 2026 14:37

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants