8000 Parallelize `rsync` in 'Embed Pods Frameworks' stage script · Issue #6621 · CocoaPods/CocoaPods · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Parallelize rsync in 'Embed Pods Frameworks' stage script #6621

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

Closed
tomj opened this issue Apr 5, 2017 · 7 comments
Closed

Parallelize rsync in 'Embed Pods Frameworks' stage script #6621

tomj opened this issue Apr 5, 2017 · 7 comments
Labels
d2:moderate A moderately-difficult ticket that may require a bit of knowledge about the codebase t1:enhancement Enhancements that have not been picked up yet. Please comment if you plan to work on it

Comments

@tomj
Copy link
tomj commented Apr 5, 2017

(This didn't seem like a good fit for the boilerplate ticket header, so I removed, apologies if that was the incorrect thing to do)

Following on from #6088 and suggestion by @orta I'm wondering if it's possible or worthwhile to parallelise the

rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"

line in the Pods-*-frameworks.sh. It seems to be taking up a large chunk of the build time on my local so any way to reduce that would be great. I'm pretty time constrained atm but will have a poke around when I have some spare cycles. Feel free to throw more ideas here if this is a silly path for me to be heading down && || this is the wrong place to be adding this.

Cheers! 😀

@benasher44 benasher44 added d2:moderate A moderately-difficult ticket that may require a bit of knowledge about the codebase t1:enhancement Enhancements that have not been picked up yet. Please comment if you plan to work on it labels Apr 7, 2017
@tomj
Copy link
Author
tomj commented Apr 20, 2017

😄 thanks for triaging @benasher44 will report back with any findings

@benasher44
Copy link
Member

No problem! We'd certainly appreciate a PR with any improvements that can be made here!

@tomj
Copy link
Author
tomj commented Apr 27, 2017

You bet! Trying to recruit a friend right now with shell-fu better than mine right now to assist the effort! 😄

@aufflick
Copy link

This would open the way to solving #6252 also - once the pods are being rsync-ed as separate commands, we can use the --itemized-changes or -stats option on rsync to know whether codesign can be safely skipped (could be in the same parallel loop as if you enable the PARALLEL_CODESIGN option).

@dnkoutso
Copy link
Contributor

I think this can be closed and and superseded by #6800. The scripts will no longer re-execute unless the inputs or outputs have changed.

There is something to be said that when the script actually needs to run it could run faster by parallelizing this effort but I don't think it will happen that often.

I am going to close this, feel free to re-open if you feel strongly for improving the script itself.

@jgavris
Copy link
Contributor
jgavris commented Jun 21, 2017

I think this is still a valid issue, can we keep it open / think about it? I'm not sure 'Input Files' in Xcode will work with a directory as implemented in #6800 (because Xcode would have to track every file in that directory, since directories are not modified when their contents are).

I've been working with https://github.com/bazelbuild/bazel a bit lately, and one thing it's really good at is very quickly determining there is nothing to do (using a content-based comparison). Wanted to plant a seed to think about how we might make an podspec adapter that converts to a bazel build rule.

@siuying
Copy link
Contributor
siuying commented Jul 16, 2019

With Xcode bug #8073 this is relevant again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
d2:moderate A moderately-difficult ticket that may require a bit of knowledge about the codebase t1:enhancement Enhancements that have not been picked up yet. Please comment if you plan to work on it
Projects
None yet
Development

No branches or pull requests

6 participants
0