NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2475 most downloaded on PyPI
Provider package apache-airflow-providers-standard for Apache Airflow
Last release 5 days ago
29 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 40 of 40 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
87 releases · first in 2024
One column per month.
- Template every connection id accepted by provider operators
Release Date: 2026-09-29
Template every connection id accepted by provider operators (#73286)
Disable 'start_from_trigger' when 'target_time' is templated (#72659)
Fix exception messages rendering as a tuple instead of the value (#73296)
Stop FileSensor deferring when deferrable is not set (#73297)
Fix HITLTrigger failing on a human-in-the-loop response recorded from a timeout default, which has no responder (#72155)
Fix broken class xrefs in standard provider docs (#73360)
Template every connection id accepted by provider operators (#73286)
Avoid parsing templated DateTimeSensorAsync targets at Dag parse time (#72659)
Fix exception messages rendering as a tuple instead of the value (#73296)
Stop FileSensor deferring when deferrable is not set (#73297)
Fix HITLTrigger failing on a human-in-the-loop response recorded from a timeout default, which has no responder (#72155)
Fix broken class xrefs in standard provider docs (#73360)
Nothing published for this version
- Support multiple_outputs in @task.bash
Release Date: 2026-09-14
Support multiple_outputs in @task.bash (#71808)
Fix FileTrigger walking a stale path when globbing (#70640)
Remove TaskFlow recommendation in doc (#71315)
Support multiple_outputs in @task.bash (#71808)
Fix FileTrigger walking a stale path when globbing (#70640)
Remove TaskFlow recommendation in doc (#71315)
Nothing published for this version
- Support TaskFlow call syntax on stub tasks for the Lang SDK
Release Date: 2026-08-23
Support TaskFlow call syntax on stub tasks for the Lang SDK (#69757)
Support TaskFlow call syntax on stub tasks for the Lang SDK (#69757)
Nothing published for this version
ExternalTaskSensor ’s poll_interval is deprecated in favor of poke_interval . The old name still works, but the effective deferrable poll interval for…
Release Date: 2026-08-08
Note
HITLOperator.hitl_summary is now a read-only property that builds a fresh snapshot on each access, so mutating the returned dict has no effect. Subclasses and runtime code that previously did self.hitl_summary["key"] = value must write to the new public hitl_summary_extra dict instead – self.hitl_summary_extra["key"] = value . Reading hitl_summary is unchanged: it still returns the merged summary including those entries.
ExternalTaskSensor ’s poll_interval is deprecated in favor of poke_interval . The old name still works, but the effective deferrable poll interval for users who set neither now comes from BaseSensorOperator.poke_interval (60s) instead of the previous hard-coded 2s. Set poke_interval explicitly to keep a faster cadence.
WaitSensor: make time_to_wait templated (#70480)
Make the HITLOperator summary a lazily rendered read-only property with a public 'hitl_summary_extra' extension point (#70345, #70391)
Give each task its own start trigger arguments in standard sensors (#70888)
Deprecating 'poll_interval' in 'ExternalTaskSensor' for 'poke_interval' (#68997)
Fix BashOperator script detection after templating (#70369)
Fix DateTimeSensor crash when target_time renders to a datetime (#70320)
Validate TriggerDagRunOperator logical_date after template rendering (#70490)
Note
HITLOperator.hitl_summary is now a read-only property that builds a fresh snapshot on each access, so mutating the returned dict has no effect. Subclasses and runtime code that previously did self.hitl_summary["key"] = value must write to the new public hitl_summary_extra dict instead -- self.hitl_summary_extra["key"] = value. Reading hitl_summary is unchanged: it still returns the merged summary including those entries.
ExternalTaskSensor's poll_interval is deprecated in favor of poke_interval. The old name still works, but the effective deferrable poll interval for users who set neither now comes from BaseSensorOperator.poke_interval (60s) instead of the previous hard-coded 2s. Set poke_interval explicitly to keep a faster cadence.
WaitSensor: make time_to_wait templated (#70480)
Make the HITLOperator summary a lazily rendered read-only property with a public 'hitl_summary_extra' extension point (#70345, #70391)
Give each task its own start trigger arguments in standard sensors (#70888)
Deprecating 'poll_interval' in 'ExternalTaskSensor' for 'poke_interval' (#68997)
Fix BashOperator script detection after templating (#70369)
Fix DateTimeSensor crash when target_time renders to a datetime (#70320)
Validate TriggerDagRunOperator logical_date after template rendering (#70490)
Nothing published for this version
Nothing published for this version
- Propagate 'partition_date' to consumers of partitioned assets
Release Date: 2026-07-10
Propagate 'partition_date' to consumers of partitioned assets (#67285)
Propagate 'partition_date' to consumers of partitioned assets (#67285)
Nothing published for this version
- Add 'awaiting_input' task state for Human-in-the-loop, off the triggerer
Release Date: 2026-06-22
Add 'awaiting_input' task state for Human-in-the-loop, off the triggerer (#68028)
Block retry_policy argument for StubOperator (#68551)
Fix Triggered DAG button not visible during queued/running state (#67327)
Add 'awaiting_input' task state for Human-in-the-loop, off the triggerer (#68028)
Block retry_policy argument for StubOperator (#68551)
Fix Triggered DAG button not visible during queued/running state (#67327)
Nothing published for this version
- Share one poll loop across sibling event triggers
Release Date: 2026-06-07
Share one poll loop across sibling event triggers (#66584)
Fix TriggerDagRunOperator fail_when_dag_is_paused on Airflow 3.2+ (#67726)
Remove findings from positional session check in Core Dag Modules (#67789)
Remove further findings from positional session check (#67712)
Add prek hook enforcing the "example" tag on example DAGs (#67354)
fix typo "@tash.bash" -> "@task.bash (#67301)
Share one poll loop across sibling event triggers (#66584)
Fix TriggerDagRunOperator fail_when_dag_is_paused on Airflow 3.2+ (#67726)
Remove findings from positional session check in Core Dag Modules (#67789)
Remove further findings from positional session check (#67712)
Add prek hook enforcing the "example" tag on example DAGs (#67354)
fix typo "@tash.bash" -> "@task.bash (#67301)
Nothing published for this version
The Airflow variable used by PythonVirtualenvOperator to override the virtualenv cache hash has been renamed from PythonVirtualenvOperator.cache_key t
Release Date: 2026-05-23
Warning
The Airflow variable used by PythonVirtualenvOperator to override the virtualenv cache hash has been renamed from PythonVirtualenvOperator.cache_key to python_virtualenv_operator_cache_key . The old name contained a dot which is incompatible with secrets backends that restrict allowed characters (e.g. Azure Key Vault). Cached virtual environments will be rebuilt once due to the changed hash input.
Fix 'None' Task ID state when matching states in 'ExternalTaskSensor' (#66881)
Fix error messages in 'PythonVirtualenvOperator' when Azure Key Vault secret backend is configured (#67157)
Warning
The Airflow variable used by PythonVirtualenvOperator to override the virtualenv cache hash has been renamed from PythonVirtualenvOperator.cache_key to python_virtualenv_operator_cache_key. The old name contained a dot which is incompatible with secrets backends that restrict allowed characters (e.g. Azure Key Vault). Cached virtual environments will be rebuilt once due to the changed hash input.
Fix 'None' Task ID state when matching states in 'ExternalTaskSensor' (#66881)
Fix error messages in 'PythonVirtualenvOperator' when Azure Key Vault secret backend is configured (#67157)
Nothing published for this version
- Add run_after to TriggerDagRunOperator
Release Date: 2026-05-11
Add run_after to TriggerDagRunOperator (#62259)
Add partition_key to Context (#65359)
Add run_after to TriggerDagRunOperator (#62259)
Add partition_key to Context (#65359)
Nothing published for this version
- ExternalTaskSensor check_existence ignored in deferrable mode (Airflow < 3.0)
Release Date: 2026-04-12
ExternalTaskSensor check_existence ignored in deferrable mode (Airflow < 3.0) (#64394)
Remove premature param value validation in HITLOperator (#64108)
Load hook metadata from YAML without importing Hook class (#63826)
ExternalTaskSensor check_existence ignored in deferrable mode (Airflow < 3.0) (#64394)
Remove premature param value validation in HITLOperator (#64108)
Load hook metadata from YAML without importing Hook class (#63826)
Nothing published for this version
- Improve error message for non-serializable op_kwargs in PythonVirtualenvOperator
Release Date: 2026-03-28
Improve error message for non-serializable op_kwargs in PythonVirtualenvOperator (#63270)
Fix ExternalTaskSensor to use timeout parameter in deferrable mode (#… (#62556)
Add response_timeout to HITLOperator to prevent race with execution_timeout (#63475)
Add Python 3.14 Support (#63520)
Improve error message for non-serializable op_kwargs in PythonVirtualenvOperator (#63270)
Fix ExternalTaskSensor to use timeout parameter in deferrable mode (#… (#62556)
Add response_timeout to HITLOperator to prevent race with execution_timeout (#63475)
Add Python 3.14 Support (#63520)
Nothing published for this version
- Fix PythonVirtualenvOperator cannot run with pendulum<3
Release Date: 2026-03-13
Fix PythonVirtualenvOperator cannot run with pendulum<3 (#62604)
Consolidate 'SkipMixin' imports through 'common-compat' layer (#62776)
Move SkipMixin and BranchMixIn to Task SDK (#62749)
Move determine_kwargs and KeywordParameters to SDK DecoratedOperator (#62746)
Fix PythonVirtualenvOperator cannot run with pendulum<3 (#62604)
Consolidate 'SkipMixin' imports through 'common-compat' layer (#62776)
Move SkipMixin and BranchMixIn to Task SDK (#62749)
Move determine_kwargs and KeywordParameters to SDK DecoratedOperator (#62746)
Nothing published for this version
- feat: Add OpenLineage support for HITL operators
Release Date: 2026-03-02
feat: Add OpenLineage support for HITL operators (#61867)
Add note support to TriggerDagRunOperator (#60810)
feat: Add OpenLineage support for HITL operators (#61867)
Add note support to TriggerDagRunOperator (#60810)
Nothing published for this version
- Fix ASYNC240: replace blocking filesystem calls with anyio
Release Date: 2026-02-14
Fix ASYNC240: replace blocking filesystem calls with anyio (#61616)
Fix ASYNC240: replace blocking filesystem calls with anyio (#61616)
Nothing published for this version
The new feature Add support for async callables in ''PythonOperator'' will only work on Airflow 3.2.
Release Date: 2026-02-02
Note
The new feature Add support for async callables in ''PythonOperator'' will only work on Airflow 3.2.
Add support for async callables in ''PythonOperator'' (#60268)
Define 'TaskInstanceKey' in task-sdk to support client server separation (#60776)
Fix static check fail in hitl/standard provider (#60708)
Add HITL operators to standard provider index docs (#60681)
Note
The new feature Add support for async callables in ''PythonOperator'' will only work on Airflow 3.2.
Add support for async callables in ''PythonOperator'' (#60268)
Define 'TaskInstanceKey' in task-sdk to support client server separation (#60776)
Fix static check fail in hitl/standard provider (#60708)
Add HITL operators to standard provider index docs (#60681)
Nothing published for this version
[AIRFLOW-3923] Update flask-admin dependency to 1.5.3 to resolve security vulnerabilities from safety
none_skipped trigger rule (#5032)airflow test. (#4828)allowed_states for ExternalTaskSensor (#4536)fallback arg in airflow.configuration.get (#4567)query_params in BigQueryOperator is wrong. (#4876)Release Date: 2026-01-17
Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)
New year means updated Copyright notices (#60344)
Remove the compatibility shim for StartTriggerArgs in standard provider (#60300)
Updated conf import for std,es,os,ms providers (#60030)
Remove documentation on TimeDeltaSensorAsync (#59651)
Consume ''AirflowOptionalProviderFeatureException'' from compat sdk in providers (#60335)
New year means updated Copyright notices (#60344)
Remove the compatibility shim for StartTriggerArgs in standard provider (#60300)
Updated conf import for std,es,os,ms providers (#60030)
Remove documentation on TimeDeltaSensorAsync (#59651)
Nothing published for this version
- Fix DAG bundle imports in subprocess operators
Release Date: 2026-01-02
Fix DAG bundle imports in subprocess operators (#57631)
TaskInstance unused method cleanup (#59835)
Fix DAG bundle imports in subprocess operators (#57631)
TaskInstance unused method cleanup (#59835)
Nothing published for this version
- fix uv venv fail without direct internet access
Release Date: 2025-12-13
fix uv venv fail without direct internet access (#59046)
Add backcompat for exceptions in providers (#58727)
Implement timetables in SDK (#58669)
nit: rename TriggerDagRunOperator._defer to deferrable (#58925)
fix uv venv fail without direct internet access (#59046)
Add backcompat for exceptions in providers (#58727)
Implement timetables in SDK (#58669)
nit: rename TriggerDagRunOperator._defer to deferrable (#58925)
Nothing published for this version
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy < https://github.com/apache/a
Release Date: 2025-12-02
Note
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy < https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers >_.
Auto-inject OpenLineage parent info into TriggerDagRunOperator conf (#58672)
Add few attrs from external_task sensor to OpenLineage events (#58719)
Allow virtualenv code to access connections/variables and send logs (#58148)
Add source to Param (#58615)
TriggerDagRunOperator deferral mode not working for Airflow 3 (#58497)
Move out some exceptions to TaskSDK (#54505)
Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)
Remove SDK reference for NOTSET in Airflow Core (#58258)
Fix lower bound dependency to common-compat provider (#58833)
Remove global from task instance session (#58601)
Note
This release of provider is only available for Airflow 2.11+ as explained in the Apache Airflow providers support policy <https://github.com/apache/airflow/blob/main/PROVIDERS.rst#minimum-supported-version-of-airflow-for-community-managed-providers>_.
Auto-inject OpenLineage parent info into TriggerDagRunOperator conf (#58672)
Add few attrs from external_task sensor to OpenLineage events (#58719)
Allow virtualenv code to access connections/variables and send logs (#58148)
Add source to Param (#58615)
TriggerDagRunOperator deferral mode not working for Airflow 3 (#58497)
Move out some exceptions to TaskSDK (#54505)
Bump minimum Airflow version in providers to Airflow 2.11.0 (#58612)
Remove SDK reference for NOTSET in Airflow Core (#58258)
Fix lower bound dependency to common-compat provider (#58833)
Remove global from task instance session (#58601)
Nothing published for this version
Nothing published for this version
- fix: HITL params not validating
Release Date: 2025-11-17
fix: HITL params not validating (#57547)
Fix: Handle string formatted conf param in TriggerDagRunOperator (#57214)
Fix walking through wildcarded directory in FileTrigger (#57155)
Convert all airflow distributions to be compliant with ASF requirements (#58138)
Move subprocess utility closer to usage in python venv operators (#57189)
Add caution on using Airflow packages in virtualenv operator (#57599)
fix: HITL params not validating (#57547)
Fix: Handle string formatted conf param in TriggerDagRunOperator (#57214)
Fix walking through wildcarded directory in FileTrigger (#57155)
Convert all airflow distributions to be compliant with ASF requirements (#58138)
Move subprocess utility closer to usage in python venv operators (#57189)
Add caution on using Airflow packages in virtualenv operator (#57599)
Nothing published for this version
- Simplify version-specific imports in the Standard provider
Release Date: 2025-10-26
Simplify version-specific imports in the Standard provider (#56867)
Throw NotImplementedError error when fail_when_dag_is_paused is used in TriggerDagRunOperator with Airflow 3.x (#56965)
Correct 'Dag' to 'DAG' for code snippets in provider docs (#56727)
Simplify version-specific imports in the Standard provider (#56867)
Throw NotImplementedError error when fail_when_dag_is_paused is used in TriggerDagRunOperator with Airflow 3.x (#56965)
Correct 'Dag' to 'DAG' for code snippets in provider docs (#56727)
Nothing published for this version
- Add a '@task.stub' to allow tasks in other languages to be defined in dags
Release Date: 2025-09-29
Add a '@task.stub' to allow tasks in other languages to be defined in dags (#56055)
Fix DagBag imports in Airflow 3.2+ (#56109)
Move DagBag to airflow/dag_processing (#55139)
Add a '@task.stub' to allow tasks in other languages to be defined in dags (#56055)
Fix DagBag imports in Airflow 3.2+ (#56109)
Move DagBag to airflow/dag_processing (#55139)
Nothing published for this version
Nothing published for this version
- feat(hitl): get rid off "Fallback to defaults" in HITL
Release Date: 2025-09-22
feat(hitl): get rid off "Fallback to defaults" in HITL (#55536)
feat(hitl): add fail_on_reject to ApprovalOperator (#55255)
fix(hitl): make the user model in HITLDetail consistent with airflow user model (#55463)
fix(hitl): Resolve Conflict 409 in API server when user actions at nearly timeout (#55243)
fix(hitl): fix HITL timeout error handling (#55760)
refactor(hitl): rename response_at to responded_at (#55535)
refactor(hitl): remove AirflowException from HITLTriggerEventError inheritance (#55763)
feat(hitl): get rid off "Fallback to defaults" in HITL (#55536)
feat(hitl): add fail_on_reject to ApprovalOperator (#55255)
fix(hitl): make the user model in HITLDetail consistent with airflow user model (#55463)
fix(hitl): Resolve Conflict 409 in API server when user actions at nearly timeout (#55243)
fix(hitl): fix HITL timeout error handling (#55760)
refactor(hitl): rename response_at to responded_at (#55535)
refactor(hitl): remove AirflowException from HITLTriggerEventError inheritance (#55763)
Nothing published for this version
for the record, generated with: ~/node_modules/github-changes/bin/index.js -o airbnb -r airflow --only-pulls --use-commit-body --between-tags 1.6.2...
Raw changelog
for the record, generated with:
~/node_modules/github-changes/bin/index.js -o airbnb -r airflow --only-pulls --use-commit-body --between-tags 1.6.2...1.7.0rc1 --token {your_gh_token_here}
Session.remove after each run, to survive DB restart (@KMK-ONLINE)Release Date: 2025-09-09
Add options_mapping support to HITLBranchOperator (#55093)
feat(hitl): update url generating utility (#55022)
feat(hitl): add utility functions for generating the url to required actions page (#54827)
Display a more friendly error when invalid branches are provided to branch operators (#54273)
Add owners/actors/respondents to HITLOperators (#54308)
Fix ''BranchPythonOperator'' failure when callable returns None (#54991)
Fix external_python task failure when ''expect_airflow=False'' (#54809)
Fix typos in HITL-related code and comments (#54670)
refactor(hitl): rename HITLDetail.user_id as HITLDetail.responded_user_id and add HITLDetail.responded_user_name (#55019)
Revert "Fix rendering of template fields with start from trigger" (#55037)
Change StartTriggerArgs imports (#54856)
Do not use HITLDetailResponse from core in sdk (#54358)
Move DagBag to SDK and make it return SDK DAG objects (#53918)
Remove MappedOperator inheritance (#53696)
Make term Dag consistent in providers docs (#55101)
Add options_mapping support to HITLBranchOperator (#55093)
feat(hitl): update url generating utility (#55022)
feat(hitl): add utility functions for generating the url to required actions page (#54827)
Display a more friendly error when invalid branches are provided to branch operators (#54273)
Add owners/actors/respondents to HITLOperators (#54308)
Fix ''BranchPythonOperator'' failure when callable returns None (#54991)
Fix external_python task failure when ''expect_airflow=False'' (#54809)
Fix typos in HITL-related code and comments (#54670)
refactor(hitl): rename HITLDetail.user_id as HITLDetail.responded_user_id and add HITLDetail.responded_user_name (#55019)
Revert "Fix rendering of template fields with start from trigger" (#55037)
Change StartTriggerArgs imports (#54856)
Do not use HITLDetailResponse from core in sdk (#54358)
Move DagBag to SDK and make it return SDK DAG objects (#53918)
Remove MappedOperator inheritance (#53696)
Make term Dag consistent in providers docs (#55101)
Nothing published for this version
[scheduler] the notion of DAG runs allows for more parallelization, and controls around scheduling (max number of running task instance per DAG, max n
v1.6.0 brings:
Thanks to everyone in the community for all the PRs (stellar contributions!), comments and issue reporting.
Release Date: 2025-08-17
feat(HITL): add 'notifiers' to HITLOperator (#54128)
feat(HITL): add HITLBranchOperator (#53960)
feat(HITL): improve hitl trigger logging message (#53850)
feat(HITL): add "timedout" column to HITLTriggerEventSuccessPayload (#53852)
Restore 'execute_complete' functionality 'TimeSensor' when 'deferrable=True' (#53669)
Fix several deprecation warnings related to airflow.sdk (#53791)
Fix pycache_cleanup path handling in PythonVirtualenvOperator (#54214)
fix(HITL): guard empty options or chosen_options when writing response (#54355)
refactor(HITL): replace timezone usage with airflow.sdk.timezone (#53962)
refactor(HITL): make default options class variables to avoid typo (#53849)
Add a warning about python interpreter using with uv (#54262)
Introduce 'StdoutCaptureManager' to isolate stdout from 'logging' logs (#54065)
Move some items in 'airflow.utils.context' to appropriate places (#53600)
Fix BranchPythonOperator doc (#54205)
feat(HITL): add 'notifiers' to HITLOperator (#54128)
feat(HITL): add HITLBranchOperator (#53960)
feat(HITL): improve hitl trigger logging message (#53850)
feat(HITL): add "timedout" column to HITLTriggerEventSuccessPayload (#53852)
Restore 'execute_complete' functionality 'TimeSensor' when 'deferrable=True' (#53669)
Fix several deprecation warnings related to airflow.sdk (#53791)
Fix pycache_cleanup path handling in PythonVirtualenvOperator (#54214)
fix(HITL): guard empty options or chosen_options when writing response (#54355)
refactor(HITL): replace timezone usage with airflow.sdk.timezone (#53962)
refactor(HITL): make default options class variables to avoid typo (#53849)
Add a warning about python interpreter using with uv (#54262)
Introduce 'StdoutCaptureManager' to isolate stdout from 'logging' logs (#54065)
Move some items in 'airflow.utils.context' to appropriate places (#53600)
Fix BranchPythonOperator doc (#54205)
Nothing published for this version
Nothing published for this version
v1.5.0 is a huge release. Tons of important features.
v1.5.0 is a huge release. Tons of important features.
Make sure to run airflow upgradedb after you upgrade
Improvements:
airflow upgradedb to get your database up to date as you upgrade AirflowRelease Date: 2025-08-02
Add venv pycache clean up for the PythonVirtualenvOperator (#53390)
Add Human-in-the-loop logic to core Airflow and implement 'HITLOperator', 'ApprovalOperator', 'HITLEntryOperator' in standard provider (#52868)
Fix key error in _handle_execution_date_fn for ExternalTaskSensor (#53728)
fix: Type mismatch for DateInterval in latest only operator (#53541)
fix(HITL): Fix HITLEntryOperator "options" and "defaults" handling (#53184)
fix(HITL): handle hitl details when task instance is retried (#53824)
Fix unreachable code mypy warnings in standard provider (#53431)
Align main branch after standard provider 1.4.1 release (#53511)
Add Python 3.13 support for Airflow. (#46891)
Cleanup mypy ignore in standard provider where possible (#53308)
Remove type ignore across codebase after mypy upgrade (#53243)
Remove direct scheduler BaseOperator refs (#52234)
Remove upper-binding for "python-requires" (#52980)
Temporarily switch to use >=,< pattern instead of '~=' (#52967)
Move 'BaseHook' imports to version_compat for standard provider (#52766)
Deprecate and move 'airflow.utils.task_group' to SDK (#53450)
Deprecate decorators from Core (#53629)
Replace usages of XCOM_RETURN_KEY in providers to not be from utils (#53170)
Remove 'set_current_context' from 'airflow.models.taskinstance' (#53036)
Replace direct BaseOperator import with version_compat import (#53847)
Fix typo in serialized_params (#53848)
docs: Correct TaskFlow capitalization in documentation (#51794)
Add venv pycache clean up for the PythonVirtualenvOperator (#53390)
Add Human-in-the-loop logic to core Airflow and implement 'HITLOperator', 'ApprovalOperator', 'HITLEntryOperator' in standard provider (#52868)
Fix key error in _handle_execution_date_fn for ExternalTaskSensor (#53728)
fix: Type mismatch for DateInterval in latest only operator (#53541)
fix(HITL): Fix HITLEntryOperator "options" and "defaults" handling (#53184)
fix(HITL): handle hitl details when task instance is retried (#53824)
Fix unreachable code mypy warnings in standard provider (#53431)
Align main branch after standard provider 1.4.1 release (#53511)
Add Python 3.13 support for Airflow. (#46891)
Cleanup mypy ignore in standard provider where possible (#53308)
Remove type ignore across codebase after mypy upgrade (#53243)
Remove direct scheduler BaseOperator refs (#52234)
Remove upper-binding for "python-requires" (#52980)
Temporarily switch to use >=,< pattern instead of '~=' (#52967)
Move 'BaseHook' imports to version_compat for standard provider (#52766)
Deprecate and move 'airflow.utils.task_group' to SDK (#53450)
Deprecate decorators from Core (#53629)
Replace usages of XCOM_RETURN_KEY in providers to not be from utils (#53170)
Remove 'set_current_context' from 'airflow.models.taskinstance' (#53036)
Replace direct BaseOperator import with version_compat import (#53847)
Fix typo in serialized_params (#53848)
docs: Correct TaskFlow capitalization in documentation (#51794)
Nothing published for this version
- Fix sensor skipping in Airflow 3.x branching operators
Release Date: 2025-07-18
Fix sensor skipping in Airflow 3.x branching operators (#53455)
Nothing published for this version
Python3 compatibility improvements
Release Date: 2025-07-06
Add support for 'PackageIndex' connections in 'PythonVirtualenvOperator' (#52288)
Honor 'index_urls' when venv is created with 'uv' in 'PythonVirtualenvOperator' (#52287)
Move 'BaseHook' implementation to task SDK (#51873)
Disable UP038 ruff rule and revert mandatory 'X | Y' in insintance checks (#52644)
Upgrade ruff to latest version (0.12.1) (#52562)
Move compat shim in Standard Provider to 'version_compat.py' (#52567)
Add a bunch of no-redef ignores so Mypy is happy (#52507)
Drop support for Python 3.9 (#52072)
Replace 'models.BaseOperator' to Task SDK one for Standard Provider (#52292)
Add deprecation to 'airflow/sensors/base.py' (#52249)
Add support for 'PackageIndex' connections in 'PythonVirtualenvOperator' (#52288)
Honor 'index_urls' when venv is created with 'uv' in 'PythonVirtualenvOperator' (#52287)
Move 'BaseHook' implementation to task SDK (#51873)
Disable UP038 ruff rule and revert mandatory 'X | Y' in insintance checks (#52644)
Upgrade ruff to latest version (0.12.1) (#52562)
Move compat shim in Standard Provider to 'version_compat.py' (#52567)
Add a bunch of no-redef ignores so Mypy is happy (#52507)
Drop support for Python 3.9 (#52072)
Replace 'models.BaseOperator' to Task SDK one for Standard Provider (#52292)
Add deprecation to 'airflow/sensors/base.py' (#52249)
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →