Skip to content
Closed
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
2 changes: 1 addition & 1 deletion .github/workflows/smoke-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
if: failure()
run: |
brew install chargepoint/xcparse/xcparse
xcparse logs fastlane/test_output/StreamCore.xcresult fastlane/test_output/logs/
xcparse logs fastlane/test_output/StreamCoreTests/StreamCore-Package.xcresult fastlane/test_output/logs/
- uses: actions/upload-artifact@v4
if: failure()
with:
Expand Down
13 changes: 0 additions & 13 deletions .slather.yml

This file was deleted.

23 changes: 11 additions & 12 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This repo hosts StreamCore, the internal Swift SDK that provides shared low-leve

- Language: Swift 6.0 (strict concurrency enabled — `swift-tools-version:6.0`)
- Primary distribution: Swift Package Manager (SPM)
- Project file: `StreamCore.xcodeproj` (used for builds and tests)
- Project file: `Package.swift` only (no Xcode project; CI builds and tests the package the way product SDKs consume it)
- Xcode: 16.x or newer (Apple Silicon supported)
- Platforms / deployment targets: iOS 13+ (see `Package.swift`; do not lower targets without approval)
- CI: GitHub Actions + Fastlane (see `.github/workflows/smoke-checks.yml`)
Expand All @@ -36,21 +36,19 @@ Scripts/ # Helper scripts

### New files & target membership

When creating new source or resource files, add them to the correct Xcode target(s). Update the project (e.g. `project.pbxproj`) so each new file is included in the appropriate target's "Compile Sources" (or "Copy Bundle Resources" for assets). Match the target(s) used by sibling files in the same directory. Omitting target membership will cause build failures or unused files.
SPM picks up new files from the target's directory under `Sources/` or `Tests/`. There is no project file to update. Resources must be declared in `Package.swift`.

### Local setup (SPM)

1. Open the repository in Xcode (root contains `Package.swift` and `StreamCore.xcodeproj`).
2. Resolve packages.
3. Choose an iOS Simulator (e.g., iPhone 17 Pro) and Build.
1. Open `Package.swift` in Xcode.
2. Choose an iOS Simulator (e.g., iPhone 17 Pro) and Build.

### Schemes

Available shared schemes (under `StreamCore.xcodeproj/xcshareddata/xcschemes/`):
Xcode generates the schemes from `Package.swift`:

- `StreamCore` — builds the core framework
- `StreamCoreUI` — builds the shared UI framework
- `StreamAttachments` — builds the attachments feature module
- `StreamCore-Package` — builds all targets and runs all test targets (CI uses it with `-only-testing`)
- `StreamCore`, `StreamCoreUI`, `StreamAttachments` — build a single library

Agents must query existing schemes before invoking xcodebuild.

Expand All @@ -60,16 +58,17 @@ Build (Debug):

```
xcodebuild \
-project StreamCore.xcodeproj \
-scheme StreamCoreUI \
-scheme StreamCore-Package \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
-configuration Debug build
```

Run tests:

```
bundle exec fastlane test
bundle exec fastlane test_core device:"iPhone 17 Pro"
bundle exec fastlane test_ui device:"iPhone 17 Pro"
bundle exec fastlane test_attachments device:"iPhone 17 Pro"
```

### Linting & formatting
Expand Down
1 change: 0 additions & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ gem 'fastlane', group: :fastlane_dependencies
gem 'json'
gem 'lefthook'
gem 'rubocop', '1.38', group: :rubocop_dependencies
gem 'slather'

eval_gemfile('fastlane/Pluginfile')

Expand Down
26 changes: 9 additions & 17 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
GIT
remote: https://github.com/GetStream/fastlane-plugin-stream_actions.git
revision: 28f65c387a7619367c240b6eecde2775658ebe6b
branch: optional-sdk-names
specs:
fastlane-plugin-stream_actions (0.4.17)
xctest_list (= 1.2.1)

