J. Nick Koston
1652088009
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 15:21:04 -05:00
J. Nick Koston
4cbfdd3200
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
...
# Conflicts:
# tests/unit_tests/test_framework_helpers.py
2026-08-22 15:21:01 -05:00
J. Nick Koston
1f2b532394
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 15:20:42 -05:00
J. Nick Koston
520bf3f63b
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 15:20:42 -05:00
J. Nick Koston
1cf5df3d59
Merge the espidf parallel-prefetch branch and give library downloads its combined bar
...
Brings in #18513 (BatchDownloadProgress and the download_with_resume
progress callback) and extends the plumbing one level:
download_from_mirrors passes a progress callback to both target kinds,
Source/ConvertedLibrary.download thread it through, and the library
wave prefetch draws one combined bar sized by parallel HEAD requests
(no sizes, no bar). The thread-local bar suppression this replaces is
removed; a batch caller passing a tracker also owns the messaging, so
the per-file Downloading line only prints for solo downloads.
2026-08-22 15:19:58 -05:00
J. Nick Koston
a2a93cc186
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 15:03:21 -05:00
J. Nick Koston
6171561b70
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 15:03:21 -05:00
J. Nick Koston
35af304911
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 15:03:20 -05:00
J. Nick Koston
91836a8c69
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 15:03:20 -05:00
J. Nick Koston
f4482275cb
Pin sortedness on a nested fixture in the comment-order test
2026-08-22 15:03:07 -05:00
J. Nick Koston
4aba6c4670
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:54:58 -05:00
J. Nick Koston
d653a550bb
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:54:57 -05:00
J. Nick Koston
6f79518ee2
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:54:57 -05:00
J. Nick Koston
f599e37375
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:54:57 -05:00
J. Nick Koston
fd7e340e81
Type-hint the to_code test stub
2026-08-22 14:54:39 -05:00
J. Nick Koston
84a8ac3772
Use a docstring instead of pass in the to_code test stub
2026-08-22 14:54:24 -05:00
J. Nick Koston
961bff4790
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:52:40 -05:00
J. Nick Koston
cb02e15184
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:52:40 -05:00
J. Nick Koston
ab49aff931
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:52:39 -05:00
J. Nick Koston
910147139a
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:52:39 -05:00
J. Nick Koston
4a459e3d0d
Lift the remaining function-local imports in test_main to top level
2026-08-22 14:52:38 -05:00
J. Nick Koston
8a4ade10e6
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:49:42 -05:00
J. Nick Koston
8cffd44ffd
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:49:42 -05:00
J. Nick Koston
e16008fc58
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:49:42 -05:00
J. Nick Koston
35a1136bea
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:49:41 -05:00
J. Nick Koston
3b091676bf
Drop the unreachable nameless-dependency check in the walk
...
normalize_dependencies guarantees every entry carries a non-empty
string name, so only the version can be absent.
2026-08-22 14:49:39 -05:00
J. Nick Koston
622be18709
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:44:17 -05:00
J. Nick Koston
ade6dbabae
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:44:17 -05:00
J. Nick Koston
182dc7f636
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:44:17 -05:00
J. Nick Koston
d7af5f37b6
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:44:17 -05:00
J. Nick Koston
121795fa8d
Trim comment and docstring essays
2026-08-22 14:44:12 -05:00
J. Nick Koston
4e48764bbe
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:41:34 -05:00
J. Nick Koston
deecfade13
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:41:34 -05:00
J. Nick Koston
ec237a2d06
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:41:33 -05:00
J. Nick Koston
a2267eb686
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:41:33 -05:00
J. Nick Koston
dbd6f323c0
Extract the build-info staleness check so its branches are testable
...
copy_src_tree is always mocked in the writer tests, so the new
missing/stale/unreadable debug branches were unreachable; the decision
moves into _build_info_stale with a test covering every branch.
2026-08-22 14:41:30 -05:00
J. Nick Koston
62a4cb3fe4
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:38:09 -05:00
J. Nick Koston
d3eaac6f47
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:38:08 -05:00
J. Nick Koston
2eec194d87
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
...
# Conflicts:
# tests/unit_tests/test_main.py
2026-08-22 14:38:04 -05:00
J. Nick Koston
3a9a6edc0e
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:37:46 -05:00
J. Nick Koston
11875ec040
Dump the main.cpp config comment with sorted keys
...
voluptuous fills schema defaults in set-iteration order, so the
validated dict's key order changes with the process hash seed; the
unsorted dump churned the comment block in main.cpp and relinked the
firmware on every esphome run for any config using a defaults-heavy
action (logger.log in a button's on_press was enough). Affects the
PlatformIO path identically.
2026-08-22 14:37:42 -05:00
J. Nick Koston
51221688f6
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:31:39 -05:00
J. Nick Koston
f695e9dceb
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 14:31:39 -05:00
J. Nick Koston
d8f6368716
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:31:38 -05:00
J. Nick Koston
a97b836012
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:31:38 -05:00
J. Nick Koston
afeb1a5ea1
Name the changed source when the writer flags a rebuild
...
Every sources_changed site now logs which file (or which build-info
staleness) triggered it, so a config that relinks on every run can be
diagnosed from one -v compile instead of diffing the build tree.
2026-08-22 14:31:36 -05:00
J. Nick Koston
2d2750e031
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 14:11:40 -05:00
J. Nick Koston
0d508ccbc0
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
...
# Conflicts:
# tests/unit_tests/test_framework_helpers.py
2026-08-22 14:11:26 -05:00
J. Nick Koston
bf7a617934
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 14:11:02 -05:00
J. Nick Koston
803eef7de6
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 14:11:02 -05:00
J. Nick Koston
fb06b4d631
Download a wave of registry libraries in parallel
...
The walk now drains its frontier, prefetches the wave's registry
archives with a small thread pool (deduped by URL, progress bars
suppressed per thread since parallel bars would interleave), and then
processes the wave sequentially; the sequential download() call stays
authoritative so failures surface with resume exactly as before. Same
approach as the espidf tool prefetch in #18513 .
2026-08-22 14:10:40 -05:00
J. Nick Koston
ae2893992a
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 13:51:47 -05:00
J. Nick Koston
6b46e9fd03
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 13:51:47 -05:00
J. Nick Koston
2f053371ce
Guard the honored board_build branch against the empty-list form
...
voluptuous accepts [] for [cv.string], so vals[-1] could raise an
IndexError at codegen time; an empty list now falls through to the
ignored-option warning.
2026-08-22 13:51:35 -05:00
J. Nick Koston
3bd4cdb760
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 13:15:59 -05:00
J. Nick Koston
9533c09b69
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 13:15:59 -05:00
J. Nick Koston
2dac9112be
Pin the scalar shape for the honored board_build options; note the dispatch coupling
...
The schema permits the list form, so the routing now stores the last
value (like a later platformio.ini line) and the generator always sees a
scalar. The using_native_toolchain docstring points at write_cpp_file's
dispatch so NATIVE_TOOLCHAINS membership and the project-writing branch
flip together.
2026-08-22 13:15:47 -05:00
J. Nick Koston
478584354e
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 12:52:52 -05:00
J. Nick Koston
9c7f68b813
Hoist the boolean spelling tables to helpers so cv.boolean and the env parser share one source
...
cv.boolean's inline tuples and the ccache env tables were two copies of
the same spellings; TRUTHY_BOOL_STRINGS/FALSY_BOOL_STRINGS now live in
esphome/helpers.py, cv.boolean consumes them, and parse_enable_env
derives its tables by adding the 1/0 env convention.
2026-08-22 12:52:38 -05:00
J. Nick Koston
b62d59ca26
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 12:47:07 -05:00
J. Nick Koston
e52703617e
Name the env boolean spelling tables like device-builder does
...
parse_enable_env's inline tuples become TRUTHY_ENV_STRINGS and
FALSY_ENV_STRINGS frozensets mirroring cv.boolean's spellings (enable
and disable included) plus the 1/0 env convention, matching
device-builder's TRUTHY_BOOL_STRINGS pattern.
2026-08-22 12:47:05 -05:00
J. Nick Koston
57cbadbe9f
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 12:46:30 -05:00
J. Nick Koston
a6ca775a48
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 12:46:29 -05:00
J. Nick Koston
315f41e884
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 12:46:29 -05:00
J. Nick Koston
65609bb94b
Move the backend-agnostic library hardening down from the arduino backend PR
...
The typed IncompatiblePlatform exception, dependency_is_usable,
warn_properties_depends, the lex_build_flags helper (espidf switches to
it), the normalize_dependencies validation, the manifest shape check,
the component-level drop-warning split, and the SCons case-sensitive
.C/.C++ suffixes all harden the shared converter independently of the
arduino backend, so they belong in this PR; the provides hook and the
version-less reconciliation stay with the backend that needs them.
2026-08-22 12:46:16 -05:00
J. Nick Koston
4a1138820d
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 12:15:39 -05:00
J. Nick Koston
7c07276c71
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 12:15:38 -05:00
J. Nick Koston
60cf44de3b
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 12:15:38 -05:00
J. Nick Koston
072b65c0e2
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 12:15:38 -05:00
J. Nick Koston
f71867ed2d
Merge remote-tracking branch 'origin/dev' into esp8266-native-shared-helpers
2026-08-22 12:15:30 -05:00
J. Nick Koston
9676e0c0f0
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 11:55:58 -05:00
J. Nick Koston
cedecf1f83
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 11:55:58 -05:00
J. Nick Koston
f28be76c84
Fix comment drift: conditional cache refresh, future-tense generator consumer
2026-08-22 11:55:15 -05:00
J. Nick Koston
cdde9dd230
Trim comment essays and hoist function-local test imports
2026-08-22 11:39:54 -05:00
J. Nick Koston
935db6a63c
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-22 11:38:49 -05:00
J. Nick Koston
90b29e231d
Trim comment essays and hoist function-local test imports
2026-08-22 11:38:46 -05:00
J. Nick Koston
315abf21f8
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-22 11:37:21 -05:00
J. Nick Koston
24e5b1800f
Trim comment essays and hoist function-local test imports
2026-08-22 11:37:16 -05:00
J. Nick Koston
11eca53a18
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-22 11:35:41 -05:00
J. Nick Koston
f08e06f574
Trim comment essays and hoist function-local test imports
2026-08-22 11:35:35 -05:00
J. Nick Koston
27f4db8458
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 11:34:57 -05:00
J. Nick Koston
e99e0cc8b8
Trim comment essays and hoist function-local test imports
2026-08-22 11:34:32 -05:00
J. Nick Koston
4eb31c45da
Isolate the preresolved-ccache test from ambient CCACHE_DIR, future-tense the sentinel comment
2026-08-21 21:27:49 -05:00
J. Nick Koston
4bea2dd058
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-21 21:01:47 -05:00
J. Nick Koston
db0e52a36b
Cover shell_token's Windows branch on the coverage-uploading runner
2026-08-21 21:01:37 -05:00
J. Nick Koston
6a963ba794
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-21 20:56:37 -05:00
J. Nick Koston
cbf9e0ab14
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-21 20:56:37 -05:00
J. Nick Koston
a527b21761
Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing
2026-08-21 20:56:36 -05:00
J. Nick Koston
4d63564cdd
Phrase the board-table regen comment imperatively
2026-08-21 20:56:27 -05:00
J. Nick Koston
012b571a2e
Make the ccache sentinel public; sibling modules pass it as a default
2026-08-21 20:55:07 -05:00
J. Nick Koston
4a16365f13
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-21 20:51:56 -05:00
J. Nick Koston
587873a2da
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-21 20:51:56 -05:00
J. Nick Koston
4101ad4fb1
One owner for the toolchain tool layout, thread a pre-resolved ccache
...
toolchain_tool carries the bin/xtensa-lx106-elf-<name> pattern and the
Windows suffix that four call sites previously spelled out (only one of
which handled the suffix). ccache_env and get_build_env accept the
already-resolved ccache path so run_compile can resolve once instead of
paying the PATH scan and runnability probe three times per build.
2026-08-21 20:46:10 -05:00
J. Nick Koston
e9d6132c61
Name the honored native-arduino pio options once
...
NATIVE_ARDUINO_PIO_OPTIONS is the single list the routing reads; the
backend's ignored-option warning consumes it too, so honoring a new key
is one edit instead of two synchronized ones.
2026-08-21 20:43:43 -05:00
J. Nick Koston
7298eed5b3
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-21 20:27:43 -05:00
J. Nick Koston
78a1e88915
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-21 20:27:43 -05:00
J. Nick Koston
d8c02221cc
Route board_build.ldscript through to the native ESP8266 generator too
...
Published configs override it to reserve a filesystem region
(SmartIntercom's eagle.flash.4m2m.ld) or to correct a board's assumed
flash size (2 MB ESP8285 plugs pinning eagle.flash.2m.ld); dropping it
changes the flash layout under them.
2026-08-21 20:27:33 -05:00
J. Nick Koston
76d8c9eb46
Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra
2026-08-21 20:25:32 -05:00
J. Nick Koston
a703acf85f
Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer
2026-08-21 20:25:32 -05:00
J. Nick Koston
7fb18f395f
Honor board_build.f_cpu under the native ESP8266 Arduino toolchain
...
Dropping it was a real regression: many published ESP8266 configs pin
board_build.f_cpu: 160000000L for timing-sensitive integrations
(MHI-AC-Ctrl documents the 160 MHz requirement in its example), and the
warn-and-drop left those devices at 80 MHz. The option now routes into
CORE.platformio_options under toolchain: arduino for the generator to
consume; other native toolchains keep the warning.
2026-08-21 20:25:23 -05:00