Skip to content
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

[1/y] Optimize dependency graph traversal #249

Merged
merged 19 commits into from
Jan 6, 2022

Conversation

andrewchang-bird
Copy link
Contributor

@andrewchang-bird andrewchang-bird commented Dec 24, 2021

Stack:
📚 #254 [6/y] Update example projects
📚 #253 [5/y] Improve support for configuring SPM Xcode projects
📚 #252 [4/y] Show help message no mockable types are generated
📚 #251 [3/y] Fix unavailable generic protocol mock initializer
📚 #250 [2/y] Fix generator caching for multi-project setups
📚 #249 ← [1/y] Optimize dependency graph traversal
📚 #245 Replace SwiftPM with Swift Argument Parser

Parsing the dependency graph specifically for JSON project descriptions is quite slow for large projects. The biggest contributor is from re-computing the set key for targets. This change optimizes how the targets are indexed when constructing the dependency graph.

Before

~24s

Screen Shot 2021-12-22 at 12 10 22 AM

After

~4s

Screen Shot 2021-12-22 at 12 10 31 AM

The CLI was previously split out from the framework package definitions
to fix SwiftUI issues. This merges the packages under a conditional
build flag, similar to the official SwiftPM package manifest:

https://github.com/apple/swift-package-manager/blob/main/Package.swift
Hermetic / non-portable builds are the default going forward given the
the launcher included in 0.17. Installable artifacts will be released
with the `-installable` suffix and the less intuitive `-cisafe` will be
dropped for hermetic builds.
- XcodeProj 8.0.0 -> 8.7.1
- SwiftSyntax 0.50400.0 -> 0.50500.0
Fixes the linker warning that lib_InternalSwiftSyntaxParser.dylib was
built for newer macOS version (10.14.6) than being linked (10.13).
- Removed Xcode 12 workflow as SwiftSyntax 0.50500.0 is not source
  compatible with Xcode 13.
- Migrated from `install` to `configure` command.
Base automatically changed from dev/andrewchang-bird/swift-argument-parser to master January 6, 2022 03:08
@andrewchang-bird andrewchang-bird merged commit 90a260a into master Jan 6, 2022
@andrewchang-bird andrewchang-bird deleted the dev/andrewchang-bird/optimize-dep-graph branch January 6, 2022 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants