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

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


The following commit(s) were added to refs/heads/v3-3-test by this push:
     new f3164f0e8c6 [v3-3-test] Fix provider distribution builds failing with 
flit 4 (#71118) (#71149)
f3164f0e8c6 is described below

commit f3164f0e8c6f7e49f81e1487bdadb544ac4776dc
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Aug 5 11:19:43 2026 +0530

    [v3-3-test] Fix provider distribution builds failing with flit 4 (#71118) 
(#71149)
    
    * Fix provider distribution builds failing with flit 4
    
    flit 4.0 removed the --setup-py/--no-setup-py options, so every flit-backed
    provider build now aborts during argument parsing as soon as flit 4 
resolves.
    Not generating setup.py has been flit's default since well before the 3.12
    floor breeze requires, so no longer asking for it explicitly leaves the 
built
    distributions unchanged.
    
    * Cap flit below 4 so provider distributions keep valid metadata
    
    `flit build` does not use PEP 517 build isolation, so whichever flit_core is
    installed becomes the backend for every provider distribution and the
    `flit_core==3.12.0` pin each provider declares never applies on the path we
    release from. flit_core 4.0.1 writes Import-Name and Import-Namespace 
without a
    trailing newline (https://github.com/pypa/flit/issues/813), consuming the 
blank
    line that separates the metadata headers from the description, so the 
resulting
    METADATA parses with MissingHeaderBodySeparatorDefect.
    
    Removal of the cap is tracked at
    https://github.com/apache/airflow/issues/71121.
    
    * Drop the flit flag regression test
    
    The assertion mirrors the argv literal it guards and mocks away the argument
    parser that actually rejected the flag, so it detects reverts rather than 
the
    class of breakage it was written for. The provider distribution build jobs
    cover that.
    
    * Rest the flit cap on the unvalidated backend rather than the 4.0.1 defect
    
    flit 4.0.2 fixed the METADATA corruption the comment cited, but the reason 
to
    hold the backend at 3.12.0 is that nothing has exercised flit 4 against 
provider
    distributions or the reproducible-build checks.
    
    ---------
    (cherry picked from commit 9a85faa9c55b907bd105ee41567bb7d55dab9f31)
    
    Co-authored-by: rjgoyln <[email protected]>
    Co-authored-by: Rahul Vats <[email protected]>
---
 dev/breeze/pyproject.toml                                         | 8 ++++++--
 .../airflow_breeze/prepare_providers/provider_distributions.py    | 2 +-
 dev/breeze/uv.lock                                                | 4 ++--
 uv.lock                                                           | 4 ++--
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/dev/breeze/pyproject.toml b/dev/breeze/pyproject.toml
index 96a637857af..122b67729c0 100644
--- a/dev/breeze/pyproject.toml
+++ b/dev/breeze/pyproject.toml
@@ -47,8 +47,12 @@ dependencies = [
     "black>=26.1.0",
     "click>=8.3.0",
     "filelock>=3.13.0",
-    "flit>=3.12.0",
-    "flit-core>=3.12.0",
+    # Capped below 4 because `flit build` has no PEP 517 isolation: the 
installed flit_core is
+    # what builds every provider distribution, so the `flit_core==` pin they 
declare never
+    # applies. Adopting the 4.x backend is tracked at
+    # https://github.com/apache/airflow/issues/71121
+    "flit>=3.12.0,<4",
+    "flit-core>=3.12.0,<4",
     "google-api-python-client>=2.142.0",
     "google-auth-httplib2>=0.2.0",
     "google-auth-oauthlib>=1.2.0",
diff --git 
a/dev/breeze/src/airflow_breeze/prepare_providers/provider_distributions.py 
b/dev/breeze/src/airflow_breeze/prepare_providers/provider_distributions.py
index ff4ce0b0a03..459b66a013c 100644
--- a/dev/breeze/src/airflow_breeze/prepare_providers/provider_distributions.py
+++ b/dev/breeze/src/airflow_breeze/prepare_providers/provider_distributions.py
@@ -251,7 +251,7 @@ def build_provider_distribution(
     build_backend = provider_info.get("build-system", "flit_core")
     build_env = {"SOURCE_DATE_EPOCH": 
str(get_provider_details(provider_id).source_date_epoch)}
     if build_backend == "flit_core":
-        command: list[str] = [sys.executable, "-m", "flit", "build", 
"--no-setup-py", "--use-vcs"]
+        command: list[str] = [sys.executable, "-m", "flit", "build", 
"--use-vcs"]
         console_print(
             "[warning]Workaround wheel-only package bug in flit by building 
both and removing sdist."
         )
diff --git a/dev/breeze/uv.lock b/dev/breeze/uv.lock
index 49aa70ea7a9..3441e1155ca 100644
--- a/dev/breeze/uv.lock
+++ b/dev/breeze/uv.lock
@@ -68,8 +68,8 @@ requires-dist = [
     { name = "boto3", specifier = ">=1.37.2" },
     { name = "click", specifier = ">=8.3.0" },
     { name = "filelock", specifier = ">=3.13.0" },
-    { name = "flit", specifier = ">=3.12.0" },
-    { name = "flit-core", specifier = ">=3.12.0" },
+    { name = "flit", specifier = ">=3.12.0,<4" },
+    { name = "flit-core", specifier = ">=3.12.0,<4" },
     { name = "gitpython", specifier = ">=3.1.40" },
     { name = "google-api-python-client", specifier = ">=2.142.0" },
     { name = "google-auth-httplib2", specifier = ">=0.2.0" },
diff --git a/uv.lock b/uv.lock
index 6f593f9fb85..36ead8dbe94 100644
--- a/uv.lock
+++ b/uv.lock
@@ -1889,8 +1889,8 @@ requires-dist = [
     { name = "boto3", specifier = ">=1.37.2" },
     { name = "click", specifier = ">=8.3.0" },
     { name = "filelock", specifier = ">=3.13.0" },
-    { name = "flit", specifier = ">=3.12.0" },
-    { name = "flit-core", specifier = ">=3.12.0" },
+    { name = "flit", specifier = ">=3.12.0,<4" },
+    { name = "flit-core", specifier = ">=3.12.0,<4" },
     { name = "gitpython", specifier = ">=3.1.40" },
     { name = "google-api-python-client", specifier = ">=2.142.0" },
     { name = "google-auth-httplib2", specifier = ">=0.2.0" },

Reply via email to