Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Locate schemes concurrently#3076

Merged
elliottwilliams merged 3 commits into
Carthage:masterfrom
elliottwilliams:locate_schemes_concurrently
Feb 26, 2021
Merged

Locate schemes concurrently#3076
elliottwilliams merged 3 commits into
Carthage:masterfrom
elliottwilliams:locate_schemes_concurrently

Conversation

@elliottwilliams
Copy link
Copy Markdown
Contributor

In large repos (repos with many xcode projects in them, or repos with deeply nested directories), buildableSchemesInDirectory can become noticeably slow.

This change makes the directory enumerator stop descending when we filter out a URL, and calls xcodebuild -list concurrently using the same pattern that Carthage uses further down.

@elliottwilliams
Copy link
Copy Markdown
Contributor Author

@tmspzz take a look if you've still got bandwidth. FWIW, my team has been using this in production for a couple months w/o issues.

@tmspzz
Copy link
Copy Markdown
Member

tmspzz commented Feb 24, 2021

LGTM

@elliottwilliams elliottwilliams merged commit 709b82a into Carthage:master Feb 26, 2021
elliottwilliams added a commit to elliottwilliams/Carthage that referenced this pull request Jul 13, 2021
In Carthage#3076, we started loading projects concurrently to speed up scheme
selection in repos containing multiple projects. This introduced a race
condition where Carthage would consider whichever project loaded _first_
to be the optimal project to build from, instead of using the sorted
order of `ProjectLocator` objects.

Fixed by re-sorting the project-scheme pairs that are emitted in
`buildableSchemesInDirectory`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants