Commit Graph
17561 Commits
Author SHA1 Message Date
J. Nick Koston 8d45edbb3e Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-23 13:10:39 -05:00
J. Nick Koston 2d44dacbed Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend
# Conflicts:
#	esphome/platformio/library.py
2026-08-23 13:10:36 -05:00
J. Nick Koston dc00335707 Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-23 13:09:54 -05:00
J. Nick Koston 485725d734 Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra 2026-08-23 13:09:54 -05:00
J. Nick Koston 0b598d18dc Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing 2026-08-23 13:09:53 -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 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 7155d5446b Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-23 12:34:06 -05:00
J. Nick Koston 590605c417 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-23 12:34:03 -05:00
J. Nick Koston dcd76ec9de Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-23 12:34:01 -05:00
J. Nick Koston 36ea8a2c17 Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra 2026-08-23 12:33:59 -05:00
J. Nick Koston 7c7deba4e4 Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing 2026-08-23 12:33:57 -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 eb982e07a7 Veto the ld-script cache stamp when the warn note is lost, widen the linker denylist
A failed stderr-sidecar write no longer stamps the cache: the next build
re-runs -E and re-derives the preprocessor diagnostic honestly instead
of losing it for the life of the build dir. The sidecar unlink joins the
best-effort contract. The plain-linker denylist gains the
-nodefaultlibs/-nostdlib/-rdynamic family and the -fuse-ld=/--specs=
prefixes, with a comment naming it best-effort rather than complete.
The damaged-file helper test now lives only in test_helpers.py beside
the OSError-branch coverage.
2026-08-23 12:17:43 -05:00
J. Nick Koston 10d82b129a Rely on the lex funnel's empty-argument drop
The funnel now warns and drops empty glued arguments itself, so the
raise here had nothing left to catch.
2026-08-23 12:15:52 -05:00
J. Nick Koston 49bdd061b8 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-23 12:15:20 -05:00
J. Nick Koston 88cc355293 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-23 12:15:19 -05:00
J. Nick Koston 25b429de5d Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-23 12:15:19 -05:00
J. Nick Koston 65f116eaf8 Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra 2026-08-23 12:15:19 -05:00
J. Nick Koston 9bb4fedc98 Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing 2026-08-23 12:15:19 -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 244e275dfb Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-23 12:05:17 -05:00
J. Nick Koston d53356a2b0 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-23 12:05:15 -05:00
J. Nick Koston 92ab6b7581 Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-23 12:05:13 -05:00
J. Nick Koston 187df36971 Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra 2026-08-23 12:05:11 -05:00
J. Nick Koston 353ce8a3a2 Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing 2026-08-23 12:05:09 -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 bcc1004b5d Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-23 11:37:06 -05:00
J. Nick Koston 3ea83b12f5 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-23 11:37:04 -05:00
J. Nick Koston 6b35e082bf Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-23 11:37:02 -05:00
J. Nick Koston 8a10914d8d Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra 2026-08-23 11:37:00 -05:00
J. Nick Koston af195eb1fc Merge branch 'esp8266-native-build-surgery' into esp8266-native-toolchain-plumbing 2026-08-23 11:36:58 -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 610d630cd4 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-23 10:48:54 -05:00
J. Nick Koston 34e2a82d8d Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-23 10:48:54 -05:00
J. Nick Koston 13eed46d28 Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-23 10:48:54 -05:00
J. Nick Koston e660c126f8 Merge branch 'esp8266-native-toolchain-plumbing' into esp8266-native-build-infra 2026-08-23 10:48:53 -05:00