Skip to content

Commit 38fd1bd

Browse files
author
MarcoFalke
committed
Merge #18949: doc: Add CODEOWNERS file to automatically nominate PR reviewers
a06eb03 doc: Add comments and additional reviewers to CODEOWNERS file (Adam Jonas) e02da22 doc: Add CODEOWNERS file (Wladimir J. van der Laan) Pull request description: This PR brings back and builds on #17094. GitHub uses a CODEOWNERS magic file to automatically add tagged contributors to the "Reviewers" list for a PR. The goal of this is to make use of GitHub's suggested reviewers feature and not to confer ownership or give veto power to specific people. It would be better if this file could be named CODEREVIEWERS, but alas, that wouldn't work. The idea of a NAGFILE was proposed in [Bitcoin Core Dev meeting in 2018](https://diyhpl.us/wiki/transcripts/bitcoin-core-dev-tech/2018-03-07-priorities/#:~:text=NAGFILE). While this GitHub implementation has some complications, it's a step towards realizing the promise of automating "reviewing begging" and (hopefully) positively impacting the review process as a whole. Of secondary value, this file can serve as documentation for who the maintainers are and who it might be smart to check with for certain areas of code/features (i.e., fuzzing, PSBT, and Bech32) -- this is helpful information for new contributors. * The first commit is taken from #17094 * The second commit adds comments and expands the list of reviewers based on the suggestions and comments from that PR * ~The third WIP commit~ This commit also uses the doc dir as an example of granular assignments based on lines of codes ~contributed~ written and/or general engagement with the project. (If interested, here is a report for [most lines of code per author for each file](https://gist.github.com/adamjonas/854a46a1918224927b186865baeac411)). The pro of this level of detail is that the best reviewer is more likely to be nominated. The con is that it will create churn as files are renamed, new files are added, or reviewers want to be added or removed. Some open questions: * How often should this file be changed? * What level of history does one need have on the project before being added to this file? When does it make sense to remove a reviewer? * These review notifications can [cause a lot of noise](https://github.community/t5/How-to-use-Git-and-GitHub/Team-based-notifications-or-rework-CODEOWNERS-notification/td-p/7811) and automatically subscribes the requested reviewer to the thread. A GitHub Team based approach would allow for adding or removing reviewers without modifying this file; however, this comes along with its [own set of problems](https://bionic.fullstory.com/taming-github-codeowners-with-bots/#problems-with-github-code-owners), including granting [write access](https://github.community/t5/How-to-use-Git-and-GitHub/CODEOWNERS-works-with-users-but-not-teams/td-p/4986#U4991). Other projects [have used bots](https://bionic.fullstory.com/taming-github-codeowners-with-bots/#using-a-github-bot) to sidestep this. Top commit has no ACKs. Tree-SHA512: aa674ac62478b8801f48750df869c802070dc83d0fa9ff93596e9d63406129d7fd3c0daeb35d7a1a259554d045c24746a6808878a7b9867c7ed66d251f0c918f
2 parents 831b0ec + a06eb03 commit 38fd1bd

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed

