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
Disable autodownload by default #2953
Conversation
Signed-off-by: Omar Shrit <omar@shrit.me>
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.
I agree with the idea here, but I think we'll need to make a few CI changes. ensmallen will need to be installed; I think you should be able to use apt-get
, brew
, and nuget
in the various .ci/
files. There may be a bit of work to be done on the build nodes on Jenkins, but that should be pretty easy.
I will update the |
I installed |
Some or most of the jobs use https://github.com/mlpack/jenkins-conf/blob/master/Dockerfiles/jenkins-amd64-debian.Dockerfile so we only have to update the file and rebuild the docker. I'll update it in a second and push it. |
Docker files updated, and images rebuild. |
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
I found it strange that the CI was not able to locate |
It looks like the Azure build workers use xenial, which is pretty old and doesn't have |
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
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.
Just left two comments that should hopefully fix the build. 👍
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
@rcurtin Good news, Armadillo library has been finally found on windows, let us see if there will be no linking issues, if yes then we can merge this pull request 👍 |
Here is the last error from this pull request,
|
Wait a second... If this is correct (please double-check my reasoning above), then I see two options:
I think the first solution might be preferable, since it always allows us to build mlpack against the minimum required version of Armadillo. |
.ci/windows-steps.yaml
Outdated
tree $(Agent.ToolsDirectory) | ||
## Delete all ensmallen dependencies, we do not need them here | ||
Remove-Item $(Agent.ToolsDirectory)\ensmallen.2.17.0\installed\x64-linux\share -Force -Recurse |
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.
@rcurtin I have already done that, I suppose that maybe it is not working? I will try to verify if the directory is still there
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.
Ah, sorry, I missed that. Well, maybe it is worth printing everything in the ensmallen directory, just to make sure the headers are not there.
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.
What I find strange is that it has never been able to link with any armadillo version including the one that is in ensmallen package. However, when I corrected the path to add the tree\include
, it showed behaviour similar as if it was linking with the package.
I have added a tree to see if armadillo is not deleted from the ensmallen package, let us see.
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.
@rcurtin we are sure now that visual studio is trying to use the local headers in the ensmallen package, which is causing all of these issues.
Have a look here
https://dev.azure.com/mlpack/mlpack/_build/results?buildId=7292&view=logs&j=934eac7e-378e-5e05-ed87-f05e34fa9fdc&t=4ee4870b-c6ca-5a83-cdbe-639dd57a3582&l=9973
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.
Take a look at the error:
##[error]C:\hostedtoolcache\windows\ensmallen.2.17.0\installed\x64-linux\include\armadillo(21,10): Error C1083: Cannot open include file: 'armadillo_bits/compiler_check.hpp': No such file or directory
I think that you have removed everything of Armadillo that's distributed with ensmallen... except the armadillo
file. So if you remove that too, in addition to the armadillo_bits/
directory, then I think we will be closer to something that works. :)
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
Signed-off-by: Omar Shrit <omar@shrit.me>
@rcurtin I think it has passed now, finally, I only got out of heap space error, which is normal from time to time. |
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.
Everything looks good to me here. Thank you so much for putting so much effort into this! Before merge, I think we should still make sure that the Windows build succeeds at least once (we might have to restart it a few times).
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.
Might be a good idea to clean the commit history or we just do a squash & merge and clean it there.
nuget install unofficial-flayan-cereal -o $(Agent.ToolsDirectory) | ||
|
||
nuget install ensmallen -o $(Agent.ToolsDirectory) -Version 2.17.0 | ||
## Delete all ensmallen dependencies including armadillo headers, we do not need them here |
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.
I'm not sure I get the reason why we download the ensmallen package from nuget, and delete everything besides the header files. In the linux build we just download the header files and copy everything into the target directory. Is there anything that I'm missing here?
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.
Frankly, I do not remember why we went into NuGet direction, there was a strong reason, but I can not remember why
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.
After all of this suffering, I think we can merge this pull request. Whatever the first reason was, it is better to use NuGet for future versions, we will have to change only the number now for ensmallen
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
Co-authored-by: Ryan Curtin <ryan@ratml.org>
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.
Second approval provided automatically after 24 hours. 👍
Still a memory error; I tried restarting the build again. |
@rcurtin was it a linking error? |
Nope, just 'compiler out of heap space'. I'd just like to make sure we can at least get it to build cleanly once. :) |
In this case, the issue will be coming from armadillo 9.8 since it is the first time we try to compile mlpack with it on Windows. |
All green 💯 🚀 |
Awesome! Great work @shrit, super cool we were finally able to get this one working right. :) |
@rcurtin @jeffin143 thanks, I think we are close to merging #3006, if you have any spare time, do not hesitate in giving hints on the Unicode strange loop behaviors |
Signed-off-by: Omar Shrit omar@shrit.me