DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
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 (News-fragment) | Author | Title | DAG changes | Config changes | API changes | CLI changes | Behaviour changes | Plugin changes | Dependency changes | Notes | Doc link (if any) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 24842 | Default DAG schedule changed to None | N | N | N | N | Y | N | N | When 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. | ||
| 40029 | Deprecated allow_raw_html_descriptions | N | N | N | N | N | Y | N | Remove deprecated allow_raw_html_descriptions from UI Trigger forms | ||
| 40931 | Deprecated store_serialized_dags | N | N | N | N | ? | N | N | Removed dagbag deprecated store_serialized_dags parameter. Please use read_dags_from_db parameter. | ||
| 40936 | on_success_callback no longer called if task skipped | N | N | N | N | Y | N | N | on_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. | ||
| 41096 | dirrao | Deprecated process_poll_interval | N | Y | N | N | N | N | N | Removed deprecated processor_poll_interval configuration parameter from scheduler section. Please use scheduler_idle_sleep_time configuration parameter. | |
| 41348 | Wei Lee | AIP-74 (Rename Dataset to Asset) | N | Y | Y? | N | N | N | N | Big set of changes to rename Dataset to Asset. Touches many core Airflow packages. Unclear, if backward compatibility shims were added? | |
| 41366 | Deprecated airflow.contrib | Y | N | N | N | N | N | N | airflow.contrib modules have been removed. All modules from airflow.contrib which were deprecated in Airflow 2, have been removed. | ||
| 41367 | Deprecated ImportError | N | N | N | N | N | N | N | Deprecated 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. | ||
| 41368 | Deprecated core imports | Y | N | N | N | N | N | N | Support 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. | ||
| 41390 | Kaxil Naik | Deprecated SubDAGs | Y | N | Y | Y | N | N | N | Subdags 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. | |
| 41391 | Kaxil Naik | Deprecated airflow.sensors.external_task.ExternalTaskSensorLink | Y | N | N | N | N | N | N | The 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. | |
| 41393 | Kaxil Naik | Deprecated use_task_execution_day parameter in DayOfWeekSensor | Y | N | N | N | N | N | N | The 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, ) | |
| 41394 | Kaxil Naik | Deprecated airflow.models.taskMixin.TaskMixin | Y | N | N | N | N | N | N | The 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. | |
| 41395 | Deprecated airflow.utils functions, constants, classes | Y | N | N | N | N | N | N | The 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 | ||
| 41420 | Replaced Python's list with MutableSet for the property DAG.tags. | N? | N | N | N | N | N | N | Replaced 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. | ||
| 41434 | Experimental API removed | N | N | Y | N | N | N | N | Deprecated Experimental API is no longer available in Airflow. Users should transition to using Rest API as an alternative. | ||
| 41440 | Deprecated and unused methods / properties on DAG | Y | N | N | N | N | N | N | Removed 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 | ||
| 41453 | Legacy DAG Schedule args removed | Y | N | Y | N | Y | N | N | Removed legacy scheduling arguments on DAG The schedule_interval and timetable arguments are removed from DAG. The schedule_interval _attribute_ has also been removed. In the API, a new timetable_summary field has been added to replace schedule_interval for presentation purposes. Since the DAG object no longer has the schedule_interval attribute, OpenLineage facets that contain the dag key produced on Airflow 3.0 or later will also no longer contain the field. | ||
| 41496 | Deprecated methods in date utils | Y | N | N | N | N | N | N | Removed deprecated methods in airflow/utils/dates.py Methods removed: date_range days_ago (Use pendulum.today('UTC').add(days=-N, ...)) | ||
| 41520 | Deprecated methods in Helper utils | Y | N | N | N | N | N | N | Removed deprecated methods in airflow/utils/helpers.py Methods removed: chain (Use airflow.models.baseoperator.chain) cross_downstream (Use airflow.models.baseoperator.cross_downstream) | ||
| 41533 | Deprecated load_connections param | Y | N | N | N | N | N | N | The load_connections parameter has been removed from the local_file_system. This parameter was previously deprecated in favor of load_connections_dict. If your code still uses load_connections, you should update it to use load_connections_dict instead to ensure compatibility with future Airflow versions. Example update: connection_by_conn_id = local_filesystem.load_connections_dict(file_path="a.json") The get_connections parameter has been removed from the LocalFilesystemBackend class. This parameter was previously deprecated in favor of get_connection. If your code still uses get_connections, you should update it to use get_connection instead to ensure compatibility with future Airflow versions. Example update: connection_by_conn_id = LocalFilesystemBackend().get_connection(conn_id="conn_id") | ||
| 41539 | Deprecated smtp config params | N | Y | N | N | N | N | N | Removed deprecated smtp_user and smtp_password configuration parameters from smtp section. Please use smtp connection (smtp_default). | ||
| 41550 | Deprecated session configs | N | Y | N | N | N | N | N | Removed deprecated session_lifetime_days and force_log_out_after configuration parameters from webserver section. Please use session_lifetime_minutes. Removed deprecated policy parameter from airflow_local_settings. Please use task_policy. | ||
| 41552 | Deprecated log handler arg | Y | Y | N | N | N | N | N | Removed deprecated filename_template argument from airflow.utils.log.file_task_handler.FileTaskHandler. | ||
| 41579 | Deprecated apply_defaults in decorator | N? | N | N | N | N | N | N | Removed deprecated apply_defaults function from airflow/utils/decorators.py. | ||
| 41690 | Deprecated dependency_detector | N? | N | N | N | N | N | N | Removed deprecated dependency_detector parameter from scheduler | ||
| 41635 | Deprecated opton ignore-depends-on-past | N | N | N | Y | N | N | N | Removed deprecated --ignore-depends-on-past cli option from task command. Please use --depends-on-past ignore. | ||
| 41642 | Deprecated secrets backend methods | Y | N | N | N | N | N | N | Removed deprecated secrets backend methods get_conn_uri and get_connections. Please use get_conn_value and get_connection instead | ||
| 41663 | Deprecated auth (basic_auth) | N | Y | N | N | N | N | N | Removed deprecated auth airflow.api.auth.backend.basic_auth from auth_backends. Please use airflow.providers.fab.auth_manager.api.auth.backend.basic_auth instead | ||
| 41693 | Deprecated auth (kerberos) | N | Y | N | N | N | N | N | Removed deprecated auth airflow.api.auth.backend.kerberos_auth and airflow.auth.managers.fab.api.auth.backend.kerberos_auth from auth_backends. Please use airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth instead | ||
| 41708 | Deprecated fab_auth_manager | N | Y | N | N | N | N | N | Removed deprecated auth manager airflow.auth.managers.fab.fab_auth_manager and airflow.auth.managers.fab.security_manager.override. Please use airflow.providers.fab.auth_manager.security_manager.override instead | ||
| 41733 | Deprecated get_connections from BaseHook | Y | N | N | N | N | N | N | Removed deprecated function get_connections() function in airflow.hooks.base.BaseHook | ||
| 41735 | Deprecated package airflow.kubernetes | N? | N | N | N | N | N | N | Removed deprecated module airflow.kubernetes | ||
| 41736 | Deprecated parameters from core-operators | Y | N | N | N | N | N | N | Removed deprecated parameters from core-operators. Parameters removed: airflow.operators.datetime.BranchDateTimeOperator: use_task_execution_date airflow.operators.trigger_dagrun.TriggerDagRunOperator: execution_date airflow.operators.weekday.BranchDayOfWeekOperator: use_task_execution_day | ||
| 41737 | Deprecated TaskStateTrigger from airflow.triggers.external | Y | N | N | N | N | N | N | Removed deprecated TaskStateTrigger from airflow.triggers.external_task module | ||
| 41739 | Deprecated Backfill options | N | N | N | Y | N | N | N | Removed backfill job command cli option ignore-first-depends-on-past. Its value always set to True. No replcaement cli option. Removed backfill job command cli option treat-dag-as-regex. Please use treat-dag-id-as-regex instead | ||
| 41748 | Deprecated module airflow.hooks.dbapi | Y | N | N | N | N | N | N | Deprecated module airflow.hooks.dbapi removed. Please use airflow.providers.common.sql.hooks.sql instead | ||
| 41758 | Deprecated functions, modules from airflow.www | N | N | N? | N | N | Y? | N | Removed deprecated functions and modules from airflow.www module. - Config flag default warning cookie_samesite option in section [webserver] removed. - Legacy decorator @has_access in airflow.www.auth: Please use one of the decorator has_access_* defined in airflow/www/auth.py instead. - Removed legacy modules airflow.www.security: Should be inherited from airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride instead. The constant value EXISTING_ROLES should be used from airflow.www.security_manager module. - Removed the method get_sensitive_variables_fields() from airflow.www.utils: Please use airflow.utils.log.secrets_masker.get_sensitive_variables_fields instead. - Removed the method should_hide_value_for_key() from airflow.www.utils: Please use airflow.utils.log.secrets_masker.should_hide_value_for_key instead. | ||
| 41761 | Deprecations in base operator | Y | N | N | N | N | N | N | Removed a set of deprecations in BaseOperator. Parameter task_concurrency removed, please use max_active_tis_per_dag. Support for additional (not defined) arguments removed. Support for trigger rule dummy removed. Please use always. Support for trigger rule none_failed_or_skipped removed. Please use none_failed_min_one_success. Support to load BaseOperatorLink via airflow.models.baseoperator module removed. | ||
| 41762 | Deprecated Connection elements in airflow.models | Y | N | N | N | N | N | N | Removed a set of deprecations in Connection from airflow.models. Validation of extra fields is now enforcing that JSON values are provided. If a non-JSON value is provided a ValueError will be raised. Removed utility method parse_netloc_to_hostname() Removed utility method parse_from_uri(). Removed utility method log_info() and debug_info() | ||
| 41744 | Deprecations DAG in airflow.models | Y | N | N | N | N | N | N | Removed a set of deprecations in DAG from airflow.models. Removed deprecated parameters full_filepath and concurrency (Replaced by max_active_tasks) from DAG and @dag decorator. Removed fallback support for legacy default_view == "tree". Removed legacy support for permissions named can_dag_read and can_dag_edit. The permissions need to be named can_read and can_edit. Removed legacy deprecated functions following_schedule() and previous_schedule. Removed deprecated support for datetime in next_dagrun_info(). Use DataInterval. Removed legacy DAG property is_paused. Please use get_is_paused instead. Removed legacy parameters get_tis, recursion_depth and max_recursion_depth from DAG.clear(). Removed implicit support to call create_dagrun() without data interval. Removed support for deprecated parameter concurrency in DagModel. Removed support for datetime in DagModel.calculate_dagrun_date_fields. Use DataInterval | ||
| 41766 | Deprecations in airflow.models.param | Y | N | N | N | N | N | N | Removed a set of deprecations in from airflow.models.param. Removed deprecated direct access to DagParam as module. Please import from airflow.models.param. Ensure all param values are JSON serialiazable and raise a ParamValidationError if not. Ensure parsed date and time values are RFC3339 compliant | ||
| 41778 | Deprecations in airflow.models.dagrun | Y | N | N | N | N | N | N | Removed a set of deprecations in from airflow.models.dagrun. Removed deprecated method DagRun.get_run(). Instead you should use standard Sqlalchemy DagRun model retrieval. Removed deprecated method DagRun.get_log_filename_template(). Please use get_log_template() instead | ||
| 41779 | Deprecations in airflow.models.errors | Y | N | N | N | N | N | N | Remove deprecated support for airflow.models.errors.ImportError which has been renamed to ParseImportError. | ||
| 41780 | Deprecations in airflow.models.skipmixin | Y | N | N | N | N | N | N | Remove deprecated support for passing execution_date to airflow.models.skipmixin.SkipMixin.skip(). | ||
| 41784 | Deprecations in airflow.models.taskinstance | Y | N | N | N | N | N | N | Removed deprecated arg activate_dag_runs from TaskInstance.clear_task_instances(). Please use dag_run_state instead. Removed deprecated arg execution_date from TaskInstance.__init__(). Please use run_id instead. Removed deprecated property _try_number from TaskInstance. Please use try_number instead. Removed deprecated property prev_attempted_tries from TaskInstance. Please use try_number instead. Removed deprecated property next_try_number from TaskInstance. Please use try_number + 1 instead. Removed deprecated property previous_ti from TaskInstance. Please use get_previous_ti instead. Removed deprecated property previous_ti_success from TaskInstance. Please use get_previous_ti instead. Removed deprecated property previous_start_date_success from TaskInstance. Please use get_previous_start_date instead. Removed deprecated function as_dict from SimpleTaskInstance. Please use BaseSerialization.serialize instead. Removed deprecated function from_dict from SimpleTaskInstance. Please use BaseSerialization.deserialize instead | ||
| 41808 | Deprecations in airflow.models.taskreschedule | Y | N | N | N | N | N | N | Removed deprecations in airflow.models.taskreschedule. Removed methods: query_for_task_instance() find_for_task_instance() Note: there are no replacements, if data is needed, you need to query via sqlalchemy | ||
| 41857 | Min version of Pydantic changed | N | N | N | N | N | N | Y | Airflow core now depends on Pydantic v2. If you have Pydantic v1 installed, please upgrade. Update min version of Pydantic to 2.6.4 | ||
| 41910 | Deprecated method in api_connexion_security | Y | N | N | N | N | N | N | Removed deprecated method requires_access from module airflow.api_connexion.security. Please use requires_access_* instead. | ||
| 41964 | Command --tree flag from airflow tasks list | N | N | N | Y | N | N | N | --tree flag for airflow tasks list command removed The format of the output with that flag can be expensive to generate and extremely large, depending on the DAG. airflow dag show is a better way to visualize the relationship of tasks in a DAG. DAG.tree_view and DAG.get_tree_view have also been removed | ||
| 41975 | Deprecated metrics removed | N | Y | N | N | Y | N | N | Metrics basic deprecated validators (AllowListValidator and BlockListValidator) were removed in favor of pattern matching. Pattern matching validators (PatternAllowListValidator and PatternBlockListValidator) are enabled by default. Configuration parameter metrics_use_pattern_match``was removed from the ``metrics section | ||
| 42023 | Rename Dataset tables as Asset | N | N | Y? | N | Y | N | N | Rename property run_type value dataset_triggered as asset_triggered in DAGRun endpoint Rename property dataset_expression as asset_expression in DAGDetail endpoint Change the string dataset_triggered in RUN_ID_REGEX as asset_triggered which affects the valid run id that an user can provide Rename dataset as asset in all the database tables | ||
| 42042 | Vincent BECK | Move is_active user property to FAB auth mgr | N | N | N | N | N | N | N | Removed is_active property from BaseUser. This property is longer used | |
| 42054 | Tzu-ping Chung | Try to make dataset objects totally unhashable, redux | N | N | N | N | Y? | N | N | Dataset and DatasetAlias are no longer hashable This means they can no longer be used as dict keys or put into a set. Dataset's equality logic is also tweaked slightly to consider the extra dict. | |
| 42060 | Wei Lee | Fix Typos and unnecessary configs | N | Y | N | N | N | N | N | Removed deprecated configuration stalled_task_timeout from celery, task_adoption_timeout from celery and worker_pods_pending_timeout from kubernetes_executor. Please use task_queued_timeout from scheduler instead | |
| 42088 | Deprecated metrics configs | N | Y | N | N | N | N | N | Removed deprecated configuration statsd_allow_list from metrics. Please use metrics_allow_list from metrics instead. Removed deprecated configuration statsd_block_list from metrics. Please use metrics_block_list from metrics instead. Removed deprecated configuration statsd_on from scheduler. Please use statsd_on from metrics instead. Removed deprecated configuration statsd_host from scheduler. Please use statsd_host from metrics instead. Removed deprecated configuration statsd_port from scheduler. Please use statsd_port from metrics instead. Removed deprecated configuration statsd_prefix from scheduler. Please use statsd_prefix from metrics instead. Removed deprecated configuration statsd_allow_list from scheduler. Please use statsd_allow_list from metrics instead. Removed deprecated configuration stat_name_handler from scheduler. Please use stat_name_handler from metrics instead. Removed deprecated configuration statsd_datadog_enabled from scheduler. Please use statsd_datadog_enabled from metrics instead. Removed deprecated configuration statsd_datadog_tags from scheduler. Please use statsd_datadog_tags from metrics instead. Removed deprecated configuration statsd_datadog_metrics_tags from scheduler. Please use statsd_datadog_metrics_tags from metrics instead. Removed deprecated configuration statsd_custom_client_path from scheduler. Please use statsd_custom_client_path from metrics instead | ||
| 42100 | Deprecated logging configs | N | Y | N | N | N | N | N | Removed deprecated configuration interleave_timestamp_parser from core. Please use interleave_timestamp_parser from logging instead. Removed deprecated configuration base_log_folder from core. Please use base_log_folder from logging instead. Removed deprecated configuration remote_logging from core. Please use remote_logging from logging instead. Removed deprecated configuration remote_log_conn_id from core. Please use remote_log_conn_id from logging instead. Removed deprecated configuration remote_base_log_folder from core. Please use remote_base_log_folder from logging instead. Removed deprecated configuration encrypt_s3_logs from core. Please use encrypt_s3_logs from logging instead. Removed deprecated configuration logging_level from core. Please use logging_level from logging instead. Removed deprecated configuration fab_logging_level from core. Please use fab_logging_level from logging instead. Removed deprecated configuration logging_config_class from core. Please use logging_config_class from logging instead. Removed deprecated configuration colored_console_log from core. Please use colored_console_log from logging instead. Removed deprecated configuration colored_log_format from core. Please use colored_log_format from logging instead. Removed deprecated configuration colored_formatter_class from core. Please use colored_formatter_class from logging instead. Removed deprecated configuration log_format from core. Please use log_format from logging instead. Removed deprecated configuration simple_log_format from core. Please use simple_log_format from logging instead. Removed deprecated configuration task_log_prefix_template from core. Please use task_log_prefix_template from logging instead. Removed deprecated configuration log_filename_template from core. Please use log_filename_template from logging instead. Removed deprecated configuration log_processor_filename_template from core. Please use log_processor_filename_template from logging instead. Removed deprecated configuration dag_processor_manager_log_location from core. Please use dag_processor_manager_log_location from logging instead. Removed deprecated configuration task_log_reader from core. Please use task_log_reader from logging instead | ||
| 42126 | Deprecated database configs | N | Y | N | N | N | N | N | Removed deprecated configuration sql_alchemy_conn from core. Please use sql_alchemy_conn from database instead. Removed deprecated configuration sql_engine_encoding from core. Please use sql_engine_encoding from database instead. Removed deprecated configuration sql_engine_collation_for_ids from core. Please use sql_engine_collation_for_ids from database instead. Removed deprecated configuration sql_alchemy_pool_enabled from core. Please use sql_alchemy_pool_enabled from database instead. Removed deprecated configuration sql_alchemy_pool_size from core. Please use sql_alchemy_pool_size from database instead. Removed deprecated configuration sql_alchemy_max_overflow from core. Please use sql_alchemy_max_overflow from database instead. Removed deprecated configuration sql_alchemy_pool_recycle from core. Please use sql_alchemy_pool_recycle from database instead. Removed deprecated configuration sql_alchemy_pool_pre_ping from core. Please use sql_alchemy_pool_pre_ping from database instead. Removed deprecated configuration sql_alchemy_schema from core. Please use sql_alchemy_schema from database instead. Removed deprecated configuration sql_alchemy_connect_args from core. Please use sql_alchemy_connect_args from database instead. Removed deprecated configuration load_default_connections from core. Please use load_default_connections from database instead. Removed deprecated configuration max_db_retries from core. Please use max_db_retries from database instead | ||
| 42129 | Deprecated configs | N | Y | N | N | N | N | N | Removed deprecated configuration worker_precheck from core. Please use worker_precheck from celery instead. Removed deprecated configuration max_threads from scheduler. Please use parsing_processes from scheduler instead. Removed deprecated configuration default_queue from celery. Please use default_queue from operators instead. Removed deprecated configuration hide_sensitive_variable_fields from admin. Please use hide_sensitive_var_conn_fields from core instead. Removed deprecated configuration sensitive_variable_fields from admin. Please use sensitive_var_conn_names from core instead. Removed deprecated configuration non_pooled_task_slot_count from core. Please use default_pool_task_slot_count from core instead. Removed deprecated configuration dag_concurrency from core. Please use max_active_tasks_per_dag from core instead. Removed deprecated configuration access_control_allow_origin from api. Please use access_control_allow_origins from api instead. Removed deprecated configuration auth_backend from api. Please use auth_backends from api instead. Removed deprecated configuration deactivate_stale_dags_interval from scheduler. Please use parsing_cleanup_interval from scheduler instead. Removed deprecated configuration worker_pods_pending_timeout_check_interval from kubernetes_executor. Please use task_queued_timeout_check_interval from scheduler instead. Removed deprecated configuration update_fab_perms from webserver. Please use update_fab_perms from fab instead. Removed deprecated configuration auth_rate_limited from webserver. Please use auth_rate_limited from fab instead. Removed deprecated configuration auth_rate_limit from webserver. Please use auth_rate_limit from fab instead. Removed deprecated configuration section kubernetes. Please use kubernetes_executor instead | ||
| 42137 | Jarek Potiuk | SAML required dependency for AWS provider | N | N | N | N | N | N | Y | Optional [saml] extra has been removed from Airflow core - instead Amazon Provider gets saml as required dependency | |
| 42280 | Vincent BECK | Handle auth_role_public in FabAuthManager | N | Y | Y | N | N | N | N | Removed deprecated Rest API endpoints: /api/v1/roles. Use /auth/fab/v1/roles instead /api/v1/permissions. Use /auth/fab/v1/permissions instead /api/v1/users. Use /auth/fab/v1/users instead | |
| 42285 | Purge existing SLA implementation | Y | Y | Y | N | Y | N | N | The SLA feature is removed in Airflow 3.0, to be replaced with Airflow Alerts in 3.1 | ||
| 42343 | Tzu-ping Chung | Refactor register_dataset_changes | N | N | N | N | N | N | N | New function create_dataset_aliases added to DatasetManager for DatasetAlias creation. DatasetManager.create_datasets now takes Dataset objects This function previously accepts a list of DatasetModel objects. it now receives Dataset objects instead. A list of DatasetModel objects are created inside, and returned by the function. Also, the session argument is now keyword-only. | |
| 42404 | From logical_date to run_id in APIs and functions | N | N | Y | N | Y | N | N | Removed logical_date arguments from functions and APIs for DAG run lookups to align with Airflow 3.0. The shift towards using run_id as the sole identifier for DAG runs eliminates the limitations of execution_date and logical_date, particularly for dynamic DAG runs and cases where multiple runs occur at the same logical time. This change impacts database models, templates, and functions: Removed logical_date arguments from public APIs and Python functions related to DAG run lookups. run_id is now the exclusive identifier for DAG runs in these contexts. | ||
| 42436 | Change default .airflowignore syntax to glob | N | N | N | N | Y | N | N | Default .airflowignore syntax changed to glob The default value to the configuration [core] dag_ignore_file_syntax has been changed to glob, which better matches the ignore file behavior of many popular tools. To revert to the previous behavior, set the configuration to regexp | ||
| 42439 | Refactor bucket.get_blob calls in GCSHook | N | N | N | N | N | N | N | Refactor bucket.get_blob calls in GCSHook to handle validation for non-existent objects. | ||
| 42548 | Remove DagRun.is_backfill attribute | N | N | N | N | N | N | N | Remove is_backfill attribute from DagRun object | ||
| 42579 | Rename Dataset endpoints as Asset | N | N | Y | N | N | N | N | Rename dataset endpoints as asset endpoints Rename /datasets as /assets Rename /datasets/{uri} as /assets/{uri} Rename /datasets/events as /assets/events Rename /datasets/queuedEvent/{uri} as /ui/next_run_assets/upstream Rename /dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents as /ui/next_run_assets/upstream Rename /dags/{dag_id}/datasets/queuedEvent/{uri} as /ui/next_run_assets/upstream Rename /dags/{dag_id}/datasets/queuedEvent as /ui/next_run_assets/upstream Rename /ui/next_run_datasets/upstream as /ui/next_run_assets/upstream Rename dataset schema as asset endpoints Rename AssetCollection.datasets as AssetCollection.assets Rename AssetEventCollection.dataset_events as AssetEventCollection.asset_events Rename AssetEventCollectionSchema.dataset_events as AssetEventCollectionSchema.asset_events Rename CreateAssetEventSchema.dataset_uri as CreateAssetEventSchema.asset_uri | ||
| 42640 | Deprecated custom dag dependency detector | N | N | N | N | N | N | N | Removed deprecated custom dag dependency detector | ||
| 42647 | Deprecated aliases for providers | N | N | N | N | N | N | N | Removed deprecated aliases support for providers. Removed deprecated atlas alias support. Please use apache-atlas instead. Removed deprecated aws alias support. Please use amazon instead. Removed deprecated azure alias support. Please use microsoft-azure instead. Removed deprecated cassandra alias support. Please use apache-cassandra instead. Removed deprecated crypto alias support. Removed deprecated druid alias support. Please use apache-druid instead. Removed deprecated gcp alias support. Please use google instead. Removed deprecated gcp-api alias support. Please use google instead. Removed deprecated hdfs alias support. Please use apache-hdfs instead. Removed deprecated hive alias support. Please use apache-hive instead. Removed deprecated kubernetes alias support. Please use cncf-kubernetes instead. Removed deprecated mssql alias support. Please use microsoft-mssql instead. Removed deprecated pinot alias support. Please use apache-pinot instead. Removed deprecated s3 alias support. Please use amazon instead. Removed deprecated spark alias support. Please use apache-spark instead. Removed deprecated webhdfs alias support. Please use apache-webhdfs instead. Removed deprecated winrm alias support. Please use microsoft-winrm instead | ||
| 42658 | Changing dag_id to a positional argument in the 'dags list-runs' CLI | N | N | N | Y | N | N | N | Changing dag_id from flag (-d, --dag-id) to a positional argument in the 'dags list-runs' CLI command. | ||
| 42660 | Deprecated concurrency field from dag details schema | N | N | N | N | Y? | N | N | Deprecated field concurrency from DAGDetailSchema has been removed. Please use max_active_tasks from DAGDetailSchema instead | ||
| 42739 | Drop Python3.8 support core and providers | N | N | N | N | N | N | Y | Remove support for Python 3.8 as this version is not maintained within Python release schedule, see https://peps.python.org/pep-0596/ | ||
| 42776 | Deprecated chainable type from BaseOperator | Y | N | N | N | N | N | N | Removed deprecated Chainable type from BaseOperator | ||
| 42953 | DAG.max_active_runs evaluated per-run | N | N | N | N | Y | N | N | DAG.max_active_runs is now evaluated per-run Previously, this was evaluated across all runs of the dag. This behavior change was passed by lazy consensus. Vote thread: https://lists.apache.org/thread/9o84d3yn934m32gtlpokpwtbbmtxj47l | ||
| 43067 | Remove DAG.get_num_active_runs | N | N | N | N | N | N | N | Remove DAG.get_num_active_runs We don't need this function. There's already an almost-identical function on DagRun that we can use, namely DagRun.active_runs_of_dags. Also, make DagRun.active_runs_of_dags private | ||
| 43073 | Rename dataset as asset in UI | N | N | N | N | Y | N | N | Rename DagRunTriggeredByType.DATASET as DagRunTriggeredByType.ASSET and all the name dataset in all the UI component to asset. | ||
| 43096 | Remove default auth backend | N | Y | N | N | Y | N | N | Removed auth backend airflow.api.auth.backend.default | ||
| 43183 | Remove TaskContextLogger | N | Y | N | N | Y | N | N | Remove TaskContextLogger We introduced this as a way to inject messages into task logs from places other than the task execution context. We later realized that we were better off just using the Log table. | ||
| 43289 | Remove ability to import executors from plugins | N | N | N | N | N | Y | N | Support for adding executors via Airflow Plugins is removed Executors should no longer be registered or imported via Airflow's plugin mechanism -- these types of classes are just treated as plain Python classes by Airflow, so there is no need to register them with Airflow |