List of maintainers for OpenBMC
===============================

How to use this list:
    Find the most specific section entry (described below) that matches where
    your change lives and add the reviewers (R) and maintainers (M) as
    reviewers. You can use the same method to track down who knows a particular
    code base best.

    Your change/query may span multiple entries; that is okay.

    If you do not find an entry that describes your request at all, someone
    forgot to update this list; please at least file an issue or send an email
    to a maintainer, but preferably you should just update this document.

Description of section entries:

    Section entries are structured according to the following scheme:

    @REPO_NAME://FILE_PATH
    X:  NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>
    X:  ...
    .
    .
    .

    Where REPO_NAME is the name of the repository within the OpenBMC GitHub
    organization; FILE_PATH is a file path within the repository, possibly with
    wildcards; X is a tag of one of the following types:

    M:  Denotes maintainer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
        if omitted from an entry, assume one of the maintainers from the
        MAINTAINERS entry.
    R:  Denotes reviewer; has fields NAME <EMAIL_USERNAME@DOMAIN> <IRC_USERNAME!>;
        these people are to be added as reviewers for a change matching the repo
        path.
    F:  Denotes forked from an external repository; has fields URL.

    Line comments are to be denoted "# SOME COMMENT" (typical shell style
    comment); it is important to follow the correct syntax and semantics as we
    may want to use automated tools with this file in the future.

    The first section is special; it denotes the MAINTAINERS who have the
    privilege to approve something to be added to an OpenBMC repository. A change
    will cannot be added to an OpenBMC repository without a MAINTAINER's
    approval; thus, a MAINTAINER should always be listed as a reviewer.

START OF MAINTAINERS LIST
-------------------------

# As mentioned above, this is a special entry that denotes the MAINTAINER for
# all repositories that do not list one explicitly; you need one of these people
# to approve your change (currently that is a +2 in Gerrit for all this entry
# applies to).
MAINTAINERS
M:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@btbridge://*
R:  Cyril Bur <cyril.bur@au1.ibm.com>
R:  Joel Stanley <joel@jms.id.au> <shenki!>

@docs://*
M:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>
M:  Gunnar Mills <gmills@us.ibm.com> <gmills!>
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
R:  Andrew Jeffery <andrew@aj.id.au> <amboar!>

@inarp://*
M:  Jeremy Kerr <jk@ozlabs.org> <jk!>
R:  Joel Stanley <joel@jms.id.au> <shenki!>

@ipmi-fru-parser://*
M:  Vernon Mauery <vernon.mauery@linux.intel.com> <vmauery!>
M:  Tom Joseph <tomjose@linux.vnet.ibm.com> <tomjoseph!>
M:  Emily Shaffer <emilyshaffer@google.com> <emilyshaffer!>

@ipmitool://*
F:  https://sourceforge.net/p/ipmitool/source/ci/master/tree/
M:  Jeremy Kerr <jk@ozlabs.org> <jk!>
M:  # TODO: Did not see a clear candidate for who should be the backup
R:  Jeremy Kerr <jk@ozlabs.org> <jk!>
# FOR CHANGES TO THE OPENBMC BRANCH:
M:  Vernon Mauery <vernon.mauery@linux.intel.com> <vmauery!>
M:  Tom Joseph <tomjose@linux.vnet.ibm.com> <tomjoseph!>
M:  Emily Shaffer <emilyshaffer@google.com> <emilyshaffer!>

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: please send patches using
# "git send-email"
# TO: Joel Stanley <joel@jms.id.au>
# and
# CC: <openbmc@lists.ozlabs.org>
@linux://*
F:  https://github.com/torvalds/linux
M:  Joel Stanley <joel@jms.id.au> <shenki!>
R:  Andrew Jeffery <andrew@aj.id.au> <amboar!>
R:  Cédric Le Goater <clg@kaod.org> <cdrx!>

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: please send patches using
# "git send-email"
# TO: Andrew Jeffery <andrew@aj.id.au>, Suraj Jitindar Singh <sjitindarsingh@gmail.com>
# and
# CC: <openbmc@lists.ozlabs.org>, <skiboot@lists.ozlabs.org>
@mboxbridge://*
M:  Andrew Jeffery <andrew@aj.id.au> <amboar!>
R:  Suraj Jitindar Singh <sjitindarsingh@gmail.com>

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: this is a subtree in
# @openbmc and is synced by the maintainer using git-subtree. Please submit
# changes against @openbmc.
@meta-aspeed://*

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: this is a subtree in
# @openbmc and is synced by the maintainer using git-subtree. Please submit
# changes against @openbmc.
@meta-openpower://*

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: this is a subtree in
# @openbmc and is synced by the maintainer using git-subtree. Please submit
# changes against @openbmc.
@meta-phosphor://*

@obmc-console://*
R:  Jeremy Kerr <jk@ozlabs.org> <jk!>
R:  Joel Stanley <joel@jms.id.au> <shenki!>

@openbmc-build-scripts://*
R:  Joel Stanley <joel@jms.id.au> <shenki!>
R:  Andrew Geissler <andrewg@us.ibm.com> <andrewg!>
R:  Matthew Barth <msbarth@linux.ibm.com> <msbarth!>

@openbmc-test-automation://*
M:  George Keishing <gkeishin@in.ibm.com> <gkeishin!>
R:  Michael Walsh <micwalsh@us.ibm.com> # TODO: MISSING IRC HANDLE

@openbmc://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@openbmc://meta-evb/meta-evb-raspberrypi/*
R:  Yi TZ Li <shliyi@cn.ibm.com> # TODO: MISSING IRC HANDLE

@openbmc://meta-evb/meta-evb-aspeed/meta-evb-ast2500/*
R:  Joel Stanley <joel@jms.id.au> <shenki!>

