From 75d9c6aa1bf1d27e95124be091efe80c577b3ec4 Mon Sep 17 00:00:00 2001 From: Brad Barnett <127794626+bdbarnett@users.noreply.github.com> Date: Tue, 10 Nov 2026 15:33:54 -0600 Subject: [PATCH] Firmware modules: sayso leaves the build, the Spotify client ships with the apps sayso is the Spotify Web API client the apps use and needs a Spotify account and developer app, so it isn't a firmware building block. It stays available through the apps' libraries (omnipython-applibs, or mip install of applibs). The module, its docs rows and the wasm import check go. --- .github/workflows/wasm-runtime.yml | 2 +- .gitignore | 1 - docs/guides/choose-modules.md | 6 ++---- docs/reference/modules.md | 3 +-- modules/sayso/manifest.py | 12 ------------ 5 files changed, 4 insertions(+), 20 deletions(-) delete mode 100644 modules/sayso/manifest.py diff --git a/.github/workflows/wasm-runtime.yml b/.github/workflows/wasm-runtime.yml index b33860c3..111e9c88 100644 --- a/.github/workflows/wasm-runtime.yml +++ b/.github/workflows/wasm-runtime.yml @@ -62,7 +62,7 @@ jobs: cat > /tmp/check.py <<'EOF' import sys print(sys.implementation) - for name in ("displaydev", "lvgl", "sayso", + for name in ("displaydev", "lvgl", "audioinstruments", "audioeffects", "pdwidgets", "palettes", "ulab"): __import__(name) print("imports", name) diff --git a/.gitignore b/.gitignore index 7b5f8643..4ffd7bec 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ !/modules/pydevices/ !/modules/palettes/ !/modules/pdwidgets/ -!/modules/sayso/ !/modules/audioinstruments/ !/modules/audioeffects/ !/modules/audiocomponents/ diff --git a/docs/guides/choose-modules.md b/docs/guides/choose-modules.md index 7188ca9b..4313a33f 100644 --- a/docs/guides/choose-modules.md +++ b/docs/guides/choose-modules.md @@ -23,10 +23,8 @@ A module never brings another, and nothing checks dependencies. If you name ## Python packages from omnipython-lib Our Python-only packages come from omnipython-lib: `pydevices`, `palettes`, -`pdwidgets`, `sayso`, `audioinstruments` and -`audioeffects` are modules whose manifest requires them from it. `sayso`, the -Spotify controller, freezes only into desktop and web builds. Any other package -of it, such as a board config, can be named too. +`pdwidgets`, `audioinstruments` and `audioeffects` are modules whose manifest +requires them from it. Any other package of it, such as a board config, can be named too. ## The desktop board config diff --git a/docs/reference/modules.md b/docs/reference/modules.md index 23433c4c..0a23a31c 100644 --- a/docs/reference/modules.md +++ b/docs/reference/modules.md @@ -28,7 +28,7 @@ tracked here or linked from a sibling checkout or cloned at the commit in |---|---| | `audiodsp`, `pygraphics`, `ulab` | Cloned at the commit in `DEPENDENCIES.lock` when `modules/` is missing, or linked from a sibling checkout. | | `lvgl` | [omnipython-lvgl](https://github.com/PyDevices/omnipython-lvgl), fetched at the commit in `DEPENDENCIES.lock` into `modules/.omnipython-lvgl`, or linked from a sibling checkout. A build compiles its `ports/micropython` or `ports/circuitpython`, whichever the interpreter is, and `all` includes it. | -| `pydevices`, `palettes`, `pdwidgets`, `sayso`, `audioinstruments`, `audioeffects` | Manifests here that require the Python packages from omnipython-lib. `audiocomponents` is the old name for the last two together and still builds both. | +| `pydevices`, `palettes`, `pdwidgets`, `audioinstruments`, `audioeffects` | Manifests here that require the Python packages from omnipython-lib. `audiocomponents` is the old name for the last two together and still builds both. | | `micropython-lib` | MicroPython's own upstream packages, frozen from the checkout the MicroPython tree carries. | | `tflite`, `vision` | [esp-vision's modules](../guides/use-esp-vision-modules.md), opt-in: `all` leaves them out. | @@ -64,7 +64,6 @@ it is. "Unix" is CircuitPython's unix port, built and imported in | tflite, vision | no | no, on purpose | esp-vision's modules, for MicroPython only. | | lvgl | yes | all five | One name for both interpreters: a CircuitPython build compiles omnipython-lvgl's `ports/circuitpython`. A board build needs `CIRCUITPY_GIFIO=0`, since LVGL links its own AnimatedGIF decoder; our boards set it. | | micropython-lib | no | no | MicroPython's own upstream packages. | -| sayso | desktop and web only | desktop and web only | Python only: the Spotify controller. A board build that names it freezes nothing. | | pydevices, palettes, pdwidgets | frozen | frozen | Python only. On unix, pydevices also freezes its desktop files (the boards drop them), and pdwidgets and palettes with it: together their names pass CircuitPython's 64 KB frozen-string pool, so [`build_mp.py`](https://github.com/PyDevices/micropython-pydevices/blob/main/build_mp.py) builds the unix port with four-byte qstr offsets (patches 0001 and 0010). Boards keep two-byte offsets. | What is planned for the rest is in the [roadmap](https://github.com/PyDevices/micropython-pydevices/blob/main/ROADMAP.md). diff --git a/modules/sayso/manifest.py b/modules/sayso/manifest.py deleted file mode 100644 index 65f7ca7a..00000000 --- a/modules/sayso/manifest.py +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-FileCopyrightText: 2026 Brad Barnett -# -# SPDX-License-Identifier: MIT - -# sayso, from omnipython-lib: the Spotify controller. Desktop and web builds -# only (unix, windows, webassembly): a board build that names it, or all, -# freezes nothing. Frozen at opt=3. -import os - -if os.environ.get("PYDEVICES_PLATFORM") != "board": - include("../library.py") - require("sayso", library="omnipython-lib", opt=3)