You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This is an early draft of the changes coming in Airflow 3 which can have backwards compatibility impact. 

The data below is captured from the "newsfragments" incorporated into the Pull Requests and is intended to give a quick summary overview of the changes. 

At this point, the attached GoogleSheets link is the source of truth (for easier and more broad editing) and the table below is a view of that sheet. 

AIP/PR

(Newsfragment)

Title

DAG

changes

Config

changes

API

changes

CLI

changes

Behaviour

changes

Plugin

changes

Notes

Doc link

(if any)

24842Default DAG schedule changed to NoneNNNNYNWhen a schedule parameter is not passed to the DAG constructor, Airflow now defaults to never automatically schedule the DAG at all. The created DAG can still be manually triggered, either by the user directly, or from another DAG with TriggerDagRunOperator.
40029Deprecated allow_raw_html_descriptionsNNNNNYRemove deprecated allow_raw_html_descriptions from UI Trigger forms
40931Deprecated store_serialized_dagsNNNN?NRemoved dagbag deprecated store_serialized_dags parameter. Please use read_dags_from_db parameter.
40936on_success_callback no longer called if task skippedNNNNYNon_success_callback will no longer execute if a task is skipped. Previously, this callback was triggered even when the task was skipped, which could lead to unintended behavior or inconsistencies in downstream processes. This is a breaking change because workflows that rely on on_success_callback running for skipped tasks will need to be updated. Consider updating your DAGs to handle cases where the callback is not invoked due to task skipping.
41096Deprecated process_poll_intervalNYNNNNRemoved deprecated processor_poll_interval configuration parameter from scheduler section. Please use scheduler_idle_sleep_time configuration parameter.
41348AIP-74 (Rename Dataset to Asset)??????Y??N?N?Big set of changes to rename Dataset to Asset. Touches many core Airflow packages. Unclear, if backward compatibility shims were added?
41366Deprecated airflow.contribNNNNNNairflow.contrib modules have been removed.
All modules from airflow.contrib which were deprecated in Airflow 2, have been removed.

41367Deprecated ImportError YNNNNNDeprecated ImportError removed from airflow.models
The deprecated ImportError class can no longer be imported from airflow.models. It has been moved to airflow.models.errors.ParseImportError.

41368Deprecated core imports YNNNNNSupport for deprecated core imports removed
Support for importing classes etc from the following locations was deprecated at various times during Airflow 2s lifecycle, and has been removed:
airflow.executors
airflow.hooks
airflow.macros
airflow.operators
airflow.sensors
Instead, import from the right provider or more specific module instead. For example, instead of from airflow.sensors import TimeDeltaSensor, use from airflow.sensors.time_delta import TimeDeltaSensor.

41390Deprecated SubDAGs YNYYNNSubdags have been removed from the following locations:
CLI
API
SubDagOperator
This removal marks the end of Subdag support across all interfaces. Users should transition to using TaskGroups as a more efficient and maintainable alternative. Please ensure your DAGs are updated to remove any usage of Subdags to maintain compatibility with future Airflow releases.

41391Deprecated airflow.sensors.external_task.ExternalTaskSensorLink YNNNNNThe airflow.sensors.external_task.ExternalTaskSensorLink class has been removed. This class was deprecated and is no longer available. Users should now use the airflow.sensors.external_task.ExternalDagLink class directly.
41393Deprecated use_task_execution_day parameter in DayOfWeekSensor YNNNNNThe use_task_execution_day parameter has been removed from the DayOfWeekSensor class. This parameter was previously deprecated in favor of use_task_logical_date.
If your code still uses use_task_execution_day, you should update it to use use_task_logical_date instead to ensure compatibility with future Airflow versions.
Example update:
sensor = DayOfWeekSensor(
task_id="example",
week_day="Tuesday",
use_task_logical_date=True,
dag=dag,
)

41394Deprecated airflow.models.taskMixin.TaskMixinYNNNNNThe airflow.models.taskMixin.TaskMixin class has been removed. It was previously deprecated in favor of the airflow.models.taskMixin.DependencyMixin class. If your code relies on TaskMixin, please update it to use DependencyMixin instead to ensure compatibility with Airflow 3.0 and beyond.
41395Deprecated airflow.utils functions, constants, classesYNNNNNThe following deprecated functions, constants, and classes have been removed as part of Airflow 3.0:
airflow.executors.executor_loader.UNPICKLEABLE_EXECUTORS: No direct replacement; this constant is no longer needed.

airflow.utils.dag_cycle_tester.test_cycle function: Use airflow.utils.dag_cycle_tester.check_cycle instead.
airflow.utils.file.TemporaryDirectory function: Use tempfile.TemporaryDirectory instead.
airflow.utils.file.mkdirs function: Use pathlib.Path.mkdir instead.
airflow.utils.state.SHUTDOWN state: No action needed; this state is no longer used.
airflow.utils.state.terminating_states constant: No action needed; this constant is no longer used

41420Replaced Python's list with MutableSet for the property DAG.tags.N?NNNNNReplaced Python's list with MutableSet for the property DAG.tags.

At the constractur you still can use list, you actually can use any data structure that implements the Collection interface.

The tags property of the DAG model would be of type MutableSet instead of list, as there are no actual duplicates at the tags.

41434Experimental API removedNNYNNNDeprecated Experimental API is no longer available in Airflow. Users should transition to using Rest API as an alternative.
41440Deprecated and unused methods / properties on DAGYNNNNNRemoved unused methods / properties in models/dag.py

Methods removed:
date_range
is_fixed_time_schedule
next_dagrun_after_date
get_run_dates
normalize_schedule
full_filepath
concurrency
filepath
concurrency_reached
normalized_schedule_interval
latest_execution_date
set_dag_runs_state
bulk_sync_to_db











  • No labels