Skip to content

Support Python 3.13 in fab provider#62924

Merged
potiuk merged 1 commit intoapache:mainfrom
Dev-iL:2603/fab_3.13
Mar 7, 2026
Merged

Support Python 3.13 in fab provider#62924
potiuk merged 1 commit intoapache:mainfrom
Dev-iL:2603/fab_3.13

Conversation

@Dev-iL
Copy link
Collaborator

@Dev-iL Dev-iL commented Mar 5, 2026

Remove FAB Provider Python 3.13 Exclusions

Purpose

Flask AppBuilder (FAB) has recently released a new version with Python 3.13 support.

This PR removes all conditional dependencies, version guards, and CI workarounds that previously excluded the FAB provider from Python 3.13 environments.

What changed

Area Change
Provider metadata Removed excluded-python-versions: ["3.13"] from providers/fab/provider.yaml and generated/provider_dependencies.json
FAB pyproject.toml Changed requires-python from >=3.10,!=3.13 to >=3.10, added 3.13 classifier, removed ; python_version < '3.13' markers from all dependencies
Consumer pyproject.toml files Removed Python 3.13 exclusion markers from FAB optional/dev dependencies in root pyproject.toml, airflow-core, and the google, databricks, and amazon providers
CI workflows Removed FAB-specific 3.13 skip conditions in migration tests, prod image builds, and SQLAlchemy special tests
Application code Removed _PY313 special-case branch in core_api/app.py that silently swallowed FAB import errors on 3.13
Tests Removed PY313 skip guards and dead skip_fab code in test_db.py; updated test_selective_checks.py expectation to empty excluded-providers dict
Breeze constants Reset DEFAULT_PYTHON_MAJOR_MINOR_VERSION_FOR_IMAGES to the standard default (was pinned to 3.12 due to FAB)
Docs Updated dependency tables in READMEs and docs/index.rst for FAB, Google, Databricks, and Amazon providers

Expected outcome

  • The FAB provider installs and works on Python 3.13 like any other Python version.
  • CI migration tests, image builds, and SQLAlchemy tests run on Python 3.13 with FAB included.
  • pip install apache-airflow[fab] no longer silently skips FAB on Python 3.13.
  • Docker production images for Python 3.13 include the FAB provider.

closes: #52509
Closes: #52663


Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Claude Opus 4.6 following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst or {issue_number}.significant.rst, in airflow-core/newsfragments.

@boring-cyborg boring-cyborg bot added area:API Airflow's REST/HTTP API area:dev-tools area:providers backport-to-v3-1-test Mark PR with this label to backport to v3-1-test branch kind:documentation provider:amazon AWS/Amazon - related issues provider:databricks provider:fab provider:google Google (including GCP) related issues labels Mar 5, 2026
@Dev-iL Dev-iL self-assigned this Mar 5, 2026
@Dev-iL Dev-iL added full tests needed We need to run full set of tests for this PR to merge all versions If set, the CI build will be forced to use all versions of Python/K8S/DBs labels Mar 5, 2026
@Dev-iL Dev-iL closed this Mar 5, 2026
@Dev-iL Dev-iL reopened this Mar 5, 2026
@eladkal eladkal changed the title Remove dependency limitations related to FAB's py3.13 incompatibility Support Python 3.13 in fab provider Mar 5, 2026
@Dev-iL Dev-iL marked this pull request as ready for review March 5, 2026 13:19
Copy link
Contributor

@jscheffl jscheffl left a comment

Choose a reason for hiding this comment

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

Cool!

Copy link
Member

@potiuk potiuk left a comment

Choose a reason for hiding this comment

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

We need to adapt FAB to 5.2.0, keep == for all versions and transplant changes from Fab security manager to our override.py.

@Dev-iL Dev-iL force-pushed the 2603/fab_3.13 branch 2 times, most recently from 0ccadb9 to 81de7fc Compare March 6, 2026 13:01
@Dev-iL Dev-iL requested a review from potiuk March 6, 2026 13:05
@Dev-iL Dev-iL force-pushed the 2603/fab_3.13 branch 2 times, most recently from 0b2492f to e16e41d Compare March 6, 2026 18:48
@Dev-iL
Copy link
Collaborator Author

Dev-iL commented Mar 7, 2026

@potiuk CI is green. Please see if this iteration is acceptable.

Copy link
Member

@potiuk potiuk left a comment

Choose a reason for hiding this comment

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

Love it !!!! Fantastic idea with adding tests for FAB alignment ! Kudos!

@potiuk potiuk merged commit 7003773 into apache:main Mar 7, 2026
459 of 460 checks passed
@github-actions
Copy link

github-actions bot commented Mar 7, 2026

Backport failed to create: v3-1-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
v3-1-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 7003773 v3-1-test

This should apply the commit to the v3-1-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

@jscheffl
Copy link
Contributor

jscheffl commented Mar 7, 2026

protm

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

Labels

all versions If set, the CI build will be forced to use all versions of Python/K8S/DBs area:API Airflow's REST/HTTP API area:dev-tools area:providers backport-to-v3-1-test Mark PR with this label to backport to v3-1-test branch full tests needed We need to run full set of tests for this PR to merge kind:documentation provider:amazon AWS/Amazon - related issues provider:databricks provider:fab provider:google Google (including GCP) related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Skip tests that depend on FAB when it's uninstalled The following deps are held by FAB (waiting for FAB 5) :

5 participants