Build Information
Failed to build CSProgress, reference 0.0.1 (b831bb), with Swift 6.3 for Wasm on 21 Apr 2026 18:30:05 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:wasm-6.3-latest swift build --swift-sdk swift-6.3-RELEASE_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/gregcotten/CSProgress.git
Reference: 0.0.1
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/gregcotten/CSProgress
* tag 0.0.1 -> FETCH_HEAD
HEAD is now at b831bb2 extremely busted test
Cloned https://github.com/gregcotten/CSProgress.git
Revision (git rev-parse @):
b831bb234a8a2af02ccc04d6e91a62f7dabb7de4
SUCCESS checkout https://github.com/gregcotten/CSProgress.git at 0.0.1
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.3
Building package at path: $PWD
https://github.com/gregcotten/CSProgress.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:wasm-6.3-latest swift build --swift-sdk swift-6.3-RELEASE_wasm 2>&1
wasm-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:d69f4e7582c319245442d62a08b2d7c7fd5a0c0c69f5d2ef11d1530cd8d3329b
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:wasm-6.3-latest
Building for debugging...
[0/7] Write sources
[2/7] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/9] Emitting module CSProgress
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:210:35: error: cannot find 'DispatchSemaphore' in scope
208 |
209 | // The access semaphore, allowing us to be thread-safe. A semaphore was chosen, because it performs better here than an NSLock or a dispatch queue.
210 | private var accessSemaphore = DispatchSemaphore(value: 1)
| `- error: cannot find 'DispatchSemaphore' in scope
211 |
212 | // The parent progress object.
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:409:20: error: cannot find type 'OperationQueue' in scope
407 | private struct CancellationNotificationWrapper {
408 | let notification: CancellationNotification
409 | let queue: OperationQueue
| `- error: cannot find type 'OperationQueue' in scope
410 | }
411 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:414:20: error: cannot find type 'OperationQueue' in scope
412 | private struct FractionCompletedNotificationWrapper {
413 | let notification: FractionCompletedNotification
414 | let queue: OperationQueue
| `- error: cannot find type 'OperationQueue' in scope
415 | }
416 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:419:20: error: cannot find type 'OperationQueue' in scope
417 | private struct DescriptionNotificationWrapper {
418 | let notification: DescriptionNotification
419 | let queue: OperationQueue
| `- error: cannot find type 'OperationQueue' in scope
420 | }
421 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:429:62: error: cannot find type 'OperationQueue' in scope
427 | // The add...Notification() methods return an identifier which can be later sent to remove...Notification() to remove the notification.
428 |
429 | private func _addCancellationNotification(onQueue queue: OperationQueue, notification: @escaping CancellationNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
430 | let uuid = UUID()
431 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:453:60: error: cannot find type 'OperationQueue' in scope
451 | - returns: An opaque value that can be passed to removeCancellationNotification() to de-register the notification.
452 | */
453 | public func addCancellationNotification(onQueue queue: OperationQueue = .main, notification: @escaping CancellationNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
454 | self.accessSemaphore.wait()
455 | defer { self.accessSemaphore.signal() }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:478:67: error: cannot find type 'OperationQueue' in scope
476 | }
477 |
478 | private func _addFractionCompletedNotification(onQueue queue: OperationQueue, notification: @escaping FractionCompletedNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
479 | let uuid = UUID()
480 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:499:84: error: cannot find type 'OperationQueue' in scope
497 | - returns: An opaque value that can be passed to removeFractionCompletedNotification() to de-register the notification.
498 | */
499 | @discardableResult public func addFractionCompletedNotification(onQueue queue: OperationQueue = .main, notification: @escaping FractionCompletedNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
500 | self.accessSemaphore.wait()
501 | defer { self.accessSemaphore.signal() }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:524:61: error: cannot find type 'OperationQueue' in scope
522 | }
523 |
524 | private func _addDescriptionNotification(onQueue queue: OperationQueue, notification: @escaping DescriptionNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
525 | let uuid = UUID()
526 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:545:78: error: cannot find type 'OperationQueue' in scope
543 | - returns: An opaque value that can be passed to removeDescriptionNotification() to de-register the notification.
544 | */
545 | @discardableResult public func addDescriptionNotification(onQueue queue: OperationQueue = .main, notification: @escaping DescriptionNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
546 | self.accessSemaphore.wait()
547 | defer { self.accessSemaphore.signal() }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:715:134: error: cannot find type 'OperationQueue' in scope
713 | This parameter defaults to the main operation queue.
714 | */
715 | public convenience init<Count: BinaryInteger>(totalUnitCount: Count, granularity: Double = CSProgress.defaultGranularity, queue: OperationQueue = .main) {
| `- error: cannot find type 'OperationQueue' in scope
716 | #if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
717 | let allowBridge = true
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:760:99: error: cannot find type 'OperationQueue' in scope
758 | This parameter defaults to the main operation queue.
759 | */
760 | public func becomeCurrent<Count: BinaryInteger>(withPendingUnitCount unitCount: Count, queue: OperationQueue = .main) {
| `- error: cannot find type 'OperationQueue' in scope
761 | CSProgress._current = ParentReference(progress: self, pendingUnitCount: UnitCount(unitCount))
762 |
[5/9] Compiling CSProgress CSProgress.swift
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:210:35: error: cannot find 'DispatchSemaphore' in scope
208 |
209 | // The access semaphore, allowing us to be thread-safe. A semaphore was chosen, because it performs better here than an NSLock or a dispatch queue.
210 | private var accessSemaphore = DispatchSemaphore(value: 1)
| `- error: cannot find 'DispatchSemaphore' in scope
211 |
212 | // The parent progress object.
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:409:20: error: cannot find type 'OperationQueue' in scope
407 | private struct CancellationNotificationWrapper {
408 | let notification: CancellationNotification
409 | let queue: OperationQueue
| `- error: cannot find type 'OperationQueue' in scope
410 | }
411 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:414:20: error: cannot find type 'OperationQueue' in scope
412 | private struct FractionCompletedNotificationWrapper {
413 | let notification: FractionCompletedNotification
414 | let queue: OperationQueue
| `- error: cannot find type 'OperationQueue' in scope
415 | }
416 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:419:20: error: cannot find type 'OperationQueue' in scope
417 | private struct DescriptionNotificationWrapper {
418 | let notification: DescriptionNotification
419 | let queue: OperationQueue
| `- error: cannot find type 'OperationQueue' in scope
420 | }
421 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:429:62: error: cannot find type 'OperationQueue' in scope
427 | // The add...Notification() methods return an identifier which can be later sent to remove...Notification() to remove the notification.
428 |
429 | private func _addCancellationNotification(onQueue queue: OperationQueue, notification: @escaping CancellationNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
430 | let uuid = UUID()
431 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:453:60: error: cannot find type 'OperationQueue' in scope
451 | - returns: An opaque value that can be passed to removeCancellationNotification() to de-register the notification.
452 | */
453 | public func addCancellationNotification(onQueue queue: OperationQueue = .main, notification: @escaping CancellationNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
454 | self.accessSemaphore.wait()
455 | defer { self.accessSemaphore.signal() }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:478:67: error: cannot find type 'OperationQueue' in scope
476 | }
477 |
478 | private func _addFractionCompletedNotification(onQueue queue: OperationQueue, notification: @escaping FractionCompletedNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
479 | let uuid = UUID()
480 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:499:84: error: cannot find type 'OperationQueue' in scope
497 | - returns: An opaque value that can be passed to removeFractionCompletedNotification() to de-register the notification.
498 | */
499 | @discardableResult public func addFractionCompletedNotification(onQueue queue: OperationQueue = .main, notification: @escaping FractionCompletedNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
500 | self.accessSemaphore.wait()
501 | defer { self.accessSemaphore.signal() }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:524:61: error: cannot find type 'OperationQueue' in scope
522 | }
523 |
524 | private func _addDescriptionNotification(onQueue queue: OperationQueue, notification: @escaping DescriptionNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
525 | let uuid = UUID()
526 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:545:78: error: cannot find type 'OperationQueue' in scope
543 | - returns: An opaque value that can be passed to removeDescriptionNotification() to de-register the notification.
544 | */
545 | @discardableResult public func addDescriptionNotification(onQueue queue: OperationQueue = .main, notification: @escaping DescriptionNotification) -> Any {
| `- error: cannot find type 'OperationQueue' in scope
546 | self.accessSemaphore.wait()
547 | defer { self.accessSemaphore.signal() }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:715:134: error: cannot find type 'OperationQueue' in scope
713 | This parameter defaults to the main operation queue.
714 | */
715 | public convenience init<Count: BinaryInteger>(totalUnitCount: Count, granularity: Double = CSProgress.defaultGranularity, queue: OperationQueue = .main) {
| `- error: cannot find type 'OperationQueue' in scope
716 | #if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
717 | let allowBridge = true
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:760:99: error: cannot find type 'OperationQueue' in scope
758 | This parameter defaults to the main operation queue.
759 | */
760 | public func becomeCurrent<Count: BinaryInteger>(withPendingUnitCount unitCount: Count, queue: OperationQueue = .main) {
| `- error: cannot find type 'OperationQueue' in scope
761 | CSProgress._current = ParentReference(progress: self, pendingUnitCount: UnitCount(unitCount))
762 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:404:33: error: cannot find 'DispatchSemaphore' in scope
402 | self.backing.removeChild(child)
403 | child.parent = nil
404 | child.accessSemaphore = DispatchSemaphore(value: 1)
| `- error: cannot find 'DispatchSemaphore' in scope
405 | }
406 |
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:686:20: error: cannot find 'Thread' in scope
684 | private static var _current: ParentReference? {
685 | get {
686 | return Thread.current.threadDictionary.object(forKey: self.currentProgressKey) as? ParentReference
| `- error: cannot find 'Thread' in scope
687 | }
688 | set {
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:690:17: error: cannot find 'Thread' in scope
688 | set {
689 | if let parentRef = newValue {
690 | Thread.current.threadDictionary.setObject(parentRef, forKey: self.currentProgressKey as NSString)
| `- error: cannot find 'Thread' in scope
691 | } else {
692 | Thread.current.threadDictionary.removeObject(forKey: self.currentProgressKey)
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:692:17: error: cannot find 'Thread' in scope
690 | Thread.current.threadDictionary.setObject(parentRef, forKey: self.currentProgressKey as NSString)
691 | } else {
692 | Thread.current.threadDictionary.removeObject(forKey: self.currentProgressKey)
| `- error: cannot find 'Thread' in scope
693 | }
694 | }
/host/spi-builder-workspace/Sources/CSProgress/CSProgress.swift:730:32: error: module 'Foundation' has no member named 'Progress'
728 | // Prevent double-attaching
729 | parent.resignCurrent()
730 | } else if allowBridge, Foundation.Progress.current() != nil {
| `- error: module 'Foundation' has no member named 'Progress'
731 | #if os(macOS) || os(iOS) || os(watchOS) || os(tvOS)
732 | // We have no way of knowing the current progress's pending unit count, so put a shim in between it and us
BUILD FAILURE 6.3 wasm