Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swift6 Migration #684

Open
wants to merge 7 commits into
base: develop
Choose a base branch
from
Open

Swift6 Migration #684

wants to merge 7 commits into from

Conversation

ipavlidakis
Copy link
Contributor

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change follows zero ⚠️ policy (required)
  • This change should receive manual QA
  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (tutorial, CMS)

@ipavlidakis ipavlidakis added the enhancement New feature or request label Feb 21, 2025
@ipavlidakis ipavlidakis self-assigned this Feb 21, 2025
Copy link

github-actions bot commented Feb 21, 2025

1 Warning
⚠️ Big PR

Generated by 🚫 Danger

@Stream-SDK-Bot
Copy link
Collaborator

Stream-SDK-Bot commented Feb 24, 2025

SDK Size

title develop branch diff status
StreamVideo 7.56 MB 7.58 MB +17 KB 🟢
StreamVideoSwiftUI 2.07 MB 2.07 MB +1 KB 🟢
StreamVideoUIKit 2.21 MB 2.21 MB +1 KB 🟢
StreamWebRTC 9.85 MB 9.85 MB 0 KB 🟢

@ipavlidakis ipavlidakis marked this pull request as ready for review February 25, 2025 13:35
@ipavlidakis ipavlidakis requested a review from a team as a code owner February 25, 2025 13:35
@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
Copy link

Public Interface

+ @propertyWrapper @available(iOS, introduced: 13, obsoleted: 14) public final class BackportStateObject: DynamicProperty, @unchecked Sendable  
+ 
+   public var wrappedValue: ObjectType
+   public var projectedValue: ObservedObject<ObjectType>.Wrapper
+   
+ 
+   public init(wrappedValue thunk: @autoclosure @escaping () -> ObjectType)
+   
+ 
+   nonisolated public func update()

+ extension Call: Identifiable  
+ 
+   public var id: String

- @propertyWrapper @available(iOS, introduced: 13, obsoleted: 14) public struct BackportStateObject: DynamicProperty  
- 
-   public var wrappedValue: ObjectType
-   public var projectedValue: ObservedObject<ObjectType>.Wrapper
-   
- 
-   public init(wrappedValue thunk: @autoclosure @escaping () -> ObjectType)
-   
- 
-   public mutating func update()

- open class StreamDeviceOrientationAdapter: ObservableObject  
+ open class StreamDeviceOrientationAdapter: ObservableObject, @unchecked Sendable  
-   @MainActor public static let defaultProvider: Provider
+   public static let defaultProvider: Provider
-   @MainActor public init(notificationCenter: NotificationCenter = .default,_ provider: @escaping Provider = StreamDeviceOrientationAdapter.defaultProvider)
+   public init(notificationCenter: NotificationCenter = .default,_ provider: @escaping Provider = StreamDeviceOrientationAdapter.defaultProvider)

- public class VideoRenderer: RTCMTLVideoView  
+ public class VideoRenderer: RTCMTLVideoView, @unchecked Sendable  

- extension AVAudioSession.Mode: CustomStringConvertible  
+ extension AVAudioSession.Mode  

 public enum UUIDProviderKey: InjectionKey  
-   public static var currentValue: UUIDProviding
+   nonisolated public static var currentValue: UUIDProviding

- public class ClientError: Error, ReflectiveStringConvertible  
+ public class ClientError: Error, ReflectiveStringConvertible, @unchecked Sendable  
-   public struct Location: Equatable  
+   public struct Location: Equatable, Sendable  

- open class BroadcastSampleHandler: RPBroadcastSampleHandler  
+ open class BroadcastSampleHandler: RPBroadcastSampleHandler, @unchecked Sendable  

 extension VideoRenderer  
-   public func handleViewRendering(for participant: CallParticipant,onTrackSizeUpdate: @escaping (CGSize, CallParticipant) -> Void)
+   public func handleViewRendering(for participant: CallParticipant,onTrackSizeUpdate: @escaping @Sendable(CGSize, CallParticipant) -> Void)

 public struct CallParticipantMenuAction: Identifiable  
