holoviz-topics / imagen

ImaGen: Generic Python library for 0D, 1D and 2D pattern distributions
https://imagen.holoviz.org/
BSD 3-Clause "New" or "Revised" License
31 stars 16 forks source link

Conda packages #47

Open jbednar opened 8 years ago

jbednar commented 8 years ago

Imagen is on conda -c ioam, but only for linux-64, not e.g. OS X. Can we build a noarch package instead so that it will be supported on all platforms?

https://github.com/conda/conda-build/tree/master/example_packages/noarch_python

jlstevens commented 8 years ago

Sure.

I didn't know about the noarch option. Is this something we should consider for holoviews? Do you need to commit to an architecture unless you are compiling C code or your Python code is somehow architecture dependent?

jbednar commented 8 years ago

noarch hasn't always been supported, but is mostly supported now. Apparently it doesn't yet let you specify the Python version, which seems like a major limitation, since there are plenty of packages that are cross-platform but need different versions for Python2 or Python3. For holoviews, param, and imagen, there's only one version of the source code, to be used across all Pythons, so noarch should work fine, and I think we should be using it whenever we can. E.g. our stuff should work even on obscure OS's that we would never build explicitly, or at least there's no reason we'd want to stop people from trying them out!

jlstevens commented 8 years ago

Shame about not being able to specify the Python major version.

I don't care what platform the code is running on but I do care whether it is Python 2 or 3. Even though HoloViews/Imagen/Param have a single code base to support both Python 2 and 3, the dependencies of these projects (especially for HoloViews) may need more of a Python 2/3 distinction.

I find it a little odd that this isn't supported: when I upload to anaconda I end up with files such as win-64/holoviews-1.4.3-py35_0.tar.bz2. I would have expected noarch to result in something like noarch/holoviews-1.4.3-py35_0.tar.bz2 where the Python version is still specified...

jbednar commented 8 years ago

Right; I don't think there's a good reason, only technical awkwardness, hopefully transient. Here I'm just going by word of mouth; I don't know where this limitation is documented. In any case it shouldn't matter for imagen or param, with their minimal dependencies.