Skip to content

display_driver leaves the wheel: pydevices ships it now - #26

Merged
bdbarnett merged 1 commit into
mainfrom
display-driver-move
Oct 7, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
display-driver-move

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

LVGL's PyDevices coordinator moved to PyDevices/pydevices lib/ (PyDevices/pydevices#129) and is in the pydevices wheel. pydevices-lvgl now carries the lvgl extension and fs_driver only. The sync script and sync-and-release.yml stop fetching python/display_driver.py from lvgl-bindings.

Release order. First a pydevices release carrying the file, then the next pydevices-lvgl release without it, soon after. In between, an environment with both wheels has two copies at the same path, and whichever was installed last wins. Neither copy is broken: this wheel's is the older one, without the frame hook.

The trap is the later upgrade. If pydevices with the file was installed first, upgrading this wheel in its own pip run deletes display_driver.py, because pip's uninstall of the old pydevices-lvgl removes every path in its RECORD. I reproduced this with two toy wheels. Upgrading both in one pip install -U pydevices pydevices-lvgl keeps the file, in either order. The README says so, along with the fix (pip install --force-reinstall --no-deps pydevices). The workspace refresh already force-reinstalls every pin in one run, for the same reason with the old lvgl-cpython name.

Merge this before PyDevices/lvgl-bindings#25, so a bindings release never runs the old sync script against a ref without the file.

The unittest suite passes (6 tests, run from outside the checkout so the empty lvgl/ submodule dir doesn't shadow the installed extension). bash -n on the sync script. The wheel itself wasn't rebuilt here; CI's cibuildwheel run is the check for the py-modules change.

LVGL's PyDevices coordinator moved to PyDevices/pydevices lib/, beside the
appdev, events, keys and multimer it imports, and is in the pydevices wheel.
pydevices-lvgl now carries the lvgl extension and fs_driver only, and the
sync script and sync-and-release workflow stop fetching display_driver from
lvgl-bindings.

Release this after a pydevices release that carries display_driver
(PyDevices/pydevices#129), and soon after it: an environment that upgrades
pydevices first and this wheel later, in two pip runs, loses the file when
pip uninstalls the old pydevices-lvgl. The README says how to upgrade both
at once and how to put the file back.
@bdbarnett
bdbarnett merged commit 4bc903c into main Oct 7, 2026
1 check passed
@bdbarnett
bdbarnett deleted the display-driver-move branch October 7, 2026 20:46
bdbarnett added a commit to PyDevices/.github that referenced this pull request Oct 7, 2026
…he LVGL sync (#61)

It moved to pydevices lib/ (PyDevices/pydevices#129); lvgl-python's sync no
longer carries it (PyDevices/lvgl-python#26).
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