-
Notifications
You must be signed in to change notification settings - Fork 1.2k
backport: Merge bitcoin#28725, 28771, 28814, 28546, 28076, 28741, 28727, 22764 #7280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
8eae736
e6217e4
c97da44
cb0f32a
642b31a
a0e1236
12aded5
34a3136
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -33,6 +33,17 @@ if [ -z "${SKIP_PYTHON_INSTALL}" ]; then | |
| python3 --version | ||
| fi | ||
|
|
||
| export LINT_RUNNER_PATH="/lint_test_runner" | ||
| if [ ! -d "${LINT_RUNNER_PATH}" ]; then | ||
| ${CI_RETRY_EXE} apt-get install -y cargo | ||
| ( | ||
| cd ./test/lint/test_runner || exit 1 | ||
| cargo build | ||
| mkdir -p "${LINT_RUNNER_PATH}" | ||
| mv target/debug/test_runner "${LINT_RUNNER_PATH}" | ||
| ) | ||
|
coderabbitai[bot] marked this conversation as resolved.
Comment on lines
+36
to
+44
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Suggestion: bitcoin#28076 lint runner is not integrated into a working Dash lint path Upstream builds this runner after checkout from a repository-root CI script and then executes it. Dash instead builds it from source: ['codex'] |
||
| fi | ||
|
|
||
| # NOTE: BUMP ALSO contrib/containers/ci/ci-slim.Dockerfile | ||
| ${CI_RETRY_EXE} pip3 install codespell==2.2.1 | ||
| ${CI_RETRY_EXE} pip3 install flake8==5.0.4 | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -27,6 +27,7 @@ test/lint/git-subtree-check.sh src/crypto/ctaes | |
| test/lint/git-subtree-check.sh src/secp256k1 | ||
| test/lint/git-subtree-check.sh src/minisketch | ||
| test/lint/git-subtree-check.sh src/leveldb | ||
| RUST_BACKTRACE=1 "${LINT_RUNNER_PATH}/test_runner" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This only adds the Rust runner to AGENTS.md reference: AGENTS.md:L146-L151 Useful? React with 👍 / 👎. |
||
| test/lint/check-doc.py | ||
| test/lint/all-lint.py | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -17,3 +17,4 @@ export RUN_FUZZ_TESTS=true | |||||
| export GOAL="install" | ||||||
| export BITCOIN_CONFIG="--enable-zmq --enable-fuzz --with-sanitizers=fuzzer,address,undefined,float-divide-by-zero,integer \ | ||||||
| CC='clang-19 -ftrivial-auto-var-init=pattern' CXX='clang++-19 -ftrivial-auto-var-init=pattern'" | ||||||
| export LLVM_SYMBOLIZER_PATH="/usr/bin/llvm-symbolizer-17" | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
# Inspect compiler and symbolizer pins in the changed CI setup script.
rg -n 'BITCOIN_CONFIG|LLVM_SYMBOLIZER_PATH|clang-[0-9]+|llvm-symbolizer-[0-9]+' ci/test/00_setup_env_native_fuzz.sh -C1
# Extract and compare major versions (read-only check).
python - <<'PY'
import re
from pathlib import Path
p = Path("ci/test/00_setup_env_native_fuzz.sh").read_text()
clang = re.search(r"clang-(\d+)", p)
symbolizer = re.search(r"llvm-symbolizer-(\d+)", p)
print("clang_major =", clang.group(1) if clang else "not found")
print("symbolizer_major =", symbolizer.group(1) if symbolizer else "not found")
if clang and symbolizer and clang.group(1) != symbolizer.group(1):
print("RESULT: version mismatch detected (needs explicit justification).")
else:
print("RESULT: no major-version mismatch detected in this file.")
PYRepository: dashpay/dash Length of output: 446 Address LLVM version mismatch and verify CI-scope approval. Line 19 pins 🤖 Prompt for AI AgentsThere was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 Blocking: Fuzz runner is configured with a nonexistent LLVM 17 symbolizer Upstream bitcoin#28814 used
Suggested change
source: ['codex'] |
||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -6,7 +6,7 @@ | |||||
| import sys | ||||||
| import re | ||||||
| import multiprocessing | ||||||
| from typing import Dict, List, Set | ||||||
| from multiprocess import Pool # type: ignore[import] | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When the circular-dependency lint runs via Useful? React with 👍 / 👎. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win Remove the accidental The implementation uses 🧰 Tools🪛 Flake8 (7.3.0)[error] 9-9: 'multiprocess.Pool' imported but unused (F401) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||||
|
|
||||||
| MAPPING = { | ||||||
| 'core_read.cpp': 'core_io.cpp', | ||||||
|
|
@@ -34,13 +34,13 @@ def module_name(path): | |||||
| return None | ||||||
|
|
||||||
| files = dict() | ||||||
| deps: Dict[str, Set[str]] = dict() | ||||||
| deps: dict[str, Set[str]] = dict() | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
After removing Useful? React with 👍 / 👎. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick win
Line 37 still uses 🐛 Proposed fix-deps: dict[str, Set[str]] = dict()
+deps: dict[str, set[str]] = dict()📝 Committable suggestion
Suggested change
🧰 Tools🪛 Flake8 (7.3.0)[error] 37-37: undefined name 'Set' (F821) 🪛 Ruff (0.15.20)[error] 37-37: Undefined name (F821) 🤖 Prompt for AI AgentsSource: Linters/SAST tools
Comment on lines
9
to
+37
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 Blocking: Circular dependency lint no longer imports The bitcoin#28725 transformation removes source: ['codex'] |
||||||
|
|
||||||
| # Defined at module level (reading the global `deps`) so it pickles by reference | ||||||
| # for multiprocessing.Pool; forked workers inherit the populated `deps`. | ||||||
| def handle_module2(module): | ||||||
| # Build the transitive closure of dependencies of module | ||||||
| closure: Dict[str, List[str]] = dict() | ||||||
| closure: dict[str, list[str]] = dict() | ||||||
| for dep in deps[module]: | ||||||
| closure[dep] = [] | ||||||
| while True: | ||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This
cdruns from/install.shduring the lint image build. I checkedci/lint/Dockerfile: it builds from./ci/lint, copies only04_install.shanddocker-entrypoint.sh, and invokes/install.shbefore the repository is mounted as/bitcoin, so./test/lint/test_runnerdoes not exist and the documenteddocker build -t bitcoin-linter .flow fails.Useful? React with 👍 / 👎.