-
Notifications
You must be signed in to change notification settings - Fork 12
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
Initial comments #2
Comments
Some comments
You can set this up however you like, i.e. package for every dependency or all dependencies packaged together. But if you would like to get this on conda forge, which I recommend, you'll need to make a conda package for each dependency (in general).
If for conda forge, this should definitely be a different package.
I think so.
The conda forge simbody package puts it in libexec.
This may be possible now that the wheel infrastructure is more mature but my hunch is that this would be be more work than getting a conda package going. It also may be a little stretch call opensim a python package, and thus appropriate to have in PyPi. I've heard some talk about how you may be able to convert wheels to conda packages and vice versa. Never tried it though.
Good question. I don't think anything is customary yet. If you want to include examples you can put them in /usr/local/share for example. I did this with the Simbody one, I believe. You can add the docs too. I think most people get these things from the internet these days though.
I recommend starting it now. You can submit a PR to the staged-recipes repo. I already have one there for Opensim 3.0 which has stalled. Feel free to take it over. There will be more work to do to get it conda forge ready. They also typically want official releases, but I think you can setup a beta/alpha/rc channel (see matplotlib's example of this).
My plan was to make separate packages like:
But you could just have opensim and it has all of the above and just have one package. Symengine is a C++ lib with python, ruby, julia, etc wrappers and they have symengine and python-symengine, i.e. pure C++ and the python wrappers.
You'll need to ensure this. I think it would be very nice to have all this done properly. I'm don't think I have it quite right with the simbody package. |
Note that ipopt, mumps, sundials, symengine don't prepend lib even though they are C/C++ libs. |
Probably worth reading too: conda-forge/staged-recipes#2136 |
Thanks @moorepants; that information is very helpful. |
Here is an example of a C++ lib with python bindings being built into a wheel for PyPi: https://blog.kitware.com/itk-is-on-pypi-pip-install-itk-is-here/ https://blog.kitware.com/itk-python-wheels/ Could be helpful to see how they do it. |
Thanks for those links. I found their scripts for creating the wheels: |
Thanks, Chris, I totally agree with the comments and @moorepants answers! The current version is clearly hacky to just have it up and running, but making it clean won't be difficult. |
@kidzik it's awesome that you've created this conda package. Here are my comments (mostly questions). No need to respond to them now; we can discuss in person, etc.
OPENSIM_COPY_DEPENDENCIES
to avoid needing to copy BTK/Simbody manually.opensim-cmd
?libexec/simbody
orbin
? It's somewhat built into the Simbody libraries that its location relative to the Simbody libraries does not change.cc @moorepants
The text was updated successfully, but these errors were encountered: