Skip to content

Only render cross-provider dependencies if they're optional#63906

Closed
TylerLubeck wants to merge 2 commits into
apache:mainfrom
TylerLubeck:breeze-docs-extras
Closed

Only render cross-provider dependencies if they're optional#63906
TylerLubeck wants to merge 2 commits into
apache:mainfrom
TylerLubeck:breeze-docs-extras

Conversation

@TylerLubeck

Copy link
Copy Markdown

This mirrors what happens when generating pyproject.toml - if providers are listed in the package requirements, they are not added as extras.

The difference here - and where I'm hoping for some feedback - is that the docs say both "This is a cross provider dependency" and "here's the extra you can use to install it if you want".

Basically, do we want to differentiate between optional and required cross provider dependencies, but still show both? Or perhaps rename the docs section "optional cross provider dependencies"? This PR currently chooses to do neither, and just doesn't show the cross provider dependency if it's also a required dependency.

closes: #63891


Was generative AI tooling used to co-author this PR?

Nope

@potiuk

potiuk commented Mar 19, 2026

Copy link
Copy Markdown
Member

Basically, do we want to differentiate between optional and required cross provider dependencies, but still show both? Or perhaps rename the docs section "optional cross provider dependencies"? This PR currently chooses to do neither, and just doesn't show the cross provider dependency if it's also a required dependency.

Good catch. Yes I think renaming the docs session to optional is a good idea - feel free to amend the commit, you will need to change template and regenerate the docs (look for --apply-templates-only I think)

@TylerLubeck

TylerLubeck commented Mar 19, 2026

Copy link
Copy Markdown
Author

boy howdy regenerating the docs makes this a big PR.

I split the commits to hopefully make review easier, key stuff is in the first one.

and thank you for the --apply-templates-only pointer, that would've taken me a bit to find. Full regen command ended up being

breeze release-management prepare-provider-documentation --reapply-templates-only --only-min-version-update

Leaving off the last argument resulted in

Release date is required unless --only-min-version-update is used!

and picking a release date felt presumptuous at best

@potiuk
potiuk marked this pull request as draft March 20, 2026 08:03
@potiuk

potiuk commented Mar 20, 2026

Copy link
Copy Markdown
Member

@TylerLubeck Converting to draft — this PR doesn't yet meet our Pull Request quality criteria.

  • Merge conflicts: This PR has merge conflicts with the main branch. Your branch is 7 commits behind main. Please rebase your branch (git fetch origin && git rebase origin/main), resolve the conflicts, and push again. See contributing quick start.

See the linked criteria for how to fix each item, then mark the PR "Ready for review". This is not a rejection — just an invitation to bring the PR up to standard. No rush.


Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you.

@TylerLubeck
TylerLubeck marked this pull request as ready for review March 20, 2026 16:05
@potiuk
potiuk force-pushed the breeze-docs-extras branch from d9cc23a to 6656133 Compare March 21, 2026 00:03

@josh-fell josh-fell left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Agreed, this is much clearer.

@TylerLubeck

Copy link
Copy Markdown
Author

Failing check says:

When common.compat changes with other providers in the same PR, add '# use next version' comment where they depend on common-compat.
Example: "apache-airflow-providers-common-compat>=1.8.0",  # use next version

To bypass this check, add the label: 'skip common compat check'

I'm somewhat confident this check can be bypassed - the code hasn't changed in common-compat - but I can't add the label

@Dev-iL Dev-iL added the skip common compat check Skips common compat provider modification check label Mar 25, 2026
@Dev-iL

Dev-iL commented Mar 25, 2026

Copy link
Copy Markdown
Collaborator

@TylerLubeck I added the skip tag. Please rebase.

@TylerLubeck
TylerLubeck force-pushed the breeze-docs-extras branch 3 times, most recently from 751409d to b1cd80d Compare March 27, 2026 15:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates Breeze’s provider documentation generation so “cross provider dependencies” are only rendered when they correspond to optional extras (i.e., not already present in the provider’s required dependencies), aligning docs behavior with how pyproject.toml extras are generated.

Changes:

  • Filter CROSS_PROVIDERS_DEPENDENCIES in Breeze to only include cross-provider deps that are not already required dependencies.
  • Rename the rendered section header to “Optional cross provider package dependencies” where it remains applicable.
  • Regenerate many provider README.rst and docs/index.rst files to remove misleading extras and tables.

