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 SwiftSessions, reference 1.0.1 (92cf4f), with Swift 6.1 for Linux on 28 Apr 2025 22:50:32 UTC.

Swift 6 data race errors: 0

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.61.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/alessiorubicini/SwiftSessions.git
Reference: 1.0.1
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/alessiorubicini/SwiftSessions
 * tag               1.0.1      -> FETCH_HEAD
HEAD is now at 92cf4f1 refactored channel to endpoint
Cloned https://github.com/alessiorubicini/SwiftSessions.git
Revision (git rev-parse @):
92cf4f118a12e3869eba07ebea57a19788056851
SUCCESS checkout https://github.com/alessiorubicini/SwiftSessions.git at 1.0.1
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.1
Building package at path:  $PWD
https://github.com/alessiorubicini/SwiftSessions.git
https://github.com/alessiorubicini/SwiftSessions.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
    {
      "identity" : "swift-async-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-async-algorithms"
    }
  ],
  "manifest_display_name" : "SwiftSessions",
  "name" : "SwiftSessions",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftSessions",
      "targets" : [
        "SwiftSessions"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftSessionsTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftSessionsTests",
      "path" : "Tests",
      "product_dependencies" : [
        "AsyncAlgorithms"
      ],
      "sources" : [
        "BranchingTests.swift",
        "LinearityTests.swift",
        "LoopTests.swift",
        "MathTests.swift",
        "StandardTests.swift"
      ],
      "target_dependencies" : [
        "SwiftSessions"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftSessions",
      "module_type" : "SwiftTarget",
      "name" : "SwiftSessions",
      "path" : "Sources/SwiftSessions",
      "product_dependencies" : [
        "AsyncAlgorithms"
      ],
      "product_memberships" : [
        "SwiftSessions"
      ],
      "sources" : [
        "Client.swift",
        "Empty.swift",
        "Endpoint.swift",
        "Or.swift",
        "Server.swift",
        "Session/Session+Closures.swift",
        "Session/Session+Passing.swift",
        "Session/Session.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.1-latest swift build --triple x86_64-unknown-linux-gnu -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 2>&1
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Fetching https://github.com/apple/swift-async-algorithms
[1/4965] Fetching swift-async-algorithms
Fetched https://github.com/apple/swift-async-algorithms from cache (0.34s)
Computing version for https://github.com/apple/swift-async-algorithms
Computed https://github.com/apple/swift-async-algorithms at 1.0.4 (1.14s)
Fetching https://github.com/apple/swift-collections.git
[1/16242] Fetching swift-collections
Fetched https://github.com/apple/swift-collections.git from cache (12.57s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.4 (15.08s)
Creating working copy for https://github.com/apple/swift-async-algorithms
Working copy of https://github.com/apple/swift-async-algorithms resolved at 1.0.4
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.1.4
Building for debugging...
[0/6] Write sources
[5/6] Write swift-version-24593BA9C3E375BF.txt
[7/23] Emitting module InternalCollectionsUtilities
[8/25] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[9/25] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[10/25] Compiling InternalCollectionsUtilities _SortedCollection.swift
[11/25] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[12/25] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+SE-0370.swift
[13/25] Compiling InternalCollectionsUtilities UnsafeMutablePointer+SE-0370.swift
[14/25] Compiling InternalCollectionsUtilities UnsafeRawPointer extensions.swift
[15/25] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[16/25] Compiling InternalCollectionsUtilities Specialize.swift
[17/25] Compiling InternalCollectionsUtilities UInt+reversed.swift
[18/25] Compiling InternalCollectionsUtilities _UnsafeBitSet+Index.swift
[19/25] Compiling InternalCollectionsUtilities FixedWidthInteger+roundUpToPowerOfTwo.swift
[20/25] Compiling InternalCollectionsUtilities Integer rank.swift
[21/25] Compiling InternalCollectionsUtilities UInt+first and last set bit.swift
[22/25] Compiling InternalCollectionsUtilities _UnsafeBitSet+_Word.swift
[23/25] Compiling InternalCollectionsUtilities _UnsafeBitSet.swift
[24/25] Compiling InternalCollectionsUtilities Debugging.swift
[25/25] Compiling InternalCollectionsUtilities Descriptions.swift
[27/96] Compiling OrderedCollections OrderedDictionary+Deprecations.swift
[28/96] Compiling OrderedCollections OrderedDictionary+Descriptions.swift
[29/96] Compiling OrderedCollections OrderedDictionary+Elements.SubSequence.swift
[30/96] Compiling OrderedCollections OrderedDictionary+Elements.swift
[31/98] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtract.swift
[32/98] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtracting.swift
[33/98] Compiling OrderedCollections OrderedSet+Partial SetAlgebra symmetricDifference.swift
[34/98] Compiling OrderedCollections OrderedSet+Partial SetAlgebra union.swift
[35/98] Compiling OrderedCollections OrderedSet+Partial SetAlgebra+Basics.swift
[36/98] Compiling OrderedCollections OrderedSet+RandomAccessCollection.swift
[37/98] Compiling OrderedCollections OrderedSet+ReserveCapacity.swift
[38/105] Compiling OrderedCollections OrderedDictionary+Codable.swift
[39/105] Compiling OrderedCollections OrderedDictionary+CustomReflectable.swift
[40/105] Compiling OrderedCollections _HashTable+Testing.swift
[41/105] Compiling OrderedCollections _HashTable+UnsafeHandle.swift
[42/105] Compiling DequeModule _DequeSlot.swift
[43/105] Compiling DequeModule _UnsafeWrappedBuffer.swift
[44/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra intersection.swift
[45/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isDisjoint.swift
[46/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isEqualSet.swift
[47/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSubset.swift
[48/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSuperset.swift
[49/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSubset.swift
[50/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSuperset.swift
[51/105] Compiling OrderedCollections OrderedSet+Initializers.swift
[52/105] Compiling OrderedCollections OrderedSet+Insertions.swift
[53/105] Compiling OrderedCollections OrderedSet+Invariants.swift
[54/105] Compiling OrderedCollections OrderedSet+Partial MutableCollection.swift
[55/105] Compiling OrderedCollections OrderedSet+Partial RangeReplaceableCollection.swift
[56/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formIntersection.swift
[57/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formSymmetricDifference.swift
[58/105] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formUnion.swift
[59/105] Compiling OrderedCollections OrderedDictionary+Hashable.swift
[60/105] Compiling OrderedCollections OrderedDictionary+Initializers.swift
[61/105] Compiling OrderedCollections OrderedDictionary+Invariants.swift
[62/105] Compiling OrderedCollections OrderedDictionary+Partial MutableCollection.swift
[63/105] Compiling OrderedCollections OrderedDictionary+Partial RangeReplaceableCollection.swift
[64/105] Compiling OrderedCollections OrderedDictionary+Sendable.swift
[65/105] Compiling OrderedCollections OrderedDictionary+Sequence.swift
[66/105] Compiling OrderedCollections OrderedDictionary+Values.swift
[67/105] Compiling OrderedCollections OrderedDictionary.swift
[68/105] Compiling OrderedCollections OrderedSet+Codable.swift
[69/105] Compiling OrderedCollections OrderedSet+CustomReflectable.swift
[70/105] Compiling OrderedCollections OrderedSet+Descriptions.swift
[71/105] Compiling OrderedCollections OrderedSet+Diffing.swift
[72/105] Compiling OrderedCollections OrderedSet+Equatable.swift
[73/105] Compiling OrderedCollections OrderedSet+ExpressibleByArrayLiteral.swift
[74/105] Compiling OrderedCollections OrderedSet+Hashable.swift
[83/105] Compiling OrderedCollections _HashTable+Constants.swift
[84/105] Compiling OrderedCollections _HashTable+CustomStringConvertible.swift
[85/105] Compiling OrderedCollections _HashTable+Bucket.swift
[86/105] Compiling OrderedCollections _HashTable+BucketIterator.swift
[87/105] Compiling OrderedCollections _HashTable.swift
[88/105] Compiling OrderedCollections _Hashtable+Header.swift
[89/105] Emitting module DequeModule
[99/106] Compiling OrderedCollections OrderedSet+Sendable.swift
[100/106] Compiling OrderedCollections OrderedSet+SubSequence.swift
[101/106] Compiling OrderedCollections OrderedSet+Testing.swift
[102/106] Compiling OrderedCollections OrderedSet+UnorderedView.swift
[103/106] Compiling OrderedCollections OrderedSet+UnstableInternals.swift
[104/106] Compiling OrderedCollections OrderedSet.swift
[105/106] Compiling OrderedCollections _UnsafeBitset.swift
[106/106] Emitting module OrderedCollections
[108/152] Emitting module AsyncAlgorithms
[109/158] Compiling AsyncAlgorithms AsyncMerge2Sequence.swift
[110/158] Compiling AsyncAlgorithms AsyncMerge3Sequence.swift
[111/158] Compiling AsyncAlgorithms MergeStateMachine.swift
[112/158] Compiling AsyncAlgorithms MergeStorage.swift
[113/158] Compiling AsyncAlgorithms RangeReplaceableCollection.swift
[114/158] Compiling AsyncAlgorithms Rethrow.swift
[115/158] Compiling AsyncAlgorithms AsyncAdjacentPairsSequence.swift
[116/158] Compiling AsyncAlgorithms AsyncBufferedByteIterator.swift
[117/158] Compiling AsyncAlgorithms AsyncChain2Sequence.swift
[118/158] Compiling AsyncAlgorithms AsyncChain3Sequence.swift
[119/158] Compiling AsyncAlgorithms AsyncChunkedByGroupSequence.swift
[120/158] Compiling AsyncAlgorithms AsyncChunkedOnProjectionSequence.swift
[121/158] Compiling AsyncAlgorithms AsyncChunksOfCountOrSignalSequence.swift
[122/158] Compiling AsyncAlgorithms BoundedBufferStateMachine.swift
[123/158] Compiling AsyncAlgorithms BoundedBufferStorage.swift
[124/158] Compiling AsyncAlgorithms UnboundedBufferStateMachine.swift
[125/158] Compiling AsyncAlgorithms UnboundedBufferStorage.swift
[126/158] Compiling AsyncAlgorithms AsyncChannel.swift
[127/158] Compiling AsyncAlgorithms AsyncThrowingChannel.swift
[128/158] Compiling AsyncAlgorithms AsyncChunksOfCountSequence.swift
[129/158] Compiling AsyncAlgorithms AsyncCompactedSequence.swift
[130/158] Compiling AsyncAlgorithms AsyncExclusiveReductionsSequence.swift
[131/158] Compiling AsyncAlgorithms AsyncInclusiveReductionsSequence.swift
[132/158] Compiling AsyncAlgorithms AsyncJoinedBySeparatorSequence.swift
[133/158] Compiling AsyncAlgorithms AsyncJoinedSequence.swift
[134/158] Compiling AsyncAlgorithms AsyncRemoveDuplicatesSequence.swift
[135/158] Compiling AsyncAlgorithms SetAlgebra.swift
[136/158] Compiling AsyncAlgorithms UnsafeTransfer.swift
[137/158] Compiling AsyncAlgorithms AsyncZip2Sequence.swift
[138/158] Compiling AsyncAlgorithms AsyncZip3Sequence.swift
[139/158] Compiling AsyncAlgorithms ZipStateMachine.swift
[140/158] Compiling AsyncAlgorithms ZipStorage.swift
[141/158] Compiling AsyncAlgorithms ChannelStateMachine.swift
[142/158] Compiling AsyncAlgorithms ChannelStorage.swift
[143/158] Compiling AsyncAlgorithms AsyncCombineLatest2Sequence.swift
[144/158] Compiling AsyncAlgorithms AsyncCombineLatest3Sequence.swift
[145/158] Compiling AsyncAlgorithms CombineLatestStateMachine.swift
[146/158] Compiling AsyncAlgorithms CombineLatestStorage.swift
[147/158] Compiling AsyncAlgorithms AsyncSyncSequence.swift
[148/158] Compiling AsyncAlgorithms AsyncThrottleSequence.swift
[149/158] Compiling AsyncAlgorithms AsyncThrowingExclusiveReductionsSequence.swift
[150/158] Compiling AsyncAlgorithms AsyncThrowingInclusiveReductionsSequence.swift
[151/158] Compiling AsyncAlgorithms AsyncTimerSequence.swift
[152/158] Compiling AsyncAlgorithms AsyncBufferSequence.swift
[153/158] Compiling AsyncAlgorithms AsyncDebounceSequence.swift
[154/158] Compiling AsyncAlgorithms DebounceStateMachine.swift
[155/158] Compiling AsyncAlgorithms DebounceStorage.swift
[156/158] Compiling AsyncAlgorithms Dictionary.swift
[157/158] Compiling AsyncAlgorithms AsyncInterspersedSequence.swift
[158/158] Compiling AsyncAlgorithms Locking.swift
[160/167] Compiling SwiftSessions Session+Closures.swift
/host/spi-builder-workspace/Sources/SwiftSessions/Session/Session+Closures.swift:23:29: warning: type 'A' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
20 |     ///   - continuation: A closure to be invoked after the send operation completes.
21 |     ///                    This closure receives the continuation endpoint for further communication.
22 |     static func send<A, B, C>(_ payload: A, on endpoint: Endpoint<(A, Endpoint<B, C>), Empty>, continuation: @escaping (Endpoint<C, B>) async -> Void) async {
   |                      `- note: consider making generic parameter 'A' conform to the 'Sendable' protocol
23 |         await endpoint.send(payload)
   |                             `- warning: type 'A' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
24 |         await continuation(Endpoint<C, B>(from: endpoint))
25 |     }
[161/167] Compiling SwiftSessions Server.swift
/host/spi-builder-workspace/Sources/SwiftSessions/Server.swift:21:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
19 |     init(_ closure: @escaping (_: Endpoint<A, B>) async -> Void) async {
20 |         publicChannel = AsyncChannel()
21 |         Task {
   |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
22 |             while true {
23 |                 for await request in publicChannel {
   |                                      `- note: closure captures 'self' which is accessible to code in the current task
24 |                     let asyncChannel = request as! AsyncChannel<Sendable>
25 |                     let endpoint = Endpoint<A, B>(with: asyncChannel)
/host/spi-builder-workspace/Sources/SwiftSessions/Server.swift:26:26: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
24 |                     let asyncChannel = request as! AsyncChannel<Sendable>
25 |                     let endpoint = Endpoint<A, B>(with: asyncChannel)
26 |                     Task {
   |                          `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
27 |                         await closure(endpoint)
   |                               `- note: closure captures 'closure' which is accessible to code in the current task
28 |                     }
29 |                 }
[162/167] Compiling SwiftSessions Session+Passing.swift
/host/spi-builder-workspace/Sources/SwiftSessions/Session/Session+Passing.swift:22:29: warning: type 'C' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
19 |     ///   - endpoint: The endpoint to which the payload is sent.
20 |     /// - Returns: The continuation endpoint
21 |     static func send<C, D, E>(_ payload: C, on endpoint: Endpoint<(C, Endpoint<D, E>), Empty>) async -> Endpoint<E, D> {
   |                      `- note: consider making generic parameter 'C' conform to the 'Sendable' protocol
22 |         await endpoint.send(payload)
   |                             `- warning: type 'C' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
23 |         return Endpoint<E, D>(from: endpoint)
24 |     }
[163/168] Compiling SwiftSessions Or.swift
[164/168] Compiling SwiftSessions Empty.swift
[165/168] Compiling SwiftSessions Client.swift
/host/spi-builder-workspace/Sources/SwiftSessions/Client.swift:22:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
20 |         await server.connect(with: channel)
21 |         let c = Endpoint<B, A>(with: channel)
22 |         Task {
   |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
23 |             await closure(c)
   |                   |       `- note: closure captures non-Sendable 'c'
   |                   `- note: closure captures non-Sendable 'closure'
24 |         }
25 |     }
[166/168] Emitting module SwiftSessions
[167/168] Compiling SwiftSessions Endpoint.swift
[168/168] Compiling SwiftSessions Session.swift
/host/spi-builder-workspace/Sources/SwiftSessions/Session/Session.swift:21:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
19 |         let e1 = Endpoint<A, B>(with: channel)
20 |         let e2 = Endpoint<B, A>(with: channel)
21 |         Task {
   |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
22 |             await closure(e2)
   |                   `- note: closure captures 'closure' which is accessible to code in the current task
23 |         }
24 |         return e1
/host/spi-builder-workspace/Sources/SwiftSessions/Session/Session.swift:53:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
51 |         let endpoint1 = Endpoint<A, B>(with: channel)
52 |         let endpoint2 = Endpoint<B, A>(with: channel)
53 |         Task {
   |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
54 |             await sideOne(endpoint2)
   |                   |       `- note: closure captures non-Sendable 'endpoint2'
   |                   `- note: closure captures non-Sendable 'sideOne'
55 |         }
56 |         Task {
/host/spi-builder-workspace/Sources/SwiftSessions/Session/Session.swift:56:14: warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
54 |             await sideOne(endpoint2)
55 |         }
56 |         Task {
   |              `- warning: passing closure as a 'sending' parameter risks causing data races between code in the current task and concurrent execution of the closure; this is an error in the Swift 6 language mode
57 |             await sideTwo(endpoint1)
   |                   `- note: closure captures 'sideTwo' which is accessible to code in the current task
58 |         }
59 |     }
Build complete! (37.53s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-async-algorithms",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.0.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-async-algorithms"
    }
  ],
  "manifest_display_name" : "SwiftSessions",
  "name" : "SwiftSessions",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "14.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftSessions",
      "targets" : [
        "SwiftSessions"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "SwiftSessionsTests",
      "module_type" : "SwiftTarget",
      "name" : "SwiftSessionsTests",
      "path" : "Tests",
      "product_dependencies" : [
        "AsyncAlgorithms"
      ],
      "sources" : [
        "BranchingTests.swift",
        "LinearityTests.swift",
        "LoopTests.swift",
        "MathTests.swift",
        "StandardTests.swift"
      ],
      "target_dependencies" : [
        "SwiftSessions"
      ],
      "type" : "test"
    },
    {
      "c99name" : "SwiftSessions",
      "module_type" : "SwiftTarget",
      "name" : "SwiftSessions",
      "path" : "Sources/SwiftSessions",
      "product_dependencies" : [
        "AsyncAlgorithms"
      ],
      "product_memberships" : [
        "SwiftSessions"
      ],
      "sources" : [
        "Client.swift",
        "Empty.swift",
        "Endpoint.swift",
        "Or.swift",
        "Server.swift",
        "Session/Session+Closures.swift",
        "Session/Session+Passing.swift",
        "Session/Session.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
basic-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:3bdcac04179f4ed3e5b8e9dbd6e74bbf5ebc0f4fde48bbaad7d1e5c757e65bcb
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.1-latest
Done.