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 pixivswift, reference v1.1.10 (72a109), with Swift 6.1 for macOS (SPM) on 30 Apr 2025 03:32:54 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/theBreadCompany/pixivswift.git
Reference: v1.1.10
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/theBreadCompany/pixivswift
 * tag               v1.1.10    -> FETCH_HEAD
HEAD is now at 72a1095 fix commits for ZIPFoundation and SwiftGD because neither pushed their bug fixes as patches yet
Cloned https://github.com/theBreadCompany/pixivswift.git
Revision (git rev-parse @):
72a109589344e6281c6327cf568cea0c123ee216
SUCCESS checkout https://github.com/theBreadCompany/pixivswift.git at v1.1.10
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/theBreadCompany/pixivswift.git
https://github.com/theBreadCompany/pixivswift.git
{
  "dependencies" : [
    {
      "identity" : "zipfoundation",
      "requirement" : {
        "revision" : [
          "fac78dfe5a886ad98e355ba98475b30b3753213a"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/weichsel/ZIPFoundation.git"
    }
  ],
  "manifest_display_name" : "pixivswift",
  "name" : "pixivswift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.11"
    },
    {
      "name" : "ios",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "pixivswift",
      "targets" : [
        "pixivswift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "pixivswiftWrapper",
      "targets" : [
        "pixivswiftWrapper",
        "pixivswift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "pixivauth",
      "targets" : [
        "pixivauth"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "pixivswiftWrapperTests",
      "module_type" : "SwiftTarget",
      "name" : "pixivswiftWrapperTests",
      "path" : "Tests/pixivswiftWrapperTests",
      "sources" : [
        "TestErrors.swift",
        "bookmarks.swift",
        "core.swift",
        "follow.swift",
        "ugoira.swift"
      ],
      "target_dependencies" : [
        "pixivswiftWrapper"
      ],
      "type" : "test"
    },
    {
      "c99name" : "pixivswiftWrapper",
      "module_type" : "SwiftTarget",
      "name" : "pixivswiftWrapper",
      "path" : "Sources/pixivswiftWrapper",
      "product_dependencies" : [
        "ZIPFoundation"
      ],
      "product_memberships" : [
        "pixivswiftWrapper"
      ],
      "sources" : [
        "File.swift",
        "PixivDownloader+Metadata.swift",
        "PixivDownloader.swift",
        "utils.swift"
      ],
      "target_dependencies" : [
        "pixivswift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "pixivswiftTests",
      "module_type" : "SwiftTarget",
      "name" : "pixivswiftTests",
      "path" : "Tests/pixivswiftTests",
      "sources" : [
        "TestErrors.swift",
        "bookmarks.swift",
        "core.swift",
        "related.swift"
      ],
      "target_dependencies" : [
        "pixivswift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "pixivswift",
      "module_type" : "SwiftTarget",
      "name" : "pixivswift",
      "path" : "Sources/pixivswift",
      "product_memberships" : [
        "pixivswift",
        "pixivswiftWrapper",
        "pixivauth"
      ],
      "sources" : [
        "PixivResults+Helper.swift",
        "PixivResults+Operators.swift",
        "PixivResults.swift",
        "aapi+completionHandlers.swift",
        "aapi+newNames.swift",
        "aapi.swift",
        "api.swift",
        "headless_login.swift",
        "utils.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "pixivauth",
      "module_type" : "SwiftTarget",
      "name" : "pixivauth",
      "path" : "Sources/pixivauth",
      "product_memberships" : [
        "pixivauth"
      ],
      "sources" : [
        "AppDelegate.swift",
        "ViewController.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "pixivswift"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.3"
}
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
[2/10] Write pixivauth-entitlement.plist
[2/10] Copying PrivacyInfo.xcprivacy
[3/10] Write sources
[6/10] Write swift-version-2F0A5646E1D333AE.txt
[8/41] Emitting module ZIPFoundation
[9/43] Compiling ZIPFoundation URL+ZIP.swift
[10/43] Compiling ZIPFoundation resource_bundle_accessor.swift
[11/43] Compiling ZIPFoundation Archive.swift
[12/43] Compiling ZIPFoundation Data+Compression.swift
[13/43] Compiling ZIPFoundation Archive+MemoryFile.swift
[14/43] Compiling ZIPFoundation Archive+Progress.swift
[15/43] Compiling ZIPFoundation Archive+Reading.swift
[16/43] Compiling ZIPFoundation Archive+WritingDeprecated.swift
[17/43] Compiling ZIPFoundation Archive+ZIP64.swift
[18/43] Compiling ZIPFoundation FileManager+ZIP.swift
[19/43] Compiling ZIPFoundation FileManager+ZIPDeprecated.swift
[20/43] Compiling ZIPFoundation Data+CompressionDeprecated.swift
[21/43] Compiling ZIPFoundation Data+Serialization.swift
[22/43] Compiling ZIPFoundation Entry+ZIP64.swift
[23/43] Compiling ZIPFoundation Entry.swift
[24/43] Compiling ZIPFoundation Date+ZIP.swift
[25/43] Compiling ZIPFoundation Entry+Serialization.swift
[26/43] Compiling ZIPFoundation Archive+ReadingDeprecated.swift
[27/43] Compiling ZIPFoundation Archive+Writing.swift
[28/43] Compiling ZIPFoundation Archive+BackingConfiguration.swift
[29/43] Compiling ZIPFoundation Archive+Deprecated.swift
[30/43] Compiling ZIPFoundation Archive+Helpers.swift
[31/43] Compiling pixivswift aapi.swift
[32/43] Compiling pixivswift utils.swift
[33/43] Compiling pixivswift api.swift
/Users/admin/builder/spi-builder-workspace/Sources/pixivswift/api.swift:87:17: warning: mutation of captured var 'responseData' in concurrently-executing code
 85 |             if let data = data, error == nil {
 86 |                 // the warning about thread safety will have to stay until I've refactored this thing to use actual async syntax
 87 |                 responseData = String(data: data, encoding: .utf8) ?? ""
    |                 `- warning: mutation of captured var 'responseData' in concurrently-executing code
 88 |             }
 89 |             semaphore.signal()
[34/43] Compiling pixivswift aapi+newNames.swift
[35/43] Compiling pixivswift aapi+completionHandlers.swift
[36/43] Compiling pixivswift PixivResults.swift
[37/43] Compiling pixivswift PixivResults+Operators.swift
[38/43] Compiling pixivswift PixivResults+Helper.swift
[39/43] Emitting module pixivswift
[40/43] Compiling pixivswift headless_login.swift
/Users/admin/builder/spi-builder-workspace/Sources/pixivswift/headless_login.swift:89:75: warning: mutation of captured var 'response' in concurrently-executing code
 87 |
 88 |         let _ = URLSession.shared.dataTask(with: code_req) { data, _, error in
 89 |             guard let data = data, error == nil else { print("Failure!"); response = "{}"; return}
    |                                                                           `- warning: mutation of captured var 'response' in concurrently-executing code
 90 |             response = String(data: data, encoding: .utf8)!
 91 |         }.resume()
/Users/admin/builder/spi-builder-workspace/Sources/pixivswift/headless_login.swift:90:13: warning: mutation of captured var 'response' in concurrently-executing code
 88 |         let _ = URLSession.shared.dataTask(with: code_req) { data, _, error in
 89 |             guard let data = data, error == nil else { print("Failure!"); response = "{}"; return}
 90 |             response = String(data: data, encoding: .utf8)!
    |             `- warning: mutation of captured var 'response' in concurrently-executing code
 91 |         }.resume()
 92 |
[41/52] Compiling pixivswiftWrapper File.swift
[42/52] Compiling pixivswiftWrapper utils.swift
[43/52] Emitting module pixivswiftWrapper
[44/52] Compiling pixivswiftWrapper PixivDownloader.swift
/Users/admin/builder/spi-builder-workspace/Sources/pixivswiftWrapper/PixivDownloader.swift:306:21: warning: capture of 'self' with non-sendable type 'PixivDownloader' in a '@Sendable' closure
 21 | private let TOKEN_LIFETIME = 2700
 22 |
 23 | open class PixivDownloader {
    |            `- note: class 'PixivDownloader' does not conform to the 'Sendable' protocol
 24 |
 25 |     public let auto_relogin: Bool
    :
304 |                 let target = URL(fileURLWithPath: url.lastPathComponent, relativeTo: directory)
305 |                 if with_metadata {
306 |                     self.meta_update(metadata: illustration, illust_url: tempurl)
    |                     `- warning: capture of 'self' with non-sendable type 'PixivDownloader' in a '@Sendable' closure
307 |                 }
308 |                 do { try FileManager.default.moveItem(at: tempurl, to: target) } catch { semaphore.signal(); return }
/Users/admin/builder/spi-builder-workspace/Sources/pixivswiftWrapper/PixivDownloader.swift:306:48: warning: capture of 'illustration' with non-sendable type 'PixivIllustration' in a '@Sendable' closure
304 |                 let target = URL(fileURLWithPath: url.lastPathComponent, relativeTo: directory)
305 |                 if with_metadata {
306 |                     self.meta_update(metadata: illustration, illust_url: tempurl)
    |                                                `- warning: capture of 'illustration' with non-sendable type 'PixivIllustration' in a '@Sendable' closure
307 |                 }
308 |                 do { try FileManager.default.moveItem(at: tempurl, to: target) } catch { semaphore.signal(); return }
/Users/admin/builder/spi-builder-workspace/Sources/pixivswift/PixivResults.swift:51:15: note: struct 'PixivIllustration' does not conform to the 'Sendable' protocol
 49 |  This `struct` holds any information about an illustration that exists on the pixiv servers.
 50 |  */
 51 | public struct PixivIllustration: Codable {
    |               `- note: struct 'PixivIllustration' does not conform to the 'Sendable' protocol
 52 |
 53 |     public var sanityLevel: Int
/Users/admin/builder/spi-builder-workspace/Sources/pixivswiftWrapper/PixivDownloader.swift:11:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'pixivswift'
  9 | import Foundation
 10 | import ZIPFoundation
 11 | import pixivswift
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'pixivswift'
 12 | #if canImport(ImageIO)
 13 | import ImageIO
[45/52] Compiling pixivswiftWrapper PixivDownloader+Metadata.swift
[46/52] Compiling pixivauth main.swift
[47/52] Compiling pixivauth AppDelegate.swift
[48/52] Emitting module pixivauth
[49/52] Compiling pixivauth ViewController.swift
/Users/admin/builder/spi-builder-workspace/Sources/pixivauth/ViewController.swift:42:41: warning: cannot form key path to main actor-isolated property 'url'; this is an error in the Swift 6 language mode
40 |         super.init()
41 |
42 |         observation = observe(\.webview.url, options: .new) { _, change in
   |                                         `- warning: cannot form key path to main actor-isolated property 'url'; this is an error in the Swift 6 language mode
43 |             self.changeHandler(change.newValue!!)
44 |         }
/Users/admin/builder/spi-builder-workspace/Sources/pixivauth/ViewController.swift:43:13: warning: capture of 'self' with non-sendable type 'URLObserver' in a '@Sendable' closure
30 | }
31 |
32 | public class URLObserver: NSObject {
   |              `- note: class 'URLObserver' does not conform to the 'Sendable' protocol
33 |     @objc var webview: WKWebView
34 |     var observation: NSKeyValueObservation?
   :
41 |
42 |         observation = observe(\.webview.url, options: .new) { _, change in
43 |             self.changeHandler(change.newValue!!)
   |             `- warning: capture of 'self' with non-sendable type 'URLObserver' in a '@Sendable' closure
44 |         }
45 |     }
/Users/admin/builder/spi-builder-workspace/Sources/pixivauth/ViewController.swift:53:17: warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
50 |     public var observer: URLObserver?
51 |
52 |     public func startLogin(onView webview: WKWebView, completionHandler: @escaping (String) -> Void) {
   |                 `- note: add '@MainActor' to make instance method 'startLogin(onView:completionHandler:)' part of global actor 'MainActor'
53 |         webview.load(createRequest(using: self.oauthData))
   |                 `- warning: call to main actor-isolated instance method 'load' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
54 |         self.observer = URLObserver(webview: webview, changeHandler: { url in
55 |             let components = NSURLComponents(url: url, resolvingAgainstBaseURL: false)
WebKit.WKWebView.load:2:22: note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
1 | class WKWebView {
2 | @MainActor open func load(_ request: URLRequest) -> WKNavigation?}
  |                      `- note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
3 |
[49/52] Write Objects.LinkFileList
[50/52] Linking pixivauth
[51/52] Applying pixivauth
Build complete! (11.51s)
Fetching https://github.com/weichsel/ZIPFoundation.git
[1/5562] Fetching zipfoundation
Fetched https://github.com/weichsel/ZIPFoundation.git from cache (1.24s)
Creating working copy for https://github.com/weichsel/ZIPFoundation.git
Working copy of https://github.com/weichsel/ZIPFoundation.git resolved at fac78dfe5a886ad98e355ba98475b30b3753213a
Build complete.
{
  "dependencies" : [
    {
      "identity" : "zipfoundation",
      "requirement" : {
        "revision" : [
          "fac78dfe5a886ad98e355ba98475b30b3753213a"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/weichsel/ZIPFoundation.git"
    }
  ],
  "manifest_display_name" : "pixivswift",
  "name" : "pixivswift",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.11"
    },
    {
      "name" : "ios",
      "version" : "9.0"
    }
  ],
  "products" : [
    {
      "name" : "pixivswift",
      "targets" : [
        "pixivswift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "pixivswiftWrapper",
      "targets" : [
        "pixivswiftWrapper",
        "pixivswift"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "pixivauth",
      "targets" : [
        "pixivauth"
      ],
      "type" : {
        "executable" : null
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "pixivswiftWrapperTests",
      "module_type" : "SwiftTarget",
      "name" : "pixivswiftWrapperTests",
      "path" : "Tests/pixivswiftWrapperTests",
      "sources" : [
        "TestErrors.swift",
        "bookmarks.swift",
        "core.swift",
        "follow.swift",
        "ugoira.swift"
      ],
      "target_dependencies" : [
        "pixivswiftWrapper"
      ],
      "type" : "test"
    },
    {
      "c99name" : "pixivswiftWrapper",
      "module_type" : "SwiftTarget",
      "name" : "pixivswiftWrapper",
      "path" : "Sources/pixivswiftWrapper",
      "product_dependencies" : [
        "ZIPFoundation"
      ],
      "product_memberships" : [
        "pixivswiftWrapper"
      ],
      "sources" : [
        "File.swift",
        "PixivDownloader+Metadata.swift",
        "PixivDownloader.swift",
        "utils.swift"
      ],
      "target_dependencies" : [
        "pixivswift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "pixivswiftTests",
      "module_type" : "SwiftTarget",
      "name" : "pixivswiftTests",
      "path" : "Tests/pixivswiftTests",
      "sources" : [
        "TestErrors.swift",
        "bookmarks.swift",
        "core.swift",
        "related.swift"
      ],
      "target_dependencies" : [
        "pixivswift"
      ],
      "type" : "test"
    },
    {
      "c99name" : "pixivswift",
      "module_type" : "SwiftTarget",
      "name" : "pixivswift",
      "path" : "Sources/pixivswift",
      "product_memberships" : [
        "pixivswift",
        "pixivswiftWrapper",
        "pixivauth"
      ],
      "sources" : [
        "PixivResults+Helper.swift",
        "PixivResults+Operators.swift",
        "PixivResults.swift",
        "aapi+completionHandlers.swift",
        "aapi+newNames.swift",
        "aapi.swift",
        "api.swift",
        "headless_login.swift",
        "utils.swift"
      ],
      "type" : "library"
    },
    {
      "c99name" : "pixivauth",
      "module_type" : "SwiftTarget",
      "name" : "pixivauth",
      "path" : "Sources/pixivauth",
      "product_memberships" : [
        "pixivauth"
      ],
      "sources" : [
        "AppDelegate.swift",
        "ViewController.swift",
        "main.swift"
      ],
      "target_dependencies" : [
        "pixivswift"
      ],
      "type" : "executable"
    }
  ],
  "tools_version" : "5.3"
}
Done.