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.
- Do I have to use tuist-generated project?
No! If you prefer to edit the project via the SPM Xcode integration, you are free to do so.
- Does this have cons?
Not many things have only pros - including this one. We’ll now need to maintain
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!