This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new a562174296 Fix handling selective docs builds for "special" packages 
(#35102)
a562174296 is described below

commit a562174296d35fb4a5d2e61cbbe281f5d93a3783
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Sat Oct 21 18:20:12 2023 +0200

    Fix handling selective docs builds for "special" packages (#35102)
    
    The #35069 and #35087 that switched from `--package-filter` to
    shorthand package names in CI did not handle all the cases - special
    package names such as "apache-airflow" or "helm-chart" were treated
    also as providers and the --package-filter constructed was wrong.
    
    This caused a few PRs that got "selective" documentation build (only
    when they changed provider + some airflow docs) would fail.
---
 .../src/airflow_breeze/params/doc_build_params.py     | 19 ++++++-------------
 dev/breeze/src/airflow_breeze/utils/general_utils.py  |  2 +-
 .../src/airflow_breeze/utils/publish_docs_helpers.py  |  5 ++---
 dev/breeze/tests/test_general_utils.py                |  4 ++--
 4 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/dev/breeze/src/airflow_breeze/params/doc_build_params.py 
b/dev/breeze/src/airflow_breeze/params/doc_build_params.py
index 28d0c45c53..34da7fc231 100644
--- a/dev/breeze/src/airflow_breeze/params/doc_build_params.py
+++ b/dev/breeze/src/airflow_breeze/params/doc_build_params.py
@@ -20,20 +20,14 @@ import os
 from dataclasses import dataclass
 
 from airflow_breeze.branch_defaults import AIRFLOW_BRANCH
+from airflow_breeze.utils.general_utils import 
get_docs_filter_name_from_short_hand
 
 providers_prefix = "apache-airflow-providers-"
 
 
-def get_provider_name_from_short_hand(short_form_providers: tuple[str, ...]):
-    return tuple(
-        providers_prefix + short_form_provider.replace(".", "-")
-        for short_form_provider in short_form_providers
-    )
-
-
 @dataclass
 class DocBuildParams:
-    package_filter: tuple[str]
+    package_filter: tuple[str, ...]
     docs_only: bool
     spellcheck_only: bool
     short_doc_packages: tuple[str, ...]
@@ -53,10 +47,9 @@ class DocBuildParams:
         if AIRFLOW_BRANCH != "main":
             doc_args.append("--disable-provider-checks")
         if self.short_doc_packages:
-            providers = 
get_provider_name_from_short_hand(self.short_doc_packages)
-            for single_provider in providers:
-                doc_args.extend(["--package-filter", single_provider])
+            for filter_from_short_doc in 
get_docs_filter_name_from_short_hand(self.short_doc_packages):
+                doc_args.extend(["--package-filter", filter_from_short_doc])
         if self.package_filter:
-            for single_filter in self.package_filter:
-                doc_args.extend(["--package-filter", single_filter])
+            for filter in self.package_filter:
+                doc_args.extend(["--package-filter", filter])
         return doc_args
diff --git a/dev/breeze/src/airflow_breeze/utils/general_utils.py 
b/dev/breeze/src/airflow_breeze/utils/general_utils.py
index c0ca2847d1..d5f64057a1 100644
--- a/dev/breeze/src/airflow_breeze/utils/general_utils.py
+++ b/dev/breeze/src/airflow_breeze/utils/general_utils.py
@@ -21,7 +21,7 @@ from airflow_breeze.global_constants import 
ALL_SPECIAL_DOC_KEYS, get_available_
 providers_prefix = "apache-airflow-providers-"
 
 
-def get_provider_name_from_short_hand(short_form_providers: tuple[str]):
+def get_docs_filter_name_from_short_hand(short_form_providers: tuple[str]):
     providers = []
     for short_form_provider in short_form_providers:
         if specific_doc := ALL_SPECIAL_DOC_KEYS.get(short_form_provider):
diff --git a/dev/breeze/src/airflow_breeze/utils/publish_docs_helpers.py 
b/dev/breeze/src/airflow_breeze/utils/publish_docs_helpers.py
index 7cd436e0e9..e43eca408d 100644
--- a/dev/breeze/src/airflow_breeze/utils/publish_docs_helpers.py
+++ b/dev/breeze/src/airflow_breeze/utils/publish_docs_helpers.py
@@ -26,7 +26,7 @@ from typing import Any
 
 import yaml
 
-from airflow_breeze.utils.general_utils import 
get_provider_name_from_short_hand
+from airflow_breeze.utils.general_utils import 
get_docs_filter_name_from_short_hand
 
 CONSOLE_WIDTH = 180
 
@@ -111,8 +111,7 @@ def process_package_filters(
     if not package_filters and not packages_short_form:
         return available_packages
 
-    expanded_short_form_packages = 
get_provider_name_from_short_hand(packages_short_form)
-    package_filters = list(package_filters + expanded_short_form_packages)
+    package_filters = list(package_filters + 
get_docs_filter_name_from_short_hand(packages_short_form))
 
     invalid_filters = [
         f for f in package_filters if not any(fnmatch.fnmatch(p, f) for p in 
available_packages)
diff --git a/dev/breeze/tests/test_general_utils.py 
b/dev/breeze/tests/test_general_utils.py
index 335f24525c..b32b410d17 100644
--- a/dev/breeze/tests/test_general_utils.py
+++ b/dev/breeze/tests/test_general_utils.py
@@ -18,7 +18,7 @@ from __future__ import annotations
 
 import pytest
 
-from airflow_breeze.utils.general_utils import 
get_provider_name_from_short_hand
+from airflow_breeze.utils.general_utils import 
get_docs_filter_name_from_short_hand
 
 
 @pytest.mark.parametrize(
@@ -43,4 +43,4 @@ from airflow_breeze.utils.general_utils import 
get_provider_name_from_short_hand
     ],
 )
 def test_get_provider_name_from_short_hand(short_form_providers, expected):
-    assert get_provider_name_from_short_hand(short_form_providers) == expected
+    assert get_docs_filter_name_from_short_hand(short_form_providers) == 
expected

Reply via email to