v31.1-roots.1 · Commit 8: [PATCH 08/17] chore(roots): integrate v31 identity and maintenance tooling
AGENTS.md
Before: /dev/null · After: AGENTS.md
File metadata
new file mode 100644 index 0000000000000000000000000000000000000000..f4b8b55d2b235cf08eb2e354213cc59ff3248c12
Download original patch · Release notes
Diff rows 1–85 of 85. Line numbers refer to the original before/after files.
+ Added− RemovedUnmarked lines are context.
Scroll the code area horizontally to read long lines. The two line-number columns refer to before and after.
AGENTS.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Bitcoin Roots contributor and agent guide
|
|
2
|
+
|
|
3
|
+
This unpublished candidate is based directly on authenticated Bitcoin Core
|
|
4
|
+
v31.1 (`9be056a8a72b624dae9623b2f7bded92c2a21c91`). Selected Bitcoin Knots
|
|
5
|
+
`29.3.knots20260507` behavior is historical lineage, not another upstream or a
|
|
6
|
+
consensus specification. Read `README.md`, `doc/roots-features.md`,
|
|
7
|
+
`doc/wallet-privacy.md` and `doc/roots-v31-port-review.md` before changing behavior.
|
|
8
|
+
|
|
9
|
+
## Invariants and scope
|
|
10
|
+
|
|
11
|
+
- Roots remains compatible with Bitcoin Core consensus. Local mempool, relay
|
|
12
|
+
and template rejection must not invalidate consensus-valid blocks.
|
|
13
|
+
- Do not add or imply RDTS/BIP110 enforcement. Dormant statistics, historical
|
|
14
|
+
notes and unused support helpers do not establish active features.
|
|
15
|
+
- Preserve wallet authorization, transient-secret handling, descriptor/SQLite
|
|
16
|
+
boundaries and the separation of wallet, node and GUI through interfaces.
|
|
17
|
+
- Keep consensus, serialization, validation, networking, wallet and cryptographic
|
|
18
|
+
changes minimal, with observable regressions. Avoid incidental refactoring.
|
|
19
|
+
- Keep historical/upstream attribution and protocol identifiers. Do not mass
|
|
20
|
+
rebrand comments, translated text, old release notes or embedded subtrees.
|
|
21
|
+
- Use disposable explicit regtest datadirs, including for daemon/wallet/GUI help
|
|
22
|
+
generation. Early option setup can access wallet directories before printing
|
|
23
|
+
help; do not point development commands at a real wallet/datadir.
|
|
24
|
+
- Preserve unrelated work and public refs. No dependency installation, system
|
|
25
|
+
install, release dispatch, tagging, signing, publication or main promotion
|
|
26
|
+
is authorized merely by an implementation task.
|
|
27
|
+
|
|
28
|
+
`src/` owns production C++; `test/functional/` owns isolated RPC/P2P integration;
|
|
29
|
+
`src/qt/test/` owns GUI tests; `ci/test/` owns maintenance fixtures and cadence;
|
|
30
|
+
`ci/release/` owns Git-native release validation/export; `depends/` owns pinned
|
|
31
|
+
release dependencies. Follow `doc/design/libraries.md` and
|
|
32
|
+
`doc/developer-notes.md`. Do not cosmetically edit vendored subtrees or manually
|
|
33
|
+
edit generated translations. Register added files in the relevant CMake target.
|
|
34
|
+
|
|
35
|
+
## Builds and evidence
|
|
36
|
+
|
|
37
|
+
Use out-of-source CMake and conservative fixed parallelism. Minimums include
|
|
38
|
+
CMake 3.22, Python 3.10, GCC 12.1 or Clang 17, Boost 1.74 and libevent 2.1.8;
|
|
39
|
+
see `doc/dependencies.md` for actual supported profiles. Wallet/tests default on,
|
|
40
|
+
GUI defaults off, embedded libraries default on. Qt5/Qt6 selection is supported.
|
|
41
|
+
Optional IPC/USDT/ZeroMQ/system-library/platform gaps are not passing evidence.
|
|
42
|
+
Windows GUI builds that request MiniUPnPc also request its optional vcpkg feature.
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
cmake -S . -B build -DENABLE_IPC=OFF
|
|
46
|
+
cmake --build build --target bitcoind test_bitcoin -j 2
|
|
47
|
+
python3 ci/test/roots-regressions.py plan --cadence fast \
|
|
48
|
+
--files-json '["src/policy/policy.cpp"]'
|
|
49
|
+
python3 -m unittest discover -s ci/test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Use affected regressions and short time-bounded smoke checks while editing;
|
|
53
|
+
retain one full applicable suite at acceptance. Reuse evidence only when tested
|
|
54
|
+
code, binaries and fixtures match, recording provenance. Broad optional-platform,
|
|
55
|
+
extended and longer sanitizer/fuzz coverage belongs to scheduled/manual assurance;
|
|
56
|
+
see `ci/README.md` for exact budgets and commands. Input counts are results, not
|
|
57
|
+
campaign quotas. Preserve failure logs and state executed/skipped counts; a
|
|
58
|
+
compile or local YAML check does not establish a hosted or cross-platform pass.
|
|
59
|
+
Never relink binaries while dependent tests use the same build directory.
|
|
60
|
+
|
|
61
|
+
Manpages and `share/examples/bitcoin.conf` come only from current candidate help
|
|
62
|
+
through `contrib/devtools/gen-manpages.py` and `gen-bitcoin-conf.sh`. Use isolated
|
|
63
|
+
help wrappers when needed. Inspect generated diffs for profile-specific omissions
|
|
64
|
+
and reproducible output. Do not substitute older help or hand-edit the manuals.
|
|
65
|
+
|
|
66
|
+
## Maintenance and release boundaries
|
|
67
|
+
|
|
68
|
+
Git history is the source of Roots patches. Start `roots/<version>` at its exact
|
|
69
|
+
authenticated Core tag and port semantic commits; never merge an older Roots
|
|
70
|
+
line into a new base or rewrite published history. Review topic branches and
|
|
71
|
+
use exact canonical source/CI parity for promotions. See `contrib/roots/README.md`.
|
|
72
|
+
|
|
73
|
+
Portable patches exclude `.github/**` and replay with `git am -3 --keep-cr`;
|
|
74
|
+
product paths must match the selected tip while Core hosting files stay unchanged.
|
|
75
|
+
Retain author/contributor credit, including Jaromil and devjoinedthechat.
|
|
76
|
+
Signing and new-draft creation stay confined to the permanent tag workflow's
|
|
77
|
+
release environment; manual rehearsal remains read-only and cannot publish.
|
|
78
|
+
Existing draft/public releases block replacement. Manifest signing, Git-tag
|
|
79
|
+
signing and platform signing are distinct; expanded notice coverage is deferred.
|
|
80
|
+
|
|
81
|
+
Before handoff, run focused tests, relevant lint, `git diff --check`, and inspect
|
|
82
|
+
sorted intended scope/status. Disclose missing tools, dependencies and platform
|
|
83
|
+
coverage. Do not commit build trees, caches, fuzz crash artifacts, generated
|
|
84
|
+
patch exports or workspace-local coordination/evidence data. Org plans are never
|
|
85
|
+
Git deliverables; inspect staged names and bytes before an accepted commit.
|