GEM
remote: https://rubygems.org/
specs:
Expand Down Expand Up @@ -51,7 +59,6 @@ GEM
cork
nap
open4 (~> 1.3)
clamp (1.3.3)
coderay (1.1.3)
colored (1.2)
colored2 (3.1.2)
Expand Down Expand Up @@ -164,9 +171,6 @@ GEM
bundler
fastlane
pry
fastlane-plugin-stream_actions (0.4.9)
xctest_list (= 1.2.1)
fastlane-plugin-versioning (0.7.1)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
gh_inspector (1.1.3)
Expand Down Expand Up @@ -231,7 +235,6 @@ GEM
method_source (1.1.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
mini_portile2 (2.8.9)
minitest (5.25.5)
multi_json (1.17.0)
multipart-post (2.4.1)
Expand All @@ -240,9 +243,6 @@ GEM
nap (1.1.0)
naturally (2.3.0)
nkf (0.2.0)
nokogiri (1.18.9)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
octokit (10.0.0)
faraday (>= 1, < 3)
sawyer (~> 0.9)
Expand Down Expand Up @@ -307,12 +307,6 @@ GEM
simctl (1.6.10)
CFPropertyList
naturally
slather (2.8.5)
CFPropertyList (>= 2.2, < 4)
activesupport
clamp (~> 1.3)
nokogiri (>= 1.14.3)
xcodeproj (~> 1.27)
sysrandom (1.0.5)
terminal-notifier (2.0.0)
terminal-table (3.0.2)
Expand Down Expand Up @@ -349,15 +343,13 @@ DEPENDENCIES
danger-commit_lint
fastlane
fastlane-plugin-lizard
fastlane-plugin-stream_actions (= 0.4.9)
fastlane-plugin-versioning
fastlane-plugin-stream_actions!
json
lefthook
plist
rubocop (= 1.38)
rubocop-performance
rubocop-require_tools
slather
xctest_list

BUNDLED WITH
Expand Down
1 change: 1 addition & 0 deletions Githubfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ export IPSW_VERSION='3.1.592'
export SWIFT_LINT_VERSION='0.59.1'
export SWIFT_FORMAT_VERSION='0.58.2'
export SWIFT_GEN_VERSION='6.5.1'
export XCRESULTPARSER_VERSION='2.2.0'
12 changes: 11 additions & 1 deletion Scripts/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# This script will:
# - install SwiftLint, SwiftFormat, SwiftGen
# - link git hooks
# - install sonar-scanner if `INSTALL_SONAR` environment variable is provided
# - install sonar-scanner and xcresultparser if `INSTALL_SONAR` environment variable is provided
# If you get `zsh: permission denied: ./bootstrap.sh` error, please run `chmod +x bootstrap.sh` first

function puts {
Expand Down Expand Up @@ -68,6 +68,16 @@ if [[ ${INSTALL_SONAR-default} == true ]]; then
cd ..
mv "fastlane/sonar-scanner-${SONAR_VERSION}-macosx-x64/" fastlane/sonar/
chmod +x ./fastlane/sonar/bin/sonar-scanner

puts "Install xcresultparser v${XCRESULTPARSER_VERSION}"
DOWNLOAD_URL="https://github.com/a7ex/xcresultparser/releases/download/${XCRESULTPARSER_VERSION}/xcresultparser.zip"
DOWNLOAD_PATH="/tmp/xcresultparser-${XCRESULTPARSER_VERSION}.zip"
BIN_PATH="/usr/local/bin/xcresultparser"
wget "$DOWNLOAD_URL" -O "$DOWNLOAD_PATH"
unzip -o "$DOWNLOAD_PATH" -d /tmp/xcresultparser-${XCRESULTPARSER_VERSION}
sudo mv /tmp/xcresultparser-${XCRESULTPARSER_VERSION}/product/xcresultparser "$BIN_PATH"
sudo chmod +x "$BIN_PATH"
xcresultparser --version
fi

if [[ ${INSTALL_YEETD-default} == true ]]; then
Expand Down
22 changes: 0 additions & 22 deletions Sources/StreamAttachments/Info.plist

This file was deleted.

22 changes: 0 additions & 22 deletions Sources/StreamCore/Info.plist

This file was deleted.

2 changes: 1 addition & 1 deletion Sources/StreamCore/Utils/SystemEnvironment+Version.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ import Foundation

enum SystemEnvironment {
/// A Stream Core version.
public static let version: String = "0.16.0"
public static let version: String = "0.16.1-test"
}
22 changes: 0 additions & 22 deletions Sources/StreamCoreUI/Info.plist

This file was deleted.

Loading
Loading