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

eladkal 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 f201f144987 Relax aiosqlite cap. Support `aiosqlite>=0.20.0` (#69796)
f201f144987 is described below

commit f201f14498732074047c6e8cdd45b8d3f197633e
Author: Arnav <[email protected]>
AuthorDate: Thu Jul 16 22:06:55 2026 +0530

    Relax aiosqlite cap. Support `aiosqlite>=0.20.0` (#69796)
    
    aiosqlite 0.22.0 had a hanging pytest session bug (aiosqlite#369) and also 
triggered a hanging helper thread under SQLAlchemy 2 (sqlalchemy#13039). The 
pytest issue was fixed in 0.22.1, and the SQLAlchemy-side fix shipped in 
2.0.46. Since our SQLAlchemy floor is already >=2.0.48, we can safely relax the 
cap from <0.22.0 to !=0.22.0 (excluding only the known-bad 0.22.0 release).
    
    Part of #69616.
---
 airflow-core/pyproject.toml |  8 +++-----
 uv.lock                     | 13 +++++--------
 2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/airflow-core/pyproject.toml b/airflow-core/pyproject.toml
index be8ed4318c4..79e56861af9 100644
--- a/airflow-core/pyproject.toml
+++ b/airflow-core/pyproject.toml
@@ -71,11 +71,9 @@ dependencies = [
     "cachetools>=6.0.0",
     # aiosqlite 0.22.0 has a problem with hanging pytest sessions and we 
excluded it
     # See https://github.com/omnilib/aiosqlite/issues/369
-    # It seems that while our test issues are fixed in 0.22.1, sqlalchemy 2 
itself
-    # is not compatible with it and leaves thread hanging This is already 
fixed in main of sqlalchemy
-    # But not released yet - and we will likely have to add >=2.0.46+ for 
sqlalchemy when released to
-    # protect against it https://github.com/sqlalchemy/sqlalchemy/issues/13039
-    "aiosqlite>=0.20.0,<0.22.0",
+    # The thread hanging issue under SQLAlchemy 2 (sqlalchemy#13039) is 
resolved in
+    # SQLAlchemy 2.0.46+. Since our SQLAlchemy floor is >=2.0.48, we can 
safely allow 0.22.1+.
+    "aiosqlite>=0.20.0,!=0.22.0",
     # Alembic is important to handle our migrations in predictable and 
performant way. It is developed
     # together with SQLAlchemy. Our experience with Alembic is that it very 
stable in minor version
     # The 1.13.0 of alembic marked some migration code as SQLAlchemy 2+ only 
so we limit it to 1.13.1
diff --git a/uv.lock b/uv.lock
index 051202e9993..dc07848533e 100644
--- a/uv.lock
+++ b/uv.lock
@@ -64,9 +64,9 @@ apache-airflow-providers-apache-cassandra = false
 apache-airflow-providers-asana = false
 apache-airflow-providers-oracle = false
 apache-airflow-providers-mysql = false
-apache-airflow-providers-teradata = false
 apache-airflow-providers-alibaba = false
 apache-airflow-providers-microsoft-mssql = false
+apache-airflow-providers-teradata = false
 apache-airflow-providers-jdbc = false
 apache-airflow-helm-chart = false
 apache-airflow-providers-anthropic = false
@@ -699,14 +699,11 @@ wheels = [
 
 [[package]]
 name = "aiosqlite"
-version = "0.21.0"
+version = "0.22.1"
 source = { registry = "https://pypi.org/simple"; }
-dependencies = [
-    { name = "typing-extensions" },
-]
-sdist = { url = 
"https://files.pythonhosted.org/packages/13/7d/8bca2bf9a247c2c5dfeec1d7a5f40db6518f88d314b8bca9da29670d2671/aiosqlite-0.21.0.tar.gz";,
 hash = 
"sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", size 
= 13454, upload-time = "2025-02-03T07:30:16.235Z" }
+sdist = { url = 
"https://files.pythonhosted.org/packages/4e/8a/64761f4005f17809769d23e518d915db74e6310474e733e3593cfc854ef1/aiosqlite-0.22.1.tar.gz";,
 hash = 
"sha256:043e0bd78d32888c0a9ca90fc788b38796843360c855a7262a532813133a0650", size 
= 14821, upload-time = "2025-12-23T19:25:43.997Z" }
 wheels = [
-    { url = 
"https://files.pythonhosted.org/packages/f5/10/6c25ed6de94c49f88a91fa5018cb4c0f3625f31d5be9f771ebe5cc7cd506/aiosqlite-0.21.0-py3-none-any.whl";,
 hash = 
"sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0", size 
= 15792, upload-time = "2025-02-03T07:30:13.6Z" },
+    { url = 
"https://files.pythonhosted.org/packages/00/b7/e3bf5133d697a08128598c8d0abc5e16377b51465a33756de24fa7dee953/aiosqlite-0.22.1-py3-none-any.whl";,
 hash = 
"sha256:21c002eb13823fad740196c5a2e9d8e62f6243bd9e7e4a1f87fb5e44ecb4fceb", size 
= 17405, upload-time = "2025-12-23T19:25:42.139Z" },
 ]
 
 [[package]]
@@ -2067,7 +2064,7 @@ mypy = [
 [package.metadata]
 requires-dist = [
     { name = "a2wsgi", specifier = ">=1.10.8" },
-    { name = "aiosqlite", specifier = ">=0.20.0,<0.22.0" },
+    { name = "aiosqlite", specifier = ">=0.20.0,!=0.22.0" },
     { name = "alembic", specifier = ">=1.13.1,<2.0" },
     { name = "apache-airflow-core", extras = ["graphviz", "gunicorn", 
"kerberos", "otel", "statsd"], marker = "extra == 'all'", editable = 
"airflow-core" },
     { name = "apache-airflow-providers-common-compat", editable = 
"providers/common/compat" },

Reply via email to