Skip to content

Status of testing Providers that were prepared on October 06, 2026 #74459

Description

@potiuk

I have a kind request for all the contributors to the latest provider distributions release.
Could you please help us to test the RC versions of the providers?

The guidelines on how to test providers can be found in

Verify providers by contributors

Let us know in the comments, whether the issue is addressed.

These are providers that require testing as there were some substantial changes introduced:

Provider airbyte: 6.2.0rc1

Provider akeyless: 0.3.2rc1

Provider amazon: 9.38.0rc1

Provider anthropic: 1.2.0rc1

Provider apache.beam: 6.3.1rc1

Provider apache.kafka: 2.1.0rc1

Provider apache.spark: 6.3.3rc1

Provider celery: 3.25.0rc1

Provider clickhousedb: 1.0.1rc3

Provider cncf.kubernetes: 10.24.0rc1

Provider common.ai: 0.11.0rc1

Provider common.compat: 1.21.0rc1

Provider common.sql: 2.3.0rc1

Provider databricks: 7.22.0rc1

Provider dbt.cloud: 4.11.0rc1

Provider duckdb: 0.2.1rc1

Provider edge3: 5.0.0rc3

Provider elasticsearch: 6.9.2rc1

Provider fab: 3.10.1rc1

Provider ftp: 3.16.1rc1

Provider git: 1.0.1rc1

Provider google: 22.7.0rc1

Provider hashicorp: 4.8.3rc1

Provider http: 6.3.0rc1

Provider ibm.db2: 0.1.0rc1 🎉 New provider

Note: This is a new provider, so the PRs below are collected from the git history of the provider's sources rather than from a changelog diff. The list may therefore include bootstrap and development commits (e.g. release-preparation commits) that are not user-facing changes.

Provider ibm.mq: 0.1.0rc1 🎉 New provider

Note: This is a new provider, so the PRs below are collected from the git history of the provider's sources rather than from a changelog diff. The list may therefore include bootstrap and development commits (e.g. release-preparation commits) that are not user-facing changes.

Provider influxdb: 2.13.0rc1

Provider keycloak: 0.11.1rc1

Provider microsoft.azure: 15.2.1rc1

Provider modal: 0.1.0rc1 🎉 New provider

Note: This is a new provider, so the PRs below are collected from the git history of the provider's sources rather than from a changelog diff. The list may therefore include bootstrap and development commits (e.g. release-preparation commits) that are not user-facing changes.

Provider openai: 2.1.0rc1

Provider openlineage: 2.20.3rc1

Provider opensearch: 1.14.0rc1

Provider sftp: 7.0.0rc1

Provider slack: 9.11.1rc1

Provider smtp: 3.1.1rc1

Provider snowflake: 6.19.0rc1

Provider sqlite: 4.3.4rc1

Provider ssh: 7.0.0rc1

Provider standard: 1.20.1rc1

All users involved in the PRs:
@SameerMesiah97 @bugraoz93 @abhinav-phi @atharvaajmera @ColtenOuO @X33834 @abhishekmauryaKsolves @ephraimbuddy @AshleyAHuang @dheerajturaga @haseebmalik18 @vgkowski @namanjain24-sudo @yamakazushi @shivaam @ShubhamKapoor992 @ashb @dabla @kaxil @pankajastro @shahar1 @VladaZakharova @pankajkoti @subhramit @FrankYang0529 @moomindani @Eason09053360 @SEPURI-SAI-KRISHNA @fpiped @Lee-W @sgoel2be24-cyber @r3wretrhy @amoghrajesh @robertpofuk @seanghaeli @MichalJaroslawKrzywanski-TomTom @ucaeon @JelyFishhhhhh @YAshhh29 @ferruzzi @yuseok89 @KarthikMohankumar @Andrushika @zozo123 @bingqin2 @topherinternational @MeghanaGangarapu @drewrukin @SulimanAbdulrazzaq @eladkal @Samin061 @gtxu @Amitkumar293 @kadubhumika @filipeaaoliveira @firasbouzazi @aaron-y-chen @atamagrawal @AlejandroMorgante @jeff3071 @potiuk @radhwene @olegkachur-e @divyanshus2404 @keemgdeok @ccoliu @takayoshi-makabe @o-nikolas @jingi723

