-
Notifications
You must be signed in to change notification settings - Fork 9
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
[ABW-2484] Mono target #842
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
"revision" : "33f7e93be5d4ec027d42af77a8ec4680d1862ad2", | ||
"version" : "11.6.4" | ||
"revision" : "93c8dc78fbc0aa3538a0db460eb389d4180af242", | ||
"version" : "11.3.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wanted downgrade?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- unintentional, will fix
@@ -1,12 +1,4 @@ | |||
import AppPreferencesClient | |||
import AsyncExtensions | |||
import ClientPrelude | |||
import ComposableArchitecture // actually CasePaths... but CI fails if we do `import CasePaths` 🤷♂️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor - would this still fail if importing just CasePaths with this PR>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nope, I dont think so, I can try it post this PR!
Jira ABW-2484
Description
This PR completely removes SPM - Swift Package Manager - and moves to a pure
.xcodeproj
Xcode based solution, and not as a multiplatform app, but as a iOS only app. What this means is that all the source code is put in one single (app) target, instead of ~100 targets we had before.The only behaviour changes of this PR is using the changes here #811
Otherwise the app should behave exactly as it did before.
Rationale
Why do this? Lets start with answering the question: "Why did we use many targets and SPM to begin with?" - we did it because we based our architecture on Isowords app, which felt logical since we use Pointfree's TCA, and Isowords is their showcase app for TCA.
It has now been 15 months since our first commit and we have been six iOS developers in this code base, and we have all felt the pains that super-many-targets architecture entails, which is:
Result
1.
clean build run
time is reduced by 50%2.
clean build test
time on CI is reduced by 55%3. Logs in CI is reduced by is reduced by 55%
4. Effect of drastic reduce CI run time, is a lot of saved money for RDX works 🤑
Additional Changes
#if os(iOS)
which we have talked about a lotswiftformat
config to useswift 5.9
which changed from{}()
->{}
in lots of places, and also removed superfluousreturn
.mac
from fastlaneDecimal
in GatewayAPI folder to useFoundation.Decimal
, manually, meaning this change will be overriden once we run generate GW models. We should fix this in a coming PR.