The Swift Package Index logo.Swift Package Index

Build Information

Failed to build M3UKit, reference main (b1bcb6), with Swift 6.1 for Wasm on 28 May 2025 13:22:54 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.63.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/omaralbeik/M3UKit.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/omaralbeik/M3UKit
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at b1bcb66 Update seasonEpisodeRegex to support different kinds of season&episode matching (#24)
Cloned https://github.com/omaralbeik/M3UKit.git
Revision (git rev-parse @):
b1bcb665c0f06d81ed40493955fa867fd1c730c5
SUCCESS checkout https://github.com/omaralbeik/M3UKit.git at main
========================================
Build
========================================
Selected platform:         wasm
Swift version:             6.1
Building package at path:  $PWD
https://github.com/omaralbeik/M3UKit.git
https://github.com/omaralbeik/M3UKit.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
{
  "dependencies" : [
  ],
  "manifest_display_name" : "M3UKit",
  "name" : "M3UKit",
  "path" : "/host/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "M3UKit",
      "targets" : [
        "M3UKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "M3UKitTests",
      "module_type" : "SwiftTarget",
      "name" : "M3UKitTests",
      "path" : "Tests/M3UKitTests",
      "resources" : [
        {
          "path" : "/host/spi-builder-workspace/Tests/M3UKitTests/Resources/invalid.m3u",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/M3UKitTests/Resources/text.txt",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/host/spi-builder-workspace/Tests/M3UKitTests/Resources/valid.m3u",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "PlaylistParserTests.swift",
        "PlaylistTests.swift"
      ],
      "target_dependencies" : [
        "M3UKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "M3UKit",
      "module_type" : "SwiftTarget",
      "name" : "M3UKit",
      "path" : "Sources/M3UKit",
      "product_memberships" : [
        "M3UKit"
      ],
      "sources" : [
        "Playlist.swift",
        "PlaylistParser.swift",
        "PlaylistSource.swift",
        "RegularExpression.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.5"
}
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -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 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:7e37457820e5f17452a98118754f345f2619722c485f2db0d8b666940a83afd2
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/7] Compiling M3UKit PlaylistSource.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/7] Compiling M3UKit RegularExpression.swift
[5/7] Compiling M3UKit Playlist.swift
[6/7] Compiling M3UKit PlaylistParser.swift
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:38:23: warning: static property 'removeSeriesInfoFromText' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |   /// Playlist parser options
 30 |   public struct Options: OptionSet {
    |                 `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |     public let rawValue: Int
 32 |
    :
 36 |
 37 |     /// Remove season number and episode number "S--E--" from the name of media.
 38 |     public static let removeSeriesInfoFromText = Options(rawValue: 1 << 0)
    |                       |- warning: static property 'removeSeriesInfoFromText' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'removeSeriesInfoFromText' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |     /// Extract id from the URL (usually last path component removing the extension)
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:41:23: warning: static property 'extractIdFromURL' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |   /// Playlist parser options
 30 |   public struct Options: OptionSet {
    |                 `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |     public let rawValue: Int
 32 |
    :
 39 |
 40 |     /// Extract id from the URL (usually last path component removing the extension)
 41 |     public static let extractIdFromURL = Options(rawValue: 1 << 1)
    |                       |- warning: static property 'extractIdFromURL' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'extractIdFromURL' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |     /// All available options.
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:44:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |   /// Playlist parser options
 30 |   public struct Options: OptionSet {
    |                 `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |     public let rawValue: Int
 32 |
    :
 42 |
 43 |     /// All available options.
 44 |     public static let all: Options = [
    |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |       .removeSeriesInfoFromText,
 46 |       .extractIdFromURL,
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:166:22: error: cannot find type 'DispatchQueue' in scope
164 |   public func parse(
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
    |                      `- error: cannot find type 'DispatchQueue' in scope
167 |     callbackQueue: DispatchQueue = .main,
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:167:20: error: cannot find type 'DispatchQueue' in scope
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
167 |     callbackQueue: DispatchQueue = .main,
    |                    `- error: cannot find type 'DispatchQueue' in scope
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
169 |   ) {
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:193:26: warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
191 |     priority: TaskPriority = .background
192 |   ) async throws -> Playlist {
193 |     let processingTask = Task(priority: priority) {
    |                          `- warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
194 |       try self.parse(input)
195 |     }
/host/spi-builder-workspace/Sources/M3UKit/Playlist.swift:27:15: note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 25 |
 26 | /// Object representing a playlist containing media items.
 27 | public struct Playlist: Equatable, Hashable, Codable {
    |               `- note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 28 |
 29 |   /// Object representing a media.
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:193:26: warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
191 |     priority: TaskPriority = .background
192 |   ) async throws -> Playlist {
193 |     let processingTask = Task(priority: priority) {
    |                          `- warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
194 |       try self.parse(input)
195 |     }
/host/spi-builder-workspace/Sources/M3UKit/Playlist.swift:27:15: note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 25 |
 26 | /// Object representing a playlist containing media items.
 27 | public struct Playlist: Equatable, Hashable, Codable {
    |               `- note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 28 |
 29 |   /// Object representing a media.
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:193:9: warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
191 |     priority: TaskPriority = .background
192 |   ) async throws -> Playlist {
193 |     let processingTask = Task(priority: priority) {
    |         `- warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
194 |       try self.parse(input)
195 |     }
/host/spi-builder-workspace/Sources/M3UKit/Playlist.swift:27:15: note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 25 |
 26 | /// Object representing a playlist containing media items.
 27 | public struct Playlist: Equatable, Hashable, Codable {
    |               `- note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 28 |
 29 |   /// Object representing a media.
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:196:37: warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
194 |       try self.parse(input)
195 |     }
196 |     return try await processingTask.value
    |                                     `- warning: type 'Playlist' does not conform to the 'Sendable' protocol; this is an error in the Swift 6 language mode
197 |   }
198 |
/host/spi-builder-workspace/Sources/M3UKit/Playlist.swift:27:15: note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 25 |
 26 | /// Object representing a playlist containing media items.
 27 | public struct Playlist: Equatable, Hashable, Codable {
    |               `- note: consider making struct 'Playlist' conform to the 'Sendable' protocol
 28 |
 29 |   /// Object representing a media.
[7/7] Emitting module M3UKit
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:38:23: warning: static property 'removeSeriesInfoFromText' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |   /// Playlist parser options
 30 |   public struct Options: OptionSet {
    |                 `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |     public let rawValue: Int
 32 |
    :
 36 |
 37 |     /// Remove season number and episode number "S--E--" from the name of media.
 38 |     public static let removeSeriesInfoFromText = Options(rawValue: 1 << 0)
    |                       |- warning: static property 'removeSeriesInfoFromText' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'removeSeriesInfoFromText' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |
 40 |     /// Extract id from the URL (usually last path component removing the extension)
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:41:23: warning: static property 'extractIdFromURL' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |   /// Playlist parser options
 30 |   public struct Options: OptionSet {
    |                 `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |     public let rawValue: Int
 32 |
    :
 39 |
 40 |     /// Extract id from the URL (usually last path component removing the extension)
 41 |     public static let extractIdFromURL = Options(rawValue: 1 << 1)
    |                       |- warning: static property 'extractIdFromURL' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'extractIdFromURL' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 42 |
 43 |     /// All available options.
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:44:23: warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |
 29 |   /// Playlist parser options
 30 |   public struct Options: OptionSet {
    |                 `- note: consider making struct 'Options' conform to the 'Sendable' protocol
 31 |     public let rawValue: Int
 32 |
    :
 42 |
 43 |     /// All available options.
 44 |     public static let all: Options = [
    |                       |- warning: static property 'all' is not concurrency-safe because non-'Sendable' type 'PlaylistParser.Options' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: add '@MainActor' to make static property 'all' part of global actor 'MainActor'
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 45 |       .removeSeriesInfoFromText,
 46 |       .extractIdFromURL,
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:166:22: error: cannot find type 'DispatchQueue' in scope
164 |   public func parse(
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
    |                      `- error: cannot find type 'DispatchQueue' in scope
167 |     callbackQueue: DispatchQueue = .main,
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:167:20: error: cannot find type 'DispatchQueue' in scope
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
167 |     callbackQueue: DispatchQueue = .main,
    |                    `- error: cannot find type 'DispatchQueue' in scope
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
169 |   ) {
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi 2>&1
wasm-6.1-latest: Pulling from finestructure/spi-images
Digest: sha256:7e37457820e5f17452a98118754f345f2619722c485f2db0d8b666940a83afd2
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/6] Compiling M3UKit PlaylistSource.swift
[3/6] Compiling M3UKit RegularExpression.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/6] Compiling M3UKit Playlist.swift
[5/6] Emitting module M3UKit
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:166:22: error: cannot find type 'DispatchQueue' in scope
164 |   public func parse(
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
    |                      `- error: cannot find type 'DispatchQueue' in scope
167 |     callbackQueue: DispatchQueue = .main,
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:167:20: error: cannot find type 'DispatchQueue' in scope
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
167 |     callbackQueue: DispatchQueue = .main,
    |                    `- error: cannot find type 'DispatchQueue' in scope
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
169 |   ) {
[6/6] Compiling M3UKit PlaylistParser.swift
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:166:22: error: cannot find type 'DispatchQueue' in scope
164 |   public func parse(
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
    |                      `- error: cannot find type 'DispatchQueue' in scope
167 |     callbackQueue: DispatchQueue = .main,
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
/host/spi-builder-workspace/Sources/M3UKit/PlaylistParser.swift:167:20: error: cannot find type 'DispatchQueue' in scope
165 |     _ input: PlaylistSource,
166 |     processingQueue: DispatchQueue = .global(qos: .background),
167 |     callbackQueue: DispatchQueue = .main,
    |                    `- error: cannot find type 'DispatchQueue' in scope
168 |     completion: @escaping (Result<Playlist, Error>) -> Void
169 |   ) {
BUILD FAILURE 6.1 wasm