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