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 LottieUI, reference v1.3.3 (dd5b2f), with Swift 6.0 for macOS (SPM) on 29 Nov 2024 08:43:26 UTC.

Swift 6 data race errors: 2

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.1.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.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tfmart/LottieUI.git
Reference: v1.3.3
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tfmart/LottieUI
 * tag               v1.3.3     -> FETCH_HEAD
HEAD is now at dd5b2f1 Added code example to warning
Cloned https://github.com/tfmart/LottieUI.git
Revision (git rev-parse @):
dd5b2f16213f89ab996a55fc2f51b56236da4bbe
SUCCESS checkout https://github.com/tfmart/LottieUI.git at v1.3.3
Fetching https://github.com/airbnb/lottie-spm.git
[1/574] Fetching lottie-spm
Fetched https://github.com/airbnb/lottie-spm.git from cache (3.71s)
Computing version for https://github.com/airbnb/lottie-spm.git
Computed https://github.com/airbnb/lottie-spm.git at 4.5.0 (0.54s)
Creating working copy for https://github.com/airbnb/lottie-spm.git
Working copy of https://github.com/airbnb/lottie-spm.git resolved at 4.5.0
[19274/55918811] Downloading https://github.com/airbnb/lottie-ios/releases/download/4.5.0/Lottie.xcframework.zip
Downloading binary artifact https://github.com/airbnb/lottie-ios/releases/download/4.5.0/Lottie.xcframework.zip
Downloaded https://github.com/airbnb/lottie-ios/releases/download/4.5.0/Lottie.xcframework.zip (3.90s)
========================================
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": "lottieui",
      "name": "LottieUI",
      "url": "https://github.com/tfmart/LottieUI.git",
      "version": "unspecified",
      "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/LottieUI",
      "dependencies": [
        {
          "identity": "lottie-spm",
          "name": "Lottie",
          "url": "https://github.com/airbnb/lottie-spm.git",
          "version": "4.5.0",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/lottie-spm",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/tfmart/LottieUI.git
[9/414] Fetching lottieui
Fetched https://github.com/tfmart/LottieUI.git from cache (1.71s)
Fetching https://github.com/airbnb/lottie-spm.git from cache
Fetched https://github.com/airbnb/lottie-spm.git from cache (0.48s)
Computing version for https://github.com/airbnb/lottie-spm.git
Computed https://github.com/airbnb/lottie-spm.git at 4.5.0 (0.02s)
Creating working copy for https://github.com/airbnb/lottie-spm.git
Working copy of https://github.com/airbnb/lottie-spm.git resolved at 4.5.0
Creating working copy for https://github.com/tfmart/LottieUI.git
Working copy of https://github.com/tfmart/LottieUI.git resolved at v1.3.3 (dd5b2f1)
Fetching binary artifact https://github.com/airbnb/lottie-ios/releases/download/4.5.0/Lottie.xcframework.zip from cache
Fetched https://github.com/airbnb/lottie-ios/releases/download/4.5.0/Lottie.xcframework.zip from cache (2.69s)
warning: '.resolve-product-dependencies': dependency 'lottieui' is not used by any target
Found 1 product dependencies
  - Lottie
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $PWD
https://github.com/tfmart/LottieUI.git
{
  "dependencies" : [
    {
      "identity" : "lottie-spm",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.2",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/airbnb/lottie-spm.git"
    }
  ],
  "manifest_display_name" : "LottieUI",
  "name" : "LottieUI",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "LottieUI",
      "targets" : [
        "LottieUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LottieUITests",
      "module_type" : "SwiftTarget",
      "name" : "LottieUITests",
      "path" : "Tests/LottieUITests",
      "sources" : [
        "LottieUITests.swift"
      ],
      "target_dependencies" : [
        "LottieUI"
      ],
      "type" : "test"
    },
    {
      "c99name" : "LottieUI",
      "module_type" : "SwiftTarget",
      "name" : "LottieUI",
      "path" : "Sources/LottieUI",
      "product_dependencies" : [
        "Lottie"
      ],
      "product_memberships" : [
        "LottieUI"
      ],
      "sources" : [
        "AsyncLottieView/AsyncLottiePhase.swift",
        "AsyncLottieView/AsyncLottieView.swift",
        "LottieConfiguration.swift",
        "LottieContentSource.swift",
        "LottieView/LottieView+iOS.swift",
        "LottieView/LottieView+macOS.swift",
        "LottieView/LottieView.swift",
        "iOS/AnimationProgressObserver.swift",
        "iOS/WrappedAnimationView+iOS.swift",
        "macOS/AnimationProgressObserver+macOS.swift",
        "macOS/WrappedAnimationNSView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.1.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/4] Write sources
[2/4] Copying Lottie.framework
[3/4] Write swift-version--7754E27361AE5C74.txt
[5/6] Emitting module _LottieStub
[6/6] Compiling _LottieStub Stub.swift
[7/17] Compiling LottieUI AnimationProgressObserver+macOS.swift
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/AnimationProgressObserver+macOS.swift:55:39: warning: sending 'self' risks causing data races; this is an error in the Swift 6 language mode
53 |     private func tick() {
54 |         DispatchQueue.main.async {
55 |             guard let animationView = self.animationView 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
56 |             let progress = animationView.realtimeAnimationProgress
57 |             let frame = animationView.realtimeAnimationFrame
[8/17] Compiling LottieUI WrappedAnimationView+iOS.swift
[9/18] Compiling LottieUI AnimationProgressObserver.swift
[10/18] Compiling LottieUI LottieView+macOS.swift
[11/18] Compiling LottieUI LottieView+iOS.swift
[12/18] Compiling LottieUI LottieConfiguration.swift
[13/18] Compiling LottieUI LottieView.swift
[14/18] Compiling LottieUI LottieContentSource.swift
[15/18] Compiling LottieUI AsyncLottiePhase.swift
[16/18] Compiling LottieUI AsyncLottieView.swift
[17/18] Emitting module LottieUI
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:13:9: warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 | import Lottie
 11 |
 12 | public class WrappedAnimationNSView: NSView, WrappedAnimationProtocol {
    |                                              `- note: add '@preconcurrency' to the 'WrappedAnimationProtocol' conformance to defer isolation checking to run time
 13 |     var animationView: LottieAnimationView!
    |         `- warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 14 |     var observer: AnimationProgressObserver
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:12:9: note: 'animationView' declared here
 10 |
 11 | protocol WrappedAnimationProtocol {
 12 |     var animationView: LottieAnimationView! { get set }
    |         `- note: 'animationView' declared here
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:47:19: warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 45 |     }
 46 |
 47 |     internal func update(withEngine renderingEngine: RenderingEngineOption) {
    |                   |- warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                   `- note: add 'nonisolated' to 'update(withEngine:)' to make this instance method not isolated to the actor
 48 |         let animation = animationView.animation
 49 |         let imageProvider = animationView.imageProvider
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:14:10: note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 12 |     var animationView: LottieAnimationView! { get set }
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
    |          `- note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 15 | }
 16 |
[18/18] Compiling LottieUI WrappedAnimationNSView.swift
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:13:9: warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 10 | import Lottie
 11 |
 12 | public class WrappedAnimationNSView: NSView, WrappedAnimationProtocol {
    |                                              `- note: add '@preconcurrency' to the 'WrappedAnimationProtocol' conformance to defer isolation checking to run time
 13 |     var animationView: LottieAnimationView!
    |         `- warning: main actor-isolated property 'animationView' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 14 |     var observer: AnimationProgressObserver
 15 |
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:12:9: note: 'animationView' declared here
 10 |
 11 | protocol WrappedAnimationProtocol {
 12 |     var animationView: LottieAnimationView! { get set }
    |         `- note: 'animationView' declared here
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/macOS/WrappedAnimationNSView.swift:47:19: warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
 45 |     }
 46 |
 47 |     internal func update(withEngine renderingEngine: RenderingEngineOption) {
    |                   |- warning: main actor-isolated instance method 'update(withEngine:)' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode
    |                   `- note: add 'nonisolated' to 'update(withEngine:)' to make this instance method not isolated to the actor
 48 |         let animation = animationView.animation
 49 |         let imageProvider = animationView.imageProvider
/Users/admin/builder/spi-builder-workspace/Sources/LottieUI/iOS/WrappedAnimationView+iOS.swift:14:10: note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 12 |     var animationView: LottieAnimationView! { get set }
 13 |
 14 |     func update(withEngine renderingEngine: RenderingEngineOption)
    |          `- note: mark the protocol requirement 'update(withEngine:)' 'async' to allow actor-isolated conformances
 15 | }
 16 |
Build complete! (18.27s)
Build complete.
{
  "dependencies" : [
    {
      "identity" : "lottie-spm",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "4.1.2",
            "upper_bound" : "5.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/airbnb/lottie-spm.git"
    }
  ],
  "manifest_display_name" : "LottieUI",
  "name" : "LottieUI",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "13.0"
    },
    {
      "name" : "macos",
      "version" : "10.15"
    }
  ],
  "products" : [
    {
      "name" : "LottieUI",
      "targets" : [
        "LottieUI"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "LottieUITests",
      "module_type" : "SwiftTarget",
      "name" : "LottieUITests",
      "path" : "Tests/LottieUITests",
      "sources" : [
        "LottieUITests.swift"
      ],
      "target_dependencies" : [
        "LottieUI"
      ],
      "type" : "test"
    },
    {
      "c99name" : "LottieUI",
      "module_type" : "SwiftTarget",
      "name" : "LottieUI",
      "path" : "Sources/LottieUI",
      "product_dependencies" : [
        "Lottie"
      ],
      "product_memberships" : [
        "LottieUI"
      ],
      "sources" : [
        "AsyncLottieView/AsyncLottiePhase.swift",
        "AsyncLottieView/AsyncLottieView.swift",
        "LottieConfiguration.swift",
        "LottieContentSource.swift",
        "LottieView/LottieView+iOS.swift",
        "LottieView/LottieView+macOS.swift",
        "LottieView/LottieView.swift",
        "iOS/AnimationProgressObserver.swift",
        "iOS/WrappedAnimationView+iOS.swift",
        "macOS/AnimationProgressObserver+macOS.swift",
        "macOS/WrappedAnimationNSView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Done.