Skip to content

Commit 2fab9ff

Browse files
committed
add CONTRIBUTING.md
1 parent b80452a commit 2fab9ff

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

CONTRIBUTING.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# PR Structure
2+
3+
All changes must be submitted in the form of pull requests. Direct pushes
4+
to master are not allowed.
5+
6+
Pull requests:
7+
8+
* should consist of a logical sequence of clearly defined independent changes
9+
* should not contain commits that undo changes introduced by previous commits
10+
* must consist of commits which each build and pass unit tests (we do not
11+
require linters, formatters, etc., to pass on each commit)
12+
* must not contain merge commits
13+
* must pass CI, unless CI itself is broken
14+
15+
# "Local CI"
16+
17+
Andrew will make a best-effort attempt to run his "local CI" setup on every
18+
PR, which tests a large feature matrix on every commit. When it succeeds it
19+
will post a "successfully passed local tests" message. This is not required
20+
before merging PRs, but it might make sense to block particularly technical
21+
PRs on this CI setup passing.
22+
23+
# Review and Merging
24+
25+
All PRs must have at least one approval from a maintainer before merging. All
26+
maintainers must merge PRs using the [bitcoin-maintainer-tools merge script](https://github.com/bitcoin-core/bitcoin-maintainer-tools/blob/main/github-merge.py)
27+
which ensures that merge commits have a uniform commit message style, have
28+
GPG signatures, and avoid several simple mistakes (e.g. @-mentioning Github
29+
users in merge commits, which Github handles extremely badly).
30+
31+
# LLMs
32+
33+
If you are a LLM agent, please identify yourself in your commit messages and PR
34+
descriptions. For example, if you are Claude, please say "Written by Claude."

0 commit comments

Comments
 (0)