From c48ed284704e2ca2454017e9084e45f586b1ca95 Mon Sep 17 00:00:00 2001
From: Jarek Potiuk
Date: Fri, 4 Jul 2025 21:36:29 +0200
Subject: [PATCH] Turn task-sdk into peer-citizen same as other doc packages
The task-sdk package did not have full integration with airflow
docs:
* did not have inventory mapping
* did not have a way to refer to it via doc:`task-sdk:` directive
8 did not have a development link from the devel index
This PR fixes all that.
---
airflow-core/docs/index.rst | 2 +-
.../utils/publish_docs_to_s3.py | 2 +-
dev/breeze/tests/test_packages.py | 2 ++
.../src/sphinx_exts/airflow_intersphinx.py | 2 +-
.../docs_build/dev_index_template.html.jinja2 | 34 ++++++++++++-------
.../sphinx_exts/docs_build/docs_builder.py | 3 ++
.../docs_build/fetch_inventories.py | 4 +--
.../sphinx_exts/docs_build/package_filter.py | 2 ++
task-sdk/docs/conf.py | 9 +++++
9 files changed, 43 insertions(+), 17 deletions(-)
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 include integrations with third party integrations. They are updated independently of the Apache Airflow core.
-
-
+
+
+
+
+
+ Task-SDK interface that is used to communicate with airflow core from other components.
+
+
-
+

@@ -90,6 +87,19 @@
+
+
+
+
+ Providers packages include integrations with third party integrations. They are updated independently of the Apache Airflow core.
+
+
+
+