From dc3fbad36909553860ca0a638309376204e1b4ed Mon Sep 17 00:00:00 2001 From: LIU ZHE YOU Date: Thu, 12 Mar 2026 12:11:54 +0800 Subject: [PATCH 1/3] Fix OpenAI provider get_provider_info --- .../src/airflow/provider.yaml.schema.json | 12 +++++-- .../airflow_breeze/commands/pr_commands.py | 35 +++++++++++-------- .../providers/openai/get_provider_info.py | 13 +++++-- 3 files changed, 40 insertions(+), 20 deletions(-) diff --git a/airflow-core/src/airflow/provider.yaml.schema.json b/airflow-core/src/airflow/provider.yaml.schema.json index 1eb74514015c4..ac6b05f30c87b 100644 --- a/airflow-core/src/airflow/provider.yaml.schema.json +++ b/airflow-core/src/airflow/provider.yaml.schema.json @@ -84,29 +84,35 @@ "type": "string" }, "tags": { - "description": "List of tags describing the integration. While we're using RST, only one tag is supported per integration.", + "description": "List of tags describing the integration.", "type": "array", "items": { "type": "string", "enum": [ "ai", + "ai-inference", "alibaba", "apache", "aws", "azure", "dbt", + "embeddings", "gcp", + "generative-ai", "gmp", "google", "kafka", + "llm", + "machine-learning", + "openai", "protocol", "service", "software", + "text-generation", "yandex" ] }, - "minItems": 1, - "maxItems": 1 + "minItems": 1 } }, "additionalProperties": false, diff --git a/dev/breeze/src/airflow_breeze/commands/pr_commands.py b/dev/breeze/src/airflow_breeze/commands/pr_commands.py index 8deeec4a69951..6dd4e09852453 100644 --- a/dev/breeze/src/airflow_breeze/commands/pr_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/pr_commands.py @@ -422,9 +422,7 @@ def _process_check_contexts(contexts: list[dict], total_count: int) -> tuple[str return summary, failed, has_test_checks -def _fetch_check_status_counts( - token: str, github_repository: str, head_sha: str -) -> dict[str, int]: +def _fetch_check_status_counts(token: str, github_repository: str, head_sha: str) -> dict[str, int]: """Fetch counts of checks by status for a commit. Returns a dict like {"SUCCESS": 5, "FAILURE": 2, ...}. Also includes an "IN_PROGRESS" key for checks still running. @@ -491,10 +489,20 @@ def _format_check_status_counts(counts: dict[str, int]) -> str: parts = [] # Show in a consistent order: failures first, then in-progress, then success, then others order = [ - "FAILURE", "TIMED_OUT", "ERROR", "STARTUP_FAILURE", "ACTION_REQUIRED", - "IN_PROGRESS", "QUEUED", "PENDING", - "SUCCESS", "EXPECTED", - "CANCELLED", "SKIPPED", "NEUTRAL", "STALE", + "FAILURE", + "TIMED_OUT", + "ERROR", + "STARTUP_FAILURE", + "ACTION_REQUIRED", + "IN_PROGRESS", + "QUEUED", + "PENDING", + "SUCCESS", + "EXPECTED", + "CANCELLED", + "SKIPPED", + "NEUTRAL", + "STALE", ] shown = set() for status in order: @@ -839,10 +847,7 @@ def _classify_already_triaged_prs( for comment in comments: comment_author = (comment.get("author") or {}).get("login", "") comment_date = comment.get("createdAt", "") - if ( - comment_author == pr.author_login - and comment_date > triage_comment_date - ): + if comment_author == pr.author_login and comment_date > triage_comment_date: author_responded = True break @@ -2213,10 +2218,10 @@ def _display_pr_overview_table( ) get_console().print(pr_table) get_console().print( - f" Triage: [green]Ready for review[/] = ready for maintainer review " - f"[yellow]Waiting for Author[/] = triaged, no response " - f"[bright_cyan]Responded[/] = author replied " - f"[blue]-[/] = not yet triaged" + " Triage: [green]Ready for review[/] = ready for maintainer review " + "[yellow]Waiting for Author[/] = triaged, no response " + "[bright_cyan]Responded[/] = author replied " + "[blue]-[/] = not yet triaged" ) if collab_count: get_console().print( diff --git a/providers/openai/src/airflow/providers/openai/get_provider_info.py b/providers/openai/src/airflow/providers/openai/get_provider_info.py index 3b6eff9bfb753..6b8eda581e2c6 100644 --- a/providers/openai/src/airflow/providers/openai/get_provider_info.py +++ b/providers/openai/src/airflow/providers/openai/get_provider_info.py @@ -25,14 +25,23 @@ def get_provider_info(): return { "package-name": "apache-airflow-providers-openai", "name": "OpenAI", - "description": "`OpenAI `__\n", + "description": "`OpenAI `__ provider for Apache Airflow.\nEnables interaction with OpenAI APIs for text generation, embeddings,\nand other AI-powered workflows directly from Airflow DAGs.\n", "integrations": [ { "integration-name": "OpenAI", "external-doc-url": "https://platform.openai.com/docs/introduction", "logo": "/docs/integration-logos/OpenAI.png", "how-to-guide": ["/docs/apache-airflow-providers-openai/operators/openai.rst"], - "tags": ["software"], + "tags": [ + "ai", + "openai", + "machine-learning", + "generative-ai", + "llm", + "text-generation", + "embeddings", + "ai-inference", + ], } ], "hooks": [ From 47b126c1c2307fe4b61dedf2ca0e7cccf4ff60ca Mon Sep 17 00:00:00 2001 From: LIU ZHE YOU Date: Thu, 12 Mar 2026 13:37:26 +0800 Subject: [PATCH 2/3] Fix index.rst --- providers/openai/docs/index.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/providers/openai/docs/index.rst b/providers/openai/docs/index.rst index 4d57ed93cab19..9f8b72ba1c164 100644 --- a/providers/openai/docs/index.rst +++ b/providers/openai/docs/index.rst @@ -68,8 +68,9 @@ apache-airflow-providers-openai package ------------------------------------------------------ -`OpenAI `__ - +`OpenAI `__ provider for Apache Airflow. +Enables interaction with OpenAI APIs for text generation, embeddings, +and other AI-powered workflows directly from Airflow DAGs. Release: 1.7.2 From 1dde88831c5d10128e5bc4e4df7c5ca61e588ec5 Mon Sep 17 00:00:00 2001 From: LIU ZHE YOU Date: Thu, 12 Mar 2026 14:19:10 +0800 Subject: [PATCH 3/3] Fix newline static check for index.rst --- providers/openai/docs/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/providers/openai/docs/index.rst b/providers/openai/docs/index.rst index 9f8b72ba1c164..1e3eeddf22890 100644 --- a/providers/openai/docs/index.rst +++ b/providers/openai/docs/index.rst @@ -72,6 +72,7 @@ apache-airflow-providers-openai package Enables interaction with OpenAI APIs for text generation, embeddings, and other AI-powered workflows directly from Airflow DAGs. + Release: 1.7.2 Provider package