This file contains a list of people who are responsible for certain parts of
the HAProxy project and who have authority on them. This means that these
people have to be consulted before doing any change in the parts they maintain,
including when fixing bugs. These persons are allowed to reject any change on
the parts they maintain, and in parallel they try their best to ensure these
parts work well. Similarly, any change to these parts not being validated by
them will be rejected.

The best way to deal with such subsystems when sending patches is to send the
patches to the mailing list and to CC these people. When no maintainer is
listed for a subsystem, you can simply send your changes the usual way, and it
is also a sign that if you want to strengthen your skills on certain parts you
can become yourself a maintainer of the parts you care a lot about.

Please do not ask them to troubleshoot your bugs, it's not their job even though
they may occasionally help as time permits.

List of maintainers
-------------------

51Degrees device identification
Maintainer: Ben Shillito <ben@51degrees.com>
Files: addons/51degrees, doc/51Degrees-device-detection.txt

Cache
Maintainer: William Lallemand <wlallemand@haproxy.com>
Files: src/cache.c, include/haproxy/cache*.h

DeviceAtlas device identification
Maintainer: David Carlier <dcarlier@deviceatlas.com>
Files: addons/deviceatlas, doc/DeviceAtlas-device-detection.txt

DNS and Resolvers
Maintainer: Emeric Brun <ebrun@haproxy.com>
Maintainer: Baptiste Assmann <bedis9@gmail.com>
Files: src/dns.c, include/haproxy/dns*.h
Files: src/resolvers.c, include/haproxy/resolvers*.h

Doc to HTML converter (dconv)
Maintainer: Cyril Bonté <cyril.bonte@free.fr>
Files: doc/*.txt
Note: ask Cyril before changing any doc's format or structure.

EBTree
Maintainer: Willy Tarreau <w@1wt.eu>
Files: src/eb*.c, include/import/eb*.h

FCGI:
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/mux_fcgi.c, src/fcgi*.c, include/haproxy/fcgi*.h

Filters:
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/filters.c, src/flt_*.c, include/haproxy/filters*.h
Files: doc/internals/filters.txt

H1 and HTX
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/mux_h1.c src/h1_htx.c, include/haproxy/h1_htx.h

H2 and HPACK
Maintainer: Willy Tarreau <w@1wt.eu>
Files: src/mux_h2.c src/h2.c src/hpack*.c
Files: include/haproxy/h2.h, include/haproxy/hpack*.h

Health checks
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/checks.c, include/haproxy/check*.h
Files: src/tcpcheck.c, include/haproxy/tcpcheck*.h
Note: health checks are fragile and have been broken many times, so please
      consult the relevant maintainers if you want to change these specific
      parts.

HTTP
Maintainer: Willy Tarreau <w@1wt.eu>
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/http*.h, include/haproxy/http*.h

HTX
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/htx.c, include/haproxy/htx*.c, doc/internals/htx-api.txt

Lua
Maintainer: Thierry Fournier <tfournier@arpalert.org>
Files: src/hlua.c, include/haproxy/hlua*.h

Mailers
Maintainer: Simon Horman <horms@verge.net.au>
Files: src/mailers.c, include/haproxy/mailers*.h

Maps and pattern matching
Maintainer: Thierry Fournier <tfournier@arpalert.org>
Files: src/map.c, include/haproxy/map*.h
Files: src/pattern.c, include/haproxy/pattern*.h

Master-worker
Maintainer: William Lallemand <wlallemand@haproxy.com>
Note: Please CC William when touching src/haproxy.c and admin/systemd

Multi-threading
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Maintainer: Emeric Brun <ebrun@haproxy.com>
Files: src/thread.c, include/haproxy/thread*.h
Note: every change around the locking or synchronization point will require
      approval from one of these maintainers. Problems which only appear when
      nbthread is greater than 1 and which disappear otherwise are also
      relevant.

Multi-threaded task scheduler
Maintainer: Willy Tarreau <w@1wt.eu>
Maintainer: Olivier Houchard <cognet@ci0.org>
Files: include/haproxy/task*.h src/task.c

Peers
Maintainer: Emeric Brun <ebrun@haproxy.com>
Frédéric Lécaille <flecaille@haproxy.com>
Files: src/peers.c, include/haproxy/peers*.h

Prometheus Exporter
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Maintainer: William Dauchy <wdauchy@gmail.com>
Files: addons/promex
Note: William is the referent regarding Prometheus. He should be consulted for
      all additions and modifications of features. Christopher is the referent
      for the code itself. He should be consulted for questions regarding the
      exporter integration into HAProxy, as well as for the bugs.

QUIC and HTTP/3
Maintainer: Frédéric Lécaille <flecaille@haproxy.com>
Maintainer: Amaury Denoyelle <adenoyelle@haproxy.com>
Files: src/quic*.c, src/cfgparse-quic.c, include/haproxy/quic*.h
Files: src/mux_quic.c, include/haproxy/mux_quic.h,
Files: src/proto_quic.c, include/haproxy/proto_quic.h
Files: src/xprt_quic.c, include/haproxy/xprt_quic.h
Files: src/h3*.c, include/haproxy/h3*.h

ScientiaMobile WURFL Device Detection
Maintainer: Paul Borile, Massimiliano Bellomi <wurfl-haproxy-support@scientiamobile.com>
Files: addons/wurfl, doc/WURFL-device-detection.txt

SPOE (deprecated)
Maintainer: Christopher Faulet <cfaulet@haproxy.com>
Files: src/flt_spoe.c, include/haproxy/spoe*.h, doc/SPOE.txt

SSL
Maintainer: Emeric Brun <ebrun@haproxy.com>
Maintainer: William Lallemand <wlallemand@haproxy.com>
Files: src/cfgparse-ssl.c, src/ssl_*.c, include/haproxy/ssl_*.h

Thread-safe lists
Maintainer: Olivier Houchard <cognet@ci0.org>
Files: include/haproxy/list*.h
