MobileNativeFoundation / MobileNativeFoundation/rules_xcodeproj
Cleanup: Target consolidation should happen in Starlark
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 626
- Forks
- 124
- PR merge metrics
- No merged PRs in 30d
Description
Target consolidation currently happens in the generator. This is not ideal for a few reasons:
- These targets share a lot of inputs, resulting in larger than necessary
targets_spec.jsonfiles - We could get a non-zero amount of additional analysis cache hits having the computation happen in Starlark
Since the consolidation logic is dictionary bucketing based, it should be pretty simple to port it over to Starlark, similar to how we moved target merging.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tools/generator/src/Generator/ConsolidateTargets.swift, especially lines 5-13, and compare the existing target-merging move to Starlark. Port the dictionary-bucketing consolidation into Starlark so shared inputs are reduced in targets_spec.json and the generator no longer performs this work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100