Skip to content

Commit bfebf21

Browse files
committed
Resolve the ts-sdk version in publish-docs when no stable.txt is staged
publish-docs resolves every package's version up front via get_package_version_possibly_from_stable_txt, which knew nothing about ts-sdk, so the "Publish documentation and validate versions" CI job failed with "Unsupported package: ts-sdk". Fall back to the version in ts-sdk/package.json the same way task-sdk falls back to its source version, matching what DocsPublisher already does.
1 parent 612b144 commit bfebf21

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

dev/breeze/src/airflow_breeze/commands/release_management_commands.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
get_airflow_version,
106106
get_airflowctl_version,
107107
get_task_sdk_version,
108+
get_ts_sdk_version,
108109
)
109110
from airflow_breeze.params.build_ci_params import BuildCiParams
110111
from airflow_breeze.params.shell_params import ShellParams
@@ -2037,6 +2038,9 @@ def get_package_version_possibly_from_stable_txt(package_name: str) -> str | Non
20372038
if package_name == "task-sdk":
20382039
return get_task_sdk_version()
20392040

2041+
if package_name == "ts-sdk":
2042+
return get_ts_sdk_version()
2043+
20402044
if package_name == "helm-chart":
20412045
return chart_version()
20422046

dev/breeze/tests/test_release_management_commands.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import pytest
2323

24+
from airflow_breeze import global_constants
2425
from airflow_breeze.commands import release_management_commands
2526
from airflow_breeze.commands.release_management_commands import (
2627
ISSUE_MATCH_IN_BODY,
@@ -295,6 +296,29 @@ def test_get_package_version_possibly_from_stable_txt_for_java_sdk(
295296
assert get_package_version_possibly_from_stable_txt("java-sdk") == expected_version
296297

297298

299+
@pytest.mark.parametrize(
300+
("stable_txt_content", "expected_version"),
301+
[
302+
# No stable.txt staged (docs not built for this ref) -> version read from ts-sdk/package.json
303+
(None, "0.2.0-alpha.1"),
304+
("0.1.0\n", "0.1.0"),
305+
],
306+
)
307+
def test_get_package_version_possibly_from_stable_txt_for_ts_sdk(
308+
tmp_path: Path, monkeypatch, stable_txt_content: str | None, expected_version: str
309+
):
310+
monkeypatch.setattr(release_management_commands, "AIRFLOW_ROOT_PATH", tmp_path)
311+
monkeypatch.setattr(global_constants, "AIRFLOW_ROOT_PATH", tmp_path)
312+
package_json = tmp_path / "ts-sdk" / "package.json"
313+
package_json.parent.mkdir(parents=True)
314+
package_json.write_text('{"name": "@apache-airflow/ts-sdk", "version": "0.2.0-alpha.1"}\n')
315+
if stable_txt_content is not None:
316+
stable_txt = tmp_path / "generated" / "_build" / "docs" / "ts-sdk" / "stable.txt"
317+
stable_txt.parent.mkdir(parents=True)
318+
stable_txt.write_text(stable_txt_content)
319+
assert get_package_version_possibly_from_stable_txt("ts-sdk") == expected_version
320+
321+
298322
@pytest.mark.parametrize(
299323
("body", "expected"),
300324
[

0 commit comments

Comments
 (0)