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 Pipify, reference main (64e24e), with Swift 6.1 for macOS (SPM) on 29 Apr 2025 23:46:48 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/getsidetrack/swiftui-pipify.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/getsidetrack/swiftui-pipify
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 64e24ee Resolve macOS Compilation Error
Cloned https://github.com/getsidetrack/swiftui-pipify.git
Revision (git rev-parse @):
64e24ee19e4caf18cde4e81fb24229999bb2f1d4
SUCCESS checkout https://github.com/getsidetrack/swiftui-pipify.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/getsidetrack/swiftui-pipify.git
https://github.com/getsidetrack/swiftui-pipify.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Pipify",
  "name" : "Pipify",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0.0"
    },
    {
      "name" : "macos",
      "version" : "13.0.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "16.0.0"
    }
  ],
  "products" : [
    {
      "name" : "Pipify",
      "targets" : [
        "Pipify"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Pipify",
      "module_type" : "SwiftTarget",
      "name" : "Pipify",
      "path" : "Sources",
      "product_memberships" : [
        "Pipify"
      ],
      "sources" : [
        "LayerView.swift",
        "PipifyController.swift",
        "PipifyViewModifier.swift",
        "View+Buffer.swift",
        "View+Changes.swift",
        "View+Pipify.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
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/2] Write sources
[1/2] Write swift-version-2F0A5646E1D333AE.txt
[3/9] Compiling Pipify View+Pipify.swift
/Users/admin/builder/spi-builder-workspace/Sources/View+Pipify.swift:53:26: warning: use of 'pipify' treated as a reference to instance method in protocol 'View'
31 |     ///   - isPresented: A binding to a boolean which determines when the Picture in Picture controller should be presented.
32 |     @warn_unqualified_access
33 |     func pipify(
   |          `- note: 'pipify(isPresented:)' declared here
34 |         isPresented: Binding<Bool>
35 |     ) -> some View {
   :
51 |     @LibraryContentBuilder
52 |     func modifiers(base: any View) -> [LibraryItem] {
53 |         LibraryItem(base.pipify(isPresented: $isPresented), title: "Pipify Embedded View")
   |                          |- warning: use of 'pipify' treated as a reference to instance method in protocol 'View'
   |                          `- note: use 'self.' to silence this warning
54 |         LibraryItem(base.pipify(isPresented: $isPresented) { Text("Hello, world!") }, title: "Pipify External View")
55 |     }
/Users/admin/builder/spi-builder-workspace/Sources/View+Pipify.swift:54:26: warning: use of 'pipify' treated as a reference to instance method in protocol 'View'
14 |     ///   - content: A closure which returns the view you wish to present in the Picture in Picture controller.
15 |     @warn_unqualified_access
16 |     func pipify<PipView: View>(
   |          `- note: 'pipify(isPresented:content:)' declared here
17 |         isPresented: Binding<Bool>,
18 |         content: @escaping () -> PipView
   :
52 |     func modifiers(base: any View) -> [LibraryItem] {
53 |         LibraryItem(base.pipify(isPresented: $isPresented), title: "Pipify Embedded View")
54 |         LibraryItem(base.pipify(isPresented: $isPresented) { Text("Hello, world!") }, title: "Pipify External View")
   |                          |- warning: use of 'pipify' treated as a reference to instance method in protocol 'View'
   |                          `- note: use 'self.' to silence this warning
55 |     }
56 | }
/Users/admin/builder/spi-builder-workspace/Sources/View+Pipify.swift:53:26: warning: call to main actor-isolated instance method 'pipify(isPresented:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
31 |     ///   - isPresented: A binding to a boolean which determines when the Picture in Picture controller should be presented.
32 |     @warn_unqualified_access
33 |     func pipify(
   |          `- note: calls to instance method 'pipify(isPresented:)' from outside of its actor context are implicitly asynchronous
34 |         isPresented: Binding<Bool>
35 |     ) -> some View {
   :
51 |     @LibraryContentBuilder
52 |     func modifiers(base: any View) -> [LibraryItem] {
53 |         LibraryItem(base.pipify(isPresented: $isPresented), title: "Pipify Embedded View")
   |                          `- warning: call to main actor-isolated instance method 'pipify(isPresented:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
54 |         LibraryItem(base.pipify(isPresented: $isPresented) { Text("Hello, world!") }, title: "Pipify External View")
55 |     }
/Users/admin/builder/spi-builder-workspace/Sources/View+Pipify.swift:54:26: warning: call to main actor-isolated instance method 'pipify(isPresented:content:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
14 |     ///   - content: A closure which returns the view you wish to present in the Picture in Picture controller.
15 |     @warn_unqualified_access
16 |     func pipify<PipView: View>(
   |          `- note: calls to instance method 'pipify(isPresented:content:)' from outside of its actor context are implicitly asynchronous
17 |         isPresented: Binding<Bool>,
18 |         content: @escaping () -> PipView
   :
52 |     func modifiers(base: any View) -> [LibraryItem] {
53 |         LibraryItem(base.pipify(isPresented: $isPresented), title: "Pipify Embedded View")
54 |         LibraryItem(base.pipify(isPresented: $isPresented) { Text("Hello, world!") }, title: "Pipify External View")
   |                          `- warning: call to main actor-isolated instance method 'pipify(isPresented:content:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
55 |     }
56 | }
[4/9] Compiling Pipify View+Changes.swift
[5/9] Compiling Pipify View+Buffer.swift
/Users/admin/builder/spi-builder-workspace/Sources/View+Buffer.swift:21:9: warning: no 'async' operations occur within 'await' expression
 19 |         #endif
 20 |
 21 |         await renderer.render { size, callback in
    |         `- warning: no 'async' operations occur within 'await' expression
 22 |             let scaledSize = CGSize(width: size.width * scale, height: size.height * scale)
 23 |
[6/9] Compiling Pipify LayerView.swift
[7/9] Emitting module Pipify
[8/9] Compiling Pipify PipifyViewModifier.swift
[9/9] Compiling Pipify PipifyController.swift
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:107:45: warning: non-sendable result type 'CMSampleBuffer' cannot be sent from main actor-isolated context in call to instance method 'makeBuffer(renderer:)'; this is an error in the Swift 6 language mode
105 |         Task {
106 |             do {
107 |                 let buffer = try await view.makeBuffer(renderer: renderer)
    |                                             `- warning: non-sendable result type 'CMSampleBuffer' cannot be sent from main actor-isolated context in call to instance method 'makeBuffer(renderer:)'; this is an error in the Swift 6 language mode
108 |                 render(buffer: buffer)
109 |             } catch {
CoreMedia.CMSampleBuffer:2:14: note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
1 | @available(macOS 10.7, *)
2 | public class CMSampleBuffer : _CFObject {
  |              `- note: class 'CMSampleBuffer' does not conform to the 'Sendable' protocol
3 | }
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:156:21: warning: capture of 'self' with non-sendable type 'PipifyController?' in a '@Sendable' closure
  9 | import os.log
 10 |
 11 | public final class PipifyController: NSObject, ObservableObject, AVPictureInPictureControllerDelegate,
    |                    `- note: class 'PipifyController' does not conform to the 'Sendable' protocol
 12 |                                        AVPictureInPictureSampleBufferPlaybackDelegate {
 13 |
    :
154 |                     logger.info("starting picture in picture")
155 |                     controller.startPictureInPicture()
156 |                     self?.pipPossibleObservation = nil
    |                     `- warning: capture of 'self' with non-sendable type 'PipifyController?' in a '@Sendable' closure
157 |                 }
158 |             }
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:105: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
103 |
104 |     private func render(view: some View, using renderer: ImageRenderer<some View>) {
105 |         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
106 |             do {
107 |                 let buffer = try await view.makeBuffer(renderer: renderer)
108 |                 render(buffer: buffer)
    |                 `- note: closure captures 'self' which is accessible to code in the current task
109 |             } catch {
110 |                 logger.error("failed to create buffer: \(error.localizedDescription)")
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:107:45: warning: sending 'renderer' risks causing data races; this is an error in the Swift 6 language mode
105 |         Task {
106 |             do {
107 |                 let buffer = try await view.makeBuffer(renderer: renderer)
    |                                             |- warning: sending 'renderer' risks causing data races; this is an error in the Swift 6 language mode
    |                                             `- note: sending task-isolated 'renderer' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
108 |                 render(buffer: buffer)
109 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:107:45: warning: sending 'view' risks causing data races; this is an error in the Swift 6 language mode
105 |         Task {
106 |             do {
107 |                 let buffer = try await view.makeBuffer(renderer: renderer)
    |                                             |- warning: sending 'view' risks causing data races; this is an error in the Swift 6 language mode
    |                                             `- note: sending task-isolated 'view' to main actor-isolated callee risks causing data races between main actor-isolated and task-isolated uses
108 |                 render(buffer: buffer)
109 |             } catch {
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:213:44: warning: sending 'playing' risks causing data races; this is an error in the Swift 6 language mode
211 |         if isPlayPauseEnabled {
212 |             DispatchQueue.main.async {
213 |                 logger.info("setPlaying: \(playing)")
    |                                            |- warning: sending 'playing' risks causing data races; this is an error in the Swift 6 language mode
    |                                            `- note: task-isolated 'playing' is captured by a main actor-isolated closure. main actor-isolated uses in closure may race against later nonisolated uses
214 |                 self.isPlaying = playing
215 |                 pictureInPictureController.invalidatePlaybackState()
/Users/admin/builder/spi-builder-workspace/Sources/PipifyController.swift:214:17: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
212 |             DispatchQueue.main.async {
213 |                 logger.info("setPlaying: \(playing)")
214 |                 self.isPlaying = playing
    |                 |- 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
215 |                 pictureInPictureController.invalidatePlaybackState()
216 |             }
Build complete! (10.00s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Pipify",
  "name" : "Pipify",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "16.0.0"
    },
    {
      "name" : "macos",
      "version" : "13.0.0"
    },
    {
      "name" : "tvos",
      "version" : "16.0.0"
    },
    {
      "name" : "maccatalyst",
      "version" : "16.0.0"
    }
  ],
  "products" : [
    {
      "name" : "Pipify",
      "targets" : [
        "Pipify"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "Pipify",
      "module_type" : "SwiftTarget",
      "name" : "Pipify",
      "path" : "Sources",
      "product_memberships" : [
        "Pipify"
      ],
      "sources" : [
        "LayerView.swift",
        "PipifyController.swift",
        "PipifyViewModifier.swift",
        "View+Buffer.swift",
        "View+Changes.swift",
        "View+Pipify.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.6"
}
Done.