CODEOWNERS

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# ==============================================================================
2+
# Bitcoin Core CODEOWNERS
3+
# ==============================================================================
4+
5+
# Configuration of code ownership and review approvals for the bitcoin/bitcoin
6+
# repo.
7+
8+
# Order is important; the last matching pattern takes the most precedence.
9+
# More info on how this file works can be found at:
10+
# https://help.github.com/articles/about-codeowners/
11+
12+
# This file is called CODEOWNERS because it is a magic file for GitHub to
13+
# automatically suggest reviewers. In this project's case, the names below
14+
# should be thought of as code reviewers rather than owners. Regular
15+
# contributors are free to add their names to specific directories or files
16+
# provided that they are willing to provide a review when automatically
17+
# assigned.
18+
19+
# Absence from this list should not be interpreted as a discouragement to
20+
# review a pull request. Peer review is always welcome and is a critical
21+
# component of the progress of the codebase. Information on peer review
22+
# guidelines can be found in the CONTRIBUTING.md doc.
23+
24+
25+
# Maintainers
26+
# @laanwj
27+
# @sipa
28+
# @fanquake
29+
# @jonasschnelli
30+
# @marcofalke
31+
# @meshcollider
32+
33+
# Docs
34+
/doc/*[a-zA-Z-].md @harding
35+
/doc/Doxyfile.in @fanquake
36+
/doc/REST-interface.md @jonasschnelli
37+
/doc/benchmarking.md @ariard
38+
/doc/bitcoin-conf.md @hebasto
39+
/doc/build-freebsd.md @fanquake
40+
/doc/build-netbsd.md @fanquake
41+
/doc/build-openbsd.md @laanwj
42+
/doc/build-osx.md @fanquake
43+
/doc/build-unix.md @laanwj
44+
/doc/build-windows.md @sipsorcery
45+
/doc/dependencies.md @fanquake
46+
/doc/developer-notes.md @laanwj
47+
/doc/files.md @hebasto
48+
/doc/gitian-building.md @laanwj
49+
/doc/reduce-memory.md @fanquake
50+
/doc/reduce-traffic.md @jonasschnelli
51+
/doc/release-process.md @laanwj
52+
/doc/translation_strings_policy.md @laanwj
53+
54+
# Build aux
55+
/build-aux/m4/bitcoin_qt.m4 @hebasto
56+
57+
# MSVC build system
58+
/build_msvc/ @sipsorcery
59+
60+
# Settings
61+
/src/util/settings.* @ryanofsky
62+
63+
# Fuzzing
64+
/src/test/fuzz/ @practicalswift
65+
/doc/fuzzing.md @practicalswift
66+
67+
# Test framework
68+
/test/functional/mempool_updatefromblock.py @hebasto
69+
/test/functional/feature_asmap.py @jonatack
70+
/test/functional/interface_bitcoin_cli.py @jonatack
71+
/test/functional/tool_wallet.py @jonatack
72+
73+
# Translations
74+
/src/util/translation.h @hebasto
75+
76+
# Dev Tools
77+
/contrib/devtools/security-check.py @fanquake
78+
/contrib/devtools/test-security-check.py @fanquake
79+
/contrib/devtools/symbol-check.py @fanquake
80+
81+
# Gitian/Guix
82+
/contrib/gitian-build.py @hebasto
83+
/contrib/guix/ @dongcarl
84+
85+
# Compatibility
86+
/src/compat/glibc_* @fanquake
87+
88+
# GUI
89+
/src/qt/forms/ @hebasto
90+
91+
# Wallet
92+
/src/wallet/ @achow101
93+
94+
# CLI
95+
/src/bitcoin-cli.cpp @jonatack
96+
97+
# Coinstats
98+
/src/node/coinstats.* @fjahr
99+
100+
# Index
101+
/src/index/ @fjahr
102+
103+
# Descriptors
104+
*descriptor* @achow101 @sipa
105+
106+
# Interfaces
107+
/src/interfaces/ @ryanofsky
108+
109+
# DB
110+
/src/txdb.* @jamesob
111+
/src/dbwrapper.* @jamesob
112+
113+
# Scripts/Linter
114+
*.sh @practicalswift
115+
/test/lint/ @practicalswift
116+
/test/lint/lint-shell.sh @hebasto
117+
118+
# Bech32
119+
/src/bech32.* @sipa
120+
/src/bench/bech32.* @sipa
121+
122+
# PSBT
123+
/src/psbt* @achow101
124+
/src/node/psbt* @achow101
125+
/doc/psbt.md @achow101
126+
127+
# P2P
128+
/src/net_processing.* @sipa
129+
/src/protocol.* @sipa
130+
131+
# Consensus
132+
/src/coins.* @sipa @jamesob
133+
/src/script/script.* @sipa
134+
/src/script/interpreter.* @sipa
135+
/src/validation.* @sipa
136+
/src/consensus/ @sipa

0 commit comments

Comments
 (0)