potiuk commented on code in PR #51153: URL: https://github.com/apache/airflow/pull/51153#discussion_r2128659630
########## dev/breeze/src/airflow_breeze/commands/developer_commands.py: ########## @@ -1153,6 +1153,35 @@ def autogenerate( fix_ownership_using_docker() +@main.command(name="build-task-sdk-docs", help="Build the Apache Airflow Task Execution SDK documentation.") Review Comment: Yes. That +: > 1. Extending the "docs" group in `devel-common` (or in Breeze's `developer_commands.py`) so that it knows about a `task-sdk` module and points it at the right source directory. I do not think you need to change the group in devel-common (unless you need some additional dependencies) - I think it is enough to add (in task-sdk pyproject.toml). ``` docs = [ "apache-airflow-devel-common[docs]" ] ``` Then: in global_constants.py: ```python # packages that providers docs REGULAR_DOC_PACKAGES = [ "apache-airflow", "docker-stack", "helm-chart", "apache-airflow-providers", ] ``` In docs_builder.py (in develo_common): ```python @property def _src_dir(self) -> Path: if self.package_name == "helm-chart": return AIRFLOW_CONTENT_ROOT_PATH / "chart" / "docs" if self.package_name == "apache-airflow": return AIRFLOW_CONTENT_ROOT_PATH / "airflow-core" / "docs" if self.package_name == "docker-stack": return AIRFLOW_CONTENT_ROOT_PATH / "docker-stack-docs" if self.package_name == "apache-airflow-providers": return AIRFLOW_CONTENT_ROOT_PATH / "providers-summary-docs" if self.package_name.startswith("apache-airflow-providers-"): package_paths = self.package_name[len("apache-airflow-providers-") :].split("-") return (AIRFLOW_CONTENT_ROOT_PATH / "providers").joinpath(*package_paths) / "docs" if self.package_name == "apache-airflow-ctl": return AIRFLOW_CONTENT_ROOT_PATH / "airflow-ctl" / "docs" console.print(f"[red]Unknown package name: {self.package_name}") sys.exit(1) ``` In docs_build.py ```python def get_available_packages(include_suspended: bool = False, short_form: bool = False) -> list[str]: """Get list of all available packages to build.""" provider_names = get_available_providers_distributions(include_suspended=include_suspended) if short_form: provider_names = [get_short_form(name) for name in provider_names] return [ "apache-airflow", *provider_names, "apache-airflow-providers", "apache-airflow-ctl", "helm-chart", "docker-stack", ] ``` in selective_checks: ```python FileGroupForCi.DOC_FILES: [ r"^docs", r"^devel-common/src/docs", r"^\.github/SECURITY\.md", r"^airflow-core/src/.*\.py$", r"^airflow-core/docs/", r"^providers/.*/src/", r"^providers/.*/tests/", r"^providers/.*/docs/", r"^providers-summary-docs", r"^docker-stack-docs", r"^chart", r"^task-sdk/src/", r"^airflow-ctl/src/", r"^airflow-core/tests/system", r"^airflow-ctl/src", r"^airflow-ctl/docs", r"^CHANGELOG\.txt", r"^airflow-core/src/airflow/config_templates/config\.yml", r"^chart/RELEASE_NOTES\.rst", r"^chart/values\.schema\.json", r"^chart/values\.json", r"^RELEASE_NOTES\.rst", ], ``` ```python @cached_property def docs_list_as_string(self) -> str | None: _ALL_DOCS_LIST = "" if not self.docs_build: return None if self._default_branch != "main": return "apache-airflow docker-stack" if self.full_tests_needed: return _ALL_DOCS_LIST providers_affected = self._find_all_providers_affected( include_docs=True, ) if ( isinstance(providers_affected, AllProvidersSentinel) or "docs/conf.py" in self._files or "docs/build_docs.py" in self._files or self._are_all_providers_affected() ): return _ALL_DOCS_LIST packages = [] if any(file.startswith(("airflow-core/src/airflow/", "airflow-core/docs/")) for file in self._files): packages.append("apache-airflow") if any(file.startswith("providers-summary-docs/") for file in self._files): packages.append("apache-airflow-providers") if any(file.startswith("chart/") for file in self._files): packages.append("helm-chart") if any(file.startswith("docker-stack-docs") for file in self._files): packages.append("docker-stack") if providers_affected: for provider in providers_affected: packages.append(provider.replace("-", ".")) return " ".join(packages) ``` Likely some tests should be updated too. Should be I think all that is needed (maybe there is one or more place) - so that task-sdk docs are build automatically and use the infrastructure - including publishing to s3 during releases - we just will need to update `dev/README-*.md` for release manager to also include `task-sdk` package when they are building docs. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org