-
Notifications
You must be signed in to change notification settings - Fork 39
feat: add TargetMetadata.ignoreRedundantDependencies #230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add TargetMetadata.ignoreRedundantDependencies #230
Conversation
| /// Whether the target redundant dependencies should be ignored during `tuist inspect redundant-import` | ||
| public var ignoreRedundantDependencies: Bool |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
XcodeGraph models should contain attributes/metadata that's associated with the graph, not with how some Tuist features will behave because it couples the model with the tool that uses the graph. I'd recommend to move this to the Tuist.swift model in tuist/tuist:
let tuist = Tuist(inspect: .inspect(redundantDependencies: .redundantDependencies(disableTargets: []))There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC Tuist can't import code from project description helpers, and it would make it very cumbersome to maintain.
What I want to do is:
- I define a feature
let featureX = Feature(name: "X", interface: …, implementation: …) - Then I do
featureX.targets()to get the list of targets according to the configuration, but I want (for example) the test target to be marked withignoreRedundantDependencies, which is very easy to do if it's part of theTargetinit
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you share more about your setup? I believe this is part of your wrapper, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@danieleformichelli let's continue the conversation here. I misunderstood the second part. In that case I recommend that you apply a tag to the target, which we already have an API for, and then in the Tuist.swift you can use the tag to match targets:
let tuist = Tuist(
inspect: .inspect(
redundantDependencies: .redundantDeps(ignoreTagsMatching: ["tag"]) // or something along these lines
)
)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense! 🙏
https://community.tuist.dev/t/exclude-some-targets-from-tuist-inspect-redundant-imports/626