Add updater tool for rr prebuilts. am: b6fd073329 am: 46d5e1335b am: 3bf10e1115 am: 9e0c5b5a03 am: f72ac219fd

Original change: https://android-review.googlesource.com/c/platform/tools/rr_prebuilt/+/2749093

Change-Id: I39bbf617410da8fd0ddfc7ad079d08352328d9fc
Signed-off-by: Automerger Merge Worker <[email protected]>
tree: 9cc27f9d8a26992d37d3269d4acdead184556e16
  1. rrprebuiltupdater/
  2. tests/
  3. .gitignore
  4. Makefile
  5. OWNERS
  6. poetry.lock
  7. pyproject.toml
  8. README.md
  9. requirements.txt
  10. update.py
  11. update.sh
README.md

rr prebuilts

This directory contains the prebuilt binaries for rr. These binaries come from aosp-rr-dev. See toolchain/rr/android/README.md for information about how to build and update that project.

Updating prebuilts

To update the prebuilt binaries in this directory to a newer version from ci.android.com, run:

$ ./update.sh $BUILD_ID

$BUILD_ID is optional. If omitted, the latest completed build will be used.

Development guide for update.py

The development environment is managed using Poetry. If you need to make a non-trivial change you will want to install that so you can run the linters and formatters.

Run the type checker and linter with make lint.

Auto-format the code with make format.

Run the tests with make test

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

Managing dependencies

New dependencies can be added with poetry add <name> or removed with poetry add <name>. Updating a dependency to a newer version is also done with poetry add.

Whenever dependencies are updated, run poetry export --without-hashes --output requirements.txt to update the requirements.txt file. That file is used by update.sh so poetry is only needed by developers of update.py, not callers. Note that poetry does not generate the correct output for the local fetchartifact dependency, so after running export, you'll need to manually fix that line.