Repository navigation
build: sync GHA action major versions, pin them with gh actions-lock, use just to manage recipes, propagate to CI - #1286
Conversation
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Shared and crate-specific recipes Justfile, mod.just, .github/mod.just, dash-spv*/mod.just, fuzz/mod.just, key-wallet-ffi/mod.just, masternode-seeds-fetcher/mod.just |
Adds shared workspace recipes and crate-specific commands for testing, coverage, sanitizers, SPV, fuzzing, FFI, benchmarks, seed refresh, and GitHub Actions. |
SPV setup and CI group execution contrib/setup-dashd.py, .github/scripts/ci_config.py, dash-spv/mod.just |
The setup script returns dashd environment values and can run a command with them. CI group execution accepts multiple groups and prepares dashd when SPV tests are selected. |
CI workflow recipe adoption .github/workflows/*, .github/actionlint.yaml, .github/mod.just |
Workflows use Just recipes for tests, fuzzing, sanitizers, seed refresh, and Rust checks. The Rust workflow adds action-lock verification and updates reusable workflow references. Checkout action versions and actionlint settings also change. |
Development command instructions AGENTS.md, CLAUDE.md, key-wallet-ffi/FFI_DOCS_README.md |
Development instructions use Just recipes for workspace tasks, iOS builds, FFI documentation, and dashd integration tests. |
Estimated code review effort: 3 (Moderate) | ~25 minutes
Change: Other
Possibly related PRs
- dashpay/rust-dashcore#1216: Both PRs change sanitizer workflow path filters, including when Justfile changes trigger sanitizer jobs.
- dashpay/rust-dashcore#1217: Both PRs change sanitizer execution configuration; this PR routes sanitizer jobs through Just recipes.
Suggested reviewers: xdustinface, zocolini, quantumexplorer
Merge Risk: 
Low · up to c7ce7
-
Contributors without PyYAML will see the new local test commands fail before execution; the requirement is documented, so this is mergeable with a small setup improvement.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull details: Docstring Coverage
-
Explanation
Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 3 functions across 2 files. (3 skipped: 3 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches
-
Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
13d66cd to
7048558
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #1286 +/- ##
==========================================
- Coverage 81.74% 81.74% -0.01%
==========================================
Files 290 290
Lines 76063 76063
==========================================
- Hits 62178 62176 -2
- Misses 13885 13887 +2
|
|
Waiting for bot review — coderabbitai not yet. Wait for the missing reviews, or a writer can post |
|
Waiting for bot review — coderabbitai not yet. Wait for the missing reviews, or a writer can post |
|
@coderabbitai review |
Action performed
|
|
/self-reviewed |
|
Bots are done — your move: post |
|
Ready for review — |
Motivation
Since GitHub has now placed
actions-lockin general availability, we can pin our workflows without sacrificing legibility. This has already been done at base-sdk#96 and bundled with pinning is the introduction ofJustfiles, some of them frombase-sdkregarding GitHub Actions and the rest specific torust-dashcore.The benefit of this is to expose recipes and common operations through verbs without needing to go through CI to figure out how to execute common validation operations. We started using it at
base-sdkin base-sdk#55 as it was becoming clear that relying on my terminal history to maintain the repo isn't sustainable for myself and for contributors/future codeowners.This pull request intends to pass on some of the documentary benefits of using
justover to this repository.Additional Information
Pinning requires us to move to
$/(repo-relative) instead of./(workspace-relative) to make pinning possible for reusable workflows.Pinning is not absolute and a warning will be emitted due to
EmbarkStudios/cargo-deny-actionnot pinning their base image used to assemble the action, an issue has been raised upstream for tracking it (see EmbarkStudios/cargo-deny-action#119).Even though strictly speaking
just gha::setup gha::verifycan be used without logging in togh, shared runners will likely have exhausted the rate limits for anonymous operations so logging in makes sure we don't get rate-limited randomly.Where possible,
Justfileshave been written to not rely on POSIX semantics but commands that can only run on POSIX-y platforms will error with "failed: unsupported on Windows, requires Linux, macOS or WSL" (like fuzzing)justcan be obtained from major package managers (Debian, Fedora, Homebrew, winget) and so can be considered as a reasonable dependency for contributors and maintainersPR Hygiene ·
c7ce76fgithub(.github/actionlint.yaml,.github/mod.just,.github/scripts/ci_config.pyand 7 more) — ktechmidas or shumkovAGENTS.md,CLAUDE.md,Justfileand 7 more) — QuantumExplorer or ZocoLini or xdustinfacedash-spv(dash-spv/mod.just) — QuantumExplorer or ZocoLini or xdustinfaceWhen every merge requirement is met, the
PR Hygienecheck passes. Reviewer limits do not block merging; other required GitHub checks and protections still apply.