Skip to content

Commit ddee205

Browse files
committed
Bump MSRV to rustc 1.63.0
.. which is a reasonable common ground, also supported by Debian stable.
1 parent d2242f6 commit ddee205

File tree

11 files changed

+42
-91
lines changed

11 files changed

+42
-91
lines changed

Diff for: .github/workflows/build.yml

+1-13
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,7 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
platform: [ ubuntu-latest, windows-latest, macos-latest ]
21-
toolchain: [ stable, beta ]
22-
include:
23-
- toolchain: stable
24-
platform: ubuntu-latest
25-
# 1.48.0 is the MSRV for all crates except lightning-transaction-sync and Win/Mac
26-
- toolchain: 1.48.0
27-
platform: ubuntu-latest
28-
# Windows requires 1.49.0 because that's the MSRV for supported Tokio
29-
- toolchain: 1.49.0
30-
platform: windows-latest
31-
# MacOS-latest requires 1.54.0 because that's what's required for linking to work properly
32-
- toolchain: 1.54.0
33-
platform: macos-latest
21+
toolchain: [ stable, beta, 1.63.0 ] # 1.63.0 is the MSRV for all crates.
3422
runs-on: ${{ matrix.platform }}
3523
steps:
3624
- name: Checkout source code

Diff for: CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ be covered by functional tests.
8888
When refactoring, structure your PR to make it easy to review and don't
8989
hesitate to split it into multiple small, focused PRs.
9090

91-
The Minimum Supported Rust Version (MSRV) currently is 1.41.1 (enforced by
91+
The Minimum Supported Rust Version (MSRV) currently is 1.63.0 (enforced by
9292
our GitHub Actions). Also, the compatibility for LDK object serialization is
9393
currently ensured back to and including crate version 0.0.99 (see the
9494
[changelog](CHANGELOG.md)).

Diff for: ci/ci-tests.sh

+23-53
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,17 @@ HOST_PLATFORM="$(rustc --version --verbose | grep "host:" | awk '{ print $2 }')"
88
# which we do here.
99
# Further crates which appear only as dev-dependencies are pinned further down.
1010
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
11+
# Starting with version 1.10.0, the `regex` crate has an MSRV of rustc 1.65.0.
12+
[ "$RUSTC_MINOR_VERSION" -lt 65 ] && cargo update -p regex --precise "1.9.6" --verbose
1413

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
14+
# The addr2line v0.21 crate (a dependency of `backtrace` starting with 0.3.69) relies on rustc 1.65
15+
[ "$RUSTC_MINOR_VERSION" -lt 65 ] && cargo update -p backtrace --precise "0.3.68" --verbose
2016

2117
return 0 # Don't fail the script if our rustc is higher than the last check
2218
}
2319

2420
PIN_RELEASE_DEPS # pin the release dependencies in our main workspace
2521

26-
# The addr2line v0.20 crate (a dependency of `backtrace` starting with 0.3.68) relies on 1.55+
27-
[ "$RUSTC_MINOR_VERSION" -lt 55 ] && cargo update -p backtrace --precise "0.3.67" --verbose
28-
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
31-
32-
# The syn crate depends on too-new proc-macro2 starting with v2.0.33, i.e., has MSRV of 1.56
33-
if [ "$RUSTC_MINOR_VERSION" -lt 56 ]; then
34-
SYN_2_DEP=$(grep -o '"syn 2.*' Cargo.lock | tr -d '",' | tr ' ' ':')
35-
cargo update -p "$SYN_2_DEP" --precise "2.0.32" --verbose
36-
fi
37-
38-
# The proc-macro2 crate switched to Rust edition 2021 starting with v1.0.66, i.e., has MSRV of 1.56
39-
[ "$RUSTC_MINOR_VERSION" -lt 56 ] && cargo update -p proc-macro2 --precise "1.0.65" --verbose
40-
41-
# The memchr crate switched to an MSRV of 1.60 starting with v2.6.0
42-
[ "$RUSTC_MINOR_VERSION" -lt 60 ] && cargo update -p memchr --precise "2.5.0" --verbose
43-
4422
export RUST_BACKTRACE=1
4523

4624
echo -e "\n\nBuilding and testing all workspace crates..."
@@ -59,9 +37,13 @@ cargo test --verbose --color always --features rpc-client,rest-client,tokio
5937
cargo check --verbose --color always --features rpc-client,rest-client,tokio
6038
popd
6139

