summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2020-12-05 22:30:34 -0700
committerJeff Sharkey <jsharkey@android.com>2020-12-08 08:36:27 -0700
commit061c2ec3b61fb2d62be2c46dee9696e5710dc55f (patch)
tree3c8deecc2434de626b93d0642851b4e9a85fb9bb
parent6fb53d53d4a3e6a66107e7193bff5b4863fd43eb (diff)
downloadbase-061c2ec3b61fb2d62be2c46dee9696e5710dc55f.tar.gz
Improve OWNERS coverage across frameworks/base/.
As general background, OWNERS files expedite code reviews by helping code authors quickly find relevant reviewers, and they also ensure that stakeholders are involved in code changes in their areas. Some teams under frameworks/base/ have been using OWNERS files successfully for many years, and we're ready to expand them to cover more areas. Here's the historical coverage statistics for the last two years of changes before these new OWNERS changes land: -- 56% of changes are fully covered by OWNERS -- 17% of changes are partially covered by OWNERS -- 25% of changes have no OWNERS coverage Working closely with team leads, we've now identified clear OWNERS on a per-package basis, and we're using "include" directives whenever possible to to simplify future maintenance. With this extensive effort, we've now improved our coverage as follows: -- 98% of changes are fully covered by OWNERS -- 1% of changes are partially covered by OWNERS -- 1% of changes have no OWNERS coverage This specific change begins defining top-level OWNERS lists, including a general catch-all for string translations. Bug: 174932174 Test: manual Exempt-From-Owner-Approval: refactoring with team leads buy-in Change-Id: Ie7ac3302d40a717fa048115cca2ea4359de64959
-rw-r--r--OWNERS19
-rw-r--r--OWNERS.md34
-rw-r--r--ZYGOTE_OWNERS5
-rw-r--r--core/api/OWNERS2
-rw-r--r--core/res/OWNERS17
-rw-r--r--data/etc/OWNERS14
-rw-r--r--services/api/OWNERS2
7 files changed, 92 insertions, 1 deletions
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 000000000000..9b0a8bdb3709
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,19 @@
+# This top-level list should remain narrowly defined as team leads; individual
+# teams are strongly encouraged to define narrower OWNERS files at deeper
+# levels within the source tree; see OWNERS.md for more details
+dsandler@android.com
+dsandler@google.com
+hackbod@android.com
+hackbod@google.com
+jsharkey@android.com
+jsharkey@google.com
+michaelwr@google.com
+nandana@google.com
+narayan@google.com
+ogunwale@google.com
+svetoslavganov@android.com
+svetoslavganov@google.com
+yamasani@google.com
+
+# Support bulk translation updates
+per-file */res*/values*/*.xml = byi@google.com
diff --git a/OWNERS.md b/OWNERS.md
new file mode 100644
index 000000000000..6428c59fd793
--- /dev/null
+++ b/OWNERS.md
@@ -0,0 +1,34 @@
+As general background, `OWNERS` files expedite code reviews by helping code
+authors quickly find relevant reviewers, and they also ensure that stakeholders
+are involved in code changes in their areas.
+
+The structure of `frameworks/base/` is unique among Android repositories, and
+it's evolved into a complex interleaved structure over the years. Because of
+this structure, the best place to authoritatively define `OWNERS` can vary
+wildly, but here are some common patterns:
+
+* `core/java/` contains source that is included in the base classpath, and as
+such it's where most APIs are defined:
+ * `core/java/android/app/`
+ * `core/java/android/content/`
+* `services/core/` contains most system services, and these directories
+typically have more granularity than `core/java/`, since they can be refactored
+without API changes:
+ * `services/core/java/com/android/server/net/`
+ * `services/core/java/com/android/server/wm/`
+* `services/` contains several system services that have been isolated from the
+main `services/core/` project:
+ * `services/appwidget/`
+ * `services/midi/`
+* `apex/` contains Mainline modules:
+ * `apex/jobscheduler/`
+ * `apex/permission/`
+* Finally, some teams may have dedicated top-level directories:
+ * `media/`
+ * `wifi/`
+
+Area maintainers are strongly encouraged to list people in a single
+authoritative `OWNERS` file in **exactly one** location. Then, other paths
+should reference that single authoritative `OWNERS` file using an include
+directive. This approach ensures that updates are applied consistently across
+the tree, reducing maintenance burden.
diff --git a/ZYGOTE_OWNERS b/ZYGOTE_OWNERS
new file mode 100644
index 000000000000..90a185b79b52
--- /dev/null
+++ b/ZYGOTE_OWNERS
@@ -0,0 +1,5 @@
+calin@google.com
+chriswailes@google.com
+maco@google.com
+narayan@google.com
+ngeoffray@google.com
diff --git a/core/api/OWNERS b/core/api/OWNERS
new file mode 100644
index 000000000000..0b95c5155594
--- /dev/null
+++ b/core/api/OWNERS
@@ -0,0 +1,2 @@
+# API changes are managed via Prolog rules, not OWNERS
+*
diff --git a/core/res/OWNERS b/core/res/OWNERS
new file mode 100644
index 000000000000..263d638353d6
--- /dev/null
+++ b/core/res/OWNERS
@@ -0,0 +1,17 @@
+adamp@google.com
+alanv@google.com
+dsandler@android.com
+dsandler@google.com
+hackbod@android.com
+hackbod@google.com
+jsharkey@android.com
+jsharkey@google.com
+michaelwr@google.com
+nandana@google.com
+narayan@google.com
+ogunwale@google.com
+patb@google.com
+svetoslavganov@android.com
+svetoslavganov@google.com
+toddke@google.com
+yamasani@google.com
diff --git a/data/etc/OWNERS b/data/etc/OWNERS
index 70d467829269..5efd0bd06b74 100644
--- a/data/etc/OWNERS
+++ b/data/etc/OWNERS
@@ -1 +1,13 @@
-per-file privapp-permissions-platform.xml = hackbod@android.com, jsharkey@android.com, svetoslavganov@google.com, toddke@google.com, yamasani@google.com, cbrubaker@google.com, jeffv@google.com, moltmann@google.com, lorenzo@google.com
+cbrubaker@google.com
+hackbod@android.com
+hackbod@google.com
+jeffv@google.com
+jsharkey@android.com
+jsharkey@google.com
+lorenzo@google.com
+moltmann@google.com
+svetoslavganov@android.com
+svetoslavganov@google.com
+toddke@android.com
+toddke@google.com
+yamasani@google.com
diff --git a/services/api/OWNERS b/services/api/OWNERS
new file mode 100644
index 000000000000..0b95c5155594
--- /dev/null
+++ b/services/api/OWNERS
@@ -0,0 +1,2 @@
+# API changes are managed via Prolog rules, not OWNERS
+*