J. Nick Koston
1e9499d87d
Merge remote-tracking branch 'origin/dev' into esp8266-native-build-surgery
2026-08-25 13:20:50 -05:00
J. Nick Koston
3426eb2733
Merge remote-tracking branch 'origin/dev' into esp8266-native-build-surgery
2026-08-25 12:38:49 -05:00
J. Nick Koston
94b47496c8
Merge remote-tracking branch 'origin/dev' into esp8266-native-build-surgery
2026-08-25 12:37:36 -05:00
J. Nick Koston
515aa96844
Merge remote-tracking branch 'origin/dev' into esp8266-native-build-surgery
2026-08-25 10:47:44 -05:00
J. Nick Koston
802a14f90a
Hoist the test imports to module level
2026-08-24 18:53:36 -05:00
J. Nick Koston
69a3ab6fb1
Error instead of substituting a state-destroying layout on legacy cores, extract the ld choice, regroup KEY_LDSCRIPT, document segment_length's None
2026-08-24 18:51:10 -05:00
J. Nick Koston
2cd5db4854
Merge remote-tracking branch 'origin/esp8266-native-build-surgery' into esp8266-native-build-surgery
2026-08-24 18:47:58 -05:00
J. Nick Koston
767b60a914
Merge remote-tracking branch 'origin/dev' into esp8266-native-build-surgery
2026-08-24 18:46:55 -05:00
J. Nick Koston
7ca1b79544
Name the ldscript key, warn when a pre-2.4.2 core cannot honor it, pin the rule
...
KEY_LDSCRIPT replaces the bare literal at both the table entry and the
lookup, so a typo cannot silently fall back to the layout-moving
default; the regeneration recipe notes that overrides must survive a
refresh; a board pinning an override on an Arduino core <= 2.4.2 warns
that the layout cannot be honored; and board_ld_script gains the test
pinning d1_wroom_02's shipped layout and the size defaults.
2026-08-24 18:46:47 -05:00
J. Nick Koston
a25509bda0
Share the per-board ldscript rule via boards.board_ld_script
...
One source of truth for the PlatformIO pinning and the native
generator's fallback, so the per-board rule cannot drift.
2026-08-24 18:46:47 -05:00
J. Nick Koston
04825d3a58
Reconcile BOARDS with the generated table: d1_wroom_02 joins with its shipped flash layout
2026-08-24 18:46:47 -05:00
J. Nick Koston
e714848fb9
Trim comment essays and hoist function-local test imports
2026-08-24 18:46:47 -05:00
J. Nick Koston
d7ee824228
Phrase the board-table regen comment imperatively
2026-08-24 18:46:47 -05:00
J. Nick Koston
862b7f7c3e
Pin fingerprint stability and sensitivity behaviorally, note the platform pairing
2026-08-24 18:46:47 -05:00
J. Nick Koston
77c41d2579
State what the fingerprint test actually pins
2026-08-24 18:46:47 -05:00
J. Nick Koston
4d92741e69
Pin the decoy anchor, guard unselected segments, fingerprint the module source
2026-08-24 18:46:47 -05:00
J. Nick Koston
b2ac49d8a8
Anchor the segment regex, reject unknown segments, and pin real-script fixtures
2026-08-24 18:46:47 -05:00
J. Nick Koston
8fb6496583
Export a surgery fingerprint for linker-script cache stamps
2026-08-24 18:46:47 -05:00
J. Nick Koston
5f3d73720e
Patch exactly the named segments and share the segment-line pattern
2026-08-24 18:46:47 -05:00
J. Nick Koston
cdd8a16cb9
Add the ESP8266 linker-script surgery and board build metadata
2026-08-24 18:46:47 -05:00
J. Nick Koston
4efc3ecb70
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-24 16:00:08 -05:00
J. Nick Koston
4457158e3b
Merge remote-tracking branch 'origin/dev' into esp8266-native-shared-helpers
2026-08-24 15:59:59 -05:00
J. Nick Koston
ad437cbd15
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-24 15:58:30 -05:00
J. Nick Koston
7e236bc762
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-24 15:58:30 -05:00
J. Nick Koston
6eed2e5d2b
Merge remote-tracking branch 'origin/dev' into esp8266-native-library-converter
2026-08-24 15:58:21 -05:00
J. Nick Koston
454e380057
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-24 14:38:58 -05:00
J. Nick Koston
cd1e5aad67
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-24 14:38:58 -05:00
J. Nick Koston
a8c4018536
Merge remote-tracking branch 'origin/dev' into esp8266-native-library-converter
2026-08-24 14:38:49 -05:00
J. Nick Koston
200ee0c9c3
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-24 12:32:54 -05:00
J. Nick Koston
81c375af0b
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-24 12:32:53 -05:00
J. Nick Koston
3ca65ffb0d
Cover the file-like backoff tick, settle the batch worker return shape
2026-08-24 12:32:38 -05:00
J. Nick Koston
68b474fd00
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-24 12:20:18 -05:00
J. Nick Koston
efa7fae845
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-24 12:20:18 -05:00
J. Nick Koston
29c290166b
Apply simplify pass: flatten the batch worker, drop a dead guard, skip the unread backoff probe
2026-08-24 12:20:14 -05:00
J. Nick Koston
d348284d9e
Hoist the manifest shape gate into a helper
2026-08-24 12:17:05 -05:00
J. Nick Koston
3a248d526d
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 22:25:37 -05:00
J. Nick Koston
2f49405740
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 22:25:36 -05:00
J. Nick Koston
d418472a8f
Merge remote-tracking branch 'origin/dev' into esp8266-native-library-converter
...
# Conflicts:
# esphome/platformio/library.py
# tests/unit_tests/test_platformio_library.py
2026-08-23 22:25:22 -05:00
J. Nick Koston
7a715ee583
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 22:02:12 -05:00
J. Nick Koston
d8dc1dc70e
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 22:02:12 -05:00
J. Nick Koston
5479752da6
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 22:02:12 -05:00
J. Nick Koston
b0e4711cc3
Merge remote-tracking branch 'origin/esp8266-native-converter-hardening' into esp8266-native-converter-hardening
2026-08-23 22:01:59 -05:00
J. Nick Koston
d744a98f5b
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 22:00:34 -05:00
J. Nick Koston
a03945bbfb
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 22:00:34 -05:00
J. Nick Koston
bc2b4bd381
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 22:00:34 -05:00
J. Nick Koston
f8acaab6c1
Merge remote-tracking branch 'origin/dev' into esp8266-native-converter-hardening
...
# Conflicts:
# script/determine-jobs.py
# tests/script/test_determine_jobs.py
2026-08-23 22:00:22 -05:00
J. Nick Koston
5f2b8f7251
Type LINK_FLAGS in the gate, skip malformed transitive deps, escape quotes in zephyr CMake entries
2026-08-23 21:59:22 -05:00
J. Nick Koston
d80d2c7034
Tolerate malformed repository/description metadata instead of crashing
2026-08-23 21:59:22 -05:00
J. Nick Koston
1f5152892c
Give the fake env real membership, widen the manifest gate, route zephyr through the shared lexer
2026-08-23 21:59:22 -05:00
J. Nick Koston
89671f9e0d
Normalize captured CPPDEFINES to a CppDefine named tuple at capture time
2026-08-23 21:59:22 -05:00
J. Nick Koston
c6f9153e63
Route captured LINKFLAGS to the link line and make Prepend a real front-insert
2026-08-23 21:59:22 -05:00
J. Nick Koston
aa3268a6d8
Match SCons' remaining CPPDEFINES spellings, drop dead test scaffolding
...
A bare 2-tuple is one name=value pair (not -DFOO -D1), a dict maps
names to values, and a None value is a bare define, per processDefines.
The unused caplog_at_info helper and the progress kwarg the download
stubs declared ahead of their PR are gone.
2026-08-23 21:59:22 -05:00
J. Nick Koston
879cbf6264
Cover env access warnings and the unmodelled-subscript degrade
2026-08-23 21:59:22 -05:00
J. Nick Koston
4da8868510
Quote CPPDEFINES, warn on env access, degrade unmodelled subscripts, realify InvalidLibrary
...
CPPDEFINES joins the quoted buckets (a spaced define no longer splits
across tokens) and its tuple branch validates the pair elements. The
fake env warns on attribute access rather than call, so hasattr/
truthiness branches are diagnosable, with dunder probes excluded; an
unmodelled subscript warns and returns '' instead of a KeyError
discarding the whole capture. Malformed platforms/frameworks values
raise plain InvalidLibrary, giving the non-platform warning branches a
real producer, and their tests use real manifests instead of
monkeypatched raisers. The version-less dependency drop moves to debug:
bundled names (Wire, SPI) made it per-build noise nobody can act on.
2026-08-23 21:59:22 -05:00
J. Nick Koston
df76fc6fba
Trim comments and docstrings
2026-08-23 21:59:22 -05:00
J. Nick Koston
0d75f597b3
Harden the shared library converter
...
Split out of #18662 : the converter/manifest hardening without the
download parallelization, which stays there.
The PIO extra-script shim moves from espidf/ to platformio/ and gains
type checks for every manifest field, capture of the Append variants and
CPPPATH, warn-once diagnostics for unmodelled env reads, and uniform
shlex quoting so captured values survive the lex_build_flags round-trip.
The dependency walk normalizes every spelling PIO accepts, splits the
routine cross-platform skip (IncompatiblePlatform) from real manifest
problems, validates manifest shape once, and the shared flag lexer
warns and drops trailing or empty glued arguments.
2026-08-23 21:59:22 -05:00
J. Nick Koston
936bc708af
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 21:10:46 -05:00
J. Nick Koston
13dcf54a43
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 21:10:46 -05:00
J. Nick Koston
5bccc41ca3
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 21:10:46 -05:00
J. Nick Koston
5ba31dcccb
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 21:10:45 -05:00
J. Nick Koston
3fe4e255d8
Merge remote-tracking branch 'origin/dev' into esp8266-native-idedata-helpers
2026-08-23 21:10:35 -05:00
J. Nick Koston
67608f9386
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 19:38:32 -05:00
J. Nick Koston
5aaf5e8150
Parametrize the build-info staleness test
2026-08-23 19:33:08 -05:00
J. Nick Koston
5ce8c68df5
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 19:30:46 -05:00
J. Nick Koston
412b7a8b99
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 19:30:46 -05:00
J. Nick Koston
e594888176
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
...
# Conflicts:
# esphome/platformio/library.py
2026-08-23 19:30:35 -05:00
J. Nick Koston
6bdd8b1163
Type LINK_FLAGS in the gate, skip malformed transitive deps, escape quotes in zephyr CMake entries
2026-08-23 19:30:02 -05:00
J. Nick Koston
06e3525f82
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 18:58:59 -05:00
J. Nick Koston
476ec16a3d
Split the AS and ASPP source kinds to match SCons
2026-08-23 18:58:48 -05:00
J. Nick Koston
d9b3536e9f
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 18:45:14 -05:00
J. Nick Koston
0ed990e311
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 18:45:14 -05:00
J. Nick Koston
69d997521f
Guard the bar writes, narrow the cache probe, make a total prefetch failure loud
2026-08-23 18:45:02 -05:00
J. Nick Koston
4affd574ac
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 18:31:08 -05:00
J. Nick Koston
4840740032
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
...
# Conflicts:
# esphome/writer.py
2026-08-23 18:31:05 -05:00
J. Nick Koston
ae5e5b3011
Merge remote-tracking branch 'origin/dev' into esp8266-native-idedata-helpers
2026-08-23 18:30:06 -05:00
J. Nick Koston
3ab464c345
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 18:30:06 -05:00
J. Nick Koston
b74de2dfa2
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 18:30:06 -05:00
J. Nick Koston
7ea8892e0a
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 18:20:45 -05:00
J. Nick Koston
dce979245d
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 18:20:45 -05:00
J. Nick Koston
6e65634408
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 18:20:45 -05:00
J. Nick Koston
6300e9b72e
Tolerate malformed repository/description metadata instead of crashing
2026-08-23 18:20:43 -05:00
J. Nick Koston
cb4dd32e19
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 18:15:04 -05:00
J. Nick Koston
6381ed97b9
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 18:15:04 -05:00
J. Nick Koston
786e9ef278
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
...
# Conflicts:
# esphome/platformio/library.py
2026-08-23 18:14:53 -05:00
J. Nick Koston
24ce2195da
Merge remote-tracking branch 'origin/dev' into esp8266-native-idedata-helpers
2026-08-23 18:12:27 -05:00
J. Nick Koston
d5fe45db66
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 18:12:27 -05:00
J. Nick Koston
a027d06231
Give the fake env real membership, widen the manifest gate, route zephyr through the shared lexer
2026-08-23 18:12:14 -05:00
J. Nick Koston
8f7534f39a
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 17:27:06 -05:00
J. Nick Koston
6bac1ed950
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 17:27:05 -05:00
J. Nick Koston
57241e40b8
Make failure_reason public now that two modules import it, cover interrupt() on a finished bar
2026-08-23 17:26:47 -05:00
J. Nick Koston
76ddbe5ebd
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 17:17:59 -05:00
J. Nick Koston
81d9b943aa
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 17:17:59 -05:00
J. Nick Koston
28f0a7b155
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 17:17:59 -05:00
J. Nick Koston
531bd8ec62
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 17:17:59 -05:00
J. Nick Koston
40e6e406d7
Merge remote-tracking branch 'origin/dev' into esp8266-native-idedata-helpers
2026-08-23 17:17:52 -05:00
J. Nick Koston
6cfbe5b166
Normalize captured CPPDEFINES to a CppDefine named tuple at capture time
2026-08-23 17:15:29 -05:00
J. Nick Koston
b738b36a39
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 17:08:16 -05:00
J. Nick Koston
ac66e3a96c
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 17:08:16 -05:00
J. Nick Koston
e7fc3937bf
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 17:08:16 -05:00
J. Nick Koston
70f4555ec8
Route captured LINKFLAGS to the link line and make Prepend a real front-insert
2026-08-23 17:08:04 -05:00
J. Nick Koston
5f20ddb630
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:54:56 -05:00
J. Nick Koston
6cfb915aeb
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:54:56 -05:00
J. Nick Koston
04a44d6e63
Let ProgressBar own the mid-row interrupt, share the part-file naming, fold duplicate except arms
2026-08-23 16:54:33 -05:00
J. Nick Koston
cb10904fa3
Keep the combined bar steady during a backoff sleep
2026-08-23 16:49:54 -05:00
J. Nick Koston
89e5ba00de
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:35:58 -05:00
J. Nick Koston
81b1678498
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:35:56 -05:00
J. Nick Koston
ba0d9e77db
Never log a blank prefetch reason, keep the download error over a tick failure
...
Both prefetch warning loops format through _failure_reason so a
message-less exception cannot log blank. A bar-frame write failure in
the failure path cannot displace the download error, the failure list
is annotated BaseException (cancellations are entries too), the Ctrl-C
docstring notes an in-progress extraction runs to completion, and the
wave-prefetch docstring carries the superseded-sibling caveat.
2026-08-23 16:35:48 -05:00
J. Nick Koston
330f070921
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:31:12 -05:00
J. Nick Koston
f6ae5e4892
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:31:10 -05:00
J. Nick Koston
b0b174f3e2
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 16:31:08 -05:00
J. Nick Koston
d8857080f0
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 16:31:06 -05:00
J. Nick Koston
c285af3857
Cover the Flash line through the shared bar
2026-08-23 16:31:03 -05:00
J. Nick Koston
d7d236c6bc
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:25:22 -05:00
J. Nick Koston
de00530c0e
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:25:20 -05:00
J. Nick Koston
acf5ce718c
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 16:25:18 -05:00
J. Nick Koston
5904928f0c
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 16:25:16 -05:00
J. Nick Koston
dceeee69d3
Restore the size summary to its dev shape
...
The defensive spiral (#18668 , closed) guarded inputs that cannot occur:
gen_esp32part validates partitions.csv before a build can succeed, and
esp_idf_size.json's realistic failures do not produce the handled
shapes. This PR's real change stands alone again: the bar moves to
build_helpers as print_size_line, with dev behavior everywhere else.
2026-08-23 16:25:11 -05:00
J. Nick Koston
03c7d3b343
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:17:47 -05:00
J. Nick Koston
d405db1268
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:17:45 -05:00
J. Nick Koston
8cac10d319
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 16:17:43 -05:00
J. Nick Koston
030a3b7ab3
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 16:17:41 -05:00
J. Nick Koston
dfc26e9f09
Mirror the named-file arm and tightened checks
2026-08-23 16:17:37 -05:00
J. Nick Koston
4f9941decb
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:12:01 -05:00
J. Nick Koston
385681121f
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:11:59 -05:00
J. Nick Koston
c395861fa3
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 16:11:57 -05:00
J. Nick Koston
30b2bbfe3a
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 16:11:55 -05:00
J. Nick Koston
3af17d5c92
Mirror the named missing-table raise
2026-08-23 16:11:52 -05:00
J. Nick Koston
72d6864938
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:09:48 -05:00
J. Nick Koston
89ffacaffb
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:09:46 -05:00
J. Nick Koston
6eff668dba
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 16:09:44 -05:00
J. Nick Koston
350202efa6
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 16:09:42 -05:00
J. Nick Koston
14388c859a
Mirror the backstop-ownership trim from the standalone
2026-08-23 16:09:26 -05:00
J. Nick Koston
7061bd7e70
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 16:06:48 -05:00
J. Nick Koston
fe274653bd
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 16:06:46 -05:00
J. Nick Koston
7beb0078c2
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 16:06:44 -05:00
J. Nick Koston
e26dbb6d75
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 16:06:42 -05:00
J. Nick Koston
7aa0f30ceb
Mirror the unreachable-arm removal from the standalone
2026-08-23 16:06:38 -05:00
J. Nick Koston
438a4ddc14
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 15:59:01 -05:00
J. Nick Koston
5a749c4b5d
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 15:58:59 -05:00
J. Nick Koston
3de58dae99
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 15:58:57 -05:00
J. Nick Koston
fd2971bd70
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 15:58:55 -05:00
J. Nick Koston
8a9bb7741a
Mirror the truncated-size-report classification
2026-08-23 15:58:52 -05:00
J. Nick Koston
393dabadf8
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 15:52:30 -05:00
J. Nick Koston
56dc9124ab
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 15:52:28 -05:00
J. Nick Koston
92b655c5a0
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 15:52:26 -05:00
J. Nick Koston
c474421399
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 15:52:24 -05:00
J. Nick Koston
ca611a3159
Mirror the size-summary visibility refinements from the standalone
...
Corrupt shapes at any level warn as malformed while a simply-absent
DRAM/DIRAM region stays at debug, the backstop warning carries its
traceback, and the image_size warning names its file.
2026-08-23 15:51:30 -05:00
J. Nick Koston
6dbef0d0bb
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 15:45:46 -05:00
J. Nick Koston
832c6feecc
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 15:45:44 -05:00
J. Nick Koston
41b0fe6747
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 15:45:42 -05:00
J. Nick Koston
e580e267ce
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 15:45:40 -05:00
J. Nick Koston
d3590ffd7c
Port the standalone size-summary hardening into the chain copy
...
The full #18668 state, adapted to the shared bar: _ram_bar/_flash_bar
return validated (used, total) pairs printed through print_size_line,
the partition parser returns None for legitimate absence and raises
only for a broken table, skips follow the warn/debug visibility rule,
and run_compile passes the table path unconditionally. Ported now so
the merge-time conflict resolves itself; the chain-only exact-format
and RAM-vs-Flash isolation tests stay.
2026-08-23 15:45:36 -05:00
J. Nick Koston
54429bcdfb
Name the ldscript key, warn when a pre-2.4.2 core cannot honor it, pin the rule
...
KEY_LDSCRIPT replaces the bare literal at both the table entry and the
lookup, so a typo cannot silently fall back to the layout-moving
default; the regeneration recipe notes that overrides must survive a
refresh; a board pinning an override on an Arduino core <= 2.4.2 warns
that the layout cannot be honored; and board_ld_script gains the test
pinning d1_wroom_02's shipped layout and the size defaults.
2026-08-23 15:27:36 -05:00
J. Nick Koston
8018a0d930
Cover the bar-less logging guard and the uncancelled backoff slice
2026-08-23 15:25:29 -05:00
J. Nick Koston
20920e0971
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 15:09:05 -05:00
J. Nick Koston
81be569a85
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 15:09:03 -05:00
J. Nick Koston
641c80b193
Use the caplog fixture where the deleted helper was
2026-08-23 15:09:00 -05:00
J. Nick Koston
8170cd3d96
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 15:06:44 -05:00
J. Nick Koston
e2eae002e6
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 15:06:42 -05:00
J. Nick Koston
065867f815
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 15:06:40 -05:00
J. Nick Koston
5aebd7cb41
Match SCons' remaining CPPDEFINES spellings, drop dead test scaffolding
...
A bare 2-tuple is one name=value pair (not -DFOO -D1), a dict maps
names to values, and a None value is a bare define, per processDefines.
The unused caplog_at_info helper and the progress kwarg the download
stubs declared ahead of their PR are gone.
2026-08-23 15:05:43 -05:00
J. Nick Koston
6497ca1496
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 14:42:19 -05:00
J. Nick Koston
759ddfc91d
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 14:42:17 -05:00
J. Nick Koston
062c542c36
Give worker log records their own line, harden the cancellation sentinel
...
A logging filter installed for the batch's duration ends a partial bar
row (under the bar's lock) before any record is emitted, so a mirror
retry warning from a worker is no longer overwritten by the next CR
frame. The Ctrl-C sentinel derives from BaseException so a broad
except Exception in the download layers cannot convert an abort into a
retry, an abandoned job is reported like a failure instead of reading
as a completed download, and the mirror-sweep backoff sleeps through
the cancellation tick so a Ctrl-C during a retry window aborts at the
boundary instead of after it. The docstring states the parked-socket
worst case.
2026-08-23 14:42:00 -05:00
J. Nick Koston
d23e9a205a
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 14:31:26 -05:00
J. Nick Koston
03a443c2b7
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 14:31:24 -05:00
J. Nick Koston
0c97e2b354
Route single-archive waves through the batch runner
...
A dependency chain (api -> noise-c -> libsodium) discovers one archive
per wave, so the <2 gate sent every chained download through the legacy
per-file path. Sized registry archives now always use the batch runner:
one download method, one bar; the per-file path remains only for
unknown-size, git, and local sources.
2026-08-23 14:31:18 -05:00
J. Nick Koston
4803a92554
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 13:57:11 -05:00
J. Nick Koston
3a35c75ec1
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 13:57:09 -05:00
J. Nick Koston
8536d54998
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 13:57:07 -05:00
J. Nick Koston
10bccf3fc0
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-converter-hardening
2026-08-23 13:57:05 -05:00
J. Nick Koston
b070d1631c
Merge remote-tracking branch 'origin/dev' into esp8266-native-idedata-helpers
2026-08-23 13:57:03 -05:00
J. Nick Koston
abcfaa1810
Share the per-board ldscript rule via boards.board_ld_script
...
One source of truth for the PlatformIO pinning and the native
generator's fallback, so the per-board rule cannot drift.
2026-08-23 13:54:22 -05:00
J. Nick Koston
c822b80c95
Cover env access warnings and the unmodelled-subscript degrade
2026-08-23 13:49:03 -05:00
J. Nick Koston
ae8aa3fee9
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 13:36:08 -05:00
J. Nick Koston
ce0a0da42a
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 13:36:06 -05:00
J. Nick Koston
2199fcc851
Restore the malformed-manifest raises lost in the merge resolution
2026-08-23 13:35:52 -05:00
J. Nick Koston
554e19ccdb
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 13:35:09 -05:00
J. Nick Koston
9662fea8b9
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 13:35:07 -05:00
J. Nick Koston
b4031dc53a
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
...
# Conflicts:
# esphome/platformio/library.py
2026-08-23 13:35:04 -05:00
J. Nick Koston
eb958bd0a0
Quote CPPDEFINES, warn on env access, degrade unmodelled subscripts, realify InvalidLibrary
...
CPPDEFINES joins the quoted buckets (a spaced define no longer splits
across tokens) and its tuple branch validates the pair elements. The
fake env warns on attribute access rather than call, so hasattr/
truthiness branches are diagnosable, with dunder probes excluded; an
unmodelled subscript warns and returns '' instead of a KeyError
discarding the whole capture. Malformed platforms/frameworks values
raise plain InvalidLibrary, giving the non-platform warning branches a
real producer, and their tests use real manifests instead of
monkeypatched raisers. The version-less dependency drop moves to debug:
bundled names (Wire, SPI) made it per-build noise nobody can act on.
2026-08-23 13:34:19 -05:00
J. Nick Koston
2da0319eaa
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 13:17:14 -05:00
J. Nick Koston
c376d32db4
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 13:17:12 -05:00
J. Nick Koston
59fc108aa7
Cover the prefetch blanket guard
2026-08-23 13:17:08 -05:00
J. Nick Koston
a272ca9e17
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 13:09:53 -05:00
J. Nick Koston
e40537cc34
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 13:09:53 -05:00
J. Nick Koston
9d761102e5
Size the prefetch from the registry, fold the batch API, guard the prefetch
...
The registry response already carries each package file's size, so the
combined bar is sized from URLSource instead of a HEAD sweep; the probe,
its all-or-nothing fallback, and its duplicate Content-Length parsing are
gone, and archives without a reported size simply stay on the sequential
path. run_batch_downloads now takes (name, size, fetch) jobs and builds
the (now private) progress bar itself, collecting failures from future
results instead of a shared list; both call sites use functools.partial
instead of lambda factories. The prefetch touches only URLSource, so the
progress parameter comes off Source/Git/Local/ConvertedLibrary, and the
wave prefetch is wrapped best-effort like its ESP-IDF twin, which also
dedupes by dest only after the verifiability check. ProgressBar.done()
itself now skips the newline when no frame was drawn or the 100% frame
already ended the line, collapsing the batch wrapper's guard and fixing
the stray blank line after OTA uploads.
2026-08-23 13:08:32 -05:00
J. Nick Koston
1372ec8ad2
Trim the shape-key comment
2026-08-23 13:07:33 -05:00
J. Nick Koston
c4ddad0237
Trim comments and docstrings
2026-08-23 12:57:59 -05:00
J. Nick Koston
6d4d9aa1ce
Trim comments and docstrings
2026-08-23 12:57:17 -05:00
J. Nick Koston
caff71c17a
Trim comments and docstrings
2026-08-23 12:56:31 -05:00
J. Nick Koston
8e4c9c31e6
Merge branch 'esp8266-native-converter-hardening' into esp8266-native-library-converter
2026-08-23 12:55:57 -05:00
J. Nick Koston
a478ae4a46
Trim comments and docstrings
2026-08-23 12:55:52 -05:00
J. Nick Koston
bd69eab7fb
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 12:33:55 -05:00
J. Nick Koston
5adaee5408
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 12:33:53 -05:00
J. Nick Koston
b903c884fd
Absorb the converter-hardening split ( #18685 ); this PR keeps only the download parallelization
2026-08-23 12:33:21 -05:00
J. Nick Koston
9731c9527a
Harden the shared library converter
...
Split out of #18662 : the converter/manifest hardening without the
download parallelization, which stays there.
The PIO extra-script shim moves from espidf/ to platformio/ and gains
type checks for every manifest field, capture of the Append variants and
CPPPATH, warn-once diagnostics for unmodelled env reads, and uniform
shlex quoting so captured values survive the lex_build_flags round-trip.
The dependency walk normalizes every spelling PIO accepts, splits the
routine cross-platform skip (IncompatiblePlatform) from real manifest
problems, validates manifest shape once, and the shared flag lexer
warns and drops trailing or empty glued arguments.
2026-08-23 12:32:44 -05:00
J. Nick Koston
f595a32434
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 12:15:19 -05:00
J. Nick Koston
1959913347
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 12:15:18 -05:00
J. Nick Koston
035555b24c
Drop an empty glued flag argument at the lex funnel
...
shlex.split('-D ""') left a bare -D that gcc resolves by eating the
next flag; the funnel now warns and drops it for every consumer, which
also retires raise_on_empty_arg_flags, whose staged ESP8266 caller no
longer has anything to catch.
2026-08-23 12:15:04 -05:00
J. Nick Koston
f8de6fe0d1
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 12:05:07 -05:00
J. Nick Koston
5137c3f16b
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 12:05:05 -05:00
J. Nick Koston
ea3ff0e372
Abort in-flight batch downloads on Ctrl-C, make the deferral test hermetic
...
cancel_futures only drops queued jobs, and the non-daemon workers are
joined at interpreter exit, so a Ctrl-C during the ESP-IDF toolchain
fetch waited out every in-flight archive. The tracker each job reports
through now checks a cancellation flag set when the wait raises, so
downloads abort at their next progress tick and the resumable .part
files keep the bytes already fetched.
The wave-deferral test stubs _content_lengths instead of issuing real
HEAD requests that passed only by failing, the dead hasattr branch in
the HEAD-probe test is gone, and the .C suffix comment names the SCons
divergence instead of claiming parity.
2026-08-23 12:04:49 -05:00
J. Nick Koston
1157189b36
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 11:36:56 -05:00
J. Nick Koston
dd7a25b302
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 11:36:54 -05:00
J. Nick Koston
7c0e03f309
Capture the Append variants, warn on unmodelled env reads, quote every lexed bucket
...
Prepend/AppendUnique/PrependUnique write the same captured keys and now
alias Append instead of no-op'ing away a link directory. env.get on an
unmodelled var warns once so a script taking the default branch is
diagnosable. LIBS/LINKFLAGS/CPPFLAGS entries are shlex-quoted like the
path buckets, since each is one argv token in SCons and re-lexing must
not split a spaced value. The HEAD probes follow the happy-eyeballs
convention, and the tool-prefetch backstop keeps its traceback at debug.
2026-08-23 11:36:36 -05:00
J. Nick Koston
4e172a5774
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 10:48:53 -05:00
J. Nick Koston
e4a54b27ed
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 10:48:53 -05:00
J. Nick Koston
7b3330d5fe
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-library-converter
2026-08-23 10:48:53 -05:00
J. Nick Koston
e681c441d9
Close the residual idedata and size-summary silent-failure findings
...
A list-of-non-dicts compile DB now raises by name inside the best-effort
tuple. The launcher rejection moved into parse_entry itself so no caller
can record ccache as the compiler, and the shape key includes the entry's
directory since relative includes resolve against it. format_bar raises
on a non-positive total so every consumer must handle the meaningless
bar; the espidf summary validates the RAM region by name (a malformed
region can no longer suppress a computable Flash line) and the blanket
backstop logs the traceback at debug. A new test pins that the CI
trigger paths exist on disk, so a rename fails loudly.
2026-08-23 10:48:39 -05:00
J. Nick Koston
8cbb83a06d
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 10:37:16 -05:00
J. Nick Koston
bac6530203
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 10:37:14 -05:00
J. Nick Koston
355d4788b8
Assert lexed tokens, not raw flag strings
...
shlex.quote wraps backslash paths on Windows, so the raw emitted strings
are platform-varying; lexing like the consumer does pins the behavior
that matters and passes on both separators.
2026-08-23 10:37:11 -05:00
J. Nick Koston
b8dac2dc89
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 10:33:02 -05:00
J. Nick Koston
585d818e7a
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 10:33:02 -05:00
J. Nick Koston
80b492f638
Quote emitted -I/-L paths so spaced directories survive re-lexing
...
lex_build_flags shlex-splits build.flags, so an unquoted spaced path
became two garbage tokens; shlex.quote at the emit site round-trips it
back to one.
2026-08-23 10:31:59 -05:00
J. Nick Koston
692bb2a810
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-23 10:16:07 -05:00
J. Nick Koston
4a874a374a
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-23 10:16:06 -05:00
J. Nick Koston
54cd17591d
Type-check extraScript, capture CPPPATH, surface version-less dependency drops
...
A non-string extraScript now fails naming the library instead of an opaque
TypeError, matching the hardening on every other manifest field. CPPPATH
joins the captured keys and translates to -I flags anchored like LIBPATH,
since the pipeline already routes -I to include dirs. Version-less
dependency drops log at INFO until the arduino-backend reconciliation
lands, and the wave-deferral comment now claims only what the guard
actually saves.
2026-08-23 10:15:52 -05:00
J. Nick Koston
98b595c95d
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-library-converter
2026-08-23 10:13:22 -05:00
J. Nick Koston
e16cfded5d
Merge remote-tracking branch 'origin/dev' into esp8266-native-idedata-helpers
2026-08-23 10:12:45 -05:00
J. Nick Koston
746b294ed7
Harden idedata against non-list compile DBs and stale caches, blanket the size summary
...
A compile DB that parses as valid JSON but is not a list now raises
EsphomeError inside IDEDATA_BEST_EFFORT_ERRORS instead of a TypeError that
fails an already-linked build. Cached idedata is validated on read against
the write path's guarantees (dict shape, no launcher as compiler, include
union present) so caches from older versions regenerate instead of serving
degraded data, and the served copy is re-stamped with the current ELF path.
Response-file shape sentinels key on the output object rather than the
source file, so two objects built from one source keep both include sets.
The size summary mirrors the standalone hardening PR: a blank partition
size cell raises by name, and a blanket guard keeps unexpected nested
shapes from raising past a build that already linked.
2026-08-23 10:12:40 -05:00
J. Nick Koston
ec6123e0ef
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 23:41:57 -05:00
J. Nick Koston
da3c6dec7f
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 23:41:56 -05:00
J. Nick Koston
cfac36c647
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-library-converter
2026-08-22 23:41:56 -05:00
J. Nick Koston
d179f43e7c
Correct the zero-partition comment: the skip fails CI extraction loudly, it does not feed it
2026-08-22 23:41:55 -05:00
J. Nick Koston
327630523c
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 23:23:40 -05:00
J. Nick Koston
0e4f4237fd
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 23:23:40 -05:00
J. Nick Koston
96a74cd217
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-library-converter
2026-08-22 23:23:40 -05:00
J. Nick Koston
dc64c93f39
[core] Register the OTA component in dummy_main like its siblings
2026-08-22 23:23:39 -05:00
J. Nick Koston
1b109518f7
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 23:21:06 -05:00
J. Nick Koston
5793a5f08a
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 23:21:06 -05:00
J. Nick Koston
9d0d1b42d5
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-library-converter
2026-08-22 23:21:06 -05:00
J. Nick Koston
8230c16f12
Order the launcher strip before the empty guard, never dedupe rsp commands, harden the size summary
2026-08-22 23:21:04 -05:00
J. Nick Koston
905c806009
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 22:58:47 -05:00
J. Nick Koston
42f59f94c9
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 22:58:47 -05:00
J. Nick Koston
35bb8388a2
Defer superseded wave downloads, dedupe tool dests, validate captured buckets, right-size the log levels
2026-08-22 22:58:44 -05:00
J. Nick Koston
6fda5b9a07
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 22:39:48 -05:00
J. Nick Koston
5ac6e2b3c6
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 22:39:47 -05:00
J. Nick Koston
b08026e413
Trigger the IDF infra job on the extraScript shim now that it exists
2026-08-22 22:39:34 -05:00
J. Nick Koston
f6c6708f24
Merge branch 'esp8266-native-idedata-helpers' into esp8266-native-library-converter
2026-08-22 22:39:33 -05:00
J. Nick Koston
48c6948ae8
Guard empty compile commands, refuse a compile DB with no ESPHome TU, share the launcher rejection
2026-08-22 22:39:16 -05:00
J. Nick Koston
e714ef4dfc
Reconcile BOARDS with the generated table: d1_wroom_02 joins with its shipped flash layout
2026-08-22 22:32:26 -05:00
J. Nick Koston
e9466ff738
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 22:05:03 -05:00
J. Nick Koston
4d6300b400
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 22:05:03 -05:00
J. Nick Koston
030e79fa5a
Keep the empty-argument flag check next to the lexer that leaves the bare token
2026-08-22 22:04:47 -05:00
J. Nick Koston
da9c0bdd14
Merge branch 'esp8266-native-library-converter' into esp8266-native-shared-helpers
2026-08-22 21:59:57 -05:00
J. Nick Koston
a1e6370e8b
[core] Harden the shared library converter and download registry archives in parallel
2026-08-22 21:59:19 -05:00
J. Nick Koston
dada0f2c2b
[core] Extract the shared idedata and size-summary helpers into build_helpers
2026-08-22 21:58:41 -05:00
J. Nick Koston
a22c2a9768
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 21:41:27 -05:00
J. Nick Koston
18206967a1
Validate captured CPPDEFINES, warn on empty idedata includes, name the idedata consumers
2026-08-22 21:40:57 -05:00
J. Nick Koston
791e2b8204
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 21:27:39 -05:00
J. Nick Koston
d9e18ee982
Support subscript env reads in extra scripts; make the INFO-capture fixture real
2026-08-22 21:27:31 -05:00
J. Nick Koston
d26d3fdc33
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 21:24:06 -05:00
J. Nick Koston
227f5c67e2
Merge remote-tracking branch 'origin/dev' into esp8266-native-shared-helpers
...
# Conflicts:
# tests/unit_tests/test_main.py
2026-08-22 21:23:40 -05:00
J. Nick Koston
044d593f09
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 21:12:36 -05:00
J. Nick Koston
d6d80ee323
Consolidate the batch-download scaffold, share the idedata error set, dedupe compdb tokenizing
2026-08-22 21:12:20 -05:00
J. Nick Koston
149ca8c954
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 20:01:31 -05:00
J. Nick Koston
2acba9b364
Materialize the tracker mock before the prefetch threads race its creation
2026-08-22 20:01:13 -05:00
J. Nick Koston
36b0b62a8f
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 19:55:33 -05:00
J. Nick Koston
f4bc7dda35
Fault the cache read directly so the unreadable-cache test holds on Windows
2026-08-22 19:55:16 -05:00
J. Nick Koston
cbbc0a8fa9
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 19:46:45 -05:00
J. Nick Koston
7d246893be
Surface prefetch failures, harden the idedata and build-info cache reads
2026-08-22 19:46:42 -05:00
J. Nick Koston
27aef88077
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 17:10:23 -05:00
J. Nick Koston
bff8bea83e
Degrade garbage Content-Length probes; never prefetch an unverifiable tool archive
2026-08-22 17:10:19 -05:00
J. Nick Koston
bc98ba3b46
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 16:41:52 -05:00
J. Nick Koston
49d060fdfd
Correct the _content_lengths contract docs and pin the unknown-size fallback
2026-08-22 16:41:40 -05:00
J. Nick Koston
2acde317d2
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 16:10:08 -05:00
J. Nick Koston
f2ff1cc986
Keep per-file bars when sizes are unknown; harden the prefetch probes
...
An unknown Content-Length (probe failure, non-2xx, or a CDN omitting it
on HEAD) now skips the parallel prefetch so the sequential downloads
keep their per-file bars, instead of a silent multi-MB batch; the HEAD
helper returns None for unknown, distinct from a genuine zero, and
catches only RequestException. The cache probe logs its failure at
debug. The espidf tool prefetch reads sizes with .get so a missing size
only drops the bar instead of aborting the resumable prefetch. The
idedata warning logs its traceback at debug for parser regressions, and
framework_helpers joins the ESP-IDF infra CI triggers it is imported
by.
2026-08-22 16:10:03 -05:00
J. Nick Koston
4e6a8e297e
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 15:51:41 -05:00
J. Nick Koston
86ac8f661b
Fold the dependency-entry validation into one helper
...
The name and version checks were duplicated across the dict-shorthand
and list spellings with four identical warnings; _valid_dependency_entry
carries them once.
2026-08-22 15:51:38 -05:00
J. Nick Koston
689861ffc9
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 15:46:47 -05:00
J. Nick Koston
eec01ea793
Diagnosable prefetch failures, Ctrl-C-safe pool, typed dependency versions
...
The library prefetch pool now cancels queued futures on interrupt like
the espidf pool it mirrors, prefetch and HEAD failures log their cause
at debug (a suppressed bar is traceable), and non-2xx HEAD statuses read
as unknown size. normalize_dependencies rejects a non-string version in
both spellings (a container would raise from set.add(); an int fails
opaquely in the registry), and the walk's version-less skip logs the
dependency at debug until the arduino-backend reconciliation lands.
2026-08-22 15:46:38 -05:00
J. Nick Koston
b3f058613c
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-22 15:33:40 -05:00
J. Nick Koston
1eda5a8534
Skip already-cached archives in the download prefetch
...
The wave logged 'Downloading N libraries' before checking the
extraction markers, so a warm build announced downloads it never made.
URLSource gains an is_cached probe (best-effort in the prefetch) and a
fully warm wave stays silent.
2026-08-22 15:33:37 -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
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
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
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
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
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
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
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
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
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
a6ca775a48
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
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
60cf44de3b
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
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
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
4d63564cdd
Phrase the board-table regen comment imperatively
2026-08-21 20:56:27 -05:00
J. Nick Koston
d47dc0d992
Pin fingerprint stability and sensitivity behaviorally, note the platform pairing
2026-08-20 22:08:41 -05:00
J. Nick Koston
9624abcd57
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 21:09:42 -05:00
J. Nick Koston
2c229debe8
Best-effort bad encodings, dedupe append warnings, tolerate structurally odd compile DBs
2026-08-20 21:09:38 -05:00
J. Nick Koston
6a0ce046fd
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 20:53:31 -05:00
J. Nick Koston
6b6344b454
Cover the healthy post-compile idedata path
2026-08-20 20:53:30 -05:00
J. Nick Koston
09fd3fb53b
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 20:48:32 -05:00
J. Nick Koston
73ab04330e
Treat sys.exit(0) as script success, fail on an unreadable declared script
2026-08-20 20:48:30 -05:00
J. Nick Koston
b8bb4453e0
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 20:46:30 -05:00
J. Nick Koston
91eed262c8
Repr zero-arg script exceptions, surface a None idedata after an IDF build
2026-08-20 20:46:15 -05:00
J. Nick Koston
3063b9067a
State what the fingerprint test actually pins
2026-08-20 20:34:24 -05:00
J. Nick Koston
62c27826ee
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 19:51:27 -05:00
J. Nick Koston
c95e0b90f5
Raise on a traversing extraScript, survive sys.exit in vendored scripts, fix the caveats wording
2026-08-20 19:51:26 -05:00
J. Nick Koston
84a3c39562
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 19:29:28 -05:00
J. Nick Koston
5cf2135038
Cover the warn-once dedup branch
2026-08-20 19:29:27 -05:00
J. Nick Koston
7ad97697b2
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 19:25:45 -05:00
J. Nick Koston
5bd328e6c4
Fail on a declared-but-absent extraScript, warn once per unsupported env method, split and widen tests
2026-08-20 19:25:33 -05:00
J. Nick Koston
5cec72020f
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 19:02:46 -05:00
J. Nick Koston
ef2f16713a
Widen the post-compile idedata guard to every failure the comment promises
2026-08-20 19:02:35 -05:00
J. Nick Koston
12f8b14418
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 18:40:46 -05:00
J. Nick Koston
790c6d6353
Drop the never-hitting parse memo, guard the post-compile idedata refresh, pin the kind map
2026-08-20 18:40:29 -05:00
J. Nick Koston
77fa411f04
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 18:18:07 -05:00
J. Nick Koston
bc6b997350
Restore the lazy shlex import, pin the probe convention, assert the shim diagnostics
2026-08-20 18:17:56 -05:00
J. Nick Koston
e20c43520b
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 17:52:57 -05:00
J. Nick Koston
9b12934307
Reject a launcher compile DB by name before the probe, discard partial script captures, log dropped env keys
2026-08-20 17:52:54 -05:00
J. Nick Koston
f93d46e684
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 17:29:59 -05:00
J. Nick Koston
d33a097152
Name every skipped size line, best-effort script compile, unusable idedata returns None
2026-08-20 17:29:47 -05:00
J. Nick Koston
8008eda57f
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 17:12:31 -05:00
J. Nick Koston
466f890e1f
Clean errors for non-string flags, visible size-summary skips, partial extra-script capture
2026-08-20 17:12:19 -05:00
J. Nick Koston
57b7f03e42
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 16:54:39 -05:00
J. Nick Koston
4ab2a7ba98
Join flag args per entry like ParseFlags, pin the launcher strip log, record the asm merge decision
2026-08-20 16:54:28 -05:00
J. Nick Koston
65f5c302c5
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 16:30:26 -05:00
J. Nick Koston
a0f0ad8729
Restore the underscore in test_parse_library_json
2026-08-20 16:30:13 -05:00
J. Nick Koston
51af18cdfb
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 16:25:48 -05:00
J. Nick Koston
57a9c71da8
Cover the malformed build.flags rejection
2026-08-20 16:25:47 -05:00
J. Nick Koston
3d8a3c6527
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 16:24:32 -05:00
J. Nick Koston
1483b7c10b
Detect launchers by a closed denylist instead of guessing compiler names
2026-08-20 16:24:21 -05:00
J. Nick Koston
37de984df5
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 16:13:20 -05:00
J. Nick Koston
7fe0847e5c
Update espidf test to the public parse_library_json name
2026-08-20 16:13:19 -05:00
J. Nick Koston
80815f1dc7
Make parse_library_json public alongside its properties sibling
2026-08-20 16:12:52 -05:00
J. Nick Koston
8f5f349e1b
Pin the decoy anchor, guard unselected segments, fingerprint the module source
2026-08-20 16:01:06 -05:00
J. Nick Koston
83b4da1777
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 15:59:10 -05:00
J. Nick Koston
12c1b15578
Reject malformed build.flags by name and pin the idedata cache-hit path
2026-08-20 15:59:03 -05:00
J. Nick Koston
6a84d67786
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 15:55:01 -05:00
J. Nick Koston
7a3f700206
Act on bad-compiler detection, atomic logged idedata cache, memoized entry parsing, callable board_mcu
2026-08-20 15:41:39 -05:00
J. Nick Koston
7d9c18a330
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 15:26:38 -05:00
J. Nick Koston
5a4337c240
Share the size line format, derive source extensions from a kind map, close_fds on the ccache probe
2026-08-20 15:21:31 -05:00
J. Nick Koston
375cf95240
Anchor the segment regex, reject unknown segments, and pin real-script fixtures
2026-08-20 14:38:25 -05:00
J. Nick Koston
18e3eac419
Export a surgery fingerprint for linker-script cache stamps
2026-08-20 14:14:32 -05:00
J. Nick Koston
0620ce81c3
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 13:57:51 -05:00
J. Nick Koston
2564ad0deb
Warn once per non-compiler path, accept versioned compiler names, and pin the trigger table
2026-08-20 13:57:30 -05:00
J. Nick Koston
e3936f500f
Patch exactly the named segments and share the segment-line pattern
2026-08-20 13:44:12 -05:00
J. Nick Koston
cea86989c9
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 13:42:37 -05:00
J. Nick Koston
e82453e80e
Complete the unit-test package chain so test modules import fully qualified
2026-08-20 13:42:15 -05:00
J. Nick Koston
3eec5085da
Give the format_bar tests a unique basename
2026-08-20 13:39:46 -05:00
J. Nick Koston
57c8648210
Drop the test package init that collides with script/build_helpers.py on the CI path
2026-08-20 13:38:54 -05:00
J. Nick Koston
46fa42fa33
Merge branch 'esp8266-native-shared-helpers' into esp8266-native-build-surgery
2026-08-20 13:35:42 -05:00
J. Nick Koston
9bd548ba92
Move the extraScript machinery into the platformio package and tidy the extraction
2026-08-20 13:35:07 -05:00
J. Nick Koston
72da2b1ce2
Add the ESP8266 linker-script surgery and board build metadata
2026-08-20 12:53:50 -05:00
J. Nick Koston
ab58f1080a
Cover the tidy-project idedata assembly and hoist its helper import
2026-08-20 12:50:56 -05:00
J. Nick Koston
47942fb166
Note the upstream spelling in the format_bar citation
2026-08-20 12:47:54 -05:00
J. Nick Koston
f326c3f04d
Move the shared helpers into a neutral build_helpers package
2026-08-20 12:43:34 -05:00
J. Nick Koston
3b51ec2ae7
Extract the shared native-build helpers from the ESP-IDF backend
2026-08-20 12:36:42 -05:00
J. Nick Koston
28384673f6
Merge branch 'dev' into espidf_parallel_tool_prefetch
2026-08-19 16:32:48 -05:00
J. Nick Koston
b361342bde
Do not end a progress bar that never drew a frame
2026-08-19 15:13:04 -05:00
J. Nick Koston
d34eed6d2d
Merge branch 'dev' into espidf_parallel_tool_prefetch
2026-08-19 14:41:44 -05:00
J. Nick Koston
12238eec3b
Log prefetch failures after the bar, assert on the shared progress instance
2026-08-19 13:57:15 -05:00
J. Nick Koston
fe53ff6b6b
Finish the batch bar, cancel queued archives on Ctrl-C, report known sizes
2026-08-19 13:28:42 -05:00
J. Nick Koston
d0f38d7644
[espidf] Download tool archives in parallel during the install prefetch
2026-08-19 12:03:39 -05:00