From fe9ae5da8a0c77b6b54fd64974b3ff115ce37502 Mon Sep 17 00:00:00 2001 From: Oliver Drobnik Date: Thu, 8 Oct 2026 10:22:00 +0200 Subject: [PATCH] Require ShellKit by version (0.1.x) so SwiftScript can be tagged MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SwiftPM refuses a version requirement on a package whose own dependencies are branch-pinned, so as long as SwiftScript required ShellKit by `branch: "main"` nobody could depend on SwiftScript by version — and neither could SwiftBash, which sits above it. ShellKit 0.1.0 is now tagged. The requirement becomes `.upToNextMinor(from: "0.1.0")`: ShellKit is 0.x and a minor bump may change API, so the family moves minors together rather than floating across them. Package.resolved moves from the `main` pin (ce21474) to the 0.1.0 tag (40c1b41); the two intervening ShellKit changes (lazy process stdin, UNC root normalisation) don't touch anything SwiftScript uses. Part of the bottom-up version tagging across the ShellKit family (Cocoanetics/SwiftBash#89). Co-Authored-By: Claude Fable 5.1 --- Package.resolved | 6 +++--- Package.swift | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Package.resolved b/Package.resolved index 7b36155..60cf8b8 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,13 +1,13 @@ { - "originHash" : "0cd8515406137deb69d604344cc3fc16f80b2518f4dd27a5eeda64f7673d3cbd", + "originHash" : "4a541144be2c0eeb933e247eb979bdd12bfc3b3d61a512ccb733fcf9df22079d", "pins" : [ { "identity" : "shellkit", "kind" : "remoteSourceControl", "location" : "https://github.com/Cocoanetics/ShellKit", "state" : { - "branch" : "main", - "revision" : "ce2147463e7f08732112bb8929cd79944942f9d9" + "revision" : "40c1b417e6c6318d2ca644d9a3062dc6befd0e31", + "version" : "0.1.0" } }, { diff --git a/Package.swift b/Package.swift index d081636..a8d94ad 100644 --- a/Package.swift +++ b/Package.swift @@ -31,8 +31,14 @@ let package = Package( // virtualised Shell). The standalone `swift-script` CLI uses // `Shell.processDefault` so the binary still talks to real // FileHandles when run on its own. + // + // Versioned (not `branch: "main"`) so SwiftScript itself can be + // required by version: SwiftPM refuses a version requirement on a + // package whose own dependencies are branch-pinned. `upToNextMinor` + // because ShellKit is 0.x and a minor bump may change API; the + // family moves minors together (Cocoanetics/SwiftBash#89). .package(url: "https://github.com/Cocoanetics/ShellKit", - branch: "main"), + .upToNextMinor(from: "0.1.0")), ], targets: [ .target(