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 swift-service-lifecycle, reference main (0af403), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 02:27:16 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.3.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.61.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juri/swift-service-lifecycle.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/juri/swift-service-lifecycle
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 0af4033 Make logging optional and update docs (#189)
Cloned https://github.com/juri/swift-service-lifecycle.git
Revision (git rev-parse @):
0af4033d874b94acf11d2e0f119484a24352cf37
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/juri/swift-service-lifecycle.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/juri/swift-service-lifecycle.git
https://github.com/juri/swift-service-lifecycle.git
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "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.git"
    }
  ],
  "manifest_display_name" : "swift-service-lifecycle",
  "name" : "swift-service-lifecycle",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "ServiceLifecycle",
      "targets" : [
        "ServiceLifecycle"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ServiceLifecycleTestKit",
      "targets" : [
        "ServiceLifecycleTestKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UnixSignals",
      "targets" : [
        "UnixSignals"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UnixSignalsTests",
      "module_type" : "SwiftTarget",
      "name" : "UnixSignalsTests",
      "path" : "Tests/UnixSignalsTests",
      "sources" : [
        "UnixSignalTests.swift"
      ],
      "target_dependencies" : [
        "UnixSignals"
      ],
      "type" : "test"
    },
    {
      "c99name" : "UnixSignals",
      "module_type" : "SwiftTarget",
      "name" : "UnixSignals",
      "path" : "Sources/UnixSignals",
      "product_memberships" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit",
        "UnixSignals"
      ],
      "sources" : [
        "UnixSignal.swift",
        "UnixSignalsSequence.swift"
      ],
      "target_dependencies" : [
        "ConcurrencyHelpers"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ServiceLifecycleTests",
      "module_type" : "SwiftTarget",
      "name" : "ServiceLifecycleTests",
      "path" : "Tests/ServiceLifecycleTests",
      "sources" : [
        "AsyncCancelOnGracefulShutdownSequenceTests.swift",
        "GracefulShutdownTests.swift",
        "ServiceGroupTests.swift",
        "XCTest+Async.swift"
      ],
      "target_dependencies" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ServiceLifecycleTestKit",
      "module_type" : "SwiftTarget",
      "name" : "ServiceLifecycleTestKit",
      "path" : "Sources/ServiceLifecycleTestKit",
      "product_memberships" : [
        "ServiceLifecycleTestKit"
      ],
      "sources" : [
        "GracefulShutdown.swift"
      ],
      "target_dependencies" : [
        "ServiceLifecycle"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ServiceLifecycle",
      "module_type" : "SwiftTarget",
      "name" : "ServiceLifecycle",
      "path" : "Sources/ServiceLifecycle",
      "product_dependencies" : [
        "Logging",
        "AsyncAlgorithms"
      ],
      "product_memberships" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit"
      ],
      "sources" : [
        "AsyncCancelOnGracefulShutdownSequence.swift",
        "AsyncGracefulShutdownSequence.swift",
        "CancellationWaiter.swift",
        "GracefulShutdown.swift",
        "Service.swift",
        "ServiceGroup.swift",
        "ServiceGroupConfiguration.swift",
        "ServiceRunnerError.swift"
      ],
      "target_dependencies" : [
        "UnixSignals",
        "ConcurrencyHelpers"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ConcurrencyHelpers",
      "module_type" : "SwiftTarget",
      "name" : "ConcurrencyHelpers",
      "path" : "Sources/ConcurrencyHelpers",
      "product_memberships" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit",
        "UnixSignals"
      ],
      "sources" : [
        "Lock.swift",
        "LockedValueBox.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.3.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/10] Write sources
[9/10] Write swift-version-2F0A5646E1D333AE.txt
[11/36] Compiling InternalCollectionsUtilities UnsafeBufferPointer+Extras.swift
[12/36] Compiling InternalCollectionsUtilities RandomAccessCollection+Offsets.swift
[13/36] Compiling InternalCollectionsUtilities Specialize.swift
[14/36] Compiling InternalCollectionsUtilities _SortedCollection.swift
[15/36] Compiling InternalCollectionsUtilities _UniqueCollection.swift
[16/37] Compiling InternalCollectionsUtilities Debugging.swift
[17/37] Compiling InternalCollectionsUtilities Descriptions.swift
[18/37] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+Extras.swift
[19/37] Compiling InternalCollectionsUtilities Integer rank.swift
[20/37] Compiling InternalCollectionsUtilities UInt+first and last set bit.swift
[21/37] Compiling InternalCollectionsUtilities UInt+reversed.swift
[22/37] Compiling InternalCollectionsUtilities _UnsafeBitSet+Index.swift
[23/37] Compiling InternalCollectionsUtilities UnsafeRawPointer extensions.swift
[24/37] Compiling InternalCollectionsUtilities FixedWidthInteger+roundUpToPowerOfTwo.swift
[25/37] Compiling InternalCollectionsUtilities UnsafeMutableBufferPointer+SE-0370.swift
[26/37] Compiling InternalCollectionsUtilities UnsafeMutablePointer+SE-0370.swift
[27/37] Compiling InternalCollectionsUtilities _UnsafeBitSet+_Word.swift
[28/37] Compiling InternalCollectionsUtilities _UnsafeBitSet.swift
[29/37] Emitting module InternalCollectionsUtilities
[30/109] Compiling DequeModule _DequeSlot.swift
[31/109] Compiling OrderedCollections OrderedDictionary+Sequence.swift
[32/109] Compiling OrderedCollections OrderedDictionary+Values.swift
[33/110] Compiling OrderedCollections _HashTable+Testing.swift
[34/110] Compiling OrderedCollections _HashTable+UnsafeHandle.swift
[35/110] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formIntersection.swift
[36/110] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formSymmetricDifference.swift
[37/110] Compiling OrderedCollections OrderedSet+Partial SetAlgebra formUnion.swift
[38/110] Compiling OrderedCollections OrderedSet+Partial SetAlgebra intersection.swift
[39/110] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isDisjoint.swift
[40/110] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isEqualSet.swift
[41/116] Compiling DequeModule _UnsafeWrappedBuffer.swift
[42/116] Compiling OrderedCollections _Hashtable+Header.swift
[43/116] Compiling OrderedCollections OrderedDictionary+Codable.swift
[44/116] Compiling OrderedCollections OrderedDictionary+CustomReflectable.swift
[45/116] Compiling OrderedCollections OrderedDictionary+Deprecations.swift
[46/116] Compiling OrderedCollections OrderedDictionary+Descriptions.swift
[47/116] Compiling OrderedCollections OrderedDictionary+Elements.SubSequence.swift
[48/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSubset.swift
[49/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isStrictSuperset.swift
[50/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSubset.swift
[51/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra isSuperset.swift
[52/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtract.swift
[53/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra subtracting.swift
[54/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra symmetricDifference.swift
[55/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra union.swift
[56/116] Compiling OrderedCollections OrderedSet+Partial SetAlgebra+Basics.swift
[57/116] Compiling OrderedCollections OrderedSet+RandomAccessCollection.swift
[58/116] Compiling OrderedCollections OrderedSet+ReserveCapacity.swift
[59/116] Compiling OrderedCollections OrderedSet+Sendable.swift
[60/116] Compiling DequeModule _DequeBufferHeader.swift
[61/116] Compiling DequeModule _DequeBuffer.swift
[62/116] Compiling OrderedCollections _HashTable+Constants.swift
[63/116] Compiling OrderedCollections _HashTable+CustomStringConvertible.swift
[64/116] Compiling OrderedCollections OrderedDictionary+Partial RangeReplaceableCollection.swift
[65/116] Compiling OrderedCollections OrderedDictionary+Sendable.swift
[66/116] Compiling OrderedCollections _HashTable.swift
[67/116] Compiling OrderedCollections OrderedDictionary+Partial MutableCollection.swift
[68/116] Compiling OrderedCollections _HashTable+Bucket.swift
[69/116] Compiling OrderedCollections _HashTable+BucketIterator.swift
[70/116] Compiling OrderedCollections OrderedSet+Codable.swift
[71/116] Compiling OrderedCollections OrderedSet+CustomReflectable.swift
[72/116] Compiling OrderedCollections OrderedSet+Descriptions.swift
[73/116] Compiling OrderedCollections OrderedSet+Diffing.swift
[74/116] Compiling OrderedCollections OrderedSet+Equatable.swift
[75/116] Compiling OrderedCollections OrderedSet+ExpressibleByArrayLiteral.swift
[76/116] Compiling OrderedCollections OrderedSet+Hashable.swift
[77/116] Compiling OrderedCollections OrderedSet+Initializers.swift
[78/116] Compiling OrderedCollections OrderedSet+Insertions.swift
[79/116] Compiling OrderedCollections OrderedSet+Invariants.swift
[80/116] Compiling OrderedCollections OrderedSet+Partial MutableCollection.swift
[81/116] Compiling OrderedCollections OrderedSet+Partial RangeReplaceableCollection.swift
[82/116] Compiling OrderedCollections OrderedDictionary+Elements.swift
[83/116] Compiling OrderedCollections OrderedDictionary+Equatable.swift
[84/116] Compiling OrderedCollections OrderedDictionary+ExpressibleByDictionaryLiteral.swift
[85/116] Compiling OrderedCollections OrderedDictionary+Hashable.swift
[86/116] Compiling OrderedCollections OrderedDictionary+Initializers.swift
[87/116] Compiling OrderedCollections OrderedDictionary+Invariants.swift
[93/116] Compiling OrderedCollections OrderedDictionary.swift
[94/116] Emitting module DequeModule
[95/116] Compiling ConcurrencyHelpers LockedValueBox.swift
[103/116] Compiling OrderedCollections OrderedSet+SubSequence.swift
[104/116] Compiling OrderedCollections OrderedSet+Testing.swift
[105/116] Compiling OrderedCollections OrderedSet+UnorderedView.swift
[106/116] Compiling OrderedCollections OrderedSet+UnstableInternals.swift
[107/116] Compiling OrderedCollections OrderedSet.swift
[108/116] Compiling OrderedCollections _UnsafeBitset.swift
[109/116] Emitting module OrderedCollections
[110/116] Emitting module ConcurrencyHelpers
[111/116] Compiling ConcurrencyHelpers Lock.swift
[112/165] Compiling Logging LogHandler.swift
[113/165] Compiling Logging MetadataProvider.swift
[114/165] Compiling Logging Locks.swift
[115/165] Compiling Logging Logging.swift
[116/165] Emitting module Logging
[117/165] Emitting module AsyncAlgorithms
[118/170] Compiling AsyncAlgorithms AsyncAdjacentPairsSequence.swift
[119/170] Compiling AsyncAlgorithms AsyncBufferedByteIterator.swift
[120/170] Compiling AsyncAlgorithms AsyncChain2Sequence.swift
[121/170] Compiling AsyncAlgorithms AsyncChain3Sequence.swift
[122/170] Compiling AsyncAlgorithms AsyncChunkedByGroupSequence.swift
[123/170] Compiling AsyncAlgorithms AsyncChunkedOnProjectionSequence.swift
[124/170] Compiling AsyncAlgorithms AsyncChunksOfCountOrSignalSequence.swift
[125/170] Compiling AsyncAlgorithms AsyncChunksOfCountSequence.swift
[126/170] Compiling AsyncAlgorithms AsyncCompactedSequence.swift
[127/170] Compiling AsyncAlgorithms AsyncExclusiveReductionsSequence.swift
[128/170] Compiling AsyncAlgorithms Dictionary.swift
[129/170] Compiling AsyncAlgorithms AsyncInterspersedSequence.swift
[130/170] Compiling AsyncAlgorithms Locking.swift
[131/170] Compiling AsyncAlgorithms AsyncMerge2Sequence.swift
[132/170] Compiling AsyncAlgorithms AsyncMerge3Sequence.swift
[133/170] Compiling AsyncAlgorithms AsyncThrottleSequence.swift
[134/170] Compiling AsyncAlgorithms AsyncThrowingExclusiveReductionsSequence.swift
[135/170] Compiling AsyncAlgorithms AsyncThrowingInclusiveReductionsSequence.swift
[136/170] Compiling AsyncAlgorithms AsyncTimerSequence.swift
[137/170] Compiling AsyncAlgorithms AsyncBufferSequence.swift
[138/170] Compiling AsyncAlgorithms AsyncThrowingChannel.swift
[139/170] Compiling AsyncAlgorithms ChannelStateMachine.swift
[140/170] Compiling AsyncAlgorithms ChannelStorage.swift
[141/170] Compiling AsyncAlgorithms AsyncCombineLatest2Sequence.swift
[142/170] Compiling AsyncAlgorithms AsyncCombineLatest3Sequence.swift
[143/170] Compiling AsyncAlgorithms MergeStateMachine.swift
[144/170] Compiling AsyncAlgorithms MergeStorage.swift
[145/170] Compiling AsyncAlgorithms RangeReplaceableCollection.swift
[146/170] Compiling AsyncAlgorithms Rethrow.swift
[147/170] Compiling AsyncAlgorithms SetAlgebra.swift
[148/170] Compiling AsyncAlgorithms AsyncInclusiveReductionsSequence.swift
[149/170] Compiling AsyncAlgorithms AsyncJoinedBySeparatorSequence.swift
[150/170] Compiling AsyncAlgorithms AsyncJoinedSequence.swift
[151/170] Compiling AsyncAlgorithms AsyncRemoveDuplicatesSequence.swift
[152/170] Compiling AsyncAlgorithms AsyncSyncSequence.swift
[153/170] Emitting module UnixSignals
[154/170] Compiling UnixSignals UnixSignalsSequence.swift
[155/170] Compiling UnixSignals UnixSignal.swift
[156/170] Compiling AsyncAlgorithms UnsafeTransfer.swift
[157/170] Compiling AsyncAlgorithms AsyncZip2Sequence.swift
[158/170] Compiling AsyncAlgorithms AsyncZip3Sequence.swift
[159/170] Compiling AsyncAlgorithms ZipStateMachine.swift
[160/170] Compiling AsyncAlgorithms ZipStorage.swift
[161/170] Compiling AsyncAlgorithms CombineLatestStateMachine.swift
[162/170] Compiling AsyncAlgorithms CombineLatestStorage.swift
[163/170] Compiling AsyncAlgorithms AsyncDebounceSequence.swift
[164/170] Compiling AsyncAlgorithms DebounceStateMachine.swift
[165/170] Compiling AsyncAlgorithms DebounceStorage.swift
[166/170] Compiling AsyncAlgorithms BoundedBufferStateMachine.swift
[167/170] Compiling AsyncAlgorithms BoundedBufferStorage.swift
[168/170] Compiling AsyncAlgorithms UnboundedBufferStateMachine.swift
[169/170] Compiling AsyncAlgorithms UnboundedBufferStorage.swift
[170/170] Compiling AsyncAlgorithms AsyncChannel.swift
[171/179] Compiling ServiceLifecycle ServiceRunnerError.swift
[172/179] Compiling ServiceLifecycle Service.swift
[173/179] Compiling ServiceLifecycle ServiceGroupConfiguration.swift
[174/179] Compiling ServiceLifecycle GracefulShutdown.swift
/Users/admin/builder/spi-builder-workspace/Sources/ServiceLifecycle/GracefulShutdown.swift:46:26: warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to parameter 'operation'; this is an error in the Swift 6 language mode
 38 | // Unsafely inheriting the executor is safe to do here since we are not calling any other async method
 39 | // except the operation. This makes sure no other executor hops would occur here.
 40 | public func withGracefulShutdownHandler<T>(
    |                                         `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 41 |     isolation: isolated (any Actor)? = #isolation,
 42 |     operation: () async throws -> T,
    :
 44 | ) async rethrows -> T {
 45 |     guard let gracefulShutdownManager = TaskLocals.gracefulShutdownManager else {
 46 |         return try await operation()
    |                          `- warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to parameter 'operation'; this is an error in the Swift 6 language mode
 47 |     }
 48 |
/Users/admin/builder/spi-builder-workspace/Sources/ServiceLifecycle/GracefulShutdown.swift:57:22: warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to parameter 'operation'; this is an error in the Swift 6 language mode
 38 | // Unsafely inheriting the executor is safe to do here since we are not calling any other async method
 39 | // except the operation. This makes sure no other executor hops would occur here.
 40 | public func withGracefulShutdownHandler<T>(
    |                                         `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 41 |     isolation: isolated (any Actor)? = #isolation,
 42 |     operation: () async throws -> T,
    :
 55 |     }
 56 |
 57 |     return try await operation()
    |                      `- warning: non-sendable result type 'T' cannot be sent from nonisolated context in call to parameter 'operation'; this is an error in the Swift 6 language mode
 58 | }
 59 |
/Users/admin/builder/spi-builder-workspace/Sources/ServiceLifecycle/GracefulShutdown.swift:137:80: warning: sending 'operation' risks causing data races; this is an error in the Swift 6 language mode
134 |     onCancelOrGracefulShutdown handler: @Sendable @escaping () -> Void
135 | ) async rethrows -> T {
136 |     return try await withTaskCancellationHandler {
    |                      `- note: access can happen concurrently
137 |         try await withGracefulShutdownHandler(isolation: isolation, operation: operation, onGracefulShutdown: handler)
    |                                                                                |- warning: sending 'operation' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                                `- note: 'isolation'-isolated 'operation' is captured by a actor-isolated closure. actor-isolated uses in closure may race against later nonisolated uses
138 |     } onCancel: {
139 |         handler()
[175/179] Compiling ServiceLifecycle AsyncGracefulShutdownSequence.swift
[176/179] Compiling ServiceLifecycle CancellationWaiter.swift
[177/179] Compiling ServiceLifecycle AsyncCancelOnGracefulShutdownSequence.swift
[178/179] Emitting module ServiceLifecycle
[179/179] Compiling ServiceLifecycle ServiceGroup.swift
[180/181] Compiling ServiceLifecycleTestKit GracefulShutdown.swift
[181/181] Emitting module ServiceLifecycleTestKit
Build complete! (10.71s)
Fetching https://github.com/apple/swift-async-algorithms.git
Fetching https://github.com/apple/swift-log.git from cache
[1/4965] Fetching swift-async-algorithms
Fetched https://github.com/apple/swift-async-algorithms.git from cache (1.05s)
Fetched https://github.com/apple/swift-log.git from cache (1.05s)
Computing version for https://github.com/apple/swift-async-algorithms.git
Computed https://github.com/apple/swift-async-algorithms.git at 1.0.4 (1.67s)
Fetching https://github.com/apple/swift-collections.git from cache
Fetched https://github.com/apple/swift-collections.git from cache (0.74s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.1.4 (1.95s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.6.3 (0.47s)
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
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.6.3
Creating working copy for https://github.com/apple/swift-async-algorithms.git
Working copy of https://github.com/apple/swift-async-algorithms.git resolved at 1.0.4
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-log",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.5.2",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-log.git"
    },
    {
      "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.git"
    }
  ],
  "manifest_display_name" : "swift-service-lifecycle",
  "name" : "swift-service-lifecycle",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.15"
    },
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "watchos",
      "version" : "6.0"
    },
    {
      "name" : "tvos",
      "version" : "13.0"
    }
  ],
  "products" : [
    {
      "name" : "ServiceLifecycle",
      "targets" : [
        "ServiceLifecycle"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "ServiceLifecycleTestKit",
      "targets" : [
        "ServiceLifecycleTestKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UnixSignals",
      "targets" : [
        "UnixSignals"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UnixSignalsTests",
      "module_type" : "SwiftTarget",
      "name" : "UnixSignalsTests",
      "path" : "Tests/UnixSignalsTests",
      "sources" : [
        "UnixSignalTests.swift"
      ],
      "target_dependencies" : [
        "UnixSignals"
      ],
      "type" : "test"
    },
    {
      "c99name" : "UnixSignals",
      "module_type" : "SwiftTarget",
      "name" : "UnixSignals",
      "path" : "Sources/UnixSignals",
      "product_memberships" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit",
        "UnixSignals"
      ],
      "sources" : [
        "UnixSignal.swift",
        "UnixSignalsSequence.swift"
      ],
      "target_dependencies" : [
        "ConcurrencyHelpers"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ServiceLifecycleTests",
      "module_type" : "SwiftTarget",
      "name" : "ServiceLifecycleTests",
      "path" : "Tests/ServiceLifecycleTests",
      "sources" : [
        "AsyncCancelOnGracefulShutdownSequenceTests.swift",
        "GracefulShutdownTests.swift",
        "ServiceGroupTests.swift",
        "XCTest+Async.swift"
      ],
      "target_dependencies" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ServiceLifecycleTestKit",
      "module_type" : "SwiftTarget",
      "name" : "ServiceLifecycleTestKit",
      "path" : "Sources/ServiceLifecycleTestKit",
      "product_memberships" : [
        "ServiceLifecycleTestKit"
      ],
      "sources" : [
        "GracefulShutdown.swift"
      ],
      "target_dependencies" : [
        "ServiceLifecycle"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ServiceLifecycle",
      "module_type" : "SwiftTarget",
      "name" : "ServiceLifecycle",
      "path" : "Sources/ServiceLifecycle",
      "product_dependencies" : [
        "Logging",
        "AsyncAlgorithms"
      ],
      "product_memberships" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit"
      ],
      "sources" : [
        "AsyncCancelOnGracefulShutdownSequence.swift",
        "AsyncGracefulShutdownSequence.swift",
        "CancellationWaiter.swift",
        "GracefulShutdown.swift",
        "Service.swift",
        "ServiceGroup.swift",
        "ServiceGroupConfiguration.swift",
        "ServiceRunnerError.swift"
      ],
      "target_dependencies" : [
        "UnixSignals",
        "ConcurrencyHelpers"
      ],
      "type" : "library"
    },
    {
      "c99name" : "ConcurrencyHelpers",
      "module_type" : "SwiftTarget",
      "name" : "ConcurrencyHelpers",
      "path" : "Sources/ConcurrencyHelpers",
      "product_memberships" : [
        "ServiceLifecycle",
        "ServiceLifecycleTestKit",
        "UnixSignals"
      ],
      "sources" : [
        "Lock.swift",
        "LockedValueBox.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.8"
}
Done.