-
-
Notifications
You must be signed in to change notification settings - Fork 65
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
Cross-platform VTK 7 build #1
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
Looks like OS X is now building as well. Build timeouts will still be an issue though, so I tried to pre-emptively skip less popular configurations. |
Why AppVeyor is not getting triggered? |
@ccordoba12 because it was taking too long, running into the limits of AppVeyor |
So, @Korijn, when one changes the |
looks like Travis timed out at 80% on the build. Maybe adding |
To answer my own question above: |
Yes, but you skipped @jakirkham, this is the perfect example to ask for more time to Travis and AppVeyor :-) |
I was wondering about that @jakirkham! I will get to it later. It's getting late on this side of the globe. :) Thanks for your input! I'll try enabling multicore builds for linux and os x using Also, what do you think about raising some funds to upgrade the CI packages? I think it shouldn't be too much of a stretch... |
No worries, @Korijn. If I have time some day, I'll try to write some docs. 😄 Yeah, Travis CI says it has only 1 core. So, not sure what we can do about it. Unfortunately, the number of cores is often incorrectly reported by CI and may be reporting the number of cores on a shared node. In short, I wouldn't recommend using
I think this is a great idea, @Korijn @ccordoba12. There have been people that have periodically mentioned interest in donating build time. This certainly is a possibility, but really hasn't gotten the attention it probably deserves. We would probably want to figure out some terms for acceptable use and code necessary to make this function. There has also been some discussion about becoming a NumFOCUS sponsored group. It seems NumFOCUS would be interested in having us and I haven't heard any dissent on our side, but it hasn't been discussed in detail. This would also be another path for acquiring such funds. It also might lower the administrative overhead. Writing letters are probably the easiest. If people want to start on a letter, please go for it. We did something similar with GitHub in the past. My suggestion is someone start a Google Doc and open editing to everyone. Then just drop this in a new issue on the web repo issue tracker. I can't promise that I will get to it myself any time soon. However, I'm more than happy to participate and guide the process along. |
I rerendered for the new skip rules, and added what is supposed to configure Some surprising output on the Windows build:
After reading a bit more, these variables are used when VTK also compiles and installs 3rd party, libs such as zlib. Currently the build is not configured to do so (I think), but I propose leaving them in anyway. |
Everything timed out! :') Most reached into 90% though. Maybe there's some optional components we can skip... |
You can definitely build VTK on Appveyor but you need to ask for 1.5 hour build times. |
@patricksnape I emailed AppVeyor about it. Can we do the same thing for CircleCI and TravisCI? |
Thanks for working on this! If build times are still a limiting factor, is it possible to switch to ninja? (cmake -G Ninja, then ninja instead of make or nmake). In VTK/PV developer land we've all pretty much gravitated to it since the build times are so much better. |
I've been considering that! Looks like conda-forge already has a ninja package so it should be relatively painless. |
Seemed to help AppVeyor. Travis CI and CircleCI appear to still have issues. Maybe we can try |
@jakirkham I'm not terribly sure how to go about adding cotire to this PR. Would you mind doing it if I give you permissions on the fork? |
@jakirkham I have an odd suggestion: iterating over subsets of the configurations through two or three PRs. Is that acceptable, or do we really want to get below the build timeout? |
…emaining configurations within build time.
…stock into cross-platform
By skipping py3.4 on unix only I was able to get AppVeyor and CircleCI to pass. Travis still times out though. I will skip OS X once more so we can reach all-green. Then we can open another PR to push out the remaining configurations. Agree @jakirkham ? |
Well, once Travis finally responds to let us know that it skipped the build... everything should be green. Compared to the feedstock, this PR upgrades the build scripts to function cross-platform. Due to CI build time limits, it unfortunately only adds 6 Windows configurations (x86 & x64 for py2.7, 3.4 & 3.5) to the already available linux builds (x64 for py2.7 & 3.5). I'd like to merge and open another PR where we can dig into optimizing the build even further, using things like |
@ocefpaf This TravisCI build could also use a restart... :) |
There we go! Ready for merge. We can then open another PR where we can squeeze out OS X and Linux 3.4 support. |
I do have merge rights on github, but no rights for CI. |
Maybe you need to manually |
With Travis CI, you have to resync your account. |
Merged! @Korijn, great work making the Windows builds to work! I also noticed that VTK builds its own copies of freetype, libpng and other libraries we have. Maybe there are CMake options to deactivate that? |
Oops, sorry, @ocefpaf, that showed up after the comment posted. |
Sorry, I have not been keeping up-to-date here. Your incremental approach to support sounds totally reasonable to me @Korijn. |
Could you please explain what you have in mind for this, @Korijn? |
Yeah, CircleCI doesn't have a build matrix like Travis CI does. 😞 Though it may be possible to use the parallelism feature that you were looking at to imitate this. See this discussion and this code. I'll put this in a
😢 We have sometimes skipped some tests when this happens. Though I'd prefer to try |
Good catch, @ccordoba12. Yeah, this must save some build time if we skip building these and use our own. What do you think, @Korijn? |
Yes, most of our TPLs have a VTK_USE_SYSTEM cmake option, please do try them. Of course, if there is a significant amount of drift between our version and whatever we find on the system they will not work. |
Is there somewhere in the source or docs we should look to see what versions are used by VTK, @demarle? |
Something for the next PR then, I guess. :) We're currently experiencing some troubles with offscreen rendering on headless servers using this package, and the docs seem to indicate that it requires a custom build, so I'll be exploring the options there as well in another PR. Having some trouble finding docs that are up to date though. E.g.: |
CircleCI responded and recommended us to look into parallellism, so that resonates with your suggestions @jakirkham |
FYI I have disabled CircleCI parallelism on this feedstock as we don't have a way to leverage that currently. Hope that is ok. |
INSTALL_PKGCONFIG_DIR
option from build.sh