Closed cschwan closed 2 years ago
Thank you very much, I guess one of the reasons why it has been rather difficult to write these bindings actually was lack of examples, so it's good to have some more.
Unfortunately, I don't believe those points are much relevant, but this boils down to opinions in some cases.
Let's provide details:
linux
, but this because it is the only one for which you need to compile inside a container (and this is actually what the maturin
action does for linux
), but pineappl
has many more dependencies than ragged-buffer
, and unfortunately this requires us to run inside a container with a C compiler, that unfortunately seems not to be present on the PyPA provided manylinux
containers
https://github.com/N3PDF/pineappl/blob/cd7bbaf298326fc5edcdcb2b75868784816dfe5e/pineappl_py/package/Containerfile#L8
(if I remember, in particular should be syn
or quote
fault, i.e. we have some dependency that implements non-trivial macros, and somehow for that a C compiler is needed)--universal2
flag for Mac, but this is simple to add with include
matrix
sub-iteminclude
he is also defining target, but then is unused, so we get nothing (it should appear as ${{ matrix.target }}
)maturin
action will provide support to patch manylinux
container, we can drop our own and join all the branches (simply providing a bigger matrix)@AleCandido OK thanks for going over the points I mentioned. Feel free to leave the Issue open (for the points you mentioned) or to close it!
I guess I can leave it open to improve a bit the wheels.yml
workflow, I'll do it.
The last point has already its own dedicated issue, while the second one I'm not sure we want. In case, I would open another issue/PR to implement it.
Here's another discussion: https://www.reddit.com/r/rust/comments/rtnwd5/python_extensions_in_rust_lessons_learned_from/
Here's another discussion: https://www.reddit.com/r/rust/comments/rtnwd5/python_extensions_in_rust_lessons_learned_from/
Interesting in general, thanks :)
Do you believe there is anything in particular we should take care in pineappl
? (and we're not already doing...)
I still have to read it, it was also a way to 'bookmark' it :smile:
In commit 22964c2774fca019e10acc64162b71b988af23db I actually merged the windows + Mac workflows, now they should be more consistent.
As usual, I couldn't test, since it requires running. Nevertheless, the change is tiny, so I don't expect much noise, and all the jobs will run independently in any case (less repetition in the declaration, same repetition in the run, as wanted).
Whenever we like we can even close this issue, or we can keep it open for the second discussion, if you find anything useful for pineappl
.
Let me make another beta release to test it...
It seems to have worked, there I'll close this Issue.
I've just seen the following on reddit:
https://www.reddit.com/r/rust/comments/rk12bg/writing_rust_libraries_for_the_python_scientific/
Can we learn anything from it for our Python bindings? In particular I noticed the following points: