Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions .github/actions/bootstrap/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,6 @@ runs:
path: ~/.mint
key: ${{ env.IMAGE }}-mint-${{ hashFiles('**/Mintfile') }}
restore-keys: ${{ env.IMAGE }}-mint-
- name: Cache brew
uses: actions/cache@v4
id: brew-cache
with:
path: |
~/Library/Caches/Homebrew/mint*
~/Library/Caches/Homebrew/xcparse*
~/Library/Caches/Homebrew/sonar-scanner*
~/Library/Caches/Homebrew/google-cloud-sdk*
key: ${{ env.IMAGE }}-brew-${{ hashFiles('**/Brewfile.lock.json') }}
restore-keys: ${{ env.IMAGE }}-brew-
- uses: ./.github/actions/ruby-cache
- uses: ./.github/actions/xcode-cache
- run: ./Scripts/bootstrap.sh
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/cron-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ jobs:
INSTALL_ALLURE: true
INSTALL_YEETD: true
SKIP_MINT_BOOTSTRAP: true
SKIP_BREW_BOOTSTRAP: true
- uses: ./.github/actions/setup-ios-runtime
if: ${{ matrix.setup_runtime }}
timeout-minutes: 60
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/smoke-checks-llc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Smoke Checks LLC

on:
push:
branches:
- develop
- main

pull_request:
paths-ignore:
- 'README.md'
- 'CHANGELOG.md'

workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
HOMEBREW_NO_INSTALL_CLEANUP: 1 # Disable cleanup for homebrew, we don't need it on CI
IOS_SIMULATOR_DEVICE: "iPhone 16 Pro (18.1)"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PR_NUM: ${{ github.event.pull_request.number }}

jobs:
test-llc-debug:
name: Test LLC (Debug)
runs-on: macos-15
steps:
- uses: actions/checkout@v4.1.1
with:
fetch-depth: 100
- uses: ./.github/actions/bootstrap
env:
INSTALL_YEETD: true
INSTALL_SONAR: true
- uses: ./.github/actions/python-cache
- name: Run LLC Tests (Debug)
run: bundle exec fastlane test device:"${{ env.IOS_SIMULATOR_DEVICE }}"
timeout-minutes: 60
- name: Run Sonar analysis
run: bundle exec fastlane sonar_upload
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PR_NUMBER: ${{ github.event.number }}
- uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
text: "You shall not pass!"
job_name: "Test LLC (Debug)"
fields: message,commit,author,action,workflow,job,took
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
MATRIX_CONTEXT: ${{ toJson(matrix) }}
if: ${{ github.event_name == 'push' && failure() }}
- name: Parse xcresult
if: failure()
run: |
brew install chargepoint/xcparse/xcparse
xcparse logs fastlane/test_output/StreamChat.xcresult fastlane/test_output/logs/
- uses: actions/upload-artifact@v4
if: failure()
with:
name: Test Data LLC
path: |
fastlane/test_output/logs/*/Diagnostics/**/*.txt
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/*
56 changes: 3 additions & 53 deletions .github/workflows/smoke-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ name: Smoke Checks

on:
pull_request:
branches:
- '**'
paths-ignore:
- 'README.md'
- 'CHANGELOG.md'

workflow_dispatch:
inputs:
Expand Down Expand Up @@ -83,55 +84,6 @@ jobs:
run: bundle exec fastlane test_ui device:"iPhone 13" build_for_testing:true
timeout-minutes: 25

test-llc-debug:
name: Test LLC (Debug)
runs-on: macos-15
if: ${{ github.event.inputs.snapshots != 'true' }}
needs: build-test-app-and-frameworks
steps:
- uses: actions/checkout@v4.1.1
with:
fetch-depth: 100
- uses: actions/download-artifact@v4
with:
name: cache-derived-data
path: derived_data/Build/
- uses: ./.github/actions/bootstrap
env:
INSTALL_YEETD: true
- uses: ./.github/actions/python-cache
- name: Run LLC Tests (Debug)
run: bundle exec fastlane test device:"${{ env.IOS_SIMULATOR_DEVICE }}" skip_build:true
timeout-minutes: 60
- name: Run Sonar analysis
run: bundle exec fastlane sonar_upload
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PR_NUMBER: ${{ github.event.number }}
- uses: 8398a7/action-slack@v3
with:
status: ${{ job.status }}
text: "You shall not pass!"
job_name: "Test LLC (Debug)"
fields: message,commit,author,action,workflow,job,took
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
MATRIX_CONTEXT: ${{ toJson(matrix) }}
if: ${{ github.event_name == 'push' && failure() }}
- name: Parse xcresult
if: failure()
run: |
brew install chargepoint/xcparse/xcparse
xcparse logs fastlane/test_output/StreamChat.xcresult fastlane/test_output/logs/
- uses: actions/upload-artifact@v4
if: failure()
with:
name: Test Data LLC
path: |
fastlane/test_output/logs/*/Diagnostics/**/*.txt
fastlane/test_output/logs/*/Diagnostics/simctl_diagnostics/DiagnosticReports/*

test-ui-debug:
name: Test UI (Debug)
runs-on: macos-15
Expand All @@ -147,7 +99,6 @@ jobs:
env:
INSTALL_YEETD: true
SKIP_MINT_BOOTSTRAP: true
SKIP_BREW_BOOTSTRAP: true
- name: Run UI Tests (Debug)
run: bundle exec fastlane test_ui device:"${{ env.IOS_SIMULATOR_DEVICE }}" skip_build:true record:${{ github.event.inputs.snapshots }}
timeout-minutes: 120
Expand Down Expand Up @@ -209,7 +160,6 @@ jobs:
INSTALL_ALLURE: true
INSTALL_YEETD: true
SKIP_MINT_BOOTSTRAP: true
SKIP_BREW_BOOTSTRAP: true
- name: Run UI Tests (Debug)
run: bundle exec fastlane test_e2e_mock device:"${{ env.IOS_SIMULATOR_DEVICE }}" batch:'${{ matrix.batch }}' test_without_building:true
timeout-minutes: 100
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-mock-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
steps:
- uses: actions/checkout@v4.1.1
- uses: ./.github/actions/bootstrap
- uses: ./.github/actions/python-cache
- uses: ./.github/actions/ruby-cache
- run: bundle exec fastlane sync_mock_server
timeout-minutes: 5
env:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ fastlane/allurectl
fastlane/xcresults
fastlane/recordings
fastlane/performance
fastlane/sonar
fastlane/mint
**/metrics/
StreamChatCore.framework.coverage.txt
StreamChatCoreTests.xctest.coverage.txt
Expand Down
2 changes: 0 additions & 2 deletions Brewfile

