bitcoindevkit / bitcoindevkit/bdk-dart

Support seamless cross-platform Justfile execution across Windows

Open
#97 4 comments 2 reactions 0 assignees Claimed by @MusabYK View on GitHub
bug
Dominant language
Dart
Stars
13
Forks
20
Avg merge
24m
Merged PRs (30d)
3

Description

## Running just commands (e.g `just format`) on Windows fails with the following errors:

#### 1. error: recipe `format` could not be run because just could not find the shell `sh`: program not found
#### 2. error: extraneous attributes ——▶ justfile:11:1 [group("Dart")]

#### By default, `just` looks for a POSIX shell (`sh`). Windows does not include this by default, which breaks the onboarding experience for Windows contributors even if Git Bash is installed.

### Workaround
The following configuration currently works:
set unstable := true // Allows experimental features like [group(...)]
set windows-shell := ["powershell.exe", "-Command"] // Allows just to use PowerShell on Windows.

### Proposed Solution
Update the Justfile to support windows-shell
Example:
set unstable := true
set shell := ["sh", "-c"]
set windows-shell := ["powershell.exe", "-Command"]

This improves the onboarding experience for Windows contributors and avoids requiring a separate POSIX shell installation such as Git Bash, MSYS2, or WSL.

### Constrains: It requires testing on all OS

Contributor guide

Open the contributing guide

Research direction

Open the repository Justfile and start by running the failing `just format` command on Windows, then compare its behavior with the other supported operating systems. Done means the Justfile uses the required Windows shell configuration, grouped recipes no longer fail, and the relevant commands work across all OSes.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, powershell
Domain
build-system, developer-experience
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.