From a81f2a63c0ba47884c3ceb49373f991c67e4b25b Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Sun, 21 Dec 2025 15:24:56 +0100 Subject: [PATCH] Ensure all base component dependencies are added (#157428) --- requirements.txt | 31 +++++++++++++++++++------------ script/gen_requirements_all.py | 25 ++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/requirements.txt b/requirements.txt index 816829ad137..56039acef03 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,38 +5,45 @@ # Home Assistant Core aiodns==3.6.1 aiohasupervisor==0.3.3 +aiohttp-asyncmdnsresolver==0.1.1 +aiohttp-fast-zlib==0.3.0 aiohttp==3.13.2 aiohttp_cors==0.8.1 -aiohttp-fast-zlib==0.3.0 -aiohttp-asyncmdnsresolver==0.1.1 aiozoneinfo==0.2.3 annotatedyaml==1.0.2 astral==2.2 async-interrupt==1.2.2 -attrs==25.4.0 atomicwrites-homeassistant==1.4.1 +attrs==25.4.0 audioop-lts==0.2.1 awesomeversion==25.8.0 bcrypt==5.0.0 certifi>=2021.5.30 ciso8601==2.3.3 cronsim==2.7 +cryptography==46.0.2 fnv-hash-fast==1.6.0 +ha-ffmpeg==3.2.2 hass-nabucasa==1.7.0 -httpx==0.28.1 +hassil==3.5.0 home-assistant-bluetooth==1.13.1 +home-assistant-intents==2025.12.2 +httpx==0.28.1 ifaddr==0.2.0 Jinja2==3.1.6 lru-dict==1.3.0 -PyJWT==2.10.1 -cryptography==46.0.2 -Pillow==12.0.0 -propcache==0.4.1 -pyOpenSSL==25.3.0 +mutagen==1.47.0 orjson==3.11.3 packaging>=23.1 +Pillow==12.0.0 +propcache==0.4.1 psutil-home-assistant==0.0.1 +PyJWT==2.10.1 +pyOpenSSL==25.3.0 +pysilero-vad==3.0.1 +pyspeex-noise==1.0.2 python-slugify==8.0.4 +PyTurboJPEG==1.8.0 PyYAML==6.0.3 requests==2.32.5 securetar==2025.2.1 @@ -47,9 +54,9 @@ typing-extensions>=4.15.0,<5.0 ulid-transform==1.5.2 urllib3>=2.0 uv==0.9.17 -voluptuous==0.15.2 -voluptuous-serialize==2.7.0 voluptuous-openapi==0.1.0 -yarl==1.22.0 +voluptuous-serialize==2.7.0 +voluptuous==0.15.2 webrtc-models==0.3.0 +yarl==1.22.0 zeroconf==0.148.0 diff --git a/script/gen_requirements_all.py b/script/gen_requirements_all.py index cc89285302a..29c0e835b26 100755 --- a/script/gen_requirements_all.py +++ b/script/gen_requirements_all.py @@ -350,6 +350,24 @@ def gather_modules() -> dict[str, list[str]] | None: return reqs +def gather_entity_platform_requirements() -> set[str]: + """Gather all of the requirements from manifests for entity platforms.""" + config = _get_hassfest_config() + integrations = Integration.load_dir(config.core_integrations_path, config) + reqs = set() + for domain in sorted(integrations): + integration = integrations[domain] + + if integration.disabled: + continue + + if integration.integration_type != "entity": + continue + + reqs.update(gather_recursive_requirements(integration.domain)) + return reqs + + def gather_requirements_from_manifests( errors: list[str], reqs: dict[str, list[str]] ) -> None: @@ -432,7 +450,12 @@ def requirements_output() -> str: "\n", "# Home Assistant Core\n", ] - output.append("\n".join(core_requirements())) + + requirements = set() + requirements.update(core_requirements()) + requirements.update(gather_entity_platform_requirements()) + + output.append("\n".join(sorted(requirements, key=lambda key: key.lower()))) output.append("\n") return "".join(output)