diff --git a/README.md b/README.md index 2eab2315eb6..4b589d03376 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ Translations ------------ Changes to translations as well as new translations can be submitted to -[Bitcoin Core's Transifex page](https://www.transifex.com/bitcoin/bitcoin/). +[Bitcoin Core's Transifex page](https://explore.transifex.com/bitcoin/bitcoin/). Translations are periodically pulled from Transifex and merged into the git repository. See the [translation process](doc/translation_process.md) for details on how this works. diff --git a/contrib/guix/guix-build b/contrib/guix/guix-build index 2ea574fe4b9..715568c1543 100755 --- a/contrib/guix/guix-build +++ b/contrib/guix/guix-build @@ -69,6 +69,24 @@ fi mkdir -p "$VERSION_BASE" +################ +# SOURCE_DATE_EPOCH should not unintentionally be set +################ + +if [ -n "$SOURCE_DATE_EPOCH" ] && [ -z "$FORCE_SOURCE_DATE_EPOCH" ]; then +cat << EOF +ERR: Environment variable SOURCE_DATE_EPOCH is set which may break reproducibility. + + Aborting... + +Hint: You may want to: + 1. Unset this variable: \`unset SOURCE_DATE_EPOCH\` before rebuilding + 2. Set the 'FORCE_SOURCE_DATE_EPOCH' environment variable if you insist on + using your own epoch +EOF +exit 1 +fi + ################ # Build directories should not exist ################ diff --git a/doc/bips.md b/doc/bips.md index d544ff822bc..1b190a7ac5f 100644 --- a/doc/bips.md +++ b/doc/bips.md @@ -59,7 +59,8 @@ BIPs that are implemented by Bitcoin Core: Validation rules for Taproot (including Schnorr signatures and Tapscript leaves) are implemented as of **v0.21.0** ([PR 19953](https://github.com/bitcoin/bitcoin/pull/19953)), with mainnet activation as of **v0.21.1** ([PR 21377](https://github.com/bitcoin/bitcoin/pull/21377), - [PR 21686](https://github.com/bitcoin/bitcoin/pull/21686)). + [PR 21686](https://github.com/bitcoin/bitcoin/pull/21686)), + always active as of **v24.0** ([PR 23536](https://github.com/bitcoin/bitcoin/pull/23536)). * [`BIP 350`](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki): Addresses for native v1+ segregated Witness outputs use Bech32m instead of Bech32 as of **v22.0** ([PR 20861](https://github.com/bitcoin/bitcoin/pull/20861)). * [`BIP 371`](https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki): Taproot fields for PSBT as of **v24.0** ([PR 22558](https://github.com/bitcoin/bitcoin/pull/22558)). * [`BIP 379`](https://github.com/bitcoin/bips/blob/master/bip-0379.md): Miniscript was partially implemented in **v24.0** ([PR 24148](https://github.com/bitcoin/bitcoin/pull/24148)), and fully implemented as of **v26.0** ([PR 27255](https://github.com/bitcoin/bitcoin/pull/27255)). diff --git a/doc/release-notes.md b/doc/release-notes.md index 057b1b43d8e..a9f527c2ef4 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,8 +1,8 @@ -Bitcoin Core version 28.2 is now available from: +Bitcoin Core version 28.x is now available from: - + -This release includes new features, various bug fixes and performance +This release includes various bug fixes and performance improvements, as well as updated translations. Please report bugs using the issue tracker at GitHub: @@ -37,47 +37,28 @@ unsupported systems. Notable changes =============== -### Build - -- #31407 guix: Notarize MacOS app bundle and codesign all MacOS and Windows binaries -- #31500 depends: Fix compiling libevent package on NetBSD -- #31627 depends: Fix spacing issue -- #32070 build: use make < 3.82 syntax for define directive -- #32439 guix: accomodate migration to codeberg -- #32568 depends: use "mkdir -p" when installing xproto -- #32693 depends: fix cmake compatibility error for freetype - ### Test -- #32286 test: Handle empty string returned by CLI as None in RPC tests -- #32336 test: Suppress upstream -Wduplicate-decl-specifier in bpfcc +- #32765 test: Fix list index out of range error in feature_bip68_sequence.py -### Tracing +### Build -- #31623 tracing: Rename the MIN macro to TRACEPOINT_TEST_MIN in log_raw_p2p_msgs +- #32678 guix: warn and abort when SOURCE_DATE_EPOCH is set ### Doc -- #32003 doc: remove note about macOS self-signing +- #32776 doc: taproot became always active in v24.0 +- #32777 doc: fix Transifex 404s -### Misc - -- #31611 doc: upgrade license to 2025 -- #32187 refactor: Remove spurious virtual from final ~CZMQNotificationInterface Credits ======= Thanks to everyone who directly contributed to this release: -- 0xB10C -- achow101 -- Brandon Odiwuor - fanquake -- Hennadii Stepanov -- josibake -- kehiy -- MarcoFalke - Sjors Provoost +- willcl-ark +- zaidmstrr As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/). +[Transifex](https://explore.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-process.md b/doc/release-process.md index d0dc4211d8f..9f42b7f1f8e 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -55,10 +55,10 @@ Release Process - Clear the release notes and move them to the wiki (see "Write the release notes" below). - Translations on Transifex: - Pull translations from Transifex into the master branch. - - Create [a new resource](https://www.transifex.com/bitcoin/bitcoin/content/) named after the major version with the slug `qt-translation-x`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/bitcoin_en.xlf` to create it. + - Create [a new resource](https://app.transifex.com/bitcoin/bitcoin/content/) named after the major version with the slug `qt-translation-x`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/bitcoin_en.xlf` to create it. - In the project workflow settings, ensure that [Translation Memory Fill-up](https://help.transifex.com/en/articles/6224817-setting-up-translation-memory-fill-up) is enabled and that [Translation Memory Context Matching](https://help.transifex.com/en/articles/6224753-translation-memory-with-context) is disabled. - Update the Transifex slug in [`.tx/config`](/.tx/config) to the slug of the resource created in the first step. This identifies which resource the translations will be synchronized from. - - Make an announcement that translators can start translating for the new version. You can use one of the [previous announcements](https://www.transifex.com/bitcoin/communication/) as a template. + - Make an announcement that translators can start translating for the new version. You can use one of the [previous announcements](https://app.transifex.com/bitcoin/communication/) as a template. - Change the auto-update URL for the resource to `master`, e.g. `https://raw.githubusercontent.com/bitcoin/bitcoin/master/src/qt/locale/bitcoin_en.xlf`. (Do this only after the previous steps, to prevent an auto-update from interfering.) #### After branch-off (on the major release branch) diff --git a/doc/translation_process.md b/doc/translation_process.md index e5ed7f4e0ae..604c30f8840 100644 --- a/doc/translation_process.md +++ b/doc/translation_process.md @@ -41,7 +41,7 @@ git commit ### Creating a Transifex account Visit the [Transifex Signup](https://www.transifex.com/signup/) page to create an account. Take note of your username and password, as they will be required to configure the command-line tool. -You can find the Bitcoin translation project at [https://www.transifex.com/bitcoin/bitcoin/](https://www.transifex.com/bitcoin/bitcoin/). +You can find the Bitcoin translation project at [https://explore.transifex.com/bitcoin/bitcoin/](https://explore.transifex.com/bitcoin/bitcoin/). ### Installing the Transifex client command-line tool The client is used to fetch updated translations. Please check installation instructions and any other details at https://developers.transifex.com/docs/cli. diff --git a/test/functional/feature_bip68_sequence.py b/test/functional/feature_bip68_sequence.py index 2d61987e944..7f576464b80 100755 --- a/test/functional/feature_bip68_sequence.py +++ b/test/functional/feature_bip68_sequence.py @@ -148,8 +148,10 @@ class BIP68Test(BitcoinTestFramework): # between height/time locking). Small random chance of making the locks # all pass. for _ in range(400): + available_utxos = len(utxos) + # Randomly choose up to 10 inputs - num_inputs = random.randint(1, 10) + num_inputs = random.randint(1, min(10, available_utxos)) random.shuffle(utxos) # Track whether any sequence locks used should fail