<p dir="auto"><strong>Summary</strong><br>
Installing scikit-learn on aarch64 via pip using command "pip3 install scikit-learn" tries to build wheel from source code</p>
<p dir="auto"><strong>Problem description</strong><br>
scikit-learn don't have wheel for aarch64 on PyPI repository. So, while installing scikit-learn via pip on aarch64, pip builds wheel for same resulting in it takes more time to install scikit-learn. Making wheel available for aarch64 will benefit aarch64 users by minimizing scikit-learn installation time.</p>
<p dir="auto"><strong>Expected Output</strong><br>
Pip should be able to download scikit-learn wheel from PyPI repository rather than building it from source code.</p>
<p dir="auto">@scikit-learn-team, please let me know if I can help you building wheel/uploading to PyPI repository. I am curious to make scikit-learn wheel available for aarch64. It will be a great opportunity for me to work with you.</p>
<p dir="auto">I recently checked the <a href="www.shippable.come">Shippable</a> CI service which offers some ARM architecture to test on. I tested it on my fork to check the required configuration and so on. However, there is a timeout of an hour, and currently, we are encountering this limit. Here, this is the log of such build:</p>
<p dir="auto"><a href="https://app.shippable.com/github/glemaitre/scikit-learn/runs/24/1/console" rel="nofollow">https://app.shippable.com/github/glemaitre/scikit-learn/runs/24/1/console</a></p>
<p dir="auto">On ARM 32 bits, we have a "Bus error (core dumped)":</p>
<p dir="auto"><a href="https://app.shippable.com/github/glemaitre/scikit-learn/runs/24/2/console" rel="nofollow">https://app.shippable.com/github/glemaitre/scikit-learn/runs/24/2/console</a></p>
<p dir="auto">I already cached the numpy, scipy, and cython wheels. Then, we still spent 15 minutes to make the scikit-learn wheel and the remaining time for the tests (the tests almost complete ~99%).</p>
<p dir="auto">So I was wondering if it would be interesting to add this CI at least in a CRON job. Then, regarding the timeout constraint, we might have different strategies to overcome it:</p>
<ul dir="auto">
<li>Make some nightly wheels including some for the ARM target and fetching those instead of building from source in Shippable.</li>
<li>Ask Shippable if they can lift up the timeout constraint (they 120 minutes for paid plans) and offer to only use this CI for CRON job and not on all PR or master push.</li>
</ul>
<p dir="auto">I would be happy to have some thoughts.</p>