J. Nick Koston
8ec9305688
[api] Trim the encode helper comments
2026-09-07 10:48:18 +02:00
J. Nick Koston
490aca17e6
[api] Share the fixed32 emission between float and fixed32 fields
...
One helper next to the other precomputed tag paths decides how a
single byte tag fixed32 field is written; the float and fixed32 types
only differ in the value expression. Drop the non forced std::string
encode_string overload, which the generator never emits, and build the
generator tests from one block of field type constants.
2026-09-07 10:33:21 +02:00
J. Nick Koston
3b14f4dfc8
[api] Pass the encode cursor by value through the protobuf helpers
...
The ProtoEncode helpers took the write cursor by reference and a
bool force flag. At -Os the compiler outlines most of them, so every
call site had to keep pos in a stack slot and pass its address, plus
a constant for the flag. The helpers now take the cursor by value and
return the advanced cursor, so consecutive calls chain through the
return register; forced fields call a _force overload instead of
passing a flag.
The fixed32 writers use __builtin_memcpy, which stays a builtin under
ESP-IDF's -fno-builtin-memcpy, and are outlined on embedded targets so
each fixed32 or float field is a short call instead of an inline
memcpy call. Non-forced float and fixed32 fields with a single-byte
tag share the same writer behind a zero check.
Generated encode bodies shrink by 18 percent on an ESP32 IDF proxy
build (2360 to 1932 bytes for 27 messages); entity messages gain the
most, for example ListEntitiesSensorResponse::encode 190 to 134 bytes
and SensorStateResponse::encode 78 to 49 bytes.
2026-09-07 09:21:54 +02:00
Jesse Hills
d58b37faa1
[esp32_hosted] Add ESP-NOW-over-hosted shim for the ESP32-P4 ( #17712 )
2026-09-07 10:29:20 +12:00
Bonne Eggleston
afb0022dd0
[core] Lint: require braces around single ESP_LOG control-statement bodies ( #18727 )
2026-09-01 11:53:39 +12:00
J. Nick Koston
1ba1aebfa1
[ci] Balance integration test buckets by recorded durations ( #18895 )
2026-08-31 13:20:47 -05:00
J. Nick Koston
fc977b7b5e
[ci] Cache the integration test PlatformIO dir ( #18896 )
2026-08-30 17:34:32 -05:00
J. Nick Koston
ce163b8258
[ci] Cache clang-tidy idedata and key ESP-IDF cache on Python version ( #18868 )
2026-08-28 20:41:57 -05:00
Jesse Hills
2031be0c23
[core] Make script/setup idempotent and prepare new worktrees ( #18843 )
2026-08-28 14:11:38 +12:00
J. Nick Koston
a8094ed548
[docker] Parallelize the image's PlatformIO library preinstall ( #18777 )
2026-08-27 14:45:47 +12:00
J. Nick Koston
e53870085b
[improv_serial] Add uart bus support and host integration test ( #18794 )
2026-08-26 21:13:47 -05:00
J. Nick Koston
145373ed13
[api] Widen message type storage to uint16_t ( #18526 )
2026-08-25 18:04:41 +00:00
J. Nick Koston
49fc4be861
[ci] Run C++ unit tests when a component's Python or test override changes ( #18706 )
2026-08-24 12:18:17 -05:00
J. Nick Koston
5f6a910e2d
[core] Harden the shared library converter ( #18685 )
2026-08-23 22:24:12 -05:00
J. Nick Koston
9974ad97fa
[core] Extract the shared idedata and size-summary helpers into build_helpers ( #18661 )
2026-08-23 21:59:19 -05:00
J. Nick Koston
d877fb021c
[time] Remove C++ POSIX TZ string parser ( #18383 )
2026-08-24 13:24:00 +12:00
Jonathan Swoboda
476d540065
[ci] Fall back to files API when PR diff exceeds GitHub line limit ( #18486 )
2026-08-18 10:22:28 -04:00
J. Nick Koston
fffa902a1a
[gpio_expander][pcf8574][pca9554][tca9555][pca6416a][pi4ioe5v6408][mcp23016][mcp23xxx_base] Reject unsupported interrupt_pin options (inverted, allow_other_uses) ( #18472 )
2026-08-18 13:32:03 +12:00
J. Nick Koston
27483a4101
[core] Retry gh CLI calls on transient network errors in CI scripts ( #18292 )
2026-08-17 13:15:31 -05:00
J. Nick Koston
945c2458b3
[core] Load component aliases from a generated registry ( #18335 )
2026-08-13 13:31:19 -05:00
J. Nick Koston
37eae9b466
[api] Gate the bluetooth connection messages on their own define ( #18281 )
2026-08-11 21:31:13 -05:00
Josef Zweck and J. Nick Koston
82a63658f9
[hoermann_hcp] Add Hörmann HCP garage door component ( #17355 )
...
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-08-10 17:20:20 -05:00
J. Nick Koston
d9567b2974
Normalize marker-wrapped callable keys in the schema dump ( #18218 )
2026-08-10 10:05:37 -05:00
J. Nick Koston
a7740091ec
[ci] Run CodSpeed benchmarks when top-level esphome Python modules change ( #18114 )
2026-08-05 20:50:13 -05:00
J. Nick Koston
f971e404c7
[core] Resolve GCC multilib include dirs for clang-tidy ( #18111 )
2026-08-05 19:09:13 -05:00
J. Nick Koston
d47acf5d0b
[core] Read the mqtt IP discovery flag without importing the mqtt component ( #18066 )
2026-08-04 15:12:57 -05:00
Jesse Hills
4ceae9cf85
[ci] Replace pre-commit with prek ( #18029 )
2026-08-04 16:18:46 +12:00
J. Nick Koston
4424af8c5b
[api] Move runtime log client out of the component package ( #18043 )
2026-08-03 19:57:52 -05:00
J. Nick Koston
ca1f89e500
[ci] Enable the ruff rule requiring explicit encoding on text file I/O ( #17897 )
2026-07-29 13:44:39 -04:00
J. Nick Koston
16930c4e2c
[ci] Read the GitHub event file as UTF-8 ( #17896 )
2026-07-27 17:33:08 -10:00
dependabot[bot] and Jonathan Swoboda
345bd11a2c
Bump ruff from 0.15.22 to 0.16.0 ( #17818 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-07-27 12:08:51 -04:00
Jonathan Swoboda
8a7d2d0ca0
[ci] Enforce list form for platform domains in test fixtures ( #17869 )
2026-07-26 19:01:15 -04:00
J. Nick Koston
37be04f58e
[core] Reduce memory footprint of esphome upload ( #17684 )
2026-07-21 12:21:12 -10:00
Jonathan Swoboda
ebaf32c82a
[ci] Add LibreTiny clang-tidy environments ( #17491 )
2026-07-17 21:38:55 -04:00
J. Nick Koston
14e71e190c
[ci] Restore memory impact detail for ESP-IDF builds ( #17587 )
2026-07-16 08:00:19 -04:00
Jonathan Swoboda
5a3c2f4d11
[ci] Add rp2 clang-tidy environment ( #17486 )
2026-07-15 21:17:21 -04:00
Jesse Hills
db9a09d05a
[script] Recursively expand nested packages when merging component tests ( #17557 )
2026-07-14 14:11:03 +12:00
Clyde Stubbs
5e3e2f82c9
[script] Fix duplicate import in build_codeowners.py ( #17543 )
2026-07-13 10:16:53 -04:00
Jesse Hills
4a82b10783
[ci] Group component test output into collapsible CI log sections ( #17536 )
2026-07-13 15:29:35 +12:00
Jonathan Swoboda
b3e03868b3
[mipi_rgb] Test in isolation to avoid bus/pin merge conflicts ( #17534 )
2026-07-13 12:00:22 +12:00
Jesse Hills
dd0d0942f5
[image] Restructure into a platform component ( #17416 )
2026-07-09 07:38:58 +12:00
Jesse Hills and Jonathan Swoboda
cdd334284e
[rp2] Rename rp2040 platform to rp2 ( #17145 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-07-07 08:20:24 +12:00
Clyde Stubbs
f6c260a2c5
[ci] Make import time budget more realistic ( #17406 )
2026-07-05 08:01:48 -04:00
Chris Boot and Claude Opus 4.8
8ab19c0242
[esp32] Add RTC-backed preferences (honor in_flash flag) ( #17073 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-05 11:48:30 +10:00
Jonathan Swoboda
5738c60206
[nrf52] Run clang-tidy against the native sdk-nrf toolchain ( #17364 )
2026-07-03 18:09:01 -04:00
Jonathan Swoboda
187cd51867
[ci] Carry native-toolchain needs on component test batches ( #17359 )
2026-07-03 13:47:08 -04:00
fd16eec416
[nrf52] switch nrf52 builds to native sdk by default ( #17319 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: ESPHome Device Builder <device-builder@esphome.io >
2026-07-03 12:16:55 -04:00
Jonathan Swoboda
3035355c0a
[ci] Widen import-time margin for CI runner variance ( #17287 )
2026-06-30 11:38:31 -04:00
Jonathan Swoboda
43b3aa0712
[ci] Fix nRF52 zigbee/network test-grouping conflict ( #17295 )
2026-06-30 11:37:59 -04:00
Bonne Eggleston and Claude Opus 4.8
9e72027b64
[devcontainer] Align base image with production, fix Python venv and build tools ( #17296 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 08:33:33 -04:00