This file was deleted.

124 changes: 0 additions & 124 deletions Brewfile.lock.json

This file was deleted.

12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### 🔄 Changed

# [4.72.0](https://github.com/GetStream/stream-chat-swift/releases/tag/4.72.0)
_February 04, 2025_

### 🔄 Changed
- Revert 'Improve performance of model conversions with large extra data' [#3576](https://github.com/GetStream/stream-chat-swift/pull/3576)

# [4.71.0](https://github.com/GetStream/stream-chat-swift/releases/tag/4.71.0)
_January 28, 2025_

## StreamChat
### ✅ Added
- Expose `Event.name` to easily check which event it is [#3569](https://github.com/GetStream/stream-chat-swift/pull/3569)
### 🐞 Fixed
- Calling async `connectUser()` methods can sometimes throw `CurrentUserDoesNotExist()` unexpectedly [#3565](https://github.com/GetStream/stream-chat-swift/pull/3565)
- Fix creating controllers from background threads leading to rare crashes [#3566](https://github.com/GetStream/stream-chat-swift/pull/3566)
- Add support for transforming Messages, Channels and Members [#3564](https://github.com/GetStream/stream-chat-swift/pull/3564)
- Add `ChatClientConfig.modelsTransformer`
- Add `ChatMessage.replacing()`
- Add `ChatChannel.replacing()`
- Add `ChatChannelMember.replacing()`
### 🐞 Fixed
- Calling async `connectUser()` methods can sometimes throw `CurrentUserDoesNotExist()` unexpectedly [#3565](https://github.com/GetStream/stream-chat-swift/pull/3565)
- Fix creating controllers from background threads leading to rare crashes [#3566](https://github.com/GetStream/stream-chat-swift/pull/3566)
- Fix hard deleted message events not being reported in `EventsController` [#3569](https://github.com/GetStream/stream-chat-swift/pull/3569)
- Fix hard deleting a parent message not deleting its replies [#3569](https://github.com/GetStream/stream-chat-swift/pull/3569)

Expand Down
15 changes: 12 additions & 3 deletions DemoApp/StreamChat/DemoAppCoordinator+DemoApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -92,21 +92,30 @@ extension DemoAppCoordinator {
onDisconnect: @escaping () -> Void
) -> UIViewController {
// Construct channel list query
let sorting: [Sorting<ChannelListSortingKey>] = [
Sorting(key: .pinnedAt),
Sorting(key: .default)
]
let channelListQuery: ChannelListQuery
switch user {
case let .credentials(userCredentials):
channelListQuery = .init(
filter: .containMembers(userIds: [userCredentials.id])
filter: .containMembers(userIds: [userCredentials.id]),
sort: sorting
)
case let .custom(userCredentials):
guard let userId = userCredentials?.id else {
fallthrough
}
channelListQuery = .init(
filter: .containMembers(userIds: [userId])
filter: .containMembers(userIds: [userId]),
sort: sorting
)
case .anonymous, .guest:
channelListQuery = .init(filter: .equal(.type, to: .messaging))
channelListQuery = .init(
filter: .equal(.type, to: .messaging),
sort: sorting
)
}

let tuple = makeChannelVCs(for: cid)
Expand Down
2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ group :fastlane_dependencies do
end

group :sinatra_dependencies do
gem 'eventmachine'
gem 'faye-websocket'
gem 'puma'
gem 'rackup'
gem 'stream-chat-ruby', '3.0.0'
Expand Down
Loading
Loading