# Copyright 2023 Google LLC

# For now, as we figure out exactly how flagging will work, please send all
# reviews to this directory to joeo, with the others as backups for emergencies.

# As we build out the tooling and guardrails:
#   - More OWNERS, including around the world coverage.
#   - More clear policies will be made for adding new build flags, and
#     the expectation that most flags will be aconfig flags and settable
#     at runtime will become more firm.
#   - The build_config and aconfig directories will be managed
#     directly by gantry.

joeo@google.com # Temporary primary
lamontjones@google.com # Temporary primary
morrislin@google.com # Temporary primary

per-file aconfig/?p??/*,aconfig/?p??/*/*=ankurbakshi@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=bkhalife@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=chapin@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=jainne@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=lokeshgoel@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=lubomir@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=pscovanner@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=rajukulkarni@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=ramprasathd@google.com # For Nextfood promotion requests
per-file aconfig/?p??/*,aconfig/?p??/*/*=zoeyhsieh@google.com # For Nextfood promotion requests

per-file aconfig/*/*,aconfig/*/*/*=opg@google.com
per-file aconfig/*/*,aconfig/*/*/*=tejaswiy@google.com

per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_BASE_SDK_EXTENSION_VERSION.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK
per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_SDK_EXTENSION_VERSION.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK
per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_SDK_VERSION.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK
per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_VERSION_ALL_CODENAMES.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK
per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_VERSION_ALL_PREVIEW_CODENAMES.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK
per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_VERSION_CODENAME.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK
per-file {flag_declarations,flag_values/*}/RELEASE_PLATFORM_VERSION_KNOWN_CODENAMES.textproto = file:platform/frameworks/base:/SDK_OWNERS # Android SDK

jham@google.com # emergency backup #{LAST_RESORT_SUGGESTION}
amithds@google.com # emergency backup #{LAST_RESORT_SUGGESTION}
rassb@google.com # emergency backup #{LAST_RESORT_SUGGESTION}
