external_updater developer documentation

The documentation on this page is for developers of external_updater. If you're looking for user documentation, see the README.md.

Development environment

Development of external_updater requires a full checkout of the main branch of AOSP, and a lunched target (any target). See Get started with Android Development for a guide on setting up an AOSP build environment.

Note: This project uses Python 3.11. You may find pyenv helpful for installing and managing multiple versions of Python.

Not all the Python tools used here are available in AOSP. For managing those, we recommend using Poetry. To install the necessary Python dependencies:

$ poetry install

Development tasks

The easiest way to activate the virtual environment is to create a nested shell with:

$ poetry shell

poetry shell will activate the virtual environment by creating a nested shell. To deactivate this virtual environment simply use deactivate or exit. If you prefer not to use poetry shell, you must prefix all Python commands with poetry run, e.g. poetry run pytest. It's easier to just use poetry shell.

Run the type checker and linter with make lint.

Run the tests with make test.

Run all of the above with make check or just make.