Skip to content

Bump github.com/swiftlang/swift-subprocess from 0.4.0 to 1.0.0 - #2

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/swift/github.com/swiftlang/swift-subprocess-1.0.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/swift/github.com/swiftlang/swift-subprocess-1.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 1, 2026

Copy link
Copy Markdown

Bumps github.com/swiftlang/swift-subprocess from 0.4.0 to 1.0.0.

Release notes

Sourced from github.com/swiftlang/swift-subprocess's releases.

Subprocess 1.0.0

Subprocess 1.0 is here. 🎉 This release marks an important milestone for this package: the advent of source stability!

Subprocess is a cross-platform package for spawning processes in Swift, supporting macOS, Linux, Windows, FreeBSD, OpenBSD, and Android. It was first pitched as SF-0007 and shipped as a public beta in spring 2025. A year of community feedback later, SF-0037 reviewed the accumulated API changes, and this release makes them final.

This note has two parts. If you last looked at Subprocess when it went through Swift Evolution, start with What Changed Since SF-0007. If you're already on 1.0.0-beta.1, skip to What Changed Since 1.0.0-beta.1.


What Changed Since SF-0007

A single run() closure form, and a unified ExecutionResult

SF-0007 handled standard input out of step with the other two streams. Reading output meant iterating execution.standardOutput, but writing input meant reaching for a separate family of run() overloads whose closure took an extra StandardInputWriter argument. Every combination of "writes to standard input or not" needed its own overload, which produced a combinatorial explosion.

Execution is now generic over its Input type as well, so all three streams work the same way. Type-conditional extensions expose standardInputWriter, standardOutput, and standardError only when the matching stream is redirected:

public struct Execution<
    Input: InputProtocol,
    Output: OutputProtocol,
    Error: OutputProtocol
>: Sendable {
    public let processIdentifier: ProcessIdentifier
}
extension Execution where Input == CustomWriteInput {
public var standardInputWriter: StandardInputWriter { get }
}
extension Execution where Output == SequenceOutput {
public var standardOutput: SubprocessOutputSequence { get }
}
extension Execution where Error == SequenceOutput {
public var standardError: SubprocessOutputSequence { get }
}

CustomWriteInput and SequenceOutput were previously internal; they and their .inputWriter and .sequence factories are now public. You opt into each stream independently: input: .inputWriter gives you execution.standardInputWriter, output: .sequence gives you execution.standardOutput, and error: .sequence gives you execution.standardError.

// Before: writing to standard input required a dedicated overload whose
// closure took an extra `StandardInputWriter`.
let result = try await run(.path("/bin/cat"), output: .sequence) { execution, writer in
    _ = try await writer.write("Hello, world")
    try await writer.finish()
    for try await chunk in execution.standardOutput { ... }
}
</tr></table>

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [github.com/swiftlang/swift-subprocess](https://github.com/swiftlang/swift-subprocess) from 0.4.0 to 1.0.0.
- [Release notes](https://github.com/swiftlang/swift-subprocess/releases)
- [Commits](https://github.com/swiftlang/swift-subprocess/commits/1.0.0)

---
updated-dependencies:
- dependency-name: github.com/swiftlang/swift-subprocess
  dependency-version: 1.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file swift_package_manager Pull requests that update swift_package_manager code labels Oct 1, 2026
@dependabot
dependabot Bot changed the base branch from main to master October 1, 2026 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file swift_package_manager Pull requests that update swift_package_manager code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants