Thanks for being interested in TinyPilot! This document is meant to help developers get up to speed on TinyPilot so that they can start development with as little frustration as possible.
The steps below show you how to quickly set up a development environment for TinyPilot.
- Python 3.7 or higher
- Node.js 13.x or higher
To install TinyPilot's dev packages, run the following command:
python3.7 -m venv venv && \
. venv/bin/activate && \
pip install --requirement requirements.txt && \
pip install --requirement dev_requirements.txt && \
npm install prettier@2.0.5
To run TinyPilot's build scripts, run:
./dev-scripts/build
If you're planning to contribute code to TinyPilot, it's a good idea to enable the standard Git hooks so that build scripts run before you commit. That way, you can see if basic tests pass in a few seconds rather than waiting a few minutes to watch them run in CircleCI.
./hooks/enable_hooks
To run TinyPilot on a non-Pi machine, run:
./dev-scripts/serve-dev
For a high-level view of TinyPilot's architecture, see the ARCHITECTURE file.
TinyPilot follows Google code style conventions:
- Python
- HTML/CSS
- Shell
JavaScript- We are "loosely inspired" by the JS style guide, but don't observe it strictly
TinyPilot uses automated linters and formatters as much as possible to automate style conventions.
- If you're making a small change, submit a PR to show your proposal.
- If you're making a large change (over 100 LOC or three hours of dev time), file an issue first to talk through the proposed change. This prevents you from wasting time on a change that has a low chance of being accepted.
See the pull request template for more details on submitting a pull request.