Closed nicoddemus closed 7 years ago
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 (recipe
) and found it was in an excellent condition.
There are other PRs attempting to do this. Build timeouts are a problem.
@Korijn
There are other PRs attempting to do this. Build timeouts are a problem.
I noticed after it failed, sorry for not taking a look at the current PRs first.
How was the current version built? Manually and then uploaded? Anything I can do to help in this regard? Qt seems to have the same issue, and they have been making local builds to address this.
We have had some luck with scipy
by splitting branches out for different versions of numpy
. Could do the same thing here with python
. Given python
3.5 is probably the next one to go, would recommend making that a separate branch. Alternatively could just drop python
3.5 support and go to python
2.7 and 3.6 (only adding back python
3.5 if there is demand).
@jakirkham that's a good idea. Unfortunately looking at the logs it seems it is timing out while building the very first package (py27), so that wouldn't work.
It timed out around 21m, I'm surprised CircleCI has such a low limit; AppVeyor and Travis have 1h timeouts.
So if you scroll down (IOW download the log), you will see there was some sort of build failure. Given how simple this change was, it might be worth restarting.
Good idea. I don't have write access though, could any of the maintainers try that?
FAILED: Filters/Core/CMakeFiles/vtkFiltersCore.dir/vtkGridSynchronizedTemplates3D.cxx.o
/opt/rh/devtoolset-2/root/usr/bin/g++ -DVTK_IN_VTK -DvtkFiltersCore_EXPORTS -IFilters/Core -I../Filters/Core -ICommon/Core -I../Common/Core -IUtilities/KWIML -I../Utilities/KWIML -IUtilities/KWSys -I../Utilities/KWSys -ICommon/DataModel -I../Common/DataModel -ICommon/Math -I../Common/Math -ICommon/Misc -I../Common/Misc -ICommon/System -I../Common/System -ICommon/Transforms -I../Common/Transforms -ICommon/ExecutionModel -I../Common/ExecutionModel -DBOOST_MATH_DISABLE_FLOAT128 -m64 -O3 -DNDEBUG -fPIC -fvisibility=hidden -MD -MT Filters/Core/CMakeFiles/vtkFiltersCore.dir/vtkGridSynchronizedTemplates3D.cxx.o -MF Filters/Core/CMakeFiles/vtkFiltersCore.dir/vtkGridSynchronizedTemplates3D.cxx.o.d -o Filters/Core/CMakeFiles/vtkFiltersCore.dir/vtkGridSynchronizedTemplates3D.cxx.o -c ../Filters/Core/vtkGridSynchronizedTemplates3D.cxx
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
I do not get any compiler error when running this PR from a local linux machine.
googling that "g++: internal compiler error" message a bit, I found the following issue on another project where it seems to be a memory issue and they recommend increasing swap space (or running with fewer cores during build, but then we would likely see timeouts). https://github.com/Valloric/ycmd/issues/224
@jakirkham. Re: my previous comment and swap space. I am not too knowledgable on docker. Do you think it is the docker container itself that is encountering the limitation in memory or is it whatever underlying system CircleCI is running the container on?
At this point it is probably worth re-rendering to 2.3.1 so that we are up to date. May also want to cherry-pick the freetype 2.7 pinning update from the first commit in #23 as well. The libpng
pinning should also be updated to >=1.6.28,<1.7
.
The container can have a separate memory limit. Not sure if CircleCI configures it under the hood somehow or not. Normally the default would be to use all available memory that the system provides. So you may very well already be running up against the CircleCI limit (FWICT it is 4GB). A common cause for these sorts of issues is using to many threads. Would note that even one thread per core could be too many if each thread needs more memory than that configuration would allow.
Thanks. I restarted the CircleCI build to see if this memory problem is repeatable or just a fluke.
The memory error did not occur again upon restart, but the build did time out.
Unfortunately, adding a configuration also means dropping one to stay within time limits.
@jakirkham gave an idea of using a different branch for each Python version; would that be
master
where each PR only builds a single python version, and they are merged one after the other; conda-forge/vtk-feedstock
for each Python version, and then open 3 PRs targeting the appropriate branch;For 2) to work, it would mean that packages are published from any branch in conda-forge/vtk-feedstock
, but I'm not sure if packages are only published from master
builds.
I'm pretty sure packages are published from all branches. For example, we have two separate branches for 4.x and 5.x versions in the following feedstock: https://github.com/conda-forge/suitesparse-feedstock
If we can reliably complete two builds then perhaps just a 2.7 branch and then a 3.x branch that builds the two most recent Python 3 versions. I think the only real downside to duplicate branches is that whenever versions are updated, etc, we need to push similar PRs to each branch. Slightly more work, but I don't see another good way around it at the moment.
To be clear, what I am suggesting above is: 1.) only build for the two most recent python 3 releases in master 2.) build Python 2.7 in a separate branch
Are there objections to creating a separate branch for 2.7? We can always go back to a single master branch in the future if we find a way around the CI time limits.
@grlee77 your proposal sounds good to me. I'm closing this so we can focus the discussion in #23.
So just barely got a working implementation up for CircleCI matrix builds in conda-smithy
. Have tested a couple of cases and seems to work ok. Though will require moving to CircleCI 2.0, which is still technically in Beta. In any event, here is the PR ( https://github.com/conda-forge/conda-smithy/pull/532 ) would appreciate it if some people take a look.
Re-rendering to generate py36 packages.