diff --git a/airflow-core/docs/index.rst b/airflow-core/docs/index.rst index f55ee3a3029b7..364e5d85141aa 100644 --- a/airflow-core/docs/index.rst +++ b/airflow-core/docs/index.rst @@ -39,7 +39,7 @@ Task SDK For Airflow Task SDK, see the standalone reference & tutorial site: - https://airflow.apache.org/docs/task-sdk/stable/ +:doc:`task-sdk:index` Dags ----------------------------------------- diff --git a/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py b/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py index eb64174e8df08..42db0bc7165c2 100644 --- a/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py +++ b/dev/breeze/src/airflow_breeze/utils/publish_docs_to_s3.py @@ -30,7 +30,7 @@ PROVIDER_NAME_FORMAT = "apache-airflow-providers-{}" -NON_SHORT_NAME_PACKAGES = ["docker-stack", "helm-chart", "apache-airflow"] +NON_SHORT_NAME_PACKAGES = ["docker-stack", "helm-chart", "apache-airflow", "task-sdk"] PACKAGES_METADATA_EXCLUDE_NAMES = ["docker-stack", "apache-airflow-providers"] diff --git a/dev/breeze/tests/test_packages.py b/dev/breeze/tests/test_packages.py index fcf0c56920f5f..e2f70c6df98fe 100644 --- a/dev/breeze/tests/test_packages.py +++ b/dev/breeze/tests/test_packages.py @@ -84,6 +84,7 @@ def test_get_available_packages_include_non_provider_doc_packages_and_all_provid def test_get_short_package_name(): assert get_short_package_name("apache-airflow") == "apache-airflow" assert get_short_package_name("docker-stack") == "docker-stack" + assert get_short_package_name("task-sdk") == "task-sdk" assert get_short_package_name("apache-airflow-providers-amazon") == "amazon" assert get_short_package_name("apache-airflow-providers-apache-hdfs") == "apache.hdfs" @@ -96,6 +97,7 @@ def test_error_on_get_short_package_name(): def test_get_long_package_name(): assert get_long_package_name("apache-airflow") == "apache-airflow" assert get_long_package_name("docker-stack") == "docker-stack" + assert get_long_package_name("task-sdk") == "task-sdk" assert get_long_package_name("amazon") == "apache-airflow-providers-amazon" assert get_long_package_name("apache.hdfs") == "apache-airflow-providers-apache-hdfs" diff --git a/devel-common/src/sphinx_exts/airflow_intersphinx.py b/devel-common/src/sphinx_exts/airflow_intersphinx.py index da32bf796cf31..41f8d36659b8b 100644 --- a/devel-common/src/sphinx_exts/airflow_intersphinx.py +++ b/devel-common/src/sphinx_exts/airflow_intersphinx.py @@ -63,7 +63,7 @@ def _generate_provider_intersphinx_mapping() -> dict[str, tuple[str, tuple[str, provider_base_url, (doc_inventory.as_posix() if doc_inventory.exists() else cache_inventory.as_posix(),), ) - for pkg_name in ["apache-airflow", "helm-chart"]: + for pkg_name in ["apache-airflow", "helm-chart", "task-sdk"]: if os.environ.get("AIRFLOW_PACKAGE_NAME") == pkg_name: continue doc_inventory = GENERATED_PATH / "_build" / "docs" / pkg_name / current_version / "objects.inv" diff --git a/devel-common/src/sphinx_exts/docs_build/dev_index_template.html.jinja2 b/devel-common/src/sphinx_exts/docs_build/dev_index_template.html.jinja2 index f4a4dcabb5364..d5ea9176756cb 100644 --- a/devel-common/src/sphinx_exts/docs_build/dev_index_template.html.jinja2 +++ b/devel-common/src/sphinx_exts/docs_build/dev_index_template.html.jinja2 @@ -55,19 +55,16 @@

-
-
-

Providers packages

-

- Providers packages include integrations with third party integrations. They are updated independently of the Apache Airflow core. -

- + +
+
+

Task SDK

+

+ Task-SDK interface that is used to communicate with airflow core from other components. +

+
-
+
Docker - logo @@ -90,6 +87,19 @@