Activity

  1. added
    kind:metaHigh-level information important to the community
    on Oct 8, 2026
  2. jingi723 commented on Oct 8, 2026

    @jingi723
    Contributor

    Verified my changes in apache-airflow-providers-amazon==9.38.0rc1 for #73756 and #73881 using the PyPI wheel, with Airflow 3.3.2 / Python 3.12.14 on Linux ARM64. Updated with live AWS verification in ap-northeast-2.

    • Keep S3 Dag bundle downloads within the configured directory #73756: All 8 checks pass against a real S3 bucket: bundle initialization and repeated refresh with directory prefixes with/without trailing slashes, sibling-prefix objects, and objects whose key equals the configured prefix. Verified downloaded contents, stale-file/directory cleanup, and preservation of excluded remote objects.
    • Handle plain Step Functions execution errors #73881: All 9 checks pass using actual Standard Step Functions executions and DescribeExecution responses. Plain, Unicode, and malformed-JSON error strings are returned correctly; JSON-valued errors and successful output retain their types. In the live empty-string ErrorPath case, AWS omitted the error field and the operator correctly returned None.

    The 17 live-AWS checks all passed. Running the same checks with provider 9.37.0, using the same bucket and executions, reproduced 7 failures (4 S3, 3 Step Functions); reinstalling 9.38.0rc1 restored all 17 passes. Temporary buckets, state machines, and execution roles were deleted and their absence confirmed.

    The earlier 20 local checks using Moto/synthetic HTTP responses also passed (8 failures on 9.37.0), including explicit error: "", malformed success output, and service-error propagation. Those additional cases remain simulated. pip check passed, both merged commits are in the RC tag, and the relevant installed sources match the wheel and tag.

    Scope: the live checks make real AWS calls from the installed bundle/operator/hook. Operator execution is invoked directly, with UI extra-link persistence mocked; this does not cover scheduler/task-runner/XCom end-to-end behavior, an IAM-policy matrix, or the whole Amazon provider.

  3. Andrushika commented on Oct 8, 2026

    @Andrushika
    Contributor

    #73652 tested in common.ai 0.11.0rc1, works as expected.
    Thanks for preparing the release, Jarek.

  4. ColtenOuO commented on Oct 8, 2026

    @ColtenOuO
    Contributor

    #73384 tested in common-ai 0.11.0rc1, works as expected too!

    Thanks for preparing the release, looking forward to the rapid development of common-ai ahead!

  5. pankajkoti commented on Oct 8, 2026

    @pankajkoti
    Member

    #74017 tested that it's included in common-ai 0.11.0rc1 and works as expected.
    Thank you for preparing the release

  6. zozo123 commented on Oct 8, 2026

    @zozo123
    Contributor

    #71676 and #74191 tested on rc1, works.

    • Add OpenSandbox backend for sandbox tools #71676 (common.ai 0.11.0rc1): I ran the PyPI wheel on Airflow 3.3.2 / Python 3.12 against a local OpenSandbox server. The PR's system-test Dag and its 64 unit tests pass, and command timeouts and sandbox cleanup behave as expected. One caveat, for a docs follow-up: when the server's egress sidecar runs in its default dns mode, a deny-all SandboxSpec() only blocks DNS, so direct-IP connections still get out. With [egress] mode = "dns+nft" they are blocked too, and everything above still passes. The backend can't tell the two modes apart on policy read-back.
    • Notify downstream Dags when COPY INTO writes a Unity (Databricks) table #74191 (databricks 7.22.0rc1): on a real SQL warehouse, COPY INTO emitted the canonical Unity table asset event and triggered the downstream Dag. Wrong table, wrong workspace and failed SQL emitted no event.

    Drafted-by: Claude Code (Opus 5.5) (no human review before posting)

  7. divyanshus2404 commented on Oct 8, 2026

    @divyanshus2404
    Contributor

    #71711 tested in apache-spark 6.3.3rc1, works as expected.

    Verified against the RC in a clean venv: all masking forms produce the expected output (key=value, key value, quoted values spanning tokens, uppercase keys, tab- and multi-space-separated values, and a sensitive flag with no value), and a multiline value no longer swallows the log lines that follow it.

    The scanner that replaced the regex also closes the complexity gap raised in review on my PR — "secret" * 10000, which still backtracked quadratically in my version (~2.4s), now completes in 0.16ms. 50k single token: 0.66ms.

    Thanks for preparing the release.


    Drafted-by: Claude Code; reviewed by @divyanshus2404 before posting

  8. aaron-y-chen commented on Oct 8, 2026

    @aaron-y-chen
    Contributor

    #73509 tested with apache-airflow-providers-amazon==9.38.0rc1 (Airflow 3.3.2, common-messaging 2.1.1), works as expected :)

  9. subhramit commented on Oct 8, 2026

    @subhramit
    Contributor
  10. yuseok89 commented on Oct 9, 2026

    @yuseok89
    Contributor

    #72892 tested in amazon 9.38.0rc1 and #73880 tested in google 22.7.0rc1, both work as expected.

  11. SEPURI-SAI-KRISHNA commented on Oct 9, 2026

    @SEPURI-SAI-KRISHNA
    Contributor

    Tested both of the changes I am listed for. Both work as expected.

    Environment: clean virtualenv on Python 3.11, installed from PyPI, apache-airflow 3.3.2. No dbt Cloud account or GCP project involved, since everything below is observable before the first API call. In each case I also checked the previous stable release to confirm the result depends on the change rather than passing either way.

    dbt.cloud 4.11.0rc1, Apply hook_params to deferred dbt Cloud job runs (#74199)

    Walking the installed wheel, the DbtCloudRunJobTrigger construction in operators/dbt.py now passes hook_params; on 4.10.0 it does not. In both releases the trigger already accepted it, kept it across serialize() and built its hook with **self.hook_params, so the operator's call site was the only gap and nothing else had to change.

    4.10.0 4.11.0rc1
    hook_params passed at the defer site absent present

    Checked at runtime with hook_params={"retry_limit": 7, "retry_delay": 3.5}: the operator retains them, its own hook honours them, and a trigger built with them serializes them intact.

    google 22.7.0rc1, Apply impersonation_chain to deferred BigQuery existence checks (#71648)

    Both deferral sites in sensors/bigquery.py now pass impersonation_chain, one for BigQueryTableExistenceTrigger and one for BigQueryTablePartitionExistenceTrigger; on 22.6.0 neither does. As above, the triggers accepted and serialized the argument in both releases, so only the sensors needed the change.

    22.6.0 22.7.0rc1
    BigQueryTableExistenceTrigger absent present
    BigQueryTablePartitionExistenceTrigger absent present

    Confirmed the trigger accepts impersonation_chain and serializes it as given.

    Import smoke check

    Importing every module of both providers: all 12 dbt Cloud modules import, and 297 of 333 google modules. The 36 that do not are all missing optional peers in this environment, other providers plus paramiko, kubernetes, apache-beam, cassandra, oracledb and similar, each failing with an explicit message naming what is absent. Nothing failed for a reason internal to either release.

  12. FrankYang0529 commented on Oct 9, 2026

    @FrankYang0529
    Member

    Tested apache.kafka 2.1.0rc1 and it works as expected:

    • Add KafkaSharedStreamProducer and KafkaSharedStreamTrigger #68625: I ran two AssetWatchers with KafkaSharedStreamTrigger on the same topic. The two triggers share one Kafka consumer. Both assets get every message. Offsets are committed per partition only after the asset events are stored. After a restart, committed messages are not delivered again. A connection without enable.auto.commit=false is refused. On Airflow 3.1.8 and 2.11.2, importing the shared-stream triggers raises AirflowOptionalProviderFeatureException.

    I found some issues for following providers:

  13. SEPURI-SAI-KRISHNA commented on Oct 9, 2026

    @SEPURI-SAI-KRISHNA
    Contributor

    Correcting my earlier comment: my verification of #74199 in dbt.cloud 4.11.0rc1 was wrong.

    I checked that hook_params survives serialize(), but I used {"retry_limit": 7, "retry_delay": 3.5}, two JSON serializable scalars. hook_params is a free form dict and the one key whose documented values are Python objects is retry_args, so my input could not exercise the case that matters. With a tenacity object in retry_args the task fails when it defers, and it fails after the dbt Cloud job has already started, which leaves the run orphaned.

    Thanks to @FrankYang0529 for catching it and for the fix in #74489.

    Treating that as a release blocker for dbt.cloud 4.11.0: shipping rc1 as is would regress any deferrable DbtCloudRunJobOperator whose hook_params carries retry_args, which worked on 4.10.0. The google 22.7.0rc1 item I reported is unaffected and my result there stands.

  14. r3wretrhy commented on Oct 9, 2026

    @r3wretrhy
    Contributor

    Checked apache-airflow-providers-apache-beam 6.3.1rc1: #72510 is included and the async hook now launches pipelines via create_subprocess_exec without a shell. Works as expected.

  15. moomindani commented on Oct 9, 2026

    @moomindani
    Contributor

    #74406 works as expected on the databricks 7.22.0 release candidate (with common-compat 1.21.0, live workspace): a deferrable DatabricksRunNowOperator with a DB-backed connection now defers and succeeds on Airflow 3.0.6, where 7.21.0 failed with You cannot use AsyncToSync in the same thread as an async event loop. Also checked on 3.2.2.


    Drafted-by: Claude Code (Opus 5.5); reviewed by @moomindani before posting

  16. pankajastro commented on Oct 9, 2026

    @pankajastro
    Member

    Checked #74277 and #73374. Both look good.

  17. potiuk commented on Oct 9, 2026

    @potiuk
    MemberAuthor

    Thank you all for the testing and for such detailed reports. The live-AWS, real-warehouse and before/after-the-RC comparisons are especially helpful. I've ticked the verified items in the issue description.

    Two items need follow-up:

    @zozo123: thanks for the OpenSandbox egress dns vs dns+nft finding. A docs follow-up for that would be great.


    Drafted-by: Claude Code (Opus 5.5); reviewed by @potiuk before posting

  18. AlejandroMorgante commented on Oct 9, 2026

    @AlejandroMorgante
    Contributor

    Validated the following changes included in the current provider release candidates:

    Environment: Breeze, Airflow 3.3.0, Python 3.11.16; providers installed from PyPI RC wheels.

    I’ll prepare a follow-up PR for GKE to mirror the EKS fallback-class approach, so importing the module still works when KubernetesPodExecOperator is unavailable. #74505

  19. bingqin2 commented on Oct 9, 2026

    @bingqin2
    Contributor

    Tested #74305 and #72953 in apache-airflow-providers-google==22.7.0rc1. Both work as expected.

    Setup: a clean virtualenv with Python 3.12.13, apache-airflow==3.3.2 and the RC from PyPI. I ran the same checks against 22.6.0 for comparison. I don't have a GCP project, so the BigQuery job states and the GCS blob calls are faked. The triggers, the operator, the tenacity retry policy and the transform subprocess are the installed code. shahar1's before/after run against real BigQuery is in #74356.

    Check 22.6.0 22.7.0rc1
    #74305: value check, job RUNNING on the first poll fails with Job running keeps polling, succeeds
    #74305: interval check, first job RUNNING on the first poll fails with Job completed (the second job's message) keeps polling, succeeds
    #74305: interval check, first job fails while the second runs reports Job running reports the first job's error
    #72953: download fails twice, download_num_attempts=3 fails after 1 call succeeds on call 3, after 2 s and 4 s waits
    #72953: upload fails once, upload_num_attempts=2 fails after 1 call succeeds on call 2
    #72953: download fails 3 times, download_num_attempts=3 raises after 1 call raises after 3 calls
    Script
    """Check #74305 and #72953 against an installed apache-airflow-providers-google wheel.
    
    No GCP access: BigQuery job states and GCS blob operations are faked, everything else
    (triggers, operator, tenacity retry policy, transform subprocess) is the installed code.
    """
    
    from __future__ import annotations
    
    import asyncio
    import importlib.metadata
    import logging
    import os
    import stat
    import sys
    import tempfile
    from pathlib import Path
    from unittest import mock
    
    import pendulum
    from google.api_core.exceptions import ServiceUnavailable
    
    logging.basicConfig(level=logging.WARNING, format="    log: %(message)s")
    
    VERSION = importlib.metadata.version("apache-airflow-providers-google")
    print(f"apache-airflow {importlib.metadata.version('apache-airflow')}, "
          f"apache-airflow-providers-google {VERSION}, Python {sys.version.split()[0]}")
    
    from airflow.providers.google.cloud.triggers.bigquery import (  # noqa: E402
        BigQueryIntervalCheckTrigger,
        BigQueryValueCheckTrigger,
    )
    
    RUNNING = {"status": "running", "message": "Job running"}
    DONE = {"status": "success", "message": "Job completed"}
    FAILED = {"status": "error", "message": "Syntax error: Unexpected keyword FROM at [1:8]"}
    
    
    def run_trigger(trigger, job_states):
        with mock.patch("airflow.providers.google.cloud.triggers.bigquery.BigQueryAsyncHook") as hook_cls:
            hook = hook_cls.return_value
            hook.get_job_status = mock.AsyncMock(side_effect=job_states)
            hook.get_sync_hook = mock.AsyncMock(
                return_value=mock.MagicMock(is_default_universe=mock.MagicMock(return_value=True))
            )
            hook.get_job_output = mock.AsyncMock(return_value={})
            hook.get_records = mock.MagicMock(side_effect=lambda _: [[2]])
    
            async def collect():
                return [event.payload async for event in trigger.run()]
    
            events = asyncio.run(collect())
            return events[0], hook.get_job_status.await_count
    
    
    def show(name, expected, event, polls):
        got = f"{event['status']}: {event['message']}"
        verdict = "OK " if got == expected else "BAD"
        print(f"  [{verdict}] {name}\n        expected {expected!r}\n        got      {got!r} ({polls} status calls)")
    
    
    print("\n#74305 BigQuery check triggers")
    value = BigQueryValueCheckTrigger(
        conn_id="google_cloud_default", sql="SELECT COUNT(*) FROM t", pass_value=2,
        job_id="job_1", project_id="p", poll_interval=0.01,
    )
    event, polls = run_trigger(value, [RUNNING, DONE])
    show("value check, job RUNNING on the first poll", "success: Job completed", event, polls)
    
    
    def interval():
        return BigQueryIntervalCheckTrigger(
            conn_id="google_cloud_default", first_job_id="job_1", second_job_id="job_2", project_id="p",
            table="t", metrics_thresholds={"COUNT(*)": 1.5}, poll_interval=0.01,
        )
    
    
    # get_job_status is awaited for the first job, then the second job, on every poll.
    event, polls = run_trigger(interval(), [RUNNING, DONE, DONE, DONE])
    show("interval check, first job RUNNING on the first poll", "success: Job completed", event, polls)
    event, polls = run_trigger(interval(), [FAILED, RUNNING])
    show("interval check, first job FAILED while the second runs", f"error: {FAILED['message']}", event, polls)
    
    print("\n#72953 GCSTimeSpanFileTransformOperator retry attempts")
    from airflow.providers.google.cloud.operators.gcs import GCSTimeSpanFileTransformOperator  # noqa: E402
    
    
    class FakeGCS:
        """A GCS client whose first download_failures downloads and upload_failures uploads fail."""
    
        def __init__(self, download_failures, upload_failures):
            self.left = {"download": download_failures, "upload": upload_failures}
            self.calls = {"download": 0, "upload": 0}
            self.uploaded = []
    
        def _maybe_fail(self, kind):
            self.calls[kind] += 1
            if self.left[kind] > 0:
                self.left[kind] -= 1
                raise ServiceUnavailable(f"{kind} attempt {self.calls[kind]}: 503 backend unavailable")
    
        def bucket(self, bucket_name):
            return self
    
        def blob(self, blob_name, chunk_size=None):
            gcs = self
    
            class Blob:
                def download_to_filename(self, filename):
                    gcs._maybe_fail("download")
                    Path(filename).write_text("hello\n")
    
                def upload_from_filename(self, filename):
                    gcs._maybe_fail("upload")
                    gcs.uploaded.append(blob_name)
    
            return Blob()
    
    
    def run_operator(download_failures, upload_failures, **attempts):
        gcs = FakeGCS(download_failures, upload_failures)
        hook = mock.MagicMock(project_id="p")
        hook.list_by_timespan.return_value = ["in/2026-10-09/a.txt"]
        hook.get_conn.return_value = gcs
        with tempfile.TemporaryDirectory() as tmp:
            script = Path(tmp) / "transform.sh"
            script.write_text('#!/bin/sh\ncp -R "$1"/. "$2"/\n')  # copy input to output
            script.chmod(script.stat().st_mode | stat.S_IEXEC)
            op = GCSTimeSpanFileTransformOperator(
                task_id="transform", source_bucket="src", source_prefix="in/%Y-%m-%d/",
                source_gcp_conn_id="google_cloud_default", destination_bucket="dst",
                destination_prefix="out/", destination_gcp_conn_id="google_cloud_default",
                transform_script=str(script), **attempts,
            )
            context = {
                "data_interval_start": pendulum.datetime(2026, 10, 9),
                "data_interval_end": pendulum.datetime(2026, 10, 10),
                "ti": mock.MagicMock(),
            }
            with (
                mock.patch("airflow.providers.google.cloud.operators.gcs.GCSHook", return_value=hook),
                mock.patch("tenacity.nap.time.sleep"),  # keep the retry waits, without waiting
            ):
                try:
                    result = op.execute(context)
                    outcome = f"success, uploaded {result}"
                except Exception as e:
                    outcome = f"{type(e).__name__}: {e}"
        return outcome, gcs.calls
    
    
    for name, failures, attempts, expect in [
        ("download fails twice, download_num_attempts=3", (2, 0), {"download_num_attempts": 3}, "success"),
        ("upload fails once, upload_num_attempts=2", (0, 1), {"upload_num_attempts": 2}, "success"),
        ("download fails 3 times, download_num_attempts=3", (3, 0), {"download_num_attempts": 3}, "ServiceUnavailable"),
    ]:
        outcome, calls = run_operator(*failures, **attempts)
        verdict = "OK " if outcome.startswith(expect) else "BAD"
        print(f"  [{verdict}] {name}\n        expected {expect}\n        got      {outcome} "
              f"(download calls {calls['download']}, upload calls {calls['upload']})")
  20. ccoliu commented on Oct 9, 2026

    @ccoliu
    Contributor

    Tested celery 3.25.0rc1 with apache/airflow:3.3.2 and [operators] default_queue = custom_queue: Use configured default queue for Celery executor callbacks (#73552) works as expected.

    Passing an ExecuteCallback workload to CeleryExecutor._process_workloads and checking the queue it is sent to:

    Callback celery 3.24.1 celery 3.25.0rc1
    no queue in callback data default ❌ custom_queue ✅
    queue set in callback data callback_queue callback_queue ✅

    The configured default queue is now used, and a queue set in the callback data still takes precedence.

  21. AlejandroMorgante commented on Oct 9, 2026

    @AlejandroMorgante
    Contributor

    Validated the following changes and the follow-up requested for this provider release candidate:

    • apache-airflow-providers-google==22.7.0rc1 — Add GKEPodExecOperator for existing Pods #72577: the earlier example_kubernetes_engine.py run passed against real GKE Autopilot (1 passed in 1099.27s), with Kubernetes provider 10.24.0rc1; command execution in an existing Pod, XCom output, and Pod/cluster cleanup were verified.
    • Fix GKE operator imports with older Kubernetes providers #74505 is now merged. A fresh comparison with Kubernetes provider 10.21.0 passed (2 passed in 4.34s): the published Google RC reproduces the module import failure, while the exact merged operator source keeps existing cluster/Pod operators usable and raises the actionable dependency error only when constructing GKEPodExecOperator, preserving the original ImportError as its cause.

    Environment: Breeze, Airflow 3.3.0, Python 3.11.16; Google RC installed from the PyPI wheel. The compatibility fix was checked separately using the merged source; it is not included in 22.7.0rc1 and needs validation in a new RC.

  22. abhinav-phi commented on Oct 10, 2026

    @abhinav-phi
    Contributor

    tested #73109 in apache-airflow-providers-amazon 9.38.0rc1, works as expected. environment: clean virtualenv on python 3.11 with apache-airflow 3.3.2, installed from pypi. driving the eks delete trigger against a stubbed client yields the status deleted event, and execute_complete now logs the success line for that and for a success event, while an error event logs nothing. the same run on 9.37.0 misses the success event, so that part is this change doing its job.

  23. FrankYang0529 commented on Oct 10, 2026

    @FrankYang0529
    Member

    I found two more issues for following providers:

  24. potiuk commented on Oct 10, 2026

    @potiuk
    MemberAuthor

    Thanks everyone for testing. I ticked #73690, #73109, #74305, #72953 and #73552.

    Four providers are excluded from this wave because of regressions:

    All four will be re-cut in an ad-hoc wave once the fixes are merged. Results already ticked here for unaffected PRs carry over. Thanks @FrankYang0529 for catching the last two and fixing them, and @AlejandroMorgante for #74505.

    The other providers in this wave stay in the vote.


    Drafted-by: Claude Code (Opus 5.5); reviewed by @potiuk before posting

  25. SameerMesiah97 commented on Oct 10, 2026

    @SameerMesiah97
    Contributor

    apache-airflow-providers-amazon==9.38.0rc1

    PR #73870: Cannot be tested deterministically. Unit tests are sufficient.

    apache-airflow-providers-snowflake==6.19.0rc1

    PR #70703: Changes are working as expected with no observed regressions.
    PR #73815: Changes are working as expected with no observed regressions.

  26. FrankYang0529 commented on Oct 10, 2026

    @FrankYang0529
    Member

    common.ai 0.11.0rc1 has one more regression.

    • Return an approved agent answer as output_type after human review #73904: With enable_hitl_review=True, an AgentOperator task now converts the approved answer with a pydantic TypeAdapter built from output_type. Following cases have different behavior from previous version. I create Fix agent HITL review for list, marker and function output types #74537 to fix it.
      • output_type=[Verdict, Other] (a list of output types): on 0.10.0 the task returns a dict. On 0.11.0rc1 the task fails after the approval with PydanticSchemaGenerationError.
      • output_type=ToolOutput(Verdict) (an output marker): on 0.10.0 the task returns a dict. On 0.11.0rc1 the task fails after the approval with AttributeError.
      • An output function: on 0.10.0 the function runs once. On 0.11.0rc1 it runs again after the approval, so any side effect in the function happens twice.
  27. keemgdeok commented on Oct 11, 2026

    @keemgdeok
    Contributor

    Verified #74143 in apache-airflow-providers-cncf-kubernetes==10.24.0rc1 from PyPI, with Airflow 3.3.2 and Python 3.12.14.

    Checked job_poll_interval=0.5, 60, and the default 10 through operator deferral, trigger serialization/reconstruction, and the hook's polling loop, for both successful and failed jobs: 6 passed.

    With provider 10.23.0, the four non-default cases reproduced the bug: the hook requested 10-second sleeps instead. Only the provider version changed; reinstalling the RC restored all six passes. pip check passed in each installation.

    The merge commit is included in the RC tag, and the installed operator, trigger, and hook sources match the PyPI wheel and tag.

    Scope: Kubernetes status responses and asyncio.sleep were mocked. This checks the installed polling path, without a live cluster or scheduler/triggerer deployment.


    Drafted-by: Codex (GPT-6); reviewed by @keemgdeok before posting

  28. filipeaaoliveira commented on Oct 11, 2026

    @filipeaaoliveira
    Contributor

    Verified #71092 in apache-airflow-providers-airbyte==6.2.0rc1 (PyPI) with Airflow 3.3.2, Python 3.12, against a real self-hosted Airbyte OSS 2.4.0 (abctl, OAuth client credentials), Faker → /dev/null connection, via AirbyteTriggerSyncOperator / airflow dags test.

    To simulate a loaded server, a local proxy delayed POST /jobs (and in one case the token request) by 8s:

    • no timeout configured → ReadTimeout at the 5s default, so default behavior is unchanged
    • timeout connection extra (30) → syncs triggered and completed successfully, including when the OAuth token request was also slow
    • AirbyteHook(timeout=...) works and overrides the extra; lower values (2s) are honored
    • invalid extras ("abc", 0, -5) → clear ValueError

    With provider 6.1.0, the same timeout extra is ignored and the call fails at 5s while Airbyte still creates the job, which is the issue this fixes. Also checked directly against Airbyte without the proxy: a full sync succeeded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:metaHigh-level information important to the communitytesting statusStatus of testing releases

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions