Advice on overriding conda's "defaults" channel with my own binaries

0 views
Skip to first unread message

Stuart Berg

unread,
May 14, 2015, 12:24:50 PM5/14/15
to conda
Hi,

Lately I've been replacing my application's slew of custom build scripts with conda packages [1].  Each package I need falls into one of these three categories:

1) The package already exists in conda's "defaults" channel, and I can use it as-is (woo-hoo!).
2) The package doesn't exist in "defaults", so I've written my own recipe and uploaded the package to binstar.
3) The package already exists in "defaults", but I can't use it due to some incompatibility with the rest of my stack.  I need to write my own recipe for that package, and use THAT version ONLY.

My question is about the best way to deal with my packages in category #3.

For example, the default VTK package in conda "defaults" doesn't include pyqt bindings, which I need.  Fortunately, it was easy to modify the VTK recipe from the conda-recipes repo to suit my needs.  I built my own version of VTK and uploaded it to binstar, with a special build string ("with_pyqt").

How can I make sure that only MY vtk package is used whenever vtk is pulled in by one of the packages in my stack?

The first thing I tried was providing an exact (explicit) package specification in the meta.yaml files that refer to vtk:

requirements:
  build:
    - vtk 5.10.1 with_pyqt

... but it turns out that "exact" package specifications introduce complications, mostly related to a bug in conda [2].

So, it seems that just requiring my special build string in meta.yaml is not an option.  My current workaround is to use a kooky version number in lieu of a special build string:

requirements:
  build:
    - vtk 5.10.1.99

This way, there's no chance I'll accidentally get the "official" vtk package -- I'll always get the special version from MY channel.

(BTW, The A.B.C.D version format counts as a "rational" version in conda.verlib.)

Is there a better way to ensure that a package is always pulled from my channel, never accidentally downloaded from the "defaults" channel?

Best regards,
Stuart
Reply all
Reply to author
Forward
0 new messages