Skip to content

Commit c0da350

Browse files
authored
Merge pull request #326 from dashpay/v0.41-dev
chore: release `v0.41.0`
2 parents c877c1a + 4abb3f2 commit c0da350

File tree

501 files changed

+22464
-53837
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

501 files changed

+22464
-53837
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Merge Conflict Check
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- 'v*-dev'
8+
pull_request_target:
9+
types: [opened, synchronize, reopened]
10+
11+
jobs:
12+
conflict-check:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
pull-requests: write
16+
steps:
17+
- name: Check for merge conflicts and label
18+
uses: eps1lon/actions-label-merge-conflict@v3
19+
with:
20+
dirtyLabel: "merge-conflict"
21+
repoToken: "${{ secrets.GITHUB_TOKEN }}"
22+
commentOnDirty: "This PR has merge conflicts with the base branch. Please rebase or merge the base branch into your branch to resolve them."

.github/workflows/fuzz.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ concurrency:
1818
jobs:
1919
fuzz:
2020
if: ${{ !github.event.act }}
21-
runs-on: ubuntu-latest
21+
runs-on: ubuntu-22.04-arm
2222
strategy:
2323
fail-fast: false
2424
matrix:
@@ -66,7 +66,7 @@ jobs:
6666
verify-execution:
6767
if: ${{ !github.event.act }}
6868
needs: fuzz
69-
runs-on: ubuntu-latest
69+
runs-on: ubuntu-22.04-arm
7070
steps:
7171
- uses: actions/checkout@v4
7272
- uses: actions/download-artifact@v4

.github/workflows/pre-commit.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Pre-commit Checks
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
- 'v**-dev'
8+
pull_request:
9+
10+
jobs:
11+
pre-commit:
12+
name: Pre-commit (${{ matrix.os }})
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
# TODO: Windows excluded - rs-x11-hash requires POSIX headers (unistd.h)
18+
os: [ubuntu-latest, macos-latest]
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v5
22+
23+
- name: Set up Python
24+
uses: actions/setup-python@v6
25+
with:
26+
python-version: "3.x"
27+
28+
- name: Setup Rust toolchain
29+
uses: dtolnay/rust-toolchain@stable
30+
with:
31+
components: rustfmt, clippy
32+
33+
- name: Cache cargo dependencies
34+
uses: Swatinem/rust-cache@v2
35+
with:
36+
shared-key: "rust-cache-${{ matrix.os }}"
37+
38+
- name: Run pre-commit
39+
uses: pre-commit/[email protected]
40+
with:
41+
extra_args: --all-files --hook-stage push --verbose

.github/workflows/rust.yml

Lines changed: 6 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
permissions:
2121
contents: read
2222
pull-requests: write
23-
runs-on: ubuntu-latest
23+
runs-on: ubuntu-22.04-arm
2424
steps:
2525
- name: Checkout Crate
2626
uses: actions/checkout@v4
@@ -73,7 +73,7 @@ jobs:
7373
# Run test in isolation, single-threaded to improve determinism
7474
cargo test -p dash-spv --all-features -- --nocapture --test-threads=1 "$t" 2>&1 | tee -a segv_scan.log
7575
rc=${PIPESTATUS[0]}
76-
if [ $rc -ne 0 ]; then
76+
if [ "$rc" -ne 0 ]; then
7777
if tail -n 200 segv_scan.log | grep -qE 'SIGSEGV|signal: 11'; then
7878
FOUND_THIS_ATTEMPT+=("$t")
7979
SEGV_TESTS+=("$t")
@@ -140,7 +140,7 @@ jobs:
140140

141141
key_wallet_tests:
142142
name: Key Wallet Components Tests
143-
runs-on: ubuntu-latest
143+
runs-on: ubuntu-22.04-arm
144144
steps:
145145
- name: Checkout Crate
146146
uses: actions/checkout@v4
@@ -157,7 +157,7 @@ jobs:
157157

