The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Successful build of SwiftUPnP, reference v1.1.0 (ca29e2), with Swift 6.1 for macOS (SPM) on 28 Apr 2025 03:00:00 UTC.

Swift 6 data race errors: 3

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.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/katoemba/SwiftUPnP.git
Reference: v1.1.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/katoemba/SwiftUPnP
 * tag               v1.1.0     -> FETCH_HEAD
HEAD is now at ca29e25 Updated to swift tools version 5.9.
Cloned https://github.com/katoemba/SwiftUPnP.git
Revision (git rev-parse @):
ca29e25e0604c87009768d73a8e8490796054831
SUCCESS checkout https://github.com/katoemba/SwiftUPnP.git at v1.1.0
Fetching https://github.com/httpswift/swifter
[1/6050] Fetching swifter
Fetched https://github.com/httpswift/swifter from cache (1.42s)
Fetching https://github.com/robbiehanson/CocoaAsyncSocket
[1/6425] Fetching cocoaasyncsocket
Fetched https://github.com/robbiehanson/CocoaAsyncSocket from cache (1.21s)
Fetching https://github.com/CoreOffice/XMLCoder.git
[1/10011] Fetching xmlcoder
Fetched https://github.com/CoreOffice/XMLCoder.git from cache (1.13s)
Computing version for https://github.com/CoreOffice/XMLCoder.git
Computed https://github.com/CoreOffice/XMLCoder.git at 0.15.0 (1.74s)
Creating working copy for https://github.com/CoreOffice/XMLCoder.git
Working copy of https://github.com/CoreOffice/XMLCoder.git resolved at 0.15.0
Creating working copy for https://github.com/robbiehanson/CocoaAsyncSocket
Working copy of https://github.com/robbiehanson/CocoaAsyncSocket resolved at master (5ddba5e)
Creating working copy for https://github.com/httpswift/swifter
Working copy of https://github.com/httpswift/swifter resolved at stable (1e4f51c)
========================================
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": "swiftupnp",
      "name": "SwiftUPnP",
      "url": "https://github.com/katoemba/SwiftUPnP.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/SwiftUPnP",
      "dependencies": [
        {
          "identity": "xmlcoder",
          "name": "XMLCoder",
          "url": "https://github.com/CoreOffice/XMLCoder.git",
          "version": "0.17.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/XMLCoder",
          "dependencies": [
          ]
        },
        {
          "identity": "swifter",
          "name": "Swifter",
          "url": "https://github.com/httpswift/swifter",
          "version": "unspecified",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/swifter",
          "dependencies": [
          ]
        },
        {
          "identity": "cocoaasyncsocket",
          "name": "CocoaAsyncSocket",
          "url": "https://github.com/robbiehanson/CocoaAsyncSocket",
          "version": "unspecified",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/CocoaAsyncSocket",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/katoemba/SwiftUPnP.git
[1/531] Fetching swiftupnp
Fetched https://github.com/katoemba/SwiftUPnP.git from cache (0.85s)
Fetching https://github.com/httpswift/swifter from cache
Fetched https://github.com/httpswift/swifter from cache (0.43s)
Fetching https://github.com/robbiehanson/CocoaAsyncSocket from cache
Fetched https://github.com/robbiehanson/CocoaAsyncSocket from cache (0.51s)
Fetching https://github.com/CoreOffice/XMLCoder.git from cache
Fetched https://github.com/CoreOffice/XMLCoder.git from cache (0.45s)
Computing version for https://github.com/CoreOffice/XMLCoder.git
Computed https://github.com/CoreOffice/XMLCoder.git at 0.17.1 (0.50s)
Creating working copy for https://github.com/katoemba/SwiftUPnP.git
Working copy of https://github.com/katoemba/SwiftUPnP.git resolved at v1.1.0 (ca29e25)
Creating working copy for https://github.com/CoreOffice/XMLCoder.git
Working copy of https://github.com/CoreOffice/XMLCoder.git resolved at 0.17.1
Creating working copy for https://github.com/httpswift/swifter
Working copy of https://github.com/httpswift/swifter resolved at stable (1e4f51c)
Creating working copy for https://github.com/robbiehanson/CocoaAsyncSocket
Working copy of https://github.com/robbiehanson/CocoaAsyncSocket resolved at master (5ddba5e)
Found 3 product dependencies
  - XMLCoder
  - Swifter
  - CocoaAsyncSocket
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/katoemba/SwiftUPnP.git
https://github.com/katoemba/SwiftUPnP.git
{
  "dependencies" : [
    {
      "identity" : "xmlcoder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.13.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/XMLCoder.git"
    },
    {
      "identity" : "swifter",
      "requirement" : {
        "branch" : [
          "stable"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/httpswift/swifter"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftUPnP",
      "targets" : [
        "SwiftUPnP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UPnPCodeGenerator",
      "targets" : [
        "UPnPCodeGenerator"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UPnPCodeGenerator",
      "module_type" : "SwiftTarget",
      "name" : "UPnPCodeGenerator",
      "path" : "CodeGenerator",
      "product_dependencies" : [
        "XMLCoder"
      ],
      "product_memberships" : [
        "UPnPCodeGenerator"
      ],
      "sources" : [
        "ServiceDefinition.swift",
        "SourceGenerator.swift",
        "main.swift"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SwiftUPnP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnP",
      "path" : "Source",
      "product_dependencies" : [
        "XMLCoder",
        "Swifter",
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "SwiftUPnP"
      ],
      "sources" : [
        "Profiles/AV Profile/AVTransport1Service.swift",
        "Profiles/AV Profile/ConnectionManager1Service.swift",
        "Profiles/AV Profile/ContentDirectory1Service+DIDL.swift",
        "Profiles/AV Profile/ContentDirectory1Service.swift",
        "Profiles/AV Profile/RenderingControl1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeConfig1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeCredentials1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeInfo1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePins1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service+DIDL.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylistManager1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct2Service.swift",
        "Profiles/OpenHome Profile/OpenHomeRadio1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeReceiver1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeSender1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTime1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTransport1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume2Service.swift",
        "SSDP/SSDPCocoaAsyncSocketDiscovery.swift",
        "SSDP/SSDPDiscovery.swift",
        "SSDP/SSDPNetworkDiscovery.swift",
        "SSDP/UserAgentGenerator.swift",
        "Support/IPHelper.swift",
        "Support/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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/11] Write sources
[2/11] Write UPnPCodeGenerator-entitlement.plist
[5/11] Write swift-version-2F0A5646E1D333AE.txt
[6/76] Compiling CocoaAsyncSocket GCDAsyncUdpSocket.m
[7/76] Compiling CocoaAsyncSocket GCDAsyncSocket.m
[9/76] Emitting module XMLCoder
[10/81] Compiling XMLCoder XMLDecoder.swift
[11/81] Compiling XMLCoder XMLDecoderImplementation.swift
[12/81] Compiling XMLCoder XMLDecodingStorage.swift
[13/81] Compiling XMLCoder XMLKeyedDecodingContainer.swift
[14/81] Compiling XMLCoder XMLUnkeyedDecodingContainer.swift
[15/81] Compiling XMLCoder DynamicNodeEncoding.swift
[16/81] Compiling XMLCoder EncodingErrorExtension.swift
[17/81] Compiling XMLCoder SingleValueEncodingContainer.swift
[18/81] Compiling XMLCoder XMLChoiceEncodingContainer.swift
[19/81] Compiling XMLCoder XMLEncoder.swift
[20/81] Compiling XMLCoder XMLChoiceCodingKey.swift
[21/81] Compiling XMLCoder XMLCoderElement.swift
[22/81] Compiling XMLCoder XMLDocumentType.swift
[23/81] Compiling XMLCoder XMLHeader.swift
[24/81] Compiling XMLCoder XMLKey.swift
[25/81] Compiling XMLCoder XMLStackParser.swift
[26/81] Compiling XMLCoder DecodingErrorExtension.swift
[27/81] Compiling XMLCoder DynamicNodeDecoding.swift
[28/81] Compiling XMLCoder SingleValueDecodingContainer.swift
[29/81] Compiling XMLCoder XMLChoiceDecodingContainer.swift
[30/81] Compiling XMLCoder XMLEncoderImplementation.swift
[31/81] Compiling XMLCoder XMLEncodingStorage.swift
[32/81] Compiling XMLCoder XMLKeyedEncodingContainer.swift
[33/81] Compiling XMLCoder XMLReferencingEncoder.swift
[34/81] Compiling XMLCoder XMLUnkeyedEncodingContainer.swift
[35/81] Compiling XMLCoder Element.swift
[36/81] Compiling XMLCoder KeyedBox.swift
[37/81] Compiling XMLCoder FloatBox.swift
[38/81] Compiling XMLCoder IntBox.swift
[39/81] Compiling XMLCoder UnkeyedBox.swift
[40/81] Compiling XMLCoder ValueBox.swift
[41/81] Compiling XMLCoder DataBox.swift
[42/81] Compiling XMLCoder DateBox.swift
[43/81] Compiling XMLCoder NullBox.swift
[44/81] Compiling XMLCoder SharedBox.swift
[48/83] Compiling Swifter String+SHA1.swift
[49/83] Compiling Swifter WebSockets.swift
[50/83] Compiling XMLCoder ElementAndAttribute.swift
[51/83] Compiling XMLCoder ISO8601DateFormatter.swift
[52/83] Compiling XMLCoder KeyedStorage.swift
[53/83] Compiling XMLCoder Metatypes.swift
[54/83] Compiling XMLCoder String+Extensions.swift
[55/83] Emitting module Swifter
[56/83] Compiling XMLCoder Box.swift
[57/83] Compiling XMLCoder ChoiceBox.swift
[58/83] Compiling XMLCoder UIntBox.swift
[59/83] Compiling XMLCoder URLBox.swift
[60/83] Compiling XMLCoder DecimalBox.swift
[61/83] Compiling XMLCoder DoubleBox.swift
[62/83] Compiling XMLCoder Attribute.swift
[63/83] Compiling XMLCoder BoolBox.swift
[81/117] Compiling UPnPCodeGenerator main.swift
[82/117] Compiling UPnPCodeGenerator SourceGenerator.swift
[83/117] Emitting module UPnPCodeGenerator
[84/117] Compiling UPnPCodeGenerator ServiceDefinition.swift
[84/117] Write Objects.LinkFileList
[85/117] Linking UPnPCodeGenerator
[86/117] Applying UPnPCodeGenerator
[88/117] Compiling SwiftUPnP XMLParserSupport.swift
[89/117] Compiling SwiftUPnP UPnPDevice.swift
[90/117] Compiling SwiftUPnP UPnPDeviceDefinition.swift
[91/120] Compiling SwiftUPnP OpenHomeVolume2Service.swift
[92/120] Compiling SwiftUPnP SSDPCocoaAsyncSocketDiscovery.swift
[93/120] Compiling SwiftUPnP SSDPDiscovery.swift
[94/120] Compiling SwiftUPnP UPnPRegistry.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:86: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
 84 |
 85 |     public func startDiscovery() throws {
 86 |         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
 87 |             await startHTTPServerIfNotRunning()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 88 |             try discoveryEngine.startDiscovery(forTypes: types)
 89 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:87:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 85 |     public func startDiscovery() throws {
 86 |         Task {
 87 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startHTTPServerIfNotRunning()' risks causing data races between main actor-isolated and local nonisolated uses
 88 |             try discoveryEngine.startDiscovery(forTypes: types)
    |                 `- note: access can happen concurrently
 89 |             discoveryEngine.searchRequest()
 90 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:94: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
 92 |
 93 |     public func stopDiscovery() {
 94 |         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
 95 |             await stopHTTPServer()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 96 |             await MainActor.run {
 97 |                 devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:95:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 93 |     public func stopDiscovery() {
 94 |         Task {
 95 |             await stopHTTPServer()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'stopHTTPServer()' risks causing data races between main actor-isolated and local nonisolated uses
 96 |             await MainActor.run {
    |                                 `- note: access can happen concurrently
 97 |                 devices.removeAll(keepingCapacity: false)
 98 |             }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:161:35: warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
159 |                     guard let service = typedService(device: device, serviceUrn: deviceService.serviceType) else { continue }
160 |
161 |                     await service.loadScdp()
    |                                   |- warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: sending main actor-isolated 'service' to nonisolated instance method 'loadScdp()' risks causing data races between nonisolated and main actor-isolated uses
162 |                     device.add(service)
163 |                 }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:247:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
245 |               (response as? HTTPURLResponse)?.statusCode ?? 0 <= 204 else {
246 |             Logger.swiftUPnP.error("\(type) failed, status = \((response as? HTTPURLResponse)?.statusCode ?? -1)")
247 |             await self.setSubcriptionStatus(.failed, subscriptionId: nil)
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'setSubcriptionStatus(_:subscriptionId:)' risks causing data races between main actor-isolated and local nonisolated uses
248 |             await self.subscribeToEvents()
    |                        `- note: access can happen concurrently
249 |             return
250 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:260:31: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
258 |                 Logger.swiftUPnP.debug("Will renew sid: \(subscriptionId) at: \(Date(timeIntervalSinceNow: Double(timeout - 10)))")
259 |                 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now().advanced(by: .seconds(timeout - 10))) { [weak self] in
260 |                     guard let self else { return }
    |                               |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                               `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
261 |                     Task {
262 |                         await self.renewSubscriptionToEvents()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:211:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
209 |     public func subscribeToEvents() async {
210 |         guard let eventUrl = eventUrl, let eventCallbackUrl = eventCallbackUrl else { return }
211 |         guard await startSubcribing() else { return }
    |                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startSubcribing()' risks causing data races between main actor-isolated and local nonisolated uses
212 |
213 |         var request = URLRequest(url: eventUrl)
    :
218 |         request.setValue("Second-\(Self.defaultSubscriptionTimeout)", forHTTPHeaderField: "TIMEOUT")
219 |
220 |         await subscribeOrRenew(request: request, type: "subscribed")
    |               `- note: access can happen concurrently
221 |     }
222 |
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:224:67: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
222 |
223 |     internal func renewSubscriptionToEvents() async {
224 |         guard let eventUrl = eventUrl, let subscriptionId = await startRenewing() else { return }
    |                                                                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startRenewing()' risks causing data races between main actor-isolated and local nonisolated uses
225 |
226 |         var request = URLRequest(url: eventUrl)
    :
230 |         request.setValue("Second-\(Self.defaultSubscriptionTimeout)", forHTTPHeaderField: "TIMEOUT")
231 |
232 |         await subscribeOrRenew(request: request, type: "renewed")
    |               `- note: access can happen concurrently
233 |     }
234 |
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:273:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
271 |
272 |     public func unsubscribeFromEvents() async {
273 |         guard let eventUrl = eventUrl, await startUnubcribing() else { return }
    |                                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                              `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startUnubcribing()' risks causing data races between main actor-isolated and local nonisolated uses
274 |
275 |         var request = URLRequest(url: eventUrl)
276 |         request.httpMethod = "UNSUBSCRIBE"
277 |         request.setValue("text/xml", forHTTPHeaderField: "Content-Type")
278 |         request.setValue(subscriptionId, forHTTPHeaderField: "SID")
    |                          `- note: access can happen concurrently
279 |
280 |         guard let (_, response) = try? await URLSession.shared.data(for: request),
[95/120] Compiling SwiftUPnP UPnPService.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:86: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
 84 |
 85 |     public func startDiscovery() throws {
 86 |         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
 87 |             await startHTTPServerIfNotRunning()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 88 |             try discoveryEngine.startDiscovery(forTypes: types)
 89 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:87:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 85 |     public func startDiscovery() throws {
 86 |         Task {
 87 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startHTTPServerIfNotRunning()' risks causing data races between main actor-isolated and local nonisolated uses
 88 |             try discoveryEngine.startDiscovery(forTypes: types)
    |                 `- note: access can happen concurrently
 89 |             discoveryEngine.searchRequest()
 90 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:94: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
 92 |
 93 |     public func stopDiscovery() {
 94 |         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
 95 |             await stopHTTPServer()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 96 |             await MainActor.run {
 97 |                 devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:95:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 93 |     public func stopDiscovery() {
 94 |         Task {
 95 |             await stopHTTPServer()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'stopHTTPServer()' risks causing data races between main actor-isolated and local nonisolated uses
 96 |             await MainActor.run {
    |                                 `- note: access can happen concurrently
 97 |                 devices.removeAll(keepingCapacity: false)
 98 |             }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:161:35: warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
159 |                     guard let service = typedService(device: device, serviceUrn: deviceService.serviceType) else { continue }
160 |
161 |                     await service.loadScdp()
    |                                   |- warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: sending main actor-isolated 'service' to nonisolated instance method 'loadScdp()' risks causing data races between nonisolated and main actor-isolated uses
162 |                     device.add(service)
163 |                 }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:247:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
245 |               (response as? HTTPURLResponse)?.statusCode ?? 0 <= 204 else {
246 |             Logger.swiftUPnP.error("\(type) failed, status = \((response as? HTTPURLResponse)?.statusCode ?? -1)")
247 |             await self.setSubcriptionStatus(.failed, subscriptionId: nil)
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'setSubcriptionStatus(_:subscriptionId:)' risks causing data races between main actor-isolated and local nonisolated uses
248 |             await self.subscribeToEvents()
    |                        `- note: access can happen concurrently
249 |             return
250 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:260:31: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
258 |                 Logger.swiftUPnP.debug("Will renew sid: \(subscriptionId) at: \(Date(timeIntervalSinceNow: Double(timeout - 10)))")
259 |                 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now().advanced(by: .seconds(timeout - 10))) { [weak self] in
260 |                     guard let self else { return }
    |                               |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                               `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
261 |                     Task {
262 |                         await self.renewSubscriptionToEvents()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:211:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
209 |     public func subscribeToEvents() async {
210 |         guard let eventUrl = eventUrl, let eventCallbackUrl = eventCallbackUrl else { return }
211 |         guard await startSubcribing() else { return }
    |                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startSubcribing()' risks causing data races between main actor-isolated and local nonisolated uses
212 |
213 |         var request = URLRequest(url: eventUrl)
    :
218 |         request.setValue("Second-\(Self.defaultSubscriptionTimeout)", forHTTPHeaderField: "TIMEOUT")
219 |
220 |         await subscribeOrRenew(request: request, type: "subscribed")
    |               `- note: access can happen concurrently
221 |     }
222 |
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:224:67: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
222 |
223 |     internal func renewSubscriptionToEvents() async {
224 |         guard let eventUrl = eventUrl, let subscriptionId = await startRenewing() else { return }
    |                                                                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startRenewing()' risks causing data races between main actor-isolated and local nonisolated uses
225 |
226 |         var request = URLRequest(url: eventUrl)
    :
230 |         request.setValue("Second-\(Self.defaultSubscriptionTimeout)", forHTTPHeaderField: "TIMEOUT")
231 |
232 |         await subscribeOrRenew(request: request, type: "renewed")
    |               `- note: access can happen concurrently
233 |     }
234 |
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:273:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
271 |
272 |     public func unsubscribeFromEvents() async {
273 |         guard let eventUrl = eventUrl, await startUnubcribing() else { return }
    |                                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                              `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startUnubcribing()' risks causing data races between main actor-isolated and local nonisolated uses
274 |
275 |         var request = URLRequest(url: eventUrl)
276 |         request.httpMethod = "UNSUBSCRIBE"
277 |         request.setValue("text/xml", forHTTPHeaderField: "Content-Type")
278 |         request.setValue(subscriptionId, forHTTPHeaderField: "SID")
    |                          `- note: access can happen concurrently
279 |
280 |         guard let (_, response) = try? await URLSession.shared.data(for: request),
[96/120] Compiling SwiftUPnP UPnPServiceDefinition.swift
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:86: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
 84 |
 85 |     public func startDiscovery() throws {
 86 |         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
 87 |             await startHTTPServerIfNotRunning()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 88 |             try discoveryEngine.startDiscovery(forTypes: types)
 89 |             discoveryEngine.searchRequest()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:87:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 85 |     public func startDiscovery() throws {
 86 |         Task {
 87 |             await startHTTPServerIfNotRunning()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startHTTPServerIfNotRunning()' risks causing data races between main actor-isolated and local nonisolated uses
 88 |             try discoveryEngine.startDiscovery(forTypes: types)
    |                 `- note: access can happen concurrently
 89 |             discoveryEngine.searchRequest()
 90 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:94: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
 92 |
 93 |     public func stopDiscovery() {
 94 |         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
 95 |             await stopHTTPServer()
    |                   `- note: closure captures 'self' which is accessible to code in the current task
 96 |             await MainActor.run {
 97 |                 devices.removeAll(keepingCapacity: false)
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:95:19: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
 93 |     public func stopDiscovery() {
 94 |         Task {
 95 |             await stopHTTPServer()
    |                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'stopHTTPServer()' risks causing data races between main actor-isolated and local nonisolated uses
 96 |             await MainActor.run {
    |                                 `- note: access can happen concurrently
 97 |                 devices.removeAll(keepingCapacity: false)
 98 |             }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:161:35: warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
159 |                     guard let service = typedService(device: device, serviceUrn: deviceService.serviceType) else { continue }
160 |
161 |                     await service.loadScdp()
    |                                   |- warning: sending 'service' risks causing data races; this is an error in the Swift 6 language mode
    |                                   `- note: sending main actor-isolated 'service' to nonisolated instance method 'loadScdp()' risks causing data races between nonisolated and main actor-isolated uses
162 |                     device.add(service)
163 |                 }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:247:24: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
245 |               (response as? HTTPURLResponse)?.statusCode ?? 0 <= 204 else {
246 |             Logger.swiftUPnP.error("\(type) failed, status = \((response as? HTTPURLResponse)?.statusCode ?? -1)")
247 |             await self.setSubcriptionStatus(.failed, subscriptionId: nil)
    |                        |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                        `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'setSubcriptionStatus(_:subscriptionId:)' risks causing data races between main actor-isolated and local nonisolated uses
248 |             await self.subscribeToEvents()
    |                        `- note: access can happen concurrently
249 |             return
250 |         }
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:260:31: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
258 |                 Logger.swiftUPnP.debug("Will renew sid: \(subscriptionId) at: \(Date(timeIntervalSinceNow: Double(timeout - 10)))")
259 |                 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now().advanced(by: .seconds(timeout - 10))) { [weak self] in
260 |                     guard let self else { return }
    |                               |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                               `- note: task-isolated 'self' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
261 |                     Task {
262 |                         await self.renewSubscriptionToEvents()
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:211:21: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
209 |     public func subscribeToEvents() async {
210 |         guard let eventUrl = eventUrl, let eventCallbackUrl = eventCallbackUrl else { return }
211 |         guard await startSubcribing() else { return }
    |                     |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                     `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startSubcribing()' risks causing data races between main actor-isolated and local nonisolated uses
212 |
213 |         var request = URLRequest(url: eventUrl)
    :
218 |         request.setValue("Second-\(Self.defaultSubscriptionTimeout)", forHTTPHeaderField: "TIMEOUT")
219 |
220 |         await subscribeOrRenew(request: request, type: "subscribed")
    |               `- note: access can happen concurrently
221 |     }
222 |
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:224:67: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
222 |
223 |     internal func renewSubscriptionToEvents() async {
224 |         guard let eventUrl = eventUrl, let subscriptionId = await startRenewing() else { return }
    |                                                                   |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                                                   `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startRenewing()' risks causing data races between main actor-isolated and local nonisolated uses
225 |
226 |         var request = URLRequest(url: eventUrl)
    :
230 |         request.setValue("Second-\(Self.defaultSubscriptionTimeout)", forHTTPHeaderField: "TIMEOUT")
231 |
232 |         await subscribeOrRenew(request: request, type: "renewed")
    |               `- note: access can happen concurrently
233 |     }
234 |
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:273:46: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
271 |
272 |     public func unsubscribeFromEvents() async {
273 |         guard let eventUrl = eventUrl, await startUnubcribing() else { return }
    |                                              |- warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
    |                                              `- note: sending main actor-isolated 'self' to main actor-isolated instance method 'startUnubcribing()' risks causing data races between main actor-isolated and local nonisolated uses
274 |
275 |         var request = URLRequest(url: eventUrl)
276 |         request.httpMethod = "UNSUBSCRIBE"
277 |         request.setValue("text/xml", forHTTPHeaderField: "Content-Type")
278 |         request.setValue(subscriptionId, forHTTPHeaderField: "SID")
    |                          `- note: access can happen concurrently
279 |
280 |         guard let (_, response) = try? await URLSession.shared.data(for: request),
[97/120] Compiling SwiftUPnP SSDPNetworkDiscovery.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
[98/120] Compiling SwiftUPnP UserAgentGenerator.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
[99/120] Compiling SwiftUPnP IPHelper.swift
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:50:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
48 |                 Logger.swiftUPnP.error("\(error.localizedDescription)")
49 |             case .cancelled:
50 |                 self?.multicastGroup = nil
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery?' in a '@Sendable' closure; this is an error in the Swift 6 language mode
51 |                 self?.connectionGroup = nil
52 |             default:
/Users/admin/builder/spi-builder-workspace/Source/SSDP/SSDPNetworkDiscovery.swift:58:17: warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
30 | import os.log
31 |
32 | class SSDPNetworkDiscovery: SSDPDiscovery {
   |       `- note: class 'SSDPNetworkDiscovery' does not conform to the 'Sendable' protocol
33 |     private var multicastGroup: NWMulticastGroup?
34 |     private var connectionGroup: NWConnectionGroup?
   :
56 |         connectionGroup.setReceiveHandler(maximumMessageSize: 65535, rejectOversizedMessages: true) { (message, content, isComplete) in
57 |             if let content = content {
58 |                 self.processData(content)
   |                 `- warning: capture of 'self' with non-sendable type 'SSDPNetworkDiscovery' in a '@Sendable' closure
59 |             }
60 |         }
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
[100/120] Compiling SwiftUPnP OpenHomeRadio1Service.swift
[101/120] Compiling SwiftUPnP OpenHomeReceiver1Service.swift
[102/120] Compiling SwiftUPnP OpenHomeSender1Service.swift
[103/120] Emitting module SwiftUPnP
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
/Users/admin/builder/spi-builder-workspace/Source/Support/IPHelper.swift:134:24: warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
132 |
133 | extension Logger {
134 |     private static var subsystem = Bundle.main.bundleIdentifier!
    |                        |- warning: static property 'subsystem' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                        |- note: convert 'subsystem' to a 'let' constant to make 'Sendable' shared state immutable
    |                        |- note: add '@MainActor' to make static property 'subsystem' part of global actor 'MainActor'
    |                        `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
135 |
136 |     /// Logs the view cycles like viewDidLoad.
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPRegistry.swift:33:23: warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | import os.log
 31 |
 32 | public class UPnPRegistry {
    |              `- note: class 'UPnPRegistry' does not conform to the 'Sendable' protocol
 33 |     public static let shared = UPnPRegistry()
    |                       |- warning: static property 'shared' is not concurrency-safe because non-'Sendable' type 'UPnPRegistry' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'shared' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 34 |
 35 |     // Use CocoaAsyncSocket discovery for SSDP, as the standard network framework doesn't support when
/Users/admin/builder/spi-builder-workspace/Source/UPnP/UPnPService.swift:49:23: warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
 47 |     }
 48 |
 49 |     public static var defaultSubscriptionTimeout = 120
    |                       |- warning: static property 'defaultSubscriptionTimeout' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: convert 'defaultSubscriptionTimeout' to a 'let' constant to make 'Sendable' shared state immutable
    |                       |- note: add '@MainActor' to make static property 'defaultSubscriptionTimeout' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 50 |
 51 |     public let controlUrl: URL
[104/120] Compiling SwiftUPnP OpenHomeTime1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[105/120] Compiling SwiftUPnP OpenHomeTransport1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[106/120] Compiling SwiftUPnP OpenHomeVolume1Service.swift
/Users/admin/builder/spi-builder-workspace/Source/Profiles/OpenHome Profile/OpenHomeTransport1Service.swift:176:117: warning: keyword 'repeat' does not need to be escaped in argument list
174 | 			var action: SoapAction
175 | 		}
176 | 		try await post(action: "SetRepeat", envelope: Envelope(body: Body(action: SoapAction(urn: Attribute(serviceType), `repeat`: `repeat`))), log: log)
    |                                                                                                                     `- warning: keyword 'repeat' does not need to be escaped in argument list
177 | 	}
178 |
[107/120] Compiling SwiftUPnP OpenHomePins1Service.swift
[108/120] Compiling SwiftUPnP OpenHomePlaylist1Service+DIDL.swift
[109/120] Compiling SwiftUPnP OpenHomePlaylist1Service.swift
[110/120] Compiling SwiftUPnP AVTransport1Service.swift
[111/120] Compiling SwiftUPnP ConnectionManager1Service.swift
[112/120] Compiling SwiftUPnP ContentDirectory1Service+DIDL.swift
[113/120] Compiling SwiftUPnP ContentDirectory1Service.swift
[114/120] Compiling SwiftUPnP RenderingControl1Service.swift
[115/120] Compiling SwiftUPnP OpenHomeConfig1Service.swift
[116/120] Compiling SwiftUPnP OpenHomeCredentials1Service.swift
[117/120] Compiling SwiftUPnP OpenHomeInfo1Service.swift
[118/120] Compiling SwiftUPnP OpenHomePlaylistManager1Service.swift
[119/120] Compiling SwiftUPnP OpenHomeProduct1Service.swift
[120/120] Compiling SwiftUPnP OpenHomeProduct2Service.swift
Build complete! (16.03s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "xmlcoder",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "0.13.1",
            "upper_bound" : "1.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/CoreOffice/XMLCoder.git"
    },
    {
      "identity" : "swifter",
      "requirement" : {
        "branch" : [
          "stable"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/httpswift/swifter"
    },
    {
      "identity" : "cocoaasyncsocket",
      "requirement" : {
        "branch" : [
          "master"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/robbiehanson/CocoaAsyncSocket"
    }
  ],
  "manifest_display_name" : "SwiftUPnP",
  "name" : "SwiftUPnP",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "12.0"
    },
    {
      "name" : "watchos",
      "version" : "10.0"
    }
  ],
  "products" : [
    {
      "name" : "SwiftUPnP",
      "targets" : [
        "SwiftUPnP"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "UPnPCodeGenerator",
      "targets" : [
        "UPnPCodeGenerator"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "UPnPCodeGenerator",
      "module_type" : "SwiftTarget",
      "name" : "UPnPCodeGenerator",
      "path" : "CodeGenerator",
      "product_dependencies" : [
        "XMLCoder"
      ],
      "product_memberships" : [
        "UPnPCodeGenerator"
      ],
      "sources" : [
        "ServiceDefinition.swift",
        "SourceGenerator.swift",
        "main.swift"
      ],
      "type" : "executable"
    },
    {
      "c99name" : "SwiftUPnP",
      "module_type" : "SwiftTarget",
      "name" : "SwiftUPnP",
      "path" : "Source",
      "product_dependencies" : [
        "XMLCoder",
        "Swifter",
        "CocoaAsyncSocket"
      ],
      "product_memberships" : [
        "SwiftUPnP"
      ],
      "sources" : [
        "Profiles/AV Profile/AVTransport1Service.swift",
        "Profiles/AV Profile/ConnectionManager1Service.swift",
        "Profiles/AV Profile/ContentDirectory1Service+DIDL.swift",
        "Profiles/AV Profile/ContentDirectory1Service.swift",
        "Profiles/AV Profile/RenderingControl1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeConfig1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeCredentials1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeInfo1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePins1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service+DIDL.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylist1Service.swift",
        "Profiles/OpenHome Profile/OpenHomePlaylistManager1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeProduct2Service.swift",
        "Profiles/OpenHome Profile/OpenHomeRadio1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeReceiver1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeSender1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTime1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeTransport1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume1Service.swift",
        "Profiles/OpenHome Profile/OpenHomeVolume2Service.swift",
        "SSDP/SSDPCocoaAsyncSocketDiscovery.swift",
        "SSDP/SSDPDiscovery.swift",
        "SSDP/SSDPNetworkDiscovery.swift",
        "SSDP/UserAgentGenerator.swift",
        "Support/IPHelper.swift",
        "Support/XMLParserSupport.swift",
        "UPnP/UPnPDevice.swift",
        "UPnP/UPnPDeviceDefinition.swift",
        "UPnP/UPnPRegistry.swift",
        "UPnP/UPnPService.swift",
        "UPnP/UPnPServiceDefinition.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.