Reviewed changes

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

Show a summary per file
File Description
dev/breeze/src/airflow_breeze/utils/packages.py Filters cross-provider deps used for docs to only those not already in required dependencies.
dev/breeze/src/airflow_breeze/templates/PROVIDER_README_TEMPLATE.rst.jinja2 Renames the cross-provider section header to indicate optionality.
dev/breeze/src/airflow_breeze/templates/PROVIDER_INDEX_TEMPLATE.rst.jinja2 Renames the cross-provider section header to indicate optionality (but currently also gates the download section).
providers/airbyte/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/airbyte/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/alibaba/README.rst Regenerated provider README removing non-optional cross-provider extras section (and updating requirement table rendering).
providers/alibaba/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/amazon/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/amazon/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/apache/cassandra/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/cassandra/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/drill/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/drill/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/druid/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/apache/druid/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/apache/flink/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/flink/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/hdfs/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/hdfs/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/hive/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/apache/hive/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/apache/iceberg/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/iceberg/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/impala/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/impala/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/kafka/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/apache/kafka/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/apache/kylin/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/kylin/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/livy/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/livy/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/pig/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/pig/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/pinot/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/pinot/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apache/spark/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/apache/spark/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/apache/tinkerpop/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apache/tinkerpop/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/apprise/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/apprise/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/arangodb/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/arangodb/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/asana/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/asana/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/atlassian/jira/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/atlassian/jira/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/celery/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/celery/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/cloudant/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/cloudant/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/cncf/kubernetes/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/cncf/kubernetes/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/cohere/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/cohere/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/common/compat/README.rst Regenerated provider README header to optional cross-provider deps (if present).
providers/common/compat/docs/index.rst Regenerated provider index header to optional cross-provider deps (if present).
providers/common/io/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/common/io/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/common/sql/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/common/sql/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/databricks/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/databricks/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/datadog/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/datadog/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/dbt/cloud/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/dbt/cloud/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/discord/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/discord/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/dingding/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/dingding/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/docker/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/docker/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/edge3/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/edge3/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/elasticsearch/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/elasticsearch/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/exasol/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/exasol/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/fab/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/fab/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/facebook/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/facebook/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/ftp/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/ftp/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/git/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/git/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/github/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/github/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/google/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/google/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/grpc/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/grpc/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/hashicorp/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/hashicorp/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/http/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/http/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/imap/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/imap/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/influxdb/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/influxdb/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/informatica/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/informatica/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/jdbc/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/jdbc/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/jenkins/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/jenkins/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/keycloak/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/keycloak/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/microsoft/azure/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/microsoft/azure/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/microsoft/mssql/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/microsoft/mssql/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/microsoft/psrp/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/microsoft/psrp/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/microsoft/winrm/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/microsoft/winrm/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/mongo/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/mongo/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/mysql/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/mysql/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/neo4j/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/neo4j/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/odbc/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/odbc/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/openai/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/openai/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/openfaas/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/openfaas/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/openlineage/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/openlineage/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/opensearch/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/opensearch/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/opsgenie/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/opsgenie/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/oracle/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/oracle/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/pagerduty/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/pagerduty/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/papermill/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/papermill/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/pgvector/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/pgvector/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/pinecone/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/pinecone/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/postgres/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/postgres/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/presto/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/presto/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/qdrant/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/qdrant/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/redis/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/redis/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/salesforce/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/salesforce/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/samba/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/samba/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/segment/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/segment/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/sendgrid/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/sendgrid/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/sftp/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/sftp/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/singularity/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/singularity/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/slack/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/slack/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/smtp/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/smtp/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/snowflake/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/snowflake/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/sqlite/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/sqlite/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/ssh/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/ssh/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/standard/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/standard/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/tableau/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/tableau/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/telegram/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/telegram/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/teradata/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/teradata/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/trino/README.rst Regenerated provider README keeping only optional cross-provider extras.
providers/trino/docs/index.rst Regenerated provider index keeping only optional cross-provider extras.
providers/vertica/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/vertica/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/weaviate/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/weaviate/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/yandex/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/yandex/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/ydb/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/ydb/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.
providers/zendesk/README.rst Regenerated provider README removing non-optional cross-provider extras section.
providers/zendesk/docs/index.rst Regenerated provider index removing non-optional cross-provider extras section.

