Commit Graph

23 Commits

Author SHA1 Message Date
Tobin C. Harding cda097dda8 Add ci check for duplicate dependencies
Add a call to `cargo tree --duplicates` in the ci script to ensure that
we do not have any duplicated dependencies.

Kudos to Martin for the idea.
2022-07-22 09:25:21 +10:00
Tobin C. Harding cd2369b4f9 Run ecdsa-psbt example in test script
We just added a PSBT example file, run it from CI for all test runs.
2022-07-19 11:02:20 +10:00
Tobin C. Harding f3b2120ec9 Create configuration conditional bench
Currently we are unable to build with all features enabled with a
non-nightly toolchain, this is because of the use of

    `#![cfg_attr(all(test, feature = "unstable"), feature(test))]`

which causes the following error when building:

 error[E0554]: `#![feature]` may not be used on the stable release
 channel

The "unstable" feature is used to guard bench mark modules, this is
widely suggested online but there is a better way.

When running the bench marks use the following incantation:

    `RUSTFLAGS='--cfg=bench' cargo bench`

This creates a configuration conditional "bench" that can be used to
guard the bench mark modules.

    #[cfg(bench)]
    mod benches {
        ...
    }
2022-07-14 10:21:01 +10:00
Tobin C. Harding f60c92ca58 Add informative error message to DO_BENCH
If CI script is run with `DO_BENCH=true` and `TOOLCHAIN` set to a
non-nightly toolchain the build will fail with a less than meaningful
error. To assist runners of the script output an informative error
message if an attempt is made at using the wrong toolchain.
2022-07-14 09:53:31 +10:00
Tobin C. Harding c6d5a12b60 Add cargo/rustc sanity calls
Add trivial calls to `cargo` and `rustc` as sanity checks before
starting the script proper.
2022-07-14 09:47:27 +10:00
Tobin C. Harding 281af7c1b9 Move broken-intra-doc-link lint config to command line
The docs lint `broken-intra-doc-links` has been changed but the new name
is not available in our MSRV, this means we get a build warning. We only
build docs with the nightly toolchain so we can move this lint control
to the docs build command in `test.sh` instead of doing it crate wide.

With this patch applied devs risk not noticing docs link issues until
they hit them on CI _if_ they do not build with the test script or
explicitly pass in `-- -D rustdoc::broken-intra-doc-links`, which no one
is going to do. Hence we add a line to the readme with a shell alias
that can be used to check docs, taken directly from `test.sh`.
2022-06-21 09:21:19 +10:00
Martin Habovstiak 2e7effc604 Feature `use-serde` renamed to `serde`
Features activating external crates are supposed to have same name as
those crates. However we depend on same feature in other crates so we
need a separate feature. After MSRV bump it is possible to rename the
crates and features so we can now fix this inconsistency.

Sadly, derive can't see that the crate was renamed so all derives must
be told to use the other one.
2022-05-26 10:10:47 +02:00
Tobin C. Harding 8f45723bc6 test.sh: Remove 1.29 pinning
We no longer need to test Rust 1.29, remove the pinning from the test
script.
2022-04-22 07:41:46 +10:00
Tobin Harding 0d36455d74 Build the docs with test.sh
We currently build the docs as a separate CI job, we can however just do
it as part of the `Tests` job using the nightly toolchain.

Conditionally build the docs based on a `DO_DOCS` env var.

Note, uses `--cfg docsrs` so can only be built run with nightly toolchain.
2022-03-09 08:18:48 +11:00
Tobin Harding 8163497ab3 Use correct indentation
Some code has only two spaces of indentation, we favour 4 in bash
scripts.
2022-03-09 08:18:48 +11:00
KaFai Choi bb70820fed
improve example: take hex-encoded seed instead of WIF in bip32 example 2022-01-10 06:59:49 +07:00
Devrandom 4826d0c6cc no_std support
Based on the original work by Justin Moon.

*MSRV unchanged from 1.29.0.*

When `std` is off, `no-std` must be on, and we use the [`alloc`](https://doc.rust-lang.org/alloc/) and core2 crates. The `alloc` crate requires the user define a global allocator.

* Import from `core` and `alloc` instead of `std`
* `alloc` only used if `no-std` is on
* Create `std` feature
* Create `no-std` feature which adds a core2 dependency to polyfill `std::io` features. This is an experimental feature and should be
used with caution.
* CI runs tests `no-std`
* MSRV for `no-std` is 1.51 or so
2021-07-15 09:04:49 +02:00
Andrew Poelstra ef116ffbed Add byteorder pinning for 1.29.0 compatibility
They broke their MSRV in a minor release.

Co-authored-by: Sebastian Geisler <sebastian@blockstream.io>
2021-01-09 16:43:18 +00:00
Sebastian Geisler a1e96c398f Migrate CI to GitHub actions 2021-01-01 22:34:51 +01:00
Andrew Poelstra ed9856f800 ci: pin serde and serde-derive for Rust 1.29.0 2020-12-30 16:32:52 +01:00
Steven Roose f7422fb8d1
Add MessageSignature type for dealing with signed messages 2020-10-11 22:44:00 +02:00
Andrew Poelstra 6138084c5b bump version to 0.25, MSRV to 1.29 2020-09-10 20:06:10 +00:00
Andrew Poelstra 1c46b32d2b update Travis and README for manual rustc 1.22.0 steps 2020-09-10 19:03:01 +00:00
Thomas Eizinger 24bb6590d6
Expose secp256k1 'rand' feature flag
By exposing this, we can use the 'rand' dependency of secp256k1
in a project that only depends on rust-bitcoin without having to
add a separate dependency in order to activate the feature flag.
2019-11-21 12:05:46 +11:00
Elichai Turkel 89f73ea686
Add a test for testing as a dependency 2019-08-19 13:29:50 -04:00
Carl Dong 3207ac5ea7
Generate codecov.io reports 2019-07-26 15:48:52 -04:00
Steven Roose 30201f3924
Remove Decimal and replace strason with serde_json 2019-06-13 18:29:16 +01:00
Carl Dong 50fef2d851 Extract travis testing into locally-runnable script 2019-02-04 10:39:37 -05:00