๐Ÿค Contributing to PyDevices

August 14, 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.

If you're not sure which repo an issue or PR belongs to, open it on pydevices-examples โ€” we'll help route it.

๐Ÿ› Reporting bugs / requesting features

Use the issue templates on the relevant repo. Include the runtime (MicroPython/CircuitPython/CPython), version, and platform/board where applicable โ€” most bugs here are runtime- or hardware-specific.

For open-ended questions, ideas, or show-and-tell, use pydevices-examples Discussions instead of opening an issue.

Pull requests

  1. Fork the repo and branch from main.
  2. Follow that repo's existing code style and test conventions (see its README.md / AGENTS.md).
  3. Keep PRs focused โ€” one change per PR is easier to review and revert.
  4. 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 โ€” not decoration. Each emoji has exactly one meaning and is only used on a heading that's actually about that thing:

EmojiMeaningUse on headings like
๐Ÿš€Getting started / install / build"Quick start", "Installation", "Build", "Setup"
๐ŸŽจExamples / demos"Examples", "App starter", a demo's own title
๐Ÿ’ฌGetting help / support"Get help", "Getting help", "Still stuck?"
๐Ÿ›Reporting bugs / issues"Reporting bugs", "Reporting bugs / requesting features"
๐ŸคContributing"Contributing" (as a heading or doc title)
๐Ÿ“šDocumentation / reference links"Documentation map", "Quick links"
โš ๏ธTroubleshooting / things that can go wrong"Troubleshooting" (doc title), a warning callout

Rules of thumb:

  • Only use these seven โ€” don't add a new one-off emoji to "break up the monotony." If a heading doesn't match one of these meanings, leave it plain.
  • One emoji per heading, and only on headings, not scattered through body text (an inline โš ๏ธ **Note:** callout is the one exception).
  • Skip a doc/repo entirely if it doesn't have a heading that genuinely matches โ€” don't invent a "Getting started" section just to have somewhere to put ๐Ÿš€.
  • If several headings in the same doc are parallel alternatives for the same category (e.g. "Build (Make ports)" and "Build (CMake ports)"), tag none of them rather than picking one arbitrarily โ€” repeating the same emoji on adjacent headings reads as noise, not a landmark.