-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Automatically checkout dependencies' submodules #69
Conversation
They should exist as empty folders in the checked out repo.
Redirecting the stdout of `clone` does Weird Shit™.
💣 |
Using the tip of this branch, I discovered that the dependencies' dependencies are not necessarily being checked out at the appropriate revision. I wish I could be more helpful in this instance as to what's going on, but I'll have to give you steps to reproduce and go from there: Cartfile:
Cartfile.lock:
It clones Moya, and clones Moya's dependency on RAC. However, Moya@0.5 depends on Note that in the ReactiveCocoa/ folder lies Action.swift and other files from the Swiftening. But in my repo, The smoking gun in this was that LlamaKit was not checked out, which causes |
@swizzlr Huh, thanks for finding that and digging into it. I can reproduce it, and I have no idea what's happening yet. |
These intertwined pull requests are driving me crazy. Gonna merge this, but plz to review still. 🙏 |
Automatically checkout dependencies' submodules
return launchGitTask([ "clone", "--quiet", submodule.URLString, submodule.path ], repositoryFileURL: workingDirectoryURL) | ||
.then(launchGitTask([ "checkout", "--quiet", submodule.SHA ], repositoryFileURL: submoduleDirectoryURL)) | ||
// Clone nested submodules in a separate step, to quiet its output correctly. | ||
.then(launchGitTask([ "submodule", "--quiet", "update", "--init", "--recursive" ], repositoryFileURL: submoduleDirectoryURL)) |
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.
Should we be doing all these with --quiet
? Maybe you just aren't capturing this output yet, but it seems like we want to save all of it.
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.
+1. This should all be sent to some sort of reporter object (see #63). The reporter object should distinguish between Carthage and Git logs.
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.
Well, ideally we would yield signal events instead of using a reporter.
However, in this specific case, there's nothing to be gained from the normal output logging of these commands. Any errors will be printed no matter what, and to a different output stream.
It's hard to review with all the commits from earlier PRs, so I was waiting until the dependency was merged. 🙇 |
Support Swift 3.0
Resolves #67.
To do: