Dev Container and Codespaces¶
The repository ships a .devcontainer/devcontainer.json that builds a ready-to-work environment: Python 3.12, Poetry, the project's dependencies, the pre-commit hooks, and the editor extensions the project lints with. Use it instead of the manual setup in the Developer Guide if you would rather not install a toolchain on your machine, or if you want a throwaway environment for a one-off contribution.
Opening it¶
GitHub Codespaces — on the repository page, Code → Codespaces → Create codespace. Nothing to install locally.
VS Code, locally — install the Dev Containers extension and Docker, clone the repository, then run Dev Containers: Reopen in Container from the command palette.
Either way the first start runs the container's setup command, which installs the system libraries the vision engines need (libgl1, libglib2.0-0), a headless JRE, the Poetry environment (poetry install, which includes the dev, test and docs groups), and the pre-commit hooks. It takes a few minutes; afterwards the usual commands work without a prefix beyond poetry run:
poetry run pytest
poetry run ruff check --fix .
poetry run pre-commit run --all-files
poetry run mkdocs serve
What you get¶
| Base image | mcr.microsoft.com/devcontainers/python:1-3.12-bullseye |
| Tooling | Poetry, git, Docker CLI (talking to the host daemon), scancode-toolkit |
| Editor | Pylance, Ruff, Pylint, markdownlint, YAML, Docker, Conventional Commits |
| Testing | pytest enabled as the VS Code test runner |
Docker is wired as docker-outside-of-docker, so docker build and docker compose inside the container drive the host's daemon — the images in Docker Deployment build from here as they would from a normal shell.
What it does not give you¶
The container has no Android SDK, no emulator, and no Appium server, so it is a development environment rather than a test-execution one. To run a suite against a real target from inside it, point config.yaml at an Appium server reachable over the network. For one on the host machine, the container is started with a host.docker.internal host entry, so:
A Codespace has no route to your local machine at all — use a remote Appium grid, or work on code, docs and unit tests there and run device suites locally.