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 <[email protected]>
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