158158
core_components_tests:
159159
name: Core Components Tests
160-
runs-on: ubuntu-latest
160+
runs-on: ubuntu-22.04-arm
161161
steps:
162162
- name: Checkout Crate
163163
uses: actions/checkout@v4
@@ -176,142 +176,9 @@ jobs:
176176
- name: Run script-based tests
177177
run: ./contrib/test.sh
178178

179-
clippy:
180-
name: Clippy (Non-strict)
181-
runs-on: ubuntu-latest
182-
steps:
183-
- name: Checkout Crate
184-
uses: actions/checkout@v4
185-
- name: Setup Rust toolchain
186-
uses: dtolnay/rust-toolchain@stable
187-
with:
188-
components: clippy
189-
- name: Run clippy (excluding strict-checked crates)
190-
run: |
191-
# Auto-discover all workspace crates and exclude strict-checked ones
192-
STRICT_CRATES=("key-wallet" "key-wallet-manager" "key-wallet-ffi" "dashcore_hashes" "dashcore" "dash-spv" "dash-spv-ffi")
193-
mapfile -t ALL_CRATES < <(cargo metadata --no-deps --format-version=1 | jq -r '.packages[].name' | sort -u)
194-
for crate in "${ALL_CRATES[@]}"; do
195-
if printf '%s\n' "${STRICT_CRATES[@]}" | grep -qx "$crate"; then
196-
continue
197-
fi
198-
echo "Checking $crate (warnings allowed, errors will fail)..."
199-
cargo clippy -p "$crate" --all-features --all-targets -- -W warnings
200-
done
201-
202-
strict-checks:
203-
name: Strict Warnings and Clippy Checks
204-
runs-on: ubuntu-latest
205-
steps:
206-
- name: Checkout Crate
207-
uses: actions/checkout@v4
208-
- name: Setup Rust toolchain
209-
uses: dtolnay/rust-toolchain@stable
210-
with:
211-
components: clippy
212-
- name: Cache cargo dependencies
213-
uses: Swatinem/rust-cache@v2
214-
215-
# Check key-wallet with strict warnings
216-
- name: Check key-wallet (deny warnings)
217-
env:
218-
RUSTFLAGS: "-D warnings"
219-
run: |
220-
cargo check -p key-wallet --all-features --lib --bins --tests
221-
cargo build -p key-wallet --all-features --lib --bins
222-
cargo test -p key-wallet --all-features --lib --bins
223-
224-
- name: Clippy key-wallet (deny all warnings)
225-
run: cargo clippy -p key-wallet --all-features --lib --bins --tests -- -D warnings
226-
227-
# Check key-wallet-manager with strict warnings
228-
- name: Check key-wallet-manager (deny warnings)
229-
env:
230-
RUSTFLAGS: "-D warnings"
231-
run: |
232-
cargo check -p key-wallet-manager --all-features --lib --bins --tests
233-
cargo build -p key-wallet-manager --all-features --lib --bins
234-
cargo test -p key-wallet-manager --all-features --lib --bins
235-
236-
- name: Clippy key-wallet-manager (deny all warnings)
237-
run: cargo clippy -p key-wallet-manager --all-features --lib --bins --tests -- -D warnings
238-
239-
# Check key-wallet-ffi with strict warnings
240-
- name: Check key-wallet-ffi (deny warnings)
241-
env:
242-
RUSTFLAGS: "-D warnings"
243-
run: |
244-
cargo check -p key-wallet-ffi --all-features --lib --bins --tests
245-
cargo build -p key-wallet-ffi --all-features --lib --bins
246-
cargo test -p key-wallet-ffi --all-features --lib --bins
247-
248-
- name: Clippy key-wallet-ffi (deny all warnings)
249-
run: cargo clippy -p key-wallet-ffi --all-features --lib --bins --tests -- -D warnings
250-
251-
# Check dashcore with strict warnings
252-
- name: Check dashcore (deny warnings)
253-
env:
254-
RUSTFLAGS: "-D warnings"
255-
run: |
256-
cargo check -p dashcore --all-features --lib --bins --tests
257-
cargo build -p dashcore --all-features --lib --bins
258-
cargo test -p dashcore --all-features --lib --bins
259-
260-
- name: Clippy dashcore (deny all warnings)
261-
run: cargo clippy -p dashcore --all-features --lib --bins --tests -- -D warnings
262-
263-
# Check dashcore_hashes with strict warnings
264-
- name: Check dashcore_hashes (deny warnings)
265-
env:
266-
RUSTFLAGS: "-D warnings"
267-
run: |
268-
cargo check -p dashcore_hashes --all-features --lib --bins --tests
269-
cargo build -p dashcore_hashes --all-features --lib --bins
270-
cargo test -p dashcore_hashes --all-features --lib --bins
271-
272-
- name: Clippy dashcore_hashes (deny all warnings)
273-
run: cargo clippy -p dashcore_hashes --all-features --lib --bins --tests -- -D warnings
274-
275-
# Check dash-spv with strict warnings
276-
- name: Check dash-spv (deny warnings)
277-
env:
278-
RUSTFLAGS: "-D warnings"
279-
run: |
280-
cargo check -p dash-spv --all-features --lib --bins --tests
281-
cargo build -p dash-spv --all-features --lib --bins
282-
cargo test -p dash-spv --all-features --lib --bins
283-
284-
- name: Clippy dash-spv (deny all warnings)
285-
run: cargo clippy -p dash-spv --all-features --lib --bins --tests -- -D warnings
286-
287-
# Check dash-spv-ffi with strict warnings
288-
- name: Check dash-spv-ffi (deny warnings)
289-
env:
290-
RUSTFLAGS: "-D warnings"
291-
run: |
292-
cargo check -p dash-spv-ffi --all-features --lib --bins --tests
293-
cargo build -p dash-spv-ffi --all-features --lib --bins
294-
cargo test -p dash-spv-ffi --all-features --lib --bins
295-
296-
- name: Clippy dash-spv-ffi (deny all warnings)
297-
run: cargo clippy -p dash-spv-ffi --all-features --lib --bins --tests -- -D warnings
298-
299-
fmt:
300-
name: Format
301-
runs-on: ubuntu-latest
302-
steps:
303-
- name: Checkout Crate
304-
uses: actions/checkout@v4
305-
- name: Setup Rust toolchain
306-
uses: dtolnay/rust-toolchain@stable
307-
with:
308-
components: rustfmt
309-
- name: Check formatting
310-
run: cargo fmt --all -- --check
311-
312179
rpc_tests:
313180
name: RPC Tests
314-
runs-on: ubuntu-latest
181+
runs-on: ubuntu-22.04-arm
315182
strategy:
316183
matrix:
317184
include:
@@ -330,7 +197,7 @@ jobs:
330197
integrations_tests:
331198
name: Integration Tests
332199
if: ${{ false }} # Temporarily disabled
333-
runs-on: ubuntu-latest
200+
runs-on: ubuntu-22.04-arm
334201
strategy:
335202
matrix:
336203
rust: [stable]
@@ -344,16 +211,3 @@ jobs:
344211
env:
345212
DASHVERSION: ${{ matrix.dashversion }}
346213
run: ./contrib/test-rpc.sh
347-
348-
actionlint:
349-
name: Lint GitHub Actions
350-
runs-on: ubuntu-latest
351-
permissions:
352-
contents: read
353-
steps:
354-
- name: Checkout Crate
355-
uses: actions/checkout@v4
356-
- name: Run actionlint
357-
uses: reviewdog/action-actionlint@v1
358-
with:
359-
fail_on_error: true

0 commit comments

Comments
 (0)