-   public var action: (String) -> Void
+   public var action: @MainActor @Sendable(String) -> Void

 @propertyWrapper @available(iOS, introduced: 13, obsoleted: 14) public struct PublishedObject  
-   public static subscript<EnclosingSelf: ObservableObject>(_enclosingInstance observed: EnclosingSelf,wrapped wrappedKeyPath: ReferenceWritableKeyPath<EnclosingSelf, Value>,storage storageKeyPath: ReferenceWritableKeyPath<EnclosingSelf, PublishedObject>)-> Value where EnclosingSelf.ObjectWillChangePublisher == ObservableObjectPublisher
+   public static subscript<EnclosingSelf: ObservableObject & Sendable>(_enclosingInstance observed: EnclosingSelf,wrapped wrappedKeyPath: ReferenceWritableKeyPath<EnclosingSelf, Value>,storage storageKeyPath: ReferenceWritableKeyPath<EnclosingSelf, PublishedObject>)-> Value where EnclosingSelf.ObjectWillChangePublisher == ObservableObjectPublisher
-   public static subscript<EnclosingSelf: ObservableObject>(_enclosingInstance observed: EnclosingSelf,projected wrappedKeyPath: KeyPath<EnclosingSelf, Publisher>,storage storageKeyPath: ReferenceWritableKeyPath<EnclosingSelf, PublishedObject>)-> Publisher where EnclosingSelf.ObjectWillChangePublisher == ObservableObjectPublisher
+   public static subscript<EnclosingSelf: ObservableObject & Sendable>(_enclosingInstance observed: EnclosingSelf,projected wrappedKeyPath: KeyPath<EnclosingSelf, Publisher>,storage storageKeyPath: ReferenceWritableKeyPath<EnclosingSelf, PublishedObject>)-> Publisher where EnclosingSelf.ObjectWillChangePublisher == ObservableObjectPublisher

- public struct LogDetails  
+ public struct LogDetails: Sendable  

- public class Unknown: ClientError
+ public final class Unknown: ClientError, @unchecked Sendable

- public class InvalidURL: ClientError
+ public final class InvalidURL: ClientError, @unchecked Sendable

- public class WebSocket: ClientError
+ public class WebSocket: ClientError, @unchecked Sendable

- public struct CallSortField: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral  
+ public struct CallSortField: RawRepresentable, Codable, Hashable, ExpressibleByStringLiteral, Sendable  

 extension CallKitService: InjectionKey  
-   public static var currentValue: CallKitService
+   nonisolated public static var currentValue: CallKitService

- extension RTCSdpType: CustomStringConvertible  
+ extension RTCSdpType  

 extension CallIconStyle  
-   public static let primary
+   public nonisolated static let primary
-   public static let secondary
+   public nonisolated static let secondary
-   public static let secondaryActive
+   public nonisolated static let secondaryActive
-   public static let transparent
+   public nonisolated static let transparent
-   public static let disabled
+   public nonisolated static let disabled
-   public static let destructive
+   public nonisolated static let destructive

- public enum LayoutAnchorName  
+ @MainActor public enum LayoutAnchorName  

- @available(iOS 15.0, *) public final class BlurBackgroundVideoFilter: VideoFilter  
+ @available(iOS 15.0, *) public final class BlurBackgroundVideoFilter: VideoFilter, @unchecked Sendable  

- public class EventDecoding: ClientError
+ public class EventDecoding: ClientError, @unchecked Sendable

- public class ConsoleLogDestination: BaseLogDestination  
+ public final class ConsoleLogDestination: BaseLogDestination, @unchecked Sendable  
-   override open func write(message: String)
+   override public func write(message: String)

- public class NetworkError: ClientError
+ public final class NetworkError: ClientError, @unchecked Sendable

- public class MissingPermissions: ClientError
+ public final class MissingPermissions: ClientError, @unchecked Sendable

 public class Appearance  
-   public static var localizationProvider: (_ key: String, _ table: String) -> String
+   public nonisolated static var localizationProvider: (_ key: String, _ table: String) -> String

