The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Markdown, reference main (4648cf), with Swift 6.1 for macOS (SPM) on 25 Sep 2026 20:34:24 UTC.

Swift 6 data race errors: 1

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: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/gewill/swiftui-markdown.git
Reference: main
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/gewill/swiftui-markdown
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 4648cf7 Merge pull request #24 from gewill/fix/example-katex
Cloned https://github.com/gewill/swiftui-markdown.git
Revision (git rev-parse @):
4648cf7f8d1278fdbc76625532def9c780d6b244
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/gewill/swiftui-markdown.git at main
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/gewill/swiftui-markdown.git
https://github.com/gewill/swiftui-markdown.git
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Markdown",
  "name" : "Markdown",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "Markdown",
      "targets" : [
        "Markdown"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MarkdownTests",
      "module_type" : "SwiftTarget",
      "name" : "MarkdownTests",
      "path" : "Tests/MarkdownTests",
      "sources" : [
        "MarkdownTests.swift"
      ],
      "target_dependencies" : [
        "Markdown"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Markdown",
      "module_type" : "SwiftTarget",
      "name" : "Markdown",
      "path" : "Sources/Markdown",
      "product_memberships" : [
        "Markdown"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Markdown/Resources/web.bundle",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Markdown.swift",
        "MarkdownStyle.swift",
        "MarkdownWebView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
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/3] Write sources
[1/3] Copying web.bundle
[2/3] Write swift-version-2F0A5646E1D333AE.txt
[4/8] Compiling Markdown resource_bundle_accessor.swift
[5/8] Compiling Markdown MarkdownStyle.swift
[6/8] Compiling Markdown Markdown.swift
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/Markdown.swift:168:14: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'MarkdownStyle' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 | private struct MarkdownStyleKey: EnvironmentKey {
168 |   static let defaultValue = MarkdownStyle()
    |              |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'MarkdownStyle' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 | }
170 |
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownStyle.swift:127:15: note: consider making struct 'MarkdownStyle' conform to the 'Sendable' protocol
125 | /// Changing the style on a preview that is already on screen updates it in
126 | /// place.
127 | public struct MarkdownStyle: Hashable {
    |               `- note: consider making struct 'MarkdownStyle' conform to the 'Sendable' protocol
128 |     /// Padding on all four edges, in points.
129 |     public var padding: Int?
[7/8] Emitting module Markdown
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/Markdown.swift:168:14: warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'MarkdownStyle' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 | private struct MarkdownStyleKey: EnvironmentKey {
168 |   static let defaultValue = MarkdownStyle()
    |              |- warning: static property 'defaultValue' is not concurrency-safe because non-'Sendable' type 'MarkdownStyle' may have shared mutable state; this is an error in the Swift 6 language mode
    |              |- note: add '@MainActor' to make static property 'defaultValue' part of global actor 'MainActor'
    |              `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 | }
170 |
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownStyle.swift:127:15: note: consider making struct 'MarkdownStyle' conform to the 'Sendable' protocol
125 | /// Changing the style on a preview that is already on screen updates it in
126 | /// place.
127 | public struct MarkdownStyle: Hashable {
    |               `- note: consider making struct 'MarkdownStyle' conform to the 'Sendable' protocol
128 |     /// Padding on all four edges, in points.
129 |     public var padding: Int?
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownWebView.swift:282:17: warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
280 |     }
281 |     ///  open links in browsers
282 |     public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    |                 |- warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
    |                 |- note: candidate has non-matching type '(WKWebView, WKNavigationAction, @escaping (WKNavigationActionPolicy) -> Void) -> ()'
    |                 `- note: move 'webView(_:decidePolicyFor:decisionHandler:)' to an extension to silence this warning
283 |         if let url = navigationAction.request.url {
284 |             if url.isFileURL == false {
WebKit.WKNavigationDelegate.webView:3:28: note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
1 | protocol WKNavigationDelegate {
2 | @available(macOS 10.10, *)
3 |   @MainActor optional func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping @MainActor @Sendable (WKNavigationActionPolicy) -> Void)}
  |                            `- note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
4 |
[8/8] Compiling Markdown MarkdownWebView.swift
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownWebView.swift:282:17: warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
280 |     }
281 |     ///  open links in browsers
282 |     public func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
    |                 |- warning: instance method 'webView(_:decidePolicyFor:decisionHandler:)' nearly matches optional requirement 'webView(_:decidePolicyFor:decisionHandler:)' of protocol 'WKNavigationDelegate'
    |                 |- note: candidate has non-matching type '(WKWebView, WKNavigationAction, @escaping (WKNavigationActionPolicy) -> Void) -> ()'
    |                 `- note: move 'webView(_:decidePolicyFor:decisionHandler:)' to an extension to silence this warning
283 |         if let url = navigationAction.request.url {
284 |             if url.isFileURL == false {
WebKit.WKNavigationDelegate.webView:3:28: note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
1 | protocol WKNavigationDelegate {
2 | @available(macOS 10.10, *)
3 |   @MainActor optional func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping @MainActor @Sendable (WKNavigationActionPolicy) -> Void)}
  |                            `- note: requirement 'webView(_:decidePolicyFor:decisionHandler:)' declared here
4 |
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownWebView.swift:208:45: warning: capture of 'fontFaces' with non-sendable type '[MarkdownFontFace]' in a '@Sendable' closure
206 |         // the SwiftUI update path, so keep it off the main thread.
207 |         DispatchQueue.global(qos: .userInitiated).async { [weak self] in
208 |             let css = Self.fontFaceCSS(for: fontFaces)
    |                                             `- warning: capture of 'fontFaces' with non-sendable type '[MarkdownFontFace]' in a '@Sendable' closure
209 |             DispatchQueue.main.async {
210 |                 // A newer style may have landed while this was encoding.
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownStyle.swift:79:15: note: consider making struct 'MarkdownFontFace' conform to the 'Sendable' protocol
 77 | ///
 78 | /// To actually use the family, name it in ``MarkdownStyle/fontFamily`` as well.
 79 | public struct MarkdownFontFace: Hashable {
    |               `- note: consider making struct 'MarkdownFontFace' conform to the 'Sendable' protocol
 80 |     /// The name this face is registered under, and the name to use in a font
 81 |     /// stack.
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownWebView.swift:208:28: warning: call to main actor-isolated static method 'fontFaceCSS(for:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
206 |         // the SwiftUI update path, so keep it off the main thread.
207 |         DispatchQueue.global(qos: .userInitiated).async { [weak self] in
208 |             let css = Self.fontFaceCSS(for: fontFaces)
    |                            `- warning: call to main actor-isolated static method 'fontFaceCSS(for:)' in a synchronous nonisolated context; this is an error in the Swift 6 language mode
209 |             DispatchQueue.main.async {
210 |                 // A newer style may have landed while this was encoding.
    :
393 |     }
394 |
395 |     static func fontFaceCSS(for fontFaces: [MarkdownFontFace]) -> String {
    |                 |- note: calls to static method 'fontFaceCSS(for:)' from outside of its actor context are implicitly asynchronous
    |                 `- note: main actor isolation inferred from inheritance from class 'NSView'
396 |         fontFaces.compactMap(fontFaceCSS).joined(separator: "\n")
397 |     }
/Users/admin/builder/spi-builder-workspace/Sources/Markdown/MarkdownWebView.swift:208:28: warning: sending 'fontFaces' risks causing data races; this is an error in the Swift 6 language mode
206 |         // the SwiftUI update path, so keep it off the main thread.
207 |         DispatchQueue.global(qos: .userInitiated).async { [weak self] in
208 |             let css = Self.fontFaceCSS(for: fontFaces)
    |                            |- warning: sending 'fontFaces' risks causing data races; this is an error in the Swift 6 language mode
    |                            `- note: sending 'fontFaces' to main actor-isolated static method 'fontFaceCSS(for:)' risks causing data races between main actor-isolated and local nonisolated uses
209 |             DispatchQueue.main.async {
    |                                      `- note: access can happen concurrently
210 |                 // A newer style may have landed while this was encoding.
211 |                 guard let self = self, self.appliedFontFaces == fontFaces else {
Build complete! (10.05s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "Markdown",
  "name" : "Markdown",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "ios",
      "version" : "14.0"
    },
    {
      "name" : "macos",
      "version" : "11.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    }
  ],
  "products" : [
    {
      "name" : "Markdown",
      "targets" : [
        "Markdown"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "MarkdownTests",
      "module_type" : "SwiftTarget",
      "name" : "MarkdownTests",
      "path" : "Tests/MarkdownTests",
      "sources" : [
        "MarkdownTests.swift"
      ],
      "target_dependencies" : [
        "Markdown"
      ],
      "type" : "test"
    },
    {
      "c99name" : "Markdown",
      "module_type" : "SwiftTarget",
      "name" : "Markdown",
      "path" : "Sources/Markdown",
      "product_memberships" : [
        "Markdown"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Markdown/Resources/web.bundle",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "Markdown.swift",
        "MarkdownStyle.swift",
        "MarkdownWebView.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.9"
}
Done.