62-
if [[ $RUSTC_MINOR_VERSION -gt 67 && "$HOST_PLATFORM" != *windows* ]]; then
40+
if [[ "$HOST_PLATFORM" != *windows* ]]; then
6341
echo -e "\n\nBuilding and testing Transaction Sync Clients with features"
6442
pushd lightning-transaction-sync
43+
44+
# jobserver 0.1.27 requires rustc 1.66.0
45+
[ "$RUSTC_MINOR_VERSION" -lt 66 ] && cargo update -p jobserver --precise "0.1.26" --verbose
46+
6547
cargo test --verbose --color always --features esplora-blocking
6648
cargo check --verbose --color always --features esplora-blocking
6749
cargo test --verbose --color always --features esplora-async
@@ -76,20 +58,16 @@ pushd lightning-background-processor
7658
cargo test --verbose --color always --features futures
7759
popd
7860

79-
if [ "$RUSTC_MINOR_VERSION" -gt 55 ]; then
80-
echo -e "\n\nTest Custom Message Macros"
81-
pushd lightning-custom-message
82-
cargo test --verbose --color always
83-
[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean
84-
popd
85-
fi
61+
echo -e "\n\nTest Custom Message Macros"
62+
pushd lightning-custom-message
63+
cargo test --verbose --color always
64+
[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean
65+
popd
8666

87-
if [ "$RUSTC_MINOR_VERSION" -gt 51 ]; then # Current `object` MSRV, subject to change
88-
echo -e "\n\nTest backtrace-debug builds"
89-
pushd lightning
90-
cargo test --verbose --color always --features backtrace
91-
popd
92-
fi
67+
echo -e "\n\nTest backtrace-debug builds"
68+
pushd lightning
69+
cargo test --verbose --color always --features backtrace
70+
popd
9371

9472
echo -e "\n\nBuilding with all Log-Limiting features"
9573
pushd lightning
@@ -100,13 +78,14 @@ popd
10078

10179
echo -e "\n\nTesting no-std flags in various combinations"
10280
for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do
103-
[ "$RUSTC_MINOR_VERSION" -gt 50 ] && cargo test -p $DIR --verbose --color always --no-default-features --features no-std
81+
cargo test -p $DIR --verbose --color always --no-default-features --features no-std
10482
# check if there is a conflict between no-std and the default std feature
105-
[ "$RUSTC_MINOR_VERSION" -gt 50 ] && cargo test -p $DIR --verbose --color always --features no-std
83+
cargo test -p $DIR --verbose --color always --features no-std
10684
done
85+
10786
for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do
10887
# check if there is a conflict between no-std and the c_bindings cfg
109-
[ "$RUSTC_MINOR_VERSION" -gt 50 ] && RUSTFLAGS="--cfg=c_bindings" cargo test -p $DIR --verbose --color always --no-default-features --features=no-std
88+
RUSTFLAGS="--cfg=c_bindings" cargo test -p $DIR --verbose --color always --no-default-features --features=no-std
11089
done
11190
RUSTFLAGS="--cfg=c_bindings" cargo test --verbose --color always
11291

@@ -123,16 +102,7 @@ popd
123102
echo -e "\n\nTesting no-std build on a downstream no-std crate"
124103
# check no-std compatibility across dependencies
125104
pushd no-std-check
126-
if [[ $RUSTC_MINOR_VERSION -gt 67 ]]; then
127-
# lightning-transaction-sync's MSRV is 1.67
128-
cargo check --verbose --color always --features lightning-transaction-sync
129-
else
130-
# The memchr crate switched to an MSRV of 1.60 starting with v2.6.0
131-
# This is currently only a release dependency via core2, which we intend to work with
132-
# rust-bitcoin to remove soon.
133-
[ "$RUSTC_MINOR_VERSION" -lt 60 ] && cargo update -p memchr --precise "2.5.0" --verbose
134-
cargo check --verbose --color always
135-
fi
105+
cargo check --verbose --color always
136106
[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean
137107
popd
138108

Diff for: lightning-background-processor/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22
//! running properly, and (2) either can or should be run in the background. See docs for
33
//! [`BackgroundProcessor`] for more details on the nitty-gritty.
44
5-
// Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
6-
#![deny(broken_intra_doc_links)]
7-
#![deny(private_intra_doc_links)]
5+
#![deny(rustdoc::broken_intra_doc_links)]
6+
#![deny(rustdoc::private_intra_doc_links)]
87

98
#![deny(missing_docs)]
109
#![cfg_attr(not(feature = "futures"), deny(unsafe_code))]

Diff for: lightning-block-sync/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,8 @@
1313
//! Both features support either blocking I/O using `std::net::TcpStream` or, with feature `tokio`,
1414
//! non-blocking I/O using `tokio::net::TcpStream` from inside a Tokio runtime.
1515
16-
// Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
17-
#![deny(broken_intra_doc_links)]
18-
#![deny(private_intra_doc_links)]
16+
#![deny(rustdoc::broken_intra_doc_links)]
17+
#![deny(rustdoc::private_intra_doc_links)]
1918

2019
#![deny(missing_docs)]
2120
#![deny(unsafe_code)]

Diff for: lightning-invoice/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
// Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
2-
#![deny(broken_intra_doc_links)]
3-
#![deny(private_intra_doc_links)]
1+
#![deny(rustdoc::broken_intra_doc_links)]
2+
#![deny(rustdoc::private_intra_doc_links)]
43

54
#![deny(missing_docs)]
65
#![deny(non_upper_case_globals)]

Diff for: lightning-net-tokio/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@
2222
//!
2323
//! [`PeerManager`]: lightning::ln::peer_handler::PeerManager
2424
25-
// Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
26-
#![deny(broken_intra_doc_links)]
27-
#![deny(private_intra_doc_links)]
25+
#![deny(rustdoc::broken_intra_doc_links)]
26+
#![deny(rustdoc::private_intra_doc_links)]
2827

2928
#![deny(missing_docs)]
3029
#![cfg_attr(docsrs, feature(doc_auto_cfg))]

Diff for: lightning-persister/src/lib.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
//! Provides utilities for LDK data persistence and retrieval.
2-
//
3-
// TODO: Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
4-
#![deny(broken_intra_doc_links)]
5-
#![deny(private_intra_doc_links)]
2+
3+
#![deny(rustdoc::broken_intra_doc_links)]
4+
#![deny(rustdoc::private_intra_doc_links)]
65

76
#![deny(missing_docs)]
87

Diff for: lightning-rapid-gossip-sync/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
// Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
2-
#![deny(broken_intra_doc_links)]
3-
#![deny(private_intra_doc_links)]
1+
#![deny(rustdoc::broken_intra_doc_links)]
2+
#![deny(rustdoc::private_intra_doc_links)]
43

54
#![deny(missing_docs)]
65
#![deny(unsafe_code)]

Diff for: lightning-transaction-sync/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,8 @@
5858
//! [`ChainMonitor`]: lightning::chain::chainmonitor::ChainMonitor
5959
//! [`ChannelManager`]: lightning::ln::channelmanager::ChannelManager
6060
61-
// Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings.
62-
#![deny(broken_intra_doc_links)]
63-
#![deny(private_intra_doc_links)]
61+
#![deny(rustdoc::broken_intra_doc_links)]
62+
#![deny(rustdoc::private_intra_doc_links)]
6463

6564
#![deny(missing_docs)]
6665
#![deny(unsafe_code)]

Diff for: no-std-check/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.1.0"
44
edition = "2018"
55

66
[features]
7-
default = ["lightning/no-std", "lightning-invoice/no-std", "lightning-rapid-gossip-sync/no-std"]
7+
default = ["lightning/no-std", "lightning-invoice/no-std", "lightning-rapid-gossip-sync/no-std", "lightning-transaction-sync"]
88

99
[dependencies]
1010
lightning = { path = "../lightning", default-features = false }
@@ -14,4 +14,4 @@ lightning-background-processor = { path = "../lightning-background-processor", f
1414

1515
# Obviously lightning-transaction-sync doesn't support no-std, but it should build
1616
# even if lightning is built with no-std.
17-
lightning-transaction-sync = { path = "../lightning-transaction-sync", optional = true }
17+
lightning-transaction-sync = { path = "../lightning-transaction-sync", default-features = false, optional = true }

0 commit comments

Comments
 (0)