-
Notifications
You must be signed in to change notification settings - Fork 61
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
More robust build-catalogue #1784
More robust build-catalogue #1784
Conversation
So it wouldn't fix #1779? |
Now it does. |
Intermediate result regarding the ciwheel action:
|
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.
Could you explain how scikit-build
picks up the parts?
This looks great! I tried out the patch w.r.t. #1775. However, I ran into some problems. Did the syntax for command line options change?
Asking for |
From the skbuild docs, I infer that |
About the |
Great that fixed the makejobs problem. And the other options? I also cant get --gpu=cuda or --mpi to work |
Ok, I'll take a look. |
ATM, passing flags to Before I dive into that (and before @thorstenhater does ;)), I think it's best to figure out how to fix the out-of-tree builds thing. Apparently solving this is a very recent development, as the struggles by a PyPA maintainer show: pypa/pip#10573 (comment) . I'm trying to get to a proper |
Note: for out of tree builds:
Asked for some help: scikit-build/scikit-build#614 |
@brenthuisman pip now has a PEP517/518 compliant wheel builder! You can use |
The build options can be worked around using this
it's not the most convenient way, but it work. |
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 a few more comments and requests, but otherwise it looks good, thanks!
Hold off on that merge ... there might something amiss in the docs. Taking a look. |
I tried using the pip install method in google colab, which did not work: To reproduce, create a cell with the following contents and execute it:
which will error after a few minutes. Running plain cmake && make results in
As this is the first time I'm using google colab to build arbor this might be more a problem with google colab than this PR |
From private conversation:
This seems to be a collusion of dated tools and pre-installed dependencies. While it would be nice to have Arbor+GPU in the cloud this way, we need to compile on site for that. NB @brenthuisman @Helveg @thorstenhater @llandsmeer if there is sufficient interest and motivation, let us set up a tutorial/image/script to make Arbor+GPU happen on colab |
Removing |
TODO:
|
bors try |
tryBuild failed: |
bors try |
tryBuild succeeded: |
- build-catalogue - now installed by pip - enable GPU-backends - isolate from being installed in a non-default dir - rename to arbor-build-catalogue - allow hand-written C++ mechanisms to be linked in the same catalogue. - CMake - enable PIC on arbor always to allow linking to shared objects - use relative paths when configuring a-b-c, to make relocation less of a problem - Python - ensure a-b-c is installed by pip, along with headers and libarbor.a - throw errors if tools (cmake scripts, arbor package, modcc) missing - transition setup.py setuptools -> skbuild. - Wheels - Add NML2 support to wheels - scripts/build-wheels.sh builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with .github/workflows/ciwheel.yml - scripts/patchwheel.py corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see pypa/auditwheel#363 - Python Wheels are tested as part of the Github Action - Add nml and bundled status to config().
Introduction
Make build-catalogue (a-b-c) a better tool, it is now used in production quite seriously, so
we need to match up with expectations.
arbor-build-catalogue
Changes
setuptools
->skbuild
.scripts/build-wheels.sh
builds wheels, in principle valid for submission to PyPI, on your own hardware. This should be kept in sync with.github/workflows/ciwheel.yml
scripts/patchwheel.py
corrects the rpath in the libraries in the wheels, working around a bad interplay between auditwheel and skbuild, see ImportError: a library correctly found and included byauditwheel
is not found on package use. pypa/auditwheel#363nml
andbundled
status toconfig()
.Open Issues
Linked Issues
Fixes #1782
Fixes #1776
Fixes #1775
Fixes #1779
Fixes #1792