Hi Peter,

On Mar 19, 2013, at 7:44 AM, Peter Cock wrote:

Hi all,

I noticed today that there is a new yellow warning on the NCBI
BLAST+ repository in the main Galaxy Tool Shed,
http://toolshed.g2.bx.psu.edu/view/devteam/ncbi_blast_plus

Quote:
The settings for name, version and type from a contained tool
configuration file's requirement tag does not match the
information for the following tool dependency definitions in the
tool_dependencies.xml file, so these tool dependencies are
considered orphans within this repository.
* name: blast+, type: package, version: 2.2.26+

Is this complaining that none of the individual wrapper XML
files reference the tool_dependencies.xml's package:

   <package name="blast+" version="2.2.26+">

Instead, the tool XML files just declare a simple binary
dependency at the moment, e.g.

   <requirements>
       <requirement type="binary">blastp</requirement>
   </requirements>


You are correct.  A tool dependency definition is associated with a tool via the tool config's <requirement> tag set.  The combination of name, version and type is used to associated a tool with a tool dependency.  In this case, the name is "blast+", the version is "2.2.26+" and the type is "package".



Although it seems like unnecessary bookkeeping to me,


This bookkeeping is necessary in order to guarantee reproducibility.  Associating a specific tool with a specific tool dependency via the combination of a name, version and type will always ensure that that specific tool version will always produce the same analyses.  Galaxy itself has never guaranteed this kind of reproducibility because it has never required the combination of name, version and type for tool dependencies.  The tool shed has always required this.


is this new yellow warning suggesting each tool's XML
should reference the package somehow?

The information that is missing is the version in this case, and the type should be "package".  The tool config's requirements tag set should be:

   <requirements>
       <requirement type="package" version="2.2.26+">blastp</requirement>
   </requirements>


If so, then the
wiki needs updating as it only describes python-module
and binary as requirement types:
http://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax


The above wiki is the wiki for Galaxy, and does not pertain to the tool shed.  As mentioned above, Galaxy itself does allow for tool config <requirement> tags to not include version information where the tool shed does require this.

The tool shed wiki that describes this is available at:

http://wiki.galaxyproject.org/ToolShedToolFeatures#Automatic_third-party_tool_dependency_installation_and_compilation_with_installed_repositories


Specifically, the following paragraphs:

The xml root is the <tool_dependency> tag, which contains a <package> tag set for each required dependency.  Each <package> tag set contains tag sets that define the installation process as well as an optional <readme> tag that can contain free text information about requirements for compiling the package.

A very critical part of the information in the <package> tag is the combination of the name and version attributes.  These values must match the values of the same attributes in the <requirements> tag set of at least one tool config file included in the repository in order for the tool dependency to be installed.

For example the name and version information in the following <package> tag...


<package name="freebayes" version="0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8">

...matches the first <requirement> tag below whose type attribute value is package.  This tag set is included in the freebayes.xml tool config file in the repository.  Again, if a match is not found between typeversion and name, the tool dependency will not be properly defined for the repository, so it cannot be automatically installed.


<requirements>
    <requirement type="package" version="0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8">freebayes</requirement>
    <requirement type="package" version="0.1.18">samtools</requirement>
</requirements>


Thanks,

Peter
___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:

 http://lists.bx.psu.edu/