diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a5001aa00..37daf51c7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ set(CLIENT_NAME "Elements Core") set(CLIENT_VERSION_MAJOR 29) set(CLIENT_VERSION_MINOR 1) set(CLIENT_VERSION_BUILD 0) -set(CLIENT_VERSION_RC 2) +set(CLIENT_VERSION_RC 0) set(CLIENT_VERSION_IS_RELEASE "true") set(COPYRIGHT_YEAR "2025") diff --git a/ci/test/00_setup_env_native_centos.sh b/ci/test/00_setup_env_native_centos.sh index c423d788eb..af27a5ebe1 100755 --- a/ci/test/00_setup_env_native_centos.sh +++ b/ci/test/00_setup_env_native_centos.sh @@ -8,7 +8,7 @@ export LC_ALL=C.UTF-8 export CONTAINER_NAME=ci_native_centos export CI_IMAGE_NAME_TAG="quay.io/centos/centos:stream10" -export CI_BASE_PACKAGES="gcc-c++ glibc-devel libstdc++-devel ccache make git python3 python3-pip which patch xz procps-ng ksh rsync coreutils bison e2fsprogs cmake" +export CI_BASE_PACKAGES="gcc-c++ glibc-devel libstdc++-devel ccache make git python3 python3-pip which patch xz procps-ng rsync coreutils bison e2fsprogs cmake dash" export PIP_PACKAGES="pyzmq" export DEP_OPTS="DEBUG=1" # Temporarily enable a DEBUG=1 build to check for GCC-bug-117966 regressions. This can be removed once the minimum GCC version is bumped to 12 in the previous releases task, see https://github.com/bitcoin/bitcoin/issues/31436#issuecomment-2530717875 export GOAL="install" diff --git a/ci/test/03_test_script.sh b/ci/test/03_test_script.sh index 0d9482d693..9295fb5639 100755 --- a/ci/test/03_test_script.sh +++ b/ci/test/03_test_script.sh @@ -93,7 +93,7 @@ fi if [ -z "$NO_DEPENDS" ]; then case "${CI_IMAGE_NAME_TAG}" in *centos*|*rocky*) - SHELL_OPTS="CONFIG_SHELL=/bin/ksh" # Temporarily use ksh instead of dash, until https://bugzilla.redhat.com/show_bug.cgi?id=2335416 is fixed. + SHELL_OPTS="CONFIG_SHELL=/bin/dash" ;; *) SHELL_OPTS="CONFIG_SHELL=" diff --git a/doc/release-notes.md b/doc/release-notes.md index f5a91e1ada..923d34a99b 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,6 +1,6 @@ -Bitcoin Core version 29.1rc2 is now available from: +Bitcoin Core version 29.1 is now available from: - + This release includes various bug fixes and performance improvements, as well as updated translations. @@ -113,6 +113,10 @@ function signature instead of just the function name. (#32604) - #32859 test: correctly detect nonstd TRUC tx vsize in feature_taproot - #33001 test: Do not pass tests on unhandled exceptions +### Indexes + +- #33212 index: Don't commit state in BaseIndex::Rewind + ### Util - #32248 Remove support for RNDR/RNDRRS for aarch64 @@ -162,10 +166,12 @@ function signature instead of just the function name. (#32604) - #33088 doc: move cmake -B build -LH up in Unix build docs - #33133 rpc: fix getpeerinfo ping duration unit docs - #33119 rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix +- #33236 doc: Remove wrong and redundant doxygen tag ### CI - #32184 ci: Add workaround for vcpkg's libevent package +- #33261 ci: return to using dash in CentOS job ### Misc diff --git a/src/policy/feerate.h b/src/policy/feerate.h index d742a43acc..6bcb5ddf5b 100644 --- a/src/policy/feerate.h +++ b/src/policy/feerate.h @@ -44,9 +44,6 @@ public: /** * Construct a fee rate from a fee in satoshis and a vsize in vB. - * - * param@[in] nFeePaid The fee paid by a transaction, in satoshis - * param@[in] num_bytes The vsize of a transaction, in vbytes */ CFeeRate(const CAmount& nFeePaid, uint32_t num_bytes); diff --git a/src/wallet/coinselection.cpp b/src/wallet/coinselection.cpp index 2dd1cd8542..2b814d92b0 100644 --- a/src/wallet/coinselection.cpp +++ b/src/wallet/coinselection.cpp @@ -701,15 +701,15 @@ util::Result SelectCoinsSRD(const std::vector& utx /** Find a subset of the OutputGroups that is at least as large as, but as close as possible to, the * target amount; solve subset sum. - * param@[in] groups OutputGroups to choose from, sorted by value in descending order. - * param@[in] nTotalLower Total (effective) value of the UTXOs in groups. - * param@[in] nTargetValue Subset sum target, not including change. - * param@[out] vfBest Boolean vector representing the subset chosen that is closest to + * @param[in] groups OutputGroups to choose from, sorted by value in descending order. + * @param[in] nTotalLower Total (effective) value of the UTXOs in groups. + * @param[in] nTargetValue Subset sum target, not including change. + * @param[out] vfBest Boolean vector representing the subset chosen that is closest to * nTargetValue, with indices corresponding to groups. If the ith * entry is true, that means the ith group in groups was selected. - * param@[out] nBest Total amount of subset chosen that is closest to nTargetValue. - * paramp[in] max_selection_weight The maximum allowed weight for a selection result to be valid. - * param@[in] iterations Maximum number of tries. + * @param[out] nBest Total amount of subset chosen that is closest to nTargetValue. + * @param[in] max_selection_weight The maximum allowed weight for a selection result to be valid. + * @param[in] iterations Maximum number of tries. */ static void ApproximateBestSubset(FastRandomContext& insecure_rand, const std::vector& groups, const CAmount& nTotalLower, const CAmount& nTargetValue, diff --git a/src/wallet/spend.h b/src/wallet/spend.h index 7eb8c37de5..9c6403b913 100644 --- a/src/wallet/spend.h +++ b/src/wallet/spend.h @@ -130,14 +130,14 @@ FilteredOutputGroups GroupOutputs(const CWallet& wallet, * the solution (according to the waste metric) will be chosen. If a valid input cannot be found from any * single OutputType, fallback to running `ChooseSelectionResult()` over all available coins. * - * param@[in] chain The chain interface to get information on unconfirmed UTXOs bump fees - * param@[in] nTargetValue The target value - * param@[in] groups The grouped outputs mapped by coin eligibility filters - * param@[in] coin_selection_params Parameters for the coin selection - * param@[in] allow_mixed_output_types Relax restriction that SelectionResults must be of the same OutputType + * @param[in] chain The chain interface to get information on bump fees for unconfirmed UTXOs + * @param[in] nTargetValue The target value + * @param[in] groups The grouped outputs mapped by coin eligibility filters + * @param[in] coin_selection_params Parameters for the coin selection + * @param[in] allow_mixed_output_types Relax restriction that SelectionResults must be of the same OutputType * returns If successful, a SelectionResult containing the input set * If failed, returns (1) an empty error message if the target was not reached (general "Insufficient funds") - * or (2) an specific error message if there was something particularly wrong (e.g. a selection + * or (2) a specific error message if there was something particularly wrong (e.g. a selection * result that surpassed the tx max weight size). */ util::Result AttemptSelection(interfaces::Chain& chain, const CAmountMap& mapTargetValue, OutputGroupTypeMap& groups, @@ -148,13 +148,13 @@ util::Result AttemptSelection(interfaces::Chain& chain, const C * Multiple coin selection algorithms will be run and the input set that produces the least waste * (according to the waste metric) will be chosen. * - * param@[in] chain The chain interface to get information on unconfirmed UTXOs bump fees - * param@[in] nTargetValue The target value - * param@[in] groups The struct containing the outputs grouped by script and divided by (1) positive only outputs and (2) all outputs (positive + negative). - * param@[in] coin_selection_params Parameters for the coin selection + * @param[in] chain The chain interface to get information on bump fees for unconfirmed UTXOs + * @param[in] nTargetValue The target value + * @param[in] groups The struct containing the outputs grouped by script and divided by (1) positive only outputs and (2) all outputs (positive + negative). + * @param[in] coin_selection_params Parameters for the coin selection * returns If successful, a SelectionResult containing the input set * If failed, returns (1) an empty error message if the target was not reached (general "Insufficient funds") - * or (2) an specific error message if there was something particularly wrong (e.g. a selection + * or (2) a specific error message if there was something particularly wrong (e.g. a selection * result that surpassed the tx max weight size). */ util::Result ChooseSelectionResult(interfaces::Chain& chain, const CAmountMap& mapTargetValue, Groups& groups, const CoinSelectionParams& coin_selection_params); @@ -189,10 +189,10 @@ util::Result FetchSelectedInputs(const CWallet& wallet, const /** * Select a set of coins such that nTargetValue is met; never select unconfirmed coins if they are not ours - * param@[in] wallet The wallet which provides data necessary to spend the selected coins - * param@[in] available_coins The struct of coins, organized by OutputType, available for selection prior to filtering - * param@[in] nTargetValue The target value - * param@[in] coin_selection_params Parameters for this coin selection such as feerates, whether to avoid partial spends, + * @param[in] wallet The wallet which provides data necessary to spend the selected coins + * @param[in] available_coins The struct of coins, organized by OutputType, available for selection prior to filtering + * @param[in] nTargetValue The target value + * @param[in] coin_selection_params Parameters for this coin selection such as feerates, whether to avoid partial spends, * and whether to subtract the fee from the outputs. * returns If successful, a SelectionResult containing the selected coins * If failed, returns (1) an empty error message if the target was not reached (general "Insufficient funds")