๐ค Contributing to PyDevices
August 20, 2026 ยท View on GitHub
Thanks for your interest in contributing! PyDevices spans several repos โ
this doc covers what's shared across all of them. Each repo's own README.md
(and AGENTS.md, where present) has project-specific setup, test, and lint
instructions โ read that first.
Where things live
Repo directory and root-file layout (src/, lib/, tests/,
requirements-dev.txt, โฆ): see docs/repo-layout.md.
The full repository map โ every repo, grouped by tier, with what each one owns โ
is generated from data/repos_db.json and published at
pydevices/docs/ecosystem.md and on the
org profile. Do not restate it here; it drifts.
If you're not sure which repo an issue or PR belongs to, open it on pydevices โ we'll help route it.
๐ Reporting bugs / requesting features
Use the issue templates on the relevant repo. Include the interpreter (MicroPython/CircuitPython/CPython), version, and platform/board where applicable โ most bugs here are interpreter- or hardware-specific.
For open-ended questions, ideas, or show-and-tell, use pydevices Discussions instead of opening an issue.
Pull requests
- Fork the repo and branch from
main. - Follow that repo's existing code style and test conventions (see its
README.md/AGENTS.md). - Keep PRs focused โ one change per PR is easier to review and revert.
- Describe why the change is needed, not just what changed.
Regenerating LVGL bindings
If your change touches lvgl-bindings/binding/, lv_conf.h, or the lvgl
submodule, regenerate and commit the affected generated/*.c files โ see
lvgl-bindings' README
for the exact commands. Don't hand-edit generated files.
Doc style: emoji
Docs across PyDevices use a small, fixed set of emoji as landmarks on
section headings โ see docs/doc-style.md for the
full table and rules of thumb before adding or changing heading emoji.