Commit Graph
17198 Commits
Author SHA1 Message Date
J. Nick Koston daea0cc9f3 Warn on missing decode tools on both toolchains, fail the CI key resolver loudly
The PlatformIO branch of _decode_pc now routes through the same
rate-limited warning as the native one; raw undecoded crash addresses
with no stated reason were undiagnosable at default log level. The CI
cache key uses the assignment form so errexit catches a resolver
failure instead of echo swallowing it into a degenerate key, with a
non-empty check, and the cache comments stop claiming a ccache store
the seed job never populates (it saves before any compile runs).
2026-08-21 17:26:11 -05:00
J. Nick Koston 978d7fc2e7 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 17:19:09 -05:00
J. Nick Koston cb409e276a Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 17:19:09 -05:00
J. Nick Koston d0a3392c46 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 17:19:09 -05:00
J. Nick Koston e18852e084 Fail on dropped requests, guard the last manifest fields, parse dot_a_linkage strictly
A top-level library the converter dropped always makes the firmware
wrong, so resolve_libraries raises naming the missing requests instead
of warning toward link errors, and a resolved component without its
node_key fails as a converter bug rather than silently substituting the
mismatched canonical name. includeDir and srcFilter join srcDir and
flags in raising a named error on malformed values, and dot_a_linkage
parses through the same strict table as libArchive so a typo warns and
keeps the archive default instead of flipping link semantics.
2026-08-21 17:19:01 -05:00
J. Nick Koston 27b80f895b Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 17:04:13 -05:00
J. Nick Koston e2cc4e825f Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 17:04:12 -05:00
J. Nick Koston 496d705dc7 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 17:04:12 -05:00
J. Nick Koston 1f868d22fb Expose request_key as the public pair of ConvertedLibrary.node_key
The arduino backend consumed the private _node_key across packages to
reconstruct the request-side key; the thin public wrapper keeps both
sides of the contract on the same API surface.
2026-08-21 17:04:03 -05:00
J. Nick Koston 3e56619cd6 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 16:52:50 -05:00
J. Nick Koston 84d98a3593 Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 16:52:50 -05:00
J. Nick Koston bf3972cbf6 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 16:52:50 -05:00
J. Nick Koston 2ecf7af416 Name malformed manifests, diff drop-warnings by node key, surface bundled deps
A non-dict manifest or build section raises an EsphomeError naming the
library instead of an AttributeError. ConvertedLibrary remembers the
request-side node key it resolved from, so the converter-drop warning
diffs requests against those keys; a bare name resolving to a canonical
owner__pkg is no longer falsely listed missing. A bundled library whose
manifest declares dependencies warns that the walk never runs for it (a
no-op on the ESP8266 core, not on every core this module serves).
2026-08-21 16:52:32 -05:00
J. Nick Koston 7a99e65853 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 16:07:41 -05:00
J. Nick Koston 5622a7b851 Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 16:07:40 -05:00
J. Nick Koston 659211b8bd Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 16:07:40 -05:00
J. Nick Koston 91a4eb0f57 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 16:07:40 -05:00
J. Nick Koston 97ed253c38 Say the floor's config-validation guard is future wiring, not present
Nothing at this commit enforces MIN_FRAMEWORK_VERSION during
validation; the native backend's validator arrives with the wiring PR.
The comment no longer invites skipping it.
2026-08-21 16:07:30 -05:00
J. Nick Koston 0127b483b0 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 15:34:01 -05:00
J. Nick Koston 114302b518 Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 15:34:01 -05:00
J. Nick Koston e2d0ebbd6e Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 15:34:01 -05:00
J. Nick Koston be2395da66 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 15:34:00 -05:00
J. Nick Koston cbf1241401 Resolve the ccache path on every call, matching the espidf backend
functools.cache froze the ESPHOME_CCACHE_ENABLE/PATH decision for the
process lifetime, which a long-lived host like device-builder never
restarts, and forced a cache_clear fixture in the tests. The docstring
and test now pin the uncached delegation.
2026-08-21 15:33:51 -05:00
J. Nick Koston 98f574c251 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 15:19:11 -05:00
J. Nick Koston 568885f80d Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 15:19:11 -05:00
J. Nick Koston 17a251d062 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 15:19:10 -05:00
J. Nick Koston ce87ca2e11 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 15:19:10 -05:00
J. Nick Koston 33aea420ac Merge branch 'esp8266-native-build-infra' into esp8266-native-framework-installer 2026-08-21 15:19:10 -05:00
J. Nick Koston e3d29e9fff Name a non-list registry system field instead of a TypeError
file["system"] normalized None and str but let an int or dict fall
through to the in test, where an int raises TypeError and a dict
becomes a key test; both now raise the same Unexpected-response error
as the other shape guards.
2026-08-21 15:18:54 -05:00
J. Nick Koston dbae5246e6 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 14:50:47 -05:00
J. Nick Koston 2fba991b51 Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 14:50:47 -05:00
J. Nick Koston 92356804c6 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 14:50:47 -05:00
J. Nick Koston 03bf037cb8 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 14:50:47 -05:00
J. Nick Koston 4dc2d34399 State the encoder's real registry parity and why the 3.1.1 floor exists
The docstring claimed exact registry names for every core above 2.6.2;
2.6.3, 3.0.0 and 3.0.1 ship with non-zero trailing components the
formula cannot produce. Name them, say which callers are safe (the ~
range on the PlatformIO path, the floored check_and_install), and
credit the floor with covering 3.0.0/3.0.1 as well as the absent 3.1.0.
2026-08-21 14:50:36 -05:00
J. Nick Koston b131f51788 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 14:32:37 -05:00
J. Nick Koston ccaa2a8f0d Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 14:32:37 -05:00
J. Nick Koston a2b28a8f8d Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 14:32:37 -05:00
J. Nick Koston e9f8233f67 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 14:32:37 -05:00
J. Nick Koston c07a5a8da4 Match the encoder's lower bound to the PlatformIO era guard, drop the unused logger
<= 2.6.2 instead of < 2.6.3: a 2.6.2 pre-release sorts above 2.6.2 and
belongs to the package-major-3 encoding, so the helper now describes
the same set as _format_framework_arduino_version and a 2.6.2-b1 pin
formats as it does on dev. The module never logged, so its _LOGGER and
logging import go.
2026-08-21 14:32:27 -05:00
J. Nick Koston 0097ce892c Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 14:12:34 -05:00
J. Nick Koston a3b2954321 Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 14:12:33 -05:00
J. Nick Koston d07ed5b397 Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec 2026-08-21 14:12:33 -05:00
J. Nick Koston b4514e5af2 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 14:12:33 -05:00
J. Nick Koston 93a768531d Anchor the 4.x error to the version key, bound the encoder, build PATH without empty entries
cv.Invalid now carries path=[CONF_VERSION] so the rejection lands on
the framework version line the comment promised, matching the esp32
convention. framework_package_version raises for cores before 2.6.3
instead of encoding them wrongly for a caller that skipped the
PlatformIO path's era guard. get_build_env joins PATH from filtered
parts so an absent PATH cannot leave a trailing separator that the
shell reads as the current directory.
2026-08-21 14:12:20 -05:00
J. Nick Koston 9fbc996d52 Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 13:33:19 -05:00
J. Nick Koston 046c7e5eb0 Lex build flags once in write_project, warn on unflags that match nothing
The pre-lexed tokens feed both _flag_defines and _project_flags so a
malformed entry warns once per generation. An unflag that hits nothing
in the user flags or any framework set (a typo, or -DUSE_FOO against
-DUSE_FOO=1) is named instead of silently leaving the flag in force.
2026-08-21 13:33:11 -05:00
J. Nick Koston c0cd64cd76 Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission 2026-08-21 13:32:21 -05:00
J. Nick Koston 7c2254d8ee Refuse knob-plus-raw define splits, lex build flags once, harden the ld cache
A raw MMU_* define alongside a PIO_FRAMEWORK_ARDUINO_MMU_* knob, or a
raw TCP_MSS/LWIP_* alongside the lwIP knobs, would win the compile line
while the linker script or prebuilt library keeps the knob's values;
both now raise like the no-knob case. _MMU_VARIANTS holds tuples and the
resolved config gets a copy, so nothing aliases the module table.
_lexed_build_flags lexes once and both consumers accept the tokens, so
a malformed entry warns once per build. The linker-script stamp covers
the header's size and mtime, an unreadable or non-UTF-8 cache
regenerates instead of aborting, plain-form linker flags warn that they
are not routed to the link line, and a moved rate-table anchor surfaces
as a named build error.
2026-08-21 13:32:12 -05:00
J. Nick Koston c92b3cc49a Merge branch 'esp8266-native-ninja-emission' into esp8266-arduino-toolchain 2026-08-21 13:13:16 -05:00
J. Nick Koston 4898dc0800 Merge branch 'esp8266-native-framework-installer' into esp8266-native-library-backend 2026-08-21 13:13:15 -05:00