Comment on lines 74 to 78
{%- if CROSS_PROVIDERS_DEPENDENCIES %}

Cross provider package dependencies
-----------------------------------
Optional cross provider package dependencies
--------------------------------------------

Copilot AI Apr 2, 2026

Copy link

Choose a reason for hiding this comment

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

Downloading official packages is currently inside the {%- if CROSS_PROVIDERS_DEPENDENCIES %} block. With this PR making CROSS_PROVIDERS_DEPENDENCIES empty for providers whose cross-provider deps are already required, their docs index will no longer render any download links/checksums/signatures. Move the Downloading official packages section outside the conditional so it always appears, independent of whether there are optional cross-provider extras to show.

Copilot uses AI. Check for mistakes.
Comment on lines +704 to +708
pip_requirements = get_provider_requirements(provider_details.provider_id)
cross_deps = get_cross_provider_dependent_packages(provider_id=provider_id)
optional_cross_provider_dependencies = [
dep for dep in cross_deps if get_pip_package_name(dep) not in "\n".join(pip_requirements)
]

Copilot AI Apr 2, 2026

Copy link

Choose a reason for hiding this comment

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

The new filtering of CROSS_PROVIDERS_DEPENDENCIES to exclude providers already present in pip_requirements changes the generated provider docs/README output, but there are no unit tests asserting the new behavior (e.g. that required cross-provider deps are omitted, optional ones remain, and templates still render expected sections). Please add a regression test (likely in dev/breeze/tests/test_packages.py) covering the new get_provider_jinja_context() output for at least one provider where cross-provider deps are required-only vs optional.

Copilot generated this review using guidance from repository custom instructions.
@potiuk

potiuk commented Apr 2, 2026

Copy link
Copy Markdown
Member

@TylerLubeck A few things need addressing before review — see our Pull Request quality criteria.

  • Pre-commit / static checks: Failing: CI image checks / Static checks. Run prek run --from-ref main locally to find and fix issues. See Pre-commit / static checks docs.

Note: Your branch is 149 commits behind main. Please rebase and push again to get up-to-date CI results.

No rush.


Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@potiuk
potiuk marked this pull request as draft April 22, 2026 18:09
@potiuk

potiuk commented Apr 22, 2026

Copy link
Copy Markdown
Member

@TylerLubeck This PR was triaged 20 days ago and has had no reply since. Converting to draft — this PR doesn't yet meet our Pull Request quality criteria.

  • Merge conflicts: this branch has conflicts with main and cannot be merged as-is. Rebase onto the current main to resolve: git fetch upstream main && git rebase upstream/main, resolve, force-push.
  • Failing CI: WebKit UI e2e tests and Firefox UI e2e tests are failing — investigate the browser e2e logs.
  • Unresolved review comments (2 threads): please walk through each unresolved review thread. Even if a suggestion looks incorrect or irrelevant — and some of them will be, especially any comments left by automated reviewers like GitHub Copilot — it is still the author's responsibility to respond: apply the fix, reply in-thread with a brief explanation of why the suggestion does not apply, or resolve the thread if the feedback is no longer relevant. Leaving threads unaddressed for weeks blocks the PR from moving forward.

See the linked criteria for how to fix each item, then mark the PR "Ready for review". This is not a rejection — just an invitation to bring the PR up to standard. No rush.


Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you.

@potiuk

potiuk commented Apr 22, 2026

Copy link
Copy Markdown
Member

Quick follow-up to the triage comment above — one clarification on the "Unresolved review comments" item:

Once you believe a thread has been addressed — whether by pushing a fix, or by replying in-thread with an explanation of why the suggestion doesn't apply — please mark the thread as resolved yourself by clicking the "Resolve conversation" button at the bottom of each thread. Reviewers don't auto-close their own threads, so an addressed-but-unresolved thread reads as "still waiting on the author" and keeps the PR from moving forward. The author doing the resolve-click is the expected convention on this project.


Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you.

@potiuk

potiuk commented May 5, 2026

Copy link
Copy Markdown
Member

@TylerLubeck This draft PR has been inactive for 13 days since the last triage comment and no response from the author. Closing to keep the queue clean.

You are welcome to reopen this PR when you resume work, or to open a new one addressing the issues previously raised. There is no rush — take your time.


Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you.

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

Labels

area:dev-tools skip common compat check Skips common compat provider modification check

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Breeze mis-generates "cross provider dependency" docs

6 participants