@openbmc://meta-x86/meta-mellanox/meta-msn/*
R:  Mykola Kostenok <c_mykolak@mellanox.com> # TODO: MISSING IRC HANDLE

@openbmc://meta-x86/meta-quanta/meta-q71l/*
R:  Patrick Venture <venture@google.com> <venture!>

@openbmc://meta-openpower/meta-ingrasys/meta-zaius/*
R:  Robert Lippert <rlippert@google.com> <rlippert!>

@openbmc://meta-openpower/meta-ibm/meta-romulus/*
R:  Lei YU <mine260309@gmail.com> # TODO: MISSING IRC HANDLE
R:  Joel Stanley <joel@jms.id.au> # <shenki!>

@openbmc://meta-openpower/meta-ibm/meta-palmetto/*
R:  Lei YU <mine260309@gmail.com> # TODO: MISSING IRC HANDLE
R:  Joel Stanley <joel@jms.id.au> # <shenki!>

@openbmc://meta-openpower/meta-ibm/meta-witherspoon/*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>
R:  Andrew Geissler <andrewg@us.ibm.com> <andrewg!>

@openpower-host-ipmi-oem://*
M:  Tom Joseph <tomjose@linux.vnet.ibm.com> <tomjoseph!>
R:  William Li (Nan Li, 李楠) <william.bjlinan@hotmail.com> <williamNanLi!>

@openpower-inventory-upload://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@openpower-pnor-code-mgmt://*
M:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
M:  Gunnar Mills <gmills@us.ibm.com> <gmills!>
R:  Michael Tritz <mtritz@us.ibm.com> <mtritz!>

@phosphor-bmc-code-mgmt://*
M:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
M:  Gunnar Mills <gmills@us.ibm.com> <gmills!>
R:  Michael Tritz <mtritz@us.ibm.com> <mtritz!>

@phosphor-dbus-interfaces://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@phosphor-event://*
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
R:  Andrew Geissler <andrewg@us.ibm.com> <andrewg!>

@phosphor-host-ipmid://*
M:  Vernon Mauery <vernon.mauery@linux.intel.com> <vmauery!>
M:  Tom Joseph <tomjose@linux.vnet.ibm.com> <tomjoseph!>
M:  Emily Shaffer <emilyshaffer@google.com> <emilyshaffer!>
R:  Chris Austen <austenc@us.ibm.com> <causten!>
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
R:  William Li (Nan Li, 李楠) <william.bjlinan@hotmail.com> # TODO: MISSING IRC HANDLE (william?)

@phosphor-hwmon://*
M:  Patrick Venture <venture@google.com> <venture!>
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>
R:  Matthew Barth <msbarth@linux.ibm.com> <msbarth!>

@phosphor-inventory-manager://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@phosphor-led-manager://*
R:  Vishwanatha Subbanna <vishwanath@in.ibm.com> <vishwa!>

@phosphor-logging://*
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
R:  Andrew Geissler <andrewg@us.ibm.com> <andrewg!>

@phosphor-mboxd://*
M:  Andrew Jeffery <andrew@aj.id.au> <amboar!>
R:  Suraj Jitindar Singh <sjitindarsingh@gmail.com>
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
R:  Deepak Kodihalli <dkodihal@in.ibm.com> <dkodihal!>

@phosphor-mrw-tools://*
R:  Matt Spinler <mspinler@linux.vnet.ibm.com> <mspinler!>

@phosphor-net-ipmid://*
M:  Vernon Mauery <vernon.mauery@linux.intel.com> <vmauery!>
M:  Tom Joseph <tomjose@linux.vnet.ibm.com> <tomjoseph!>
M:  Emily Shaffer <emilyshaffer@google.com> <emilyshaffer!>

@phosphor-networkd://*
R:  Ratan Gupta <ratagupt@linux.vnet.ibm.com> # TODO: MISSING IRC HANDLE
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>

@phosphor-objmgr://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@phosphor-rest-server://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

@phosphor-settingsd://*
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>
R:  Vishwanatha Subbanna <vishwanath@in.ibm.com> <vishwa!>

@phosphor-time-manager://*
R:  Vishwanatha Subbanna <vishwanath@in.ibm.com> <vishwa!>

@phosphor-fan-presence://*
M:  Matthew Barth <msbarth@linux.ibm.com> <msbarth!>

@pyphosphor://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: please send patches using
# "git send-email"
# TO: Andrew Jeffery <andrew@aj.id.au>, Cédric Le Goater <clg@kaod.org>
# and
# CC: <openbmc@lists.ozlabs.org>
@qemu://*
F:  https://github.com/qemu/qemu
M:  Andrew Jeffery <andrew@aj.id.au> <amboar!>
M:  Cédric Le Goater <clg@kaod.org> <cdrx!>
R:  Cédric Le Goater <clg@kaod.org> <cdrx!>
R:  Andrew Jeffery <andrew@aj.id.au> <amboar!>

@rest-dbus://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>
R:  Jeremy Kerr <jk@ozlabs.org> <jk!>

@sdbusplus://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>
R:  Adriana Kobylak <anoo@us.ibm.com> <anoo!>

@skeleton://*
R:  Brad Bishop <bradleyb@fuzziesquirrel.com> <radsquirrel!>
R:  Xo Wang <xow@google.com> <ghf!>

# THIS REPOSITORY HAS A DIFFERENT SUBMISSION PROCESS: please send patches using
# "git send-email"
# TO: Joel Stanley <joel@jms.id.au>
# and
# CC: <openbmc@lists.ozlabs.org>
@u-boot://*
F:  https://github.com/u-boot/u-boot
M:  Joel Stanley <joel@jms.id.au> <shenki!>
M:  Cédric Le Goater <clg@kaod.org> <cdrx!>
