Snap for 10851067 from 2c7e9daa8fc5b781e8d367405d8d80810240dc0d to 24Q1-release

Change-Id: I74563988e08e921c9d928d48093f5183c280f259
tree: be4aff1d27fc7f3f2a79caef37acfc79f5383106
  1. rr/
  2. rrprebuiltupdater/
  3. tests/
  4. .gitignore
  5. Makefile
  6. OWNERS
  7. poetry.lock
  8. pyproject.toml
  9. README.md
  10. requirements.txt
  11. update.py
  12. 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.