tiny-pilot / tiny-pilot/tinypilot

Design: Test TinyPilot Debian package install

Open
#1,659 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
3.5k
Forks
291
PR merge metrics
No merged PRs in 30d

Description

The TinyPilot install process is sufficiently complex that it would be helpful to have tests validating that the installer does what we expect.

We've had a few bugs in the past due to subtle oversights in install logic, and we only discovered them when they bit us later.

Rough idea
  1. Create a Docker container that emulates Raspberry Pi OS Lite (put in paths like /boot/config.txt that exist in Pi OS)
    • This will probably just be the standard Debian:11 image with a few changes on top to put in paths that make it look like Pi OS as far as TinyPilot is concerned.
  2. Boot into the Docker container in CircleCI
  3. Install the TinyPilot Debian package (or run the bundle install script)
  4. Run checks to verify that the system is in the expected state (e.g., our desired modifications to /boot/config.txt are there, paths we want to create exist, users exist that we expect).
  5. Uninstall the TinyPilot Debian package
  6. Reinstall the TinyPilot Debian package
  7. Verify that modifications to the files we expect happen exactly once rather than once per install
Deliverable

This ticket is just to flesh out the design rather than to get into implementation.

The design should cover:

  • What tests will we perform to validate the install?
  • How can we create a Docker container that mimics Raspberry Pi OS for our purposes?

I accidentally duplicated this idea in https://github.com/tiny-pilot/tinypilot/issues/1691 so there are additional ideas there.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading bundler/bundle/install and debian-pkg/debian/tinypilot.postinst, then review the related ideas in issue 1691. Define the installation and reinstallation checks, plus how a Docker image can mimic the required Raspberry Pi OS paths. Done means a documented design addressing both deliverables, not an implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
debian, docker
Domain
devops, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.