Skip to content

chore(deps): bump github.com/swiftlang/swift-subprocess from 1.0.0 to 1.0.1 in the swift-compatible-updates group - #13

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/swift/swift-compatible-updates-fc8c3bb152
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/swift/swift-compatible-updates-fc8c3bb152

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps the swift-compatible-updates group with 1 update: github.com/swiftlang/swift-subprocess.

Updates github.com/swiftlang/swift-subprocess from 1.0.0 to 1.0.1

Release notes

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

Subprocess 1.0.1 is a bug fix release with no API changes. Its biggest change is under the hood: on Linux and FreeBSD, Subprocess now launches processes with posix_spawn instead of fork/exec wherever the C library supports it, which makes launching a process cheaper, especially from a large, multithreaded process. This release also fixes a file descriptor leak in streamed output, closes a descriptor-inheritance race, and makes supplementaryGroups: [] do what it says.


posix_spawn is now preferred on every Unix platform (#365)

Through 1.0.0, Subprocess used posix_spawn only on Darwin. Every other Unix platform used fork followed by exec, in a second, near-duplicate implementation with its own copy of the executable search loop, the transient-failure retry, the file descriptor bookkeeping, and the error mapping. 1.0.1 merges the two into one shared implementation that prefers posix_spawn everywhere and falls back to fork/exec only for configurations posix_spawn can't express.

Using posix_spawn improves performance significantly when spawning child processes with a large memory footprint. fork() duplicates the calling process's entire address space. posix_spawn avoids that work by using clone(CLONE_VM | CLONE_VFORK) on Glibc and rfork(RFSPAWN) on FreeBSD.

Bug Fixes & Behavior Changes

  • Close .sequence output and error pipes when the body closure stops reading early (#369). SubprocessOutputSequence closed its pipe only when a read reached end-of-file, so breaking out of a for try await loop early leaked one file descriptor per run() call, without bound. run() now closes each .sequence stream exactly once after the body closure returns or throws, whether or not the stream was drained.
  • Create pipes and duplicate descriptors with close-on-exec set atomically (#373). Subprocess used to mark its pipes close-on-exec with a separate fcntl() after creating them, so a process launched from another thread in between could inherit a descriptor that wasn't marked yet. Pipes now come from pipe2(O_CLOEXEC) on Linux, Android, FreeBSD, and OpenBSD, and duplicates from F_DUPFD_CLOEXEC everywhere; Darwin keeps creating pipes the old way until its SDK declares pipe2.
  • supplementaryGroups: [] now drops inherited supplementary groups (#384). An empty array used to behave exactly like nil, so the new process kept the caller's supplementary groups; any non-nil value now calls setgroups(), and [] drops them all. This is a behavior change: an unprivileged process that sets supplementaryGroups = [] now fails with .spawnFailed (EPERM), as it already did for a non-empty list. Resolves #381.
  • Report the correct errno when posix_spawnattr setup fails on Darwin (#368). The thrown SubprocessError carried a leftover success code from an earlier call instead of the error from the failing posix_spawnattr_* call.
  • Make the CMake build suitable for Swift toolchain builds (#376). Prepare Subprocess to be used as a dependency in CMake builds.

Detailed Change Log

New Contributors

Full Changelog: swiftlang/swift-subprocess@1.0.0...1.0.1

Commits
  • 55d3055 Enable API breakage and macOS swiftly CI checks (#383)
  • 536684c Drop inherited supplementary groups when supplementaryGroups is [] (#384)
  • 5eee309 Emit the swiftmodule at the nested path via CMake's own module properties (#379)
  • b115377 Prefer posix_spawn over fork/exec on every Unix platform (#365)
  • 6e0c7b5 Make the CMake build suitable for toolchain builds (#376)
  • 1337d50 Subprocess: apply shaping per constant (#377)
  • 8f099c6 Use pipe2/dup3 O_CLOEXEC atomically where available (#373)
  • 3abfd8d Replace AmazonLinux 2 qemu test profiles with Ubuntu+AlmaLinux (#372)
  • f005b9e Bump the swiftlang-actions group with 2 updates (#370)
  • e8eb119 Fix misreported errno when posix_spawnattr configuration fails on Darwin (#368)
  • Additional commits viewable in compare view

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 <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps the swift-compatible-updates group with 1 update: [github.com/swiftlang/swift-subprocess](https://github.com/swiftlang/swift-subprocess).


Updates `github.com/swiftlang/swift-subprocess` from 1.0.0 to 1.0.1
- [Release notes](https://github.com/swiftlang/swift-subprocess/releases)
- [Commits](swiftlang/swift-subprocess@1.0.0...1.0.1)

---
updated-dependencies:
- dependency-name: github.com/swiftlang/swift-subprocess
  dependency-version: 1.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: swift-compatible-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from showxu as a code owner October 18, 2026 23:45
@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 18, 2026
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