From d4609728ede88a4b8c411f774911efcfdef01ed2 Mon Sep 17 00:00:00 2001 From: Wei Lee Date: Fri, 24 Jan 2025 11:19:56 +0800 Subject: [PATCH] Update existing significant newsfragments with the later introduced template format (#45678) * docs(newsfragments): add empty entities to significant newsfragments * docs(newsfragments): update existing siginificant newsfragments with template format * docs(newsfragments): fix typo in 41391, 41533 * docs(newsfragments): add type "Code interface change" * docs(newsfragments): aip-79: make it dependency change * docs(newsfragmenst): update 42042 change type Co-authored-by: Vincent <97131062+vincbeck@users.noreply.github.com> * docs(newsfragmenst): update 40029 change type Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> * docs(newsfragmenst): update 41758 change type Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> * docs(newsfragmenst): update 43612 change type Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> * docs(newsfragmenst): update 41808 change type Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> * docs(newsfragmenst): update 41774 change type Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> * docs(newsfragments): add description to each of the change type * docs(newsfragments): fix plural typo * docs(newsfragments): replace DAG as Dag * style(newsfragments): add type of change to significant * docs(newsfragments): fix type of changes typo * docs(newsfragments): unify ruff rules format --------- Co-authored-by: Vincent <97131062+vincbeck@users.noreply.github.com> Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> --- .github/workflows/news-fragment.yml | 1 + newsfragments/24842.significant.rst | 11 + newsfragments/40029.significant.rst | 19 +- newsfragments/40931.significant.rst | 11 + newsfragments/41096.significant.rst | 17 ++ newsfragments/41348.significant.rst | 388 +++++++++++++++---------- newsfragments/41366.significant.rst | 19 ++ newsfragments/41367.significant.rst | 11 + newsfragments/41368.significant.rst | 159 ++++++++++ newsfragments/41390.significant.rst | 21 +- newsfragments/41391.significant.rst | 22 +- newsfragments/41393.significant.rst | 24 +- newsfragments/41394.significant.rst | 15 +- newsfragments/41395.significant.rst | 23 ++ newsfragments/41420.significant.rst | 13 +- newsfragments/41434.significant.rst | 13 +- newsfragments/41440.significant.rst | 42 ++- newsfragments/41453.significant.rst | 20 ++ newsfragments/41496.significant.rst | 29 +- newsfragments/41520.significant.rst | 29 +- newsfragments/41533.significant.rst | 23 +- newsfragments/41539.significant.rst | 18 ++ newsfragments/41550.significant.rst | 19 ++ newsfragments/41552.significant.rst | 19 ++ newsfragments/41564.significant.rst | 12 +- newsfragments/41579.significant.rst | 19 ++ newsfragments/41609.significant.rst | 17 ++ newsfragments/41635.significant.rst | 11 + newsfragments/41642.significant.rst | 20 ++ newsfragments/41663.significant.rst | 19 ++ newsfragments/41693.significant.rst | 20 ++ newsfragments/41708.significant.rst | 20 ++ newsfragments/41733.significant.rst | 19 ++ newsfragments/41735.significant.rst | 55 ++++ newsfragments/41736.significant.rst | 27 +- newsfragments/41737.significant.rst | 19 ++ newsfragments/41739.significant.rst | 11 + newsfragments/41748.significant.rst | 19 ++ newsfragments/41758.significant.rst | 25 ++ newsfragments/41761.significant.rst | 25 ++ newsfragments/41762.significant.rst | 11 + newsfragments/41774.significant.rst | 11 + newsfragments/41776.significant.rst | 11 + newsfragments/41778.significant.rst | 11 + newsfragments/41779.significant.rst | 11 + newsfragments/41780.significant.rst | 11 + newsfragments/41784.significant.rst | 11 + newsfragments/41808.significant.rst | 11 + newsfragments/41857.significant.rst | 13 +- newsfragments/41910.significant.rst | 19 ++ newsfragments/41964.significant.rst | 11 + newsfragments/41975.significant.rst | 24 ++ newsfragments/42023.significant.rst | 20 +- newsfragments/42042.significant.rst | 11 + newsfragments/42054.significant.rst | 11 + newsfragments/42060.significant.rst | 20 ++ newsfragments/42088.significant.rst | 28 ++ newsfragments/42100.significant.rst | 35 +++ newsfragments/42126.significant.rst | 29 ++ newsfragments/42129.significant.rst | 31 ++ newsfragments/42137.significant.rst | 11 + newsfragments/42280.significant.rst | 11 + newsfragments/42285.significant.rst | 26 ++ newsfragments/42343.significant.rst | 11 + newsfragments/42404.significant.rst | 11 + newsfragments/42436.significant.rst | 11 + newsfragments/42548.significant.rst | 11 + newsfragments/42579.significant.rst | 42 ++- newsfragments/42640.significant.rst | 11 + newsfragments/42647.significant.rst | 12 +- newsfragments/42658.significant.rst | 11 + newsfragments/42660.significant.rst | 11 + newsfragments/42739.significant.rst | 11 + newsfragments/42776.significant.rst | 11 + newsfragments/42794.significant.rst | 6 +- newsfragments/42953.significant.rst | 11 + newsfragments/43067.significant.rst | 11 + newsfragments/43073.significant.rst | 11 + newsfragments/43096.significant.rst | 19 ++ newsfragments/43102.significant.rst | 11 + newsfragments/43183.significant.rst | 17 ++ newsfragments/43289.significant.rst | 21 ++ newsfragments/43291.significant.rst | 19 ++ newsfragments/43349.significant.rst | 19 ++ newsfragments/43490.significant.rst | 11 + newsfragments/43530.significant.rst | 26 ++ newsfragments/43533.significant.rst | 22 ++ newsfragments/43562.significant.rst | 20 ++ newsfragments/43568.significant.rst | 11 + newsfragments/43608.significant.rst | 6 +- newsfragments/43611.significant.rst | 11 + newsfragments/43612.significant.rst | 11 + newsfragments/43774.significant.rst | 13 +- newsfragments/43890.significant.rst | 2 +- newsfragments/43902.significant.rst | 29 ++ newsfragments/43915.significant.rst | 17 ++ newsfragments/43943.significant.rst | 17 ++ newsfragments/43949.significant.rst | 11 + newsfragments/43975.significant.rst | 17 ++ newsfragments/44053.significant.rst | 2 +- newsfragments/44080.significant.rst | 11 + newsfragments/44288.significant.rst | 4 +- newsfragments/44475.significant.rst | 11 +- newsfragments/44533.significant.rst | 11 + newsfragments/44706.significant.rst | 5 +- newsfragments/44820.significant.rst | 9 +- newsfragments/45017.significant.rst | 13 +- newsfragments/45327.significant.rst | 4 +- newsfragments/45530.significant.rst | 11 + newsfragments/45694.significant.rst | 7 +- newsfragments/45722.significant.rst | 6 +- newsfragments/45729.significant.rst | 11 + newsfragments/aip-72.significant.rst | 15 +- newsfragments/aip-79.significant.rst | 11 + newsfragments/template.significant.rst | 15 +- 115 files changed, 2094 insertions(+), 266 deletions(-) diff --git a/.github/workflows/news-fragment.yml b/.github/workflows/news-fragment.yml index 979a1148a6ea7..bb9d30bf1db6c 100644 --- a/.github/workflows/news-fragment.yml +++ b/.github/workflows/news-fragment.yml @@ -68,6 +68,7 @@ jobs: 'Behaviour changes' 'Plugin changes' 'Dependency changes' + 'Code interface changes' ) news_fragment_content=`git diff origin/${BASE_REF} newsfragments/*.significant.rst` diff --git a/newsfragments/24842.significant.rst b/newsfragments/24842.significant.rst index 4e02531b3e6b7..f1b5e57cba6d5 100644 --- a/newsfragments/24842.significant.rst +++ b/newsfragments/24842.significant.rst @@ -4,3 +4,14 @@ 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``. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/40029.significant.rst b/newsfragments/40029.significant.rst index e64f5170efda1..1d9bc26ef858a 100644 --- a/newsfragments/40029.significant.rst +++ b/newsfragments/40029.significant.rst @@ -1 +1,18 @@ -Removed deprecated ``allow_raw_html_descriptions`` option from UI Trigger forms. +Removed deprecated airflow configuration ``webserver.allow_raw_html_descriptions`` from UI Trigger forms. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``webserver.allow_raw_html_descriptions`` diff --git a/newsfragments/40931.significant.rst b/newsfragments/40931.significant.rst index b5d47f0c36b8a..7893e6dc0a014 100644 --- a/newsfragments/40931.significant.rst +++ b/newsfragments/40931.significant.rst @@ -1 +1,12 @@ Removed dagbag deprecated ``store_serialized_dags`` parameter. Please use ``read_dags_from_db`` parameter. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41096.significant.rst b/newsfragments/41096.significant.rst index 1d63fa77409df..e08520b14255d 100644 --- a/newsfragments/41096.significant.rst +++ b/newsfragments/41096.significant.rst @@ -1 +1,18 @@ Removed deprecated ``processor_poll_interval`` configuration parameter from ``scheduler`` section. Please use ``scheduler_idle_sleep_time`` configuration parameter. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``scheduler.processor_poll_interval`` → ``scheduler.scheduler_idle_sleep_time`` diff --git a/newsfragments/41348.significant.rst b/newsfragments/41348.significant.rst index eca66b78708f9..f7637f3676ecd 100644 --- a/newsfragments/41348.significant.rst +++ b/newsfragments/41348.significant.rst @@ -1,240 +1,324 @@ -**Breaking Change** +Rename ``Dataset`` as ``Asset`` -* Rename module ``airflow.api_connexion.schemas.dataset_schema`` as ``airflow.api_connexion.schemas.asset_schema`` +* list of renamed objects - * Rename variable ``create_dataset_event_schema`` as ``create_asset_event_schema`` - * Rename variable ``dataset_collection_schema`` as ``asset_collection_schema`` - * Rename variable ``dataset_event_collection_schema`` as ``asset_event_collection_schema`` - * Rename variable ``dataset_event_schema`` as ``asset_event_schema`` - * Rename variable ``dataset_schema`` as ``asset_schema`` - * Rename class ``TaskOutletDatasetReferenceSchema`` as ``TaskOutletAssetReferenceSchema`` - * Rename class ``DagScheduleDatasetReferenceSchema`` as ``DagScheduleAssetReferenceSchema`` - * Rename class ``DatasetAliasSchema`` as ``AssetAliasSchema`` - * Rename class ``DatasetSchema`` as ``AssetSchema`` - * Rename class ``DatasetCollection`` as ``AssetCollection`` - * Rename class ``DatasetEventSchema`` as ``AssetEventSchema`` - * Rename class ``DatasetEventCollection`` as ``AssetEventCollection`` - * Rename class ``DatasetEventCollectionSchema`` as ``AssetEventCollectionSchema`` - * Rename class ``CreateDatasetEventSchema`` as ``CreateAssetEventSchema`` + * Rename module ``airflow.api_connexion.schemas.dataset_schema`` as ``airflow.api_connexion.schemas.asset_schema`` -* Move module ``airflow.datasets`` to ``airflow.sdk.definitions.asset`` + * Rename variable ``create_dataset_event_schema`` as ``create_asset_event_schema`` + * Rename variable ``dataset_collection_schema`` as ``asset_collection_schema`` + * Rename variable ``dataset_event_collection_schema`` as ``asset_event_collection_schema`` + * Rename variable ``dataset_event_schema`` as ``asset_event_schema`` + * Rename variable ``dataset_schema`` as ``asset_schema`` + * Rename class ``TaskOutletDatasetReferenceSchema`` as ``TaskOutletAssetReferenceSchema`` + * Rename class ``DagScheduleDatasetReferenceSchema`` as ``DagScheduleAssetReferenceSchema`` + * Rename class ``DatasetAliasSchema`` as ``AssetAliasSchema`` + * Rename class ``DatasetSchema`` as ``AssetSchema`` + * Rename class ``DatasetCollection`` as ``AssetCollection`` + * Rename class ``DatasetEventSchema`` as ``AssetEventSchema`` + * Rename class ``DatasetEventCollection`` as ``AssetEventCollection`` + * Rename class ``DatasetEventCollectionSchema`` as ``AssetEventCollectionSchema`` + * Rename class ``CreateDatasetEventSchema`` as ``CreateAssetEventSchema`` - * Rename class ``DatasetAlias`` as ``AssetAlias`` - * Rename class ``DatasetAll`` as ``AssetAll`` - * Rename class ``DatasetAny`` as ``AssetAny`` - * Rename function ``expand_alias_to_datasets`` as ``expand_alias_to_assets`` - * Rename class ``DatasetAliasEvent`` as ``AssetAliasEvent`` + * Move module ``airflow.datasets`` to ``airflow.sdk.definitions.asset`` - * Rename attribute ``dest_dataset_uri`` as ``dest_asset_uri`` + * Rename class ``DatasetAlias`` as ``AssetAlias`` + * Rename class ``DatasetAll`` as ``AssetAll`` + * Rename class ``DatasetAny`` as ``AssetAny`` + * Rename function ``expand_alias_to_datasets`` as ``expand_alias_to_assets`` + * Rename class ``DatasetAliasEvent`` as ``AssetAliasEvent`` - * Rename class ``BaseDataset`` as ``BaseAsset`` + * Rename attribute ``dest_dataset_uri`` as ``dest_asset_uri`` - * Rename method ``iter_datasets`` as ``iter_assets`` - * Rename method ``iter_dataset_aliases`` as ``iter_asset_aliases`` + * Rename class ``BaseDataset`` as ``BaseAsset`` - * Rename class ``Dataset`` as ``Asset`` + * Rename method ``iter_datasets`` as ``iter_assets`` + * Rename method ``iter_dataset_aliases`` as ``iter_asset_aliases`` - * Rename method ``iter_datasets`` as ``iter_assets`` - * Rename method ``iter_dataset_aliases`` as ``iter_asset_aliases`` + * Rename class ``Dataset`` as ``Asset`` - * Rename class ``_DatasetBooleanCondition`` as ``_AssetBooleanCondition`` + * Rename method ``iter_datasets`` as ``iter_assets`` + * Rename method ``iter_dataset_aliases`` as ``iter_asset_aliases`` - * Rename method ``iter_datasets`` as ``iter_assets`` - * Rename method ``iter_dataset_aliases`` as ``iter_asset_aliases`` + * Rename class ``_DatasetBooleanCondition`` as ``_AssetBooleanCondition`` -* Rename module ``airflow.datasets.manager`` as ``airflow.assets.manager`` + * Rename method ``iter_datasets`` as ``iter_assets`` + * Rename method ``iter_dataset_aliases`` as ``iter_asset_aliases`` - * Rename variable ``dataset_manager`` as ``asset_manager`` - * Rename function ``resolve_dataset_manager`` as ``resolve_asset_manager`` - * Rename class ``DatasetManager`` as ``AssetManager`` + * Rename module ``airflow.datasets.manager`` as ``airflow.assets.manager`` - * Rename method ``register_dataset_change`` as ``register_asset_change`` - * Rename method ``create_datasets`` as ``create_assets`` - * Rename method ``register_dataset_change`` as ``notify_asset_created`` - * Rename method ``notify_dataset_changed`` as ``notify_asset_changed`` - * Rename method ``notify_dataset_alias_created`` as ``notify_asset_alias_created`` + * Rename variable ``dataset_manager`` as ``asset_manager`` + * Rename function ``resolve_dataset_manager`` as ``resolve_asset_manager`` + * Rename class ``DatasetManager`` as ``AssetManager`` -* Rename module ``airflow.models.dataset`` as ``airflow.models.asset`` + * Rename method ``register_dataset_change`` as ``register_asset_change`` + * Rename method ``create_datasets`` as ``create_assets`` + * Rename method ``register_dataset_change`` as ``notify_asset_created`` + * Rename method ``notify_dataset_changed`` as ``notify_asset_changed`` + * Rename method ``notify_dataset_alias_created`` as ``notify_asset_alias_created`` - * Rename class ``DatasetDagRunQueue`` as ``AssetDagRunQueue`` - * Rename class ``DatasetEvent`` as ``AssetEvent`` - * Rename class ``DatasetModel`` as ``AssetModel`` - * Rename class ``DatasetAliasModel`` as ``AssetAliasModel`` - * Rename class ``DagScheduleDatasetReference`` as ``DagScheduleAssetReference`` - * Rename class ``TaskOutletDatasetReference`` as ``TaskOutletAssetReference`` - * Rename class ``DagScheduleDatasetAliasReference`` as ``DagScheduleAssetAliasReference`` + * Rename module ``airflow.models.dataset`` as ``airflow.models.asset`` -* Rename module ``airflow.api_ui.views.datasets`` as ``airflow.api_ui.views.assets`` + * Rename class ``DatasetDagRunQueue`` as ``AssetDagRunQueue`` + * Rename class ``DatasetEvent`` as ``AssetEvent`` + * Rename class ``DatasetModel`` as ``AssetModel`` + * Rename class ``DatasetAliasModel`` as ``AssetAliasModel`` + * Rename class ``DagScheduleDatasetReference`` as ``DagScheduleAssetReference`` + * Rename class ``TaskOutletDatasetReference`` as ``TaskOutletAssetReference`` + * Rename class ``DagScheduleDatasetAliasReference`` as ``DagScheduleAssetAliasReference`` - * Rename variable ``dataset_router`` as ``asset_rounter`` + * Rename module ``airflow.api_ui.views.datasets`` as ``airflow.api_ui.views.assets`` -* Rename module ``airflow.listeners.spec.dataset`` as ``airflow.listeners.spec.asset`` + * Rename variable ``dataset_router`` as ``asset_rounter`` - * Rename function ``on_dataset_created`` as ``on_asset_created`` - * Rename function ``on_dataset_changed`` as ``on_asset_changed`` + * Rename module ``airflow.listeners.spec.dataset`` as ``airflow.listeners.spec.asset`` -* Rename module ``airflow.timetables.datasets`` as ``airflow.timetables.assets`` + * Rename function ``on_dataset_created`` as ``on_asset_created`` + * Rename function ``on_dataset_changed`` as ``on_asset_changed`` - * Rename class ``DatasetOrTimeSchedule`` as ``AssetOrTimeSchedule`` + * Rename module ``airflow.timetables.datasets`` as ``airflow.timetables.assets`` -* Rename module ``airflow.serialization.pydantic.dataset`` as ``airflow.serialization.pydantic.asset`` + * Rename class ``DatasetOrTimeSchedule`` as ``AssetOrTimeSchedule`` - * Rename class ``DagScheduleDatasetReferencePydantic`` as ``DagScheduleAssetReferencePydantic`` - * Rename class ``TaskOutletDatasetReferencePydantic`` as ``TaskOutletAssetReferencePydantic`` - * Rename class ``DatasetPydantic`` as ``AssetPydantic`` - * Rename class ``DatasetEventPydantic`` as ``AssetEventPydantic`` + * Rename module ``airflow.serialization.pydantic.dataset`` as ``airflow.serialization.pydantic.asset`` -* Rename module ``airflow.datasets.metadata`` as ``airflow.sdk.definitions.asset.metadata`` + * Rename class ``DagScheduleDatasetReferencePydantic`` as ``DagScheduleAssetReferencePydantic`` + * Rename class ``TaskOutletDatasetReferencePydantic`` as ``TaskOutletAssetReferencePydantic`` + * Rename class ``DatasetPydantic`` as ``AssetPydantic`` + * Rename class ``DatasetEventPydantic`` as ``AssetEventPydantic`` -* In module ``airflow.jobs.scheduler_job_runner`` + * Rename module ``airflow.datasets.metadata`` as ``airflow.sdk.definitions.asset.metadata`` - * and its class ``SchedulerJobRunner`` + * In module ``airflow.jobs.scheduler_job_runner`` - * Rename method ``_create_dag_runs_dataset_triggered`` as ``_create_dag_runs_asset_triggered`` - * Rename method ``_orphan_unreferenced_datasets`` as ``_orphan_unreferenced_datasets`` + * and its class ``SchedulerJobRunner`` -* In module ``airflow.api_connexion.security`` + * Rename method ``_create_dag_runs_dataset_triggered`` as ``_create_dag_runs_asset_triggered`` + * Rename method ``_orphan_unreferenced_datasets`` as ``_orphan_unreferenced_datasets`` - * Rename decorator ``requires_access_dataset`` as ``requires_access_asset`` + * In module ``airflow.api_connexion.security`` -* In module ``airflow.auth.managers.models.resource_details`` + * Rename decorator ``requires_access_dataset`` as ``requires_access_asset`` - * Rename class ``DatasetDetails`` as ``AssetDetails`` + * In module ``airflow.auth.managers.models.resource_details`` -* In module ``airflow.auth.managers.base_auth_manager`` + * Rename class ``DatasetDetails`` as ``AssetDetails`` - * Rename function ``is_authorized_dataset`` as ``is_authorized_asset`` + * In module ``airflow.auth.managers.base_auth_manager`` -* In module ``airflow.timetables.simple`` + * Rename function ``is_authorized_dataset`` as ``is_authorized_asset`` - * Rename class ``DatasetTriggeredTimetable`` as ``AssetTriggeredTimetable`` + * In module ``airflow.timetables.simple`` -* In module ``airflow.lineage.hook`` + * Rename class ``DatasetTriggeredTimetable`` as ``AssetTriggeredTimetable`` - * Rename class ``DatasetLineageInfo`` as ``AssetLineageInfo`` + * In module ``airflow.lineage.hook`` - * Rename attribute ``dataset`` as ``asset`` + * Rename class ``DatasetLineageInfo`` as ``AssetLineageInfo`` - * In its class ``HookLineageCollector`` + * Rename attribute ``dataset`` as ``asset`` - * Rename method ``create_dataset`` as ``create_asset`` - * Rename method ``add_input_dataset`` as ``add_input_asset`` - * Rename method ``add_output_dataset`` as ``add_output_asset`` - * Rename method ``collected_datasets`` as ``collected_assets`` + * In its class ``HookLineageCollector`` -* In module ``airflow.models.dag`` + * Rename method ``create_dataset`` as ``create_asset`` + * Rename method ``add_input_dataset`` as ``add_input_asset`` + * Rename method ``add_output_dataset`` as ``add_output_asset`` + * Rename method ``collected_datasets`` as ``collected_assets`` - * Rename function ``get_dataset_triggered_next_run_info`` as ``get_asset_triggered_next_run_info`` + * In module ``airflow.models.dag`` - * In its class ``DagModel`` + * Rename function ``get_dataset_triggered_next_run_info`` as ``get_asset_triggered_next_run_info`` - * Rename method ``get_dataset_triggered_next_run_info`` as ``get_asset_triggered_next_run_info`` + * In its class ``DagModel`` -* In module ``airflow.models.taskinstance`` + * Rename method ``get_dataset_triggered_next_run_info`` as ``get_asset_triggered_next_run_info`` - * and its class ``TaskInstance`` + * In module ``airflow.models.taskinstance`` - * Rename method ``_register_dataset_changes`` as ``_register_asset_changes`` + * and its class ``TaskInstance`` -* In module ``airflow.providers_manager`` + * Rename method ``_register_dataset_changes`` as ``_register_asset_changes`` - * and its class ``ProvidersManager`` + * In module ``airflow.providers_manager`` - * Rename method ``initialize_providers_dataset_uri_resources`` as ``initialize_providers_asset_uri_resources`` - * Rename attribute ``_discover_dataset_uri_resources`` as ``_discover_asset_uri_resources`` - * Rename property ``dataset_factories`` as ``asset_factories`` - * Rename property ``dataset_uri_handlers`` as ``asset_uri_handlers`` - * Rename property ``dataset_to_openlineage_converters`` as ``asset_to_openlineage_converters`` + * and its class ``ProvidersManager`` -* In module ``airflow.security.permissions`` + * Rename method ``initialize_providers_dataset_uri_resources`` as ``initialize_providers_asset_uri_resources`` + * Rename attribute ``_discover_dataset_uri_resources`` as ``_discover_asset_uri_resources`` + * Rename property ``dataset_factories`` as ``asset_factories`` + * Rename property ``dataset_uri_handlers`` as ``asset_uri_handlers`` + * Rename property ``dataset_to_openlineage_converters`` as ``asset_to_openlineage_converters`` - * Rename constant ``RESOURCE_DATASET`` as ``RESOURCE_ASSET`` + * In module ``airflow.security.permissions`` -* In module ``airflow.serialization.enums`` + * Rename constant ``RESOURCE_DATASET`` as ``RESOURCE_ASSET`` - * and its class DagAttributeTypes + * In module ``airflow.serialization.enums`` - * Rename attribute ``DATASET_EVENT_ACCESSORS`` as ``ASSET_EVENT_ACCESSORS`` - * Rename attribute ``DATASET_EVENT_ACCESSOR`` as ``ASSET_EVENT_ACCESSOR`` - * Rename attribute ``DATASET`` as ``ASSET`` - * Rename attribute ``DATASET_ALIAS`` as ``ASSET_ALIAS`` - * Rename attribute ``DATASET_ANY`` as ``ASSET_ANY`` - * Rename attribute ``DATASET_ALL`` as ``ASSET_ALL`` + * and its class DagAttributeTypes -* In module ``airflow.serialization.pydantic.taskinstance`` + * Rename attribute ``DATASET_EVENT_ACCESSORS`` as ``ASSET_EVENT_ACCESSORS`` + * Rename attribute ``DATASET_EVENT_ACCESSOR`` as ``ASSET_EVENT_ACCESSOR`` + * Rename attribute ``DATASET`` as ``ASSET`` + * Rename attribute ``DATASET_ALIAS`` as ``ASSET_ALIAS`` + * Rename attribute ``DATASET_ANY`` as ``ASSET_ANY`` + * Rename attribute ``DATASET_ALL`` as ``ASSET_ALL`` - * and its class ``TaskInstancePydantic`` + * In module ``airflow.serialization.pydantic.taskinstance`` - * Rename method ``_register_dataset_changes`` as ``_register_dataset_changes`` + * and its class ``TaskInstancePydantic`` -* In module ``airflow.serialization.serialized_objects`` + * Rename method ``_register_dataset_changes`` as ``_register_dataset_changes`` - * Rename function ``encode_dataset_condition`` as ``encode_asset_condition`` - * Rename function ``decode_dataset_condition`` as ``decode_asset_condition`` + * In module ``airflow.serialization.serialized_objects`` -* In module ``airflow.timetables.base`` + * Rename function ``encode_dataset_condition`` as ``encode_asset_condition`` + * Rename function ``decode_dataset_condition`` as ``decode_asset_condition`` - * Rename class ```_NullDataset``` as ```_NullAsset``` + * In module ``airflow.timetables.base`` - * Rename method ``iter_datasets`` as ``iter_assets`` - * Rename method ``iter_dataset_aliases`` as ``iter_assets_aliases`` + * Rename class ```_NullDataset``` as ```_NullAsset``` -* In module ``airflow.utils.context`` + * Rename method ``iter_datasets`` as ``iter_assets`` + * Rename method ``iter_dataset_aliases`` as ``iter_assets_aliases`` - * Rename class ``LazyDatasetEventSelectSequence`` as ``LazyAssetEventSelectSequence`` + * In module ``airflow.utils.context`` -* In module ``airflow.www.auth`` + * Rename class ``LazyDatasetEventSelectSequence`` as ``LazyAssetEventSelectSequence`` - * Rename function ``has_access_dataset`` as ``has_access_asset`` + * In module ``airflow.www.auth`` -* Rename configuration ``core.dataset_manager_class`` as ``core.asset_manager_class`` and ``core.dataset_manager_class`` as ``core.asset_manager_class`` -* Rename example dags ``example_dataset_alias.py``, ``example_dataset_alias_with_no_taskflow.py``, ``example_datasets.py`` as ``example_asset_alias.py``, ``example_asset_alias_with_no_taskflow.py``, ``example_assets.py`` -* Rename DagDependency name ``dataset-alias``, ``dataset`` as ``asset-alias``, ``asset`` -* Rename context key ``triggering_dataset_events`` as ``triggering_asset_events`` -* Rename resource key ``dataset-uris`` as ``asset-uris`` for providers amazon, common.io, mysql, fab, postgres, trino + * Rename function ``has_access_dataset`` as ``has_access_asset`` -* In provider ``airflow.providers.amazon.aws`` + * Rename configuration ``core.dataset_manager_class`` as ``core.asset_manager_class`` and ``core.dataset_manager_kwargs`` as ``core.asset_manager_kwargs`` + * Rename example dags ``example_dataset_alias.py``, ``example_dataset_alias_with_no_taskflow.py``, ``example_datasets.py`` as ``example_asset_alias.py``, ``example_asset_alias_with_no_taskflow.py``, ``example_assets.py`` + * Rename DagDependency name ``dataset-alias``, ``dataset`` as ``asset-alias``, ``asset`` + * Rename context key ``triggering_dataset_events`` as ``triggering_asset_events`` + * Rename resource key ``dataset-uris`` as ``asset-uris`` for providers amazon, common.io, mysql, fab, postgres, trino - * Rename package ``datasets`` as ``assets`` + * In provider ``airflow.providers.amazon.aws`` - * In its module ``s3`` + * Rename package ``datasets`` as ``assets`` - * Rename method ``create_dataset`` as ``create_asset`` - * Rename method ``convert_dataset_to_openlineage`` as ``convert_asset_to_openlineage`` + * In its module ``s3`` - * and its module ``auth_manager.avp.entities`` + * Rename method ``create_dataset`` as ``create_asset`` + * Rename method ``convert_dataset_to_openlineage`` as ``convert_asset_to_openlineage`` - * Rename attribute ``AvpEntities.DATASET`` as ``AvpEntities.ASSET`` + * and its module ``auth_manager.avp.entities`` - * and its module ``auth_manager.auth_manager.aws_auth_manager`` + * Rename attribute ``AvpEntities.DATASET`` as ``AvpEntities.ASSET`` - * Rename function ``is_authorized_dataset`` as ``is_authorized_asset`` + * and its module ``auth_manager.auth_manager.aws_auth_manager`` -* In provider ``airflow.providers.common.io`` + * Rename function ``is_authorized_dataset`` as ``is_authorized_asset`` - * Rename package ``datasets`` as ``assets`` + * In provider ``airflow.providers.common.io`` - * in its module ``file`` + * Rename package ``datasets`` as ``assets`` - * Rename method ``create_dataset`` as ``create_asset`` - * Rename method ``convert_dataset_to_openlineage`` as ``convert_asset_to_openlineage`` + * in its module ``file`` -* In provider ``airflow.providers.fab`` + * Rename method ``create_dataset`` as ``create_asset`` + * Rename method ``convert_dataset_to_openlineage`` as ``convert_asset_to_openlineage`` - * in its module ``auth_manager.fab_auth_manager`` + * In provider ``airflow.providers.fab`` - * Rename function ``is_authorized_dataset`` as ``is_authorized_asset`` + * in its module ``auth_manager.fab_auth_manager`` -* In provider ``airflow.providers.openlineage`` + * Rename function ``is_authorized_dataset`` as ``is_authorized_asset`` - * in its module ``utils.utils`` + * In provider ``airflow.providers.openlineage`` - * Rename class ``DatasetInfo`` as ``AssetInfo`` - * Rename function ``translate_airflow_dataset`` as ``translate_airflow_asset`` + * in its module ``utils.utils`` -* Rename package ``airflow.providers.postgres.datasets`` as ``airflow.providers.postgres.assets`` -* Rename package ``airflow.providers.mysql.datasets`` as ``airflow.providers.mysql.assets`` -* Rename package ``airflow.providers.trino.datasets`` as ``airflow.providers.trino.assets`` -* Add module ``airflow.providers.common.compat.assets`` -* Add module ``airflow.providers.common.compat.openlineage.utils.utils`` -* Add module ``airflow.providers.common.compat.security.permissions`` + * Rename class ``DatasetInfo`` as ``AssetInfo`` + * Rename function ``translate_airflow_dataset`` as ``translate_airflow_asset`` + + * Rename package ``airflow.providers.postgres.datasets`` as ``airflow.providers.postgres.assets`` + * Rename package ``airflow.providers.mysql.datasets`` as ``airflow.providers.mysql.assets`` + * Rename package ``airflow.providers.trino.datasets`` as ``airflow.providers.trino.assets`` + * Add module ``airflow.providers.common.compat.assets`` + * Add module ``airflow.providers.common.compat.openlineage.utils.utils`` + * Add module ``airflow.providers.common.compat.security.permissions`` + +* Types of change + + * [x] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``core.dataset_manager_class`` → ``core.asset_manager_class`` + * [x] ``core.dataset_manager_kwargs`` → ``core.asset_manager_kwargs`` + + * ruff + + * AIR302 + + * [ ] context key ``triggering_dataset_events`` → ``triggering_asset_events`` + * [x] ``airflow.api_connexion.security.requires_access_dataset`` → ``airflow.api_connexion.security.requires_access_asset`` + * [x] ``airflow.auth.managers.base_auth_manager.is_authorized_dataset`` → ``airflow.auth.managers.base_auth_manager.is_authorized_asset`` + * [x] ``airflow.auth.managers.models.resource_details.DatasetDetails`` → ``airflow.auth.managers.models.resource_details.AssetDetails`` + * [x] ``airflow.lineage.hook.DatasetLineageInfo`` → ``airflow.lineage.hook.AssetLineageInfo`` + * [x] ``airflow.security.permissions.RESOURCE_DATASET`` → ``airflow.security.permissions.RESOURCE_ASSET`` + * [x] ``airflow.www.auth.has_access_dataset`` → ``airflow.www.auth.has_access_dataset.has_access_asset`` + * [x] ``airflow.datasets.DatasetAliasEvent`` + * [x] ``airflow.datasets.Dataset`` → ``airflow.sdk.definitions.asset.Asset`` + * [x] ``airflow.Dataset`` → ``airflow.sdk.definitions.asset.Asset`` + * [x] ``airflow.datasets.DatasetAlias`` → ``airflow.sdk.definitions.asset.AssetAlias`` + * [x] ``airflow.datasets.DatasetAll`` → ``airflow.sdk.definitions.asset.AssetAll`` + * [x] ``airflow.datasets.DatasetAny`` → ``airflow.sdk.definitions.asset.AssetAny`` + * [x] ``airflow.datasets.metadata`` → ``airflow.sdk.definitions.asset.metadata`` + * [x] ``airflow.datasets.expand_alias_to_datasets`` → ``airflow.sdk.definitions.asset.expand_alias_to_assets`` + * [x] ``airflow.datasets.manager.dataset_manager`` → ``airflow.assets.manager`` + * [x] ``airflow.datasets.manager.resolve_dataset_manager`` → ``airflow.assets.resolve_asset_manager`` + * [x] ``airflow.datasets.manager.DatasetManager`` → ``airflow.assets.AssetManager`` + * [x] ``airflow.listeners.spec.dataset.on_dataset_created`` → ``airflow.listeners.spec.asset.on_asset_created`` + * [x] ``airflow.listeners.spec.dataset.on_dataset_changed`` → ``airflow.listeners.spec.asset.on_asset_changed`` + * [x] ``airflow.timetables.simple.DatasetTriggeredTimetable`` → ``airflow.timetables.simple.AssetTriggeredTimetable`` + * [x] ``airflow.timetables.datasets.DatasetOrTimeSchedule`` → ``airflow.timetables.assets.AssetOrTimeSchedule`` + * [x] ``airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.DATASET`` → ``airflow.providers.amazon.auth_manager.avp.entities.AvpEntities.ASSET`` + * [x] ``airflow.providers.amazon.aws.datasets.s3.create_dataset`` → ``airflow.providers.amazon.aws.assets.s3.create_asset`` + * [x] ``airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage`` → ``airflow.providers.amazon.aws.datasets.s3.convert_dataset_to_openlineage`` + * [x] ``airflow.providers.amazon.aws.datasets.s3.sanitize_uri`` → ``airflow.providers.amazon.aws.assets.s3.sanitize_uri`` + * [x] ``airflow.providers.common.io.datasets.file.convert_dataset_to_openlineage`` → ``airflow.providers.common.io.assets.file.convert_asset_to_openlineage`` + * [x] ``airflow.providers.common.io.datasets.file.sanitize_uri`` → ``airflow.providers.common.io.assets.file.sanitize_uri`` + * [x] ``airflow.providers.common.io.datasets.file.create_dataset`` → ``airflow.providers.common.io.assets.file.create_asset`` + * [x] ``airflow.providers.google.datasets.bigquery.sanitize_uri`` → ``airflow.providers.google.assets.bigquery.sanitize_uri`` + * [x] ``airflow.providers.google.datasets.gcs.create_dataset`` → ``airflow.providers.google.assets.gcs.create_asset`` + * [x] ``airflow.providers.google.datasets.gcs.sanitize_uri`` → ``airflow.providers.google.assets.gcs.sanitize_uri`` + * [x] ``airflow.providers.google.datasets.gcs.convert_dataset_to_openlineage`` → ``airflow.providers.google.assets.gcs.convert_asset_to_openlineage`` + * [x] ``airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_dataset`` → ``airflow.providers.fab.auth_manager.fab_auth_manager.is_authorized_asset`` + * [x] ``airflow.providers.openlineage.utils.utils.DatasetInfo`` → ``airflow.providers.openlineage.utils.utils.AssetInfo`` + * [x] ``airflow.providers.openlineage.utils.utils.translate_airflow_dataset`` → ``airflow.providers.openlineage.utils.utils.translate_airflow_asset`` + * [x] ``airflow.providers.postgres.datasets.postgres.sanitize_uri`` → ``airflow.providers.postgres.assets.postgres.sanitize_uri`` + * [x] ``airflow.providers.mysql.datasets.mysql.sanitize_uri`` → ``airflow.providers.mysql.assets.mysql.sanitize_uri`` + * [x] ``airflow.providers.trino.datasets.trino.sanitize_uri`` → ``airflow.providers.trino.assets.trino.sanitize_uri`` + * [x] property ``airflow.providers_manager.ProvidersManager.dataset_factories`` → ``airflow.providers_manager.ProvidersManager.asset_factories`` + * [x] property ``airflow.providers_manager.ProvidersManager.dataset_uri_handlers`` → ``airflow.providers_manager.ProvidersManager.asset_uri_handlers`` + * [x] property ``airflow.providers_manager.ProvidersManager.dataset_to_openlineage_converters`` → ``airflow.providers_manager.ProvidersManager.asset_to_openlineage_converters`` + * [x] class attribute ``airflow.lineage.hook.DatasetLineageInfo.dataset`` → ``airflow.lineage.hook.AssetLineageInfo.asset`` + * [x] method ``airflow.datasets.manager.DatasetManager.register_dataset_change`` → ``airflow.assets.manager.AssetManager.register_asset_change`` + * [x] method ``airflow.datasets.manager.DatasetManager.create_datasets`` → ``airflow.assets.manager.AssetManager.create_assets`` + * [x] method ``airflow.datasets.manager.DatasetManager.notify_dataset_created`` → ``airflow.assets.manager.AssetManager.notify_asset_created`` + * [x] method ``airflow.datasets.manager.DatasetManager.notify_dataset_changed`` → ``airflow.assets.manager.AssetManager.notify_asset_changed`` + * [x] method ``airflow.datasets.manager.DatasetManager.notify_dataset_alias_created`` → ``airflow.assets.manager.AssetManager.notify_asset_alias_created`` + * [x] method ``airflow.providers.amazon.auth_manager.aws_auth_manager.AwsAuthManager.is_authorized_dataset`` → ``airflow.providers.amazon.auth_manager.aws_auth_manager.AwsAuthManager.is_authorized_asset`` + * [x] method ``airflow.lineage.hook.HookLineageCollector.create_dataset`` → ``airflow.lineage.hook.HookLineageCollector.create_asset`` + * [x] method ``airflow.lineage.hook.HookLineageCollector.add_input_dataset`` → ``airflow.lineage.hook.HookLineageCollector.add_input_asset`` + * [x] method ``airflow.lineage.hook.HookLineageCollector.add_output_dataset`` → ``airflow.lineage.hook.HookLineageCollector.dd_output_asset`` + * [x] method ``airflow.lineage.hook.HookLineageCollector.collected_datasets`` → ``airflow.lineage.hook.HookLineageCollector.collected_assets`` + * [x] method ``airflow.providers_manager.ProvidersManager.initialize_providers_dataset_uri_resources`` → ``airflow.providers_manager.ProvidersManager.initialize_providers_asset_uri_resources`` + * [x] method ``airflow.secrets.base_secrets.BaseSecretsBackend.get_conn_uri`` → ``airflow.secrets.base_secrets.BaseSecretsBackend.get_conn_value`` + * [x] method ``airflow.secrets.base_secrets.BaseSecretsBackend.get_connections`` → ``airflow.secrets.base_secrets.BaseSecretsBackend.get_connection`` + * [x] method ``airflow.hooks.base.BaseHook.get_connections`` → ``airflow.hooks.base.BaseHook.get_connection`` + * [x] method ``airflow.datasets.BaseDataset.iter_datasets`` → ``airflow.sdk.definitions.asset.BaseAsset.iter_assets`` + * [x] method ``airflow.datasets.BaseDataset.iter_dataset_aliases`` → ``airflow.sdk.definitions.asset.BaseAsset.iter_asset_aliases`` diff --git a/newsfragments/41366.significant.rst b/newsfragments/41366.significant.rst index c552325d8a70f..edd588d90bd75 100644 --- a/newsfragments/41366.significant.rst +++ b/newsfragments/41366.significant.rst @@ -1,3 +1,22 @@ ``airflow.contrib`` modules have been removed All modules from ``airflow.contrib``, which were deprecated in Airflow 2, have been removed. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.contrib.*`` diff --git a/newsfragments/41367.significant.rst b/newsfragments/41367.significant.rst index 410d5941bfab7..1e7405bd8e2ee 100644 --- a/newsfragments/41367.significant.rst +++ b/newsfragments/41367.significant.rst @@ -2,3 +2,14 @@ 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``. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41368.significant.rst b/newsfragments/41368.significant.rst index 26b76b0f3a1ec..2ae517e7ce430 100644 --- a/newsfragments/41368.significant.rst +++ b/newsfragments/41368.significant.rst @@ -10,3 +10,162 @@ Support for importing classes etc from the following locations was deprecated at 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``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.operators.bash_operator.BashOperator`` → ``airflow.operators.bash.BashOperator`` + * [x] ``airflow.operators.branch_operator.BaseBranchOperator`` → ``airflow.operators.branch.BaseBranchOperator`` + * [x] ``airflow.operators....EmptyOperator`` → ``airflow.operators.empty.EmptyOperator`` + * [x] ``airflow.operators....DummyOperator`` → ``airflow.operators.empty.EmptyOperator`` + * [x] ``airflow.operators.dummy_operator.EmptyOperator`` → ``airflow.operators.empty.EmptyOperator`` + * [x] ``airflow.operators.dummy_operator.DummyOperator`` → ``airflow.operators.empty.EmptyOperator`` + * [x] ``airflow.operators.email_operator.EmailOperator`` → ``airflow.operators.email.EmailOperator`` + * [x] ``airflow.sensors.base_sensor_operator.BaseSensorOperator`` → ``airflow.sensors.base.BaseSensorOperator`` + * [x] ``airflow.sensors.date_time_sensor.DateTimeSensor`` → ``airflow.sensors.date_time.DateTimeSensor`` + * [x] ``airflow.sensors.external_task_sensor.ExternalTaskMarker`` → ``airflow.sensors.external_task.ExternalTaskMarker`` + * [x] ``airflow.sensors.external_task_sensor.ExternalTaskSensor`` → ``airflow.sensors.external_task.ExternalTaskSensor`` + * [x] ``airflow.sensors.external_task_sensor.ExternalTaskSensorLink`` → ``airflow.sensors.external_task.ExternalTaskSensorLink`` + * [x] ``airflow.sensors.time_delta_sensor.TimeDeltaSensor`` → ``airflow.sensors.time_delta.TimeDeltaSensor`` + * [x] ``airflow.hooks.base_hook.BaseHook`` → ``airflow.hooks.base.BaseHook`` + * [x] ``airflow.operators.dagrun_operator.TriggerDagRunLink`` → ``airflow.operators.trigger_dagrun.TriggerDagRunLink`` + * [x] ``airflow.operators.dagrun_operator.TriggerDagRunOperator`` → ``airflow.operators.trigger_dagrun.TriggerDagRunOperator`` + * [x] ``airflow.operators.python_operator.BranchPythonOperator`` → ``airflow.operators.python.BranchPythonOperator`` + * [x] ``airflow.operators.python_operator.PythonOperator`` → ``airflow.operators.python.PythonOperator`` + * [x] ``airflow.operators.python_operator.PythonVirtualenvOperator`` → ``airflow.operators.python.PythonVirtualenvOperator`` + * [x] ``airflow.operators.python_operator.ShortCircuitOperator`` → ``airflow.operators.python.ShortCircuitOperator`` + * [x] ``airflow.operators.latest_only_operator.LatestOnlyOperator`` → ``airflow.operators.latest_only.LatestOnlyOperator`` + + * AIR303 + + * [x] ``airflow.executors.celery_executor.CeleryExecutor`` → ``airflow.providers.celery.executors.celery_executor.CeleryExecutor`` + * [x] ``airflow.executors.celery_kubernetes_executor.CeleryKubernetesExecutor`` → ``airflow.providers.celery.executors.celery_kubernetes_executor.CeleryKubernetesExecutor`` + * [x] ``airflow.executors.dask_executor.DaskExecutor`` → ``airflow.providers.daskexecutor.executors.dask_executor.DaskExecutor`` + * [x] ``airflow.executors.kubernetes_executor.KubernetesExecutor`` → ``airflow.providers.cncf.kubernetes.executors.kubernetes_executor.KubernetesExecutor`` + * [x] ``airflow.executors.kubernetes_executor_utils.AirflowKubernetesScheduler`` → ``airflow.providers.cncf.kubernetes.executors.kubernetes_executor_utils.AirflowKubernetesScheduler`` + * [x] ``airflow.executors.kubernetes_executor_utils.KubernetesJobWatcher`` → ``airflow.providers.cncf.kubernetes.executors.kubernetes_executor_utils.KubernetesJobWatcher`` + * [x] ``airflow.executors.kubernetes_executor_utils.ResourceVersion`` → ``airflow.providers.cncf.kubernetes.executors.kubernetes_executor_utils.ResourceVersion`` + * [x] ``airflow.executors.local_kubernetes_executor.LocalKubernetesExecutor`` → ``airflow.providers.cncf.kubernetes.executors.LocalKubernetesExecutor`` + * [x] ``airflow.hooks.S3_hook.S3Hook`` → ``airflow.providers.amazon.aws.hooks.s3.S3Hook`` + * [x] ``airflow.hooks.S3_hook.provide_bucket_name`` → ``airflow.providers.amazon.aws.hooks.s3.provide_bucket_name`` + * [x] ``airflow.hooks.base_hook.BaseHook`` → ``airflow.hooks.base.BaseHook`` + * [x] ``airflow.hooks.dbapi_hook.DbApiHook`` → ``airflow.providers.common.sql.hooks.sql.DbApiHook`` + * [x] ``airflow.hooks.docker_hook.DockerHook`` → ``airflow.providers.docker.hooks.docker.DockerHook`` + * [x] ``airflow.hooks.druid_hook.DruidDbApiHook`` → ``airflow.providers.apache.druid.hooks.druid.DruidDbApiHook`` + * [x] ``airflow.hooks.druid_hook.DruidHook`` → ``airflow.providers.apache.druid.hooks.druid.DruidHook`` + * [x] ``airflow.hooks.hive_hooks.HIVE_QUEUE_PRIORITIES`` → ``airflow.providers.apache.hive.hooks.hive.HIVE_QUEUE_PRIORITIES`` + * [x] ``airflow.hooks.hive_hooks.HiveCliHook`` → ``airflow.providers.apache.hive.hooks.hive.HiveCliHook`` + * [x] ``airflow.hooks.hive_hooks.HiveMetastoreHook`` → ``airflow.providers.apache.hive.hooks.hive.HiveMetastoreHook`` + * [x] ``airflow.hooks.hive_hooks.HiveServer2Hook`` → ``airflow.providers.apache.hive.hooks.hive.HiveServer2Hook`` + * [x] ``airflow.hooks.http_hook.HttpHook`` → ``airflow.providers.http.hooks.http.HttpHook`` + * [x] ``airflow.hooks.jdbc_hook.JdbcHook`` → ``airflow.providers.jdbc.hooks.jdbc.JdbcHook`` + * [x] ``airflow.hooks.jdbc_hook.jaydebeapi`` → ``airflow.providers.jdbc.hooks.jdbc.jaydebeapi`` + * [x] ``airflow.hooks.mssql_hook.MsSqlHook`` → ``airflow.providers.microsoft.mssql.hooks.mssql.MsSqlHook`` + * [x] ``airflow.hooks.mysql_hook.MySqlHook`` → ``airflow.providers.mysql.hooks.mysql.MySqlHook`` + * [x] ``airflow.hooks.oracle_hook.OracleHook`` → ``airflow.providers.oracle.hooks.oracle.OracleHook`` + * [x] ``airflow.hooks.pig_hook.PigCliHook`` → ``airflow.providers.apache.pig.hooks.pig.PigCliHook`` + * [x] ``airflow.hooks.postgres_hook.PostgresHook`` → ``airflow.providers.postgres.hooks.postgres.PostgresHook`` + * [x] ``airflow.hooks.presto_hook.PrestoHook`` → ``airflow.providers.presto.hooks.presto.PrestoHook`` + * [x] ``airflow.hooks.samba_hook.SambaHook`` → ``airflow.providers.samba.hooks.samba.SambaHook`` + * [x] ``airflow.hooks.slack_hook.SlackHook`` → ``airflow.providers.slack.hooks.slack.SlackHook`` + * [x] ``airflow.hooks.sqlite_hook.SqliteHook`` → ``airflow.providers.sqlite.hooks.sqlite.SqliteHook`` + * [x] ``airflow.hooks.webhdfs_hook.WebHDFSHook`` → ``airflow.providers.apache.hdfs.hooks.webhdfs.WebHDFSHook`` + * [x] ``airflow.hooks.zendesk_hook.ZendeskHook`` → ``airflow.providers.zendesk.hooks.zendesk.ZendeskHook`` + * [x] ``airflow.operators.check_operator.SQLCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLCheckOperator`` + * [x] ``airflow.operators.check_operator.SQLIntervalCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator`` + * [x] ``airflow.operators.check_operator.SQLThresholdCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator`` + * [x] ``airflow.operators.check_operator.SQLValueCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLValueCheckOperator`` + * [x] ``airflow.operators.check_operator.CheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLCheckOperator`` + * [x] ``airflow.operators.check_operator.IntervalCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator`` + * [x] ``airflow.operators.check_operator.ThresholdCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator`` + * [x] ``airflow.operators.check_operator.ValueCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLValueCheckOperator`` + * [x] ``airflow.operators.dagrun_operator.TriggerDagRunLink`` → ``airflow.operators.trigger_dagrun.TriggerDagRunLink`` + * [x] ``airflow.operators.dagrun_operator.TriggerDagRunOperator`` → ``airflow.operators.trigger_dagrun.TriggerDagRunOperator`` + * [x] ``airflow.operators.docker_operator.DockerOperator`` → ``airflow.providers.docker.operators.docker.DockerOperator`` + * [x] ``airflow.operators.druid_check_operator.DruidCheckOperator`` → ``airflow.providers.apache.druid.operators.druid_check.DruidCheckOperator`` + * [x] ``airflow.operators.gcs_to_s3.GCSToS3Operator`` → ``airflow.providers.amazon.aws.transfers.gcs_to_s3.GCSToS3Operator`` + * [x] ``airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Operator`` → ``airflow.providers.amazon.aws.transfers.google_api_to_s3.GoogleApiToS3Operator`` + * [x] ``airflow.operators.google_api_to_s3_transfer.GoogleApiToS3Transfer`` → ``airflow.providers.amazon.aws.transfers.google_api_to_s3.GoogleApiToS3Operator`` + * [x] ``airflow.operators.hive_operator.HiveOperator`` → ``airflow.providers.apache.hive.operators.hive.HiveOperator`` + * [x] ``airflow.operators.hive_stats_operator.HiveStatsCollectionOperator`` → ``airflow.providers.apache.hive.operators.hive_stats.HiveStatsCollectionOperator`` + * [x] ``airflow.operators.hive_to_druid.HiveToDruidOperator`` → ``airflow.providers.apache.druid.transfers.hive_to_druid.HiveToDruidOperator`` + * [x] ``airflow.operators.hive_to_druid.HiveToDruidTransfer`` → ``airflow.providers.apache.druid.transfers.hive_to_druid.HiveToDruidOperator`` + * [x] ``airflow.operators.hive_to_mysql.HiveToMySqlOperator`` → ``airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator`` + * [x] ``airflow.operators.hive_to_mysql.HiveToMySqlTransfer`` → ``airflow.providers.apache.hive.transfers.hive_to_mysql.HiveToMySqlOperator`` + * [x] ``airflow.operators.local_kubernetes_executor.HiveToSambaOperator`` → ``airflow.providers.apache.hive.transfers.hive_to_samba.HiveToSambaOperator`` + * [x] ``airflow.operators.hive_to_samba_operator.SimpleHttpOperator`` → ``airflow.providers.http.operators.http.SimpleHttpOperator`` + * [x] ``airflow.operators.jdbc_operator.JdbcOperator`` → ``airflow.providers.jdbc.operators.jdbc.JdbcOperator`` + * [x] ``airflow.operators.latest_only_operator.LatestOnlyOperator`` → ``airflow.operators.latest_only.LatestOnlyOperator`` + * [x] ``airflow.operators.mssql_operator.MsSqlOperator`` → ``airflow.providers.microsoft.mssql.operators.mssql.MsSqlOperator`` + * [x] ``airflow.operators.mssql_to_hive.MsSqlToHiveOperator`` → ``airflow.providers.apache.hive.transfers.mssql_to_hive.MsSqlToHiveOperator`` + * [x] ``airflow.operators.mssql_to_hive.MsSqlToHiveTransfer`` → ``airflow.providers.apache.hive.transfers.mssql_to_hive.MsSqlToHiveOperator`` + * [x] ``airflow.operators.mysql_operator.MySqlOperator`` → ``airflow.providers.mysql.operators.mysql.MySqlOperator`` + * [x] ``airflow.operators.mysql_to_hive.MySqlToHiveOperator`` → ``airflow.providers.apache.hive.transfers.mysql_to_hive.MySqlToHiveOperator`` + * [x] ``airflow.operators.mysql_to_hive.MySqlToHiveTransfer`` → ``airflow.providers.apache.hive.transfers.mysql_to_hive.MySqlToHiveOperator`` + * [x] ``airflow.operators.oracle_operator.OracleOperator`` → ``airflow.providers.oracle.operators.oracle.OracleOperator`` + * [x] ``airflow.operators.papermill_operator.PapermillOperator`` → ``airflow.providers.papermill.operators.papermill.PapermillOperator`` + * [x] ``airflow.operators.pig_operator.PigOperator`` → ``airflow.providers.apache.pig.operators.pig.PigOperator`` + * [x] ``airflow.operators.postgres_operator.Mapping`` → ``airflow.providers.postgres.operators.postgres.Mapping`` + * [x] ``airflow.operators.postgres_operator.PostgresOperator`` → ``airflow.providers.postgres.operators.postgres.PostgresOperator`` + * [x] ``airflow.operators.presto_check_operator.SQLCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLCheckOperator`` + * [x] ``airflow.operators.presto_check_operator.SQLIntervalCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator`` + * [x] ``airflow.operators.presto_check_operator.SQLValueCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLValueCheckOperator`` + * [x] ``airflow.operators.presto_check_operator.PrestoCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLCheckOperator`` + * [x] ``airflow.operators.presto_check_operator.PrestoIntervalCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator`` + * [x] ``airflow.operators.presto_check_operator.PrestoValueCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLValueCheckOperator`` + * [x] ``airflow.operators.presto_to_mysql.PrestoToMySqlOperator`` → ``airflow.providers.mysql.transfers.presto_to_mysql.PrestoToMySqlOperator`` + * [x] ``airflow.operators.presto_to_mysql.PrestoToMySqlTransfer`` → ``airflow.providers.mysql.transfers.presto_to_mysql.PrestoToMySqlOperator`` + * [x] ``airflow.operators.python_operator.BranchPythonOperator`` → ``airflow.operators.python.BranchPythonOperator`` + * [x] ``airflow.operators.python_operator.PythonOperator`` → ``airflow.operators.python.PythonOperator`` + * [x] ``airflow.operators.python_operator.PythonVirtualenvOperator`` → ``airflow.operators.python.PythonVirtualenvOperator`` + * [x] ``airflow.operators.python_operator.ShortCircuitOperator`` → ``airflow.operators.python.ShortCircuitOperator`` + * [x] ``airflow.operators.redshift_to_s3_operator.RedshiftToS3Operator`` → ``airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator`` + * [x] ``airflow.operators.redshift_to_s3_operator.RedshiftToS3Transfer`` → ``airflow.providers.amazon.aws.transfers.redshift_to_s3.RedshiftToS3Operator`` + * [x] ``airflow.operators.s3_file_transform_operator.S3FileTransformOperator`` → ``airflow.providers.amazon.aws.operators.s3_file_transform.S3FileTransformOperator`` + * [x] ``airflow.operators.s3_to_hive_operator.S3ToHiveOperator`` → ``airflow.providers.apache.hive.transfers.s3_to_hive.S3ToHiveOperator`` + * [x] ``airflow.operators.s3_to_hive_operator.S3ToHiveTransfer`` → ``airflow.providers.apache.hive.transfers.s3_to_hive.S3ToHiveOperator`` + * [x] ``airflow.operators.s3_to_redshift_operator.S3ToRedshiftOperator`` → ``airflow.providers.amazon.aws.transfers.s3_to_redshift.S3ToRedshiftOperator`` + * [x] ``airflow.operators.s3_to_redshift_operator.S3ToRedshiftTransfer`` → ``airflow.providers.amazon.aws.transfers.s3_to_redshift.S3ToRedshiftOperator`` + * [x] ``airflow.operators.slack_operator.SlackAPIOperator`` → ``airflow.providers.slack.operators.slack.SlackAPIOperator`` + * [x] ``airflow.operators.slack_operator.SlackAPIPostOperator`` → ``airflow.providers.slack.operators.slack.SlackAPIPostOperator`` + * [x] ``airflow.operators.sql.BaseSQLOperator`` → ``airflow.providers.common.sql.operators.sql.BaseSQLOperator`` + * [x] ``airflow.operators.sql.BranchSQLOperator`` → ``airflow.providers.common.sql.operators.sql.BranchSQLOperator`` + * [x] ``airflow.operators.sql.SQLCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLCheckOperator`` + * [x] ``airflow.operators.sql.SQLColumnCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLColumnCheckOperator`` + * [x] ``airflow.operators.sql.SQLIntervalCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLIntervalCheckOperator`` + * [x] ``airflow.operators.sql.SQLTableCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLTableCheckOperator`` + * [x] ``airflow.operators.sql.SQLThresholdCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLThresholdCheckOperator`` + * [x] ``airflow.operators.sql.SQLValueCheckOperator`` → ``airflow.providers.common.sql.operators.sql.SQLValueCheckOperator`` + * [x] ``airflow.operators.sql._convert_to_float_if_possible`` → ``airflow.providers.common.sql.operators.sql._convert_to_float_if_possible`` + * [x] ``airflow.operators.sql.parse_boolean`` → ``airflow.providers.common.sql.operators.sql.parse_boolean`` + * [x] ``airflow.operators.sql_branch_operator.BranchSQLOperator`` → ``airflow.providers.common.sql.operators.sql.BranchSQLOperator`` + * [x] ``airflow.operators.sql_branch_operator.BranchSqlOperator`` → ``airflow.providers.common.sql.operators.sql.BranchSQLOperator`` + * [x] ``airflow.operators.sqlite_operator.SqliteOperator`` → ``airflow.providers.sqlite.operators.sqlite.SqliteOperator`` + * [x] ``airflow.sensors.hive_partition_sensor.HivePartitionSensor`` → ``airflow.providers.apache.hive.sensors.hive_partition.HivePartitionSensor`` + * [x] ``airflow.sensors.http_sensor.HttpSensor`` → ``airflow.providers.http.sensors.http.HttpSensor`` + * [x] ``airflow.sensors.metastore_partition_sensor.MetastorePartitionSensor`` → ``airflow.providers.apache.hive.sensors.metastore_partition.MetastorePartitionSensor`` + * [x] ``airflow.sensors.named_hive_partition_sensor.NamedHivePartitionSensor`` → ``airflow.providers.apache.hive.sensors.named_hive_partition.NamedHivePartitionSensor`` + * [x] ``airflow.sensors.s3_key_sensor.S3KeySensor`` → ``airflow.providers.amazon.aws.sensors.s3.S3KeySensor`` + * [x] ``airflow.sensors.sql.SqlSensor`` → ``airflow.providers.common.sql.sensors.sql.SqlSensor`` + * [x] ``airflow.sensors.sql_sensor.SqlSensor`` → ``airflow.providers.common.sql.sensors.sql.SqlSensor`` + * [x] ``airflow.sensors.web_hdfs_sensor.WebHdfsSensor`` → ``airflow.providers.apache.hdfs.sensors.web_hdfs.WebHdfsSensor`` + * [x] ``airflow.executors.kubernetes_executor_types.ALL_NAMESPACES`` → ``airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types.ALL_NAMESPACES`` + * [x] ``airflow.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY`` → ``airflow.providers.cncf.kubernetes.executors.kubernetes_executor_types.POD_EXECUTOR_DONE_KEY`` + * [x] ``airflow.hooks.hive_hooks.HIVE_QUEUE_PRIORITIES`` → ``airflow.providers.apache.hive.hooks.hive.HIVE_QUEUE_PRIORITIES`` + * [x] ``airflow.executors.celery_executor.app`` → ``airflow.providers.celery.executors.celery_executor_utils.app`` + * [x] ``airflow.macros.hive.closest_ds_partition`` → ``airflow.providers.apache.hive.macros.hive.closest_ds_partition`` + * [x] ``airflow.macros.hive.max_partition`` → ``airflow.providers.apache.hive.macros.hive.max_partition`` diff --git a/newsfragments/41390.significant.rst b/newsfragments/41390.significant.rst index 37ddf0732449e..5a88c547048fe 100644 --- a/newsfragments/41390.significant.rst +++ b/newsfragments/41390.significant.rst @@ -1,7 +1,5 @@ Support for SubDags is removed -**Breaking Change** - Subdags have been removed from the following locations: - CLI @@ -12,3 +10,22 @@ 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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [x] API changes + * [x] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.operators.subdag.*`` diff --git a/newsfragments/41391.significant.rst b/newsfragments/41391.significant.rst index 0513aa3ab93b3..de169be0e4835 100644 --- a/newsfragments/41391.significant.rst +++ b/newsfragments/41391.significant.rst @@ -1,5 +1,23 @@ -**Breaking Change** - The ``airflow.providers.standard.sensors.external_task.ExternalTaskSensorLink`` class has been removed. + This class was deprecated and is no longer available. Users should now use the ``airflow.providers.standard.sensors.external_task.ExternalDagLink`` class directly. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.sensors.external_task.ExternalTaskSensorLink`` → ``airflow.sensors.external_task.ExternalDagLink`` diff --git a/newsfragments/41393.significant.rst b/newsfragments/41393.significant.rst index d81e2858bb59b..26b3724ca4aa0 100644 --- a/newsfragments/41393.significant.rst +++ b/newsfragments/41393.significant.rst @@ -1,7 +1,4 @@ -**Breaking Change** - -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``. +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. @@ -16,3 +13,22 @@ Example update: use_task_logical_date=True, dag=dag, ) + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] arguments ``use_task_execution_day`` → ``use_task_logical_date`` in ``airflow.operators.weekday.DayOfWeekSensor`` diff --git a/newsfragments/41394.significant.rst b/newsfragments/41394.significant.rst index d973efb81daef..49414a50b8e31 100644 --- a/newsfragments/41394.significant.rst +++ b/newsfragments/41394.significant.rst @@ -1,6 +1,15 @@ -**Breaking Change** +The ``airflow.models.taskMixin.TaskMixin`` class has been removed. It was previously deprecated in favor of the ``airflow.models.taskMixin.DependencyMixin`` class. -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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41395.significant.rst b/newsfragments/41395.significant.rst index 77be51aff89d3..be9427b8b9d6f 100644 --- a/newsfragments/41395.significant.rst +++ b/newsfragments/41395.significant.rst @@ -8,3 +8,26 @@ The following deprecated functions, constants, and classes have been removed as - ``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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.utils.file.TemporaryDirectory`` → ``tempfile.TemporaryDirectory`` + * [x] ``airflow.utils.file.mkdirs`` → ``pathlib.Path({path}).mkdir`` + * [x] ``airflow.utils.dag_cycle_tester.test_cycle`` + * [x] ``airflow.utils.state.SHUTDOWN`` + * [x] ``airflow.utils.state.terminating_states`` diff --git a/newsfragments/41420.significant.rst b/newsfragments/41420.significant.rst index 361b8c7ea9c48..b2d05c97c60b4 100644 --- a/newsfragments/41420.significant.rst +++ b/newsfragments/41420.significant.rst @@ -1,5 +1,3 @@ -**Breaking Change** - Replaced Python's ``list`` with ``MutableSet`` for the property ``DAG.tags``. At the constractur you still can use list, @@ -9,3 +7,14 @@ you actually can use any data structure that implements the The ``tags`` property of the ``DAG`` model would be of type ``MutableSet`` instead of ``list``, as there are no actual duplicates at the tags. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41434.significant.rst b/newsfragments/41434.significant.rst index e0aa50ecd1865..7a4eed657d11d 100644 --- a/newsfragments/41434.significant.rst +++ b/newsfragments/41434.significant.rst @@ -1,6 +1,15 @@ Experimental API is removed -**Breaking Change** - Experimental API is no longer available in Airflow. Users should transition to using Rest API as an alternative. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41440.significant.rst b/newsfragments/41440.significant.rst index 4f819bb4d8f99..c23b6edfb5efc 100644 --- a/newsfragments/41440.significant.rst +++ b/newsfragments/41440.significant.rst @@ -1,16 +1,28 @@ -Removed unused methods / properties in models/dag.py +Removed unused methods / properties in ``airflow/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 +* 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`` + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41453.significant.rst b/newsfragments/41453.significant.rst index fc7269f9280ca..8ca0de3df3202 100644 --- a/newsfragments/41453.significant.rst +++ b/newsfragments/41453.significant.rst @@ -9,3 +9,23 @@ 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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] arguments ``schedule_interval`` in ``DAG`` + * [x] arguments ``timetable`` in ``DAG`` diff --git a/newsfragments/41496.significant.rst b/newsfragments/41496.significant.rst index aecb35e723665..e19f1df46c5a7 100644 --- a/newsfragments/41496.significant.rst +++ b/newsfragments/41496.significant.rst @@ -1,5 +1,26 @@ -Removed deprecated methods in airflow/utils/dates.py +Removed deprecated methods in ``airflow/utils/dates.py`` -Methods removed: - * date_range - * days_ago (Use ``pendulum.today('UTC').add(days=-N, ...)``) +* Methods removed + + * ``date_range`` + * ``days_ago`` (Use ``pendulum.today('UTC').add(days=-N, ...)``) + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.utils.dates.date_range`` + * [x] ``airflow.utils.dates.days_ago`` → ``pendulum.today("UTC").add(days=-N, ...)`` diff --git a/newsfragments/41520.significant.rst b/newsfragments/41520.significant.rst index 6f5c605da59a5..bfd220fa4446f 100644 --- a/newsfragments/41520.significant.rst +++ b/newsfragments/41520.significant.rst @@ -1,5 +1,26 @@ -Removed deprecated methods in airflow/utils/helpers.py +Removed deprecated methods in ``airflow/utils/helpers.py`` - Methods removed: - * chain (Use ``airflow.models.baseoperator.chain``) - * cross_downstream (Use ``airflow.models.baseoperator.cross_downstream``) +* Methods removed: + + * ``chain`` (Use ``airflow.models.baseoperator.chain``) + * ``cross_downstream`` (Use ``airflow.models.baseoperator.cross_downstream``) + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.utils.helpers.chain`` → ``airflow.models.baseoperator.chain`` + * [x] ``airflow.utils.helpers.cross_downstream`` → ``airflow.models.baseoperator.cross_downstream`` diff --git a/newsfragments/41533.significant.rst b/newsfragments/41533.significant.rst index 65f805186f79e..0f898f21ad332 100644 --- a/newsfragments/41533.significant.rst +++ b/newsfragments/41533.significant.rst @@ -1,6 +1,5 @@ -**Breaking Change** - The ``load_connections`` function has been removed from the ``local_file_system``. + This function 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`` @@ -24,3 +23,23 @@ Example update: .. code-block:: python connection_by_conn_id = LocalFilesystemBackend().get_connection(conn_id="conn_id") + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.secrets.local_filesystem.load_connections`` → ``airflow.secrets.local_filesystem.load_connections_dict`` + * [x] ``airflow.secrets.local_filesystem.LocalFilesystemBackend.get_connection`` → ``airflow.secrets.local_filesystem.LocalFilesystemBackend.load_connections_dict`` diff --git a/newsfragments/41539.significant.rst b/newsfragments/41539.significant.rst index 31a497f4582c1..097dc6db75b05 100644 --- a/newsfragments/41539.significant.rst +++ b/newsfragments/41539.significant.rst @@ -1 +1,19 @@ Removed deprecated ``smtp_user`` and ``smtp_password`` configuration parameters from ``smtp`` section. Please use smtp connection (``smtp_default``). + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``smtp.smtp_user`` + * [x] ``smtp.smtp_password`` diff --git a/newsfragments/41550.significant.rst b/newsfragments/41550.significant.rst index 7589419f12275..6e4ff5827d297 100644 --- a/newsfragments/41550.significant.rst +++ b/newsfragments/41550.significant.rst @@ -1,3 +1,22 @@ 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``. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``webserver.session_lifetime_days`` → ``webserver.session_lifetime_minutes`` + * [x] ``webserver.force_log_out_after`` → ``webserver.session_lifetime_minutes`` + * [x] ``policy`` → ``task_policy`` diff --git a/newsfragments/41552.significant.rst b/newsfragments/41552.significant.rst index 475b0e159474a..99d6881e4032c 100644 --- a/newsfragments/41552.significant.rst +++ b/newsfragments/41552.significant.rst @@ -1 +1,20 @@ Removed deprecated ``filename_template`` argument from ``airflow.utils.log.file_task_handler.FileTaskHandler``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] argument ``filename_template`` in ``airflow.utils.log.file_task_handler.FileTaskHandler`` and its subclassses diff --git a/newsfragments/41564.significant.rst b/newsfragments/41564.significant.rst index 012fe7db92a8f..eed922f86c1f1 100644 --- a/newsfragments/41564.significant.rst +++ b/newsfragments/41564.significant.rst @@ -17,9 +17,9 @@ Move all time operators and sensors from airflow core to standard provider * AIR303 - * [ ] ``airflow.operators.datetime.*`` → ``airflow.providers.standard.time.operators.datetime.*`` - * [ ] ``airflow.operators.weekday.*`` → ``airflow.providers.standard.time.operators.weekday.*`` - * [ ] ``airflow.sensors.date_time.*`` → ``airflow.providers.standard.time.sensors.date_time.*`` - * [ ] ``airflow.sensors.time_sensor.*`` → ``airflow.providers.standard.time.sensors.time.*`` - * [ ] ``airflow.sensors.time_delta.*`` → ``airflow.providers.standard.time.sensors.time_delta.*`` - * [ ] ``airflow.sensors.weekday.*`` → ``airflow.providers.standard.time.sensors.weekday.*`` + * [x] ``airflow.operators.datetime.*`` → ``airflow.providers.standard.time.operators.datetime.*`` + * [x] ``airflow.operators.weekday.*`` → ``airflow.providers.standard.time.operators.weekday.*`` + * [x] ``airflow.sensors.date_time.*`` → ``airflow.providers.standard.time.sensors.date_time.*`` + * [x] ``airflow.sensors.time_sensor.*`` → ``airflow.providers.standard.time.sensors.time.*`` + * [x] ``airflow.sensors.time_delta.*`` → ``airflow.providers.standard.time.sensors.time_delta.*`` + * [x] ``airflow.sensors.weekday.*`` → ``airflow.providers.standard.time.sensors.weekday.*`` diff --git a/newsfragments/41579.significant.rst b/newsfragments/41579.significant.rst index 1aae04e2be13e..d554b5b85303a 100644 --- a/newsfragments/41579.significant.rst +++ b/newsfragments/41579.significant.rst @@ -1 +1,20 @@ Removed deprecated ``apply_defaults`` function from ``airflow/utils/decorators.py``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.utils.decorators.apply_defaults`` (auto applied) diff --git a/newsfragments/41609.significant.rst b/newsfragments/41609.significant.rst index dff7b26a55596..b691aaea7d188 100644 --- a/newsfragments/41609.significant.rst +++ b/newsfragments/41609.significant.rst @@ -1 +1,18 @@ Removed deprecated ``dependency_detector`` parameter from ``scheduler``. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``scheduler.dependency_detector`` diff --git a/newsfragments/41635.significant.rst b/newsfragments/41635.significant.rst index 0566d6074763f..da3a6e719f4de 100644 --- a/newsfragments/41635.significant.rst +++ b/newsfragments/41635.significant.rst @@ -1 +1,12 @@ Removed deprecated ``--ignore-depends-on-past`` cli option from task command. Please use ``--depends-on-past ignore``. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [x] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41642.significant.rst b/newsfragments/41642.significant.rst index 566061d0d893c..a0748da360d10 100644 --- a/newsfragments/41642.significant.rst +++ b/newsfragments/41642.significant.rst @@ -1,3 +1,23 @@ Removed deprecated secrets backend methods ``get_conn_uri`` and ``get_connections``. Please use ``get_conn_value`` and ``get_connection`` instead. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.secrets.base_secrets.BaseSecretsBackend.get_conn_uri`` → ``airflow.secrets.base_secrets.BaseSecretsBackend.get_conn_value`` + * [x] ``airflow.secrets.base_secrets.BaseSecretsBackend.get_connections`` → ``airflow.secrets.base_secrets.BaseSecretsBackend.get_connection`` diff --git a/newsfragments/41663.significant.rst b/newsfragments/41663.significant.rst index 169d7fb5c6732..2cfd9d3f2df27 100644 --- a/newsfragments/41663.significant.rst +++ b/newsfragments/41663.significant.rst @@ -1 +1,20 @@ 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR303 + + * [x] ``airflow.api.auth.backend.basic_auth`` → ``airflow.providers.fab.auth_manager.api.auth.backend.basic_auth`` diff --git a/newsfragments/41693.significant.rst b/newsfragments/41693.significant.rst index 3479f53dea300..89fbe92567725 100644 --- a/newsfragments/41693.significant.rst +++ b/newsfragments/41693.significant.rst @@ -1 +1,21 @@ 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR303 + + * [x] ``airflow.api.auth.backend.kerberos_auth`` → ``airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth`` + * [x] ``airflow.auth.managers.fab.api.auth.backend.kerberos_auth`` → ``airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth`` diff --git a/newsfragments/41708.significant.rst b/newsfragments/41708.significant.rst index 0b994cf0ffa30..5f14dd77d1107 100644 --- a/newsfragments/41708.significant.rst +++ b/newsfragments/41708.significant.rst @@ -1 +1,21 @@ 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR303 + + * [x] ``airflow.auth.managers.fab.fab_auth_manager`` → ``airflow.providers.fab.auth_manager.security_manager.override`` + * [x] ``airflow.auth.managers.fab.security_manager.override`` → ``airflow.providers.fab.auth_manager.security_manager.override`` diff --git a/newsfragments/41733.significant.rst b/newsfragments/41733.significant.rst index b838586e47e04..dda6856aad8b5 100644 --- a/newsfragments/41733.significant.rst +++ b/newsfragments/41733.significant.rst @@ -1 +1,20 @@ Removed deprecated function ``get_connections()`` function in ``airflow.hooks.base.BaseHook``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.hooks.base.BaseHook.get_connections`` → ``airflow.hooks.base.BaseHook.get_connection`` diff --git a/newsfragments/41735.significant.rst b/newsfragments/41735.significant.rst index 5e6c717f0596f..751ea773bf761 100644 --- a/newsfragments/41735.significant.rst +++ b/newsfragments/41735.significant.rst @@ -1 +1,56 @@ Removed deprecated module ``airflow.kubernetes``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR303 + + * [x] ``airflow.kubernetes.kubernetes_helper_functions.add_pod_suffix`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.add_pod_suffix`` + * [x] ``airflow.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.annotations_for_logging_task_metadata`` + * [x] ``airflow.kubernetes.kubernetes_helper_functions.annotations_to_key`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.annotations_to_key`` + * [x] ``airflow.kubernetes.kubernetes_helper_functions.create_pod_id`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.create_pod_id`` + * [x] ``airflow.kubernetes.kubernetes_helper_functions.get_logs_task_metadata`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.get_logs_task_metadata`` + * [x] ``airflow.kubernetes.kubernetes_helper_functions.rand_str`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.rand_str`` + * [x] ``airflow.kubernetes.pod.Port`` → ``kubernetes.client.models.V1ContainerPort`` + * [x] ``airflow.kubernetes.pod.Resources`` → ``kubernetes.client.models.V1ResourceRequirements`` + * [x] ``airflow.kubernetes.pod_launcher.PodLauncher`` → ``airflow.providers.cncf.kubernetes.pod_launcher.PodLauncher`` + * [x] ``airflow.kubernetes.pod_launcher.PodStatus`` → ``airflow.providers.cncf.kubernetes.pod_launcher.PodStatus`` + * [x] ``airflow.kubernetes.pod_launcher_deprecated.PodLauncher`` → ``airflow.providers.cncf.kubernetes.pod_launcher_deprecated.PodLauncher`` + * [x] ``airflow.kubernetes.pod_launcher_deprecated.PodStatus`` → ``airflow.providers.cncf.kubernetes.pod_launcher_deprecated.PodStatus`` + * [x] ``airflow.kubernetes.pod_launcher_deprecated.get_kube_client`` → ``airflow.providers.cncf.kubernetes.kube_client.get_kube_client`` + * [x] ``airflow.kubernetes.pod_launcher_deprecated.PodDefaults`` → ``airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodDefaults`` + * [x] ``airflow.kubernetes.pod_runtime_info_env.PodRuntimeInfoEnv`` → ``kubernetes.client.models.V1EnvVar`` + * [x] ``airflow.kubernetes.volume.Volume`` → ``kubernetes.client.models.V1Volume`` + * [x] ``airflow.kubernetes.volume_mount.VolumeMount`` → ``kubernetes.client.models.V1VolumeMount`` + * [x] ``airflow.kubernetes.k8s_model.K8SModel`` → ``airflow.providers.cncf.kubernetes.k8s_model.K8SModel`` + * [x] ``airflow.kubernetes.k8s_model.append_to_pod`` → ``airflow.providers.cncf.kubernetes.k8s_model.append_to_pod`` + * [x] ``airflow.kubernetes.kube_client._disable_verify_ssl`` → ``airflow.kubernetes.airflow.providers.cncf.kubernetes.kube_client._disable_verify_ssl`` + * [x] ``airflow.kubernetes.kube_client._enable_tcp_keepalive`` → ``airflow.kubernetes.airflow.providers.cncf.kubernetes.kube_client._enable_tcp_keepalive`` + * [x] ``airflow.kubernetes.kube_client.get_kube_client`` → ``airflow.kubernetes.airflow.providers.cncf.kubernetes.kube_client.get_kube_client`` + * [x] ``airflow.kubernetes.pod_generator.datetime_to_label_safe_datestring`` → ``airflow.providers.cncf.kubernetes.pod_generator.datetime_to_label_safe_datestring`` + * [x] ``airflow.kubernetes.pod_generator.extend_object_field`` → ``airflow.kubernetes.airflow.providers.cncf.kubernetes.pod_generator.extend_object_field`` + * [x] ``airflow.kubernetes.pod_generator.label_safe_datestring_to_datetime`` → ``airflow.providers.cncf.kubernetes.pod_generator.label_safe_datestring_to_datetime`` + * [x] ``airflow.kubernetes.pod_generator.make_safe_label_value`` → ``airflow.providers.cncf.kubernetes.pod_generator.make_safe_label_value`` + * [x] ``airflow.kubernetes.pod_generator.merge_objects`` → ``airflow.providers.cncf.kubernetes.pod_generator.merge_objects`` + * [x] ``airflow.kubernetes.pod_generator.PodGenerator`` → ``airflow.providers.cncf.kubernetes.pod_generator.PodGenerator`` + * [x] ``airflow.kubernetes.pod_generator.PodGeneratorDeprecated`` → ``airflow.providers.cncf.kubernetes.pod_generator.PodGenerator`` + * [x] ``airflow.kubernetes.pod_generator.PodDefaults`` → ``airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodDefaults`` + * [x] ``airflow.kubernetes.pod_generator.add_pod_suffix`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.add_pod_suffix`` + * [x] ``airflow.kubernetes.pod_generator.rand_str`` → ``airflow.providers.cncf.kubernetes.kubernetes_helper_functions.rand_str`` + * [x] ``airflow.kubernetes.pod_generator_deprecated.make_safe_label_value`` → ``airflow.providers.cncf.kubernetes.pod_generator_deprecated.make_safe_label_value`` + * [x] ``airflow.kubernetes.pod_generator_deprecated.PodDefaults`` → ``airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodDefaults`` + * [x] ``airflow.kubernetes.pod_generator_deprecated.PodGenerator`` → ``airflow.providers.cncf.kubernetes.pod_generator_deprecated.PodGenerator`` + * [x] ``airflow.kubernetes.secret.Secret`` → ``airflow.providers.cncf.kubernetes.secret.Secret`` + * [x] ``airflow.kubernetes.secret.K8SModel`` → ``airflow.providers.cncf.kubernetes.k8s_model.K8SModel`` diff --git a/newsfragments/41736.significant.rst b/newsfragments/41736.significant.rst index 2c90979d80f06..00f356217b59c 100644 --- a/newsfragments/41736.significant.rst +++ b/newsfragments/41736.significant.rst @@ -2,6 +2,27 @@ 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 +- ``airflow.operators.datetime.BranchDateTimeOperator``: ``use_task_execution_date`` +- ``airflow.operators.trigger_dagrun.TriggerDagRunOperator``: ``execution_date`` +- ``airflow.operators.weekday.BranchDayOfWeekOperator``: ``use_task_execution_day`` + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] argument ``execution_date`` in ``airflow.operators.trigger_dagrun.TriggerDagRunOperator`` + * [x] argument ``use_task_execution_day`` → ``use_task_logical_date`` in ``airflow.operators.datetime.BranchDateTimeOperator`` + * [x] argument ``use_task_execution_day`` → ``use_task_logical_date`` in ``airflow.operators.weekday.BranchDayOfWeekOperator`` diff --git a/newsfragments/41737.significant.rst b/newsfragments/41737.significant.rst index 55704581be9b2..1bf2ed6c13663 100644 --- a/newsfragments/41737.significant.rst +++ b/newsfragments/41737.significant.rst @@ -1 +1,20 @@ Removed deprecated ``TaskStateTrigger`` from ``airflow.triggers.external_task`` module. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.triggers.external_task.TaskStateTrigger`` diff --git a/newsfragments/41739.significant.rst b/newsfragments/41739.significant.rst index 51947218eeec5..fc92582ee6d2a 100644 --- a/newsfragments/41739.significant.rst +++ b/newsfragments/41739.significant.rst @@ -1,3 +1,14 @@ 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [x] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41748.significant.rst b/newsfragments/41748.significant.rst index b44f3640462de..33546c3841995 100644 --- a/newsfragments/41748.significant.rst +++ b/newsfragments/41748.significant.rst @@ -1 +1,20 @@ Deprecated module ``airflow.hooks.dbapi`` removed. Please use ``airflow.providers.common.sql.hooks.sql`` instead. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR303 + + * [x] ``airflow.hooks.dbapi`` → ``airflow.providers.common.sql.hooks.sql`` diff --git a/newsfragments/41758.significant.rst b/newsfragments/41758.significant.rst index f8b86d88564a5..cf87332b94cfb 100644 --- a/newsfragments/41758.significant.rst +++ b/newsfragments/41758.significant.rst @@ -10,3 +10,28 @@ Removed deprecated functions and modules from ``airflow.www`` module. ``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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [x] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.www.auth.has_access`` → ``airflow.www.auth.has_access_*`` + * [x] ``airflow.www.utils.get_sensitive_variables_fields`` → ``airflow.utils.log.secrets_masker.get_sensitive_variables_fields`` + * [x] ``airflow.www.utils.should_hide_value_for_key`` → ``airflow.utils.log.secrets_masker.should_hide_value_for_key`` + + * AIR303 + + * [x] ``airflow.www.security.FabAirflowSecurityManagerOverride`` → ``airflow.providers.fab.auth_manager.security_manager.override.FabAirflowSecurityManagerOverride`` diff --git a/newsfragments/41761.significant.rst b/newsfragments/41761.significant.rst index c54f53dd51ed6..20b472783e142 100644 --- a/newsfragments/41761.significant.rst +++ b/newsfragments/41761.significant.rst @@ -5,3 +5,28 @@ Removed a set of deprecations in BaseOperator. - 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. +- Config ``operators.allow_illegal_arguments`` removed. + +* Types of change + + * [x] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``operators.allow_illegal_arguments`` + + * ruff + + * AIR302 + + * [x] ``airflow.utils.trigger_rule.TriggerRule.NONE_FAILED_OR_SKIPPED`` + * [x] argument ``task_concurrency`` → ``max_active_tis_per_dag`` in ``BaseOperator`` and its subclassses diff --git a/newsfragments/41762.significant.rst b/newsfragments/41762.significant.rst index 0a768dde2f983..a2d6271a247ed 100644 --- a/newsfragments/41762.significant.rst +++ b/newsfragments/41762.significant.rst @@ -5,3 +5,14 @@ Removed a set of deprecations in ``Connection`` from ``airflow.models``. - Removed utility method ``parse_netloc_to_hostname()`` - Removed utility method ``parse_from_uri()``. - Removed utility method ``log_info()`` and ``debug_info()``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41774.significant.rst b/newsfragments/41774.significant.rst index 2d6456fb14952..048e2948927c5 100644 --- a/newsfragments/41774.significant.rst +++ b/newsfragments/41774.significant.rst @@ -10,3 +10,14 @@ Removed a set of deprecations in ``DAG`` from ``airflow.models``. - 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``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [x] Code interface changes diff --git a/newsfragments/41776.significant.rst b/newsfragments/41776.significant.rst index 62bc7986d2ba3..0f8f53648da11 100644 --- a/newsfragments/41776.significant.rst +++ b/newsfragments/41776.significant.rst @@ -3,3 +3,14 @@ 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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41778.significant.rst b/newsfragments/41778.significant.rst index a26f1af939878..017ec59d3a2c8 100644 --- a/newsfragments/41778.significant.rst +++ b/newsfragments/41778.significant.rst @@ -2,3 +2,14 @@ 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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41779.significant.rst b/newsfragments/41779.significant.rst index f25e0c9080a5a..0c2861a856891 100644 --- a/newsfragments/41779.significant.rst +++ b/newsfragments/41779.significant.rst @@ -1 +1,12 @@ Remove deprecated support for ``airflow.models.errors.ImportError`` which has been renamed to ``ParseImportError``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41780.significant.rst b/newsfragments/41780.significant.rst index 2e7aed291cf0c..453c961d5af8e 100644 --- a/newsfragments/41780.significant.rst +++ b/newsfragments/41780.significant.rst @@ -1 +1,12 @@ Remove deprecated support for passing ``execution_date`` to ``airflow.models.skipmixin.SkipMixin.skip()``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41784.significant.rst b/newsfragments/41784.significant.rst index d0d8a07cd0a72..86669b5c011af 100644 --- a/newsfragments/41784.significant.rst +++ b/newsfragments/41784.significant.rst @@ -10,3 +10,14 @@ Removed a set of deprecations in from ``airflow.models.taskinstance``. - 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. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41808.significant.rst b/newsfragments/41808.significant.rst index 91316bbd95959..38b66a9959588 100644 --- a/newsfragments/41808.significant.rst +++ b/newsfragments/41808.significant.rst @@ -6,3 +6,14 @@ Removed methods: - ``find_for_task_instance()`` Note: there are no replacements. Direct access to DB is discouraged and will not be possible in Airflow 3 for tasks. The public REST API is the future way to interact with Airflow + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [x] Code interface changes diff --git a/newsfragments/41857.significant.rst b/newsfragments/41857.significant.rst index f0b06f2811b1f..fd88c97bfa522 100644 --- a/newsfragments/41857.significant.rst +++ b/newsfragments/41857.significant.rst @@ -1,3 +1,12 @@ -**Breaking Change** - Airflow core now depends on Pydantic v2. If you have Pydantic v1 installed, please upgrade. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [x] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41910.significant.rst b/newsfragments/41910.significant.rst index 08b0cb9d30cc7..313291486f2e4 100644 --- a/newsfragments/41910.significant.rst +++ b/newsfragments/41910.significant.rst @@ -1 +1,20 @@ Removed deprecated method ``requires_access`` from module ``airflow.api_connexion.security``. Please use ``requires_access_*`` instead. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.api_connexion.security.requires_access`` → ``airflow.api_connexion.security.requires_access_*`` diff --git a/newsfragments/41964.significant.rst b/newsfragments/41964.significant.rst index 918587ae6ca21..f004b61636733 100644 --- a/newsfragments/41964.significant.rst +++ b/newsfragments/41964.significant.rst @@ -4,3 +4,14 @@ The format of the output with that flag can be expensive to generate and extreme ``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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [x] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/41975.significant.rst b/newsfragments/41975.significant.rst index 7931329dd6c23..1569035d713ed 100644 --- a/newsfragments/41975.significant.rst +++ b/newsfragments/41975.significant.rst @@ -1 +1,25 @@ 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config liint`` + + * [x] ``metrics.metrics_use_pattern_match`` + + * ruff + + * AIR302 + + * [x] ``airflow.metrics.validators.AllowListValidator`` → ``airflow.metrics.validators.PatternAllowListValidator`` + * [x] ``airflow.metrics.validators.BlockListValidator`` → ``airflow.metrics.validators.PatternBlockListValidator`` diff --git a/newsfragments/42023.significant.rst b/newsfragments/42023.significant.rst index 9cd68cebd0d66..48e8f7344da53 100644 --- a/newsfragments/42023.significant.rst +++ b/newsfragments/42023.significant.rst @@ -1,9 +1,19 @@ -**Breaking Changes** +Rename ``Dataset`` as ``Asset`` in API endpoints -* Rename property run_type value ``dataset_triggered`` as ``asset_triggered`` in DAGRun endpoint +* list of changes -* Rename property ``dataset_expression`` as ``asset_expression`` in DAGDetail endpoint + * 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 -* Change the string ``dataset_triggered`` in RUN_ID_REGEX as ``asset_triggered`` which affects the valid run id that an user can provide +* Types of change -* Rename ``dataset`` as ``asset`` in all the database tables + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42042.significant.rst b/newsfragments/42042.significant.rst index 8a22f5d4db619..a743da5326c9d 100644 --- a/newsfragments/42042.significant.rst +++ b/newsfragments/42042.significant.rst @@ -1 +1,12 @@ Removed ``is_active`` property from ``BaseUser``. This property is longer used. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [x] Code interface changes diff --git a/newsfragments/42054.significant.rst b/newsfragments/42054.significant.rst index aebf70757fa07..dbe243df3854e 100644 --- a/newsfragments/42054.significant.rst +++ b/newsfragments/42054.significant.rst @@ -2,3 +2,14 @@ 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42060.significant.rst b/newsfragments/42060.significant.rst index 3f767d80eef7d..fc806729e0ec0 100644 --- a/newsfragments/42060.significant.rst +++ b/newsfragments/42060.significant.rst @@ -1 +1,21 @@ 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``celery.stalled_task_timeout`` + * [x] ``kubernetes_executor.worker_pods_pending_timeout`` → ``scheduler.task_queued_timeout`` + * [x] ``celery.task_adoption_timeout`` → ``scheduler.task_queued_timeout`` + * [x] ``kubernetes_executor.worker_pods_pending_timeout`` → ``scheduler.task_queued_timeout`` diff --git a/newsfragments/42088.significant.rst b/newsfragments/42088.significant.rst index fbff8dbd0a1e3..db2d65c3bd882 100644 --- a/newsfragments/42088.significant.rst +++ b/newsfragments/42088.significant.rst @@ -12,3 +12,31 @@ Removed deprecated metrics configuration. * 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``metrics.statsd_allow_list`` → ``metrics.metrics_allow_list`` + * [x] ``metrics.statsd_block_list`` → ``metrics.metrics_block_list`` + * [x] ``scheduler.statsd_on`` → ``metrics.statsd_on`` + * [x] ``scheduler.statsd_host`` → ``metrics.statsd_host`` + * [x] ``scheduler.statsd_port`` → ``metrics.statsd_port`` + * [x] ``scheduler.statsd_prefix`` → ``metrics.statsd_prefix`` + * [x] ``scheduler.statsd_allow_list`` → ``metrics.statsd_allow_list`` + * [x] ``scheduler.stat_name_handler`` → ``metrics.stat_name_handler`` + * [x] ``scheduler.statsd_datadog_enabled`` → ``metrics.statsd_datadog_enabled`` + * [x] ``scheduler.statsd_datadog_tags`` → ``metrics.statsd_datadog_tags`` + * [x] ``scheduler.statsd_datadog_metrics_tags`` → ``metrics.statsd_datadog_metrics_tags`` + * [x] ``scheduler.statsd_custom_client_path`` → ``metrics.statsd_custom_client_path`` diff --git a/newsfragments/42100.significant.rst b/newsfragments/42100.significant.rst index c256d575a01bf..801626a21c158 100644 --- a/newsfragments/42100.significant.rst +++ b/newsfragments/42100.significant.rst @@ -19,3 +19,38 @@ Removed deprecated logging configuration. * 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``core.interleave_timestamp_parser`` → ``logging.interleave_timestamp_parser`` + * [x] ``core.base_log_folder`` → ``logging.base_log_folder`` + * [x] ``core.remote_logging`` → ``logging.remote_logging`` + * [x] ``core.remote_log_conn_id`` → ``logging.remote_log_conn_id`` + * [x] ``core.remote_base_log_folder`` → ``logging.remote_base_log_folder`` + * [x] ``core.encrypt_s3_logs`` → ``logging.encrypt_s3_logs`` + * [x] ``core.logging_level`` → ``logging.logging_level`` + * [x] ``core.fab_logging_level`` → ``logging.fab_logging_level`` + * [x] ``core.logging_config_class`` → ``logging.logging_config_class`` + * [x] ``core.colored_console_log`` → ``logging.colored_console_log`` + * [x] ``core.colored_log_format`` → ``logging.colored_log_format`` + * [x] ``core.colored_formatter_class`` → ``logging.colored_formatter_class`` + * [x] ``core.log_format`` → ``logging.log_format`` + * [x] ``core.simple_log_format`` → ``logging.simple_log_format`` + * [x] ``core.task_log_prefix_template`` → ``logging.task_log_prefix_template`` + * [x] ``core.log_filename_template`` → ``logging.log_filename_template`` + * [x] ``core.log_processor_filename_template`` → ``logging.log_processor_filename_template`` + * [x] ``core.dag_processor_manager_log_location`` → ``logging.dag_processor_manager_log_location`` + * [x] ``core.task_log_reader`` → ``logging.task_log_reader`` diff --git a/newsfragments/42126.significant.rst b/newsfragments/42126.significant.rst index b7fe76179be08..e1b6f431ac4fb 100644 --- a/newsfragments/42126.significant.rst +++ b/newsfragments/42126.significant.rst @@ -12,3 +12,32 @@ Removed deprecated database configuration. * 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + + * ``airflow config lint`` + + * [x] ``core.sql_alchemy_conn`` → ``database.sql_alchemy_conn`` + * [x] ``core.sql_engine_encoding`` → ``database.sql_engine_encoding`` + * [x] ``core.sql_engine_collation_for_ids`` → ``database.sql_engine_collation_for_ids`` + * [x] ``core.sql_alchemy_pool_enabled`` → ``database.sql_alchemy_pool_enabled`` + * [x] ``core.sql_alchemy_pool_size`` → ``database.sql_alchemy_pool_size`` + * [x] ``core.sql_alchemy_max_overflow`` → ``database.sql_alchemy_max_overflow`` + * [x] ``core.sql_alchemy_pool_recycle`` → ``database.sql_alchemy_pool_recycle`` + * [x] ``core.sql_alchemy_pool_pre_ping`` → ``database.sql_alchemy_pool_pre_ping`` + * [x] ``core.sql_alchemy_schema`` → ``database.sql_alchemy_schema`` + * [x] ``core.sql_alchemy_connect_args`` → ``database.sql_alchemy_connect_args`` + * [x] ``core.load_default_connections`` → ``database.load_default_connections`` + * [x] ``core.max_db_retries`` → ``database.max_db_retries`` diff --git a/newsfragments/42129.significant.rst b/newsfragments/42129.significant.rst index 06a5da7fc889a..406850a7792e6 100644 --- a/newsfragments/42129.significant.rst +++ b/newsfragments/42129.significant.rst @@ -15,3 +15,34 @@ Removed deprecated configuration. * 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``core.worker_precheck`` → ``celery.worker_precheck`` + * [x] ``scheduler.max_threads`` → ``scheduler.parsing_processes`` + * [x] ``celery.default_queue`` → ``operators.default_queue`` + * [x] ``admin.hide_sensitive_variable_fields`` → ``core.hide_sensitive_var_conn_fields`` + * [x] ``admin.sensitive_variable_fields`` → ``core.sensitive_var_conn_names`` + * [x] ``core.non_pooled_task_slot_count`` → ``core.default_pool_task_slot_count`` + * [x] ``core.dag_concurrency`` → ``core.max_active_tasks_per_dag`` + * [x] ``api.access_control_allow_origin`` → ``api.access_control_allow_origins`` + * [x] ``api.auth_backend`` → ``api.auth_backends`` + * [x] ``scheduler.deactivate_stale_dags_interval`` → ``scheduler.parsing_cleanup_interval`` + * [x] ``kubernetes_executor.worker_pods_pending_timeout_check_interval`` → ``scheduler.task_queued_timeout_check_interval`` + * [x] ``webserver.update_fab_perms`` → ``fab.update_fab_perms`` + * [x] ``webserver.auth_rate_limited`` → ``fab.auth_rate_limited`` + * [x] ``webserver.auth_rate_limit`` → ``fab.auth_rate_limit`` + * [x] ``kubernetes`` → ``kubernetes_executor`` diff --git a/newsfragments/42137.significant.rst b/newsfragments/42137.significant.rst index 0e1848933a0ae..1055032dc2a64 100644 --- a/newsfragments/42137.significant.rst +++ b/newsfragments/42137.significant.rst @@ -1 +1,12 @@ Optional ``[saml]`` extra has been removed from Airflow core - instead Amazon Provider gets saml as required dependency. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [x] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42280.significant.rst b/newsfragments/42280.significant.rst index 00d80d259b123..35e37727cda6a 100644 --- a/newsfragments/42280.significant.rst +++ b/newsfragments/42280.significant.rst @@ -3,3 +3,14 @@ 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 + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42285.significant.rst b/newsfragments/42285.significant.rst index 8f8cfa0dee298..c7a545664b484 100644 --- a/newsfragments/42285.significant.rst +++ b/newsfragments/42285.significant.rst @@ -1 +1,27 @@ The SLA feature is removed in Airflow 3.0, to be replaced with Airflow Alerts in 3.1 + +* Types of change + + * [x] Dag changes + * [x] Config changes + * [x] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +.. List the migration rules needed for this change (see https://github.com/apache/airflow/issues/41641) + +* Migration rules needed + + * ``airflow config lint`` + + * [x] ``core.check_slas`` + + * ruff + + * AIR302 + + * [x] argument ``sla`` in ``BaseOperator`` and its subclassses + * [x] argument ``sla_miss_callback`` in ``DAG`` diff --git a/newsfragments/42343.significant.rst b/newsfragments/42343.significant.rst index d9e1ba6b1229b..7af4954e265cc 100644 --- a/newsfragments/42343.significant.rst +++ b/newsfragments/42343.significant.rst @@ -5,3 +5,14 @@ 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42404.significant.rst b/newsfragments/42404.significant.rst index 47546b76ffaed..c9d1212a3f204 100644 --- a/newsfragments/42404.significant.rst +++ b/newsfragments/42404.significant.rst @@ -4,3 +4,14 @@ The shift towards using ``run_id`` as the sole identifier for DAG runs eliminate - 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42436.significant.rst b/newsfragments/42436.significant.rst index d9dbcfc4c9f5d..f3c0117e641a5 100644 --- a/newsfragments/42436.significant.rst +++ b/newsfragments/42436.significant.rst @@ -5,3 +5,14 @@ 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``. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42548.significant.rst b/newsfragments/42548.significant.rst index 28d6795eebcc6..93a5a7db417e4 100644 --- a/newsfragments/42548.significant.rst +++ b/newsfragments/42548.significant.rst @@ -1 +1,12 @@ Remove is_backfill attribute from DagRun object + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42579.significant.rst b/newsfragments/42579.significant.rst index 8a43583e25766..fd386f83385ea 100644 --- a/newsfragments/42579.significant.rst +++ b/newsfragments/42579.significant.rst @@ -1,20 +1,32 @@ -**Breaking Change** +Rename ``Dataset`` endpoints as ``Asset`` endpoints -* Rename dataset endpoints as asset endpoints +* list of changes - * 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 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 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`` + * 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`` + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42640.significant.rst b/newsfragments/42640.significant.rst index a6f09eba8b437..e5d0e81f3da11 100644 --- a/newsfragments/42640.significant.rst +++ b/newsfragments/42640.significant.rst @@ -1 +1,12 @@ Removed deprecated custom dag dependency detector. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42647.significant.rst b/newsfragments/42647.significant.rst index c4d53d431c91a..71bee3bb3fb9b 100644 --- a/newsfragments/42647.significant.rst +++ b/newsfragments/42647.significant.rst @@ -1,6 +1,5 @@ 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. @@ -18,3 +17,14 @@ Removed deprecated aliases support for providers. * 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42658.significant.rst b/newsfragments/42658.significant.rst index a00702cf69fc6..84381da3f02a5 100644 --- a/newsfragments/42658.significant.rst +++ b/newsfragments/42658.significant.rst @@ -1 +1,12 @@ * Changing dag_id from flag (-d, --dag-id) to a positional argument in the 'dags list-runs' CLI command. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [x] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42660.significant.rst b/newsfragments/42660.significant.rst index cdedf64687471..924259e11151d 100644 --- a/newsfragments/42660.significant.rst +++ b/newsfragments/42660.significant.rst @@ -1 +1,12 @@ Deprecated field ``concurrency`` from ``DAGDetailSchema`` has been removed. Please use ``max_active_tasks`` from ``DAGDetailSchema`` instead. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42739.significant.rst b/newsfragments/42739.significant.rst index 542f761720b75..eb565c37e494a 100644 --- a/newsfragments/42739.significant.rst +++ b/newsfragments/42739.significant.rst @@ -1 +1,12 @@ Remove support for Python 3.8 as this version is not maintained within Python release schedule, see https://peps.python.org/pep-0596/. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [x] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42776.significant.rst b/newsfragments/42776.significant.rst index 5fad7dfe79b66..188bcd8315442 100644 --- a/newsfragments/42776.significant.rst +++ b/newsfragments/42776.significant.rst @@ -1 +1,12 @@ Removed deprecated ``Chainable`` type from ``BaseOperator``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/42794.significant.rst b/newsfragments/42794.significant.rst index 2303d90e9107f..7113d0ced5094 100644 --- a/newsfragments/42794.significant.rst +++ b/newsfragments/42794.significant.rst @@ -17,6 +17,6 @@ Move filesystem, package_index, subprocess hooks to standard provider * AIR303 - * [ ] ``airflow.hooks.filesystem.*`` → ``airflow.providers.standard.hooks.filesystem.*`` - * [ ] ``airflow.hooks.package_index.*`` → ``airflow.providers.standard.hooks.package_index.*`` - * [ ] ``airflow.hooks.subprocess.*`` → ``airflow.providers.standard.hooks.subprocess.*`` + * [x] ``airflow.hooks.filesystem.*`` → ``airflow.providers.standard.hooks.filesystem.*`` + * [x] ``airflow.hooks.package_index.*`` → ``airflow.providers.standard.hooks.package_index.*`` + * [x] ``airflow.hooks.subprocess.*`` → ``airflow.providers.standard.hooks.subprocess.*`` diff --git a/newsfragments/42953.significant.rst b/newsfragments/42953.significant.rst index f138dde730340..eb7c229b9c3d5 100644 --- a/newsfragments/42953.significant.rst +++ b/newsfragments/42953.significant.rst @@ -2,3 +2,14 @@ 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43067.significant.rst b/newsfragments/43067.significant.rst index d57fec6be9e72..65501c54a6bf5 100644 --- a/newsfragments/43067.significant.rst +++ b/newsfragments/43067.significant.rst @@ -2,3 +2,14 @@ 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43073.significant.rst b/newsfragments/43073.significant.rst index 46bd71a6f0d80..9dd26a3bf175f 100644 --- a/newsfragments/43073.significant.rst +++ b/newsfragments/43073.significant.rst @@ -1 +1,12 @@ Rename ``DagRunTriggeredByType.DATASET`` as ``DagRunTriggeredByType.ASSET`` and all the name ``dataset`` in all the UI component to ``asset``. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43096.significant.rst b/newsfragments/43096.significant.rst index b252e39916c03..1803b9ac041b7 100644 --- a/newsfragments/43096.significant.rst +++ b/newsfragments/43096.significant.rst @@ -1 +1,20 @@ Removed auth backend ``airflow.api.auth.backend.default`` + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR303 + + * [x] ``airflow.api.auth.backend.default`` → ``airflow.providers.fab.auth_manager.api.auth.backend.session`` diff --git a/newsfragments/43102.significant.rst b/newsfragments/43102.significant.rst index e626ba5a42c34..18e59e5ac22ac 100644 --- a/newsfragments/43102.significant.rst +++ b/newsfragments/43102.significant.rst @@ -16,3 +16,14 @@ After: .. code-block:: http://:/?param=item1¶m=item2 + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [x] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43183.significant.rst b/newsfragments/43183.significant.rst index e363824b6db5f..7f3e28aa0c5a0 100644 --- a/newsfragments/43183.significant.rst +++ b/newsfragments/43183.significant.rst @@ -3,3 +3,20 @@ 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. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ``airflow config list`` + + * [x] ``logging.enable_task_context_logger`` diff --git a/newsfragments/43289.significant.rst b/newsfragments/43289.significant.rst index 15063202640fb..aa6a51d89907f 100644 --- a/newsfragments/43289.significant.rst +++ b/newsfragments/43289.significant.rst @@ -2,3 +2,24 @@ 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. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [x] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] extension ``executors`` in ``airflow.plugins_manager.AirflowPlugin`` + * [x] extension ``operators`` in ``airflow.plugins_manager.AirflowPlugin`` + * [x] extension ``sensors`` in ``airflow.plugins_manager.AirflowPlugin`` diff --git a/newsfragments/43291.significant.rst b/newsfragments/43291.significant.rst index ec7cacf6f153b..227ccda5fdd14 100644 --- a/newsfragments/43291.significant.rst +++ b/newsfragments/43291.significant.rst @@ -14,3 +14,22 @@ You should instead import it as: .. code-block:: python from my_plugin import MyHook + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [x] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] extension ``hooks`` in ``airflow.plugins_manager.AirflowPlugin`` diff --git a/newsfragments/43349.significant.rst b/newsfragments/43349.significant.rst index efc6240978e6d..23af4ec5697f8 100644 --- a/newsfragments/43349.significant.rst +++ b/newsfragments/43349.significant.rst @@ -3,3 +3,22 @@ Deprecated trigger rule ``TriggerRule.DUMMY`` removed **Breaking Change** The trigger rule ``TriggerRule.DUMMY`` was removed. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.utils.trigger_rule.TriggerRule.DUMMY`` diff --git a/newsfragments/43490.significant.rst b/newsfragments/43490.significant.rst index 6d0a0af8ec48b..7d17cbec439a1 100644 --- a/newsfragments/43490.significant.rst +++ b/newsfragments/43490.significant.rst @@ -2,3 +2,14 @@ The ``task_fail`` table has been removed from the Airflow database. This table was used to store task failures, but it was not used by any Airflow components. Use the REST API to get task failures instead (which gets it from the ``task_instance`` table) + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43530.significant.rst b/newsfragments/43530.significant.rst index 6f6e89be0e5cc..0876bd92ef9d8 100644 --- a/newsfragments/43530.significant.rst +++ b/newsfragments/43530.significant.rst @@ -19,3 +19,29 @@ After: from airflow.configuration import conf value = conf.get("section", "key") + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.configuration.getboolean`` → ``airflow.configuration.conf.getboolean`` + * [x] ``airflow.configuration.getfloat`` → ``airflow.configuration.conf.getfloat`` + * [x] ``airflow.configuration.getint`` → ``airflow.configuration.conf.getint`` + * [x] ``airflow.configuration.has_option`` → ``airflow.configuration.conf.has_option`` + * [x] ``airflow.configuration.remove_option`` → ``airflow.configuration.conf.remove_option`` + * [x] ``airflow.configuration.as_dict`` → ``airflow.configuration.conf.as_dict`` + * [x] ``airflow.configuration.set`` → ``airflow.configuration.conf.set`` + * [x] ``airflow.configuration.get`` → ``airflow.configuration.conf.get`` diff --git a/newsfragments/43533.significant.rst b/newsfragments/43533.significant.rst index 7b84c2bf87ff9..c59f931005300 100644 --- a/newsfragments/43533.significant.rst +++ b/newsfragments/43533.significant.rst @@ -6,3 +6,25 @@ Following functions are removed: - ``round_time`` - ``scale_time_units`` - ``infer_time_unit`` + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.utils.dates.parse_execution_date`` + * [x] ``airflow.utils.dates.round_time`` + * [x] ``airflow.utils.dates.scale_time_units`` + * [x] ``airflow.utils.dates.infer_time_unit`` diff --git a/newsfragments/43562.significant.rst b/newsfragments/43562.significant.rst index 4e50fa609da21..98b232213e05d 100644 --- a/newsfragments/43562.significant.rst +++ b/newsfragments/43562.significant.rst @@ -22,3 +22,23 @@ After: if sys.version_info >= (3, 6): # perform some action ... + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + + +* Migration rules needed + + * ruff + + * AIR302 + + * [x] ``airflow.PY\d\d`` diff --git a/newsfragments/43568.significant.rst b/newsfragments/43568.significant.rst index 450ca5b4a27f9..801e7739f661e 100644 --- a/newsfragments/43568.significant.rst +++ b/newsfragments/43568.significant.rst @@ -1 +1,12 @@ Remove ``virtualenv`` extra as PythonVirtualenvOperator has been moved to standard provider and switched to use built-in venv package. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [x] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43608.significant.rst b/newsfragments/43608.significant.rst index edb1c7ddddae2..8082b0725d3f4 100644 --- a/newsfragments/43608.significant.rst +++ b/newsfragments/43608.significant.rst @@ -17,6 +17,6 @@ Move Airflow core triggers to standard provider * AIR303 - * [ ] ``airflow.triggers.external_task.*`` → ``airflow.providers.standard.triggers.external_task.*`` - * [ ] ``airflow.triggers.file.*`` → ``airflow.providers.standard.triggers.file.*`` - * [ ] ``airflow.triggers.temporal.*`` → ``airflow.providers.standard.triggers.temporal.*`` + * [x] ``airflow.triggers.external_task.*`` → ``airflow.providers.standard.triggers.external_task.*`` + * [x] ``airflow.triggers.file.*`` → ``airflow.providers.standard.triggers.file.*`` + * [x] ``airflow.triggers.temporal.*`` → ``airflow.providers.standard.triggers.temporal.*`` diff --git a/newsfragments/43611.significant.rst b/newsfragments/43611.significant.rst index e25fb2a5bba4b..2f6e51fd78de4 100644 --- a/newsfragments/43611.significant.rst +++ b/newsfragments/43611.significant.rst @@ -4,3 +4,14 @@ Some database engines are limited to 32-bit integer values. As some users report weight rolled-over to negative values, we decided to cap the value to the 32-bit integer. Even if internally in python smaller or larger values to 64 bit are supported, ``priority_weight`` is capped and only storing values from -2147483648 to 2147483647. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43612.significant.rst b/newsfragments/43612.significant.rst index 8c0ec597c1176..1b37228e11510 100644 --- a/newsfragments/43612.significant.rst +++ b/newsfragments/43612.significant.rst @@ -6,3 +6,14 @@ AIRFLOW__STANDARD__VENV_INSTALL_METHOD option. The possible values are: - ``auto``: Automatically select, use ``uv`` if available, otherwise use ``pip``. - ``pip``: Use pip to install the virtual environment. - ``uv``: Use uv to install the virtual environment. Must be available in environment PATH. + +* Types of change + + * [x] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43774.significant.rst b/newsfragments/43774.significant.rst index b716e1fc83f94..7b38908417033 100644 --- a/newsfragments/43774.significant.rst +++ b/newsfragments/43774.significant.rst @@ -7,16 +7,19 @@ For easier change in the future, this function now takes only keyword arguments. * Types of change - * [ ] DAG changes + * [ ] Dag changes * [ ] Config changes * [ ] API changes * [ ] CLI changes * [x] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change - -.. List the migration rules needed for this change (see https://github.com/apache/airflow/issues/41641) + * [ ] Dependency changes + * [ ] Code interface changes * Migrations rules needed - * Calling ``HookLineageCollector.create_asset`` with positional argument should raise an error + * ruff + + * AIR302 + + * [ ] Calling ``HookLineageCollector.create_asset`` with positional argument should raise an error diff --git a/newsfragments/43890.significant.rst b/newsfragments/43890.significant.rst index b7ca80ba686a1..9bf17e35a0890 100644 --- a/newsfragments/43890.significant.rst +++ b/newsfragments/43890.significant.rst @@ -17,4 +17,4 @@ Move filesystem sensor to standard provider * AIR303 - * [ ] ``airflow.sensors.filesystem.FileSensor`` → ``airflow.providers.standard.sensors.filesystem.FileSensor`` + * [x] ``airflow.sensors.filesystem.FileSensor`` → ``airflow.providers.standard.sensors.filesystem.FileSensor`` diff --git a/newsfragments/43902.significant.rst b/newsfragments/43902.significant.rst index f51eafb8d0a94..58de47893b816 100644 --- a/newsfragments/43902.significant.rst +++ b/newsfragments/43902.significant.rst @@ -4,3 +4,32 @@ The shift towards ``logical_date`` helps move away from the limitations of ``exe - Renamed columns and function references to ``logical_date``. - Removed ``execution_date``, ``next_ds``, ``next_ds_nodash``, ``next_execution_date``, ``prev_ds``, ``prev_ds_nodash``, ``prev_execution_date``, ``prev_execution_date_success``, ``tomorrow_ds``, ``yesterday_ds`` and ``yesterday_ds_nodash`` from Airflow ``context``. + +* Types of change + + * [x] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migrations rules needed + + * ruff + + * AIR302 + + * [ ] context key ``execution_date`` + * [ ] context key ``next_ds`` + * [ ] context key ``next_ds_nodash`` + * [ ] context key ``next_execution_date`` + * [ ] context key ``prev_ds`` + * [ ] context key ``prev_ds_nodash`` + * [ ] context key ``prev_execution_date`` + * [ ] context key ``prev_execution_date_success`` + * [ ] context key ``tomorrow_ds`` + * [ ] context key ``yesterday_ds`` + * [ ] context key ``yesterday_ds_nodash`` diff --git a/newsfragments/43915.significant.rst b/newsfragments/43915.significant.rst index efcc48f116b0e..51b0f53d7216d 100644 --- a/newsfragments/43915.significant.rst +++ b/newsfragments/43915.significant.rst @@ -2,3 +2,20 @@ Configuration ``[core] strict_dataset_uri_validation`` is removed Asset URI with a defined scheme will now always be validated strictly, raising a hard error on validation failure. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migrations rules needed + + * ``airflow config lint`` + + * [x] ``core.strict_dataset_uri_validation`` diff --git a/newsfragments/43943.significant.rst b/newsfragments/43943.significant.rst index 590caf792d219..dba684d1135c9 100644 --- a/newsfragments/43943.significant.rst +++ b/newsfragments/43943.significant.rst @@ -3,3 +3,20 @@ Remove the ``traces`` ``otel_task_log_event`` event config option and feature This was sending the task logs form the scheduler, and would be a huge scheduling performance hit (blocking the entire all scheduling while it was fetching logs to attach to the trace) + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migrations rules needed + + * ``airflow config lint`` + + * [x] ``traces.otel_task_log_event`` diff --git a/newsfragments/43949.significant.rst b/newsfragments/43949.significant.rst index 2d1cf53797e5b..745c10d455def 100644 --- a/newsfragments/43949.significant.rst +++ b/newsfragments/43949.significant.rst @@ -3,3 +3,14 @@ The ``--clear-only`` option of ``airflow dags reserialize`` command is now remov The ``--clear-only`` option was added to clear the serialized DAGs without reserializing them. This option has been removed as it is no longer needed. We have implemented DAG versioning and can no longer delete serialized dag without going through ``airflow db-clean`` command. This command is now only for reserializing DAGs. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [x] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/43975.significant.rst b/newsfragments/43975.significant.rst index 6d116ac1eedfc..2c437ef3a4e37 100644 --- a/newsfragments/43975.significant.rst +++ b/newsfragments/43975.significant.rst @@ -6,3 +6,20 @@ This is done to standardize all timer and timing metrics to milliseconds across Airflow 2.11 introduced the ``timer_unit_consistency`` setting in the ``metrics`` section of the configuration file. The default value was ``False`` which meant that the timer and timing metrics were logged in seconds. This was done to maintain backwards compatibility with the previous versions of Airflow. + +* Types of change + + * [ ] Dag changes + * [x] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes + +* Migrations rules needed + + * ``airflow config lint`` + + * [x] ``metrics.timer_unit_consistency`` diff --git a/newsfragments/44053.significant.rst b/newsfragments/44053.significant.rst index 1e80fbe1e4250..7b3054394d87d 100644 --- a/newsfragments/44053.significant.rst +++ b/newsfragments/44053.significant.rst @@ -17,4 +17,4 @@ Move ``TriggerDagRunOperator`` to standard provider * AIR303 - * [ ] ``airflow.operators.trigger_dagrun import TriggerDagRunOperator`` → ``airflow.providers.standard.operators.trigger_dagrun.TriggerDagRunOperator`` + * [x] ``airflow.operators.trigger_dagrun import TriggerDagRunOperator`` → ``airflow.providers.standard.operators.trigger_dagrun.TriggerDagRunOperator`` diff --git a/newsfragments/44080.significant.rst b/newsfragments/44080.significant.rst index 040e27fbf1108..3aeca5191e4b6 100644 --- a/newsfragments/44080.significant.rst +++ b/newsfragments/44080.significant.rst @@ -1,3 +1,14 @@ PostgreSQL 12 is no longer supported PostgreSQL 12 is no longer being supported by the PostgreSQL community. You must upgrade to PostgreSQL 13+ to use this version of Airflow. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [x] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/44288.significant.rst b/newsfragments/44288.significant.rst index 90d41dd6147c9..e1a38ac27cd39 100644 --- a/newsfragments/44288.significant.rst +++ b/newsfragments/44288.significant.rst @@ -17,5 +17,5 @@ * AIR303 - * [ ] ``airflow.sensors.external_task.ExternalTaskMarker`` → ``airflow.providers.standard.sensors.external_task.ExternalTaskMarker`` - * [ ] ``airflow.sensors.external_task.ExternalTaskSensor`` → ``airflow.providers.standard.sensors.external_task.ExternalTaskSensor`` + * [x] ``airflow.sensors.external_task.ExternalTaskMarker`` → ``airflow.providers.standard.sensors.external_task.ExternalTaskMarker`` + * [x] ``airflow.sensors.external_task.ExternalTaskSensor`` → ``airflow.providers.standard.sensors.external_task.ExternalTaskSensor`` diff --git a/newsfragments/44475.significant.rst b/newsfragments/44475.significant.rst index 691af8730bf53..bf5ec44939432 100644 --- a/newsfragments/44475.significant.rst +++ b/newsfragments/44475.significant.rst @@ -6,16 +6,21 @@ Remove ``TriggerRule.NONE_FAILED_OR_SKIPPED`` * Types of change - * [x] DAG changes + * [x] Dag changes * [ ] Config changes * [ ] API changes * [ ] CLI changes * [ ] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change + * [ ] Dependency changes + * [ ] Code interface changes .. List the migration rules needed for this change (see https://github.com/apache/airflow/issues/41641) * Migrations rules needed - * Remove attribute ``TriggerRule.NONE_FAILED_OR_SKIPPED`` + * ruff + + * AIR302 + + * [x] ``TriggerRule.NONE_FAILED_OR_SKIPPED`` diff --git a/newsfragments/44533.significant.rst b/newsfragments/44533.significant.rst index 55619c244f5ef..5943741428d7f 100644 --- a/newsfragments/44533.significant.rst +++ b/newsfragments/44533.significant.rst @@ -3,3 +3,14 @@ During offline migration, ``DagRun.conf`` is cleared .. Provide additional contextual information The ``conf`` column is changing from pickle to json, thus, the values in that column cannot be migrated during offline migrations. If you want to retain ``conf`` values for existing DagRuns, you must do a normal, non-offline, migration. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/44706.significant.rst b/newsfragments/44706.significant.rst index bd3efa6972588..6391000d4caf7 100644 --- a/newsfragments/44706.significant.rst +++ b/newsfragments/44706.significant.rst @@ -6,10 +6,11 @@ If you would like to create default connections use ``airflow connections create * Types of change - * [ ] DAG changes + * [ ] Dag changes * [ ] Config changes * [ ] API changes * [x] CLI changes * [ ] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/44820.significant.rst b/newsfragments/44820.significant.rst index 61b7c968ff333..c37be748c780c 100644 --- a/newsfragments/44820.significant.rst +++ b/newsfragments/44820.significant.rst @@ -25,14 +25,19 @@ Example: * Types of change - * [x] DAG changes + * [x] Dag changes * [ ] Config changes * [ ] API changes * [ ] CLI changes * [ ] Behaviour changes * [ ] Plugin changes * [ ] Dependency changes + * [ ] Code interface changes * Migration rules needed - * Remove context key ``conf`` + * ruff + + * AIR302 + + * [ ] context key ``conf`` diff --git a/newsfragments/45017.significant.rst b/newsfragments/45017.significant.rst index aef05e779e6e7..b1140fcf8d434 100644 --- a/newsfragments/45017.significant.rst +++ b/newsfragments/45017.significant.rst @@ -5,14 +5,19 @@ should be imported from ``airflow.providers.celery.executors.default_celery.DEFA * Types of change - * [ ] DAG changes - * [x] Config changes + * [x] Dag changes + * [ ] Config changes * [ ] API changes * [ ] CLI changes * [ ] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change + * [ ] Dependency changes + * [ ] Code interface changes * Migration rules needed - * AIR303 rewrite ``airflow.config_templates.default_celery.DEFAULT_CELERY_CONFIG`` to ``airflow.providers.celery.executors.default_celery.DEFAULT_CELERY_CONFIG`` + * ruff + + * AIR303 + + * [x] ``airflow.config_templates.default_celery.DEFAULT_CELERY_CONFIG`` → ``airflow.providers.celery.executors.default_celery.DEFAULT_CELERY_CONFIG`` diff --git a/newsfragments/45327.significant.rst b/newsfragments/45327.significant.rst index db385eb7059df..1e7423cd2e6ea 100644 --- a/newsfragments/45327.significant.rst +++ b/newsfragments/45327.significant.rst @@ -18,6 +18,4 @@ Renamed DAG argument ``fail_stop`` to ``fail_fast`` across the codebase to align * AIR302 - * arguments in ``DAG`` - - * [ ] ``fail_stop`` → ``fail_fast`` + * [x] arguments ``fail_stop`` → ``fail_fast`` in ``DAG`` diff --git a/newsfragments/45530.significant.rst b/newsfragments/45530.significant.rst index 7e2ae8e8ac6a5..5805dc3789e2b 100644 --- a/newsfragments/45530.significant.rst +++ b/newsfragments/45530.significant.rst @@ -10,3 +10,14 @@ tasks are executed. Teardown tasks are skipped if the setup was also skipped. As a side effect this means if the DAG contains teardown tasks, then the manual marking of DAG as "failed" or "success" will need to keep the DAG in running state to ensure that teardown tasks will be scheduled. They would not be scheduled if the DAG is diorectly set to "failed" or "success". + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/45694.significant.rst b/newsfragments/45694.significant.rst index 39985f279ebef..222083bdf2e7e 100644 --- a/newsfragments/45694.significant.rst +++ b/newsfragments/45694.significant.rst @@ -34,13 +34,14 @@ After: * Types of change - * [x] DAG changes + * [x] Dag changes * [ ] Config changes * [ ] API changes * [ ] CLI changes * [ ] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change + * [ ] Dependency changes + * [ ] Code interface changes * Migration rules needed @@ -48,4 +49,4 @@ After: * AIR302 - * [ ] ``airflow.utils.dag_parsing_context.get_parsing_context`` -> ``airflow.sdk.get_parsing_context`` + * [x] ``airflow.utils.dag_parsing_context.get_parsing_context`` -> ``airflow.sdk.get_parsing_context`` diff --git a/newsfragments/45722.significant.rst b/newsfragments/45722.significant.rst index 3e9068a1ac13d..aa7acda9e5e2f 100644 --- a/newsfragments/45722.significant.rst +++ b/newsfragments/45722.significant.rst @@ -2,14 +2,14 @@ Move airflow config ``scheduler.dag_dir_list_interval`` to ``dag_bundles.refresh * Types of change - * [ ] DAG changes + * [ ] Dag changes * [x] Config changes * [ ] API changes * [ ] CLI changes * [ ] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change - * [ ] Code interface change + * [ ] Dependency changes + * [ ] Code interface changes * Migration rules needed diff --git a/newsfragments/45729.significant.rst b/newsfragments/45729.significant.rst index a21491c90ce22..5a722119cdf7d 100644 --- a/newsfragments/45729.significant.rst +++ b/newsfragments/45729.significant.rst @@ -1,3 +1,14 @@ Standalone DAG processor is now required The scheduler is no longer able to parse DAGs itself - it relies on the standalone DAG processor (introduced in Airflow 2.3) to do it instead. You can start one by running ``airflow dag-processor``. + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [x] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [ ] Code interface changes diff --git a/newsfragments/aip-72.significant.rst b/newsfragments/aip-72.significant.rst index 5133a1ac9c0c2..4ad2ab67f6335 100644 --- a/newsfragments/aip-72.significant.rst +++ b/newsfragments/aip-72.significant.rst @@ -42,12 +42,21 @@ As part of this change the following breaking changes have occurred: It is recommended that you replace such a custom operator with a deferrable sensor, a condition or another triggering mechanism. + * Types of change - * [ ] DAG changes - * [ ] Config changes + * [x] Dag changes + * [x] Config changes * [ ] API changes * [ ] CLI changes * [x] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change + * [ ] Dependency changes + * [ ] Code interface changes + +* Migrations rules needed + + * ``airflow config lint`` + + * [x] ``core.task_runner`` + * [x] ``core.enable_xcom_pickling`` diff --git a/newsfragments/aip-79.significant.rst b/newsfragments/aip-79.significant.rst index 8bcfde7f321a1..9ca9222333ed2 100644 --- a/newsfragments/aip-79.significant.rst +++ b/newsfragments/aip-79.significant.rst @@ -13,3 +13,14 @@ As part of this change the following breaking changes have occurred: - The property ``security_manager`` has been removed from the interface - The method ``filter_permitted_menu_items`` is now abstract and must be implemented + +* Types of change + + * [ ] Dag changes + * [ ] Config changes + * [ ] API changes + * [ ] CLI changes + * [ ] Behaviour changes + * [ ] Plugin changes + * [ ] Dependency changes + * [x] Code interface changes diff --git a/newsfragments/template.significant.rst b/newsfragments/template.significant.rst index 64dbe7ea4bd77..4877b0cbd1e19 100644 --- a/newsfragments/template.significant.rst +++ b/newsfragments/template.significant.rst @@ -3,20 +3,29 @@ .. Provide additional contextual information .. Check the type of change that applies to this change +.. Dag changes: requires users to change their dag code +.. Config changes: requires users to change their airflow config +.. API changes: requires users to change their Airflow REST API calls +.. CLI changes: requires users to change their Airflow CLI usage +.. Behaviour changes: the existing code won't break, but the behavior is different +.. Plugin changes: requires users to change their Airflow plugin implementation +.. Dependency changes: requires users to change their dependencies (e.g., Postgres 12) +.. Code interface changes: requires users to change other implementations (e.g., auth manager) * Types of change - * [ ] DAG changes + * [ ] Dag changes * [ ] Config changes * [ ] API changes * [ ] CLI changes * [ ] Behaviour changes * [ ] Plugin changes - * [ ] Dependency change + * [ ] Dependency changes + * [ ] Code interface changes .. List the migration rules needed for this change (see https://github.com/apache/airflow/issues/41641) -* [ ] Migration rules needed +* Migration rules needed .. e.g., .. * Remove context key ``execution_date``