You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "keith991001 (via GitHub)" <gi...@apache.org> on 2026/09/15 07:14:44 UTC

[PR] Enforce the message queue provider contract without breaking scheme-only providers [airflow]

keith991001 opened a new pull request, #73168:
URL: https://github.com/apache/airflow/pull/73168

   Implements **option (a)** from #72916: `BaseMessageQueueProvider` declares `@abstractmethod`s but never inherited `abc.ABC`, so an incomplete subclass instantiates silently, and its unimplemented `queue_matches` returns `None` — making the provider silently unmatched in `MessageQueueTrigger` dispatch instead of failing loudly. Three in-tree providers (google pubsub, redis, azure service bus) rely on that gap by implementing only `trigger_class` + `scheme`.
   
   **The change aligns the contract with reality instead of breaking the scheme-only providers:**
   
   - `BaseMessageQueueProvider` now inherits `abc.ABC`
   - `trigger_class` stays the only abstract method — a subclass without it now fails at instantiation with `TypeError` instead of silently never matching
   - `queue_matches` / `trigger_kwargs` become concrete defaults (`return False` / `return {}`), documented as the scheme-only baseline to override for queue-URI dispatch
   - No provider changes needed: verified by running the queue/trigger test suites of all six in-tree subclasses (amazon sqs, apache.kafka, ibm.mq, redis, microsoft.azure, google) — all green
   
   Test module updated accordingly: contract-enforcement tests (only `trigger_class` abstract, incomplete subclass fails loudly, scheme-only shape instantiates) plus the dispatch defaults.
   
   If maintainers prefer option (b) (keep all three abstract and add the missing methods to the three scheme-only providers) I'm happy to switch direction.
   
   closes: #72916
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Fable 5)
   
   Generated-by: Claude Code (Fable 5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Enforce the message queue provider contract without breaking scheme-only providers [airflow]

Posted by "vincbeck (via GitHub)" <gi...@apache.org>.
vincbeck merged PR #73168:
URL: https://github.com/apache/airflow/pull/73168


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org