From e76b4d58cbda8a257ef73e5ea15b3c42e0c78643 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Wed, 26 Aug 2026 20:15:32 +0100 Subject: [PATCH] fix(shell): declare the dialect for the sourced contract.config.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit shellcheck SC2148 ('target shell is unknown') on contract.config.sh. Deliberately a directive, not a shebang. The file is SOURCED by tools/check-contract.sh and never executed as its own process, so a shebang would claim an execution model it does not have. '# shellcheck shell=bash' states the dialect without making that false claim. Placed on line 2, immediately after the SPDX header, so the estate rule that SPDX must be line 1 still holds — shellcheck directives are honoured anywhere before the first command. Found by an estate-wide sweep of 5,111 scripts across 375 repos: 85 files lack a shell declaration. Only first-party files were changed; HOL's ATP scripts and the ReScript compiler's own test fixtures were excluded as vendored upstream code, where a shebang would create permanent divergence for a lint warning. --- contract.config.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/contract.config.sh b/contract.config.sh index f9e7217..69f19da 100644 --- a/contract.config.sh +++ b/contract.config.sh @@ -1,4 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 +# shellcheck shell=bash # Layering-contract gate config for typed-wasm. Consumed by tools/check-contract.sh. # See CONTRACT.adoc for the human-readable rules.