Keep not-ready providers out of the all extra - #71165
Merged
Merged
Conversation
potiuk
requested review from
amoghrajesh,
ashb,
bugraoz93,
gopidesupavan,
jason810496 and
jscheffl
as code owners
August 5, 2026 09:10
potiuk
force-pushed
the
exclude-not-ready-providers-from-all
branch
from
August 5, 2026 09:22
a0de5f4 to
9307f1f
Compare
A not-ready provider has never been published, so naming it in an extra makes that extra impossible to satisfy - there is no version on PyPI to resolve to. It broke constraints generation for 3.3.1rc1, where apache-airflow[all] could not resolve because it required apache-airflow-providers-ibm-mq. Only the extras change. The source tree still holds those providers, so they stay in the workspace and under mypy - which is how CI installs and checks them.
potiuk
force-pushed
the
exclude-not-ready-providers-from-all
branch
from
August 5, 2026 09:24
9307f1f to
429c669
Compare
vatsrahul1001
approved these changes
Aug 5, 2026
Contributor
Backport failed to create: v3-3-test. View the failure log Run detailsNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
You can attempt to backport this manually by running: cherry_picker fb459de v3-3-testThis should apply the commit to the v3-3-test branch and leave the commit in conflict state marking After you have resolved the conflicts, you can continue the backport process by running: cherry_picker --continueIf you don't have cherry-picker installed, see the installation guide. |
potiuk
added a commit
that referenced
this pull request
Aug 5, 2026
…71167) A not-ready provider has never been published, so naming it in an extra makes that extra impossible to satisfy - there is no version on PyPI to resolve to. It broke constraints generation for 3.3.1rc1, where apache-airflow[all] could not resolve because it required apache-airflow-providers-ibm-mq. Only the extras change. The source tree still holds those providers, so they stay in the workspace and under mypy - which is how CI installs and checks them. (cherry picked from commit fb459de)
vatsrahul1001
pushed a commit
that referenced
this pull request
Aug 5, 2026
…71167) A not-ready provider has never been published, so naming it in an extra makes that extra impossible to satisfy - there is no version on PyPI to resolve to. It broke constraints generation for 3.3.1rc1, where apache-airflow[all] could not resolve because it required apache-airflow-providers-ibm-mq. Only the extras change. The source tree still holds those providers, so they stay in the workspace and under mypy - which is how CI installs and checks them. (cherry picked from commit fb459de)
dabla
pushed a commit
to dabla/airflow
that referenced
this pull request
Aug 14, 2026
A not-ready provider has never been published, so naming it in an extra makes that extra impossible to satisfy - there is no version on PyPI to resolve to. It broke constraints generation for 3.3.1rc1, where apache-airflow[all] could not resolve because it required apache-airflow-providers-ibm-mq. Only the extras change. The source tree still holds those providers, so they stay in the workspace and under mypy - which is how CI installs and checks them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
allextra of theapache-airflowmeta-package was generated from every provider in the source tree that is not suspended, so it also named the not-ready ones. A not-ready provider has never been published, which makes the extra impossible to satisfy against PyPI: there is no version ofapache-airflow-providers-ibm-mqto resolve to.That is what broke constraints generation for 3.3.1rc1:
ibm.mqandcommon.dataqualityare bothstate: not-ready;apache.beamissuspendedand was already excluded.Only the extras change
The generator now works from two lists, because the sections it writes describe two different things:
all_providers(suspended excluded) still drives the mypy paths, the uv workspace members and[tool.uv.sources]. A not-ready provider lives in the source tree, so mypy has to type-check it and uv has to keep it in the workspace - which is how CI installs it viauv sync --all-packages.released_providers(suspended and not-ready excluded) drives the extras: the per-provider extras and the distributions listed inall.The self-referencing entry inside
all-apache-airflow[async,pandas,...]- needed fixing too. It was filtered againstall_providers, i.e. against the included providers, so excluding a provider from that list moved its extra into the self-reference rather than dropping it, andallwould still have reached the provider through the side door. It is now filtered against every provider id whatever its state.Non-provider extras are untouched:
async,cloudpickle,graphviz,kerberos,ldap,pandas,polars,sentry,statsdand the rest, plusapache-airflow-core[all]. Regenerating twice produces no further change.Effect on uv.lock
The two providers lose their
extra == 'all'and per-provider extra edges, and drop out ofprovides-extras. Their[[package]]entries and workspace membership stay, souv sync --all-packagesstill installs them. Relocked with the pinnedAIRFLOW_UV_VERSION(0.11.29).[dependency-groups] devincludesapache-airflow[all], so that group alone no longer pulls the two in; the workspace sync that CI and breeze use does.It also fixes
dev/get_devel_deps.sh, which installsapache-airflow[all]==<version>from PyPI and would hit the same unsatisfiable resolution.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Opus 5 (1M context) following the guidelines