This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch fix-2.11.1-rc in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 5e75739966eabfd630a460130ae4de1f74b447f9 Author: Jarek Potiuk <[email protected]> AuthorDate: Mon Feb 16 20:37:17 2026 +0100 Fix 2.11.1 dependencies for fab provider The rc1 does not install because it had bad fab provider version specification (missing rc and missing upper-binding). This was because in 2.11 we removed suffix for final version rather than added it as we do in Airflow 3 and we never had upper-binding in preinstalled providers. This PR fixes both issues and will make it ready for rc2 of 2.11.1 --- README.md | 8 ++++---- hatch_build.py | 9 ++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 94c6e19c04e..fd04baae1f8 100644 --- a/README.md +++ b/README.md @@ -170,15 +170,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==2.11.0' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.11.0/constraints-3.9.txt" +pip install 'apache-airflow==2.11.1' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.11.1/constraints-3.10.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash -pip install 'apache-airflow[postgres,google]==2.8.3' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.11.0/constraints-3.9.txt" +pip install 'apache-airflow[postgres,google]==2.11.1' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.11.1/constraints-3.10.txt" ``` For information on installing provider packages, check diff --git a/hatch_build.py b/hatch_build.py index 0685f4e4632..83b622a54be 100644 --- a/hatch_build.py +++ b/hatch_build.py @@ -43,7 +43,7 @@ PRE_INSTALLED_PROVIDERS = [ "common.compat", "common.io", "common.sql", - "fab>=1.5.4,<2.0", + "fab>=1.5.4rc0,<2.0", "ftp", "http", "imap", @@ -576,13 +576,16 @@ def get_provider_requirement(provider_spec: str) -> str: current_airflow_version = Version(airflow_version_match.group(1)) provider_id, min_version = provider_spec.split(">=") - min_version = min_version.split(",")[0] + version_split = min_version.split(",") + min_version = version_split[0] provider_version = Version(min_version) if provider_version.is_prerelease and not current_airflow_version.is_prerelease: # strip pre-release version from the pre-installed provider's version when we are preparing # the official package min_version = str(provider_version.base_version) - return f"apache-airflow-providers-{provider_id.replace('.', '-')}>={min_version}" + extra_version="" if len(version_split) == 1 else "," + ",".join(version_split[1:]) + return (f"apache-airflow-providers-{provider_id.replace('.', '-')}" + f">={min_version}{extra_version}") else: return f"apache-airflow-providers-{provider_spec.replace('.', '-')}"
