1# Background 2 3As general background, `OWNERS` files expedite code reviews by helping code 4authors quickly find relevant reviewers, and they also ensure that stakeholders 5are involved in code changes in their areas. 6 7The structure of `frameworks/base/` is unique among Android repositories, and 8it's evolved into a complex interleaved structure over the years. Because of 9this structure, the best place to authoritatively define `OWNERS` can vary 10wildly, but here are some common patterns: 11 12* `core/java/` contains source that is included in the base classpath, and as 13such it's where most APIs are defined: 14 * `core/java/android/app/` 15 * `core/java/android/content/` 16* `services/core/` contains most system services, and these directories 17typically have more granularity than `core/java/`, since they can be refactored 18without API changes: 19 * `services/core/java/com/android/server/net/` 20 * `services/core/java/com/android/server/wm/` 21* `services/` contains several system services that have been isolated from the 22main `services/core/` project: 23 * `services/appwidget/` 24 * `services/midi/` 25* `apex/` contains Mainline modules: 26 * `apex/jobscheduler/` 27 * `apex/permission/` 28* Finally, some teams may have dedicated top-level directories: 29 * `media/` 30 * `wifi/` 31 32# Design 33 34Area maintainers are strongly encouraged to list people in a single 35authoritative `OWNERS` file in **exactly one** location. Then, other paths 36should reference that single authoritative `OWNERS` file using an include 37directive. This approach ensures that updates are applied consistently across 38the tree, reducing maintenance burden. 39 40# Examples 41 42The exact syntax of `OWNERS` files can be difficult to get correct, so here are 43some common examples: 44 45``` 46# Complete include of top-level owners from this repo 47include /ZYGOTE_OWNERS 48# Partial include of top-level owners from this repo 49per-file ZygoteFile.java = file:/ZYGOTE_OWNERS 50``` 51``` 52# Complete include of subdirectory owners from this repo 53include /services/core/java/com/android/server/net/OWNERS 54# Partial include of subdirectory owners from this repo 55per-file NetworkFile.java = file:/services/core/java/com/android/server/net/OWNERS 56``` 57``` 58# Complete include of top-level owners from another repo 59include platform/libcore:/OWNERS 60# Partial include of top-level owners from another repo 61per-file LibcoreFile.java = file:platform/libcore:/OWNERS 62``` 63``` 64# Complete include of subdirectory owners from another repo 65include platform/frameworks/av:/camera/OWNERS 66# Partial include of subdirectory owners from another repo 67per-file CameraFile.java = file:platform/frameworks/av:/camera/OWNERS 68``` 69