Contributing¶
pydisplay is a community project. Bug reports, board configs, drivers, docs, and examples are all welcome.
Development setup¶
See Building and publishing documentation for local preview (mkdocs serve) and ReadTheDocs setup.
Quick version:
python3 -m venv .venv-docs
.venv-docs/bin/pip install -r docs/requirements.txt
.venv-docs/bin/mkdocs serve # http://127.0.0.1:8000
After editing files under src/:
./tools/regenerate.sh # refresh packages/*.json and html/pyscript.toml
Pull request workflow¶
- Fork PyDevices/pydisplay
- Create a feature branch
- Make changes; run
./tools/regenerate.sh --auditif you touchedsrc/ - For docs: see Building docs —
mkdocs serveand verify pages build - Open a PR against
mainwith a clear description
High-value contributions¶
- Board configs for new hardware
- Display/touch drivers for unsupported controllers
- C bus drivers (STM32, i.MX RT) compatible with BusDisplay
- Documentation fixes and platform guides — see docstring conventions
- EPaperDisplay implementation
- CircuitPython board configs and circup packaging
- PyScript asyncio examples and psdisplay improvements
Code style¶
Python is linted with Ruff — see pyproject.toml. Pre-commit hooks may run on commit.
Public API docstrings: Docstring conventions.
Documentation¶
Publishing, micropython-lib, and TestPyPI: tools/README.md.
License¶
Follow the license terms in the repository. Third-party add_ons retain their original licenses where noted.