This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 4e2f74333f Check if Python 3.12 is used for release management
commands as well (#37615)
4e2f74333f is described below
commit 4e2f74333fec2ef2e86ac2c36b348a75c25102f7
Author: Jarek Potiuk <[email protected]>
AuthorDate: Thu Feb 22 11:01:56 2024 +0100
Check if Python 3.12 is used for release management commands as well
(#37615)
We've been checking - for reproducibility - if python version used is
Python 3.9 or above, but since we are also rebuilding sdist packages,
we need to check if sdist packages can be converted to wheel packages
as well so we need to check python version used.
---
.../airflow_breeze/commands/release_candidate_command.py | 6 +++---
.../commands/release_management_commands.py | 10 +++++-----
dev/breeze/src/airflow_breeze/utils/python_versions.py | 15 +++++++++++----
dev/breeze/src/airflow_breeze/utils/reproducible.py | 6 +++---
4 files changed, 22 insertions(+), 15 deletions(-)
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 16f3dd18a9..df8d64bcc6 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_candidate_command.py
@@ -26,7 +26,7 @@ from airflow_breeze.commands.release_management_group import
release_management
from airflow_breeze.utils.confirm import confirm_action
from airflow_breeze.utils.console import console_print
from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, DIST_DIR,
OUT_DIR
-from airflow_breeze.utils.python_versions import check_python_3_9_or_above
+from airflow_breeze.utils.python_versions import check_python_version
from airflow_breeze.utils.reproducible import get_source_date_epoch,
repack_deterministically
from airflow_breeze.utils.run_utils import run_command
@@ -311,7 +311,7 @@ def remove_old_releases(version, repo_root):
"--version", required=True, help="The release candidate version e.g.
2.4.3rc1", envvar="VERSION"
)
def prepare_airflow_tarball(version: str):
- check_python_3_9_or_above()
+ check_python_version()
from packaging.version import Version
airflow_version = Version(version)
@@ -337,7 +337,7 @@ def prepare_airflow_tarball(version: str):
)
@option_answer
def publish_release_candidate(version, previous_version, github_token):
- check_python_3_9_or_above()
+ check_python_version()
from packaging.version import Version
airflow_version = Version(version)
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 5a966b25d4..656a1c6e02 100644
--- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
+++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py
@@ -144,7 +144,7 @@ from airflow_breeze.utils.provider_dependencies import (
generate_providers_metadata_for_package,
get_related_providers,
)
-from airflow_breeze.utils.python_versions import check_python_3_9_or_above,
get_python_version_list
+from airflow_breeze.utils.python_versions import check_python_version,
get_python_version_list
from airflow_breeze.utils.reproducible import get_source_date_epoch,
repack_deterministically
from airflow_breeze.utils.run_utils import (
run_command,
@@ -511,7 +511,7 @@ def prepare_airflow_packages(
version_suffix_for_pypi: str,
use_local_hatch: bool,
):
- check_python_3_9_or_above()
+ check_python_version()
perform_environment_checks()
fix_ownership_using_docker()
cleanup_python_generated_files()
@@ -760,7 +760,7 @@ def prepare_provider_packages(
skip_tag_check: bool,
version_suffix_for_pypi: str,
):
- check_python_3_9_or_above()
+ check_python_version()
perform_environment_checks()
fix_ownership_using_docker()
cleanup_python_generated_files()
@@ -2619,7 +2619,7 @@ def prepare_helm_chart_tarball(
) -> None:
import yaml
- check_python_3_9_or_above()
+ check_python_version()
chart_yaml_file_content = CHART_YAML_FILE.read_text()
chart_yaml_dict = yaml.safe_load(chart_yaml_file_content)
version_in_chart = chart_yaml_dict["version"]
@@ -2761,7 +2761,7 @@ def prepare_helm_chart_tarball(
@option_dry_run
@option_verbose
def prepare_helm_chart_package(sign_email: str):
- check_python_3_9_or_above()
+ check_python_version()
import yaml
diff --git a/dev/breeze/src/airflow_breeze/utils/python_versions.py
b/dev/breeze/src/airflow_breeze/utils/python_versions.py
index b06eb63c0f..3571bebb24 100644
--- a/dev/breeze/src/airflow_breeze/utils/python_versions.py
+++ b/dev/breeze/src/airflow_breeze/utils/python_versions.py
@@ -45,12 +45,19 @@ def get_python_version_list(python_versions: str) ->
list[str]:
return python_version_list
-def check_python_3_9_or_above():
+def check_python_version():
+ error = False
if not sys.version_info >= (3, 9):
- get_console().print("[error]Python 3.9 or later is required to prepare
reproducible archives.\n")
+ get_console().print("[error]At least Python 3.9 is required to prepare
reproducible archives.\n")
+ error = True
+ elif not sys.version_info < (3, 12):
+ get_console().print("[error]Python 3.12 is not supported.\n")
+ error = True
+ if error:
get_console().print(
- "[warning]Please reinstall Breeze in Python3.9+ environment. For
example:[/]\n\n"
- "pipx uninstall apache-airflow-breeze\n\n"
+ "[warning]Please reinstall Breeze using Python 3.9 - 3.11
environment.[/]\n\n"
+ "For example:\n\n"
+ "pipx uninstall apache-airflow-breeze\n"
"pipx install --python $(which python3.9) -e ./dev/breeze
--force\n"
)
sys.exit(1)
diff --git a/dev/breeze/src/airflow_breeze/utils/reproducible.py
b/dev/breeze/src/airflow_breeze/utils/reproducible.py
index 418d5b2079..1429333d64 100644
--- a/dev/breeze/src/airflow_breeze/utils/reproducible.py
+++ b/dev/breeze/src/airflow_breeze/utils/reproducible.py
@@ -43,7 +43,7 @@ from pathlib import Path
from subprocess import CalledProcessError, CompletedProcess
from airflow_breeze.utils.path_utils import AIRFLOW_SOURCES_ROOT, OUT_DIR,
REPRODUCIBLE_DIR
-from airflow_breeze.utils.python_versions import check_python_3_9_or_above
+from airflow_breeze.utils.python_versions import check_python_version
from airflow_breeze.utils.run_utils import run_command
@@ -91,7 +91,7 @@ def repack_deterministically(
tarinfo.mtime = timestamp
return tarinfo
- check_python_3_9_or_above()
+ check_python_version()
OUT_DIR.mkdir(exist_ok=True)
shutil.rmtree(REPRODUCIBLE_DIR, ignore_errors=True)
REPRODUCIBLE_DIR.mkdir(exist_ok=True)
@@ -149,7 +149,7 @@ def repack_deterministically(
def main():
- check_python_3_9_or_above()
+ check_python_version()
parser = ArgumentParser()
parser.add_argument("-a", "--archive", help="archive to repack")
parser.add_argument("-o", "--out", help="archive destination")