mirror of
https://github.com/realm/SwiftLint.git
synced 2026-05-07 20:12:49 +00:00
76708d88f7
Xcode has supported Swift Package Manager projects natively since Xcode 11, which has been out for over a year, where you can use Xcode by having it open the `Package.swift` manifest rather than a `.xcodeproj` or `.xcworkspace`. I've been primarily developing SwiftLint in Xcode using this approach for over a year, and despite a few nitpicks I have, it's been a joy to use. So I'd like to completely remove the Xcode project along with things that support it: * `SwiftLint.xcworkspace`/`SwiftLint.xcodeproj`: Neither of these are needed if we use `xed .` or `xed Package.swift` to develop SwiftLint in Xcode. * `Cartfile`/`Cartfile.private`/`Cartfile.resolved`/`.gitmodules`/`Carthage/`: These were used to manage dependencies as git submodules for use in the Xcode workspace, but that's no longer necessary if Xcode delegates to SwiftPM to manage dependencies for us. * Some scripts can be simplified, cleaned up or even completely removed. * **Reduce duplication:** Rather than update dependencies or files in multiples places, there will only be the package manifest and the Podfile * **Reduce merge conflicts:** This hasn't been too bad, but it's occasionally a pain when trying to land old PRs * **Reduce development overhead:** No need to manually make sure that files in the Xcode project are sorted alphabetically * **Reduce clone time:** No need to run `git submodules update --init --recursive` anymore I think this breaks Carthage users that pull in SwiftLintFramework as a dependency in a Cartfile. However I can't find any references to [`SwiftLintFramework` in any `Cartfile` files on GitHub](https://github.com/search?q=swiftlintframework+filename%3ACartfile&type=Code&ref=advsearch&l=&l=) so this doesn't appear to be worth continuing to maintain. Resolves https://github.com/realm/SwiftLint/issues/3412