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. Before is on the left; after is on the right. Unified view fits narrow screens more easily.
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.
|