diff --git a/README.md b/README.md index d2305355..e31dfd68 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,9 @@ For more information please see `./CONTRIBUTING.md`. This library should always compile with any combination of features (minus `no-std`) on **Rust 1.41.1** or **Rust 1.47** with `no-std`. +To build with the MSRV you will need to pin some dependencies, currently this is +only `syn`, and can be achieved using `cargo update -p syn --precise 1.0.107`. + ## Installing Rust Rust can be installed using your package manager of choice or diff --git a/bitcoin/contrib/test.sh b/bitcoin/contrib/test.sh index 4657f0aa..8dffd2bb 100755 --- a/bitcoin/contrib/test.sh +++ b/bitcoin/contrib/test.sh @@ -18,6 +18,12 @@ if cargo --version | grep nightly; then NIGHTLY=true fi +# Pin dependencies as required if we are using MSRV toolchain. +if cargo --version | grep "1\.41"; then + # 1.0.108 uses `matches!` macro so does not work with Rust 1.41.1, bad `syn` no biscuit. + cargo update -p syn --precise 1.0.107 +fi + # We should not have any duplicate dependencies. This catches mistakes made upgrading dependencies # in one crate and not in another (e.g. upgrade bitcoin_hashes in bitcoin but not in secp). duplicate_dependencies=$(cargo tree --target=all --all-features --duplicates | wc -l)