Resolve default package definitions if extact version is unavailable.

Old behavior can be reverted by setting up a dependency_resolvers_conf.xml with the following contents

```
<dependency_resolvers>
  <tool_shed_packages />
  <galaxy_packages />
</dependency_resolvers>
```

The new behavior corresponds to the following dependency_resolvers_conf.xml contents:

```
<dependency_resolvers>
  <tool_shed_packages />
  <galaxy_packages />
  <galaxy_packages versionless="true" />
</dependency_resolvers>
```

Still think galaxy_packages should come before tool_shed_packages in resolution order so that deployers can fix broken tool shed installs with manual installs or deploy optimized versions of packages without having to mess with a dependency_resolvers_conf.xml file.
This commit is contained in:
John Chilton
2013-12-10 09:43:07 -06:00
parent ff065f8688
commit a655fa496c
2 changed files with 4 additions and 2 deletions
+1
View File
@@ -76,6 +76,7 @@ class DependencyManager( object ):
return [
ToolShedPackageDependencyResolver(self),
GalaxyPackageDependencyResolver(self),
GalaxyPackageDependencyResolver(self, versionless=True),
]
def __parse_resolver_conf_xml(self, tree):
+3 -2
View File
@@ -42,9 +42,10 @@ def test_tool_dependencies():
dependency = dm.find_dep( "dep1", None )
assert dependency.version == "2.0"
## Test default will not be fallen back upon by default
## Test default resolve will be fall back on default package dependency
## when using the default resolver.
dependency = dm.find_dep( "dep1", "2.1" )
assert dependency == INDETERMINATE_DEPENDENCY
assert dependency.version == "2.0" # 2.0 is defined as default_version
TEST_REPO_USER = "devteam"