Skip to main content
Marek Fořt

Dogfooding tuist

Dogfooding tuist - that is using tuist to develop tuist - has been an idea brewing for some time. With this PR it will finally become a reality. The driving force behind this was to make tuist better. The fact that when you now develop a feature, you will also interact with tuist means that you can catch bugs earlier. It also means that each contributor will have additional experience of working on a complex project generated by tuist. It should be said as well that not many users use tuist to develop macOS CLI applications - but tuist is a large CLI application, so we can be more confident of recommending tuist for this type of application since each contributor will now test this scenario.

Doing the work to dogfood tuist would be good enough just for these improvements alone if the contributors' development experience would stay the same or would detriment just slightly. But we have been hitting some quirks of SPM Xcode integration for some time and therefore using a generated Xcode project will make for a much smoother experience. Need to add a file? We've got you covered, you don't have to wait two minutes 'till a package is resolved. Besides that, contributors will now be able to use all the tuist features we have come to know and love.

Want to focus on a specific feature? Let's run tuist focus TuistFeature. Would you like to have your modules cached? Yep, tuist cache is here for you! Note: If you want to run tuist with your current changes, you'll need to run swift run tuist .... Running simply tuist ... will use tuist installed on your system.

Contributor's FAQ #

No! If you prefer to edit the project via the SPM Xcode integration, you are free to do so.

Not many things have only pros - including this one. We'll now need to maintain Package.swift and Project.swift where we aim for both to represent more-or-less the same. We shall look into if we can automate some parts of maintaining Package.swift in the future (and pushing Project.swift to be the real source of truth)

Let me know if you have any more questions, I'll happily answer them!