galaxyproject / usegalaxy-tools

usegalaxy.* common tools
MIT License
12 stars 53 forks source link

usegalaxy.* tools

WORK IN PROGRESS

Using these tools

Add the following dependency resolver:

<conda prefix="/cvmfs/sandbox.galaxyproject.org/dependencies/conda" auto_install="False" auto_init="False" />

preferably above your existing conda dependency resolver (you will need to set conda_auto_install: false in your galaxy.yml).

And add the new shed tool conf:

tool_config_file: ...,/cvmfs/sandbox.galaxyproject.org/config/shed_tool_conf.xml

In your destination you should set:

<param id="singularity_enabled">true</param>
<param id="singularity_volumes">$defaults</param>

Setup

Requesting a new tool or updating a tool

Anyone can request tool installations or updates on usegalaxy.org or test.galaxyproject.org. In the commands below fill the {server_name} as appropriate (usegalaxy.org, test.galaxyproject.org)

  1. Fork and clone usegalaxy-tools
  2. Create/activate a virtualenv and pip install -r requirements.txt
  3. You are either installing a new repo or updating existing repo
    • NEW REPO
      1. If this is a new a section without an existing yml file create a new one like this:
        1. Determine the desired section label
        2. Normalize the section label to an ID/filename with this process
        3. Create {server_name}/<section_id>.yml setting tool_panel_section_label from the section label obtained in previous step (see existing yml files for exact syntax)
        4. Continue with the steps below
      2. Add the entry for the new tool to the section yml (only the yml, not the yml.lock) example
      3. Run $ make TOOLSET={server_name} fix (this will fill the yml.lock )
      4. Then $ git add <file> only the updates that you care about.
    • UPDATE REPO
      1. Find the yml and yml.lock files with the repository entries. Add the changeset hash of repo's desired installable revision to the yml.lock file example
        • Alternatively, run make TOOLSET={server_name} OWNER={repo_owner} update-trusted for every owner in your yml file, then run $ make TOOLSET={server_name} fix, and then $ git add <file> only the updates that you care about.
  4. Run make TOOLSET={server_name} lint
  5. Commit {server_name}/<repo>.yaml{.lock}
  6. Create a PR against the master branch of usegalaxy-tools
    • Use PR labels as appropriate
    • To aid PR mergers, you can include information on tools in the repo's use of $GALAXY_SLOTS, or even PR any needed update(s) to Main's job_conf.xml as explained in the "Determine tool requirements" section once the test installation (via Travis) succeeds (see details below)
  7. Once the PR is merged and the tool appears on usegalaxy.org or test.galaxyproject.org, test to ensure the tool works

Requesting a New Tool

Tips

Use make TOOLSET=<toolset_dir> <target> to limit a make action to a specific toolset subdirectory, e.g.:

$ make TOOLSET=usegalaxy.org lint
find ./usegalaxy.org -name '*.yml' | grep '^\./[^/]*/' | xargs -n 1 -P 8 python scripts/fix_lockfile.py
find ./usegalaxy.org -name '*.yml' | grep '^\./[^/]*/' | xargs -n 1 -P 8 -I{} pykwalify -d '{}' -s .schema.yml
 INFO - validation.valid
 INFO - validation.valid
 ...