Skip to content

Conversation

@MartinCardozo-SDK
Copy link
Contributor

@MartinCardozo-SDK MartinCardozo-SDK commented Nov 28, 2025

Swift 6.0 compatibility

Main changes:

  • Components with manually handled global mutable state marked as @unchecked Sendable (by doing this, we avoid using Actors and duplicating components).
  • Global state components that could be inmutable are now inmutable.
  • Added nonisolated(unsafe) on static variables where concurrency is handled manually.
  • Static variables specifically used for testing are now inside DEBUG macros.
  • Components that are sendable and inmutable are marked as Sendable.
  • @preconcurrency added to frameworks that are not updated to the new concurrency system.
  • Unnecessary returns removed.
  • On SplitComponentFactory, we now have a macro solving the discrepancy between Swift 5 and Swift 6 casting behavior.
  • Flaky test fixed.
  • Local Dual Testing.

GitHub:

  • Runners images updated (OS, XCode & Simulator versions).

SPM:

  • swiftLanguageModes added.

Extra Notes

For more context, refer to: Swift 6 Adaptation Spec

@MartinCardozo-SDK MartinCardozo-SDK self-assigned this Nov 28, 2025
@MartinCardozo-SDK MartinCardozo-SDK marked this pull request as ready for review November 28, 2025 16:04
@MartinCardozo-SDK MartinCardozo-SDK requested a review from a team as a code owner November 28, 2025 16:04
@devops-split
Copy link

SDK Readiness Test Results ⚠️

Metric Name Stat Swift6_baseline Change (%) development
SDK_READY Avg 207 ms +23% 168 ms
SDK_READY P50 196 ms +23% 160 ms
SDK_READY P95 226 ms +14% 199 ms
SDK_READY_FROM_CACHE Avg 30 ms +7% 28 ms
SDK_READY_FROM_CACHE P50 29 ms +16% 25 ms
SDK_READY_FROM_CACHE P95 39 ms -5% 41 ms

ios-test-mock

  • Mock Server: true

  • Iterations: 30

@sonarqube-pull-requests
Copy link

Quality Gate failed Quality Gate failed

Failed conditions
1 New issue

See analysis details on SonarQube

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE SonarQube for IDE

@devops-split
Copy link

SDK Readiness Test Results ⚠️

Metric Name Stat Swift6_baseline Change (%) development
SDK_READY Avg 201 ms +16% 174 ms
SDK_READY P50 198 ms +20% 165 ms
SDK_READY P95 251 ms +26% 199 ms
SDK_READY_FROM_CACHE Avg 28 ms +8% 26 ms
SDK_READY_FROM_CACHE P50 28 ms +8% 26 ms
SDK_READY_FROM_CACHE P95 37 ms +9% 34 ms

ios-test-mock

  • Mock Server: true

  • Iterations: 30

@devops-split
Copy link

SDK Readiness Test Results ✅

Metric Name Stat Swift6_baseline Change (%) development
SDK_READY Avg 188 ms +3% 182 ms
SDK_READY P50 183 ms +1% 181 ms
SDK_READY P95 227 ms +8% 210 ms
SDK_READY_FROM_CACHE Avg 26 ms -10% 29 ms
SDK_READY_FROM_CACHE P50 26 ms -7% 28 ms
SDK_READY_FROM_CACHE P95 32 ms -20% 40 ms

ios-test-mock

  • Mock Server: true

  • Iterations: 30

@devops-split
Copy link

SDK Readiness Test Results ⚠️

Metric Name Stat Swift6_baseline Change (%) development
SDK_READY Avg 208 ms +27% 164 ms
SDK_READY P50 202 ms +33% 152 ms
SDK_READY P95 229 ms +14% 200 ms
SDK_READY_FROM_CACHE Avg 29 ms +12% 26 ms
SDK_READY_FROM_CACHE P50 28 ms +12% 25 ms
SDK_READY_FROM_CACHE P95 41 ms +11% 37 ms

ios-test-mock

  • Mock Server: true

  • Iterations: 30

@devops-split
Copy link

SDK Readiness Test Results ⚠️

Metric Name Stat Swift6_baseline Change (%) development
SDK_READY Avg 214 ms +24% 173 ms
SDK_READY P50 205 ms +27% 162 ms
SDK_READY P95 239 ms -6% 255 ms
SDK_READY_FROM_CACHE Avg 29 ms +7% 27 ms
SDK_READY_FROM_CACHE P50 28 ms +8% 26 ms
SDK_READY_FROM_CACHE P95 38 ms -5% 40 ms

ios-test-mock

  • Mock Server: true

  • Iterations: 30

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants