Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
meta: introduce codeowners again
The [Contributor's Survey
results](nodejs/TSC#882) highlight the fact that
it is often not easy for contributors to know who the right people are
to talk to about a proposed change or who to ask for reviews of a given
subsystem. We briefly toyed around with codeowners before when GitHub
introduced it but just as quickly disabled it because the structure of
our repository made it exceedingly difficult to get right.

Rather than start with a codeowners for the entire project, I propose
that we start with a small experiment focused on specific subsystems.
Specifically, codeowners for modules, streams, net/tls, http/http2, and
quic (once that lands). We can expand out from there as we see how
things go with the minimal starter set. Initially this just enables
codeowners for the `quic` subsystem.

A couple of points:

1. A codeowner should always be a team, never an individual person
2. Each codeowner team should contain at least one TSC member (to
provide coverage for signing off on semver-major changes)
3. PRs touching any code with a codeowner must be signed off by at least
one person on the codeowner team

PR-URL: #33895
Reviewed-By: Matheus Marchini <mat@mmarchini.me>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
  • Loading branch information
jasnell authored and mmarchini committed Jun 20, 2020
commit fdf10adef8443c19899c306804cbe585113ff453
76 changes: 76 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Node.js Project Codeowners

# 1. Codeowners must always be teams, never individuals
# 2. Each codeowner team should contain at least one TSC member
# 3. PRs touching any code with a codeowner must be signed off by at least one
# person on the code owner team.

./.github/CODEOWNERS @nodejs/tsc

# net

# ./deps/cares @nodejs/net
# ./doc/api/dns.md @nodejs/net
# ./doc/api/dgram.md @nodejs/net
# ./doc/api/net.md @nodejs/net
# ./lib/dgram.js @nodejs/net
# ./lib/dns.js @nodejs/net
# ./lib/net.js @nodejs/net @nodejs/quic
# ./lib/internal/dgram.js @nodejs/net
# ./lib/internal/dns/* @nodejs/net
# ./lib/internal/net.js @nodejs/net
# ./lib/internal/socket_list.js @nodejs/net
# ./lib/internal/js_stream_socket.js @nodejs/net
# ./src/cares_wrap.h @nodejs/net
# ./src/connect_wrap.* @nodejs/net
# ./src/connection_wrap.* @nodejs/net
# ./src/node_sockaddr* @nodejs/net
# ./src/tcp_wrap.* @nodejs/net
# ./src/udp_wrap.* @nodejs/net

# tls/crypto

# ./lib/internal/crypto/* @nodejs/crypto
# ./lib/internal/tls.js @nodejs/crypto @nodejs/net
# ./lib/crypto.js @nodejs/crypto
# ./lib/tls.js @nodejs/crypto @nodejs/net
# ./src/node_crypto* @nodejs/crypto
# ./src/node_crypto_common* @nodejs/crypto @nodejs/quic

# http

# ./deps/llhttp/* @nodejs/http @nodejs/net
# ./doc/api/http.md @nodejs/http @nodejs/net
# ./doc/api/http2.md @nodejs/http @nodejs/net
# ./lib/_http_* @nodejs/http @nodejs/net
# ./lib/http.js @nodejs/http @nodejs/net
# ./lib/https.js @nodejs/crypto @nodejs/net @nodejs/http
# ./src/node_http_common* @nodejs/http @nodejs/http2 @nodejs/quic @nodejs/net
# ./src/node_http_parser.cc @nodejs/http @nodejs/net

# http2

# ./deps/nghttp2/* @nodejs/http2 @nodejs/net
# ./doc/api/http2.md @nodejs/http2 @nodejs/net
# ./lib/http2.js @nodejs/http2 @nodejs/net
# ./lib/internal/http2/* @nodejs/http2 @nodejs/net
# ./src/node_http2* @nodejs/http2 @nodejs/net
# ./src/node_mem* @nodejs/http2

# quic

./deps/ngtcp2/* @nodejs/quic
./deps/nghttp3/* @nodejs/quic
./doc/api/quic.md @nodejs/quic
./lib/internal/quic/* @nodejs/quic
./src/node_bob* @nodejs/quic
./src/quic/* @nodejs/quic

# modules

# ./doc/api/modules.md @nodejs/modules
# ./doc/api/esm.md @nodejs/modules
# ./lib/module.js @nodejs/modules
# ./lib/internal/modules/* @nodejs/modules
# ./lib/internal/bootstrap/loaders.js @nodejs/modules
# ./src/module_wrap* @nodejs/modules @nodejs/vm