mirror of
https://github.com/home-assistant/supervisor.git
synced 2026-07-06 21:35:10 +01:00
206c37fa0a2edd02fb8daf0fa3ccea92f2e117ba
Investigating slow-callback warnings during `ha store list`, py-spy traces showed ~70% of the on-CPU time spent under loop debug mode in traceback.extract_stack() and linecache.checkcache(), triggered by N task creations inside _all_store_apps_info()'s asyncio.gather. In the non-extended path, _generate_app_information() never awaits, so each gather'd coroutine runs straight through in its Task step. gather provides zero concurrency here and only adds N task creations + scheduling cycles. Under loop.set_debug(True) (supervisor dev mode) each create_task captures its creation stack via extract_stack(), which made list responses ~5x slower. Production overhead is negligible. Replace with a plain async list comprehension. Behavior is unchanged: the non-extended path was already serial; the extended path's await app.long_description() still serializes the same way it would have once gather observed the suspension.
Home Assistant Supervisor
First private cloud solution for home automation
Home Assistant (former Hass.io) is a container-based system for managing your Home Assistant Core installation and related applications. The system is controlled via Home Assistant which communicates with the Supervisor. The Supervisor provides an API to manage the installation. This includes changing network settings or installing and updating software.
Installation
Installation instructions can be found at https://home-assistant.io/getting-started.
Development
For small changes and bugfixes you can just follow this, but for significant changes open a RFC first. Development instructions can be found here.
Release
Releases are done in 3 stages (channels) with this structure:
- Pull requests are merged to the
mainbranch. - A new build is pushed to the
devstage. - Releases are published.
- A new build is pushed to the
betastage. - The
stable.jsonfile is updated. - The build that was pushed to
betawill now be pushed tostable.
Description
Languages
Python
95.8%
JavaScript
4%
