Skip to content

Commit

Permalink
Fix handling selective docs builds for "special" packages (#35102)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
potiuk authored Oct 21, 2023
1 parent 5973c6a commit a562174
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 19 deletions.
19 changes: 6 additions & 13 deletions dev/breeze/src/airflow_breeze/params/doc_build_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,14 @@
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, ...]
Expand All @@ -53,10 +47,9 @@ def args_doc_builder(self) -> list[str]:
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
2 changes: 1 addition & 1 deletion dev/breeze/src/airflow_breeze/utils/general_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
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):
Expand Down
5 changes: 2 additions & 3 deletions dev/breeze/src/airflow_breeze/utils/publish_docs_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

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

Expand Down Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions dev/breeze/tests/test_general_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

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(
Expand All @@ -43,4 +43,4 @@
],
)
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

0 comments on commit a562174

Please sign in to comment.