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


The following commit(s) were added to refs/heads/v3-1-test by this push:
     new e0955694f5b [v3-1-test] More update to the python client release 
command (#58513) (#58527)
e0955694f5b is described below

commit e0955694f5b71fdea72fbffa1c90be51391a0048
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Nov 20 15:44:31 2025 +0100

    [v3-1-test] More update to the python client release command (#58513) 
(#58527)
    
    * More update to the python client release command
    
    * Add n use VERSION_RC
    
    * Apply suggestions from code review
    (cherry picked from commit 38c4757662455691b32460a8eb14027ef2d35fed)
    
    Co-authored-by: Ephraim Anierobi <[email protected]>
---
 dev/README_RELEASE_PYTHON_CLIENT.md | 60 ++++++++++++++++++++++++-------------
 1 file changed, 40 insertions(+), 20 deletions(-)

diff --git a/dev/README_RELEASE_PYTHON_CLIENT.md 
b/dev/README_RELEASE_PYTHON_CLIENT.md
index b0a953d291d..98475f110a5 100644
--- a/dev/README_RELEASE_PYTHON_CLIENT.md
+++ b/dev/README_RELEASE_PYTHON_CLIENT.md
@@ -62,6 +62,18 @@ export STABLE_BRANCH=v2-8-stable
 cd ..
 ```
 
+- Since we don't sync to the test branch because we want to allow people to 
continue backporting PRs to the
+  test branch. We should create a sync branch out of where we cut off from the 
test branch
+
+```bash
+git checkout ${TEST_BRANCH}
+# Find the commit from where to cut off and check it out
+git checkout COMMIT_NUM
+# Create the sync branch
+git checkout -b changes313rc1
+export SYNC_BRANCH="changes313rc1"
+```
+
 - Checkout the right branch (usually main) of the Airflow Python client where 
you
   generate the source code to
 
@@ -83,6 +95,7 @@ cd ..
 cd ${AIRFLOW_REPO_ROOT}
 export VERSION="3.1.3"
 export VERSION_SUFFIX="rc1"
+export VERSION_RC=${VERSION}${VERSION_SUFFIX}
 echo "${VERSION}" > clients/python/version.txt
 ```
 
@@ -94,17 +107,18 @@ cd ${AIRFLOW_REPO_ROOT}
 git log 2.8.0..HEAD --pretty=oneline -- 
airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml
 ```
 
-- Update CHANGELOG.md with the details. Commit the changes.
+- Update clients/python/CHANGELOG.md with the details including the changes to 
clients/python/version.txt above. Commit the changes.
 
 ```shell script
 cd ${AIRFLOW_REPO_ROOT}
 git add .
-git commit -m "Prepare release ${VERSION}${VERSION_SUFFIX}"
+git commit -m "Prepare release ${VERSION_RC}"
 
 ```
 
-- Create PR where you add the changelog in `main` branch and cherry-pick it to 
the `v2-test` branch - same
-  as in case of Airflow changelog. This PR should also contain the change to 
`clients/python/version.txt`.
+- Create a PR where you add the commit above in `main` branch and cherry-pick 
it to the `v2-test` branch.
+  This PR should also contain the change to `clients/python/version.txt`. Due 
to that, you might want to do this PR from
+  the cloned airflow repo for the release and not your dev airflow clone.
 
 - Merge it to the `v2-*-stable` branch with the command below. You will 
release API client from the latest `v2-*-stable` branch
   of Airflow repository - same branch that is used to release Airflow:
@@ -114,8 +128,8 @@ git commit -m "Prepare release ${VERSION}${VERSION_SUFFIX}"
   # make sure you are up to date
   git fetch origin ${STABLE_BRANCH}
   git reset --hard origin/${STABLE_BRANCH}
-  # merge the changes from the test branch
-  git merge --ff-only ${TEST_BRANCH}
+  # merge the changes from the sync branch
+  git merge --ff-only ${SYNC_BRANCH}
   # push the changes to the stable branch
   git push origin ${STABLE_BRANCH}
   ```
@@ -127,8 +141,6 @@ git commit -m "Prepare release ${VERSION}${VERSION_SUFFIX}"
 cd ${AIRFLOW_REPO_ROOT}
 rm dist/*
 breeze release-management prepare-python-client --distribution-format both 
--python-client-repo "${CLIENT_REPO_ROOT}" --version-suffix ""
-breeze release-management prepare-tarball --tarball-type 
apache_airflow_python_client --version "${VERSION}" --version-suffix 
"${VERSION_SUFFIX}"
-
 ```
 
 - This should generate both sdist and .whl package in `dist` folder of the 
Airflow repository. It should
@@ -143,7 +155,7 @@ cd ${CLIENT_REPO_ROOT}
 git diff HEAD
 git checkout -b release-${VERSION}
 git add .
-git commit -m "Update Python Client to ${VERSION}${VERSION_SUFFIX}"
+git commit -m "Update Python Client to ${VERSION_RC}"
 git push apache release-${VERSION}
 ```
 
@@ -157,13 +169,19 @@ Then open a PR and merge it into main.
 
 ```shell script
 cd ${AIRFLOW_REPO_ROOT}
-git tag -s python-client/${VERSION}${VERSION_SUFFIX} -m "Airflow Python Client 
${VERSION}${VERSION_SUFFIX}"
-git push apache python-client/${VERSION}${VERSION_SUFFIX}
+git tag -s python-client/${VERSION_RC} -m "Airflow Python Client ${VERSION_RC}"
+git push apache python-client/${VERSION_RC}
 cd ${CLIENT_REPO_ROOT}
-git tag -s ${VERSION}${VERSION_SUFFIX} -m "Airflow Python Client 
${VERSION}${VERSION_SUFFIX}"
-git push apache tag ${VERSION}${VERSION_SUFFIX}
+git tag -s ${VERSION_RC} -m "Airflow Python Client ${VERSION_RC}"
+git push apache tag ${VERSION_RC}
 ```
 
+- Build the source package after the above tags have been pushed:
+
+```shell script
+cd ${AIRFLOW_REPO_ROOT}
+breeze release-management prepare-tarball --tarball-type 
apache_airflow_python_client --version "${VERSION}" --version-suffix 
"${VERSION_SUFFIX}"
+```
 
 - Generate signatures and checksum files for the packages (if you have not 
generated a key yet, generate
   it by following instructions on 
http://www.apache.org/dev/openpgp.html#key-gen-generate-key)
@@ -180,7 +198,7 @@ popd
 ```shell script
 # First clone the repo somewhere if you have not done it yet
 [ -d asf-dist ] || svn checkout --depth=immediates 
https://dist.apache.org/repos/dist asf-dist
-svn update --set-depth=infinity asf-dist/dev/airflow/clients/python
+svn update --set-depth=infinity asf-dist/dev/airflow
 
 # Create new folder for the release
 cd asf-dist/dev/airflow/clients/python
@@ -188,10 +206,11 @@ cd asf-dist/dev/airflow/clients/python
 svn mkdir ${VERSION}${VERSION_SUFFIX}
 
 # Move the artifacts to svn folder & commit
-mv ${AIRFLOW_REPO_ROOT}/dist/apache_airflow_client-* 
${VERSION}${VERSION_SUFFIX}/
-cd ${VERSION}${VERSION_SUFFIX}
+mv ${AIRFLOW_REPO_ROOT}/dist/apache_airflow_client-* ${VERSION_RC}/
+mv ${AIRFLOW_REPO_ROOT}/dist/apache_airflow_python_client-* ${VERSION_RC}/
+cd ${VERSION_RC}
 svn add *
-svn commit -m "Add artifacts for Apache Airflow Python Client 
${VERSION}${VERSION_SUFFIX}"
+svn commit -m "Add artifacts for Apache Airflow Python Client ${VERSION_RC}"
 
 # Remove old version
 cd ..
@@ -212,6 +231,7 @@ To do this we need to:
   build the package from the sources in the Airflow repository and generate 
packages from those sources.
 
 ```shell script
+cd ${AIRFLOW_REPO_ROOT}
 rm dist/*
 breeze release-management prepare-python-client --distribution-format both 
--version-suffix "${VERSION_SUFFIX}"
 ```
@@ -236,7 +256,7 @@ Subject:
 
 ```shell script
 cat <<EOF
-[VOTE] Release Apache Airflow Python Client ${VERSION} from 
${VERSION}${VERSION_SUFFIX}
+[VOTE] Release Apache Airflow Python Client ${VERSION} from ${VERSION_RC}
 EOF
 ```
 
@@ -251,7 +271,7 @@ This email is calling for a vote on the release,
 which will last for 72 hours. Consider this my (binding) +1.
 
 Airflow Client ${VERSION}${VERSION_SUFFIX} is available at:
-https://dist.apache.org/repos/dist/dev/airflow/clients/python/${VERSION}${VERSION_SUFFIX}/
+https://dist.apache.org/repos/dist/dev/airflow/clients/python/${VERSION_RC}/
 
 The apache_airflow_client-${VERSION}.tar.gz is an sdist release that contains 
INSTALL instructions, and also
 is the official source release.
@@ -261,7 +281,7 @@ The apache_airflow_client-${VERSION}-py3-none-any.whl is a 
binary wheel release
 Those packages do not contain .rc* version as, when approved, they will be 
released as the final version.
 
 The rc packages are also available at PyPI (with rc suffix) and you can 
install it with pip as usual:
-https://pypi.org/project/apache-airflow-client/${VERSION}${VERSION_SUFFIX}/
+https://pypi.org/project/apache-airflow-client/${VERSION_RC}/
 
 Public keys are available at:
 https://dist.apache.org/repos/dist/release/airflow/KEYS

Reply via email to