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 85fbfe8e1af [v3-1-test] Fix release check for Python Client (#60839)
(#60842)
85fbfe8e1af is described below
commit 85fbfe8e1af95a80d06144e8220a1e5d5bed4c19
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Jan 28 10:27:10 2026 +0100
[v3-1-test] Fix release check for Python Client (#60839) (#60842)
Small check issues discovered during PMC check for the client.
(cherry picked from commit 8fbd990e15693dea183b1bb8eb2397f3cb083c34)
Co-authored-by: Jarek Potiuk <[email protected]>
---
dev/README_RELEASE_PYTHON_CLIENT.md | 8 +++++++-
.../airflow_breeze/commands/release_management_commands.py | 8 +++++---
dev/breeze/src/airflow_breeze/utils/check_release_files.py | 11 ++++++++---
3 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/dev/README_RELEASE_PYTHON_CLIENT.md
b/dev/README_RELEASE_PYTHON_CLIENT.md
index 70a0bc00ae9..c38200a4f29 100644
--- a/dev/README_RELEASE_PYTHON_CLIENT.md
+++ b/dev/README_RELEASE_PYTHON_CLIENT.md
@@ -360,8 +360,10 @@ binary-reproduced when built from the sources.
1) Set versions of the packages to be checked:
+Go to directory where your airflow sources are checked out and set the
following environment variables:
+
```shell script
-cd <directory where airflow is checked out>
+export AIRFLOW_REPO_ROOT="$(pwd -P)"
VERSION=X.Y.Z
VERSION_SUFFIX=rc1
VERSION_RC=${VERSION}${VERSION_SUFFIX}
@@ -436,6 +438,10 @@ present in SVN. This command may also help with verifying
installation of the pa
breeze release-management check-release-files python-client --version
${VERSION_RC}
```
+You can also follow the docker check that installs the distribution in a
docker container and verifies
+that the package can be installed and imported correctly and print it's
version. The command above prints
+instructions on how to do that.
+
### Licence check
diff --git
a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
index b57b67f8be9..c744012c003 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -4409,10 +4409,11 @@ def check_release_files(
create_docker(
PROVIDERS_DOCKER.format("RUN uv pip install --pre --system " + "
".join(f"'{p}'" for p in pips)),
dockerfile_path,
+ release_type,
)
elif release_type == "airflow":
missing_files = check_airflow_release(files, version)
- create_docker(AIRFLOW_DOCKER.format(version, version), dockerfile_path)
+ create_docker(AIRFLOW_DOCKER.format(version, version),
dockerfile_path, release_type)
elif release_type == "task-sdk":
missing_files = check_task_sdk_release(files, version)
if not version:
@@ -4422,13 +4423,14 @@ def check_release_files(
create_docker(
TASK_SDK_DOCKER.format(version, airflow_version, airflow_version,
airflow_version),
dockerfile_path,
+ release_type,
)
elif release_type == "airflow-ctl":
missing_files = check_airflow_ctl_release(files, version)
- create_docker(AIRFLOW_CTL_DOCKER.format(version), dockerfile_path)
+ create_docker(AIRFLOW_CTL_DOCKER.format(version), dockerfile_path,
release_type)
elif release_type == "python-client":
missing_files = check_python_client_release(files, version)
- create_docker(PYTHON_CLIENT_DOCKER.format(version), dockerfile_path)
+ create_docker(PYTHON_CLIENT_DOCKER.format(version), dockerfile_path,
release_type)
if missing_files:
warn_of_missing_files(missing_files, str(directory))
diff --git a/dev/breeze/src/airflow_breeze/utils/check_release_files.py
b/dev/breeze/src/airflow_breeze/utils/check_release_files.py
index 8c64a413763..14c606a2c97 100644
--- a/dev/breeze/src/airflow_breeze/utils/check_release_files.py
+++ b/dev/breeze/src/airflow_breeze/utils/check_release_files.py
@@ -58,7 +58,7 @@ PYTHON_CLIENT_DOCKER = """\
FROM python:3.10
# Install python-client
-RUN pip install "apache-airflow-python-client=={}"
+RUN pip install "apache-airflow-client=={}"
"""
@@ -83,16 +83,21 @@ def get_packages(packages_file: Path) -> list[tuple[str,
str]]:
return packages
-def create_docker(txt: str, output_file: Path):
+def create_docker(txt: str, output_file: Path, release_type: str):
"""Generate Dockerfile for testing installation."""
output_file.write_text(txt)
console = get_console()
console.print("\n[bold]To check installation run:[/bold]")
+ command = (
+ '--entrypoint "airflow" local/airflow info'
+ if release_type != "python-client"
+ else '--entrypoint "bash" local/airflow "-c" "python -c \'import
airflow_client.client; print(airflow_client.client.__version__)\'"'
+ )
console.print(
f"""\
docker build -f {output_file} --tag local/airflow .
- docker run --rm --entrypoint "airflow" local/airflow info
+ docker run --rm {command}
docker image rm local/airflow
"""
)