Hi All, I have withdrawn the pull request after useful comments from [X] Nicola Soranzo and John Chilton and upon finding a bug that results in a worse error in testing I have had another go at adding this feature. This time as a new resolver to be plugged in. Adding at John Chilton suggestion ranking in cases where more that one possible revision of the same dependency can be found. I have the code in a fork: https://github.com/Christian-B/galaxy/blob/dev/lib/galaxy/tools/deps/resolve... If I want to submit a pull request is this best done against master or dev? Also should I submit a Jira(ish) ticket for this as well? If so where? Christian ________________________________ From: galaxy-dev [galaxy-dev-bounces@lists.galaxyproject.org] on behalf of Christian Brenninkmeijer [christian.brenninkmeijer@manchester.ac.uk] Sent: Wednesday, July 01, 2015 1:17 PM To: galaxy-dev@lists.galaxyproject.org Subject: [galaxy-dev] Problem finding depency for none toolshed tools Hi, I have been testing tools not yet ready for a tool-shed but had trouble finding the dependencies as there was no database entries to load these. The code in lib/galaxy/tools/deps/resolvers/galaxy_packages.py assumes that the env.sh or bin directory will be in dependency_dir/package/version when in fact it is often in dependency_dir/ package/version/owner/package_name/revision. I have created a pull request with some code to find the dependency in the sub directory https://github.com/galaxyproject/galaxy/pull/413 As I am relatively new to galaxy I have probably broken lots of rules/agreements on how I did the pull request. If so please let me know where I went wrong so I can redo it properly. Christian PS. This is my proposed change to lib/galaxy/tools/deps/resolvers/galaxy_packages.py: def _find_dep_versioned( self, name, version, type='package', **kwds ): #First try the way without owner/name/revision path = join( self.base_path, name, version ) package = self._galaxy_package_dep(path, version) if package != INDETERMINATE_DEPENDENCY: return package #now try with an owner/name/revision for owner in listdir(path): owner_path = path + "/" + owner for package_name in listdir(owner_path): if package_name.startswith("package_"+name): package_path = owner_path + "/" + package_name for revision in listdir(package_path): revision_path = package_path + "/" + revision package = self._galaxy_package_dep(revision_path, version) if package != INDETERMINATE_DEPENDENCY: return package return INDETERMINATE_DEPENDENCY