Adopting Swift 6 from a Swift 5 Tuist project

If you are using Tuist with Swift 5 and want to adopt Swift 6, you might need to make some changes to your project to get everything working. The following discussion in Slack prompted this topic, which aims to capture all necessary changes.

PackageDescription version whose models don’t conform to Sendable

If you get is not concurrency-safe when editing the Package.swift of your project. You can either:

  • Update the // swift-tools-versions:5.xx to // swift-tools-versions:6.0 to the latest version to consume models that are concurrency-safe.
  • Import the models with @preconcurrency import PackageDescription

We recommend the former, but note that you might need to go through some breaking changes introduced in the PackageDescription models.