feat: add mapping of local packages #116
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds new functionality to
XcodeGraphMapperthat converts local package targets referenced by the Xcode project to Xcode targets. This translation is lossy in some cases – in other words, theTargetrepresentation is not a perfect representation of the package target.However, it's been the most straightforward way to unlock selective testing or
tuist graphto be usable also for local packages.The alternative to mapping a SwiftPM target to an Xcode target was to modify
Graphto not only holdprojects, but alsolocalPackages. The models in thelocalPackagesproperty would then be idiomatic to SwiftPM. However, intuist/tuist, this would mean a ton of refactoring to bring selective testing and graph for that part of the graph – as thegraphTraversercurrently works only with XcodeTargets.We can still consider doing that down the line, but I believe the current strategy brings the most value while being a good enough approximation of the SwiftPM part of the graph.