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 master (eb5969), with Swift 6.0 for macOS (SPM) on 13 Dec 2024 22:37:57 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.2.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.59.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/theBreadCompany/pixivswift.git
Reference: master
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/theBreadCompany/pixivswift
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at eb59695 bump swift-tools-version to 5.6
Cloned https://github.com/theBreadCompany/pixivswift.git
Revision (git rev-parse @):
eb5969571d62ee9683fbbc488a66ffd6c70dc26a
SUCCESS checkout https://github.com/theBreadCompany/pixivswift.git at master
Fetching https://github.com/weichsel/ZIPFoundation.git
[1/5466] Fetching zipfoundation
Fetched https://github.com/weichsel/ZIPFoundation.git from cache (1.33s)
Creating working copy for https://github.com/weichsel/ZIPFoundation.git
Working copy of https://github.com/weichsel/ZIPFoundation.git resolved at fac78dfe5a886ad98e355ba98475b30b3753213a
========================================
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": "pixivswift",
      "name": "pixivswift",
      "url": "https://github.com/theBreadCompany/pixivswift.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/pixivswift",
      "dependencies": [
        {
          "identity": "zipfoundation",
          "name": "ZIPFoundation",
          "url": "https://github.com/weichsel/ZIPFoundation.git",
          "version": "unspecified",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/ZIPFoundation",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/theBreadCompany/pixivswift.git
[1/748] Fetching pixivswift
Fetched https://github.com/theBreadCompany/pixivswift.git from cache (0.82s)
Fetching https://github.com/weichsel/ZIPFoundation.git from cache
Fetched https://github.com/weichsel/ZIPFoundation.git from cache (0.53s)
Creating working copy for https://github.com/weichsel/ZIPFoundation.git
Working copy of https://github.com/weichsel/ZIPFoundation.git resolved at fac78dfe5a886ad98e355ba98475b30b3753213a
Creating working copy for https://github.com/theBreadCompany/pixivswift.git
Working copy of https://github.com/theBreadCompany/pixivswift.git resolved at master (eb59695)
Found 1 product dependencies
  - ZIPFoundation
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
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.6"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.2.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
[4/10] Copying PrivacyInfo.xcprivacy
[4/10] Write pixivauth-entitlement.plist
[6/10] Write swift-version-5BDAB9E9C0126B9D.txt
[8/41] Emitting module ZIPFoundation
[9/43] Compiling ZIPFoundation Archive+MemoryFile.swift
[10/43] Compiling ZIPFoundation Archive+Progress.swift
[11/43] Compiling ZIPFoundation Archive+Reading.swift
[12/43] Compiling ZIPFoundation URL+ZIP.swift
[13/43] Compiling ZIPFoundation resource_bundle_accessor.swift
[14/43] Compiling ZIPFoundation Archive+WritingDeprecated.swift
[15/43] Compiling ZIPFoundation Archive+ZIP64.swift
[16/43] Compiling ZIPFoundation FileManager+ZIP.swift
[17/43] Compiling ZIPFoundation FileManager+ZIPDeprecated.swift
[18/43] Compiling ZIPFoundation Entry+ZIP64.swift
[19/43] Compiling ZIPFoundation Entry.swift
[20/43] Compiling ZIPFoundation Data+CompressionDeprecated.swift
[21/43] Compiling ZIPFoundation Data+Serialization.swift
[22/43] Compiling ZIPFoundation Archive+ReadingDeprecated.swift
[23/43] Compiling ZIPFoundation Archive+Writing.swift
[24/43] Compiling ZIPFoundation Archive+BackingConfiguration.swift
[25/43] Compiling ZIPFoundation Archive+Deprecated.swift
[26/43] Compiling ZIPFoundation Archive+Helpers.swift
[27/43] Compiling ZIPFoundation Date+ZIP.swift
[28/43] Compiling ZIPFoundation Entry+Serialization.swift
[29/43] Compiling ZIPFoundation Archive.swift
[30/43] Compiling ZIPFoundation Data+Compression.swift
[31/43] Compiling pixivswift aapi.swift
[32/43] Compiling pixivswift utils.swift
[33/43] Compiling pixivswift aapi+newNames.swift
[34/43] Compiling pixivswift PixivResults+Helper.swift
[35/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()
[36/43] Compiling pixivswift aapi+completionHandlers.swift
[37/43] Compiling pixivswift PixivResults+Operators.swift
[38/43] Compiling pixivswift PixivResults.swift
[39/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 |
[40/43] Emitting module pixivswift
[41/52] Compiling pixivauth main.swift
[42/52] Compiling pixivswiftWrapper utils.swift
[43/52] Compiling pixivswiftWrapper PixivDownloader+Metadata.swift
[44/52] Compiling pixivswiftWrapper File.swift
[45/52] Emitting module pixivswiftWrapper
[46/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
[47/52] Emitting module pixivauth
[48/52] Compiling pixivauth AppDelegate.swift
[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:11:26: note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
  9 |     public init(frame: CGRect, configuration: WKWebViewConfiguration)
 10 |     public init?(coder: NSCoder)
 11 |     @MainActor open func load(_ request: URLRequest) -> WKNavigation?
    |                          `- note: calls to instance method 'load' from outside of its actor context are implicitly asynchronous
 12 |     @available(swift, obsoleted: 3, renamed: "load(_:)")
 13 |     open func loadRequest(_ request: URLRequest) -> WKNavigation?
[49/52] Write Objects.LinkFileList
[50/52] Linking pixivauth
[51/52] Applying pixivauth
Build complete! (31.13s)
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.6"
}
Done.