-
Notifications
You must be signed in to change notification settings - Fork 1.2k
backport: Merge bitcoin#28725, 28771, 28825, 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
497e530
c6ae8b8
565c000
18a3f11
45af4f9
c50e1c3
b641073
03c9004
63494e8
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 |
|---|---|---|
|
|
@@ -16,3 +16,4 @@ export RUN_FUNCTIONAL_TESTS=false | |
| export RUN_FUZZ_TESTS=true | ||
| export GOAL="install" | ||
| export BITCOIN_CONFIG="--enable-zmq --enable-fuzz --with-sanitizers=fuzzer,address,undefined,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 Agents |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,10 +8,9 @@ | |
| import shutil | ||
| import sys | ||
| import os | ||
| from typing import List | ||
|
|
||
|
|
||
| def determine_wellknown_cmd(envvar, progname) -> List[str]: | ||
| def determine_wellknown_cmd(envvar, progname) -> list[str]: | ||
|
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. Contrib-path modification needs explicit scope approval. Line 13 changes As per coding guidelines, "Do not make changes to build system files (guix-build*), release artifacts, or avoid changes to .github, depends, ci, contrib, and doc directories unless specifically prompted". 🤖 Prompt for AI Agents |
||
| maybe_env = os.getenv(envvar) | ||
| maybe_which = shutil.which(progname) | ||
| if maybe_env: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -11,7 +11,7 @@ | |
| from io import BytesIO | ||
| import json | ||
| from pathlib import Path | ||
| from typing import Any, List, Optional | ||
| from typing import Any, Optional | ||
|
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
# Description: Check Python version requirements across the project
# Check for python_requires in setup files
fd -e py -e cfg -e toml -e txt 'setup|pyproject|requirements|README' --exec rg -n 'python_requires|Python [0-9]|python.*3\.[0-9]+' {}
# Check shebang lines for version hints
rg -n '^#!/usr/bin/env python3\.[0-9]+' --type py
# Check for other uses of built-in generics (list[], dict[])
rg -n 'def.*:\s*(list|dict)\[' --type py | head -20Repository: dashpay/dash Length of output: 814 🌐 Web query:
💡 Result: PEP 585 introduces support for using built-in collection types like list, dict, tuple, set, frozenset, and type as generics directly in type hints in Python 3.9, without needing to import equivalents from the typing module (e.g., list[str] instead of typing.List[str]). This uses class_getitem for parameterization, available at runtime. Importing the typing versions is deprecated for Python 3.9+, with removal planned after Python 3.9's end-of-life in October 2025. Other collections like collections.deque and collections.defaultdict also gain generic support. Type checkers must recognize these, and with from future import annotations (since 3.7), this works in annotations earlier. Example: def greet_all(names: list[str]) -> None: ... Citations:
Remove built-in generic syntax or add future annotations import to maintain Python 3.7+ compatibility. The changes use PEP 585 syntax ( Additionally, changes to Also applies to: 95-95, 192-192 🤖 Prompt for AI Agents |
||
|
|
||
| sys.path.append(os.path.join(os.path.dirname(__file__), '../../test/functional')) | ||
|
|
||
|
|
@@ -92,7 +92,7 @@ def to_jsonable(obj: Any) -> Any: | |
| return obj | ||
|
|
||
|
|
||
| def process_file(path: str, messages: List[Any], recv: bool, progress_bar: Optional[ProgressBar]) -> None: | ||
| def process_file(path: str, messages: list[Any], recv: bool, progress_bar: Optional[ProgressBar]) -> None: | ||
| with open(path, 'rb') as f_in: | ||
| if progress_bar: | ||
| bytes_read = 0 | ||
|
|
@@ -189,7 +189,7 @@ def main(): | |
| output = Path.cwd() / Path(args.output) if args.output else False | ||
| use_progress_bar = (not args.no_progress_bar) and sys.stdout.isatty() | ||
|
|
||
| messages = [] # type: List[Any] | ||
| messages = [] # type: list[Any] | ||
| if use_progress_bar: | ||
| total_size = sum(capture.stat().st_size for capture in capturepaths) | ||
| progress_bar = ProgressBar(total_size) | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -489,11 +489,14 @@ SECONDARY: $(QT_QM) | |||||
|
|
||||||
| $(srcdir)/qt/dashstrings.cpp: FORCE | ||||||
| @test -n $(XGETTEXT) || echo "xgettext is required for updating translations" | ||||||
| $(AM_V_GEN) cd $(srcdir); XGETTEXT=$(XGETTEXT) COPYRIGHT_HOLDERS="$(COPYRIGHT_HOLDERS)" $(PYTHON) ../share/qt/extract_strings_qt.py $(libbitcoin_node_a_SOURCES) $(libbitcoin_wallet_a_SOURCES) $(libbitcoin_common_a_SOURCES) $(libbitcoin_zmq_a_SOURCES) $(libbitcoin_consensus_a_SOURCES) $(libbitcoin_util_a_SOURCES) | ||||||
| $(AM_V_GEN) cd $(srcdir); XGETTEXT=$(XGETTEXT) COPYRIGHT_HOLDERS="$(COPYRIGHT_HOLDERS)" $(PYTHON) ../share/qt/extract_strings_qt.py \ | ||||||
| $(libbitcoin_node_a_SOURCES) $(libbitcoin_wallet_a_SOURCES) $(libbitcoin_common_a_SOURCES) \ | ||||||
| $(libbitcoin_zmq_a_SOURCES) $(libbitcoin_consensus_a_SOURCES) $(libbitcoin_util_a_SOURCES) \ | ||||||
| $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) | ||||||
|
|
||||||
| # The resulted dash_en.xlf source file should follow Transifex requirements. | ||||||
| # See: https://docs.transifex.com/formats/xliff#how-to-distinguish-between-a-source-file-and-a-translation-file | ||||||
| translate: $(srcdir)/qt/dashstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) qt/bitcoin.cpp $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) | ||||||
| translate: $(srcdir)/qt/dashstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM) | ||||||
|
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. Duplicate
🔧 Proposed fix-translate: $(srcdir)/qt/dashstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM)
+translate: $(srcdir)/qt/dashstrings.cpp $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||
| @test -n $(LUPDATE) || echo "lupdate is required for updating translations" | ||||||
| $(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) -no-obsolete -I $(srcdir) -locations relative $^ -ts $(srcdir)/qt/locale/dash_en.ts | ||||||
| @test -n $(LCONVERT) || echo "lconvert is required for updating translations" | ||||||
|
|
||||||
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.
Check for the executable, not just the directory.
Line 37 only checks
-d "${LINT_RUNNER_PATH}". If the directory exists buttest_runneris missing (e.g., prior partial run), the build is skipped and downstream execution fails. Guard on the binary path (-x) instead.Suggested fix
🤖 Prompt for AI Agents