The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of RxShell, reference main (bef246), with Swift 6.0 for macOS (SPM) on 30 Nov 2024 06:28:17 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures

Build Log

========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/CmST0us/RxShell.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/CmST0us/RxShell
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at bef246d Update README.md
Cloned https://github.com/CmST0us/RxShell.git
Revision (git rev-parse @):
bef246d722460bdc10018fe28de9b53e670ffdc9
SUCCESS checkout https://github.com/CmST0us/RxShell.git at main
Fetching https://github.com/ReactiveX/RxSwift.git
[1/52393] Fetching rxswift
Fetched https://github.com/ReactiveX/RxSwift.git from cache (4.79s)
Computing version for https://github.com/ReactiveX/RxSwift.git
Computed https://github.com/ReactiveX/RxSwift.git at 6.8.0 (0.47s)
Creating working copy for https://github.com/ReactiveX/RxSwift.git
Working copy of https://github.com/ReactiveX/RxSwift.git resolved at 6.8.0
========================================
ResolveProductDependencies
========================================
Resolving dependencies ...
{
  "identity": ".resolve-product-dependencies",
  "name": "resolve-dependencies",
  "url": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "version": "unspecified",
  "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies",
  "dependencies": [
    {
      "identity": "rxshell",
      "name": "RxShell",
      "url": "https://github.com/CmST0us/RxShell.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/RxShell",
      "dependencies": [
        {
          "identity": "rxswift",
          "name": "RxSwift",
          "url": "https://github.com/ReactiveX/RxSwift.git",
          "version": "6.8.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/RxSwift",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/CmST0us/RxShell.git
[3/28] Fetching rxshell
Fetched https://github.com/CmST0us/RxShell.git from cache (0.82s)
Fetching https://github.com/ReactiveX/RxSwift.git from cache
Fetched https://github.com/ReactiveX/RxSwift.git from cache (0.67s)
Computing version for https://github.com/ReactiveX/RxSwift.git
Computed https://github.com/ReactiveX/RxSwift.git at 6.8.0 (0.03s)
Creating working copy for https://github.com/ReactiveX/RxSwift.git
Working copy of https://github.com/ReactiveX/RxSwift.git resolved at 6.8.0
Creating working copy for https://github.com/CmST0us/RxShell.git
Working copy of https://github.com/CmST0us/RxShell.git resolved at main (bef246d)
warning: '.resolve-product-dependencies': dependency 'rxshell' is not used by any target
Found 1 product dependencies
  - RxSwift
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/CmST0us/RxShell.git
{
  "dependencies" : [
    {
      "identity" : "rxswift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.0.0",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/ReactiveX/RxSwift.git"
    }
  ],
  "manifest_display_name" : "RxShell",
  "name" : "RxShell",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RxShell",
      "targets" : [
        "RxShell"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RxShell",
      "module_type" : "SwiftTarget",
      "name" : "RxShell",
      "path" : "Sources/RxShell",
      "product_dependencies" : [
        "RxSwift",
        "RxRelay"
      ],
      "product_memberships" : [
        "RxShell"
      ],
      "sources" : [
        "ArgumentBuilder.swift",
        "Extensions.swift",
        "Macros.swift",
        "Shell.swift",
        "Shells.swift",
        "ShellsBuilder.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.0.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures
Building for debugging...
[0/6] Write sources
[3/6] Copying PrivacyInfo.xcprivacy
[5/6] Write swift-version--7754E27361AE5C74.txt
[7/154] Compiling RxSwift Enumerated.swift
[8/154] Compiling RxSwift Error.swift
[9/154] Compiling RxSwift Errors.swift
[10/154] Compiling RxSwift Event.swift
[11/154] Compiling RxSwift Filter.swift
[12/154] Compiling RxSwift First.swift
[13/154] Compiling RxSwift Generate.swift
[14/154] Compiling RxSwift GroupBy.swift
[15/154] Compiling RxSwift GroupedObservable.swift
[16/154] Compiling RxSwift HistoricalScheduler.swift
[17/154] Compiling RxSwift HistoricalSchedulerTimeConverter.swift
[18/154] Compiling RxSwift ImmediateSchedulerType.swift
[19/154] Compiling RxSwift Infallible+CombineLatest+Collection.swift
[20/154] Compiling RxSwift Infallible+CombineLatest+arity.swift
[21/154] Compiling RxSwift Infallible+Concurrency.swift
[22/154] Compiling RxSwift Infallible+Create.swift
[23/170] Compiling RxSwift AddRef.swift
[24/170] Compiling RxSwift Amb.swift
[25/170] Compiling RxSwift AnonymousDisposable.swift
[26/170] Compiling RxSwift AnonymousObserver.swift
[27/170] Compiling RxSwift AnyObserver.swift
[28/170] Compiling RxSwift AsMaybe.swift
[29/170] Compiling RxSwift AsSingle.swift
[30/170] Compiling RxSwift AsyncLock.swift
[31/170] Compiling RxSwift AsyncSubject.swift
[32/170] Compiling RxSwift AtomicInt.swift
[33/170] Compiling RxSwift Bag+Rx.swift
[34/170] Compiling RxSwift Bag.swift
[35/170] Compiling RxSwift BehaviorSubject.swift
[36/170] Compiling RxSwift BinaryDisposable.swift
[37/170] Compiling RxSwift Binder.swift
[38/170] Compiling RxSwift BooleanDisposable.swift
[39/170] Compiling RxSwift Buffer.swift
[40/170] Emitting module RxSwift
[41/170] Compiling RxSwift Rx.swift
[42/170] Compiling RxSwift RxMutableBox.swift
[43/170] Compiling RxSwift Sample.swift
[44/170] Compiling RxSwift Scan.swift
[45/170] Compiling RxSwift ScheduledDisposable.swift
[46/170] Compiling RxSwift ScheduledItem.swift
[47/170] Compiling RxSwift ScheduledItemType.swift
[48/170] Compiling RxSwift SchedulerServices+Emulation.swift
[49/170] Compiling RxSwift SchedulerType.swift
[50/170] Compiling RxSwift Sequence.swift
[51/170] Compiling RxSwift SerialDispatchQueueScheduler.swift
[52/170] Compiling RxSwift SerialDisposable.swift
[53/170] Compiling RxSwift ShareReplayScope.swift
[54/170] Compiling RxSwift Single.swift
[55/170] Compiling RxSwift SingleAssignmentDisposable.swift
[56/170] Compiling RxSwift SingleAsync.swift
[57/170] Compiling RxSwift Sink.swift
[58/170] Compiling RxSwift Skip.swift
[59/170] Compiling RxSwift SkipUntil.swift
[60/170] Compiling RxSwift SkipWhile.swift
[61/170] Compiling RxSwift StartWith.swift
[62/170] Compiling RxSwift SubjectType.swift
[63/170] Compiling RxSwift SubscribeOn.swift
[64/170] Compiling RxSwift SubscriptionDisposable.swift
[65/170] Compiling RxSwift SwiftSupport.swift
[66/170] Compiling RxSwift Switch.swift
[67/170] Compiling RxSwift SwitchIfEmpty.swift
[68/170] Compiling RxSwift SynchronizedDisposeType.swift
[69/170] Compiling RxSwift SynchronizedOnType.swift
[70/170] Compiling RxSwift SynchronizedUnsubscribeType.swift
[71/170] Compiling RxSwift TailRecursiveSink.swift
[72/170] Compiling RxSwift Take.swift
[73/170] Compiling RxSwift PrimitiveSequence+Concurrency.swift
[74/170] Compiling RxSwift PrimitiveSequence+Zip+arity.swift
[75/170] Compiling RxSwift PrimitiveSequence.swift
[76/170] Compiling RxSwift PriorityQueue.swift
[77/170] Compiling RxSwift Producer.swift
[78/170] Compiling RxSwift PublishSubject.swift
[79/170] Compiling RxSwift Queue.swift
[80/170] Compiling RxSwift Range.swift
[81/170] Compiling RxSwift Reactive.swift
[82/170] Compiling RxSwift RecursiveLock.swift
[83/170] Compiling RxSwift RecursiveScheduler.swift
[84/170] Compiling RxSwift Reduce.swift
[85/170] Compiling RxSwift RefCountDisposable.swift
[86/170] Compiling RxSwift Repeat.swift
[87/170] Compiling RxSwift ReplaySubject.swift
[88/170] Compiling RxSwift RetryWhen.swift
[89/170] Compiling RxSwift Infallible+Debug.swift
[90/170] Compiling RxSwift Infallible+Operators.swift
[91/170] Compiling RxSwift Infallible+Zip+arity.swift
[92/170] Compiling RxSwift Infallible.swift
[93/170] Compiling RxSwift InfiniteSequence.swift
[94/170] Compiling RxSwift InvocableScheduledItem.swift
[95/170] Compiling RxSwift InvocableType.swift
[96/170] Compiling RxSwift Just.swift
[97/170] Compiling RxSwift Lock.swift
[98/170] Compiling RxSwift LockOwnerType.swift
[99/170] Compiling RxSwift MainScheduler.swift
[100/170] Compiling RxSwift Map.swift
[101/170] Compiling RxSwift Materialize.swift
[102/170] Compiling RxSwift Maybe.swift
[103/170] Compiling RxSwift Merge.swift
[104/170] Compiling RxSwift Multicast.swift
[105/170] Compiling RxSwift Debug.swift
[106/170] Compiling RxSwift Decode.swift
[107/170] Compiling RxSwift DefaultIfEmpty.swift
[108/170] Compiling RxSwift Deferred.swift
[109/170] Compiling RxSwift Delay.swift
[110/170] Compiling RxSwift DelaySubscription.swift
[111/170] Compiling RxSwift Dematerialize.swift
[112/170] Compiling RxSwift DispatchQueue+Extensions.swift
[113/170] Compiling RxSwift DispatchQueueConfiguration.swift
[114/170] Compiling RxSwift Disposable.swift
[115/170] Compiling RxSwift Disposables.swift
[116/170] Compiling RxSwift DisposeBag.swift
[117/170] Compiling RxSwift DisposeBase.swift
[118/170] Compiling RxSwift DistinctUntilChanged.swift
[119/170] Compiling RxSwift Do.swift
[120/170] Compiling RxSwift ElementAt.swift
[121/170] Compiling RxSwift Empty.swift
[122/170] Compiling RxSwift Never.swift
[123/170] Compiling RxSwift NopDisposable.swift
[124/170] Compiling RxSwift Observable+Concurrency.swift
[125/170] Compiling RxSwift Observable.swift
[126/170] Compiling RxSwift ObservableConvertibleType+Infallible.swift
[127/170] Compiling RxSwift ObservableConvertibleType.swift
[128/170] Compiling RxSwift ObservableType+Extensions.swift
[129/170] Compiling RxSwift ObservableType+PrimitiveSequence.swift
[130/170] Compiling RxSwift ObservableType.swift
[131/170] Compiling RxSwift ObserveOn.swift
[132/170] Compiling RxSwift ObserverBase.swift
[133/170] Compiling RxSwift ObserverType.swift
[134/170] Compiling RxSwift OperationQueueScheduler.swift
[135/170] Compiling RxSwift Optional.swift
[136/170] Compiling RxSwift Platform.Darwin.swift
[137/170] Compiling RxSwift Platform.Linux.swift
[138/170] Compiling RxSwift Cancelable.swift
[139/170] Compiling RxSwift Catch.swift
[140/170] Compiling RxSwift CombineLatest+Collection.swift
[141/170] Compiling RxSwift CombineLatest+arity.swift
[142/170] Compiling RxSwift CombineLatest.swift
[143/170] Compiling RxSwift CompactMap.swift
[144/170] Compiling RxSwift Completable+AndThen.swift
[145/170] Compiling RxSwift Completable.swift
[146/170] Compiling RxSwift CompositeDisposable.swift
[147/170] Compiling RxSwift Concat.swift
[148/170] Compiling RxSwift ConcurrentDispatchQueueScheduler.swift
[149/170] Compiling RxSwift ConcurrentMainScheduler.swift
[150/170] Compiling RxSwift ConnectableObservableType.swift
[151/170] Compiling RxSwift Create.swift
[152/170] Compiling RxSwift CurrentThreadScheduler.swift
[153/170] Compiling RxSwift Date+Dispatch.swift
[154/170] Compiling RxSwift Debounce.swift
[155/170] Compiling RxSwift TakeLast.swift
[156/170] Compiling RxSwift TakeWithPredicate.swift
[157/170] Compiling RxSwift Throttle.swift
[158/170] Compiling RxSwift Timeout.swift
[159/170] Compiling RxSwift Timer.swift
[160/170] Compiling RxSwift ToArray.swift
[161/170] Compiling RxSwift Using.swift
[162/170] Compiling RxSwift VirtualTimeConverterType.swift
[163/170] Compiling RxSwift VirtualTimeScheduler.swift
[164/170] Compiling RxSwift Window.swift
[165/170] Compiling RxSwift WithLatestFrom.swift
[166/170] Compiling RxSwift WithUnretained.swift
[167/170] Compiling RxSwift Zip+Collection.swift
[168/170] Compiling RxSwift Zip+arity.swift
[169/170] Compiling RxSwift Zip.swift
[170/170] Compiling RxSwift resource_bundle_accessor.swift
[171/177] Compiling RxRelay Utils.swift
[172/177] Compiling RxRelay resource_bundle_accessor.swift
[173/177] Compiling RxRelay PublishRelay.swift
[174/177] Compiling RxRelay ReplayRelay.swift
[175/177] Compiling RxRelay BehaviorRelay.swift
[176/177] Emitting module RxRelay
[177/177] Compiling RxRelay Observable+Bind.swift
[178/184] Compiling RxShell ShellsBuilder.swift
[179/184] Compiling RxShell Macros.swift
[180/184] Compiling RxShell Shells.swift
[181/184] Compiling RxShell Shell.swift
[182/184] Emitting module RxShell
[183/184] Compiling RxShell Extensions.swift
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:115:63: warning: capture of 'outputPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
113 |                 let data = outputPipe.fileHandleForReading.availableData
114 |                 guard data.count > 0 else {
115 |                     NotificationCenter.default.removeObserver(outputPipeDataObserver as Any)
    |                                                               `- warning: capture of 'outputPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
116 |                     return
117 |                 }
ObjectiveC.NSObjectProtocol:1:17: note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 1 | public protocol NSObjectProtocol {
   |                 `- note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 2 |     func isEqual(_ object: Any?) -> Bool
 3 |     var hash: Int { get }
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:5:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  3 | //
  4 |
  5 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'ObjectiveC'
  6 |
  7 | public struct ShellOutError: Swift.Error {
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:115:63: warning: capture of 'outputPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in an isolated closure; this is an error in the Swift 6 language mode
113 |                 let data = outputPipe.fileHandleForReading.availableData
114 |                 guard data.count > 0 else {
115 |                     NotificationCenter.default.removeObserver(outputPipeDataObserver as Any)
    |                                                               `- warning: capture of 'outputPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in an isolated closure; this is an error in the Swift 6 language mode
116 |                     return
117 |                 }
ObjectiveC.NSObjectProtocol:1:17: note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 1 | public protocol NSObjectProtocol {
   |                 `- note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 2 |     func isEqual(_ object: Any?) -> Bool
 3 |     var hash: Int { get }
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:115:63: warning: reference to captured var 'outputPipeDataObserver' in concurrently-executing code; this is an error in the Swift 6 language mode
113 |                 let data = outputPipe.fileHandleForReading.availableData
114 |                 guard data.count > 0 else {
115 |                     NotificationCenter.default.removeObserver(outputPipeDataObserver as Any)
    |                                                               `- warning: reference to captured var 'outputPipeDataObserver' in concurrently-executing code; this is an error in the Swift 6 language mode
116 |                     return
117 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:123:17: warning: mutation of captured var 'outputData' in concurrently-executing code; this is an error in the Swift 6 language mode
121 |                     print(line, terminator: "")
122 |                 }
123 |                 outputData.append(data)
    |                 `- warning: mutation of captured var 'outputData' in concurrently-executing code; this is an error in the Swift 6 language mode
124 |
125 |                 outputPipe.fileHandleForReading.waitForDataInBackgroundAndNotify()
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:146:63: warning: capture of 'errorPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
144 |                 let data = errorPipe.fileHandleForReading.availableData
145 |                 guard data.count > 0 else {
146 |                     NotificationCenter.default.removeObserver(errorPipeDataObserver as Any)
    |                                                               `- warning: capture of 'errorPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in a `@Sendable` closure; this is an error in the Swift 6 language mode
147 |                     return
148 |                 }
ObjectiveC.NSObjectProtocol:1:17: note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 1 | public protocol NSObjectProtocol {
   |                 `- note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 2 |     func isEqual(_ object: Any?) -> Bool
 3 |     var hash: Int { get }
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:146:63: warning: capture of 'errorPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in an isolated closure; this is an error in the Swift 6 language mode
144 |                 let data = errorPipe.fileHandleForReading.availableData
145 |                 guard data.count > 0 else {
146 |                     NotificationCenter.default.removeObserver(errorPipeDataObserver as Any)
    |                                                               `- warning: capture of 'errorPipeDataObserver' with non-sendable type '(any NSObjectProtocol)?' in an isolated closure; this is an error in the Swift 6 language mode
147 |                     return
148 |                 }
ObjectiveC.NSObjectProtocol:1:17: note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 1 | public protocol NSObjectProtocol {
   |                 `- note: protocol 'NSObjectProtocol' does not conform to the 'Sendable' protocol
 2 |     func isEqual(_ object: Any?) -> Bool
 3 |     var hash: Int { get }
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:146:63: warning: reference to captured var 'errorPipeDataObserver' in concurrently-executing code; this is an error in the Swift 6 language mode
144 |                 let data = errorPipe.fileHandleForReading.availableData
145 |                 guard data.count > 0 else {
146 |                     NotificationCenter.default.removeObserver(errorPipeDataObserver as Any)
    |                                                               `- warning: reference to captured var 'errorPipeDataObserver' in concurrently-executing code; this is an error in the Swift 6 language mode
147 |                     return
148 |                 }
/Users/admin/builder/spi-builder-workspace/Sources/RxShell/Extensions.swift:154:17: warning: mutation of captured var 'errorData' in concurrently-executing code; this is an error in the Swift 6 language mode
152 |                     print(line, terminator: "")
153 |                 }
154 |                 errorData.append(data)
    |                 `- warning: mutation of captured var 'errorData' in concurrently-executing code; this is an error in the Swift 6 language mode
155 |
156 |                 errorPipe.fileHandleForReading.waitForDataInBackgroundAndNotify()
[184/184] Compiling RxShell ArgumentBuilder.swift
Build complete! (21.17s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "rxswift",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.0.0",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/ReactiveX/RxSwift.git"
    }
  ],
  "manifest_display_name" : "RxShell",
  "name" : "RxShell",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "RxShell",
      "targets" : [
        "RxShell"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "RxShell",
      "module_type" : "SwiftTarget",
      "name" : "RxShell",
      "path" : "Sources/RxShell",
      "product_dependencies" : [
        "RxSwift",
        "RxRelay"
      ],
      "product_memberships" : [
        "RxShell"
      ],
      "sources" : [
        "ArgumentBuilder.swift",
        "Extensions.swift",
        "Macros.swift",
        "Shell.swift",
        "Shells.swift",
        "ShellsBuilder.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.