J. Nick Koston
c062c1ddbd
[lvgl] Hoist lazy_once import, document thread-safety
...
Addresses two stylistic notes on the PR:
- Move `from ..helpers import lazy_once` to module scope in
widgets/__init__.py. helpers.py only depends on esphome and
esphome.const, so there's no circular-import risk that would justify
the function-local import. Keep the `from ..schemas import
base_update_schema` deferred because schemas.py imports WidgetType
from this module.
- Document that lazy_once is single-threaded and retries build() on
exception (no negative-cache), so future callers know the contract
if the helper migrates to esphome/core/helpers.py.
2026-05-16 17:00:22 -07:00
J. Nick Koston
fabc1b584f
[lvgl] Extract lazy_once helper to share the build-once pattern
...
Both container_schema and _lazy_update_schema implement the same
"build the voluptuous schema on first call and cache the result"
closure. Factor it out into lazy_once() in helpers.py so the pattern
only lives in one place.
No behavioral change; lvgl test configs still pass and import time is
unchanged from the previous commit (~215ms cold on M-series Mac).
2026-05-16 15:28:12 -07:00
J. Nick Koston
3cee06e930
[lvgl] Build container_schema and widget update schemas lazily
...
Voluptuous schema construction inside container_schema() and the
register_action() chain in WidgetType.__init__ dominates cold-validate
time for any YAML that imports the lvgl component. cProfile of a cold
`import esphome.components.lvgl` shows ~225ms cumulative inside
container_schema (9 callers) and ~196ms cumulative inside
base_update_schema (30 callers, one per widget type), out of ~400ms
total.
Defer both: container_schema now returns a validator that builds its
underlying schema on first call, and WidgetType registers a lazy
validator with register_action so base_update_schema is only evaluated
when an `lvgl.<widget>.update` action is actually validated.
Measured on M-series Mac, fresh subprocess, 5 cold imports:
Before: 389, 385, 389, 384, 380 ms (avg 385ms)
After: 229, 217, 218, 215, 215 ms (avg 219ms)
A 43% reduction in `import esphome.components.lvgl`. Real
`esphome -q config` on tests/components/lvgl/test.host.yaml drops from
~770ms to ~550ms (warm-cache subprocess). Extrapolated to slower
hardware (Celeron N5105 dashboard hosts) this is ~1.5s saved per cold
LVGL save.
Schema output is unchanged: lvgl test configs validate identically and
`script/build_language_schema.py` produces a byte-identical lvgl
sub-tree before vs after.
2026-05-16 15:03:33 -07:00
J. Nick Koston
7c5d5f75dc
[ci] Use larger app partition for esp32-s3-idf component test grouping ( #16430 )
2026-05-15 22:16:52 -07:00
dependabot[bot]
fb0bfea1c8
Bump aioesphomeapi from 45.0.1 to 45.0.2 ( #16469 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 22:06:33 -07:00
J. Nick Koston
48d17571c8
[tests] Mock determine_cpp_unit_tests in clang_tidy_mode tests ( #16456 )
2026-05-15 15:50:58 -07:00
Clyde Stubbs
df100681e0
[lvgl] Fix image define ( #16468 )
2026-05-15 22:36:53 +00:00
Clyde Stubbs
1a287bf785
[ft5x06] Fix setting calibration values ( #16446 )
2026-05-16 10:30:04 +12:00
dependabot[bot]
ff34e1061b
Bump resvg-py from 0.3.1 to 0.3.2 ( #16466 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 14:43:08 -07:00
dependabot[bot]
b78b78cbbb
Bump aioesphomeapi from 45.0.0 to 45.0.1 ( #16467 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 14:42:51 -07:00
dependabot[bot]
4c090c6b85
Bump github/codeql-action from 4.35.4 to 4.35.5 ( #16461 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 12:37:56 -07:00
dependabot[bot]
ec6669fa67
Bump requests from 2.34.1 to 2.34.2 ( #16460 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 12:37:41 -07:00
dependabot[bot]
59f8c1019f
Bump pytest-codspeed from 5.0.1 to 5.0.2 ( #16459 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-15 12:37:28 -07:00
david-collett
fb70095ba1
[esp32_ble_server] Fix incorrect BLECharacteristic read truncation ( #16420 ) ( #16422 )
...
Co-authored-by: Dave <dave@morty>
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-05-15 10:47:26 -07:00
Jonathan Swoboda
65d6bb18ed
[esp32_hosted][fingerprint_grow] Fix two remaining ESP32 toolchain warnings ( #16442 )
2026-05-15 17:32:51 +00:00
J. Nick Koston
47eb2adbf2
[core] Fix KeyError: 'esp32' on upload when validated-config cache is used ( #16457 )
2026-05-15 10:29:15 -07:00
J. Nick Koston
35631be260
[writer] Mark storage_should_clean as public API for device-builder ( #16443 )
2026-05-15 10:20:31 -07:00
J. Nick Koston
96106d25bc
[wifi] Refuse to compile when wifi_ssid is the device-builder placeholder ( #16444 )
2026-05-15 10:20:15 -07:00
J. Nick Koston
1674ed9744
[ci] Use uv for pip installs across CI workflows ( #16451 )
2026-05-15 10:18:27 -07:00
J. Nick Koston
46be0f4f62
[ci] Log top 30 pytest durations ( #16455 )
2026-05-15 10:18:07 -07:00
J. Nick Koston
ec1826a6ed
[yaml_util] Promote include-discovery helper, share it with bundle ( #16447 )
2026-05-15 10:17:50 -07:00
Simone Chemelli
8b3bc47547
[uptime] Update device_class for Uptime sensor ( #16434 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-05-15 17:16:01 +00:00
J. Nick Koston
4381a8baaa
[ci] pr-title-check: skip all bot authors, not just dependabot ( #16453 )
2026-05-15 09:59:35 -07:00
esphome[bot]
4189979391
Synchronise Device Classes from Home Assistant ( #16452 )
...
Co-authored-by: esphomebot <esphome@openhomefoundation.org >
2026-05-15 09:57:49 -07:00
J. Nick Koston
1b1e21d470
[ci] sync-device-classes: drop branch-switch hack, skip no-commit-to-branch instead ( #16450 )
2026-05-15 09:54:01 -07:00
J. Nick Koston
5b6c54c961
[ci] sync-device-classes: use uv for installs and skip pylint ( #16449 )
2026-05-15 09:45:11 -07:00
Jonathan Swoboda
ff968a4629
[ci] Fix sync-device-classes workflow (failing daily for weeks) ( #16448 )
2026-05-15 09:36:01 -07:00
Edward Firmo
d832ce51cd
[nextion] Replace connect_info vector with fixed-size field parser, always log device info ( #16059 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-05-14 22:42:10 -05:00
Kevin Ahrendt
d663d80fde
[sound_level] Use RingBufferAudioSource ( #16436 )
2026-05-14 20:33:36 -07:00
Kevin Ahrendt
c5c627d534
[audio] Bump microMP3 to v0.2.1 ( #16429 )
2026-05-14 20:31:11 -07:00
Jonathan Swoboda
d046dd7276
[esp32_hosted] Bump esp_hosted to 2.12.7 ( #16440 )
2026-05-14 22:51:14 -04:00
Jonathan Swoboda
56983f414f
[espidf] Gate esp_idf_size --ng on IDF version ( #16441 )
2026-05-14 22:41:36 -04:00
Jonathan Swoboda
a92b607754
[ci] Add ci-run-all label to force full CI matrix ( #16421 )
2026-05-14 18:54:13 -04:00
Jonathan Swoboda
313d974983
[multiple] Fix -Wformat= mismatches in component .cpp sources ( #16433 )
2026-05-14 18:53:42 -04:00
Jonathan Swoboda
1d86d856d1
[docker] Install libusb-1.0 so ESP-IDF tools can validate openocd ( #16424 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-14 15:51:59 -07:00
Jonathan Swoboda
1bb191aa77
[ci] Skip dashboard-deprecation bot on release/beta-bump PRs ( #16427 )
2026-05-14 15:51:36 -07:00
dependabot[bot]
5d9d6e83f7
Bump ruff from 0.15.12 to 0.15.13 ( #16437 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-14 15:41:32 -07:00
Jonathan Swoboda
f3d7743460
[tests] Fix -Wformat= mismatches in test YAML lambdas/logger.log ( #16435 )
2026-05-14 18:40:40 -04:00
Jonathan Swoboda
f291dc8d2f
[esp32] Sweep ESP-IDF toolchain warnings + bump deprecated mark_failed ( #16432 )
2026-05-14 18:39:16 -04:00
Jonathan Swoboda
a8e69a15e4
[clang-tidy] Enable readability-container-contains ( #16438 )
2026-05-14 18:38:09 -04:00
Keith Burzinski
7436d1c199
[tinyusb] Reject logger.hardware_uart: USB_CDC ( #16417 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 20:29:56 +00:00
Keith Burzinski
348b92910e
[tinyusb] Reject tinyusb: configured without a USB class companion ( #16413 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-14 15:07:38 -05:00
Jonathan Swoboda
f89a6f4f9c
[espidf] Trim has_outdated_files watch list; embed IDF version in sdkconfig ( #16416 )
2026-05-14 04:02:22 +00:00
Jesse Hills
c3ee962b83
Merge branch 'beta' into dev
2026-05-14 15:25:38 +12:00
Jesse Hills
59847d56e8
Merge pull request #16411 from esphome/bump-2026.5.0b1
...
2026.5.0b1
2026.5.0b1
2026-05-14 15:24:58 +12:00
Jonathan Swoboda
e593cb6efc
[espidf] Stop perpetual reconfigure loop on native ESP-IDF builds ( #16415 )
2026-05-13 23:19:30 -04:00
J. Nick Koston
d2107e40c8
[ci] Prohibit curly braces in PR titles for MDX safety ( #16412 )
2026-05-14 14:03:45 +12:00
Jesse Hills
09a926fa13
Bump version to 2026.5.0b1
2026-05-14 12:33:43 +12:00
Jesse Hills
78b60ac6fa
Bump version to 2026.6.0-dev
2026-05-14 12:33:43 +12:00
Jonathan Swoboda
a3b6f92433
[espidf] Regenerate bundled CMakeLists; auto-REQUIRE via IDF build properties ( #16406 )
2026-05-13 23:58:48 +00:00