@@ -4,18 +4,30 @@ set -eox pipefail
4
4
RUSTC_MINOR_VERSION=$( rustc --version | awk ' { split($2,a,"."); print a[2] }' )
5
5
HOST_PLATFORM=" $( rustc --version --verbose | grep " host:" | awk ' { print $2 }' ) "
6
6
7
- # Tokio MSRV on versions 1.17 through 1.26 is rustc 1.49. Above 1.26 MSRV is 1.56.
8
- [ " $RUSTC_MINOR_VERSION " -lt 49 ] && cargo update -p tokio --precise " 1.14.1" --verbose
9
- [[ " $RUSTC_MINOR_VERSION " -gt 48 && " $RUSTC_MINOR_VERSION " -lt 56 ]] && cargo update -p tokio --precise " 1.25.1" --verbose
7
+ # Some crates require pinning to meet our MSRV even for our downstream users,
8
+ # which we do here.
9
+ # Further crates which appear only as dev-dependencies are pinned further down.
10
+ function PIN_RELEASE_DEPS {
11
+ # Tokio MSRV on versions 1.17 through 1.26 is rustc 1.49. Above 1.26 MSRV is 1.56.
12
+ [ " $RUSTC_MINOR_VERSION " -lt 49 ] && cargo update -p tokio --precise " 1.14.1" --verbose
13
+ [[ " $RUSTC_MINOR_VERSION " -gt 48 && " $RUSTC_MINOR_VERSION " -lt 56 ]] && cargo update -p tokio --precise " 1.25.1" --verbose
10
14
11
- # Sadly the log crate is always a dependency of tokio until 1.20, and has no reasonable MSRV guarantees
12
- [ " $RUSTC_MINOR_VERSION " -lt 49 ] && cargo update -p log --precise " 0.4.18" --verbose
15
+ # Sadly the log crate is always a dependency of tokio until 1.20, and has no reasonable MSRV guarantees
16
+ [ " $RUSTC_MINOR_VERSION " -lt 49 ] && cargo update -p log --precise " 0.4.18" --verbose
17
+
18
+ # The serde_json crate switched to Rust edition 2021 starting with v1.0.101, i.e., has MSRV of 1.56
19
+ [ " $RUSTC_MINOR_VERSION " -lt 56 ] && cargo update -p serde_json --precise " 1.0.100" --verbose
20
+
21
+ return 0 # Don't fail the script if our rustc is higher than the last check
22
+ }
23
+
24
+ PIN_RELEASE_DEPS # pin the release dependencies in our main workspace
13
25
14
26
# The addr2line v0.20 crate (a dependency of `backtrace` starting with 0.3.68) relies on 1.55+
15
27
[ " $RUSTC_MINOR_VERSION " -lt 55 ] && cargo update -p backtrace --precise " 0.3.67" --verbose
16
28
17
- # The serde_json crate switched to Rust edition 2021 starting with v1.0.101 , i.e., has MSRV of 1.56
18
- [ " $RUSTC_MINOR_VERSION " -lt 56 ] && cargo update -p serde_json --precise " 1.0.100 " --verbose
29
+ # The quote crate switched to Rust edition 2021 starting with v1.0.31 , i.e., has MSRV of 1.56
30
+ [ " $RUSTC_MINOR_VERSION " -lt 56 ] && cargo update -p quote --precise " 1.0.30 " --verbose
19
31
20
32
[ " $LDK_COVERAGE_BUILD " != " " ] && export RUSTFLAGS=" -C link-dead-code"
21
33
@@ -65,6 +77,12 @@ pushd no-std-check
65
77
cargo check --verbose --color always --features lightning-transaction-sync
66
78
popd
67
79
80
+ # Test that we can build downstream code with only the "release pins".
81
+ pushd msrv-no-dev-deps-check
82
+ PIN_RELEASE_DEPS
83
+ cargo check
84
+ popd
85
+
68
86
if [ -f " $( which arm-none-eabi-gcc) " ]; then
69
87
pushd no-std-check
70
88
cargo build --target=thumbv7m-none-eabi
0 commit comments