Skip to content

Conversation

@jscheffl
Copy link
Contributor

@jscheffl jscheffl commented Jun 21, 2025

In regards of support of Python 3.13 we see that edge3 provider needs to be excluded for the moment as FAB is not ready for Python 3.13. See #46891

FAB dependency was only used in the Plugin for the UI which anyway is limited to Airflow 2.x atm as plugin support in Airflow 3 UI is still WIP.

This PR reworks the logic in the UI Plugin such that the FAB dependency is removed - in Airflow 2.x this was belonging into the core and only for Airflow 3 the auth manager stuff was moved to FAB... so actually the dependency in the provider is not needed.

The change looks big but actually it is just moving existing code into conditional blocks such that auth manager code is only needed in Airflow 2 and Airflow 3 Plugin code now loads only API server backend needed.

@potiuk Can you be my reviewer for the change?

Tested it manually with breeze on 2.11.0, 3.0.2 and main - all still working.

@boring-cyborg boring-cyborg bot added area:providers provider:edge Edge Executor / Worker (AIP-69) / edge3 labels Jun 21, 2025
@jscheffl jscheffl requested review from Copilot and potiuk June 21, 2025 12:11
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes the Flask AppBuilder (FAB) dependency from the Edge3 provider plugin by loading UI/auth code only for Airflow 2.x and using FastAPI apps for Airflow 3.x.

  • Refactors EdgeExecutorPlugin to conditionally import and register endpoints based on AIRFLOW_V_3_0_PLUS.
  • Updates unit tests to assert the new plugin attributes across Airflow versions.
  • Cleans up pyproject.toml by dropping the FAB provider dependency.

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
providers/edge3/tests/unit/edge3/plugins/test_edge_executor_plugin.py Adjusted assertions & added skip for Airflow 3+ behavior
providers/edge3/src/airflow/providers/edge3/plugins/edge_executor_plugin.py Wrapped UI code in version checks and removed old FAB logic
providers/edge3/pyproject.toml Removed apache-airflow-providers-fab from dependencies

@potiuk potiuk merged commit 6931f3a into apache:main Jun 21, 2025
67 checks passed
potiuk added a commit to potiuk/airflow that referenced this pull request Jun 21, 2025
potiuk added a commit that referenced this pull request Jun 21, 2025
jscheffl added a commit that referenced this pull request Jun 21, 2025
RoyLee1224 pushed a commit to RoyLee1224/airflow that referenced this pull request Jun 21, 2025
* Remove FAB dependency from Edge3 Provider

* Uuups, pytests needed adjustment
RoyLee1224 pushed a commit to RoyLee1224/airflow that referenced this pull request Jun 21, 2025
jscheffl added a commit that referenced this pull request Jun 21, 2025
jscheffl added a commit that referenced this pull request Jun 22, 2025
potiuk pushed a commit that referenced this pull request Jun 22, 2025
…52000)

* Revert "Revert "Remove FAB dependency from Edge3 Provider (#51995)" (#51998)"

This reverts commit 4638556.

* Attempt to pushup import to remove DB problems in pytests

* Fix lazy loading of DB models in plugin

* Mark test for DB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providers provider:edge Edge Executor / Worker (AIP-69) / edge3

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants