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
Add compatible Xcodes option to the TuistConfig #476
Conversation
SwiftLint found issuesWarnings
Rubocop violations
Generated by 🚫 Danger |
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.
Nice work @pepibumur!
I think it's valuable to have the notion of compatible Xcode versions for the generation process, especially as we start leveraging more Xcode 11 features soon! Features like #394 may require Tuist to warn users that their current version Xcode doesn't support certain features that will be in the generated project.
On a slightly philosophical note, I wonder if the use case here may be more akin to environment validation (environmentLinter.lint(using: config
) which could deserve its own command as opposed to being part of the project generation process. I can see the values both ways, I guess it's something for us to keep in mind.
b0338b7
to
8165204
Compare
This is a really good point. I'm inclined to rename |
✅ Renamed |
Codecov Report
@@ Coverage Diff @@
## master #476 +/- ##
=========================================
Coverage ? 92.41%
=========================================
Files ? 348
Lines ? 17803
Branches ? 0
=========================================
Hits ? 16452
Misses ? 1351
Partials ? 0
Continue to review full report at Codecov.
|
Short description 📝
Xcode doesn't support binding projects to a specific version of Xcode. Since new versions of Xcode come with new versions of Swift, which often break projects, it might be useful for teams to have a way that prevents developers in the team from using the projects with a version of Xcode that is not compatible with the project in hands.
Solution 📦
Add a new setting to the
TuistConfig
object:When a project gets generated, Tuist runs a validation against the Xcode version selected in the system. If the project is not compatible, Tuist yields the following output:
Implementation 👩💻👨💻
XcodeController
toTuistCore
.CompatibleXcodeVersions
toTuistGenerator
andProjectDescription
.TuistConfigLinter
and run it as part of the project generation.