vtkbool
vtkbool copied to clipboard
conda-forge packaging
Is there any interest in packaging this up as a conda package on conda-forge? I have this almost-working on some non-public CI, but this could be easily translated to conda-forge.
The Python module should be relatively easy. Not sure about the ParaView extension, as I don't use those.
One prerequisite would be to set up official versions and releases of this project.
Update - I have a fully working recipe now. It does require some minor changes to CMakeLists.txt to work on all platforms - see https://github.com/whophil/vtkbool/tree/refactoring.
Thoughts @zippy84 ?
Hi! @whophil is it possible to install via conda-forge then?
@ana-pcosta It will be possible once I release the recipe, but I need some coordination from @zippy84 who maintains this repo.
The thing is, that the refactoring-branch is not ready yet for a release. I'm still working on this.
@zippy84 I have a few minor changes I'd like to propose for that branch as well - they mainly relate to how CMake finds the Python install dirs. Should I create a PR targeting your refactoring branch? You can find my commits on my my fork's refactoring
branch.
Please keep that in mind, until my first release candidate.
Is there any interest in packaging this up as a conda package on conda-forge? I have this almost-working on some non-public CI, but this could be easily translated to conda-forge.
The Python module should be relatively easy. Not sure about the ParaView extension, as I don't use those.
One prerequisite would be to set up official versions and releases of this project.
yes I would love this. I cannot figure out how to install
Please keep that in mind, until my first release candidate.
Hi @zippy84 , it seems like the refactoring
branch is a long-lived one. Do you have an ETA on when you expect to wrap this branch up?
Alternatively, are you open to an initial conda-forge package with just the changes required to build on VTK9? The package can be easily updated in the future.
Bumping this thread @zippy84
Any new thoughts or updates on this @zippy84 ?
would love to see this as well!
Hi @zippy84 , just following up again!
@whophil Be patient 😉
@whophil Be patient 😉
@zippy84 I probably wasn't clear on this - the only thing I need from you in order to get this package deployed is an official, non-RC release on this repo. Is this something you would be willing to do?
As of now, it seems the only version tag is 3.0-rc1
. I understand you are still doing some development before you feel comfortable releasing 3.0
. If you are willing to call any commit prior to that version 2.0
, and make that an official release (using the GitHub Releases feature), then the conda packaging can proceed without issue. Of course, a new version of the conda package will be updated whenever you release 3.0
.
The preliminary conda recipe is here: https://github.com/conda-forge/staged-recipes/pull/20615
As you can see in the PR, CMakeLists.txt
were modified a bit to build under a conda environment - you can find these changes in the included patch file.
Thanks for your work!
Hi @zippy84, just checking in on this. Where do we stand on the 3.0 release? We cannot deploy a RC version to the primary conda-forge channel. It is still an option to rename the current version 2.1 and proceed from there, if that is OK with you.
I'm currently work on other projects. As a compromise I can release it under 3.0-pre-release. A few things are still missing, but I'm fine with this.
I'm currently work on other projects. As a compromise I can release it under 3.0-pre-release. A few things are still missing, but I'm fine with this.
Thanks very much, that would be great! Many people will benefit from having this package available conda-forge without having to build it against VTK on their own.
Hi @zippy84 , I see now that you edited your post. It used to say 2.9, but now says 3.0-pre-release.
It seems like a trivial difference, but 2.9 does work for the conda-forge package, while 3.0-pre-release does not.
You can see some discussion about this here: https://github.com/conda-forge/staged-recipes/pull/20615#pullrequestreview-1160892076
What the author of that post suggests (using pre-release channels) is quite cumbersome for would-be users, so I'd really prefer to have an official 2.x release, if possible. Thanks!
Changed it to 2.9!
Thanks @zippy84 ! One minor detail - it looks like the filename for the 2.9 release is still 3.0-rc2.zip
. Can this be changed?
Good point. I changed it.
Thanks very much @zippy84 for all your help!
The conda-forge package for vtkbool
2.9 is now available and can be installed on Linux, Windows, Mac (x86) via
conda install -c conda-forge vtkbool
See:
- https://anaconda.org/conda-forge/vtkbool
- https://github.com/conda-forge/vtkbool-feedstock
I will close this issue. In the future you might consider adding this install information to the README so that people who stumble upon this project know that it can be installed via conda.
Thanks for your work @whophil .
I just tried it:
Python 3.10.10 | packaged by conda-forge | (main, Mar 24 2023, 20:08:06) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from vtkBool import vtkPolyDataBooleanFilter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'vtkBool'
The package is installed, but not available. Do you know whats wrong?
The package is located under pkgs. I have to extend sys.path manually:
>>> sys.path.append('/home/zippy/miniconda3/pkgs/vtkbool-2.9-py310h6257caa_1/lib/python3.10/site-packages/vtkbool')
>>> from vtkBool import vtkPolyDataBooleanFilter
Is this intended?
Thanks for testing @zippy84 - as currently packaged, the import should look like this:
from vtkbool.vtkBool import vtkPolyDataBooleanFilter
This seems to be the default structure that the CMake project provides, when I invoke cmake
in this way:
https://github.com/conda-forge/vtkbool-feedstock/blob/d0bdfa4243bb1201af196040b8a3f54dfa10d1a0/recipe/build.sh
Thanks. I will add this to my Readme next time.
By the way, the link to the documentation is wrong. But this is only a detail :smile: