Repository navigation
Conversation
Contributor
Author
|
RAM measured on unix MicroPython 1.29 with pygraphics (and its new
Frozen, the icon pixels stay in flash: no icon's 576 bytes are ever copied to the heap. |
This was referenced Nov 12, 2026
appkit's Home and apps still import iconkit the same way, but the package now lives in PyDevices/pydevices at packages/iconkit (omnipython-iconkit), beside pdwidgets and palettes, so that apps/lib stays the one omnipython-applibs package and pdwidgets and appkit can both depend on one small package. Removed here: lib/iconkit, its generator and contact-sheet tools, its tests and its icons page; appkit's manifest no longer includes it. The appkit tests find iconkit at packages/iconkit/lib in the pydevices checkout PYDEVICES_LIB belongs to (or ICONKIT_LIB). The index check raises with the fix when iconkit isn't importable. The README, appkit README, how-it-works and app.json icon docs link to the package's README and icons page. Ran: the appkit index and script tests on CPython against the new location, including a new one for the missing-iconkit message; Home and appkit import on unix MicroPython with iconkit taken from packages/iconkit/lib.
…on check appkit's manifest.py no longer assumes iconkit sits beside it. It freezes iconkit from the folder iconkit= names (pydevices' packages/iconkit, or <tree>/iconkit in an omnipython-lib tree), else from $PYDEVICES_LIBRARY, and with apps= it puts that source on the host's import path while the index checks each app's icon. With neither it stops and says to pass iconkit= or set PYDEVICES_LIBRARY, so a build never freezes a Home that cannot import. Ran: the manifest tests under MicroPython's own manifest reader in an isolated interpreter (they fail on the previous manifest with the host ImportError and pass now, including the two missing-iconkit messages), and a unix MicroPython build that freezes appkit with apps= (Home, Clock, Weather) from an omnipython-lib tree.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Home, the round Home button and every app now draw Material Design icons from iconkit instead of
lv.SYMBOL. iconkit is a package of the pydevices repository (omnipython-iconkit, PyDevices/pydevices#531), so this repository adds no package for it andlib/stays the oneomnipython-applibspackage. Home and appkit import it the same way as before.Each app's
app.jsonhas a new required field,"icon", a Material name from iconkit's 48 px set, replacing"symbol". An app with a tile and no icon, or one iconkit doesn't have, is an error with the app and icon named: when the index is built, and when Home starts. There is no default icon."tile": falseapps need none. The icon docs and contact sheets are on iconkit's side: README and icons page.appkit's manifest no longer includes iconkit: freeze it beside appkit, as you do pydevices. The appkit tests take iconkit from
packages/iconkit/libin the pydevices checkout (orICONKIT_LIB), and the index check raises with the fix when iconkit isn't importable. This pull request's CI needs pydevices main to holdpackages/iconkit, so it is green only after pydevices#531 merges.I ran Home on unix MicroPython headless at 800x480 (all four pages) and as a 240x240 and 360x360 round screen, and looked at the frames, before iconkit moved. After the move I ran the appkit index and script tests on CPython against the new location, and confirmed Home and appkit import on unix MicroPython with iconkit taken from the pydevices folder. I did not re-render the Home frames after the move, did not run the appkit MicroPython contract checks (this machine's interpreter has no frozen appkit and they fail the same way without my change), and did not run it on a board. Buttons inside apps still use
lv.SYMBOL.