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 main (41550f), with Swift 6.1 for macOS (SPM) on 27 Apr 2025 11:03:04 UTC.

Swift 6 data race errors: 2

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/tfmart/LottieUI.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/tfmart/LottieUI
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 41550fb Update README.md
Cloned https://github.com/tfmart/LottieUI.git
Revision (git rev-parse @):
41550fb4ef51ac38c0d36572c8eb325fc8997217
SUCCESS checkout https://github.com/tfmart/LottieUI.git at main
Fetching https://github.com/airbnb/lottie-spm.git
[1/584] Fetching lottie-spm
Fetched https://github.com/airbnb/lottie-spm.git from cache (3.20s)
Computing version for https://github.com/airbnb/lottie-spm.git
Computed https://github.com/airbnb/lottie-spm.git at 4.5.1 (3.80s)
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.1
Downloading binary artifact https://github.com/airbnb/lottie-ios/releases/download/4.5.1/Lottie.xcframework.zip
[16375/56037210] Downloading https://github.com/airbnb/lottie-ios/releases/download/4.5.1/Lottie.xcframework.zip
Downloaded https://github.com/airbnb/lottie-ios/releases/download/4.5.1/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.1",
          "path": "/Users/admin/builder/spi-builder-workspace/.resolve-product-dependencies/.build/checkouts/lottie-spm",
          "dependencies": [
          ]
        }
      ]
    }
  ]
}
Fetching https://github.com/tfmart/LottieUI.git
[1/414] Fetching lottieui
Fetched https://github.com/tfmart/LottieUI.git from cache (1.29s)
Fetching https://github.com/airbnb/lottie-spm.git from cache
Fetched https://github.com/airbnb/lottie-spm.git from cache (0.39s)
Computing version for https://github.com/airbnb/lottie-spm.git
Computed https://github.com/airbnb/lottie-spm.git at 4.5.1 (0.44s)
Creating working copy for https://github.com/tfmart/LottieUI.git
Working copy of https://github.com/tfmart/LottieUI.git resolved at main (41550fb)
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.1
Fetching binary artifact https://github.com/airbnb/lottie-ios/releases/download/4.5.1/Lottie.xcframework.zip from cache
Fetched https://github.com/airbnb/lottie-ios/releases/download/4.5.1/Lottie.xcframework.zip from cache (2.75s)
warning: '.resolve-product-dependencies': dependency 'lottieui' is not used by any target
Found 1 product dependencies
  - Lottie
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/tfmart/LottieUI.git
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.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/4] Write sources
[2/4] Copying Lottie.framework
[3/4] Write swift-version-2F0A5646E1D333AE.txt
[5/6] Compiling _LottieStub Stub.swift
[6/6] Emitting module _LottieStub
[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 AnimationProgressObserver.swift
[9/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 requirement from protocol 'WrappedAnimationProtocol'; 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 requirement from protocol 'WrappedAnimationProtocol'; 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: requirement 'animationView' declared here
 10 |
 11 | protocol WrappedAnimationProtocol {
 12 |     var animationView: LottieAnimationView! { get set }
    |         `- note: requirement '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 requirement from protocol 'WrappedAnimationProtocol'; 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 requirement from protocol 'WrappedAnimationProtocol'; 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 |
[10/18] Compiling LottieUI WrappedAnimationView+iOS.swift
[11/18] Compiling LottieUI LottieView+macOS.swift
[12/18] Compiling LottieUI AsyncLottiePhase.swift
[13/18] Compiling LottieUI AsyncLottieView.swift
[14/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 requirement from protocol 'WrappedAnimationProtocol'; 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 requirement from protocol 'WrappedAnimationProtocol'; 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: requirement 'animationView' declared here
 10 |
 11 | protocol WrappedAnimationProtocol {
 12 |     var animationView: LottieAnimationView! { get set }
    |         `- note: requirement '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 requirement from protocol 'WrappedAnimationProtocol'; 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 requirement from protocol 'WrappedAnimationProtocol'; 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 |
[15/18] Compiling LottieUI LottieView+iOS.swift
[16/18] Compiling LottieUI LottieContentSource.swift
[17/18] Compiling LottieUI LottieConfiguration.swift
[18/18] Compiling LottieUI LottieView.swift
Build complete! (13.25s)
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.