Skip to content

display_driver moves to pydevices; the bindings keep fs_driver - #25

Merged
bdbarnett merged 3 commits into
mainfrom
display-driver-move
Oct 7, 2026
Merged

bdbarnett merged 3 commits into
mainfrom
display-driver-move

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

display_driver.py now lives in PyDevices/pydevices lib/ (PyDevices/pydevices#129). It imports appdev, events, keys and multimer and builds its App from board_config, so it belongs with them; the bindings stay usable by anyone with plumbing of their own, and a change to display_driver no longer needs a bindings release. fs_driver.py imports only lvgl and stays.

This removes python/display_driver.py and packages/display_driver.json (mip.install("pydevices") carries it now), and repoints the docs and the generator comments about _nesting at pydevices' copy.

The tests split along the same line. The pacing and direct-frame tests moved to pydevices' tests/test_lvgl_display_driver.py. tests/test_nesting_export.py keeps this repo's half of the _nesting contract: the generated MicroPython and CircuitPython C still export it.

This replaces #24, whose frame-hook change is in the file pydevices now carries.

Merge order. Merge this after PyDevices/lvgl-micropython, PyDevices/lvgl-circuitpython and PyDevices/lvgl-python's removal PRs. Their old sync scripts fetch python/display_driver.py and would fail on a bindings ref without it. Its CI already needed this: the CPython integration job runs the pinned lvgl-python's sync script, which fetched python/display_driver.py and failed. linux-integration.yml now pins lvgl-python at #26's head (f0e8be5). Repin it to #26's merge commit when that lands. The next bindings release then makes the pydevices-lvgl wheel without the file. Cut that one after a pydevices release that has it.

pytest tests/test_nesting_export.py tests/test_generation_tools.py: 40 pass. test_pyi_only_generation_uses_existing_inputs needs the lvgl submodule, which this worktree doesn't have; it passes on the main checkout.

display_driver is PyDevices plumbing: it imports appdev, events, keys and
multimer and builds its App from board_config. It now lives in
PyDevices/pydevices lib/ and ships with pydevices, so a change to it no
longer needs a bindings release, and the bindings stay usable by anyone
with plumbing of their own. fs_driver imports only lvgl and stays.

packages/display_driver.json goes with it: mip.install("pydevices") carries
display_driver now. The pacing and direct-frame tests move to pydevices'
tests/test_lvgl_display_driver.py; the nesting test keeps the half that is
this repo's, that the generated MicroPython and CircuitPython C export
_nesting, as tests/test_nesting_export.py.
…hes display_driver

The pinned lvgl-python (7883313) syncs python/display_driver.py, which this
branch removes. f0e8be5 is lvgl-python#26's head; repin to its merge commit
once it lands.
@bdbarnett
bdbarnett merged commit ae2c7c3 into main Oct 7, 2026
4 checks passed
@bdbarnett
bdbarnett deleted the display-driver-move branch October 7, 2026 20:57
bdbarnett added a commit that referenced this pull request Oct 8, 2026
display_driver lives in PyDevices/pydevices' lib/ since #25, so the page
that explains it moves there too (PyDevices/pydevices#132). Both README
links point at its new home.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant