tiny-pilot / tiny-pilot/tinypilot
Design: Test TinyPilot Debian package install
Nobody has claimed this yet.
- 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
- Create a Docker container that emulates Raspberry Pi OS Lite (put in paths like
/boot/config.txtthat 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.
- Boot into the Docker container in CircleCI
- Install the TinyPilot Debian package (or run the bundle install script)
- Run checks to verify that the system is in the expected state (e.g., our desired modifications to
/boot/config.txtare there, paths we want to create exist, users exist that we expect). - Uninstall the TinyPilot Debian package
- Reinstall the TinyPilot Debian package
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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