v29.4-roots.2 · Commit 12: [PATCH 12/21] release: add pre-tag artifact rehearsal
AGENTS.md
Before: /dev/null · After: AGENTS.md
File metadata
new file mode 100644 index 0000000000000000000000000000000000000000..234b3b55b179950a5b650efb09d4ee0e710451f2
Download original patch · Release notes
Diff rows 401–471 of 471. 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,471 @@ (continued)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 401 |
+
- Manpages in `doc/man/` and `share/examples/bitcoin.conf` are generated from
|
| 402 |
+
built help output using `contrib/devtools/gen-manpages.py` and
|
| 403 |
+
`contrib/devtools/gen-bitcoin-conf.sh`. Regenerate them only when their source
|
| 404 |
+
help/config interface changes and verify the diff.
|
| 405 |
+
- Do not commit build trees, functional-test caches/temp dirs, fuzz artifacts,
|
| 406 |
+
core dumps, coverage output, editor metadata, or local `.gestalt/` data.
|
| 407 |
+
- Preserve unrelated working-tree changes. Check `git status --short` before
|
| 408 |
+
and after work. Do not reset, clean, or delete files you did not create.
|
| 409 |
+
- Do not update lockfiles, vendored subtrees, generated translations, snapshots,
|
| 410 |
+
or release artifacts as collateral effects.
|
| 411 |
+
- Documentation links and commands may be inherited from upstream. When a
|
| 412 |
+
statement is fork-sensitive, verify it against this checkout before repeating
|
| 413 |
+
it. Fix only the stale material relevant to the current change.
|
| 414 |
+
|
| 415 |
+
## Before handing off
|
| 416 |
+
|
| 417 |
+
Summarize what changed and why, list exact verification commands and outcomes,
|
| 418 |
+
and disclose anything not run or any dependency that prevented it. At minimum:
|
| 419 |
+
|
| 420 |
+
```bash
|
| 421 |
+
git diff --check
|
| 422 |
+
git status --short
|
| 423 |
+
git diff --stat
|
| 424 |
+
```
|
| 425 |
+
|
| 426 |
+
Then run the focused test(s), an appropriate `ctest`/functional subset, and
|
| 427 |
+
relevant lint. Review the final diff for accidental consensus changes, policy
|
| 428 |
+
boundary violations, generated-file churn, branding regressions, secrets,
|
| 429 |
+
absolute local paths, and test-only debug code. A successful compile alone is
|
| 430 |
+
not sufficient evidence for behavioral changes.
|
| 431 |
+
|
| 432 |
+
## Git-native Roots patch and release workflow
|
| 433 |
+
|
| 434 |
+
Git history is the source of truth for Roots patches. Keep each supported Core
|
| 435 |
+
version as a linear semantic series on `roots/<core-version>`, starting at the
|
| 436 |
+
exact matching Bitcoin Core tag. Use reviewable `topic/<core-version>/<area>`
|
| 437 |
+
branches for development, disposable `integration/<core-version>` branches for
|
| 438 |
+
combined CI, `promote/<core-version>` branches to merge a canonical tree into
|
| 439 |
+
`main`, and `archive/*` only to preserve superseded public history. Release
|
| 440 |
+
tags point to canonical `roots/*` tips, not promotion commits on `main`.
|
| 441 |
+
|
| 442 |
+
For a new Core generation, create `roots/<new-version>` directly from the new
|
| 443 |
+
official Core tag. Port the prior Roots commits semantically in logical order,
|
| 444 |
+
usually with `git cherry-pick -x`, dropping behavior Core adopted and explaining
|
| 445 |
+
material rewrites. Do not merge the previous Roots branch into the new Core
|
| 446 |
+
branch. Compare generations with `git range-diff`, keep policy rejection out of
|
| 447 |
+
block validity, and rerun the tests owned by every ported feature.
|
| 448 |
+
|
| 449 |
+
Do not check generated patch files into Git. Release automation exports the
|
| 450 |
+
canonical range with `git format-patch`, excludes `.github/**` from the portable
|
| 451 |
+
product patch, and verifies replay onto the matching Core base. Because the
|
| 452 |
+
series contains inherited CRLF files, apply the released mbox with
|
| 453 |
+
`git am -3 --keep-cr <bitcoin-roots-*.patch>`.
|
| 454 |
+
|
| 455 |
+
Before assigning a permanent release tag:
|
| 456 |
+
|
| 457 |
+
1. Merge the reviewed promotion PR and verify its tree equals the canonical tip.
|
| 458 |
+
2. Dispatch `Release artifacts` from `main` with the future Roots tag and the
|
| 459 |
+
full 40-hex `origin/roots/<core-version>` commit.
|
| 460 |
+
3. Require all five platform builds and independently inspect the packages and
|
| 461 |
+
patch. Manual rehearsal must create neither a remote tag nor a release.
|
| 462 |
+
4. Re-fetch refs, create one annotated tag at the unchanged canonical tip, run
|
| 463 |
+
the release-source validator, and push only that tag. Never move it.
|
| 464 |
+
5. Verify the tag-triggered draft's packages, patch, `SHA512SUMS`, optional
|
| 465 |
+
signature, tag target, and source tree before publishing the unchanged draft.
|
| 466 |
+
6. Repeat tag, asset, checksum, and signature-if-present verification through an
|
| 467 |
+
unauthenticated client after publication.
|
| 468 |
+
|
| 469 |
+
The detailed commands and branch maintenance rules are in
|
| 470 |
+
`contrib/roots/README.md`. The local Bitcoin Core v29.4 tag is signed, but the
|
| 471 |
+
signer public key is absent; do not claim local cryptographic verification.
|