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 50b0775c136 Update provider's compatibility matrix with 2.11.1 (#62295)
50b0775c136 is described below
commit 50b0775c1368a60598b82bdb53d06510508ec716
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat Feb 28 19:52:28 2026 +0100
Update provider's compatibility matrix with 2.11.1 (#62295)
---
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../tests/unit/amazon/aws/log/test_cloudwatch_task_handler.py | 2 ++
.../amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py | 6 ++++++
.../tests/unit/elasticsearch/log/test_es_task_handler.py | 6 ++++++
.../google/tests/unit/google/cloud/log/test_gcs_task_handler.py | 8 ++++++++
.../opensearch/tests/unit/opensearch/log/test_os_task_handler.py | 6 ++++++
6 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py
b/dev/breeze/src/airflow_breeze/global_constants.py
index 9313511fe08..6e74e497d83 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -739,7 +739,7 @@ DEFAULT_EXTRAS = [
PROVIDERS_COMPATIBILITY_TESTS_MATRIX: list[dict[str, str | list[str]]] = [
{
"python-version": "3.10",
- "airflow-version": "2.11.0",
+ "airflow-version": "2.11.1",
"remove-providers": "common.messaging edge3 fab git keycloak
informatica common.ai",
"run-unit-tests": "true",
},
diff --git
a/providers/amazon/tests/unit/amazon/aws/log/test_cloudwatch_task_handler.py
b/providers/amazon/tests/unit/amazon/aws/log/test_cloudwatch_task_handler.py
index b3769386960..9cf1b0be6ed 100644
--- a/providers/amazon/tests/unit/amazon/aws/log/test_cloudwatch_task_handler.py
+++ b/providers/amazon/tests/unit/amazon/aws/log/test_cloudwatch_task_handler.py
@@ -258,6 +258,8 @@ class TestCloudwatchTaskHandler:
handler.handle(message)
mock_emit.assert_has_calls([call(message) for message in messages])
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
@time_machine.travel(datetime(2025, 3, 27, 21, 58, 1, 2345), tick=False)
def test_read(self, monkeypatch):
# Confirmed via AWS Support call:
diff --git a/providers/amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py
b/providers/amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py
index f81a5d42f5e..3fd900603e4 100644
--- a/providers/amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py
+++ b/providers/amazon/tests/unit/amazon/aws/log/test_s3_task_handler.py
@@ -270,6 +270,8 @@ class TestS3TaskHandler:
assert not self.s3_task_handler.upload_on_close
mock_open.assert_not_called()
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
def test_set_context_not_raw(self):
mock_open = mock.mock_open()
with
mock.patch("airflow.providers.amazon.aws.log.s3_task_handler.open", mock_open):
@@ -279,6 +281,8 @@ class TestS3TaskHandler:
mock_open.assert_called_once_with(os.path.join(self.local_log_location,
"1.log"), "w")
mock_open().write.assert_not_called()
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
def test_read(self):
# Test what happens when we have two log files to read
self.conn.put_object(Bucket="bucket", Key=self.remote_log_key,
Body=b"Log line\nLine 2\n")
@@ -324,6 +328,8 @@ class TestS3TaskHandler:
assert expected in actual
assert metadata[0] == {"end_of_log": True, "log_pos": 0}
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
def test_close(self):
self.s3_task_handler.set_context(self.ti)
assert self.s3_task_handler.upload_on_close
diff --git
a/providers/elasticsearch/tests/unit/elasticsearch/log/test_es_task_handler.py
b/providers/elasticsearch/tests/unit/elasticsearch/log/test_es_task_handler.py
index 0b3fa0440f9..58f3da54b63 100644
---
a/providers/elasticsearch/tests/unit/elasticsearch/log/test_es_task_handler.py
+++
b/providers/elasticsearch/tests/unit/elasticsearch/log/test_es_task_handler.py
@@ -84,6 +84,12 @@ class TestElasticsearchTaskHandler:
JSON_LOG_ID = f"{DAG_ID}-{TASK_ID}-{_clean_date(LOGICAL_DATE)}-1"
FILENAME_TEMPLATE = "{try_number}.log"
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @pytest.fixture(autouse=True)
+ def _use_historical_filename_templates(self):
+ with conf_vars({("core", "use_historical_filename_templates"):
"True"}):
+ yield
+
@pytest.fixture
def ti(self, create_task_instance, create_log_template):
create_log_template(
diff --git
a/providers/google/tests/unit/google/cloud/log/test_gcs_task_handler.py
b/providers/google/tests/unit/google/cloud/log/test_gcs_task_handler.py
index ad0f20b2890..ae492fe919f 100644
--- a/providers/google/tests/unit/google/cloud/log/test_gcs_task_handler.py
+++ b/providers/google/tests/unit/google/cloud/log/test_gcs_task_handler.py
@@ -381,6 +381,8 @@ class TestGCSTaskHandler:
assert logs.endswith("CONTENT")
assert metadata == {"end_of_log": True, "log_pos": 7}
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
@mock.patch(
"airflow.providers.google.cloud.log.gcs_task_handler.get_credentials_and_project_id",
return_value=("TEST_CREDENTIALS", "TEST_PROJECT_ID"),
@@ -418,6 +420,8 @@ class TestGCSTaskHandler:
assert metadata == {"end_of_log": True, "log_pos": 0}
mock_blob.from_string.assert_called_once_with(expected_gs_uri,
mock_client.return_value)
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
@mock.patch(
"airflow.providers.google.cloud.log.gcs_task_handler.get_credentials_and_project_id",
return_value=("TEST_CREDENTIALS", "TEST_PROJECT_ID"),
@@ -453,6 +457,8 @@ class TestGCSTaskHandler:
mock_blob.from_string.return_value.upload_from_string(data="CONTENT\nMESSAGE\n")
assert self.gcs_task_handler.closed is True
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
@mock.patch(
"airflow.providers.google.cloud.log.gcs_task_handler.get_credentials_and_project_id",
return_value=("TEST_CREDENTIALS", "TEST_PROJECT_ID"),
@@ -495,6 +501,8 @@ class TestGCSTaskHandler:
any_order=False,
)
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @conf_vars({("core", "use_historical_filename_templates"): "True"})
@mock.patch(
"airflow.providers.google.cloud.log.gcs_task_handler.get_credentials_and_project_id",
return_value=("TEST_CREDENTIALS", "TEST_PROJECT_ID"),
diff --git
a/providers/opensearch/tests/unit/opensearch/log/test_os_task_handler.py
b/providers/opensearch/tests/unit/opensearch/log/test_os_task_handler.py
index ab86d4ce5c5..4dc46c1d89b 100644
--- a/providers/opensearch/tests/unit/opensearch/log/test_os_task_handler.py
+++ b/providers/opensearch/tests/unit/opensearch/log/test_os_task_handler.py
@@ -70,6 +70,12 @@ class TestOpensearchTaskHandler:
JSON_LOG_ID =
f"{DAG_ID}-{TASK_ID}-{OpensearchTaskHandler._clean_date(LOGICAL_DATE)}-1"
FILENAME_TEMPLATE = "{try_number}.log"
+ # TODO: Remove when we stop testing for 2.11 compatibility
+ @pytest.fixture(autouse=True)
+ def _use_historical_filename_templates(self):
+ with conf_vars({("core", "use_historical_filename_templates"):
"True"}):
+ yield
+
@pytest.fixture
def ti(self, create_task_instance, create_log_template):
if AIRFLOW_V_3_0_PLUS: