New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate repository_dependencies.xml from *.ga file(s) #118

Closed
peterjc opened this Issue Apr 7, 2015 · 1 comment

Comments

Projects
None yet
2 participants
@peterjc
Copy link
Contributor

peterjc commented Apr 7, 2015

Although there are some rough edges with installing workflows from the Tool Shed (e.g. http://dev.list.galaxyproject.org/Installing-workflows-from-the-Tool-Shed-is-very-confusing-tc4666888.html ) the ability for the workflow author to include a repository_dependencies.xml file ought to help with ensuring the workflow dependencies can be automatically installed by a Galaxy Administrator.

In principle, by parsing *.ga file (or set of files if you wanted to publish several workflows in a single ToolShed repository), the repository_dependencies.xml file could be auto generated - and this might be a useful feature for planemo.

(Alternatively this kind of logic might be better in the Tool Shed code, or in Galaxy's *.ga import code?).

For example with https://github.com/peterjc/galaxy_blast/tree/master/workflows/blast_top_hit_species I created the repository_dependencies.xml by hand, turning these lines in the *.ga file:

            "tool_id": "toolshed.g2.bx.psu.edu/repos/peterjc/sample_seqs/sample_seqs/0.2.1", 
            "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/ncbi_blast_plus/ncbi_blastx_wrapper/0.1.01", 
            "tool_id": "toolshed.g2.bx.psu.edu/repos/devteam/fasta_to_tabular/fasta2tab/1.1.0", 
            "tool_id": "toolshed.g2.bx.psu.edu/repos/bgruening/unique/bg_uniq/0.3", 

into:

    <repository owner="devteam" name="ncbi_blast_plus" />
    <repository owner="devteam" name="fasta_to_tabular" />
    <repository owner="peterjc" name="sample_seqs" />
    <repository owner="bgruening" name="unique" />

Upon upload to the Tool Shed as https://toolshed.g2.bx.psu.edu/view/peterjc/blast_top_hit_species these were filled in to point at the latest tool revisions (which at the time would have been the right version numbers):

    <repository changeset_revision="2fe07f50a41e" name="ncbi_blast_plus" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
    <repository changeset_revision="9d189d08f2ad" name="fasta_to_tabular" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
    <repository changeset_revision="02c13ef1a669" name="sample_seqs" owner="peterjc" toolshed="https://toolshed.g2.bx.psu.edu" />
    <repository changeset_revision="7ce75adb93be" name="unique" owner="bgruening" toolshed="https://toolshed.g2.bx.psu.edu" />

Note that a single workflow may contain tools installed from multiple Tool Shed repositories, but at the time of writing the repository_dependencies.xml file can only be used for dependencies within the same Tool Shed. Assuming the dependencies were from the same Tool Shed, then the revisions could be examined for suitable changeset_revision entries providing the desired version string of the tool.

@jmchilton

This comment has been minimized.

Copy link
Member

jmchilton commented Apr 9, 2015

This definitely needs to be easier - we could do it in planemo - that would be the quickest win - especially if we implement some of your other ideas for dealing with repositories (hopefully I will find some time to get to them). It would be cool if Galaxy could just figure this stuff out when installing these workflows too though.

jmchilton added a commit to jmchilton/planemo that referenced this issue Apr 23, 2015

Implement shed_init command.
Currently just creates .shed.yml files from command-line arguments. Arguably the tool author could just open this file and start editing but at least --help provides some sort guidance of what fields are available and validates categories for instance. The real reason to add this however is as a stepping stone toward galaxyproject#118.

jmchilton added a commit to jmchilton/planemo that referenced this issue Apr 23, 2015

Add --from_workflow to shed_init.
Builds out a repository_dependencies.xml from the specified workflow. If needed, this also copies the workflow into the target repository.

Closes galaxyproject#118.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment