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