# Global approvers
#
# Someone should be a global approver if they commonly make large-scale changes
# across the whole codebase. For example, people who maintain the various
# languages, toolchains, and other build system components often should be
# global approvers. Additionally, the set of global approvers should have good
# coverage across the world to support contributors in every timezone.
#
# Code reviews should be sent to a global approver if the change manipulates
# the root directory or has broad (typically mechanical) impact across the
# codebase. If the change manipulates a specific part of the codebase, the code
# review should be sent to a more specific approver. Global approvers should
# use their judgement as to when to redirect review requests to more specific
# approvers.
#
# The list of global approvers will change over time as the set of people
# making large-scale changes evolves over time. Please do not take it
# personally if you are added or removed from this list. This list is not a
# "honor role" of respected contributors. It is a list of people who often make
# certain kinds of changes to the codebase.
#
# To become a Global Approver:
#
# - The applicant must have a demonstrated ability to make large-scale
#   changes across the whole codebase.
#
# - The applicant may self-nominate or get nominated by another committer.
#
# - The applicant must send out a CL notifying all existing global
#   approvers, and then wait at least one business day for discussion and
#   approval.

abarth@google.com
abdulla@google.com
bryanhenry@google.com
digit@google.com
ianloic@google.com
jamesr@google.com
jeremymanson@google.com
joshuaseaton@google.com
lindkvist@google.com
maruel@google.com
mcgrathr@google.com
mesch@google.com
pascallouis@google.com
phosek@google.com
qsr@google.com
raggi@google.com
shayba@google.com
surajmalhotra@google.com
thatguy@google.com
tmandry@google.com

per-file go.mod = maruel@google.com,olivernewman@google.com,tamird@google.com
per-file go.sum = maruel@google.com,olivernewman@google.com,tamird@google.com