- public class InvalidToken: ClientError
+ public class InvalidToken: ClientError, @unchecked Sendable

- public class NetworkNotAvailable: ClientError
+ public final class NetworkNotAvailable: ClientError, @unchecked Sendable

- public protocol LogDestination
+ public protocol LogDestination: Sendable

- @available(iOS 15.0, *) public final class ImageBackgroundVideoFilter: VideoFilter  
+ @available(iOS 15.0, *) public final class ImageBackgroundVideoFilter: VideoFilter, @unchecked Sendable  

- public enum ConnectionStatus: Equatable  
+ public enum ConnectionStatus: Equatable, Sendable  

 public class StreamVideo: ObservableObject, @unchecked Sendable  
-   public class State: ObservableObject  
+   public final class State: ObservableObject, @unchecked Sendable  

- extension RTCIceConnectionState: CustomStringConvertible  
+ extension RTCIceConnectionState  

- extension AVAudioSession.Category: CustomStringConvertible  
+ extension AVAudioSession.Category  

 extension CallKitAdapter: InjectionKey  
-   public static var currentValue: CallKitAdapter
+   nonisolated public static var currentValue: CallKitAdapter

- open class CallKitPushNotificationAdapter: NSObject, PKPushRegistryDelegate, ObservableObject  
+ open class CallKitPushNotificationAdapter: NSObject, PKPushRegistryDelegate, ObservableObject, @unchecked Sendable  
-   @MainActor open func pushRegistry(_ registry: PKPushRegistry,didReceiveIncomingPushWith payload: PKPushPayload,for type: PKPushType,completion: @escaping () -> Void)
+   nonisolated open func pushRegistry(_ registry: PKPushRegistry,didReceiveIncomingPushWith payload: PKPushPayload,for type: PKPushType,completion: @escaping () -> Void)
-   public struct Content  
+   public struct Content: Sendable  

 extension Publisher  
-   public func sinkTask(storeIn disposableBag: DisposableBag? = nil,identifier: String? = nil,receiveCompletion: @escaping ((Subscribers.Completion<Failure>) -> Void) = { _ in },receiveValue: @escaping ((Output) async throws -> Void))-> AnyCancellable
+   public func sinkTask(storeIn disposableBag: DisposableBag? = nil,identifier: String? = nil,receiveCompletion: @escaping (@Sendable(Subscribers.Completion<Failure>) -> Void) = { _ in },receiveValue: @escaping (@Sendable(Output) async throws -> Void))-> AnyCancellable
-   public func sinkTask(queue: SerialActorQueue,receiveCompletion: @escaping ((Subscribers.Completion<Failure>) -> Void) = { _ in },receiveValue: @escaping ((Output) async throws -> Void))-> AnyCancellable
+   public func sinkTask(queue: SerialActorQueue,receiveCompletion: @escaping (@Sendable(Subscribers.Completion<Failure>) -> Void) = { _ in },receiveValue: @escaping (@Sendable(Output) async throws -> Void))-> AnyCancellable

- public final class LastParticipantAutoLeavePolicy: ParticipantAutoLeavePolicy  
+ public final class LastParticipantAutoLeavePolicy: ParticipantAutoLeavePolicy, @unchecked Sendable  

- public final class Coordinator
+ public final class Coordinator: @unchecked Sendable

- extension RTCPeerConnectionState: CustomStringConvertible  
+ extension RTCPeerConnectionState  

- extension AVAudioSession.PortOverride: CustomStringConvertible  
+ extension AVAudioSession.PortOverride  

 extension CallKitPushNotificationAdapter: InjectionKey  
-   public static var currentValue: CallKitPushNotificationAdapter
+   nonisolated public static var currentValue: CallKitPushNotificationAdapter

- public class UnsupportedEventType: ClientError  
+ public class UnsupportedEventType: ClientError, @unchecked Sendable  

- open class BaseLogDestination: LogDestination  
+ open class BaseLogDestination: LogDestination, @unchecked Sendable  

 open class CallKitService: NSObject, CXProviderDelegate, @unchecked Sendable  
