This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 290bed1e762d0fea28a60f95f587a194cc729519
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jan 15 22:43:58 2026 +0100

    [v3-1-test] Update release command and guide (#60508) (#60607)
    
    * Update release command and guide
    
    Update some of the issues I noticed during the release
    
    * fixup! Test: Add E2E tests for Assets Page (#59990)
    
    * Apply suggestion from @ephraimbuddy
    
    * fixup! fixup! Test: Add E2E tests for Assets Page (#59990)
    (cherry picked from commit 2de609e11d1eae81fd60efc5a70d55c98955323e)
    
    Co-authored-by: Ephraim Anierobi <[email protected]>
---
 dev/README_RELEASE_AIRFLOW.md                      | 32 +++++++++++-----------
 .../commands/release_candidate_command.py          | 22 +++++++++++++--
 .../src/airflow_breeze/commands/release_command.py |  3 ++
 dev/breeze/tests/test_release_candidate_command.py |  7 ++---
 4 files changed, 41 insertions(+), 23 deletions(-)

diff --git a/dev/README_RELEASE_AIRFLOW.md b/dev/README_RELEASE_AIRFLOW.md
index 3005b9d2c12..d1fecd192c9 100644
--- a/dev/README_RELEASE_AIRFLOW.md
+++ b/dev/README_RELEASE_AIRFLOW.md
@@ -390,6 +390,7 @@ uv tool install -e ./dev/breeze
        --version ${VERSION_RC} \
        --previous-version ${PREVIOUS_VERSION} \
        --task-sdk-version ${TASK_SDK_VERSION_RC} \
+       --sync-branch ${SYNC_BRANCH} \
        --remote-name upstream \
        --dry-run
    ```
@@ -1010,7 +1011,6 @@ export AIRFLOW_REPO_ROOT=$(pwd)
 # start the release process by running the below command
 breeze release-management start-release \
     --version ${VERSION} \
-    --previous-release ${PREVIOUS_RELEASE} \
     --task-sdk-version ${TASK_SDK_VERSION}
 ```
 
@@ -1047,11 +1047,11 @@ the older branches, you should set the "skip" field to 
true.
 ```shell script
 for PYTHON in 3.10 3.11 3.12 3.13
 do
-    docker pull apache/airflow:${VERSION_RC}-python${PYTHON}
-    breeze prod-image verify --image-name 
apache/airflow:${VERSION_RC}-python${PYTHON}
+    docker pull apache/airflow:${VERSION}-python${PYTHON}
+    breeze prod-image verify --image-name 
apache/airflow:${VERSION}-python${PYTHON}
 done
-docker pull apache/airflow:${VERSION_RC}
-breeze prod-image verify --image-name apache/airflow:${VERSION_RC}
+docker pull apache/airflow:${VERSION}
+breeze prod-image verify --image-name apache/airflow:${VERSION}
 ```
 
 ## Publish final documentation
@@ -1222,17 +1222,6 @@ EOF
 
------------------------------------------------------------------------------------------------------------
 Announcement is done from official Apache-Airflow accounts.
 
-* LinkedIn: https://www.linkedin.com/company/apache-airflow/
-* Fosstodon: https://fosstodon.org/@airflow
-* Bluesky: https://bsky.app/profile/apache-airflow.bsky.social
-
-Make sure attach the release image generated with Figma to the post.
-If you don't have access to the account ask a PMC member to post.
-
-------------------------------------------------------------------------------------------------------------
-
-Tweet and post on Linkedin about the release:
-
 ```shell
 cat <<EOF
 We've just released Apache Airflow $VERSION 🎉
@@ -1246,6 +1235,17 @@ Thanks to all the contributors who made this possible.
 EOF
 ```
 
+Post on social media about the release:
+
+* LinkedIn: https://www.linkedin.com/company/apache-airflow/
+* Fosstodon: https://fosstodon.org/@airflow
+* Bluesky: https://bsky.app/profile/apache-airflow.bsky.social
+
+Make sure to attach the release image generated with Figma to the post.
+If you don't have access to the account ask a PMC member to post.
+
+------------------------------------------------------------------------------------------------------------
+
 ## Update `main` with the latest release details
 
 This includes:
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 5877c05ffb8..64eb7b937d9 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
@@ -412,6 +412,22 @@ def create_artifacts_with_docker():
     console_print("[success]Airflow and Task SDK artifacts created")
 
 
+def test_airflow():
+    console_print("[info]Testing Airflow: Please perform the actions below 
before proceeding.")
+    console_print("[info]Run these commands in a separate shell in the current 
directory.")
+    console_print("[info] ❯ docker run -it -v ./dist:/dist -p 8080:8080 
python:3.12 /bin/bash")
+    console_print("[info] root@6b802a7fedab:/# pip install uv && uv venv && 
source .venv/bin/activate")
+    console_print(
+        "[info] root@6b802a7fedab:/# uv pip install 
./dist/apache_airflow-*.whl  ./dist/apache_airflow_core-*.whl 
./dist/apache_airflow_task_sdk-*-py3-none-any.whl"
+    )
+    console_print("[info] (.venv) root@6b802a7fedab:/# airflow standalone")
+    confirm_action(
+        "I have tested airflow as instructed above. "
+        "I installed and ran a DAG with it and there's no issue. Do you agree 
to the above?",
+        abort=True,
+    )
+
+
 def sign_the_release(repo_root):
     if confirm_action("Do you want to sign the release?"):
         os.chdir(f"{repo_root}/dist")
@@ -473,8 +489,8 @@ def move_artifacts_to_svn(
             shell=True,
         )
         console_print("[success]Moved artifacts to SVN:")
-        run_command([f"ls {repo_root}/asf-dist/dev/airflow/{version}"])
-        run_command([f"ls 
{repo_root}/asf-dist/dev/airflow/task-sdk/{task_sdk_version}"])
+        run_command([f"ls {version}/"])
+        run_command([f"ls task-sdk/{task_sdk_version}/"])
 
 
 def push_artifacts_to_asf_repo(version, task_sdk_version, repo_root):
@@ -768,6 +784,8 @@ def publish_release_candidate(
             tarball_type=TarBallType.AIRFLOW,
             tag=version,
         )
+    # test airflow
+    test_airflow()
     # Sign the release
     sign_the_release(airflow_repo_root)
     # Tag and push constraints
diff --git a/dev/breeze/src/airflow_breeze/commands/release_command.py 
b/dev/breeze/src/airflow_breeze/commands/release_command.py
index f72616f3401..784fa17ab23 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_command.py
@@ -210,6 +210,9 @@ def remove_old_release(version, task_sdk_version, 
svn_release_repo):
         if entry.name == version:
             # Don't remove the current release
             continue
+        if entry.name == "2.11.0":
+            # Don't remove airflow 2.11.0
+            continue
         if entry.is_dir() and RELEASE_PATTERN.match(entry.name):
             old_airflow_releases.append(entry.name)
     old_airflow_releases.sort()
diff --git a/dev/breeze/tests/test_release_candidate_command.py 
b/dev/breeze/tests/test_release_candidate_command.py
index 049d45b3cfb..a2172b3ceca 100644
--- a/dev/breeze/tests/test_release_candidate_command.py
+++ b/dev/breeze/tests/test_release_candidate_command.py
@@ -423,11 +423,8 @@ def 
test_move_artifacts_to_svn_completes_successfully(monkeypatch, rc_cmd):
     )
     assert "[success]Moved artifacts to SVN:" in console_messages
     # Verify ls commands
-    assert any(cmd == [f"ls {repo_root}/asf-dist/dev/airflow/{version}"] for 
cmd, kwargs in run_command_calls)
-    assert any(
-        cmd == [f"ls 
{repo_root}/asf-dist/dev/airflow/task-sdk/{task_sdk_version}"]
-        for cmd, kwargs in run_command_calls
-    )
+    assert any(cmd == [f"ls {version}/"] for cmd, kwargs in run_command_calls)
+    assert any(cmd == [f"ls task-sdk/{task_sdk_version}/"] for cmd, kwargs in 
run_command_calls)
 
 
 def 
test_push_artifacts_to_asf_repo_returns_early_when_user_declines(monkeypatch, 
rc_cmd):

Reply via email to