Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion contrib/update-lock-files.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,27 @@

set -euo pipefail

REPO_DIR="$(git rev-parse --show-toplevel)"

# Targets where `--all-features` is used.
ALL_FEATURE_CRATES=(bitreq client fuzz jsonrpc types verify)

# Targets with conflicting features and only speficic features are used.
SPECIFIC_FEATURES_CRATES=(integration_test node)
SPECIFIC_FEATURES=(latest)

update_lock_files() {
for crate in "${ALL_FEATURE_CRATES[@]}"; do
cargo check --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-features
done

for crate in "${SPECIFIC_FEATURES_CRATES[@]}"; do
cargo check --manifest-path "$REPO_DIR/$crate/Cargo.toml" --no-default-features --features="${SPECIFIC_FEATURES[*]}"
done
}

for file in Cargo-minimal.lock Cargo-recent.lock; do
cp --force "$file" Cargo.lock
cargo check --all-features
update_lock_files
cp --force Cargo.lock "$file"
done
2 changes: 2 additions & 0 deletions integration_test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ edition = "2021"
[features]
download = ["node/download"]

latest = ["30_0"]

# Enable the same feature in `node` and the version feature here.
# All minor releases of the latest four versions.
30_0 = ["v30_and_below", "node/30_0"]
Expand Down
23 changes: 19 additions & 4 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@ set export

REPO_DIR := `git rev-parse --show-toplevel`

# Targets where `--all-features` is used.
ALL_FEATURE_CRATES := "bitreq client fuzz jsonrpc types verify"

# Targets with conflicting features and only `SPECIFIC_FEATURES` are used.
SPECIFIC_FEATURES_CRATES := "integration_test node"
SPECIFIC_FEATURES := "latest"

alias ulf := update-lock-files
alias l := lint
alias li := lint-integration-tests
Expand All @@ -12,15 +19,21 @@ default:

# Cargo build everything.
build:
cargo build --workspace --all-targets --all-features
for crate in {{ALL_FEATURE_CRATES}}; do cargo build --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-targets --all-features; done

for crate in {{SPECIFIC_FEATURES_CRATES}}; do cargo build --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-targets --no-default-features --features={{SPECIFIC_FEATURES}}; done

# Cargo check everything.
check:
cargo check --workspace --all-targets --all-features
for crate in {{ALL_FEATURE_CRATES}}; do cargo check --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-targets --all-features; done

for crate in {{SPECIFIC_FEATURES_CRATES}}; do cargo check --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-targets --no-default-features --features={{SPECIFIC_FEATURES}}; done

# Lint everything.
lint: lint-verify lint-integration-tests
cargo +$(cat ./nightly-version) clippy --workspace --all-targets --all-features -- --deny warnings
for crate in {{ALL_FEATURE_CRATES}}; do cargo +$(cat ./nightly-version) clippy --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-targets --all-features -- --deny warnings; done

for crate in {{SPECIFIC_FEATURES_CRATES}}; do cargo +$(cat ./nightly-version) clippy --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-targets --no-default-features --features={{SPECIFIC_FEATURES}} -- --deny warnings; done

lint-verify:
$REPO_DIR/contrib/lint-verify.sh
Expand All @@ -40,7 +53,9 @@ format:

# Generate documentation.
docsrs *flags:
RUSTDOCFLAGS="--cfg docsrs -D warnings -D rustdoc::broken-intra-doc-links" cargo +$(cat ./nightly-version) doc --all-features {{flags}}
for crate in {{ALL_FEATURE_CRATES}}; do RUSTDOCFLAGS="--cfg docsrs -D warnings -D rustdoc::broken-intra-doc-links" cargo +$(cat ./nightly-version) doc --manifest-path "$REPO_DIR/$crate/Cargo.toml" --all-features {{flags}}; done

for crate in {{SPECIFIC_FEATURES_CRATES}}; do RUSTDOCFLAGS="--cfg docsrs -D warnings -D rustdoc::broken-intra-doc-links" cargo +$(cat ./nightly-version) doc --manifest-path "$REPO_DIR/$crate/Cargo.toml" --no-default-features --features={{SPECIFIC_FEATURES}} {{flags}}; done

# Update the recent and minimal lock files.
update-lock-files:
Expand Down
2 changes: 2 additions & 0 deletions node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ default = ["0_17_2"]

download = ["anyhow", "bitcoin_hashes", "flate2", "tar", "bitreq", "zip"]

latest = ["30_0"]

# We support all minor releases of the latest four versions.
30_0 = ["29_0"]
29_0 = ["28_2"]
Expand Down