+
+
+

Providers packages

+

+ Providers packages include integrations with third party integrations. They are updated independently of the Apache Airflow core. +

+ +
+
diff --git a/devel-common/src/sphinx_exts/docs_build/docs_builder.py b/devel-common/src/sphinx_exts/docs_build/docs_builder.py index 684ea033a8664..1f410fdfe7b22 100644 --- a/devel-common/src/sphinx_exts/docs_build/docs_builder.py +++ b/devel-common/src/sphinx_exts/docs_build/docs_builder.py @@ -49,6 +49,7 @@ def __init__(self, package_name: str) -> None: self.is_airflow = False self.is_chart = False self.is_docker_stack = False + self.is_task_sdk = False self.is_providers_summary = False self.is_autobuild = False if self.package_name.startswith("apache-airflow-providers-"): @@ -61,6 +62,8 @@ def __init__(self, package_name: str) -> None: self.is_airflow = True if self.package_name == "helm-chart": self.is_chart = True + if self.package_name == "task-sdk": + self.is_task_sdk = True if self.package_name == "docker-stack": self.is_docker_stack = True if self.package_name == "apache-airflow-providers": diff --git a/devel-common/src/sphinx_exts/docs_build/fetch_inventories.py b/devel-common/src/sphinx_exts/docs_build/fetch_inventories.py index 2114e3e7393de..7975b81f6a1a1 100644 --- a/devel-common/src/sphinx_exts/docs_build/fetch_inventories.py +++ b/devel-common/src/sphinx_exts/docs_build/fetch_inventories.py @@ -94,7 +94,7 @@ def _is_outdated(path: str): def should_be_refreshed(pkg_name: str, refresh_airflow_inventories: bool) -> bool: - if pkg_name in ["helm-chart", "docker-stack"] or pkg_name.startswith("apache-airflow"): + if pkg_name in ["helm-chart", "docker-stack", "task-sdk"] or pkg_name.startswith("apache-airflow"): return refresh_airflow_inventories return False @@ -117,7 +117,7 @@ def fetch_inventories(clean_build: bool, refresh_airflow_inventories: bool = Fal (CACHE_PATH / pkg_name / "objects.inv").as_posix(), ) ) - for pkg_name in ["apache-airflow", "helm-chart"]: + for pkg_name in ["apache-airflow", "helm-chart", "task-sdk"]: to_download.append( ( pkg_name, diff --git a/devel-common/src/sphinx_exts/docs_build/package_filter.py b/devel-common/src/sphinx_exts/docs_build/package_filter.py index acdd0407ef246..f4d7c037232cf 100644 --- a/devel-common/src/sphinx_exts/docs_build/package_filter.py +++ b/devel-common/src/sphinx_exts/docs_build/package_filter.py @@ -58,6 +58,8 @@ def find_packages_to_build(available_packages: list[str], package_filters: list[ package_name = "apache-airflow" elif folder_name == "chart": package_name = "helm-chart" + elif folder_name == "task-sdk": + package_name = "task-sdk" else: try: import tomllib diff --git a/task-sdk/docs/conf.py b/task-sdk/docs/conf.py index 44f9d691b5f48..b83fe2f1578fb 100644 --- a/task-sdk/docs/conf.py +++ b/task-sdk/docs/conf.py @@ -18,6 +18,7 @@ # under the License. from __future__ import annotations +import os import sys from pathlib import Path @@ -35,9 +36,17 @@ sys.path.insert(0, str(CONF_DIR.parent.parent.joinpath("devel-common", "src", "sphinx_exts").resolve())) sys.path.insert(0, str(CONF_DIR.parent.joinpath("src").resolve())) +PACKAGE_NAME = "task-sdk" +os.environ["AIRFLOW_PACKAGE_NAME"] = PACKAGE_NAME + PACKAGE_VERSION = airflow.sdk.__version__ project = "Apache Airflow Task SDK" +# # The version info for the project you're documenting +version = PACKAGE_VERSION +# The full version, including alpha/beta/rc tags. +release = PACKAGE_VERSION + language = "en" locale_dirs: list[str] = []