Skip to content

Latest commit

 

History

History
124 lines (106 loc) · 10.2 KB

File metadata and controls

124 lines (106 loc) · 10.2 KB

PyDevices on GitHub — feature reference

A map of how the PyDevices GitHub org is set up: where discussions, issues, docs, and Pages sites live. Written to answer "how do I...?" / "where do I find...?" questions later without re-deriving the answer from scratch.

Quick answers

I want to... Go here
Ask a question / propose an idea / show something I built pydisplay Discussions
Find or share a one-off example that's too narrow for the official examples pydisplay Discussions → Recipes
Report a bug or request a feature Issues on the specific repo it affects (see repo map); use the Bug report / Feature request templates
Find contribution guidelines shared across repos PyDevices/.github CONTRIBUTING.md
Read the org's public-facing "about us" PyDevices/.github profile README (rendered on github.com/PyDevices)
Read pydisplay's full documentation pydisplay.readthedocs.io
Read pygraphics documentation pygraphics.readthedocs.io
Read palettes / pdwidgets docs palettes.readthedocs.io, pdwidgets.readthedocs.io
Manage Read the Docs ↔ GitHub (org app) Read the Docs Community GitHub App (all repos); migrate legacy projects at RTD migrate-to-github-app
Try the library without installing anything PyScript browser demos
Hardware board/driver docs (configs, contract, drivers, matrix) micropython-hardware Pages (docs/)
Talk to a board from VS Code / Cursor (REPL, files, firmware) mpftp (Pages; agent state under ~/.mpftp/)

Getting help: Discussions vs. Issues

  • Discussions are enabled only on pydisplay and lv_bindings (the two repos most likely to get open-ended questions). Everything else routes through pydisplay Discussions — see the org's pinned "get help" pointer.
  • Issues are enabled on every owned repo (bug reports / feature requests). Default issue templates (bug.yml, feature.yml) live in the org's .github repo and apply automatically to any repo that doesn't define its own.
  • If you're not sure which repo an issue belongs to, open it on pydisplay — per CONTRIBUTING.md, that's the routing point.
  • Recipes (pydisplay Discussions → Recipes, open-ended format, not answerable) is for one-off examples/how-tos that answer a specific question well but are too narrow to promote into src/examples/. If one gets enough traction, promote it into a real example later — this category is meant to be a low-friction incubator, not a permanent home for everything filed into it.
  • Wikis are disabled org-wide — reference content lives in each repo's README.md/AGENTS.md, in pydisplay's docs, or on a Pages site, not in a wiki page.
  • Projects are disabled org-wide (org boards and per-repo Projects). Public work tracking is Issues + Discussions; there is no org kanban.
  • GitHub Packages is not used. Installables go to TestPyPI / PyPI (CPython) and micropython-lib via mip (MicroPython) — not GHCR or other GitHub package registries.

Org profile

  • About / description / website: set on the org (https://pydevices.github.io/).

Read the Docs

MkDocs sites for pydisplay, pygraphics, palettes, and pdwidgets publish to *.readthedocs.io. GitHub integration uses the org-installed Read the Docs Community app (all repositories — installation 149173814).

With the GitHub App, RTD receives push/PR events directly — no per-repo webhook is required. The docs repos (pydisplay, pygraphics, palettes, pdwidgets) use this app; legacy api/v2/webhook/... hooks are gone. New projects: import from the RTD dashboard (repo list comes from the app). If an older project still needs migrating: Migrate to GitHub App.

Build config in each docs repo is .readthedocs.yaml + mkdocs.yml (no secrets).

Repos & Pages sites

Every product and module repo below ships a GitHub Pages site sharing the same chrome (dark-default theme, light toggle in the header, PyDevices brand linking to the org root) from PyDevices.github.io's assets/css/site.css. Per-repo Pages heroes use marks under assets/img/products/*.svg (or the repo's own web/img/product.svg); the org landing cards use compact inline icons. Header brand stays on the shared org logo.

Repo Role Pages site
pydisplay Core pure-Python display/input/graphics library pydevices.github.io/pydisplay (+ PyScript demos)
palettes Color palette toolkit for pydisplay pydevices.github.io/palettes
pdwidgets Cross-platform widget toolkit for pydisplay pydevices.github.io/pdwidgets
lv_bindings LVGL C→binding generator (source of truth for the native cmods) pydevices.github.io/lv_bindings
cmods Workspace that builds/smoke-tests the native-module matrix together pydevices.github.io/cmods
displayif Native display bus/framebuffer modules pydevices.github.io/displayif
pygraphics Native (pygraphics-cmod) + pure-Python (pygraphics) FrameBuffer/Area; docs on RTD pydevices.github.io/pygraphics
usdl2 Native (usdl2) + pure-Python (usdl2-py) SDL2 subset for pydisplay's desktop backend pydevices.github.io/usdl2
lv_micropython_cmod MicroPython user C module glue for LVGL pydevices.github.io/lv_micropython_cmod
lv_circuitpython_mod CircuitPython integration for LVGL pydevices.github.io/lv_circuitpython_mod
lv_cpython_mod Native CPython LVGL extension (import lvgl) pydevices.github.io/lv_cpython_mod
pydisplay_android Android APK path for pydisplay pydevices.github.io/pydisplay_android
PyDevices.github.io Org landing + shared chrome pydevices.github.io
.github This repo — org profile README, issue templates, CONTRIBUTING.md, docs/github-presence.md, docs/repo-layout.md, docs/NOTES.md (no Pages site — org metadata only)
micropython-lib Fork carrying PyDevices' micropython-lib packages for mip install (no dedicated marketing site — it's a package index fork, not a product)
micropython-hardware Board configs + hardware drivers (display/touch/bus/…) extracted from pydisplay pydevices.github.io/micropython-hardware
mpftp VS Code / Cursor board tools (REPL, file transfer, mip/circup, MicroPython firmware) pydevices.github.io/mpftp

Licensing

All owned repos are MIT, using GitHub's standard single-author template (so it's correctly detected as MIT rather than NOASSERTION/Other). A handful of files in pydisplay that still carry code from other authors (src/add_ons/tft_text.py, tft_write.py, tft_bitmap.py, and the polygon() function in lib/pygraphics/_shapes.py, tracing back through Russ Hughes' st7789_mpy driver to Ivan Belokobylskiy's st7789py_mpy) keep their own self-contained MIT header with that attribution — those in-file notices govern those specific files/functions; the root LICENSE governs everything else. Keep any such pointer out of the root LICENSE file itself: GitHub's license detector does a similarity match against the exact template, and extra text (even a short explanatory paragraph) can drop it below the confidence threshold and flip the repo back to NOASSERTION.

Topics

Each repo has GitHub topics set for discoverability (e.g. lvgl, micropython, circuitpython, user-c-modules) — check a repo's sidebar on github.com rather than duplicating the list here, since topics change more often than this doc will be updated.