NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3409 most downloaded on PyPI
Provider package apache-airflow-providers-openlineage for Apache Airflow
Last release 25 days ago
23 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 58 of 58 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
125 releases · first in 2023
Nothing published for this version
Fix task retries when they receive sigkill and have retries and properly handle sigterm
sigkill and have retries and properly handle sigterm (#16301)default_impersonation config (#17229)kubernetes cleanup-pods which fails on invalid label key (#17298)TaskInstance does not show queued_by_job_id & external_executor_id (#17179)SecretsMasker is not configured (#17101)__init_subclass__ in subclasses of BaseOperator (#17027)priority_weight during parsing (#16765)deps` and task_group`` during DAG Serialization (#16734)AttributeError: datetime.timezone object has no attribute name (#16599)UserModelView controls. (#17431)secret_key mis-configured (#17410)execution_date in task_instance.refresh_from_db (#16809)LocalTaskJob during task exit (#16289)SQLAlchemy<1.4 constraint (#16630)dnspython (#16698)FlaskAppBuilder 3.3.2+ (#17208)LocalExecutor (#16623)DagFileProcessor and DagFileProcessorProcess out of scheduler_job.py (#16581)One column per quarter.
Release Date: 2025-04-14
Move ObjectStoragePath and attach to Task SDK (#48906)
Make '@task' import from airflow.sdk (#48896)
Move ObjectStoragePath and attach to Task SDK (#48906)
Make '@task' import from airflow.sdk (#48896)
Nothing published for this version
Only allow the webserver to request from the worker log server
CeleryKubernetesExecutor (#16700)token (#16474)LocalTaskJob (#16852)Release Date: 2025-04-09
fix: Adjust OpenLineage DefaultExtractor for RuntimeTaskInstance in Airflow 3 (#47673)
Stop trying to reconfigure the ORM in the OpenLineage workers (#47580)
fix: Re-add configuring orm for OpenLineage's listener on scheduler (#48049)
fix: remove use of get_inlet_defs and get_outlet_defs from OpenLineage (#48792)
Make datetime objects in Context as Pendulum objects (#48592)
fix: OpenLineage BaseExtractor's on_failure should call on_complete by default (#48456)
Fix OL tests due to decorators move to standard provider (#48808)
add OpenLineage configuration injection to SparkSubmitOperator (#47508)
feat: Add dagrun's end_date and duration to OL facet (#47901)
Use TaskInstance ID as FK in TaskReschedule instead of the multiple fields (#47459)
serialize http transports contained in composite transport (#47444)
Implement task-level "on" callbacks in sdk (#48002)
Calculate retry eligibility before task runs (#47996)
Implement triggering_asset_events in task sdk (#48650)
nit: log more details about OpenLineage exceptions being caught (#48459)
Add backcompat to openlineage provider method (#48406)
fix: Adjust OpenLineage DefaultExtractor for RuntimeTaskInstance in Airflow 3 (#47673)
Stop trying to reconfigure the ORM in the OpenLineage workers (#47580)
fix: Re-add configuring orm for OpenLineage's listener on scheduler (#48049)
fix: remove use of get_inlet_defs and get_outlet_defs from OpenLineage (#48792)
Make datetime objects in Context as Pendulum objects (#48592)
fix: OpenLineage BaseExtractor's on_failure should call on_complete by default (#48456)
Fix OL tests due to decorators move to standard provider (#48808)
add OpenLineage configuration injection to SparkSubmitOperator (#47508)
feat: Add dagrun's end_date and duration to OL facet (#47901)
Use TaskInstance ID as FK in TaskReschedule instead of the multiple fields (#47459)
serialize http transports contained in composite transport (#47444)
Implement task-level "on" callbacks in sdk (#48002)
Calculate retry eligibility before task runs (#47996)
Implement triggering_asset_events in task sdk (#48650)
nit: log more details about OpenLineage exceptions being caught (#48459)
Add backcompat to openlineage provider method (#48406)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix normalize-url vulnerability
PyPI (#16594)dag_run.conf is a dict (#15057)only_active parameter to /dags endpoint (#14306)filebeat 7 (#14625)passphrase and private_key to default sensitive field names (#16392)airflow task run without --local/--raw for KubeExecutor (#16108)log.exception when there is no exception (#16047)/ (#16018)Release Date: 2025-03-13
fix: OpenLineage serialization of dataset timetables for Airflow 2.9 (#47150)
chore: Update description of 'execution_timeout' in OpenLineage provider.yaml (#47448)
Remove the old 'task run' commands and LocalTaskJob (#47453)
Move task_sdk to a standalone task-sdk distribution (#47451)
Move uuid6 to be devel dependency of openlineage (#47464)
revert removing 'external_trigger' from OpenLineage provider (#47383)
Implement stale dag bundle cleanup (#46503)
Replace 'external_trigger' check with DagRunType (#45961)
Runtime context shouldn't have start_date as a key (#46961)
Upgrade flit to 3.11.0 (#46938)
fix: OpenLineage serialization of dataset timetables for Airflow 2.9 (#47150)
chore: Update description of 'execution_timeout' in OpenLineage provider.yaml (#47448)
Remove the old 'task run' commands and LocalTaskJob (#47453)
Move task_sdk to a standalone task-sdk distribution (#47451)
Move uuid6 to be devel dependency of openlineage (#47464)
revert removing 'external_trigger' from OpenLineage provider (#47383)
Implement stale dag bundle cleanup (#46503)
Replace 'external_trigger' check with DagRunType (#45961)
Runtime context shouldn't have start_date as a key (#46961)
Upgrade flit to 3.11.0 (#46938)
Nothing published for this version
- Remove AirflowContextDeprecationWarning as all context should be clean for Airflow 3
Release Date: 2025-02-26
change listener API, add basic support for task instance listeners in TaskSDK, make OpenLineage provider support Airflow 3's listener interface (#45294)
feat: Add ProcessingEngineRunFacet to all OL events (#46283)
feat: automatically inject OL transport info into spark jobs (#45326)
feat: Add OpenLineage support for some SQL to GCS operators (#45242)
feat: automatically inject OL info into spark job in DataprocCreateBatchOperator (#44612)
Update OpenLineage emmiter to cope with nullable logical_date (#46722)
fix: OL sql parsing add try-except for sqlalchemy engine (#46366)
OpenLineage: Include 'AirflowDagRunFacet' in complete/failed events (#45615)
Adding uuid6 as a dependency for openlineage (#46653)
Remove AirflowContextDeprecationWarning as all context should be clean for Airflow 3 (#46601)
Remove Airflow 3 Deprecation Warning dependency in OTel Provider (#46600)
AIP-72: Move Secrets Masker to task SDK (#46375)
Add run_after column to DagRun model (#45732)
Remove old lineage stuff (#45260)
Start porting mapped task to SDK (#45627)
chore: Update docstring for DatabaseInfo in OpenLineage provider (#45638)
Remove classes from 'typing_compat' that can be imported directly (#45589)
updated 404 hyperlink to gcstogcsoperator (#45311)
pass error for on_task_instance_failed in task sdk (#46941)
change listener API, add basic support for task instance listeners in TaskSDK, make OpenLineage provider support Airflow 3's listener interface (#45294)
feat: Add ProcessingEngineRunFacet to all OL events (#46283)
feat: automatically inject OL transport info into spark jobs (#45326)
feat: Add OpenLineage support for some SQL to GCS operators (#45242)
feat: automatically inject OL info into spark job in DataprocCreateBatchOperator (#44612)
Update OpenLineage emmiter to cope with nullable logical_date (#46722)
fix: OL sql parsing add try-except for sqlalchemy engine (#46366)
OpenLineage: Include 'AirflowDagRunFacet' in complete/failed events (#45615)
Adding uuid6 as a dependency for openlineage (#46653)
Remove AirflowContextDeprecationWarning as all context should be clean for Airflow 3 (#46601)
Remove Airflow 3 Deprecation Warning dependency in OTel Provider (#46600)
AIP-72: Move Secrets Masker to task SDK (#46375)
Add run_after column to DagRun model (#45732)
Remove old lineage stuff (#45260)
Start porting mapped task to SDK (#45627)
chore: Update docstring for DatabaseInfo in OpenLineage provider (#45638)
Remove classes from 'typing_compat' that can be imported directly (#45589)
updated 404 hyperlink to gcstogcsoperator (#45311)
pass error for on_task_instance_failed in task sdk (#46941)
Bump stylelint to remove vulnerable sub-dependency
New Features """"""""""""
PythonVirtualenvDecorator to Taskflow API (#14761)Taskgroup decorator (#15034)SubprocessHook for running commands from operators (#13423)WeekDayBranchOperator (#13997)worker_pod_pending_timeout support (#15263)template_fields_renderers additions (#15130)AirflowSkipException on exit code 99 (by default, configurable) (#13421) (#14963)airflow jobs check CLI command to check health of jobs (Scheduler etc) (#14519)DateTimeBranchOperator to BranchDateTimeOperator (#14720)Improvements """"""""""""
DbApiHook (#15581)apply_default to subclasses of BaseOperator (#15667)KubernetesExecutor pod templates to allow access to IAM permissions (#15669)airflow db check-migrations (#15662)secret_key when Webserver > 1 (#15546)JSONFormatter (#15414)on_failure_callback when SIGTERM is received (#15172)worker_refresh_interval to 6000 seconds (#14970)[celery] default_queue config to [operators] default_queue to re-use between executors (#14699)Bug Fixes """""""""
updateTaskInstancesState API endpoint when dry_run not passed (#15889)drawDagStatsForDag in dags.html (#13884)NotPreviouslySkippedDep (#13933)KubernetesExecutor (#14795)KubernetesPodOperator (#15388)dag.partial_subset (#13700) (#15308)pod_id for KubernetesPodOperator (#15445)pod_id ends with hyphen in KubernetesPodOperator (#15443)pool_slots > 1 (#15426)sync-perm to work correctly when update_fab_perms = False (#14847)GCSObjectsWtihPrefixExistenceSensor (#14179)CeleryKubernetesExecutor bug (#13247)StackdriverTaskHandler (#13784)func.sum may return Decimal that break rest APIs (#15585)AlreadyExists exception when the execution_date is same (#15174)sync_metadata inside DagFileProcessorManager (#15121)docker-py update to resolve docker op issues (#15731)user_id from API schema (#15117)airflow info work with pipes (#14528)CollectionInfo in all Collections that have total_entries (#14366)task_instance_mutation_hook when importing airflow.models.dagrun (#15851)Doc only changes """"""""""""""""
markdownlint and yamllint config files (#15682)git_sync_template.yaml (#13197)Misc/Internal """""""""""""
logging.exception redundancy (#14823)stylelint to remove vulnerable sub-dependency (#15784)ssri from 6.0.1 to 6.0.2 in /airflow/www (#15437)datepicker for task instance detail view (#15284)tableau extra (#13595)cached_property on Python 3.8 where possible (#14606)flynt. (#13732)jquery ready instead of vanilla js (#15258)Webpack entries (#14551)We’ve tried to make as few breaking changes as possible and to provide deprecation path in the code, especially in the case of anything called in the…
The full changelog is about 3,000 lines long (already excluding everything backported to 1.10), so for now I’ll simply share some of the major features in 2.0.0 compared to 1.10.14:
(Known in 2.0.0alphas as Functional DAGs.)
DAGs are now much much nicer to author especially when using PythonOperator. Dependencies are handled more clearly and XCom is nicer to use
A quick teaser of what DAGs can now look like:
from airflow.decorators import dag, task
from airflow.utils.dates import days_ago
@dag(default_args={'owner': 'airflow'}, schedule_interval=None, start_date=days_ago(2))
def tutorial_taskflow_api_etl():
@task
def extract():
return {"1001": 301.27, "1002": 433.21, "1003": 502.22}
@task
def transform(order_data_dict: dict) -> dict:
total_order_value = 0
for value in order_data_dict.values():
total_order_value += value
return {"total_order_value": total_order_value}
@task()
def load(total_order_value: float):
print("Total order value is: %.2f" % total_order_value)
order_data = extract()
order_summary = transform(order_data)
load(order_summary["total_order_value"])
tutorial_etl_dag = tutorial_taskflow_api_etl()
We now have a fully supported, no-longer-experimental API with a comprehensive OpenAPI specification
Read more here:
REST API Documentation.
As part of AIP-15 (Scheduler HA+performance) and other work Kamil did, we significantly improved the performance of the Airflow Scheduler. It now starts tasks much, MUCH quicker.
Over at Astronomer.io we’ve benchmarked the scheduler—it’s fast (we had to triple check the numbers as we don’t quite believe them at first!)
It’s now possible and supported to run more than a single scheduler instance. This is super useful for both resiliency (in case a scheduler goes down) and scheduling performance.
To fully use this feature you need Postgres 9.6+ or MySQL 8+ (MySQL 5, and MariaDB won’t work with more than one scheduler I’m afraid).
There’s no config or other set up required to run more than one scheduler—just start up a scheduler somewhere else (ensuring it has access to the DAG files) and it will cooperate with your existing schedulers through the database.
For more information, read the Scheduler HA documentation.
SubDAGs were commonly used for grouping tasks in the UI, but they had many drawbacks in their execution behaviour (primarirly that they only executed a single task in parallel!) To improve this experience, we’ve introduced “Task Groups”: a method for organizing tasks which provides the same grouping behaviour as a subdag without any of the execution-time drawbacks.
SubDAGs will still work for now, but we think that any previous use of SubDAGs can now be replaced with task groups. If you find an example where this isn’t the case, please let us know by opening an issue on GitHub
For more information, check out the Task Group documentation.
We’ve given the Airflow UI a visual refresh and updated some of the styling. Check out the UI section of the docs for screenshots.
We have also added an option to auto-refresh task states in Graph View so you no longer need to continuously press the refresh button :).
If you make heavy use of sensors in your Airflow cluster, you might find that sensor execution takes up a significant proportion of your cluster even with “reschedule” mode. To improve this, we’ve added a new mode called “Smart Sensors”.
This feature is in “early-access”: it’s been well-tested by AirBnB and is “stable”/usable, but we reserve the right to make backwards-incompatible changes to it in a future release (if we have to. We’ll try very hard not to!)
For Airflow 2.0, we have re-architected the KubernetesExecutor in a fashion that is simultaneously faster, easier to understand, and more flexible for Airflow users. Users will now be able to access the full Kubernetes API to create a .yaml pod_template_file instead of specifying parameters in their airflow.cfg.
We have also replaced the executor_config dictionary with the pod_override parameter, which takes a Kubernetes V1Pod object for a 1:1 setting override. These changes have removed over three thousand lines of code from the KubernetesExecutor, which makes it run faster and creates fewer potential errors.
Airflow 2.0 is not a monolithic “one to rule them all” package. We’ve split Airflow into core and 61 (for now) provider packages. Each provider package is for either a particular external service (Google, Amazon, Microsoft, Snowflake), a database (Postgres, MySQL), or a protocol (HTTP/FTP). Now you can create a custom Airflow installation from “building” blocks and choose only what you need, plus add whatever other requirements you might have. Some of the common providers are installed automatically (ftp, http, imap, sqlite) as they are commonly used. Other providers are automatically installed when you choose appropriate extras when installing Airflow.
The provider architecture should make it much easier to get a fully customized, yet consistent runtime with the right set of Python dependencies.
But that’s not all: you can write your own custom providers and add things like custom connection types, customizations of the Connection Forms, and extra links to your operators in a manageable way. You can build your own provider and install it as a Python package and have your customizations visible right in the Airflow UI.
Security
As part of Airflow 2.0 effort, there has been a conscious focus on Security and reducing areas of exposure. This is represented across different functional areas in different forms. For example, in the new REST API, all operations now require authorization. Similarly, in the configuration settings, the Fernet key is now required to be specified.
Configuration in the form of the airflow.cfg file has been rationalized further in distinct sections, specifically around “core”. Additionally, a significant amount of configuration options have been deprecated or moved to individual component-specific configuration files, such as the pod-template-file for Kubernetes execution-related configuration.
We’ve tried to make as few breaking changes as possible and to provide deprecation path in the code, especially in the case of anything called in the DAG. That said, please read through UPDATING.md to check what might affect you. For example: We re-organized the layout of operators (they now all live under airflow.providers.*) but the old names should continue to work - you’ll just notice a lot of DeprecationWarnings that need to be fixed up.
Release Date: 2024-12-26
Note
This release of provider is only available for Airflow 2.9+ as explained in the Apache Airflow providers support policy .
Warning
All deprecated classes, parameters and features have been removed from the OpenLineage provider package. The following breaking changes were introduced:
Utils
Removed normalize_sql function from openlineage.utils module.
Remove Provider Deprecations in OpenLineage (#44636)
add clear_number to OpenLineage's dagrun-level event run id generation (#44617)
utilize more information to deterministically generate OpenLineage run_id (#43936)
feat: automatically inject OL info into spark job in DataprocSubmitJobOperator (#44477)
Remove references to AIRFLOW_V_2_9_PLUS (#44987)
Bump minimum Airflow version in providers to Airflow 2.9.0 (#44956)
Consistent way of checking Airflow version in providers (#44686)
add basic system tests for OpenLineage (#43643)
Move Asset user facing components to task_sdk (#43773)
Rename execution_date to logical_date across codebase (#43902)
Note
This release of provider is only available for Airflow 2.9+ as explained in the Apache Airflow providers support policy.
Warning
All deprecated classes, parameters and features have been removed from the OpenLineage provider package. The following breaking changes were introduced:
Utils
Removed normalize_sql function from openlineage.utils module.
Remove Provider Deprecations in OpenLineage (#44636)
add clear_number to OpenLineage's dagrun-level event run id generation (#44617)
utilize more information to deterministically generate OpenLineage run_id (#43936)
feat: automatically inject OL info into spark job in DataprocSubmitJobOperator (#44477)
Remove references to AIRFLOW_V_2_9_PLUS (#44987)
Bump minimum Airflow version in providers to Airflow 2.9.0 (#44956)
Consistent way of checking Airflow version in providers (#44686)
add basic system tests for OpenLineage (#43643)
Move Asset user facing components to task_sdk (#43773)
Rename execution_date to logical_date across codebase (#43902)
Nothing published for this version
Nothing published for this version
- Add support for semicolon stripping to DbApiHook, PrestoHook, and TrinoHook
Release Date: 2024-11-18
Add support for semicolon stripping to DbApiHook, PrestoHook, and TrinoHook (#41916)
Add ProcessingEngineRunFacet to OL DAG Start event (#43213)
serialize asset/dataset timetable conditions in OpenLineage info also for Airflow 2 (#43434)
OpenLineage: accept whole config when instantiating OpenLineageClient. (#43740)
Temporarily limit openlineage to <1.24.0 (#43732)
Move python operator to Standard provider (#42081)
Nothing published for this version
- feat(providers/openlineage): Use asset in common provider
Release Date: 2024-10-31
feat(providers/openlineage): Use asset in common provider (#43111)
Ignore attr-defined for compat import (#43301)
nit: remove taskgroup's tooltip from OL's AirflowJobFacet (#43152)
require 1.2.1 common.compat for openlineage provider (#43039)
feat(providers/openlineage): Use asset in common provider (#43111)
Ignore attr-defined for compat import (#43301)
nit: remove taskgroup's tooltip from OL's AirflowJobFacet (#43152)
require 1.2.1 common.compat for openlineage provider (#43039)
Nothing published for this version
- Change imports to use Standard provider for BashOperator
Release Date: 2024-10-14
Change imports to use Standard provider for BashOperator (#42252)
Drop python3.8 support core and providers (#42766)
Rename dataset related python variable names to asset (#41348)
Change imports to use Standard provider for BashOperator (#42252)
Drop python3.8 support core and providers (#42766)
Rename dataset related python variable names to asset (#41348)
Nothing published for this version
- fix: OpenLineage dag start event not being emitted
Release Date: 2024-10-01
fix: OpenLineage dag start event not being emitted (#42448)
fix: typo in error stack trace formatting for clearer output (#42017)
Nothing published for this version
- feat: notify about potential serialization failures when sending DagRun, don't serialize unnecessary params, guard listener for exceptions
Release Date: 2024-09-24
feat: notify about potential serialization failures when sending DagRun, don't serialize unnecessary params, guard listener for exceptions (#41690)
fix: cast list to flattened string in openlineage InfoJsonEncodable (#41786)
chore: bump OL provider dependencies versions (#42059)
move to dag_run.logical_date from execution date in OpenLineage provider (#41889)
Unify DAG schedule args and change default to None (#41453)
feat: notify about potential serialization failures when sending DagRun, don't serialize unnecessary params, guard listener for exceptions (#41690)
fix: cast list to flattened string in openlineage InfoJsonEncodable (#41786)
chore: bump OL provider dependencies versions (#42059)
move to dag_run.logical_date from execution date in OpenLineage provider (#41889)
Unify DAG schedule args and change default to None (#41453)
Nothing published for this version
- feat: remove openlineage client deprecated from_environment() method
Release Date: 2024-08-28
Note
This release of provider is only available for Airflow 2.8+ as explained in the Apache Airflow providers support policy .
feat: add debug facet to all OpenLineage events (#41217)
feat: add fileloc to DAG info in AirflowRunFacet (#41311)
feat: remove openlineage client deprecated from_environment() method (#41310)
feat: openlineage listener captures hook-level lineage (#41482)
fix: get task dependencies without serializing task tree to string (#41494)
fix: return empty data instead of None when OpenLineage on_start method is missing (#41268)
fix: replace dagTree with downstream_task_ids (#41587)
Bump minimum Airflow version in providers to Airflow 2.8.0 (#41396)
chore: remove openlineage deprecation warnings (#41284)
Note
This release of provider is only available for Airflow 2.8+ as explained in the Apache Airflow providers support policy.
feat: add debug facet to all OpenLineage events (#41217)
feat: add fileloc to DAG info in AirflowRunFacet (#41311)
feat: remove openlineage client deprecated from_environment() method (#41310)
feat: openlineage listener captures hook-level lineage (#41482)
fix: get task dependencies without serializing task tree to string (#41494)
fix: return empty data instead of None when OpenLineage on_start method is missing (#41268)
fix: replace dagTree with downstream_task_ids (#41587)
Bump minimum Airflow version in providers to Airflow 2.8.0 (#41396)
chore: remove openlineage deprecation warnings (#41284)
Nothing published for this version
Nothing published for this version
- openlineage: remove deprecated parentRun facet key
Release Date: 2024-08-06
Add AirflowRun on COMPLETE/FAIL events (#40996)
openlineage: extend custom_run_facets to also be executed on complete and fail (#40953)
openlineage: migrate OpenLineage provider to V2 facets. (#39530)
openlineage: Add AirflowRunFacet for dag runEvents (#40854)
[AIP-62] Translate AIP-60 URI to OpenLineage (#40173)
Ability to add custom facet in OpenLineage events (#38982)
openlineage: add method to common.compat to not force hooks to try/except every 2.10 hook lineage call (#40812)
openlineage: use airflow provided getters from conf (#40790)
openlineage: add config to include 'full' task info based on conf setting (#40589)
Add TaskInstance log_url to OpenLineage facet (#40797)
openlineage: add deferrable information to task info in airflow run facet (#40682)
Adjust default extractor's on_failure detection for airflow 2.10 fix (#41094)
openlineage: make value of slots in attrs.define consistent across all OL usages (#40992)
Set 'slots' to True for facets used in DagRun (#40972)
openlineage: fix / add some task attributes in AirflowRunFacet (#40725)
openlineage: replace dt.now with airflow.utils.timezone.utcnow (#40887)
openlineage: remove deprecated parentRun facet key (#40681)
Nothing published for this version
- fix openlineage parsing dag tree with MappedOperator
Release Date: 2024-07-12
fix openlineage parsing dag tree with MappedOperator (#40621)
Nothing published for this version
- fix: sqa deprecations for airflow providers
Release Date: 2024-07-04
local task job: add timeout, to not kill on_task_instance_success listener prematurely (#39890)
openlineage: add some debug logging around sql parser call sites (#40200)
Add task SLA and queued datetime information to AirflowRunFacet (#40091)
Add error stacktrace to OpenLineage task event (#39813)
Introduce AirflowJobFacet and AirflowStateRunFacet (#39520)
Use UUIDv7 for OpenLineage runIds (#39889)
openlineage: execute extraction and message sending in separate process (#40078)
Add few removed Task properties in AirflowRunFacet (#40371)
openlineage, redshift: do not call DB for schemas below Airflow 2.10 (#40197)
fix: scheduler crashing with OL provider on airflow standalone (#40459)
nit: fix logging level (#40461)
fix: provide stack trace under proper key in OL facet (#40372)
fix: sqa deprecations for airflow providers (#39293)
Enable enforcing pydocstyle rule D213 in ruff. (#40448)
local task job: add timeout, to not kill on_task_instance_success listener prematurely (#39890)
openlineage: add some debug logging around sql parser call sites (#40200)
Add task SLA and queued datetime information to AirflowRunFacet (#40091)
Add error stacktrace to OpenLineage task event (#39813)
Introduce AirflowJobFacet and AirflowStateRunFacet (#39520)
Use UUIDv7 for OpenLineage runIds (#39889)
openlineage: execute extraction and message sending in separate process (#40078)
Add few removed Task properties in AirflowRunFacet (#40371)
openlineage, redshift: do not call DB for schemas below Airflow 2.10 (#40197)
fix: scheduler crashing with OL provider on airflow standalone (#40459)
nit: fix logging level (#40461)
fix: provide stack trace under proper key in OL facet (#40372)
fix: sqa deprecations for airflow providers (#39293)
Enable enforcing pydocstyle rule D213 in ruff. (#40448)
Nothing published for this version
Nothing published for this version
In Airflow 2.10.0, we fix the way try_number works. For Airflow >= 2.10.0, use apache-airflow-providers-openlineage >= 1.8.0 . Older versions of Airfl
Release Date: 2024-05-30
Warning
In Airflow 2.10.0, we fix the way try_number works. For Airflow >= 2.10.0, use apache-airflow-providers-openlineage >= 1.8.0 . Older versions of Airflow are not affected, In case you run an incompatible version an exception will be raised asking you to upgrade provider version.
Scheduler to handle incrementing of try_number (#39336)
fix: Prevent error when extractor can't be imported (#39736)
Re-configure ORM in spawned OpenLineage process in scheduler. (#39735)
chore: Update conf retrieval docstring and adjust pool_size (#39721)
Remove 'openlineage.common' dependencies in Google and Snowflake providers. (#39614)
Use 'ProcessPoolExecutor' over 'ThreadPoolExecutor'. (#39235)
misc: Add custom provider runtime checks (#39609)
Faster 'airflow_version' imports (#39552)
Simplify 'airflow_version' imports (#39497)
openlineage: notify that logged exception was caught (#39493)
chore: Add more OpenLineage logs to facilitate debugging (#39136)
Warning
In Airflow 2.10.0, we fix the way try_number works. For Airflow >= 2.10.0, use apache-airflow-providers-openlineage >= 1.8.0. Older versions of Airflow are not affected, In case you run an incompatible version an exception will be raised asking you to upgrade provider version.
Scheduler to handle incrementing of try_number (#39336)
fix: Prevent error when extractor can't be imported (#39736)
Re-configure ORM in spawned OpenLineage process in scheduler. (#39735)
chore: Update conf retrieval docstring and adjust pool_size (#39721)
Remove 'openlineage.common' dependencies in Google and Snowflake providers. (#39614)
Use 'ProcessPoolExecutor' over 'ThreadPoolExecutor'. (#39235)
misc: Add custom provider runtime checks (#39609)
Faster 'airflow_version' imports (#39552)
Simplify 'airflow_version' imports (#39497)
openlineage: notify that logged exception was caught (#39493)
chore: Add more OpenLineage logs to facilitate debugging (#39136)
Nothing published for this version
- openlineage, snowflake: do not run external queries for Snowflake
Release Date: 2024-05-06
openlineage, snowflake: do not run external queries for Snowflake (#39113)
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: 2024-04-13
Add lineage_job_namespace and lineage_job_name OpenLineage macros (#38829)
openlineage: add 'opt-in' option (#37725)
fix: Remove redundant operator information from facets (#38264)
fix: disabled_for_operators now stops whole event emission (#38033)
fix: Add fallbacks when retrieving Airflow configuration to avoid errors being raised (#37994)
fix: Fix parent id macro and remove unused utils (#37877)
Avoid use of 'assert' outside of the tests (#37718)
Add default for 'task' on TaskInstance / fix attrs on TaskInstancePydantic (#37854)
Add lineage_job_namespace and lineage_job_name OpenLineage macros (#38829)
openlineage: add 'opt-in' option (#37725)
fix: Remove redundant operator information from facets (#38264)
fix: disabled_for_operators now stops whole event emission (#38033)
fix: Add fallbacks when retrieving Airflow configuration to avoid errors being raised (#37994)
fix: Fix parent id macro and remove unused utils (#37877)
Avoid use of 'assert' outside of the tests (#37718)
Add default for 'task' on TaskInstance / fix attrs on TaskInstancePydantic (#37854)
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: 2024-03-08
feat: Add OpenLineage metrics for event_size and extraction time (#37797)
feat: Add OpenLineage support for File and User Airflow's lineage entities (#37744)
[OpenLineage] Add support for JobTypeJobFacet properties. (#37255)
chore: Update comments and logging in OpenLineage ExtractorManager (#37622)
fix: Check if operator is disabled in DefaultExtractor.extract_on_complete (#37392)
docs: Update whole OpenLineage Provider docs. (#37620)
feat: Add OpenLineage metrics for event_size and extraction time (#37797)
feat: Add OpenLineage support for File and User Airflow's lineage entities (#37744)
[OpenLineage] Add support for JobTypeJobFacet properties. (#37255)
chore: Update comments and logging in OpenLineage ExtractorManager (#37622)
fix: Check if operator is disabled in DefaultExtractor.extract_on_complete (#37392)
docs: Update whole OpenLineage Provider docs. (#37620)
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: 2024-01-27
feat: Add dag_id when generating OpenLineage run_id for task instance. (#36659)
feat: Add dag_id when generating OpenLineage run_id for task instance. (#36659)
Nothing published for this version
Nothing published for this version
Python3 compatibility improvements
Release Date: 2024-01-10
Add OpenLineage support for Redshift SQL. (#35794)
Nothing published for this version
Release Date: 2023-12-27 ### Bug Fixes - Fix typo.
Release Date: 2023-12-27
Fix typo. (#36362)
Nothing published for this version
- feat: Add parent_run_id for COMPLETE and FAIL events
Release Date: 2023-12-12
feat: Add parent_run_id for COMPLETE and FAIL events (#36067)
Add basic metrics to stats collector. (#35368)
fix: Repair run_id for OpenLineage FAIL events (#36051)
Fix and reapply templates for provider documentation (#35686)
Remove ClassVar annotations. (#36084)
feat: Add parent_run_id for COMPLETE and FAIL events (#36067)
Add basic metrics to stats collector. (#35368)
fix: Repair run_id for OpenLineage FAIL events (#36051)
Fix and reapply templates for provider documentation (#35686)
Remove ClassVar annotations. (#36084)
Nothing published for this version
- Make schema filter uppercase in 'create_filter_clauses'
Release Date: 2023-11-12
Make schema filter uppercase in 'create_filter_clauses' (#35428)
Make schema filter uppercase in 'create_filter_clauses' (#35428)
Nothing published for this version
- Send column lineage from SQL operators.
Release Date: 2023-10-31
Send column lineage from SQL operators. (#34843)
Nothing published for this version
- Adjust log levels in OpenLineage provider
Release Date: 2023-10-17
Adjust log levels in OpenLineage provider (#34801)
Nothing published for this version
- Allow to disable openlineage at operator level
Release Date: 2023-09-12
Allow to disable openlineage at operator level (#33685)
Fix import in 'get_custom_facets'. (#34122)
Improve modules import in Airflow providers by some of them into a type-checking block (#33754)
Add OpenLineage support for DBT Cloud. (#33959)
Refactor unneeded jumps in providers (#33833)
Refactor: Replace lambdas with comprehensions in providers (#33771)
Nothing published for this version
- openlineage: do not try to redact Proxy objects from deprecated config
Release Date: 2023-08-29
openlineage: don't run task instance listener in executor (#33366)
openlineage: do not try to redact Proxy objects from deprecated config (#33393)
openlineage: defensively check for provided datetimes in listener (#33343)
Add OpenLineage support for Trino. (#32910)
Simplify conditions on len() in other providers (#33569)
Replace repr() with proper formatting (#33520)
Your coding agent can read these notes before it upgrades. Set up the MCP server →