Repository navigation
Status of testing Providers that were prepared on September 09, 2026 #72902
Description
Activity
- addedkind:metaHigh-level information important to the communityHigh-level information important to the communitytesting statusStatus of testing releasesStatus of testing releases
on Sep 10, 2026 - changed the title
[-]Status of testing Providers that were prepared on <MONTH DD, YYYY>[/-][+]Status of testing Providers that were prepared on September 10, 2026[/+]on Sep 10, 2026 - changed the title
[-]Status of testing Providers that were prepared on September 10, 2026[/-][+]Status of testing Providers that were prepared on September 09, 2026[/+]on Sep 10, 2026 Tested my changes working for on Python 3.12.14 and Airflow 3.3.1 on apache-airflow-providers-databricks==7.20.0rc1 : the behavior in #70831, related to #70340, is correct. A Dag that passes both statement and statement_id now fails during parsing with ValueError: Provide exactly one of statement or statement_id. , including statement_id="" and a template that renders to None . Both cases executed SELECT 1 with 7.19.0. A statement-only control still ran successfully. A lone statement template that rendered to None failed after rendering with ValueError: One of either statement or statement_id must be provided.
Tested my changes working for on Python 3.12.14 and Airflow 3.3.1 on apache-airflow-providers-apache-iceberg==2.1.1rc1 : #72312 correctly supersedes #72173. Using a real AssetStateStoreAccessors and a real local Iceberg catalog and table, a restarted watcher at the stored snapshot emitted nothing. After a new snapshot, it emitted once and persisted the new watermark. The Airflow 3.3.1 accessor has no aget , and the RC did not call it.
Tested amazon 9.36.0rc1 for #72500 (EmrContainerSensor reporting success or an unknown job state). Installed apache-airflow-providers-amazon==9.36.0rc1 into an Airflow 3.1.3
virtualenv (Python 3.12) and exercised EmrContainerSensor.poke() against each state path with the hook mocked:
COMPLETED -> True
RUNNING -> False
FAILED -> raises AirflowException
SOME_FUTURE_STATE -> False
None -> False
The last two are the fix: an unrecognised state and a None response from the hook now keep the sensor poking instead of reporting success. The known states are unaffected.
Works as expected from my side.Looks good for my change (251cd91) from main (tested using a9f6c89). Tests for pagerduty, anthropic, and google all pass; The
ast-grephook I added also passes. That said, there were 6 openlineage dataproc-injection failures which are pre-existing and unrelated to thehttpx2switch, and they reproduce onmainlatest as well.I verified the RCs from PyPI in a clean 3.10 venv: google
22.5.0rc1, pagerduty5.2.7rc1, anthropic1.0.0rc1. Pins are right, and I exercised the real paths, not just imports — the cloud-sql proxy download viahttpcore2succeeded with truststore / TLS.send_eventhad a valid, successfulhttpx2.Responsereturning the dedup key.httpxis still in that venv but only transitively via google's other deps.Tested #72824 on Python 3.12.13 with apache-airflow 3.3.1 and apache-airflow-providers-amazon==9.36.0rc1:
EcsTaskFailToStart,EcsOperatorErrorandWaiterTerminalFailureall survive apickle.dumps/pickle.loadsround-trip with their message,failuresandlast_responseintact. Works as expected, thanks.Hi, Tested my change working on Python 3.12.13 and Airflow 3.3.1 with apache-airflow-providers-common-compat==1.19.0rc1: #72509 behaves as expected. Using real attrs 26.1.0 entities in a clean environment, constructing two
Tableinstances and appending aTagto one no longer leaks into the other —tags,columns,owners, andextraare all per-instance now, andColumn.tagsis
isolated the same way. Mutations also no longer bleed into the class defaults, so freshly constructed instances start empty as they should. +1 (non-binding)Tested the databricks 7.20.0 candidate wheel from
dist/dev/airflow/providers/2026-09-09/(sha512 verified) in a clean venv, so the code under test came from the packaged artifact rather than a source checkout —airflow 3.3.1, provider resolved fromsite-packages.One job covers both of my items: 101
condition_taskentries push the run's task list past the API's 100-per-page limit, and a trailing always-failing notebook task withmax_retries: 1produces two attempt entries for a singletask_key. Run against a live workspace, terminalresult_stateFAILEDas intended.#72304 —
get_run()returned 103 entries where it previously stopped at 100,get_run_tasks()agreed exactly (103 = 103), and all 102 declaredtask_keys were present.#72313 — the API returned two attempts for the failing task (
attempt_number0 and 1, distinct run ids) andextract_failed_task_errorsreported it once, carrying the last attempt's run id.Both good from me.
Drafted-by: Claude Code (Opus 5); reviewed by @moomindani before posting
Tested amazon 9.36.0rc1 for Fix region_name being ignored by the Step Functions execution trigger (#72625) — works as expected ✅
Installed the RC from PyPI into a clean venv (Python 3.12,
apache-airflow==3.3.1,apache-airflow-task-sdk==1.3.1) and verified against the installed distribution (not a source checkout), withAWS_DEFAULT_REGION=us-east-1so a regression would be visible:StepFunctionsExecutionCompleteTrigger(execution_arn=..., region_name="eu-west-1")→trigger.region_name == "eu-west-1", and the hook the deferred waiter polls with builds a boto3 client ineu-west-1.serialize()round-trip keepsregion_name, and the rebuilt trigger still pollseu-west-1(so the region survives a triggerer restart).- With no
region_namepassed, it still falls back to the connection/env default (us-east-1) — no regression for existing DAGs. - End-to-end via
StepFunctionStartExecutionOperator(deferrable=True, region_name="eu-west-1"): theTaskDeferredtrigger carries the region and pollseu-west-1. - The unit tests added in the PR (
providers/amazon/tests/unit/amazon/aws/triggers/test_step_function.py) pass against the RC wheel:3 passed.
Negative control on the previous release
9.35.1reproduces the original bug —trigger.region_nameisNoneand the waiter client is created inus-east-1despiteregion_name="eu-west-1"being passed.Thanks for preparing the release!
#72197 looks good. 🫡
Tested provider
apache kafka 2.0.0rc1manually and everything looks good!My changes are adding an allowlist for configured callbacks in a connection. I created a connection with an unknown callback and ran a dag. The task using the connection failed as expected with the correct error.
1 remaining item
Tested apache-airflow-providers-amazon==9.36.0rc1 for #72497 against a real GCS bucket and a real S3 bucket. Works as expected.
Tested all four items from a clean Python 3.12 venv with
apache-airflow==3.3.1and the RC wheels installed from PyPI. Each scenario was run against both the RC and previous release as a control.- fab 3.9.0rc1 (Fix FAB ignoring create_metadata_engine from local settings #71674):
db migrateandusers create/listnow work withcreate_metadata_engine, shared engines are reused correctly, and secondary binds still get independent engines. 3.8.1 fails withsqlite3.OperationalError. - http 6.1.0rc1 (Keep HttpEventTrigger asset watchers polling after a failed request #72376): failed polls now continue until success or
max_consecutive_failures; failure counts reset after a completed poll, serialization preserves the option, and0is rejected. 6.0.5 stops after the first failed request. - microsoft.azure 15.1.0rc1 (Add support for sending emails through Microsoft Graph #71565): verified real Graph request construction, auth, recipients, attachments, headers, dry-run/validation, repeated sends, and
MSGraphNotifier. The new backend/notifier are also present in provider metadata; 15.0.1 has neither. - teradata 3.6.3rc1 (Fail the Teradata compute cluster trigger on an unknown operation #72696): unknown operations now immediately emit an error without polling, while all valid operations and the missing-profile case retain their previous behavior. 3.6.2 polled indefinitely instead.
All four work as expected from my side.
- fab 3.9.0rc1 (Fix FAB ignoring create_metadata_engine from local settings #71674):
Tested
apache.hive 9.6.2rc1for #66751, installed from PyPI into a clean venv on Airflow 3.3.1 (with mysql 6.6.2 and presto 5.12.1). Works for me.What I exercised, driving
HiveStatsCollectionOperator.executewith the metastore, Presto and MySQL hooks stubbed and capturing the SQL and parameters:- The Presto stats query renders the WHERE clause with the hook's own placeholder and passes the partition values through
get_first(sql, parameters=...), so the values are no longer interpolated into the statement. - The
hive_statsSELECT and the DELETE on the previous-run path both use%swithparameters=, binding table name, partition repr and dttm. - Identifier quoting behaves as intended: a hyphenated column and partition key come out as
"weird-col"and"dt-col",db.odd-tablebecomesdb."odd-table"with the catalog left plain,db."already.quoted"is passed through without being re-escaped, and plain word identifiers are still emitted unquoted. That is the case that used to produce an invalid statement.
- The Presto stats query renders the WHERE clause with the hook's own placeholder and passes the partition values through
Validated apache-airflow-providers-cncf-kubernetes==10.22.0rc1 — #71244: example_kubernetes_pod_exec.py passed against a temporary Kubernetes 1.31.5 k3d cluster (1 passed). Pod creation and readiness, command execution in the existing container, stdout returned through XCom, Pod deletion, and post-test cleanup were verified.
Environment: Breeze, Airflow 3.1.3, Python 3.10
Tested
apache-airflow-providers-cncf-kubernetes==10.22.0rc1for #68890. (Environment: Breeze, Airflow 3.3.1, Python 3.12)Verified that
KubernetesPodOperator._set_name:- Accepts valid pod names without errors.
- Raises the expected validation exception (
AirflowExceptionon Airflow 3.3.1) when the name exceeds the limit, confirming backward compatibility.
apache-airflow-providers-amazon==9.36.0rc1PR #72455: Changes are working as expected with no observed regresssions.
Tested apache-airflow-providers-snowflake==6.17.0rc1 for apache/airflow#69635 in Breeze (Python 3.10, Snowflake SQL API mocked with requests_mock). Works as expected.
apache-airflow-providers-cncf-kubernetes==10.22.0rc1- PR Fix XCom sidecar helper mutating the caller's pod volumes #72522: Works as expecte
- PR Fix KubernetesPodOperator XCom loss when container_logs is a string #72502: Works as expected
apache-airflow-providers-amazon==9.36.0rc1
apache-airflow-providers-fab==3.9.0rc1
apache-airflow-providers-keycloak==0.10.0rc1 - PR Scope asset API responses to the assets a user may read #72682: The provider-side
filter_authorized_assets/get_authorized_assetsoverrides work as expected.
Verified #71350, it worked very well :)
Verified the 2026-09-09 RC (38 providers) end to end — all checks pass.
Artifacts (
dist/dev/airflow/providers/2026-09-09): folder complete (231 files = 38×6 + source trio; 77.sha512/ 77.asc, no double-extension leftovers); SHA512 77/77; GPG 77/77 good, all on the RM's key1E7A857875E0EE49DB99E4431B17D6C5938CED00(in KEYS); reproducible build 77/77 byte-identical — 76 wheels+sdists rebuilt from tagproviders/2026-09-09(209e34c5022a78c7691ac68a50f60d976242e17d), plus the source tarball; Apache RAT 0.18 — 0 unapproved / 0 unknown (10146 standard files, all AL2.0).Consistency: all 38 rc tags point at the wave commit; 38/38
pyproject.tomlversions match their changelog tops; 38/38 PyPI rc pages resolve with both wheel and sdist.My own changes in this wave — ticked above. Each was confirmed present in the shipped wheel, not just at the tag, and its tests run green:
PR Provider Tests #72646 akeyless 0.3.1 37 passed #72645, #72657, #72198, #72199 fab 3.9.0 281 passed #72207, #72205 keycloak 0.10.0 202 passed, 1 skipped For #72646 I also exercised the namespace guard from a clean venv containing only the RC wheel: a cross-team key under multi-team + team-scoped path is refused, while a flat key,
use_team_secrets_path=False, an absent team name, and multi-team disabled all still resolve.One non-blocking observation (pre-existing, unchanged since the 2026-08-18 wave): the source tarball ships two OFL-1.1 web fonts at
registry/public/fonts/{jetbrains-mono-latin,plus-jakarta-sans-latin}.woff2while the rootLICENSEis bare AL2.0 with no third-party section. Confirmed this wave that they are source-tarball only — no provider wheel contains them. A LICENSE follow-up, not a re-cut.
Drafted-by: Claude Opus 5; reviewed by @potiuk before posting
Tested following providers and all work as expected:
- amazon 9.36.0rc1
- Fix incorrect documented defaults in Amazon operators and sensors #72315: Compared the documented defaults of the five changed parameters with their
inspect.signaturedefaults.
- Fix incorrect documented defaults in Amazon operators and sensors #72315: Compared the documented defaults of the five changed parameters with their
- apache.beam 6.2.4rc1
- Fix Apache Beam hook type error with mypy 2.2.0 typeshed #69946: Type-checked the installed hook with mypy 2.2.0, which reports the
[type-var]error on 6.2.3 but not on the RC, and ran a small DirectRunner pipeline throughBeamHookon both versions to confirm runtime behavior did not change.
- Fix Apache Beam hook type error with mypy 2.2.0 typeshed #69946: Type-checked the installed hook with mypy 2.2.0, which reports the
- Fix mismatched AirflowConfigException in celery and edge3 #72437: Started a Celery worker with a Redis broker and ran
airflow pluginswith malformed config values for[celery] ssl_active,[dag_processor] stale_bundle_cleanup_interval, and[edge] api_enabled. The previous releases crash, hang, or silently skip the edge3 plugin, while the RCs fall back as intended.- celery 3.24.0rc1
- edge3 4.3.2rc1
- databricks 7.20.0rc1
- Add performance_target to Databricks RunNow and CreateJobs operators #72148: Ran
DatabricksRunNowOperatorandDatabricksCreateJobsOperatoragainst Databricks API and checked thatperformance_targetcan work.
- Add performance_target to Databricks RunNow and CreateJobs operators #72148: Ran
- fab 3.9.0rc1
- Remove unused FAB app-init helpers that could never run #72610: Confirmed the three removed helpers are gone from the RC. API server with the FAB auth manager on rc and previous versions can work and got the same results from the login page, token endpoint, core API, and FAB users API.
- Make SQLAlchemy an optional dependency for JDBC and YDB providers #72373: Checked that both wheels now declare a
sqlalchemyextra and that the hooks import SQLAlchemy lazily and show an install hint when the import fails. Run queries throughJdbcHookagainst Postgres 16 and throughYDBHookagainst a local YDB and got the same results as the previous releases.- jdbc 5.6.0rc1
- ydb 2.6.0rc1
- microsoft.azure 15.1.0rc1
- Keep MSGraph pagination offset across paginated pages #71986: Paged through 30 messages from Microsoft Graph endpoint with
$top=12, where 15.0.1 skips a page and its deferrable operator fails withKeyError: 'value'whenresult_processorreturns thevaluelist. The RC returns all 30 messages through bothpaginated_run()and the deferrable operator. - Restrict MSGraph deferrable pagination to the configured host #71842: Ran pagination through the deferrable operator and confirmed that the RC refuses a pagination link to a host other than the configured one before sending any request, while links to the same host and to hosts listed in
allowed_hostsstill work.
- Keep MSGraph pagination offset across paginated pages #71986: Paged through 30 messages from Microsoft Graph endpoint with
- odbc 4.13.0rc1
- Declare allow_driver_in_extra in the ODBC provider configuration metadata #72547: Checked that
airflow config listandairflow config get-valuenow show[providers.odbc] allow_driver_in_extra. Connect throughOdbcHookwith the SQLite ODBC driver to confirm the handling of thedriverextra did not change.
- Declare allow_driver_in_extra in the ODBC provider configuration metadata #72547: Checked that
- opensearch 1.12.1rc1
- Do not forward an empty ca_certs to the OpenSearch log client #72552: Configured remote logging against OpenSearch 2.19.6 over HTTPS with
ca_certsset to an empty value, where 1.12.0 fails to load the logging config and the RC writes and reads back a log line with certificate verification still on.
- Do not forward an empty ca_certs to the OpenSearch log client #72552: Configured remote logging against OpenSearch 2.19.6 over HTTPS with
- redis 4.6.0rc1
- Add Redis cluster mode support to RedisHook #71067: Pointed
RedisHookwithcluster: trueat a three-master Redis Cluster The RC reads and writes keys on every master, including throughRedisKeySensor, while 4.5.0 getsMovedErrorfor keys outside the seed node.
- Add Redis cluster mode support to RedisHook #71067: Pointed
- amazon 9.36.0rc1
Thank you everyone. Providers are released.
I invite everyone to help improve providers for the next release, a list of open issues can be found here.
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 akeyless: 0.3.1rc1
Provider amazon: 9.36.0rc1
Linked issues:
Linked issues:
Linked issues:
Linked issues:
Linked issues:
Provider anthropic: 1.0.0rc1
Linked issues:
Linked issues:
Provider apache.beam: 6.2.4rc1
Provider apache.hive: 9.6.2rc1
Provider apache.iceberg: 2.1.1rc1
Provider apache.kafka: 2.0.0rc1
Provider celery: 3.24.0rc1
broker_transport_options(#70228): @stephen-brackenLinked issues:
Provider cncf.kubernetes: 10.22.0rc1
Linked issues:
Provider cohere: 1.7.0rc1
Provider common.ai: 0.9.0rc1
Linked issues:
Linked issues:
airflow.utils.stateimport withairflow.sdkin Common AI Provider (#72446): @simar-rekhiLinked issues:
Provider common.compat: 1.19.0rc1
Linked issues:
Provider common.io: 1.9.0rc1
Linked issues:
Provider common.messaging: 2.1.0rc1
queuesupport forAsyncCallbackandBaseEventTrigger(#71346): @zach-overflowProvider databricks: 7.20.0rc1
Linked issues:
Linked issues:
Linked issues:
Linked issues:
Provider edge3: 4.3.2rc1
Linked issues:
Provider exasol: 4.10.6rc1
Linked issues:
Provider fab: 3.9.0rc1
Linked issues:
Linked issues:
Linked issues:
Linked issues:
Linked issues:
Provider git: 0.5.0rc1
Linked issues:
Provider google: 22.5.0rc1
Linked issues:
Linked issues:
Linked issues:
Linked issues:
httpx2(#72111): @zach-overflowLinked issues:
Provider http: 6.1.0rc1
Linked issues:
Provider influxdb: 2.11.1rc1
Provider informatica: 0.2.1rc1
airflow.sdk.TaskInstanceStatefor informatica provider (#72445): @w-shahidProvider jdbc: 5.6.0rc1
Provider keycloak: 0.10.0rc1
Linked issues:
Linked issues:
Provider microsoft.azure: 15.1.0rc1
Linked issues:
Linked issues:
Linked issues:
Linked issues:
httpx2(#72111): @zach-overflowLinked issues:
Linked issues:
Provider odbc: 4.13.0rc1
Linked issues:
Provider opensearch: 1.12.1rc1
Provider pagerduty: 5.2.7rc1
httpx2(#72111): @zach-overflowLinked issues:
Provider redis: 4.6.0rc1
Linked issues:
Provider snowflake: 6.17.0rc1
Linked issues:
Provider standard: 1.19.0rc1
Provider teradata: 3.6.3rc1
Linked issues:
Linked issues:
Provider yandex: 4.5.2rc1
Provider ydb: 2.6.0rc1
All users involved in the PRs:
@nandeshkanagaraju @olegkachur-e @xBis7 @amoghrajesh @Sdnsoumy @RaphCodec @jayamanikharyono @dheerajturaga @w-shahid @kacpermuda @peloyeje @Crowiant @Lee-W @baha-bouali @MaksYermak @justinpakzad @23tae @rjgoyln @raphaelauv @MarthalaJagruthiReddy @mitre88 @ramitkataria @jeff3071 @Samin061 @dabla @zohaibfast99 @ahilashsasidharan @pankajastro @bingqin2 @ColtenOuO @Priyaj11 @vikramkoka @moomindani @kada2004 @weiyu1029 @stephen-bracken @guan404ming @yuseok89 @lubimow-xwf @joseph-bergin @edsu @molcay @LE0-Lin @KSchmidAmilar @AlejandroMorgante @henry3260 @o-nikolas @simar-rekhi @SameerMesiah97 @FrankYang0529 @Har1sh-k @SEPURI-SAI-KRISHNA @aaron-y-chen @Vamsi-klu @zach-overflow @keith991001 @jason810496 @steveahnahn @KidAmnesiac1 @vincbeck @potiuk