Generation warnings are easy to miss. They show up at the end of tuist generate, but by the time you’re looking at your freshly opened Xcode project, those warnings are long forgotten.
Starting now, you can promote specific generation warnings to errors in your Tuist.swift, causing tuist generate to fail immediately when they occur:
let tuist = Tuist(
project: .tuist(
generationOptions: .options(
warningsAsErrors: .only([.outdatedDependencies, .mismatchedConfigurations])
)
)
)
Because the configuration lives in the manifest, platform teams can enforce these policies across the whole team.
Warning categories
The following warning categories are available:
outdatedDependencies– resolved dependencies don’t match the manifeststaticSideEffects– multiple graph branches include the same static libraryschemeTargetNotFound– a scheme references a target that doesn’t existmismatchedConfigurations– targets in the graph have inconsistent build configurationsduplicateProductNames– multiple targets produce the same product name
You can promote all of them at once with .all, pick specific ones with .only([...]), or keep the current behavior with .none (the default).
The full design is in the RFC and the implementation in PR #9574.