From 72d35cf389b06b355db2bf17ef0e1f65ff3eadbe Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 7 May 2026 16:24:14 +0300 Subject: [PATCH 1/4] Fix repo check: b1 is special and still made from main, not 3.x --- release.py | 5 ++++- tests/test_release_tag.py | 5 +++++ tests/test_run_release.py | 8 +++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/release.py b/release.py index 5546228a..d8b5a294 100755 --- a/release.py +++ b/release.py @@ -193,7 +193,10 @@ def normalized(self) -> str: @property def branch(self) -> str: - return "main" if self.is_alpha_release else f"{self.major}.{self.minor}" + if self.is_alpha_release or self.is_feature_freeze_release: + return "main" + else: + return f"{self.major}.{self.minor}" @property def is_alpha_release(self) -> bool: diff --git a/tests/test_release_tag.py b/tests/test_release_tag.py index b08be88b..a1947c3c 100644 --- a/tests/test_release_tag.py +++ b/tests/test_release_tag.py @@ -41,26 +41,31 @@ def test_tag_phase() -> None: assert alpha.is_feature_freeze_release is False assert alpha.is_release_candidate is False assert alpha.is_final is False + assert alpha.branch == "main" assert beta1.is_alpha_release is False assert beta1.is_feature_freeze_release is True assert beta1.is_release_candidate is False assert beta1.is_final is False + assert beta1.branch == "main" assert beta4.is_alpha_release is False assert beta4.is_feature_freeze_release is False assert beta4.is_release_candidate is False assert beta4.is_final is False + assert beta4.branch == "3.13" assert rc.is_alpha_release is False assert rc.is_feature_freeze_release is False assert rc.is_release_candidate is True assert rc.is_final is False + assert rc.branch == "3.13" assert final.is_alpha_release is False assert final.is_feature_freeze_release is False assert final.is_release_candidate is False assert final.is_final is True + assert final.branch == "3.13" def test_tag_committed_at_not_found() -> None: diff --git a/tests/test_run_release.py b/tests/test_run_release.py index a8790ab6..82830a85 100644 --- a/tests/test_run_release.py +++ b/tests/test_run_release.py @@ -59,7 +59,9 @@ def test_invalid_extract_github_owner() -> None: [ # Success cases ("3.15.0rc1", "3.15\n", does_not_raise()), - ("3.15.0b1", "3.15\n", does_not_raise()), + ("3.15.0b3", "3.15\n", does_not_raise()), + ("3.15.0b2", "3.15\n", does_not_raise()), + ("3.15.0b1", "main\n", does_not_raise()), ("3.15.0a6", "main\n", does_not_raise()), ("3.14.3", "3.14\n", does_not_raise()), ("3.13.12", "3.13\n", does_not_raise()), @@ -71,8 +73,8 @@ def test_invalid_extract_github_owner() -> None: ), ( "3.15.0b1", - "main\n", - pytest.raises(ReleaseException, match="on main branch, expected 3.15"), + "3.15\n", + pytest.raises(ReleaseException, match="on 3.15 branch, expected main"), ), ( "3.15.0a6", From ab88b3a09ef50d5066f08afcd145795285aae808 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 7 May 2026 18:31:43 +0300 Subject: [PATCH 2/4] Update release.py Co-authored-by: Savannah Ostrowski --- release.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/release.py b/release.py index d8b5a294..67b876c4 100755 --- a/release.py +++ b/release.py @@ -195,8 +195,7 @@ def normalized(self) -> str: def branch(self) -> str: if self.is_alpha_release or self.is_feature_freeze_release: return "main" - else: - return f"{self.major}.{self.minor}" + return f"{self.major}.{self.minor}" @property def is_alpha_release(self) -> bool: From 7c2bea20e8710a056c6c31ec28b9a494dae4166f Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 7 May 2026 18:57:00 +0300 Subject: [PATCH 3/4] After b1, create new 3.x branch --- run_release.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run_release.py b/run_release.py index 8a42ec36..edc15374 100755 --- a/run_release.py +++ b/run_release.py @@ -1245,7 +1245,7 @@ def branch_new_versions(db: ReleaseShelf) -> None: subprocess.check_call(["git", "checkout", "main"], cwd=db["git_repo"]) subprocess.check_call( - ["git", "checkout", "-b", release_tag.branch], + ["git", "checkout", "-b", release_tag.basic_version], cwd=db["git_repo"], ) From 1a36044f6ce1bb57fa45e40f93d67054a9d282d9 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Thu, 7 May 2026 19:01:01 +0300 Subject: [PATCH 4/4] And switch back to 3.x for post-release tagging --- run_release.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/run_release.py b/run_release.py index edc15374..50d5b05d 100755 --- a/run_release.py +++ b/run_release.py @@ -1168,8 +1168,13 @@ def post_release_tagging(db: ReleaseShelf) -> None: cwd=db["git_repo"], ) + if release_tag.is_feature_freeze_release: + checkout_branch = release_tag.basic_version + else: + checkout_branch = release_tag.branch + subprocess.check_call( - ["git", "checkout", release_tag.branch], + ["git", "checkout", checkout_branch], cwd=db["git_repo"], )