-   @MainActor open func reportIncomingCall(_ cid: String,localizedCallerName: String,callerId: String,hasVideo: Bool = false,completion: @escaping (Error?) -> Void)
+   open func reportIncomingCall(_ cid: String,localizedCallerName: String,callerId: String,hasVideo: Bool = false,completion: @escaping (Error?) -> Void)

- public protocol ParticipantAutoLeavePolicy
+ public protocol ParticipantAutoLeavePolicy: Sendable

- extension RTCSignalingState: CustomStringConvertible  
+ extension RTCSignalingState  

- public class OpenISO8601DateFormatter: DateFormatter  
+ public class OpenISO8601DateFormatter: DateFormatter, @unchecked Sendable  

 public enum LogConfig  
-   public static var identifier
+   nonisolated public static var identifier
-   public static var level: LogLevel
+   nonisolated public static var level: LogLevel
-   public static var dateFormatter: DateFormatter
+   nonisolated public static var dateFormatter: DateFormatter
-   public static var formatters
+   nonisolated public static var formatters
-   public static var showDate
+   nonisolated public static var showDate
-   public static var showLevel
+   nonisolated public static var showLevel
-   public static var showIdentifier
+   nonisolated public static var showIdentifier
-   public static var showThreadName
+   nonisolated public static var showThreadName
-   public static var showFileName
+   nonisolated public static var showFileName
-   public static var showLineNumber
+   nonisolated public static var showLineNumber
-   public static var showFunctionName
+   nonisolated public static var showFunctionName
-   public static var subsystems: LogSubsystem
+   nonisolated public static var subsystems: LogSubsystem
-   public static var destinationTypes: [LogDestination.Type]
+   nonisolated public static var destinationTypes: [LogDestination.Type]

- public final class DefaultParticipantAutoLeavePolicy: ParticipantAutoLeavePolicy  
+ public final class DefaultParticipantAutoLeavePolicy: ParticipantAutoLeavePolicy, @unchecked Sendable  

- public struct LogSubsystem: OptionSet, CustomStringConvertible  
+ public struct LogSubsystem: OptionSet, CustomStringConvertible, Sendable  

 extension VideoCapturePolicy: InjectionKey  
-   public static var currentValue: VideoCapturePolicy
+   nonisolated public static var currentValue: VideoCapturePolicy

- extension RTCRtpTransceiverDirection: CustomStringConvertible  
+ extension RTCRtpTransceiverDirection  

 extension StreamAppStateAdapter: InjectionKey  
-   public static var currentValue: StreamAppStateAdapter
+   nonisolated public static var currentValue: StreamAppStateAdapter

- public protocol RejectionReasonProviding
+ public protocol RejectionReasonProviding: Sendable

- extension AVAudioSession.CategoryOptions: CustomStringConvertible  
+ extension AVAudioSession.CategoryOptions  

 extension CMVideoDimensions  
-   public static var full
+   public static let full
-   public static var half
+   public static let half
-   public static var quarter
+   public static let quarter

- extension AVCaptureDevice.Position: CustomStringConvertible  
+ extension AVCaptureDevice.Position  

- public class Unexpected: ClientError
+ public final class Unexpected: ClientError, @unchecked Sendable

- public enum RecordingState  
+ public enum RecordingState: Sendable  

- extension AVAudioSession.RouteChangeReason: CustomStringConvertible  
+ extension AVAudioSession.RouteChangeReason  

- public enum StreamDeviceOrientation: Equatable  
+ public enum StreamDeviceOrientation: Equatable, Sendable  
+   public var deviceOrientation: UIDeviceOrientation
+   public var captureVideoOrientation: AVCaptureVideoOrientation

 public enum UtilsKey: InjectionKey  
-   public static var currentValue: Utils
+   public nonisolated static var currentValue: Utils

- public enum LogLevel: Int  
+ public enum LogLevel: Int, Sendable  

- extension RTCIceGatheringState: CustomStringConvertible  
+ extension RTCIceGatheringState  

- public final class SerialActorQueue  
+ public final class SerialActorQueue: Sendable  

@GetStream GetStream deleted a comment from github-actions bot Feb 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants