forked from lightningdevkit/rust-lightning
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move
lightning-transaction-sync
tests to dedicated script
.. and bump its MSRV to 1.75. Recently, `rustls` bumped their MSRV to 1.71. As we depend on them and don't want to continuously pin this security-critical dependency back, we have no choice left but to bump the MSRV for `lightning-transaction-sync` to a version >= 1.71, too. Here, we hence move the `lightning-transaction-sync` tests to a dedicated script and propose to introduce a secondary MSRV of 1.75. We chose this particular version, because: a) it's > 1 year old b) it provides a buffer to 1.71, i.e., if some crate bumped to a version > 1.71, there is a chance we don't immediately have to react again c) it stabilized `async fn`s in traits (see https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html), which might become handy for related (BDK) crates, which hopefully will adopt the same target.
- Loading branch information
1 parent
886177a
commit 276d082
Showing
7 changed files
with
74 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,6 @@ | |
set -eox pipefail | ||
|
||
RUSTC_MINOR_VERSION=$(rustc --version | awk '{ split($2,a,"."); print a[2] }') | ||
HOST_PLATFORM="$(rustc --version --verbose | grep "host:" | awk '{ print $2 }')" | ||
|
||
# Some crates require pinning to meet our MSRV even for our downstream users, | ||
# which we do here. | ||
|
@@ -11,19 +10,6 @@ function PIN_RELEASE_DEPS { | |
# Starting with version 1.39.0, the `tokio` crate has an MSRV of rustc 1.70.0 | ||
[ "$RUSTC_MINOR_VERSION" -lt 70 ] && cargo update -p tokio --precise "1.38.1" --verbose | ||
|
||
# Starting with version 0.7.12, the `tokio-util` crate has an MSRV of rustc 1.70.0 | ||
[ "$RUSTC_MINOR_VERSION" -lt 70 ] && cargo update -p tokio-util --precise "0.7.11" --verbose | ||
|
||
# url 2.5.3 switched to idna 1.0.3 and ICU4X, which requires rustc 1.67 or newer. | ||
# Here we opt to keep using unicode-rs by pinning idna_adapter as described here: https://docs.rs/crate/idna_adapter/1.2.0 | ||
[ "$RUSTC_MINOR_VERSION" -lt 67 ] && cargo update -p idna_adapter --precise "1.1.0" --verbose | ||
|
||
# indexmap 2.6.0 upgraded to hashbrown 0.15, which unfortunately bumped their MSRV to rustc 1.65 with the 0.15.1 release (and 2.7.0 was released since). | ||
[ "$RUSTC_MINOR_VERSION" -lt 65 ] && cargo update -p [email protected] --precise "2.5.0" --verbose | ||
|
||
# Starting with version 0.23.20, the `rustls` crate has an MSRV of rustc 1.71.0 | ||
[ "$RUSTC_MINOR_VERSION" -lt 71 ] && cargo update -p [email protected] --precise "0.23.19" --verbose | ||
|
||
return 0 # Don't fail the script if our rustc is higher than the last check | ||
} | ||
|
||
|
@@ -35,15 +21,12 @@ PIN_RELEASE_DEPS # pin the release dependencies in our main workspace | |
# The addr2line v0.21 crate (a dependency of `backtrace` starting with 0.3.69) relies on rustc 1.65 | ||
[ "$RUSTC_MINOR_VERSION" -lt 65 ] && cargo update -p backtrace --precise "0.3.68" --verbose | ||
|
||
# Starting with version 0.5.9 (there is no .6-.8), the `home` crate has an MSRV of rustc 1.70.0. | ||
[ "$RUSTC_MINOR_VERSION" -lt 70 ] && cargo update -p home --precise "0.5.5" --verbose | ||
|
||
# proptest 1.3.0 requires rustc 1.64.0 | ||
[ "$RUSTC_MINOR_VERSION" -lt 64 ] && cargo update -p proptest --precise "1.2.0" --verbose | ||
|
||
export RUST_BACKTRACE=1 | ||
|
||
echo -e "\n\nChecking the full workspace." | ||
echo -e "\n\nChecking the workspace, except lightning-transaction-sync." | ||
cargo check --verbose --color always | ||
|
||
# When the workspace members change, make sure to update the list here as well | ||
|
@@ -58,7 +41,6 @@ WORKSPACE_MEMBERS=( | |
lightning-background-processor | ||
lightning-rapid-gossip-sync | ||
lightning-custom-message | ||
lightning-transaction-sync | ||
lightning-macros | ||
lightning-dns-resolver | ||
lightning-liquidity | ||
|
@@ -83,25 +65,6 @@ cargo check -p lightning-block-sync --verbose --color always --features rpc-clie | |
cargo test -p lightning-block-sync --verbose --color always --features rpc-client,rest-client,tokio | ||
cargo check -p lightning-block-sync --verbose --color always --features rpc-client,rest-client,tokio | ||
|
||
if [[ "$HOST_PLATFORM" != *windows* ]]; then | ||
echo -e "\n\nChecking Transaction Sync Clients with features." | ||
cargo check -p lightning-transaction-sync --verbose --color always --features esplora-blocking | ||
cargo check -p lightning-transaction-sync --verbose --color always --features esplora-async | ||
cargo check -p lightning-transaction-sync --verbose --color always --features esplora-async-https | ||
cargo check -p lightning-transaction-sync --verbose --color always --features electrum | ||
|
||
if [ -z "$CI_ENV" ] && [[ -z "$BITCOIND_EXE" || -z "$ELECTRS_EXE" ]]; then | ||
echo -e "\n\nSkipping testing Transaction Sync Clients due to BITCOIND_EXE or ELECTRS_EXE being unset." | ||
cargo check -p lightning-transaction-sync --tests | ||
else | ||
echo -e "\n\nTesting Transaction Sync Clients with features." | ||
cargo test -p lightning-transaction-sync --verbose --color always --features esplora-blocking | ||
cargo test -p lightning-transaction-sync --verbose --color always --features esplora-async | ||
cargo test -p lightning-transaction-sync --verbose --color always --features esplora-async-https | ||
cargo test -p lightning-transaction-sync --verbose --color always --features electrum | ||
fi | ||
fi | ||
|
||
echo -e "\n\nTest futures builds" | ||
cargo test -p lightning-background-processor --verbose --color always --features futures | ||
cargo test -p lightning-background-processor --verbose --color always --features futures --no-default-features | ||
|
@@ -145,7 +108,7 @@ cargo test -p lightning-invoice --verbose --color always --no-default-features - | |
echo -e "\n\nTesting no_std build on a downstream no-std crate" | ||
# check no-std compatibility across dependencies | ||
pushd no-std-check | ||
cargo check --verbose --color always --features lightning-transaction-sync | ||
cargo check --verbose --color always | ||
[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean | ||
popd | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
#!/bin/bash | ||
set -eox pipefail | ||
|
||
RUSTC_MINOR_VERSION=$(rustc --version | awk '{ split($2,a,"."); print a[2] }') | ||
|
||
pushd lightning-transaction-sync | ||
|
||
# Some crates require pinning to meet our MSRV even for our downstream users, | ||
# which we do here. | ||
# Further crates which appear only as dev-dependencies are pinned further down. | ||
function PIN_RELEASE_DEPS { | ||
return 0 # Don't fail the script if our rustc is higher than the last check | ||
} | ||
|
||
PIN_RELEASE_DEPS # pin the release dependencies | ||
|
||
# Starting with version 0.5.11, the `home` crate has an MSRV of rustc 1.81.0. | ||
[ "$RUSTC_MINOR_VERSION" -lt 81 ] && cargo update -p home --precise "0.5.9" --verbose | ||
|
||
export RUST_BACKTRACE=1 | ||
|
||
echo -e "\n\nChecking Transaction Sync Clients with features." | ||
cargo check --verbose --color always --features esplora-blocking | ||
cargo check --verbose --color always --features esplora-async | ||
cargo check --verbose --color always --features esplora-async-https | ||
cargo check --verbose --color always --features electrum | ||
|
||
if [ -z "$CI_ENV" ] && [[ -z "$BITCOIND_EXE" || -z "$ELECTRS_EXE" ]]; then | ||
echo -e "\n\nSkipping testing Transaction Sync Clients due to BITCOIND_EXE or ELECTRS_EXE being unset." | ||
cargo check --tests | ||
else | ||
echo -e "\n\nTesting Transaction Sync Clients with features." | ||
cargo test --verbose --color always --features esplora-blocking | ||
cargo test --verbose --color always --features esplora-async | ||
cargo test --verbose --color always --features esplora-async-https | ||
cargo test --verbose --color always --features electrum | ||
fi | ||
|
||
popd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters