diff --git a/.github/workflows/cron-checks.yml b/.github/workflows/cron-checks.yml index 94dd40f87f0..576d7b57933 100644 --- a/.github/workflows/cron-checks.yml +++ b/.github/workflows/cron-checks.yml @@ -84,7 +84,7 @@ jobs: fastlane/test_output/logs/*/Diagnostics/**/*.txt fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/* - build-and-test-debug: + build-and-test-llc-debug: name: Test LLC (Debug) strategy: matrix: @@ -137,8 +137,61 @@ jobs: fastlane/test_output/logs/*/Diagnostics/**/*.txt fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/* + build-and-test-common-ui-debug: + name: Test CommonUI (Debug) + strategy: + matrix: + include: + - ios: "26.1" + device: "iPhone 17 Pro" + setup_runtime: false + - ios: "18.5" + device: "iPhone 16 Pro" + setup_runtime: false + - ios: "17.5" + device: "iPhone 15 Pro" + setup_runtime: true + - ios: "16.4" + device: "iPhone 14 Pro" + setup_runtime: true + - ios: "15.5" + device: "iPhone 13 Pro" + setup_runtime: true + fail-fast: false + runs-on: macos-15 + env: + XCODE_VERSION: "26.1.1" + IOS_SIMULATOR_DEVICE: "${{ matrix.device }} (${{ matrix.ios }})" + steps: + - uses: actions/checkout@v4.1.1 + - uses: ./.github/actions/bootstrap + env: + INSTALL_YEETD: true + INSTALL_IPSW: true + - uses: ./.github/actions/setup-ios-runtime + if: ${{ matrix.setup_runtime }} + timeout-minutes: 60 + with: + version: ${{ matrix.ios }} + device: ${{ matrix.device }} + - name: Run Common UI Tests (Debug) + run: bundle exec fastlane test_common_ui device:"${{ env.IOS_SIMULATOR_DEVICE }}" cron:true + timeout-minutes: 100 + - name: Parse xcresult + if: failure() + run: | + brew install chargepoint/xcparse/xcparse + xcparse logs fastlane/test_output/StreamChatCommonUI.xcresult fastlane/test_output/logs/ + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: Test Data Common UI (iOS ${{ matrix.ios }}) + path: | + fastlane/test_output/logs/*/Diagnostics/**/*.txt + fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/* + build-old-xcode: - name: Build LLC + UI (Old Xcode) + name: Build SDKs (Old Xcode) runs-on: macos-14 env: XCODE_VERSION: "16.1" @@ -157,6 +210,8 @@ jobs: timeout-minutes: 25 - name: Build UI run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true + - name: Build Common UI + run: bundle exec fastlane test_common_ui device:"iPhone 16" build_for_testing:true timeout-minutes: 25 - name: Build XCFrameworks run: bundle exec fastlane build_xcframeworks @@ -179,7 +234,7 @@ jobs: slack: name: Slack Report runs-on: ubuntu-latest - needs: [build-and-test-debug, test-e2e-debug, build-old-xcode, automated-code-review] + needs: [build-and-test-llc-debug, build-and-test-common-ui-debug, test-e2e-debug, build-old-xcode, automated-code-review] if: failure() && github.event_name == 'schedule' steps: - uses: 8398a7/action-slack@v3 diff --git a/.github/workflows/smoke-checks.yml b/.github/workflows/smoke-checks.yml index 0c00c44e5b3..cbf733a1e16 100644 --- a/.github/workflows/smoke-checks.yml +++ b/.github/workflows/smoke-checks.yml @@ -78,6 +78,9 @@ jobs: - name: Build UI run: bundle exec fastlane test_ui device:"iPhone 16" build_for_testing:true timeout-minutes: 25 + - name: Build Common UI + run: bundle exec fastlane test_common_ui device:"iPhone 16" build_for_testing:true + timeout-minutes: 25 test-llc-debug: name: Test LLC (Debug) @@ -150,6 +153,37 @@ jobs: path: | fastlane/test_output/snapshots + + test-common-ui-debug: + name: Test Common UI (Debug) + runs-on: macos-15 + needs: build-test-app-and-frameworks + steps: + - uses: actions/checkout@v4.1.1 + - uses: actions/download-artifact@v4 + with: + name: cache-derived-data + path: derived_data/Build/ + - uses: ./.github/actions/bootstrap + env: + INSTALL_YEETD: true + SKIP_SWIFT_BOOTSTRAP: true + - name: Run Common UI Tests (Debug) + run: bundle exec fastlane test_common_ui device:"${{ env.IOS_SIMULATOR_DEVICE }}" skip_build:true + timeout-minutes: 60 + - name: Parse xcresult + if: failure() + run: | + brew install chargepoint/xcparse/xcparse + xcparse logs fastlane/test_output/StreamChatCommonUI.xcresult fastlane/test_output/logs/ + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: Test Data Common UI + path: | + fastlane/test_output/logs/*/Diagnostics/**/*.txt + fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/* + allure_testops_launch: name: Launch Allure TestOps runs-on: macos-15 diff --git a/Gemfile.lock b/Gemfile.lock index a637bf2bebe..a8bfd2dcf93 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -166,7 +166,7 @@ GEM fastlane pry fastlane-plugin-sonarcloud_metric_kit (0.2.1) - fastlane-plugin-stream_actions (0.3.104) + fastlane-plugin-stream_actions (0.3.105) xctest_list (= 1.2.1) fastlane-plugin-versioning (0.7.1) fastlane-plugin-xcsize (1.2.0) @@ -387,7 +387,7 @@ DEPENDENCIES fastlane-plugin-create_xcframework fastlane-plugin-lizard fastlane-plugin-sonarcloud_metric_kit - fastlane-plugin-stream_actions (= 0.3.104) + fastlane-plugin-stream_actions (= 0.3.105) fastlane-plugin-versioning fastlane-plugin-xcsize (= 1.2.0) faye-websocket diff --git a/Sources/StreamChatCommonUI/StreamChatCommonUI.h b/Sources/StreamChatCommonUI/StreamChatCommonUI.h index b3da71d194f..06cf9189525 100644 --- a/Sources/StreamChatCommonUI/StreamChatCommonUI.h +++ b/Sources/StreamChatCommonUI/StreamChatCommonUI.h @@ -2,7 +2,7 @@ // StreamChatCommonUI.h // StreamChatCommonUI // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #import diff --git a/Sources/StreamChatCommonUI/Utils/Bundle+Extensions.swift b/Sources/StreamChatCommonUI/Utils/Bundle+Extensions.swift index 1968bd2e9ea..2527bec4eec 100644 --- a/Sources/StreamChatCommonUI/Utils/Bundle+Extensions.swift +++ b/Sources/StreamChatCommonUI/Utils/Bundle+Extensions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatCommonUI/Utils/UIFont+Extensions.swift b/Sources/StreamChatCommonUI/Utils/UIFont+Extensions.swift index 602be73d05e..36142c8f9a8 100644 --- a/Sources/StreamChatCommonUI/Utils/UIFont+Extensions.swift +++ b/Sources/StreamChatCommonUI/Utils/UIFont+Extensions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import UIKit diff --git a/Sources/StreamChatCommonUI/Utils/UIImage+Extensions.swift b/Sources/StreamChatCommonUI/Utils/UIImage+Extensions.swift index e3aa97ae776..72507540f1e 100644 --- a/Sources/StreamChatCommonUI/Utils/UIImage+Extensions.swift +++ b/Sources/StreamChatCommonUI/Utils/UIImage+Extensions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/Cache.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/Cache.swift index 7da85af29ca..57f876a208e 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/Cache.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/Cache.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCache.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCache.swift index 35cbd0e3264..0b4c1c2c548 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCache.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCache.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCaching.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCaching.swift index c90f5eeb131..f04c2146a6e 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCaching.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/DataCaching.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCache.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCache.swift index 6b23c5f0da9..948352732b5 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCache.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCache.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCaching.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCaching.swift index c5a2ef8bdee..c7860ab8ea4 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCaching.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Caching/ImageCaching.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/AssetType.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/AssetType.swift index 399455583cd..bd5cfc4b352 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/AssetType.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/AssetType.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoderRegistry.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoderRegistry.swift index 19ab60fa0c8..f5e8eeec030 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoderRegistry.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoderRegistry.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Default.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Default.swift index d2bc6ccd972..7ccda0f0f44 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Default.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Default.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if !os(macOS) diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Empty.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Empty.swift index ee1cb7fc31f..44969f92dd9 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Empty.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoders+Empty.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoding.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoding.swift index e26653390d7..eab88c50c04 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoding.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Decoding/ImageDecoding.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+Default.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+Default.swift index fdbde81fe38..bc3a388efd7 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+Default.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+Default.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+ImageIO.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+ImageIO.swift index 4382d22b114..cc336eeb771 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+ImageIO.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders+ImageIO.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import CoreGraphics diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders.swift index c0bfc910a14..616906f34d7 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoders.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoding.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoding.swift index b27bffc890a..2d912b67bff 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoding.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Encoding/ImageEncoding.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if canImport(UIKit) diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/ImageContainer.swift b/Sources/StreamChatUI/StreamNuke/Nuke/ImageContainer.swift index 7604693ac4c..95a8b4dc363 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/ImageContainer.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/ImageContainer.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if !os(watchOS) diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/ImageRequest.swift b/Sources/StreamChatUI/StreamNuke/Nuke/ImageRequest.swift index 50c95b8d7e4..53f9a831aae 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/ImageRequest.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/ImageRequest.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Combine diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/ImageResponse.swift b/Sources/StreamChatUI/StreamNuke/Nuke/ImageResponse.swift index 9f93a3f969e..2a27a8dba91 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/ImageResponse.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/ImageResponse.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/ImageTask.swift b/Sources/StreamChatUI/StreamNuke/Nuke/ImageTask.swift index 8179ea504be..c526a816100 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/ImageTask.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/ImageTask.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // @preconcurrency import Combine diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Atomic.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Atomic.swift index b1f4f5b810d..39ba273db30 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Atomic.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Atomic.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/DataPublisher.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/DataPublisher.swift index d60761e271f..24e1e5c0ea6 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/DataPublisher.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/DataPublisher.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // @preconcurrency import Combine diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Extensions.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Extensions.swift index 6ca08bb872e..a213d5b62ff 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Extensions.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Extensions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import CryptoKit diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Graphics.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Graphics.swift index 5a5f728ff5e..5d73315c18f 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Graphics.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Graphics.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImagePublisher.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImagePublisher.swift index 4683a99fa5f..f23a3fea6c4 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImagePublisher.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImagePublisher.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Combine diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImageRequestKeys.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImageRequestKeys.swift index a56af520382..92f49333e7a 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImageRequestKeys.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ImageRequestKeys.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/LinkedList.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/LinkedList.swift index 55fa7c99350..465adfe777b 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/LinkedList.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/LinkedList.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Log.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Log.swift index b99facf8f59..e66f8f17e7d 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Log.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Log.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Operation.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Operation.swift index 0646ec80fc2..3c3bb6d086e 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Operation.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/Operation.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/RateLimiter.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/RateLimiter.swift index 03a0e9c907f..266c57561d4 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/RateLimiter.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/RateLimiter.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ResumableData.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ResumableData.swift index 520629c6063..874c2ecfd4a 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ResumableData.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Internal/ResumableData.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoader.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoader.swift index 336994bc5b6..fc0ee77a9e6 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoader.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoader.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoading.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoading.swift index 0311db5b3e8..d17d08285d8 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoading.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Loading/DataLoading.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Cache.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Cache.swift index 37084cc2a0b..47d264df7f2 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Cache.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Cache.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Configuration.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Configuration.swift index e05441e339a..888f84e31bd 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Configuration.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Configuration.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Delegate.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Delegate.swift index afc6d0e8718..46c04e16c93 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Delegate.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline+Delegate.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline.swift index 0091ebc300e..2245cab37e5 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Pipeline/ImagePipeline.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Combine diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Prefetching/ImagePrefetcher.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Prefetching/ImagePrefetcher.swift index a9bfa1f0399..f4310cfeca7 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Prefetching/ImagePrefetcher.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Prefetching/ImagePrefetcher.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageDecompression.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageDecompression.swift index ae43bdb906a..5050ac1f6aa 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageDecompression.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageDecompression.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessing.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessing.swift index 36653e269ac..9a7a70256d6 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessing.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessing.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessingOptions.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessingOptions.swift index 2d86bfd7b03..d4bd7f3e483 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessingOptions.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessingOptions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Anonymous.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Anonymous.swift index 306642bf480..113cdb08641 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Anonymous.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Anonymous.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Circle.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Circle.swift index 7a453c47eae..152d455e395 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Circle.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Circle.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Composition.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Composition.swift index 4c693aa892d..3878b60fa8b 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Composition.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Composition.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+CoreImage.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+CoreImage.swift index 985c23216c6..ce6517b3ef0 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+CoreImage.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+CoreImage.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if os(iOS) || os(tvOS) || os(macOS) || os(visionOS) diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+GaussianBlur.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+GaussianBlur.swift index 6c46a0c64a5..8ce7253f2a3 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+GaussianBlur.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+GaussianBlur.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if os(iOS) || os(tvOS) || os(macOS) || os(visionOS) diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Resize.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Resize.swift index 974f41db31a..4f16f5e1423 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Resize.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+Resize.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import CoreGraphics diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+RoundedCorners.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+RoundedCorners.swift index cdbf56fd3f3..236f2439d3a 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+RoundedCorners.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors+RoundedCorners.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import CoreGraphics diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors.swift index 668d89b9886..33e703ae311 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Processing/ImageProcessors.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncPipelineTask.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncPipelineTask.swift index a6888b74334..19ea9a364eb 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncPipelineTask.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncPipelineTask.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncTask.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncTask.swift index f373f025ba7..ec849203269 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncTask.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/AsyncTask.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalData.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalData.swift index ca3fa2d5d22..568137a1bbb 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalData.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalData.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalImage.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalImage.swift index a3efccc213a..b716a91a32f 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalImage.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchOriginalImage.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchWithPublisher.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchWithPublisher.swift index 5a165ceac25..52909e3d530 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchWithPublisher.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskFetchWithPublisher.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadData.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadData.swift index ea2cfc2993f..7db6431883c 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadData.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadData.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadImage.swift b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadImage.swift index 9b132323bcf..a62dfcd83fd 100644 --- a/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadImage.swift +++ b/Sources/StreamChatUI/StreamNuke/Nuke/Tasks/TaskLoadImage.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageLoadingOptions.swift b/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageLoadingOptions.swift index 11d8826b7d3..1e26e1826ef 100644 --- a/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageLoadingOptions.swift +++ b/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageLoadingOptions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageViewExtensions.swift b/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageViewExtensions.swift index 0b9fe3b0d65..7043fc0a223 100644 --- a/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageViewExtensions.swift +++ b/Sources/StreamChatUI/StreamNuke/NukeExtensions/ImageViewExtensions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // import Foundation diff --git a/Sources/StreamChatUI/StreamSwiftyGif/SwiftyGifManager.swift b/Sources/StreamChatUI/StreamSwiftyGif/SwiftyGifManager.swift index bd87c1d5867..268f2df9496 100755 --- a/Sources/StreamChatUI/StreamSwiftyGif/SwiftyGifManager.swift +++ b/Sources/StreamChatUI/StreamSwiftyGif/SwiftyGifManager.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // // diff --git a/Sources/StreamChatUI/StreamSwiftyGif/UIImage+SwiftyGif.swift b/Sources/StreamChatUI/StreamSwiftyGif/UIImage+SwiftyGif.swift index 20f79fb8e82..f0a3cf06987 100755 --- a/Sources/StreamChatUI/StreamSwiftyGif/UIImage+SwiftyGif.swift +++ b/Sources/StreamChatUI/StreamSwiftyGif/UIImage+SwiftyGif.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if !os(macOS) diff --git a/Sources/StreamChatUI/StreamSwiftyGif/UIImageView+SwiftyGif.swift b/Sources/StreamChatUI/StreamSwiftyGif/UIImageView+SwiftyGif.swift index b31ef7cdabc..7263334795f 100755 --- a/Sources/StreamChatUI/StreamSwiftyGif/UIImageView+SwiftyGif.swift +++ b/Sources/StreamChatUI/StreamSwiftyGif/UIImageView+SwiftyGif.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // #if !os(macOS) diff --git a/Sources/StreamChatUI/Utils/Extensions/StreamCore+Extensions.swift b/Sources/StreamChatUI/Utils/Extensions/StreamCore+Extensions.swift index cddf4b1976e..2ca42cfa7b8 100644 --- a/Sources/StreamChatUI/Utils/Extensions/StreamCore+Extensions.swift +++ b/Sources/StreamChatUI/Utils/Extensions/StreamCore+Extensions.swift @@ -1,5 +1,5 @@ // -// Copyright © 2025 Stream.io Inc. All rights reserved. +// Copyright © 2026 Stream.io Inc. All rights reserved. // @_exported import StreamCore diff --git a/StreamChat.xcodeproj/project.pbxproj b/StreamChat.xcodeproj/project.pbxproj index 0f1e8aac002..11d1e4b7626 100644 --- a/StreamChat.xcodeproj/project.pbxproj +++ b/StreamChat.xcodeproj/project.pbxproj @@ -475,7 +475,7 @@ 7908820625432B7200896F03 /* StreamChatUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 790881FD25432B7200896F03 /* StreamChatUI.framework */; }; 7908823325432C6400896F03 /* StreamChatUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 7908823125432C6400896F03 /* StreamChatUI.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7908824A25432CC600896F03 /* StreamChatStressTestPlan.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 7908824725432CC600896F03 /* StreamChatStressTestPlan.xctestplan */; }; - 7908824B25432CC600896F03 /* StreamChatTestPlan.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 7908824825432CC600896F03 /* StreamChatTestPlan.xctestplan */; }; + 7908824B25432CC600896F03 /* StreamChat.xctestplan in Resources */ = {isa = PBXBuildFile; fileRef = 7908824825432CC600896F03 /* StreamChat.xctestplan */; }; 7908829C2546D95A00896F03 /* FlagMessagePayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7908829A2546D95A00896F03 /* FlagMessagePayload.swift */; }; 790882A22546D95F00896F03 /* FlagMessagePayload_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7908829B2546D95A00896F03 /* FlagMessagePayload_Tests.swift */; }; 790882DF25486B6800896F03 /* ChatChannelListVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 790882BF25486ADB00896F03 /* ChatChannelListVC.swift */; }; @@ -672,6 +672,9 @@ 829CD5C52848C2EA003C3877 /* ParticipantRobot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 829CD5C32848C25F003C3877 /* ParticipantRobot.swift */; }; 829CD5C72848C71B003C3877 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 829CD5C62848C71B003C3877 /* Settings.swift */; }; 829CD5CC2848C8D6003C3877 /* BackendRobot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 829CD5CB2848C8D6003C3877 /* BackendRobot.swift */; }; + 82A5F45A2F0FDA2600D88FC4 /* StreamSwiftTestHelpers in Frameworks */ = {isa = PBXBuildFile; productRef = 82A5F4592F0FDA2600D88FC4 /* StreamSwiftTestHelpers */; }; + 82A5F45B2F0FDA2600D88FC4 /* StreamChatTestTools.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 793060E625778896005CF846 /* StreamChatTestTools.framework */; }; + 82A5F45C2F0FDB1100D88FC4 /* StreamChatUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 790881FD25432B7200896F03 /* StreamChatUI.framework */; platformFilter = ios; }; 82A6F5C027E2031000F4A2F6 /* Reactions_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82A6F5BF27E2031000F4A2F6 /* Reactions_Tests.swift */; }; 82BA52EF27E1EF7B00951B87 /* MessageList_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BA52EE27E1EF7B00951B87 /* MessageList_Tests.swift */; }; 82BE0ACD2C009A17008DA9DC /* BlockedUserDetails.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BE0ACC2C009A17008DA9DC /* BlockedUserDetails.swift */; }; @@ -3316,7 +3319,7 @@ 7908823125432C6400896F03 /* StreamChatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StreamChatUI.h; sourceTree = ""; }; 7908823225432C6400896F03 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7908824725432CC600896F03 /* StreamChatStressTestPlan.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StreamChatStressTestPlan.xctestplan; sourceTree = ""; }; - 7908824825432CC600896F03 /* StreamChatTestPlan.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StreamChatTestPlan.xctestplan; sourceTree = ""; }; + 7908824825432CC600896F03 /* StreamChat.xctestplan */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = StreamChat.xctestplan; sourceTree = ""; }; 7908824925432CC600896F03 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7908829A2546D95A00896F03 /* FlagMessagePayload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FlagMessagePayload.swift; sourceTree = ""; }; 7908829B2546D95A00896F03 /* FlagMessagePayload_Tests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FlagMessagePayload_Tests.swift; sourceTree = ""; }; @@ -3540,6 +3543,7 @@ 829CD5C32848C25F003C3877 /* ParticipantRobot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParticipantRobot.swift; sourceTree = ""; }; 829CD5C62848C71B003C3877 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; 829CD5CB2848C8D6003C3877 /* BackendRobot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackendRobot.swift; sourceTree = ""; }; + 82A5F4582F0FC2C200D88FC4 /* StreamChatCommonUI.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = StreamChatCommonUI.xctestplan; sourceTree = ""; }; 82A6F5BF27E2031000F4A2F6 /* Reactions_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Reactions_Tests.swift; sourceTree = ""; }; 82AA16CF28A400F8009816CD /* StreamChatFlakyTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = StreamChatFlakyTests.xctestplan; sourceTree = ""; }; 82AD02BC27D8E44B000611B7 /* StreamTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamTestCase.swift; sourceTree = ""; }; @@ -4081,7 +4085,7 @@ ACF73D7726CFE07900372DC0 /* Cancellable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cancellable.swift; sourceTree = ""; }; AD0169CA25CAEDC0009EBAD2 /* yoda.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = yoda.jpg; sourceTree = ""; }; AD0169F325CAF689009EBAD2 /* vader.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vader.jpg; sourceTree = ""; }; - AD016A3325CB0AE6009EBAD2 /* StreamChatUITestPlan.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = StreamChatUITestPlan.xctestplan; sourceTree = ""; }; + AD016A3325CB0AE6009EBAD2 /* StreamChatUI.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = StreamChatUI.xctestplan; sourceTree = ""; }; AD050B8C265D5E09006649A5 /* QuotedChatMessageView+SwiftUI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "QuotedChatMessageView+SwiftUI.swift"; sourceTree = ""; }; AD050BA7265D600B006649A5 /* QuotedChatMessageView+SwiftUI_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "QuotedChatMessageView+SwiftUI_Tests.swift"; sourceTree = ""; }; AD053B992B335854003612B6 /* DemoComposerVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoComposerVC.swift; sourceTree = ""; }; @@ -4944,7 +4948,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 82A5F45C2F0FDB1100D88FC4 /* StreamChatUI.framework in Frameworks */, + 82A5F45B2F0FDA2600D88FC4 /* StreamChatTestTools.framework in Frameworks */, AD5D7BC82EFA26FF004A63E2 /* StreamChatCommonUI.framework in Frameworks */, + 82A5F45A2F0FDA2600D88FC4 /* StreamSwiftTestHelpers in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5513,7 +5520,7 @@ BDDD1E952632C4C900BA007B /* Components+SwiftUI_Tests.swift */, 64B75AFF2631700500A466D1 /* ChatMessage_Tests.swift */, 7849AF9225F2479A007817D4 /* UITestsEnvironmentSetup.swift */, - AD016A3325CB0AE6009EBAD2 /* StreamChatUITestPlan.xctestplan */, + AD016A3325CB0AE6009EBAD2 /* StreamChatUI.xctestplan */, A3D9D68A27EDE53600725066 /* Extensions */, A3D9D68D27EDE5AD00725066 /* Helpers */, A3D9D69227EDE85A00725066 /* Mocks */, @@ -5538,7 +5545,7 @@ A382131D2805C8AC0068D30E /* TestsEnvironmentSetup.swift */, 7908824725432CC600896F03 /* StreamChatStressTestPlan.xctestplan */, 82AA16CF28A400F8009816CD /* StreamChatFlakyTests.xctestplan */, - 7908824825432CC600896F03 /* StreamChatTestPlan.xctestplan */, + 7908824825432CC600896F03 /* StreamChat.xctestplan */, A364D09127D0BECE0029857A /* APIClient */, A364D08B27D0BD650029857A /* Config */, A364D0A527D127E00029857A /* Controllers */, @@ -8622,6 +8629,7 @@ BDDD1EAB2632E32000BA007B /* AppearanceProvider_Tests.swift */, BDDD1EAD2632E6C200BA007B /* Appearance+SwiftUI_Tests.swift */, E7D68C4C26B1AAB500FCF3B8 /* Localization_Tests.swift */, + 82A5F4582F0FC2C200D88FC4 /* StreamChatCommonUI.xctestplan */, AD5D7BD02EFA27BB004A63E2 /* Formatters */, AD5D7BD12EFA27DA004A63E2 /* Utils */, ); @@ -9965,6 +9973,7 @@ ); name = StreamChatCommonUITests; packageProductDependencies = ( + 82A5F4592F0FDA2600D88FC4 /* StreamSwiftTestHelpers */, ); productName = StreamChatCommonUITests; productReference = AD5D7BC42EFA26FF004A63E2 /* StreamChatCommonUITests.xctest */; @@ -10402,7 +10411,7 @@ buildActionMask = 2147483647; files = ( 7908824A25432CC600896F03 /* StreamChatStressTestPlan.xctestplan in Resources */, - 7908824B25432CC600896F03 /* StreamChatTestPlan.xctestplan in Resources */, + 7908824B25432CC600896F03 /* StreamChat.xctestplan in Resources */, 4042967A29FAC7770089126D /* test_audio_file.m4a in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -14802,7 +14811,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 26.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.getstream.StreamChatCommonUITests; @@ -14829,7 +14838,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 26.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.getstream.StreamChatCommonUITests; @@ -14855,7 +14864,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Tests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 26.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = io.getstream.StreamChatCommonUITests; @@ -15549,6 +15558,11 @@ package = A3D15D8C27E9D839006B34D7 /* XCRemoteSwiftPackageReference "stream-chat-swift-test-helpers" */; productName = StreamSwiftTestHelpers; }; + 82A5F4592F0FDA2600D88FC4 /* StreamSwiftTestHelpers */ = { + isa = XCSwiftPackageProductDependency; + package = A3D15D8C27E9D839006B34D7 /* XCRemoteSwiftPackageReference "stream-chat-swift-test-helpers" */; + productName = StreamSwiftTestHelpers; + }; 82F714AA2B078AE800442A74 /* StreamSwiftTestHelpers */ = { isa = XCSwiftPackageProductDependency; package = A3D15D8C27E9D839006B34D7 /* XCRemoteSwiftPackageReference "stream-chat-swift-test-helpers" */; diff --git a/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChat.xcscheme b/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChat.xcscheme index edb7cc829f7..33c4ce206c2 100644 --- a/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChat.xcscheme +++ b/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChat.xcscheme @@ -29,7 +29,7 @@ shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChatTests.xcscheme b/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChatTests.xcscheme index 8d68ee8fed4..ab5eee6a1be 100644 --- a/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChatTests.xcscheme +++ b/StreamChat.xcodeproj/xcshareddata/xcschemes/StreamChatTests.xcscheme @@ -13,7 +13,7 @@ shouldUseLaunchSchemeArgsEnv = "YES"> diff --git a/Tests/StreamChatCommonUITests/StreamChatCommonUI.xctestplan b/Tests/StreamChatCommonUITests/StreamChatCommonUI.xctestplan new file mode 100644 index 00000000000..0ecfae7dbd4 --- /dev/null +++ b/Tests/StreamChatCommonUITests/StreamChatCommonUI.xctestplan @@ -0,0 +1,31 @@ +{ + "configurations" : [ + { + "id" : "B5F761A2-3827-404C-891C-0BFC1023720B", + "name" : "Test Scheme Action", + "options" : { + + } + } + ], + "defaultOptions" : { + "environmentVariableEntries" : [ + { + "key" : "CI", + "value" : "TRUE" + } + ], + "performanceAntipatternCheckerEnabled" : true + }, + "testTargets" : [ + { + "parallelizable" : true, + "target" : { + "containerPath" : "container:StreamChat.xcodeproj", + "identifier" : "AD5D7BC32EFA26FF004A63E2", + "name" : "StreamChatCommonUITests" + } + } + ], + "version" : 1 +} diff --git a/Tests/StreamChatTests/StreamChatTestPlan.xctestplan b/Tests/StreamChatTests/StreamChat.xctestplan similarity index 100% rename from Tests/StreamChatTests/StreamChatTestPlan.xctestplan rename to Tests/StreamChatTests/StreamChat.xctestplan diff --git a/Tests/StreamChatUITests/StreamChatUI.xctestplan b/Tests/StreamChatUITests/StreamChatUI.xctestplan new file mode 100644 index 00000000000..9bad3fe4b45 --- /dev/null +++ b/Tests/StreamChatUITests/StreamChatUI.xctestplan @@ -0,0 +1,38 @@ +{ + "configurations" : [ + { + "id" : "FFB61C0B-5B74-421B-BFB6-C1FC63FEF62F", + "name" : "Configuration 1", + "options" : { + + } + } + ], + "defaultOptions" : { + "codeCoverage" : { + "targets" : [ + { + "containerPath" : "container:StreamChat.xcodeproj", + "identifier" : "790881FC25432B7200896F03", + "name" : "StreamChatUI" + } + ] + }, + "environmentVariableEntries" : [ + { + "key" : "CI", + "value" : "TRUE" + } + ] + }, + "testTargets" : [ + { + "target" : { + "containerPath" : "container:StreamChat.xcodeproj", + "identifier" : "7908820425432B7200896F03", + "name" : "StreamChatUITests" + } + } + ], + "version" : 1 +} diff --git a/Tests/StreamChatUITests/StreamChatUITestPlan.xctestplan b/Tests/StreamChatUITests/StreamChatUITestPlan.xctestplan deleted file mode 100644 index 2d5c705b0c2..00000000000 --- a/Tests/StreamChatUITests/StreamChatUITestPlan.xctestplan +++ /dev/null @@ -1,37 +0,0 @@ -{ - "configurations": [ - { - "id": "FFB61C0B-5B74-421B-BFB6-C1FC63FEF62F", - "name": "Configuration 1", - "options": { - } - } - ], - "defaultOptions": { - "codeCoverage": { - "targets": [ - { - "containerPath": "container:StreamChat.xcodeproj", - "identifier": "790881FC25432B7200896F03", - "name": "StreamChatUI" - } - ] - }, - "environmentVariableEntries": [ - { - "key": "CI", - "value": "TRUE" - } - ] - }, - "testTargets": [ - { - "target": { - "containerPath": "container:StreamChat.xcodeproj", - "identifier": "7908820425432B7200896F03", - "name": "StreamChatUITests" - } - } - ], - "version": 1 -} \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7ffbe4aa6a6..1aea109b183 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -309,12 +309,13 @@ desc 'Runs tests in Debug config' lane :test do |options| next unless is_check_required(sources: sources_matrix[:llc], force_check: @force_check) - update_testplan_on_ci(path: 'Tests/StreamChatTests/StreamChatFlakyTests.xctestplan') + scheme = 'StreamChat' + update_testplan_on_ci(path: "Tests/#{scheme}Tests/#{scheme}FlakyTests.xctestplan") scan( project: xcode_project, - scheme: 'StreamChat', - testplan: 'StreamChatFlakyTests', + scheme: scheme, + testplan: "#{scheme}FlakyTests", clean: is_localhost, derived_data_path: derived_data_path, cloned_source_packages_path: source_packages_path, @@ -326,12 +327,12 @@ lane :test do |options| next if options[:build_for_testing] - update_testplan_on_ci(path: 'Tests/StreamChatTests/StreamChatTestPlan.xctestplan') + update_testplan_on_ci(path: "Tests/#{scheme}Tests/#{scheme}.xctestplan") scan_options = { project: xcode_project, - scheme: 'StreamChat', - testplan: 'StreamChatTestPlan', + scheme: scheme, + testplan: scheme, derived_data_path: derived_data_path, cloned_source_packages_path: source_packages_path, devices: options[:device], @@ -640,14 +641,14 @@ lane :test_ui do |options| next unless is_check_required(sources: sources_matrix[:ui], force_check: @force_check) record_mode = options[:record].to_s == 'true' + scheme = 'StreamChatUI' remove_snapshots if record_mode - - update_testplan_on_ci(path: 'Tests/StreamChatUITests/StreamChatUITestPlan.xctestplan') + update_testplan_on_ci(path: "Tests/#{scheme}Tests/#{scheme}.xctestplan") scan( project: xcode_project, - scheme: 'StreamChatUI', - testplan: 'StreamChatUITestPlan', + scheme: scheme, + testplan: scheme, clean: is_localhost, derived_data_path: derived_data_path, cloned_source_packages_path: source_packages_path, @@ -676,6 +677,28 @@ lane :test_ui do |options| end end +desc 'Runs common ui tests in Debug config' +lane :test_common_ui do |options| + next unless is_check_required(sources: sources_matrix[:common_ui], force_check: @force_check) + + scheme = 'StreamChatCommonUI' + update_testplan_on_ci(path: "Tests/#{scheme}Tests/#{scheme}.xctestplan") + + scan( + project: xcode_project, + scheme: scheme, + testplan: scheme, + clean: is_localhost, + derived_data_path: derived_data_path, + cloned_source_packages_path: source_packages_path, + build_for_testing: options[:build_for_testing], + skip_build: options[:skip_build], + result_bundle: true, + devices: options[:device], + number_of_retries: options[:cron] ? 3 : 2 + ) +end + private_lane :match_macos do %w[development appstore].each do |type| match( @@ -817,6 +840,7 @@ lane :sources_matrix do e2e: ['Sources', 'StreamChatUITestsAppUITests', 'StreamChatUITestsApp', 'TestTools/StreamChatTestMockServer', xcode_project], llc: ['Sources/StreamChat', 'Tests/StreamChatTests', 'Tests/Shared', 'TestTools/StreamChatTestTools', xcode_project], ui: ['Sources', 'Tests/StreamChatUITests', 'Tests/Shared', xcode_project], + common_ui: ['Sources', 'Tests/StreamChatCommonUITests', 'Tests/Shared', xcode_project], sample_apps: ['Sources', 'Examples', 'DemoApp', xcode_project], integration: ['Sources', 'Integration', xcode_project], ruby: ['fastlane', 'Gemfile', 'Gemfile.lock'], diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index b446b8b1f87..da7a81273e1 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -5,5 +5,5 @@ gem 'fastlane-plugin-versioning' gem 'fastlane-plugin-create_xcframework' gem 'fastlane-plugin-sonarcloud_metric_kit' -gem 'fastlane-plugin-stream_actions', '0.3.104' +gem 'fastlane-plugin-stream_actions', '0.3.105' gem 'fastlane-plugin-xcsize', '1.2.0'