Skip to content

Latest commit

 

History

History
70 lines (44 loc) · 2.29 KB

CONTRIBUTING.md

File metadata and controls

70 lines (44 loc) · 2.29 KB

Contributing

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.

Setting up a development environment

The steps below show you how to quickly set up a development environment for TinyPilot.

Requirements

  • Python 3.7 or higher
  • Node.js 13.x or higher

Install packages

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

Run automated tests

To run TinyPilot's build scripts, run:

./dev-scripts/build

Enable Git hooks

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

Run in dev mode

To run TinyPilot on a non-Pi machine, run:

./dev-scripts/serve-dev

Architecture

For a high-level view of TinyPilot's architecture, see the ARCHITECTURE file.

Code style conventions

TinyPilot follows Google code style conventions:

TinyPilot uses automated linters and formatters as much as possible to automate style conventions.

Proposing changes

  • 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.