Orange-OpenSource / ouds-ios

A SwiftUI components library with code examples for Orange Unified Design System
https://ios.unified-design-system.orange.com/
MIT License
5 stars 1 forks source link

[Tooling] Migration from CocoaPods to SPM for SwiftFormat and SwiftLint #44

Closed pylapp closed 1 month ago

pylapp commented 2 months ago

SwftFormat and SwiftLint can be integrated through SPM as plugin, so we may get rid of CocoaPods

pylapp commented 1 month ago

Need further investigations. Every solutions have a pitfall, and no of them is better than others. It seems using SPM to plug these tools prevents to call their binairies with custom options in build phases. Using Xcode pluging or stuff like that may prevent us to know and freeze the exact version of the tools, so it will prevent us ti have reproducible builds in the CI/CD chain.

Installing with brew does not allow us to freeze version with a lock. Installing inside Xcode prevent us to know and freeze the exact version. Installing using SPM seems to prevent us to call binaries through build phases with custom options in command line. Interesting Reddit thread here.

We may want also to have the same solution to integrate both SwiftFormat and SwiftLint. CocoaPods is battletested and provides locks. So even if it implies to have two dependency manager (SPM for project and CocoaPods for tooling), responsibilities are splitted.

Maybe we should work later on prooves of concepts or prototypes to get rid of CocoaPods, but it is not prioritary at this moment.

pylapp commented 1 month ago

cc @ludovic35