You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(all) + `validate_definitions.py`. Single-board mode refuses unless the
358
+
installed `esphome` matches the `esphome_version` stamped in
359
+
`boards.index.json` by the last full sync (betas canonicalized to base, as
360
+
it rebuilds the shared index from every board); a full sync regenerates
361
+
everything from the installed esphome and re-stamps it, so it doesn't
362
+
check. Full contributor workflow: `definitions/README.md`.
353
363
-**Frontend handoff** for the catalog is documented inline in models
354
364
(`ConfigEntry`, `ComponentCatalogEntry`). New `ConfigEntryType` values
355
365
need a frontend update — coordinate.
@@ -611,7 +621,8 @@ When changing the sync script or catalog handling, watch for these:
611
621
|`esphome_device_builder/definitions/boards/<id>/manifest.yaml`| Curated; hand-edited. The body directory is `board_bodies/` (separate from this manifests dir) so the body-swap rmtree can't trample the hand-curated source. |
612
622
|`esphome_device_builder/definitions/platform_capabilities.index.json`| Generated; do not hand-edit. esphome platform metadata the long-lived process reads instead of importing `esphome.components.*` (download routing, wifi-inference no-wifi sets, static download-types). Loaded via `load_platform_capabilities_index`. |
613
623
|`esphome_device_builder/helper_cli.py` (`device-builder-helper`) | Subprocess for `get_download_types` on build-dir-dependent platforms (libretiny/nrf52), so the child imports `esphome.components.<X>`, not the dashboard process. |
614
-
|`script/sync_boards.py`| Regenerates the split board catalog from the manifests |
624
+
|`script/update_board.py`| One-step contributor wrapper: regenerate one board's JSON (`sync_boards.py`) + validate (`validate_definitions.py`). Auto-detects the edited board, or takes an id. |
625
+
|`script/sync_boards.py`| Regenerates the split board catalog from the manifests; stamps the generating `esphome_version` into `boards.index.json`. Takes an optional board id to regenerate just one (single-board mode guards installed `esphome` against that stamp). |
615
626
|`script/sync_components.py`| Regenerates the component catalog + `platform_capabilities.index.json`|
616
627
|`script/check_catalog.py`| Smoke test for popular components |
617
628
|`script/check_import_time.py`| CI guard: fails if `import …device_builder` regresses past `script/import_time_budget.json` (e.g. a fresh eager `esphome.components.*` import) |
0 commit comments