From 1e312faccd0c396c182637cda563166ba1872a22 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 14 Oct 2015 23:15:51 -0400 Subject: [PATCH 001/141] Make Galaxy installable the Pythonic way via setup.py. Incomplete, but if you install it and then run `galaxy` from the root of a Galaxy clone, after installing all the dependencies (see the end of ./scripts/common_startup.sh), it should start. --- lib/galaxy/model/migrate/versions/__init__.py | 0 .../migrate/versions/__init__.py | 0 scripts/galaxy | 126 ++++++++++++++++++ setup.py | 62 +++++++++ 4 files changed, 188 insertions(+) create mode 100644 lib/galaxy/model/migrate/versions/__init__.py create mode 100644 lib/tool_shed/galaxy_install/migrate/versions/__init__.py create mode 100755 scripts/galaxy create mode 100644 setup.py diff --git a/lib/galaxy/model/migrate/versions/__init__.py b/lib/galaxy/model/migrate/versions/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/tool_shed/galaxy_install/migrate/versions/__init__.py b/lib/tool_shed/galaxy_install/migrate/versions/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/scripts/galaxy b/scripts/galaxy new file mode 100755 index 00000000000..323875c78fd --- /dev/null +++ b/scripts/galaxy @@ -0,0 +1,126 @@ +#!/bin/bash + +show_help() { +cat <&2 + exit 1 + fi + ;; + -c|--config) + if [ $# -gt 1 ]; then + GALAXY_CONFIG_DIR=$2 + shift 2 + else + echo "--config requires explicit argument" 1>&2 + exit 1 + fi + ;; + --) + shift + break + ;; + *) + break; + ;; + esac +done + +SCRIPTS_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PROJECT_DIRECTORY=$SCRIPTS_DIRECTORY/.. + +GALAXY_CONFIG_DIR=${GALAXY_CONFIG_DIR:-"./config"} +export GALAXY_CONFIG_DIR + +GALAXY_LOCAL_ENV=${GALAXY_LOCAL_ENV:-$GALAXY_CONFIG_DIR/local_env.sh} +export GALAXY_LOCAL_ENV + +GALAXY_VIRTUALENV=${GALAXY_VIRTUALENV:-$PROJECT_DIRECTORY/.venv} +export GALAXY_VIRTUALENV + +if [ -e $GALAXY_LOCAL_ENV ]; +then + echo "Sourcing file $GALAXY_LOCAL_ENV" + . $GALAXY_LOCAL_ENV +fi + +if [ -d $GALAXY_VIRTUALENV ]; +then + echo "Activating virtual environment $GALAXY_VIRTUALENV/bin/activate" + . $GALAXY_VIRTUALENV/bin/activate +fi + +GALAXY_CONFIG_SAMPLE_FILE="${PROJECT_DIRECTORY}/galaxy.ini.sample" +if [ -z "$GALAXY_CONFIG_FILE" ]; then + if [ -f "${GALAXY_CONFIG_DIR}/galaxy.ini" ]; then + GALAXY_CONFIG_FILE="${GALAXY_CONFIG_DIR}/galaxy.ini" + else + GALAXY_CONFIG_FILE="$GALAXY_CONFIG_SAMPLE_FILE" + fi + export GALAXY_CONFIG_FILE +fi + +if [ -z "$MODE" ]; +then + if hash uwsgi 2>/dev/null; then + MODE="uwsgi" + else + MODE="paster" + fi +fi + +if [ "$MODE" == "uwsgi" ]; then + echo "Starting galaxy with command [uwsgi --ini-paste \"$GALAXY_CONFIG_FILE\" \"$@\"]" + uwsgi --ini-paste "$GALAXY_CONFIG_FILE" "$@" +elif [ "$MODE" == "paster" ]; then + echo "Starting galaxy with command [galaxy-paster serve \"$GALAXY_CONFIG_FILE\" \"$@\"]" + galaxy-paster serve "$GALAXY_CONFIG_FILE" "$@" +elif [ "$MODE" == "webless" ]; then + if hash galaxy-main 2>/dev/null; then + # Running from pip install since + # galaxy-main is available on PATH. + echo "Starting galaxy with command [galaxy-main]" + galaxy-main + else + # Running locally. + PROJECT_DIRECTORY=$GALAXY_SCRIPTS_DIR/.. + cd $PROJECT_DIRECTORY + export PYTHONPATH=.:$PYTHONPATH + echo "Starting galaxy with command [python lib/galaxy/main.py]" + python lib/pulsar/main.py + fi +else + echo "Unknown mode passed to --mode argument." 1>&2 + exit 1 +fi diff --git a/setup.py b/setup.py new file mode 100644 index 00000000000..4b3634016db --- /dev/null +++ b/setup.py @@ -0,0 +1,62 @@ +import sys + +from setuptools import setup, find_packages + + +readme = open('README.rst').read() + +# Obviously this should not be empty, but for the moment, use: +# pip install -e git+https://github.com/natefoo/pip@linux-wheels#egg=pip && \ +# pip install -r requirements.txt --index-url https://wheels.galaxyproject.org/simple/ +requirements = [ +] + + +# sets VERSION (also VERSION_MAJOR and VERSION_MINOR) +execfile('lib/galaxy/version.py') + +scripts = ["scripts/galaxy"] + +setup( + name='galaxy', + version=VERSION, + description='Galaxy (http://galaxyproject.org/).', + long_description=readme, + author='Galaxy Project', + author_email='galaxy-dev@lists.galaxyproject.org', + url='https://github.com/galaxyproject/galaxy', + packages=find_packages('lib'), + entry_points=''' + [console_scripts] + galaxy-paster=galaxy.util.pastescript.serve:run + galaxy-main=galaxy.main:main + ''', + scripts=scripts, + package_data={'galaxy': [ + 'exceptions/error_codes.json', + 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', + 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', + 'model/migrate/migrate.cfg', + 'util/docutils_template.txt', + ], 'tool_shed': [ + 'galaxy_install/migrate/migrate.cfg', + ]}, + package_dir={'': 'lib'}, + include_package_data=True, + install_requires=requirements, + license="Academic Free License 3.0", + zip_safe=False, + keywords='galaxy', + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Environment :: Console', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: POSIX', + 'Natural Language :: English', + "Programming Language :: Python :: 2", + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + ], + test_suite='test' +) From 362b27ed2f4ee31245f5e9aaddd446324721defa Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 15 Oct 2015 10:30:51 -0400 Subject: [PATCH 002/141] Add some missing package data (although whether Galaxy can find it is another story), fix classifiers. --- setup.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 4b3634016db..26daeb8b8dc 100644 --- a/setup.py +++ b/setup.py @@ -37,9 +37,18 @@ setup( 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', 'model/migrate/migrate.cfg', - 'util/docutils_template.txt', + 'dependencies/*.txt', + 'datatypes/converters/*.xml', + 'datatypes/set_metadata_tool.xml', + 'tools/imp_exp/imp_history_from_archive.xml', + 'tools/imp_exp/exp_history_to_archive.xml', + # FIXME: web/proxy/js/lib doesn't exist + #'web/proxy/js/*', ], 'tool_shed': [ 'galaxy_install/migrate/migrate.cfg', + 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', + 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', + 'scripts/bootstrap_tool_shed/user_info.xml', ]}, package_dir={'': 'lib'}, include_package_data=True, @@ -50,13 +59,15 @@ setup( classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', + 'Intended Audience :: Science/Research', 'Environment :: Console', - 'License :: OSI Approved :: Apache Software License', + 'License :: OSI Approved :: Academic Free License (AFL)', 'Operating System :: POSIX', 'Natural Language :: English', - "Programming Language :: Python :: 2", + 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.6', 'Programming Language :: Python :: 2.7', + 'Topic :: Scientific/Engineering :: Bio-Informatics', ], test_suite='test' ) From cfc3bee2a2e0326fc1db958c8711628da71778ee Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 13 May 2016 14:13:11 -0400 Subject: [PATCH 003/141] Initial work toward separate galaxy-lib, galaxy-app, galaxy, and tool-shed packages (see #1396). Lots of path fixing to be done still. --- setup.py | 119 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 99 insertions(+), 20 deletions(-) diff --git a/setup.py b/setup.py index 26daeb8b8dc..f6dfe52ec56 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +import os import sys from setuptools import setup, find_packages @@ -11,6 +12,91 @@ readme = open('README.rst').read() requirements = [ ] +GALAXY_PACKAGE = os.environ.get("GALAXY_PACKAGE", "galaxy-lib") + +def _find_packages(base): + r = [] + for sub in find_packages(os.sep.join(['lib'] + base.split('.'))): + print 'Found package', '.'.join([base, sub]) + r.append('.'.join([base, sub])) + return r + + +if GALAXY_PACKAGE == "galaxy-lib": + requirements = [] + base_packages = [ + 'galaxy.datatypes', + 'galaxy.exceptions', + 'galaxy.jobs.metrics', + 'galaxy.objectstore', + 'galaxy.tools', + 'galaxy.util', + ] + package_data = [ + 'exceptions/error_codes.json', + 'datatypes/converters/*.xml', + 'datatypes/set_metadata_tool.xml', + 'tools/imp_exp/imp_history_from_archive.xml', + 'tools/imp_exp/exp_history_to_archive.xml', + ] +elif GALAXY_PACKAGE == "galaxy-app": + requirements = [ + 'galaxy-lib', + ] + base_packages = [ + 'galaxy.auth', + 'galaxy.dependencies', + 'galaxy.external_services', + 'galaxy.jobs', + 'galaxy.model', + 'galaxy.quota', + 'galaxy.security', + 'galaxy.work', + ] + package_data = [ + 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', + 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', + 'model/migrate/migrate.cfg', + 'dependencies/*.txt', + # FIXME: web/proxy/js/lib doesn't exist + #'web/proxy/js/*', + ] +elif GALAXY_PACKAGE == "galaxy": + requirements = [ + 'galaxy-app', + ] + base_packages = [ + 'galaxy.actions', + 'galaxy.dataset_collections', + 'galaxy.forms', + 'galaxy.managers', + 'galaxy.openid', + 'galaxy.sample_tracking', + 'galaxy.tags', + 'galaxy.tours', + 'galaxy.visualization', + 'galaxy.web', + 'galaxy.webapps', + 'galaxy.workflow', + ] + package_data = [] +elif GALAXY_PACKAGE == 'tool-shed': + requirements = [ + 'galaxy-app', + ] + packages = ['tool_shed'] + _find_packages('tool_shed') + package_data = [] +else: + sys.stderr.write('ERROR: Unknown package name: {}\n'.format(GALAXY_PACKAGE)) + sys.exit(1) + + +if GALAXY_PACKAGE.startswith('galaxy'): + packages = ['galaxy'] + for base_package in base_packages: + packages.append(base_package) + packages.extend(_find_packages(base_package)) + # sets VERSION (also VERSION_MAJOR and VERSION_MINOR) execfile('lib/galaxy/version.py') @@ -18,38 +104,31 @@ execfile('lib/galaxy/version.py') scripts = ["scripts/galaxy"] setup( - name='galaxy', + #name='galaxy', + name=GALAXY_PACKAGE, version=VERSION, description='Galaxy (http://galaxyproject.org/).', long_description=readme, author='Galaxy Project', author_email='galaxy-dev@lists.galaxyproject.org', url='https://github.com/galaxyproject/galaxy', - packages=find_packages('lib'), + #packages=find_packages('lib'), + packages=packages, entry_points=''' [console_scripts] galaxy-paster=galaxy.util.pastescript.serve:run galaxy-main=galaxy.main:main ''', scripts=scripts, - package_data={'galaxy': [ - 'exceptions/error_codes.json', - 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', - 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', - 'model/migrate/migrate.cfg', - 'dependencies/*.txt', - 'datatypes/converters/*.xml', - 'datatypes/set_metadata_tool.xml', - 'tools/imp_exp/imp_history_from_archive.xml', - 'tools/imp_exp/exp_history_to_archive.xml', - # FIXME: web/proxy/js/lib doesn't exist - #'web/proxy/js/*', - ], 'tool_shed': [ - 'galaxy_install/migrate/migrate.cfg', - 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', - 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', - 'scripts/bootstrap_tool_shed/user_info.xml', - ]}, + package_data={ + 'galaxy': package_data, + 'tool_shed': [ + 'galaxy_install/migrate/migrate.cfg', + 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', + 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', + 'scripts/bootstrap_tool_shed/user_info.xml', + ], + }, package_dir={'': 'lib'}, include_package_data=True, install_requires=requirements, From 77c2d153619a182d5be165fccd2cb85ab60b9725 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 16 May 2016 16:45:36 -0400 Subject: [PATCH 004/141] Move tools, images, and templates in to lib/galaxy/ for inclusion in wheels and packages. --- .../configs}/biom/biom_simple.xml | 0 .../configs}/ensembl/ensembl_bam.xml | 0 .../configs}/ensembl/ensembl_gff.xml | 0 .../configs}/ensembl/ensembl_interval_as_bed.xml | 0 .../configs}/gbrowse/gbrowse_gff.xml | 0 .../configs}/gbrowse/gbrowse_interval_as_bed.xml | 0 .../configs}/gbrowse/gbrowse_wig.xml | 0 .../display_applications/configs}/igb/bam.xml | 0 .../display_applications/configs}/igb/bb.xml | 0 .../display_applications/configs}/igb/bed.xml | 0 .../display_applications/configs}/igb/bedgraph.xml | 0 .../display_applications/configs}/igb/bigwig.xml | 0 .../display_applications/configs}/igb/gtf.xml | 0 .../display_applications/configs}/igb/wig.xml | 0 .../display_applications/configs}/igv/bam.xml | 0 .../display_applications/configs}/igv/gff.xml | 0 .../configs}/igv/interval_as_bed.xml | 0 .../display_applications/configs}/igv/vcf.xml | 0 .../display_applications/configs}/iobio/bam.xml | 0 .../display_applications/configs}/iobio/vcf.xml | 0 .../display_applications/configs}/rviewer/bed.xml | 0 .../display_applications/configs}/rviewer/vcf.xml | 0 .../display_applications/configs}/ucsc/bam.xml | 0 .../display_applications/configs}/ucsc/bigbed.xml | 0 .../display_applications/configs}/ucsc/bigwig.xml | 0 .../configs}/ucsc/interval_as_bed.xml | 0 .../configs}/ucsc/maf_customtrack.xml | 0 .../display_applications/configs}/ucsc/vcf.xml | 0 .../tools/bundled}/data_source/access_libraries.xml | 0 .../tools/bundled}/data_source/bed_convert.xml | 0 .../galaxy/tools/bundled}/data_source/biomart.xml | 0 .../tools/bundled}/data_source/biomart_test.xml | 0 .../tools/bundled}/data_source/cbi_rice_mart.xml | 0 .../tools/bundled}/data_source/data_source.py | 0 .../galaxy/tools/bundled}/data_source/ebi_sra.xml | 0 .../galaxy/tools/bundled}/data_source/eupathdb.xml | 0 .../galaxy/tools/bundled}/data_source/fetch.py | 0 .../tools/bundled}/data_source/fly_modencode.xml | 0 .../galaxy/tools/bundled}/data_source/flymine.xml | 0 .../tools/bundled}/data_source/flymine_test.xml | 0 .../galaxy/tools/bundled}/data_source/genbank.py | 0 .../galaxy/tools/bundled}/data_source/genbank.xml | 0 .../tools/bundled}/data_source/gramene_mart.xml | 0 .../tools/bundled}/data_source/hapmapmart.xml | 0 .../galaxy/tools/bundled}/data_source/hbvar.xml | 0 .../tools/bundled}/data_source/hbvar_filter.py | 0 .../galaxy/tools/bundled}/data_source/import.py | 0 .../galaxy/tools/bundled}/data_source/import.xml | 0 .../tools/bundled}/data_source/metabolicmine.xml | 0 .../tools/bundled}/data_source/microbial_import.py | 0 .../tools/bundled}/data_source/microbial_import.xml | 0 .../bundled}/data_source/microbial_import_code.py | 0 .../galaxy/tools/bundled}/data_source/modmine.xml | 0 .../galaxy/tools/bundled}/data_source/mousemine.xml | 0 .../galaxy/tools/bundled}/data_source/ratmine.xml | 0 .../bundled}/data_source/ucsc_tablebrowser.xml | 0 .../data_source/ucsc_tablebrowser_archaea.xml | 0 .../bundled}/data_source/ucsc_tablebrowser_test.xml | 0 .../galaxy/tools/bundled}/data_source/upload.py | 0 .../galaxy/tools/bundled}/data_source/upload.xml | 0 .../tools/bundled}/data_source/worm_modencode.xml | 0 .../galaxy/tools/bundled}/data_source/wormbase.xml | 0 .../tools/bundled}/data_source/wormbase_test.xml | 0 .../galaxy/tools/bundled}/data_source/yeastmine.xml | 0 .../tools/bundled}/data_source/zebrafishmine.xml | 0 .../galaxy/tools/bundled}/evolution/add_scores.py | 0 .../galaxy/tools/bundled}/evolution/add_scores.xml | 0 .../galaxy/tools/bundled}/evolution/codingSnps.pl | 0 .../galaxy/tools/bundled}/evolution/codingSnps.xml | 0 .../tools/bundled}/evolution/codingSnps_filter.py | 0 .../tools/bundled}/extract/extract_genomic_dna.py | 0 .../tools/bundled}/extract/extract_genomic_dna.xml | 0 .../tools/bundled}/extract/liftOver_wrapper.py | 0 .../tools/bundled}/extract/liftOver_wrapper.xml | 0 .../galaxy/tools/bundled}/filters/CreateInterval.pl | 0 .../tools/bundled}/filters/CreateInterval.xml | 0 .../tools/bundled}/filters/axt_to_concat_fasta.py | 0 .../tools/bundled}/filters/axt_to_concat_fasta.xml | 0 .../galaxy/tools/bundled}/filters/axt_to_fasta.py | 0 .../galaxy/tools/bundled}/filters/axt_to_fasta.xml | 0 .../galaxy/tools/bundled}/filters/axt_to_lav.py | 0 .../galaxy/tools/bundled}/filters/axt_to_lav.xml | 0 .../tools/bundled}/filters/axt_to_lav_code.py | 0 .../galaxy/tools/bundled}/filters/bed2gff.xml | 0 .../galaxy/tools/bundled}/filters/bed_to_bigbed.xml | 0 .../tools/bundled}/filters/bed_to_gff_converter.py | 0 .../galaxy/tools/bundled}/filters/catWrapper.py | 0 .../galaxy/tools/bundled}/filters/catWrapper.xml | 0 .../galaxy/tools/bundled}/filters/changeCase.pl | 0 .../galaxy/tools/bundled}/filters/changeCase.xml | 0 .../galaxy/tools/bundled}/filters/commWrapper.pl | 0 .../galaxy/tools/bundled}/filters/commWrapper.xml | 0 .../galaxy/tools/bundled}/filters/compare.xml | 0 .../tools/bundled}/filters/condense_characters.pl | 0 .../tools/bundled}/filters/condense_characters.xml | 0 .../tools/bundled}/filters/convert_characters.pl | 0 .../tools/bundled}/filters/convert_characters.py | 0 .../tools/bundled}/filters/convert_characters.xml | 0 .../galaxy/tools/bundled}/filters/cutWrapper.pl | 0 .../galaxy/tools/bundled}/filters/cutWrapper.xml | 0 .../galaxy/tools/bundled}/filters/fileGrep.xml | 0 .../tools/bundled}/filters/fixedValueColumn.pl | 0 .../tools/bundled}/filters/fixedValueColumn.xml | 0 .../bundled}/filters/gff/extract_GFF_Features.py | 0 .../bundled}/filters/gff/extract_GFF_Features.xml | 0 .../bundled}/filters/gff/gff_filter_by_attribute.py | 0 .../filters/gff/gff_filter_by_attribute.xml | 0 .../filters/gff/gff_filter_by_feature_count.py | 0 .../filters/gff/gff_filter_by_feature_count.xml | 0 .../gff/gtf_filter_by_attribute_values_list.py | 0 .../gff/gtf_filter_by_attribute_values_list.xml | 0 .../galaxy/tools/bundled}/filters/gff/sort_gtf.py | 0 .../galaxy/tools/bundled}/filters/gff2bed.xml | 0 .../tools/bundled}/filters/gff_to_bed_converter.py | 0 {tools => lib/galaxy/tools/bundled}/filters/grep.py | 0 .../galaxy/tools/bundled}/filters/grep.xml | 0 .../galaxy/tools/bundled}/filters/gtf2bedgraph.xml | 0 .../bundled}/filters/gtf_to_bedgraph_converter.py | 0 .../galaxy/tools/bundled}/filters/headWrapper.pl | 0 .../galaxy/tools/bundled}/filters/headWrapper.xml | 0 {tools => lib/galaxy/tools/bundled}/filters/join.py | 0 .../galaxy/tools/bundled}/filters/joinWrapper.pl | 0 .../galaxy/tools/bundled}/filters/joinWrapper.py | 0 .../galaxy/tools/bundled}/filters/joiner.xml | 0 .../galaxy/tools/bundled}/filters/joiner2.xml | 0 .../galaxy/tools/bundled}/filters/lav_to_bed.py | 0 .../galaxy/tools/bundled}/filters/lav_to_bed.xml | 0 .../tools/bundled}/filters/lav_to_bed_code.py | 0 .../galaxy/tools/bundled}/filters/mergeCols.py | 0 .../galaxy/tools/bundled}/filters/mergeCols.xml | 0 .../galaxy/tools/bundled}/filters/pasteWrapper.pl | 0 .../galaxy/tools/bundled}/filters/pasteWrapper.xml | 0 .../tools/bundled}/filters/random_lines_two_pass.py | 0 .../galaxy/tools/bundled}/filters/randomlines.py | 0 .../galaxy/tools/bundled}/filters/randomlines.xml | 0 .../tools/bundled}/filters/remove_beginning.pl | 0 .../tools/bundled}/filters/remove_beginning.xml | 0 .../bundled}/filters/secure_hash_message_digest.py | 0 .../bundled}/filters/secure_hash_message_digest.xml | 0 .../galaxy/tools/bundled}/filters/sff_extract.py | 0 .../galaxy/tools/bundled}/filters/sff_extractor.xml | 0 .../galaxy/tools/bundled}/filters/sorter.py | 0 .../galaxy/tools/bundled}/filters/sorter.xml | 0 .../galaxy/tools/bundled}/filters/tailWrapper.pl | 0 .../galaxy/tools/bundled}/filters/tailWrapper.xml | 0 .../galaxy/tools/bundled}/filters/trimmer.py | 0 .../galaxy/tools/bundled}/filters/trimmer.xml | 0 .../bundled}/filters/ucsc_gene_bed_to_exon_bed.py | 0 .../bundled}/filters/ucsc_gene_bed_to_exon_bed.xml | 0 .../bundled}/filters/ucsc_gene_bed_to_intron_bed.py | 0 .../filters/ucsc_gene_bed_to_intron_bed.xml | 0 .../filters/ucsc_gene_table_to_intervals.py | 0 .../filters/ucsc_gene_table_to_intervals.xml | 0 {tools => lib/galaxy/tools/bundled}/filters/uniq.py | 0 .../galaxy/tools/bundled}/filters/uniq.xml | 0 .../galaxy/tools/bundled}/filters/wc_gnu.xml | 0 .../galaxy/tools/bundled}/filters/wig_to_bigwig.xml | 0 .../tools/bundled}/filters/wiggle_to_simple.py | 0 .../tools/bundled}/filters/wiggle_to_simple.xml | 0 .../bundled}/genomespace/genomespace_exporter.py | 0 .../bundled}/genomespace/genomespace_exporter.xml | 0 .../genomespace/genomespace_file_browser.py | 0 .../genomespace/genomespace_file_browser_dev.xml | 0 .../genomespace/genomespace_file_browser_prod.xml | 0 .../genomespace/genomespace_file_browser_test.xml | 0 .../bundled}/genomespace/genomespace_importer.py | 0 .../bundled}/genomespace/genomespace_importer.xml | 0 .../tools/bundled}/maf/genebed_maf_to_fasta.xml | 0 .../galaxy/tools/bundled}/maf/interval2maf.py | 0 .../galaxy/tools/bundled}/maf/interval2maf.xml | 0 .../tools/bundled}/maf/interval2maf_pairwise.xml | 0 .../bundled}/maf/interval_maf_to_merged_fasta.py | 0 .../bundled}/maf/interval_maf_to_merged_fasta.xml | 0 {tools => lib/galaxy/tools/bundled}/maf/macros.xml | 0 .../tools/bundled}/maf/maf_by_block_number.py | 0 .../tools/bundled}/maf/maf_by_block_number.xml | 0 .../galaxy/tools/bundled}/maf/maf_filter.py | 0 .../galaxy/tools/bundled}/maf/maf_filter.xml | 0 .../galaxy/tools/bundled}/maf/maf_limit_size.py | 0 .../galaxy/tools/bundled}/maf/maf_limit_size.xml | 0 .../tools/bundled}/maf/maf_limit_to_species.py | 0 .../tools/bundled}/maf/maf_limit_to_species.xml | 0 .../tools/bundled}/maf/maf_reverse_complement.py | 0 .../tools/bundled}/maf/maf_reverse_complement.xml | 0 .../tools/bundled}/maf/maf_split_by_species.py | 0 .../tools/bundled}/maf/maf_split_by_species.xml | 0 .../galaxy/tools/bundled}/maf/maf_stats.py | 0 .../galaxy/tools/bundled}/maf/maf_stats.xml | 0 .../tools/bundled}/maf/maf_thread_for_species.py | 0 .../tools/bundled}/maf/maf_thread_for_species.xml | 0 .../galaxy/tools/bundled}/maf/maf_to_bed.py | 0 .../galaxy/tools/bundled}/maf/maf_to_bed.xml | 0 .../galaxy/tools/bundled}/maf/maf_to_bed_code.py | 0 .../galaxy/tools/bundled}/maf/maf_to_fasta.xml | 0 .../tools/bundled}/maf/maf_to_fasta_concat.py | 0 .../bundled}/maf/maf_to_fasta_multiple_sets.py | 0 .../galaxy/tools/bundled}/maf/maf_to_interval.py | 0 .../galaxy/tools/bundled}/maf/maf_to_interval.xml | 0 .../tools/bundled}/maf/vcf_to_maf_customtrack.py | 0 .../tools/bundled}/maf/vcf_to_maf_customtrack.xml | 0 {tools => lib/galaxy/tools/bundled}/meme/fimo.xml | 0 .../galaxy/tools/bundled}/meme/fimo_wrapper.py | 0 {tools => lib/galaxy/tools/bundled}/meme/meme.xml | 0 .../tools/bundled}/metag_tools/blat_wrapper.py | 0 .../tools/bundled}/metag_tools/blat_wrapper.xml | 0 .../bundled}/metag_tools/shrimp_color_wrapper.py | 0 .../bundled}/metag_tools/shrimp_color_wrapper.xml | 0 .../tools/bundled}/metag_tools/shrimp_wrapper.py | 0 .../tools/bundled}/metag_tools/shrimp_wrapper.xml | 0 .../next_gen_conversion/bwa_solid2fastq_modified.pl | 0 .../next_gen_conversion/fastq_conversions.py | 0 .../next_gen_conversion/fastq_conversions.xml | 0 .../bundled}/next_gen_conversion/fastq_gen_conv.py | 0 .../bundled}/next_gen_conversion/fastq_gen_conv.xml | 0 .../bundled}/next_gen_conversion/solid2fastq.py | 0 .../bundled}/next_gen_conversion/solid2fastq.xml | 0 .../bundled}/next_gen_conversion/solid_to_fastq.py | 0 .../bundled}/next_gen_conversion/solid_to_fastq.xml | 0 .../tools/bundled}/ngs_simulation/ngs_simulation.py | 0 .../bundled}/ngs_simulation/ngs_simulation.xml | 0 .../bundled}/phenotype_association/BEAM2_wrapper.sh | 0 .../tools/bundled}/phenotype_association/beam.xml | 0 .../tools/bundled}/phenotype_association/gpass.pl | 0 .../tools/bundled}/phenotype_association/gpass.xml | 0 .../bundled}/phenotype_association/ldtools.xml | 0 .../phenotype_association/ldtools_wrapper.sh | 0 .../bundled}/phenotype_association/linkToDavid.pl | 0 .../bundled}/phenotype_association/linkToDavid.xml | 0 .../phenotype_association/linkToGProfile.pl | 0 .../phenotype_association/linkToGProfile.xml | 0 .../bundled}/phenotype_association/lped_to_geno.pl | 0 .../tools/bundled}/phenotype_association/lps.xml | 0 .../phenotype_association/lps_tool_wrapper.sh | 0 .../bundled}/phenotype_association/master2gd_snp.pl | 0 .../phenotype_association/master2gd_snp.xml | 0 .../bundled}/phenotype_association/master2pg.pl | 0 .../bundled}/phenotype_association/master2pg.xml | 0 .../bundled}/phenotype_association/mergeSnps.pl | 0 .../tools/bundled}/phenotype_association/pagetag.py | 0 .../tools/bundled}/phenotype_association/pass.xml | 0 .../bundled}/phenotype_association/pass_wrapper.sh | 0 .../tools/bundled}/phenotype_association/senatag.py | 0 .../tools/bundled}/phenotype_association/sift.xml | 0 .../phenotype_association/sift_variants_wrapper.sh | 0 .../bundled}/phenotype_association/vcf2pgSnpMult.pl | 0 .../galaxy/tools/bundled}/plotting/bar_chart.py | 0 .../galaxy/tools/bundled}/plotting/bar_chart.xml | 0 .../galaxy/tools/bundled}/plotting/boxplot.xml | 0 .../tools/bundled}/solid_tools/maq_cs_wrapper.py | 0 .../tools/bundled}/solid_tools/maq_cs_wrapper.xml | 0 .../bundled}/solid_tools/maq_cs_wrapper_code.py | 0 .../bundled}/solid_tools/qualsolid_boxplot_graph.sh | 0 .../bundled}/solid_tools/solid_qual_boxplot.xml | 0 .../tools/bundled}/solid_tools/solid_qual_stats.py | 0 .../tools/bundled}/solid_tools/solid_qual_stats.xml | 0 .../galaxy/tools/bundled}/sr_assembly/velvetg.xml | 0 .../tools/bundled}/sr_assembly/velvetg_wrapper.py | 0 .../galaxy/tools/bundled}/sr_assembly/velveth.xml | 0 .../tools/bundled}/sr_assembly/velveth_wrapper.py | 0 .../galaxy/tools/bundled}/sr_mapping/PerM.xml | 0 .../tools/bundled}/sr_mapping/bfast_wrapper.py | 0 .../tools/bundled}/sr_mapping/bfast_wrapper.xml | 0 .../tools/bundled}/sr_mapping/fastq_statistics.xml | 0 .../galaxy/tools/bundled}/sr_mapping/mosaik.xml | 0 .../tools/bundled}/sr_mapping/srma_wrapper.py | 0 .../tools/bundled}/sr_mapping/srma_wrapper.xml | 0 .../stats/aggregate_binned_scores_in_intervals.xml | 0 .../bundled}/stats/aggregate_scores_in_intervals.py | 0 .../galaxy/tools/bundled}/stats/filtering.py | 0 .../galaxy/tools/bundled}/stats/filtering.xml | 0 .../galaxy/tools/bundled}/stats/grouping.py | 0 .../galaxy/tools/bundled}/stats/grouping.xml | 0 .../galaxy/tools/bundled}/stats/gsummary.py | 0 .../galaxy/tools/bundled}/stats/gsummary.xml | 0 .../galaxy/tools/bundled}/stats/gsummary.xml.groups | 0 .../galaxy/tools/bundled}/stats/r_wrapper.sh | 0 .../galaxy/tools/bundled}/visualization/LAJ.py | 0 .../galaxy/tools/bundled}/visualization/LAJ.xml | 0 .../galaxy/tools/bundled}/visualization/LAJ_code.py | 0 .../static}/images/Armitagep_manhattan.png | Bin .../framework/static}/images/Armitagep_qqplot.png | Bin .../web/framework/static}/images/add_icon.png | Bin .../web/framework/static}/images/add_icon_dark.png | Bin .../framework/static}/images/aggregate_history1.png | Bin .../framework/static}/images/aggregate_history2.png | Bin .../web/framework/static}/images/bar_chart.png | Bin .../web/framework/static}/images/bed_warn.png | Bin .../web/framework/static}/images/closebox.png | Bin .../static}/images/dat_points_table_brows_1.png | Bin .../web/framework/static}/images/ddarrowsplit.png | Bin .../galaxy/web/framework/static}/images/delete.gif | Bin .../static}/images/delete_tag_icon_gray.png | Bin .../static}/images/delete_tag_icon_white.png | Bin .../static}/images/documents-stack-faded.png | Bin .../framework/static}/images/documents-stack.png | Bin .../web/framework/static}/images/dropdownarrow.png | Bin .../galaxy/web/framework/static}/images/dw.gif | Bin .../web/framework/static}/images/fetchTax.png | Bin .../static}/images/fonts/fontawesome-webfont.eot | Bin .../static}/images/fonts/fontawesome-webfont.ttf | Bin .../static}/images/fonts/fontawesome-webfont.woff | Bin .../static}/images/fonts/iconic_stroke.eot | Bin .../static}/images/fonts/iconic_stroke.otf | Bin .../static}/images/fonts/iconic_stroke.svg | 0 .../static}/images/fonts/iconic_stroke.ttf | Bin .../images/fugue/application-dock-270-bw.png | Bin .../static}/images/fugue/application-dock-270.png | Bin .../static}/images/fugue/arrow-000-small-bw.png | Bin .../framework/static}/images/fugue/arrow-090.png | Bin .../framework/static}/images/fugue/arrow-circle.png | Bin .../static}/images/fugue/arrow-resize-090-bw.png | Bin .../static}/images/fugue/arrow-resize-090.png | Bin .../static}/images/fugue/arrow-split-bw.png | Bin .../framework/static}/images/fugue/arrow-split.png | Bin .../images/fugue/arrow-transition-270-bw.png | Bin .../static}/images/fugue/arrow-transition-bw.png | Bin .../static}/images/fugue/asterisk-small-outline.png | Bin .../static}/images/fugue/asterisk-small-yellow.png | Bin .../static}/images/fugue/asterisk-small.png | Bin .../static}/images/fugue/block--plus-bw.png | Bin .../framework/static}/images/fugue/block--plus.png | Bin .../framework/static}/images/fugue/bookmarks-bw.png | Bin .../framework/static}/images/fugue/bookmarks.png | Bin .../web/framework/static}/images/fugue/bug.png | Bin .../web/framework/static}/images/fugue/chart.png | Bin .../static}/images/fugue/chevron-expand-bw.png | Bin .../static}/images/fugue/chevron-expand.png | Bin .../web/framework/static}/images/fugue/chevron.png | Bin .../framework/static}/images/fugue/control-270.png | Bin .../framework/static}/images/fugue/cross-button.png | Bin .../static}/images/fugue/cross-circle-bw.png | Bin .../framework/static}/images/fugue/cross-circle.png | Bin .../static}/images/fugue/cross-small-bw.png | Bin .../web/framework/static}/images/fugue/cross.png | Bin .../static}/images/fugue/disk--arrow-bw.png | Bin .../framework/static}/images/fugue/disk--arrow.png | Bin .../web/framework/static}/images/fugue/disk.png | Bin .../framework/static}/images/fugue/exclamation.png | Bin .../web/framework/static}/images/fugue/external.png | Bin .../web/framework/static}/images/fugue/eye.png | Bin .../web/framework/static}/images/fugue/gear-bw.png | Bin .../web/framework/static}/images/fugue/gear.png | Bin .../web/framework/static}/images/fugue/globe-bw.png | Bin .../web/framework/static}/images/fugue/globe.png | Bin .../framework/static}/images/fugue/hammer-bw.png | Bin .../web/framework/static}/images/fugue/hammer.png | Bin .../static}/images/fugue/information-white.png | Bin .../static}/images/fugue/layer-transparent-bw.png | Bin .../static}/images/fugue/layer-transparent.png | Bin .../static}/images/fugue/layers-stack-bw.png | Bin .../framework/static}/images/fugue/layers-stack.png | Bin .../static}/images/fugue/magnifier-left.png | Bin .../static}/images/fugue/magnifier-zoom-out.png | Bin .../static}/images/fugue/magnifier-zoom.png | Bin .../framework/static}/images/fugue/navigation.png | Bin .../framework/static}/images/fugue/pencil-small.png | Bin .../web/framework/static}/images/fugue/pencil.png | Bin .../static}/images/fugue/plus-button-bw.png | Bin .../framework/static}/images/fugue/plus-button.png | Bin .../framework/static}/images/fugue/plus-circle.png | Bin .../static}/images/fugue/sticky-note-text.png | Bin .../framework/static}/images/fugue/tag--plus.png | Bin .../framework/static}/images/fugue/tag-label.png | Bin .../web/framework/static}/images/fugue/tags.png | Bin .../framework/static}/images/fugue/toggle-bw.png | Bin .../static}/images/fugue/toggle-expand-bw.png | Bin .../static}/images/fugue/toggle-expand.png | Bin .../web/framework/static}/images/fugue/toggle.png | Bin .../framework/static}/images/fugue/toolbox-bw.png | Bin .../web/framework/static}/images/fugue/toolbox.png | Bin .../static}/images/fugue/ui-slider-050-bw.png | Bin .../static}/images/fugue/ui-slider-050.png | Bin .../framework/static}/images/galaxyIcon_noText.png | Bin .../web/framework/static}/images/hatch-023858.png | Bin .../framework/static}/images/hatch-fade-023858.gif | Bin .../web/framework/static}/images/histogram.png | Bin .../web/framework/static}/images/histogram2.png | Bin .../static}/images/history-buttons/delete_icon.png | Bin .../images/history-buttons/delete_icon_dark.png | Bin .../images/history-buttons/delete_icon_grey.png | Bin .../static}/images/history-buttons/eye_icon.png | Bin .../images/history-buttons/eye_icon_dark.png | Bin .../images/history-buttons/eye_icon_grey.png | Bin .../static}/images/history-buttons/pencil_icon.png | Bin .../images/history-buttons/pencil_icon_dark.png | Bin .../images/history-buttons/pencil_icon_grey.png | Bin .../static}/images/history-states/data_empty.png | Bin .../static}/images/history-states/data_error.png | Bin .../static}/images/history-states/data_ok.png | Bin .../static}/images/history-states/data_queued.png | Bin .../galaxy/web/framework/static}/images/history.gif | Bin .../framework/static}/images/history_down_arrow.gif | Bin .../framework/static}/images/history_up_arrow.gif | Bin .../web/framework/static}/images/icon_error_lrg.gif | Bin .../web/framework/static}/images/icon_error_sml.gif | Bin .../web/framework/static}/images/icon_info_lrg.gif | Bin .../web/framework/static}/images/icon_info_sml.gif | Bin .../framework/static}/images/icon_success_lrg.gif | Bin .../framework/static}/images/icon_success_sml.gif | Bin .../framework/static}/images/icon_warning_lrg.gif | Bin .../framework/static}/images/icon_warning_sml.gif | Bin .../web/framework/static}/images/jstree/32px.png | Bin .../web/framework/static}/images/jstree/40px.png | Bin .../framework/static}/images/jstree/throbber.gif | Bin .../galaxy/web/framework/static}/images/kendall.png | Bin .../framework/static}/images/light_gray_grid.gif | Bin .../static}/images/loading_large_white_bg.gif | Bin .../static}/images/loading_small_white_bg.gif | Bin .../static}/images/maf_icons/interval2maf.png | Bin .../static}/images/maf_icons/stitchMaf.png | Bin .../web/framework/static}/images/mag_glass.png | Bin .../images/mutation_visualization_example.png | Bin .../web/framework/static}/images/openid-16x16.gif | Bin .../framework/static}/images/overview_arrows.png | Bin .../galaxy/web/framework/static}/images/pearson.png | Bin .../web/framework/static}/images/resizable.png | Bin .../framework/static}/images/rgWebLogo3_test.jpg | Bin .../galaxy/web/framework/static}/images/scatter.png | Bin .../web/framework/static}/images/scatterplot.png | Bin .../framework/static}/images/select2-spinner.gif | Bin .../galaxy/web/framework/static}/images/select2.png | Bin .../web/framework/static}/images/select2x2.png | Bin .../web/framework/static}/images/silk/add.png | Bin .../web/framework/static}/images/silk/book.png | Bin .../web/framework/static}/images/silk/book_open.png | Bin .../framework/static}/images/silk/chart_curve.png | Bin .../web/framework/static}/images/silk/folder.png | Bin .../framework/static}/images/silk/folder_page.png | Bin .../web/framework/static}/images/silk/link.png | Bin .../framework/static}/images/silk/link_break.png | Bin .../framework/static}/images/silk/page_white.png | Bin .../static}/images/silk/page_white_compressed.png | Bin .../static}/images/silk/resultset_bottom.png | Bin .../static}/images/silk/resultset_next.png | Bin .../static}/images/silk/resultset_previous.png | Bin .../web/framework/static}/images/solid_qual.png | Bin .../web/framework/static}/images/spearman.png | Bin .../web/framework/static}/images/square_empty.gif | Bin .../web/framework/static}/images/square_error.gif | Bin .../web/framework/static}/images/square_ok.gif | Bin .../web/framework/static}/images/square_queued.gif | Bin .../web/framework/static}/images/square_running.gif | Bin .../galaxy/web/framework/static}/images/star.gif | Bin .../web/framework/static}/images/thumbtack_icon.png | Bin .../static}/images/thumbtack_icon_dark.png | Bin .../galaxy/web/framework/static}/images/tipsy.gif | Bin .../static}/images/tool_menu_down_arrow.gif | Bin .../lda/first_matrix_generator_example_file.png | Bin .../lda/second_matrix_generator_example_file.png | Bin .../web/framework/static}/images/tracks/block.png | Bin .../framework/static}/images/tracks/close_btn.gif | Bin .../web/framework/static}/images/tracks/diag_bg.gif | Bin .../web/framework/static}/images/tracks/go_btn.gif | Bin .../framework/static}/images/tracks/handle-left.gif | Bin .../static}/images/tracks/handle-right.gif | Bin .../framework/static}/images/tracks/pan_left.gif | Bin .../framework/static}/images/tracks/pan_right.gif | Bin .../static}/images/tracks/show_history.gif | Bin .../web/framework/static}/images/tracks/zoom_in.gif | Bin .../static}/images/tracks/zoom_in_full.gif | Bin .../framework/static}/images/tracks/zoom_out.gif | Bin .../static}/images/tracks/zoom_out_full.gif | Bin .../galaxy/web/framework/static}/images/up.gif | Bin .../images/visualization/draggable_horizontal.png | Bin .../images/visualization/draggable_vertical.png | Bin .../static}/images/visualization/strand_left.png | Bin .../images/visualization/strand_left_inv.png | Bin .../static}/images/visualization/strand_right.png | Bin .../images/visualization/strand_right_inv.png | Bin .../static}/images/yui/rel_interstitial_loading.gif | Bin lib/galaxy/web/framework/static/src | 1 + lib/galaxy/web/framework/static/toolshed/src | 1 + .../admin/dataset_security/group/grid.mako | 0 .../admin/dataset_security/group/group.mako | 0 .../admin/dataset_security/group/group_create.mako | 0 .../admin/dataset_security/group/group_rename.mako | 0 .../admin/dataset_security/role/grid.mako | 0 .../admin/dataset_security/role/role.mako | 0 .../admin/dataset_security/role/role_create.mako | 0 .../admin/dataset_security/role/role_rename.mako | 0 .../templates}/admin/external_service/common.mako | 0 .../external_service/create_external_service.mako | 0 .../external_service/edit_external_service.mako | 0 .../templates}/admin/external_service/grid.mako | 0 .../reload_external_service_types.mako | 0 .../external_service/view_external_service.mako | 0 .../templates}/admin/forms/create_form.mako | 0 .../admin/forms/edit_form_definition.mako | 0 .../web/framework/templates}/admin/forms/grid.mako | 0 .../admin/forms/view_form_definition.mako | 0 .../web/framework/templates}/admin/impersonate.mako | 0 .../galaxy/web/framework/templates}/admin/jobs.mako | 0 .../framework/templates}/admin/library/grid.mako | 0 .../templates}/admin/library/new_library.mako | 0 .../framework/templates}/admin/package_tool.mako | 0 .../web/framework/templates}/admin/quota/grid.mako | 0 .../web/framework/templates}/admin/quota/quota.mako | 0 .../templates}/admin/quota/quota_create.mako | 0 .../templates}/admin/quota/quota_edit.mako | 0 .../templates}/admin/quota/quota_rename.mako | 0 .../templates}/admin/quota/quota_set_default.mako | 0 .../web/framework/templates}/admin/reload_tool.mako | 0 .../templates}/admin/request_type/common.mako | 0 .../admin/request_type/create_request_type.mako | 0 .../admin/request_type/edit_request_type.mako | 0 .../templates}/admin/request_type/grid.mako | 0 .../request_type/request_type_permissions.mako | 0 .../admin/request_type/view_request_type.mako | 0 .../framework/templates}/admin/requests/grid.mako | 0 .../framework/templates}/admin/requests/reject.mako | 0 .../templates}/admin/requests/rename_datasets.mako | 0 .../admin/requests/sample_datasets_grid.mako | 0 .../admin/requests/view_sample_dataset.mako | 0 .../admin/review_tool_migration_stages.mako | 0 .../web/framework/templates}/admin/tool_errors.mako | 0 .../tool_shed_repository/browse_categories.mako | 0 .../admin/tool_shed_repository/browse_category.mako | 0 .../tool_shed_repository/browse_repository.mako | 0 .../browse_tool_dependency.mako | 0 .../admin/tool_shed_repository/common.mako | 0 .../deactivate_or_uninstall_repository.mako | 0 .../templates}/admin/tool_shed_repository/grid.mako | 0 .../initiate_repository_installation.mako | 0 .../install_tool_dependencies_with_update.mako | 0 .../tool_shed_repository/manage_repository.mako | 0 .../manage_repository_tool_dependencies.mako | 0 .../tool_shed_repository/preview_repository.mako | 0 .../purge_repository_confirmation.mako | 0 .../tool_shed_repository/repair_repository.mako | 0 .../repository_actions_menu.mako | 0 .../repository_installation_grid.mako | 0 .../repository_installation_status.mako | 0 .../reselect_tool_panel_section.mako | 0 .../reset_metadata_on_selected_repositories.mako | 0 .../select_shed_tool_panel_config.mako | 0 .../select_tool_panel_section.mako | 0 .../tool_dependencies_grid.mako | 0 .../tool_dependency_installation_status.mako | 0 .../uninstall_tool_dependencies.mako | 0 .../tool_shed_repository/view_tool_metadata.mako | 0 .../admin/tool_shed_repository/view_workflow.mako | 0 .../templates}/admin/tool_version/grid.mako | 0 .../web/framework/templates}/admin/user/grid.mako | 0 .../templates}/admin/user/reset_password.mako | 0 .../web/framework/templates}/admin/user/user.mako | 0 .../templates}/admin/view_data_tables_registry.mako | 0 .../templates}/admin/view_datatypes_registry.mako | 0 .../galaxy/web/framework/templates}/base.mako | 0 .../web/framework/templates}/base/base_panels.mako | 0 .../templates}/common/select_template.mako | 0 .../templates}/common/template_common.mako | 0 .../web/framework/templates}/display_base.mako | 0 .../web/framework/templates}/display_common.mako | 0 .../galaxy/web/framework/templates}/embed_base.mako | 0 .../web/framework/templates}/export_base.mako | 0 .../galaxy/web/framework/templates}/form.mako | 0 .../web/framework/templates}/galaxy_client_app.mako | 0 .../galaxy/web/framework/templates}/grid_base.mako | 0 .../web/framework/templates}/grid_base_async.mako | 0 .../web/framework/templates}/ind_share_base.mako | 0 .../galaxy/web/framework/templates}/js-app.mako | 0 .../galaxy/web/framework/templates}/message.mako | 0 .../galaxy/web/framework/templates}/no_access.mako | 0 .../galaxy/web/framework/templates}/page_base.mako | 0 .../galaxy/web/framework/templates}/panels.mako | 0 .../web/framework/templates}/refresh_frames.mako | 0 .../galaxy/web/framework/templates}/rss.mako | 0 .../web/framework/templates}/search/index.mako | 0 .../web/framework/templates}/sharing_base.mako | 0 .../web/framework/templates}/show_params.mako | 0 .../web/framework/templates}/slug_editing_js.mako | 0 .../web/framework/templates}/sorting_base.mako | 0 .../galaxy/web/framework/templates}/spark_base.mako | 0 .../web/framework/templates}/tagging_common.mako | 0 .../web/framework/templates}/tool_shed_rating.mako | 0 .../framework/templates}/user/change_password.mako | 0 .../web/framework/templates}/user/dbkeys.mako | 0 .../web/framework/templates}/user/edit_address.mako | 0 .../galaxy/web/framework/templates}/user/index.mako | 0 .../galaxy/web/framework/templates}/user/info.mako | 0 .../galaxy/web/framework/templates}/user/login.mako | 0 .../web/framework/templates}/user/logout.mako | 0 .../web/framework/templates}/user/new_address.mako | 0 .../framework/templates}/user/openid_associate.mako | 0 .../framework/templates}/user/openid_manage.mako | 0 .../web/framework/templates}/user/permissions.mako | 0 .../web/framework/templates}/user/register.mako | 0 .../framework/templates}/user/reset_password.mako | 0 .../framework/templates}/user/toolbox_filters.mako | 0 .../web/framework/templates}/user/username.mako | 0 .../templates}/webapps/galaxy/admin/center.mako | 0 .../templates}/webapps/galaxy/admin/index.mako | 0 .../webapps/galaxy/admin/sanitize_whitelist.mako | 0 .../templates}/webapps/galaxy/admin/tool_sheds.mako | 0 .../templates}/webapps/galaxy/admin/toolsheds.mako | 0 .../galaxy/admin/view_display_applications.mako | 0 .../templates}/webapps/galaxy/base_panels.mako | 0 .../webapps/galaxy/biostar/post_redirect.mako | 0 .../webapps/galaxy/data_manager/index.mako | 0 .../galaxy/data_manager/manage_data_manager.mako | 0 .../galaxy/data_manager/manage_data_table.mako | 0 .../webapps/galaxy/data_manager/view_job.mako | 0 .../webapps/galaxy/dataset/copy_view.mako | 0 .../templates}/webapps/galaxy/dataset/display.mako | 0 .../galaxy/dataset/display_application/display.mako | 0 .../webapps/galaxy/dataset/edit_attributes.mako | 0 .../templates}/webapps/galaxy/dataset/embed.mako | 0 .../templates}/webapps/galaxy/dataset/errors.mako | 0 .../templates}/webapps/galaxy/dataset/grid.mako | 0 .../webapps/galaxy/dataset/item_content.mako | 0 .../webapps/galaxy/dataset/large_file.mako | 0 .../webapps/galaxy/dataset/security_common.mako | 0 .../webapps/galaxy/dataset/tabular_chunked.mako | 0 .../external_services/generic_jquery_grid.mako | 0 .../galaxy/external_services/generic_json.mako | 0 .../galaxy/external_services/json_common.mako | 0 .../templates}/webapps/galaxy/galaxy.masthead.mako | 0 .../templates}/webapps/galaxy/galaxy.panels.mako | 0 .../templates}/webapps/galaxy/history/as_xml.mako | 0 .../webapps/galaxy/history/citations.mako | 0 .../templates}/webapps/galaxy/history/display.mako | 0 .../webapps/galaxy/history/display_structured.mako | 0 .../templates}/webapps/galaxy/history/embed.mako | 0 .../templates}/webapps/galaxy/history/grid.mako | 0 .../templates}/webapps/galaxy/history/grid_js.mako | 0 .../webapps/galaxy/history/item_content.mako | 0 .../webapps/galaxy/history/list_as_xml.mako | 0 .../webapps/galaxy/history/list_published.mako | 0 .../webapps/galaxy/history/permissions.mako | 0 .../templates}/webapps/galaxy/history/rename.mako | 0 .../templates}/webapps/galaxy/history/share.mako | 0 .../webapps/galaxy/history/shared_grid.mako | 0 .../webapps/galaxy/history/structure.mako | 0 .../templates}/webapps/galaxy/history/view.mako | 0 .../webapps/galaxy/history/view_multiple.mako | 0 .../galaxy/library/common/browse_library.mako | 0 .../galaxy/library/common/browse_library_opt.mako | 0 .../webapps/galaxy/library/common/common.mako | 0 .../webapps/galaxy/library/common/folder_info.mako | 0 .../galaxy/library/common/folder_permissions.mako | 0 .../common/import_datasets_to_histories.mako | 0 .../galaxy/library/common/ldda_edit_info.mako | 0 .../webapps/galaxy/library/common/ldda_info.mako | 0 .../galaxy/library/common/ldda_permissions.mako | 0 .../galaxy/library/common/library_dataset_info.mako | 0 .../library/common/library_dataset_permissions.mako | 0 .../common/library_dataset_search_results.mako | 0 .../webapps/galaxy/library/common/library_info.mako | 0 .../galaxy/library/common/library_item_info.mako | 0 .../galaxy/library/common/library_permissions.mako | 0 .../galaxy/library/common/move_library_item.mako | 0 .../webapps/galaxy/library/common/new_folder.mako | 0 .../webapps/galaxy/library/common/upload.mako | 0 .../templates}/webapps/galaxy/library/grid.mako | 0 .../templates}/webapps/galaxy/library/index.mako | 0 .../webapps/galaxy/mobile/dataset/detail.mako | 0 .../webapps/galaxy/mobile/dataset/peek.mako | 0 .../templates}/webapps/galaxy/mobile/form.mako | 0 .../webapps/galaxy/mobile/history/detail.mako | 0 .../webapps/galaxy/mobile/history/list.mako | 0 .../templates}/webapps/galaxy/mobile/index.mako | 0 .../webapps/galaxy/mobile/manage_library.mako | 0 .../templates}/webapps/galaxy/mobile/settings.mako | 0 .../templates}/webapps/galaxy/page/create.mako | 0 .../templates}/webapps/galaxy/page/display.mako | 0 .../templates}/webapps/galaxy/page/editor.mako | 0 .../templates}/webapps/galaxy/page/index.mako | 0 .../webapps/galaxy/page/list_published.mako | 0 .../webapps/galaxy/page/select_items_grid.mako | 0 .../templates}/webapps/galaxy/page/wymiframe.mako | 0 .../webapps/galaxy/requests/common/add_samples.mako | 0 .../webapps/galaxy/requests/common/common.mako | 0 .../galaxy/requests/common/create_request.mako | 0 .../requests/common/edit_basic_request_info.mako | 0 .../galaxy/requests/common/edit_samples.mako | 0 .../galaxy/requests/common/find_samples.mako | 0 .../webapps/galaxy/requests/common/index.mako | 0 .../common/sample_dataset_transfer_status.mako | 0 .../galaxy/requests/common/sample_datasets.mako | 0 .../galaxy/requests/common/sample_state.mako | 0 .../galaxy/requests/common/view_request.mako | 0 .../requests/common/view_request_history.mako | 0 .../webapps/galaxy/requests/common/view_sample.mako | 0 .../requests/common/view_sample_datasets.mako | 0 .../galaxy/requests/common/view_sample_history.mako | 0 .../webapps/galaxy/requests/find_samples_index.mako | 0 .../templates}/webapps/galaxy/requests/grid.mako | 0 .../templates}/webapps/galaxy/requests/index.mako | 0 .../templates}/webapps/galaxy/root/redirect.mako | 0 .../templates}/webapps/galaxy/root/tool_runner.mako | 0 .../webapps/galaxy/tracks/add_to_viz.mako | 0 .../webapps/galaxy/tracks/add_tracks.mako | 0 .../galaxy/tracks/history_datasets_select_grid.mako | 0 .../webapps/galaxy/tracks/history_select_grid.mako | 0 .../galaxy/tracks/library_datasets_select_grid.mako | 0 .../templates}/webapps/galaxy/user/api_keys.mako | 0 .../templates}/webapps/galaxy/user/list_users.mako | 0 .../templates}/webapps/galaxy/user/manage_info.mako | 0 .../webapps/galaxy/visualization/create.mako | 0 .../webapps/galaxy/visualization/display.mako | 0 .../galaxy/visualization/display_in_frame.mako | 0 .../webapps/galaxy/visualization/embed.mako | 0 .../galaxy/visualization/embed_in_frame.mako | 0 .../webapps/galaxy/visualization/gie.mako | 0 .../webapps/galaxy/visualization/item_content.mako | 0 .../webapps/galaxy/visualization/list.mako | 0 .../galaxy/visualization/list_published.mako | 0 .../webapps/galaxy/visualization/phyloviz.mako | 0 .../webapps/galaxy/visualization/sweepster.mako | 0 .../galaxy/workflow/build_from_current_history.mako | 0 .../webapps/galaxy/workflow/configure_menu.mako | 0 .../templates}/webapps/galaxy/workflow/display.mako | 0 .../templates}/webapps/galaxy/workflow/editor.mako | 0 .../galaxy/workflow/editor_generic_form.mako | 0 .../webapps/galaxy/workflow/editor_tool_form.mako | 0 .../templates}/webapps/galaxy/workflow/embed.mako | 0 .../templates}/webapps/galaxy/workflow/import.mako | 0 .../templates}/webapps/galaxy/workflow/index.mako | 0 .../webapps/galaxy/workflow/item_content.mako | 0 .../templates}/webapps/galaxy/workflow/list.mako | 0 .../webapps/galaxy/workflow/list_for_run.mako | 0 .../webapps/galaxy/workflow/list_published.mako | 0 .../webapps/galaxy/workflow/missing_tools.mako | 0 .../webapps/galaxy/workflow/myexp_export.mako | 0 .../galaxy/workflow/myexp_export_content.mako | 0 .../templates}/webapps/galaxy/workflow/rename.mako | 0 .../templates}/webapps/galaxy/workflow/run.mako | 0 .../webapps/galaxy/workflow/run_complete.mako | 0 .../templates}/webapps/galaxy/workflow/sharing.mako | 0 .../templates}/webapps/reports/base_panels.mako | 0 .../templates}/webapps/reports/dataset_info.mako | 0 .../framework/templates}/webapps/reports/grid.mako | 0 .../framework/templates}/webapps/reports/index.mako | 0 .../templates}/webapps/reports/job_info.mako | 0 .../webapps/reports/jobs_errors_per_tool.mako | 0 .../webapps/reports/jobs_per_month_all.mako | 0 .../webapps/reports/jobs_per_month_in_error.mako | 0 .../templates}/webapps/reports/jobs_per_tool.mako | 0 .../templates}/webapps/reports/jobs_per_user.mako | 0 .../webapps/reports/jobs_specified_month_all.mako | 0 .../reports/jobs_specified_month_in_error.mako | 0 .../webapps/reports/jobs_tool_per_month.mako | 0 .../webapps/reports/jobs_user_per_month.mako | 0 .../webapps/reports/registered_users.mako | 0 .../webapps/reports/registered_users_per_month.mako | 0 .../reports/registered_users_specified_date.mako | 0 .../reports/registered_users_specified_month.mako | 0 .../webapps/reports/requests_per_month_all.mako | 0 .../webapps/reports/requests_per_user.mako | 0 .../webapps/reports/requests_user_per_month.mako | 0 .../templates}/webapps/reports/run_stats.mako | 0 .../templates}/webapps/reports/system.mako | 0 .../webapps/reports/users_last_access_date.mako | 0 .../webapps/reports/users_user_disk_usage.mako | 0 .../webapps/reports/workflows_per_month_all.mako | 0 .../webapps/reports/workflows_per_user.mako | 0 .../webapps/reports/workflows_per_workflow.mako | 0 .../webapps/reports/workflows_user_per_month.mako | 0 .../templates}/webapps/tool_shed/admin/center.mako | 0 .../templates}/webapps/tool_shed/admin/index.mako | 0 .../webapps/tool_shed/admin/statistics.mako | 0 .../templates}/webapps/tool_shed/base_panels.mako | 0 .../webapps/tool_shed/category/create_category.mako | 0 .../webapps/tool_shed/category/edit_category.mako | 0 .../templates}/webapps/tool_shed/category/grid.mako | 0 .../webapps/tool_shed/category/valid_grid.mako | 0 .../templates}/webapps/tool_shed/common/common.mako | 0 .../webapps/tool_shed/common/grid_common.mako | 0 .../tool_shed/common/repository_actions_menu.mako | 0 .../reset_metadata_on_selected_repositories.mako | 0 .../templates}/webapps/tool_shed/group/index.mako | 0 .../templates}/webapps/tool_shed/index.mako | 0 .../tool_shed/repository/browse_repository.mako | 0 .../webapps/tool_shed/repository/common.mako | 0 .../webapps/tool_shed/repository/contact_owner.mako | 0 .../tool_shed/repository/create_repository.mako | 0 .../repository/docker_image_repositories.mako | 0 .../tool_shed/repository/export_repository.mako | 0 .../webapps/tool_shed/repository/find_tools.mako | 0 .../tool_shed/repository/find_workflows.mako | 0 .../webapps/tool_shed/repository/grid.mako | 0 .../tool_shed/repository/import_capsule.mako | 0 .../repository/import_capsule_results.mako | 0 .../tool_shed/repository/manage_repository.mako | 0 .../repository/preview_tools_in_changeset.mako | 0 .../tool_shed/repository/rate_repository.mako | 0 .../webapps/tool_shed/repository/tool_form.mako | 0 .../webapps/tool_shed/repository/upload.mako | 0 .../tool_shed/repository/upload_capsule.mako | 0 .../tool_shed/repository/view_changelog.mako | 0 .../tool_shed/repository/view_changeset.mako | 0 .../tool_shed/repository/view_repository.mako | 0 .../tool_shed/repository/view_tool_metadata.mako | 0 .../webapps/tool_shed/repository/view_workflow.mako | 0 .../tool_shed/repository_review/browse_review.mako | 0 .../repository_review/create_component.mako | 0 .../tool_shed/repository_review/edit_component.mako | 0 .../tool_shed/repository_review/edit_review.mako | 0 .../webapps/tool_shed/repository_review/grid.mako | 0 .../reviews_of_changeset_revision.mako | 0 .../repository_review/reviews_of_repository.mako | 0 .../repository_review/select_previous_review.mako | 0 .../templates}/webapps/tool_shed/role/role.mako | 0 .../webapps/tool_shed/user/manage_email_alerts.mako | 0 .../webapps/tool_shed/user/manage_info.mako | 0 805 files changed, 2 insertions(+) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/biom/biom_simple.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ensembl/ensembl_bam.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ensembl/ensembl_gff.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ensembl/ensembl_interval_as_bed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/gbrowse/gbrowse_gff.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/gbrowse/gbrowse_interval_as_bed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/gbrowse/gbrowse_wig.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/bam.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/bb.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/bed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/bedgraph.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/bigwig.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/gtf.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igb/wig.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igv/bam.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igv/gff.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igv/interval_as_bed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/igv/vcf.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/iobio/bam.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/iobio/vcf.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/rviewer/bed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/rviewer/vcf.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ucsc/bam.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ucsc/bigbed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ucsc/bigwig.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ucsc/interval_as_bed.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ucsc/maf_customtrack.xml (100%) rename {display_applications => lib/galaxy/datatypes/display_applications/configs}/ucsc/vcf.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/access_libraries.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/bed_convert.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/biomart.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/biomart_test.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/cbi_rice_mart.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/data_source.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/ebi_sra.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/eupathdb.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/fetch.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/fly_modencode.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/flymine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/flymine_test.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/genbank.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/genbank.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/gramene_mart.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/hapmapmart.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/hbvar.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/hbvar_filter.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/import.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/import.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/metabolicmine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/microbial_import.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/microbial_import.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/microbial_import_code.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/modmine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/mousemine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/ratmine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/ucsc_tablebrowser.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/ucsc_tablebrowser_archaea.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/ucsc_tablebrowser_test.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/upload.py (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/upload.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/worm_modencode.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/wormbase.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/wormbase_test.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/yeastmine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/data_source/zebrafishmine.xml (100%) rename {tools => lib/galaxy/tools/bundled}/evolution/add_scores.py (100%) rename {tools => lib/galaxy/tools/bundled}/evolution/add_scores.xml (100%) rename {tools => lib/galaxy/tools/bundled}/evolution/codingSnps.pl (100%) rename {tools => lib/galaxy/tools/bundled}/evolution/codingSnps.xml (100%) rename {tools => lib/galaxy/tools/bundled}/evolution/codingSnps_filter.py (100%) rename {tools => lib/galaxy/tools/bundled}/extract/extract_genomic_dna.py (100%) rename {tools => lib/galaxy/tools/bundled}/extract/extract_genomic_dna.xml (100%) rename {tools => lib/galaxy/tools/bundled}/extract/liftOver_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/extract/liftOver_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/CreateInterval.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/CreateInterval.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_concat_fasta.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_concat_fasta.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_fasta.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_fasta.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_lav.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_lav.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/axt_to_lav_code.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/bed2gff.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/bed_to_bigbed.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/bed_to_gff_converter.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/catWrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/catWrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/changeCase.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/changeCase.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/commWrapper.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/commWrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/compare.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/condense_characters.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/condense_characters.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/convert_characters.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/convert_characters.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/convert_characters.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/cutWrapper.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/cutWrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/fileGrep.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/fixedValueColumn.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/fixedValueColumn.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/extract_GFF_Features.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/extract_GFF_Features.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/gff_filter_by_attribute.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/gff_filter_by_attribute.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/gff_filter_by_feature_count.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/gff_filter_by_feature_count.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/gtf_filter_by_attribute_values_list.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/gtf_filter_by_attribute_values_list.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff/sort_gtf.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff2bed.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gff_to_bed_converter.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/grep.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/grep.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gtf2bedgraph.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/gtf_to_bedgraph_converter.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/headWrapper.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/headWrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/join.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/joinWrapper.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/joinWrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/joiner.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/joiner2.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/lav_to_bed.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/lav_to_bed.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/lav_to_bed_code.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/mergeCols.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/mergeCols.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/pasteWrapper.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/pasteWrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/random_lines_two_pass.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/randomlines.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/randomlines.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/remove_beginning.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/remove_beginning.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/secure_hash_message_digest.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/secure_hash_message_digest.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/sff_extract.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/sff_extractor.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/sorter.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/sorter.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/tailWrapper.pl (100%) rename {tools => lib/galaxy/tools/bundled}/filters/tailWrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/trimmer.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/trimmer.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/ucsc_gene_bed_to_exon_bed.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/ucsc_gene_bed_to_exon_bed.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/ucsc_gene_bed_to_intron_bed.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/ucsc_gene_bed_to_intron_bed.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/ucsc_gene_table_to_intervals.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/ucsc_gene_table_to_intervals.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/uniq.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/uniq.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/wc_gnu.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/wig_to_bigwig.xml (100%) rename {tools => lib/galaxy/tools/bundled}/filters/wiggle_to_simple.py (100%) rename {tools => lib/galaxy/tools/bundled}/filters/wiggle_to_simple.xml (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_exporter.py (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_exporter.xml (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_file_browser.py (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_file_browser_dev.xml (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_file_browser_prod.xml (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_file_browser_test.xml (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_importer.py (100%) rename {tools => lib/galaxy/tools/bundled}/genomespace/genomespace_importer.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/genebed_maf_to_fasta.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/interval2maf.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/interval2maf.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/interval2maf_pairwise.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/interval_maf_to_merged_fasta.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/interval_maf_to_merged_fasta.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/macros.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_by_block_number.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_by_block_number.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_filter.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_filter.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_limit_size.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_limit_size.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_limit_to_species.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_limit_to_species.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_reverse_complement.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_reverse_complement.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_split_by_species.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_split_by_species.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_stats.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_stats.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_thread_for_species.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_thread_for_species.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_bed.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_bed.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_bed_code.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_fasta.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_fasta_concat.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_fasta_multiple_sets.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_interval.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/maf_to_interval.xml (100%) rename {tools => lib/galaxy/tools/bundled}/maf/vcf_to_maf_customtrack.py (100%) rename {tools => lib/galaxy/tools/bundled}/maf/vcf_to_maf_customtrack.xml (100%) rename {tools => lib/galaxy/tools/bundled}/meme/fimo.xml (100%) rename {tools => lib/galaxy/tools/bundled}/meme/fimo_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/meme/meme.xml (100%) rename {tools => lib/galaxy/tools/bundled}/metag_tools/blat_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/metag_tools/blat_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/metag_tools/shrimp_color_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/metag_tools/shrimp_color_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/metag_tools/shrimp_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/metag_tools/shrimp_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/bwa_solid2fastq_modified.pl (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/fastq_conversions.py (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/fastq_conversions.xml (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/fastq_gen_conv.py (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/fastq_gen_conv.xml (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/solid2fastq.py (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/solid2fastq.xml (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/solid_to_fastq.py (100%) rename {tools => lib/galaxy/tools/bundled}/next_gen_conversion/solid_to_fastq.xml (100%) rename {tools => lib/galaxy/tools/bundled}/ngs_simulation/ngs_simulation.py (100%) rename {tools => lib/galaxy/tools/bundled}/ngs_simulation/ngs_simulation.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/BEAM2_wrapper.sh (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/beam.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/gpass.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/gpass.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/ldtools.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/ldtools_wrapper.sh (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/linkToDavid.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/linkToDavid.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/linkToGProfile.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/linkToGProfile.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/lped_to_geno.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/lps.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/lps_tool_wrapper.sh (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/master2gd_snp.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/master2gd_snp.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/master2pg.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/master2pg.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/mergeSnps.pl (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/pagetag.py (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/pass.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/pass_wrapper.sh (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/senatag.py (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/sift.xml (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/sift_variants_wrapper.sh (100%) rename {tools => lib/galaxy/tools/bundled}/phenotype_association/vcf2pgSnpMult.pl (100%) rename {tools => lib/galaxy/tools/bundled}/plotting/bar_chart.py (100%) rename {tools => lib/galaxy/tools/bundled}/plotting/bar_chart.xml (100%) rename {tools => lib/galaxy/tools/bundled}/plotting/boxplot.xml (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/maq_cs_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/maq_cs_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/maq_cs_wrapper_code.py (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/qualsolid_boxplot_graph.sh (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/solid_qual_boxplot.xml (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/solid_qual_stats.py (100%) rename {tools => lib/galaxy/tools/bundled}/solid_tools/solid_qual_stats.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_assembly/velvetg.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_assembly/velvetg_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/sr_assembly/velveth.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_assembly/velveth_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/PerM.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/bfast_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/bfast_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/fastq_statistics.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/mosaik.xml (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/srma_wrapper.py (100%) rename {tools => lib/galaxy/tools/bundled}/sr_mapping/srma_wrapper.xml (100%) rename {tools => lib/galaxy/tools/bundled}/stats/aggregate_binned_scores_in_intervals.xml (100%) rename {tools => lib/galaxy/tools/bundled}/stats/aggregate_scores_in_intervals.py (100%) rename {tools => lib/galaxy/tools/bundled}/stats/filtering.py (100%) rename {tools => lib/galaxy/tools/bundled}/stats/filtering.xml (100%) rename {tools => lib/galaxy/tools/bundled}/stats/grouping.py (100%) rename {tools => lib/galaxy/tools/bundled}/stats/grouping.xml (100%) rename {tools => lib/galaxy/tools/bundled}/stats/gsummary.py (100%) rename {tools => lib/galaxy/tools/bundled}/stats/gsummary.xml (100%) rename {tools => lib/galaxy/tools/bundled}/stats/gsummary.xml.groups (100%) rename {tools => lib/galaxy/tools/bundled}/stats/r_wrapper.sh (100%) rename {tools => lib/galaxy/tools/bundled}/visualization/LAJ.py (100%) rename {tools => lib/galaxy/tools/bundled}/visualization/LAJ.xml (100%) rename {tools => lib/galaxy/tools/bundled}/visualization/LAJ_code.py (100%) rename {static => lib/galaxy/web/framework/static}/images/Armitagep_manhattan.png (100%) rename {static => lib/galaxy/web/framework/static}/images/Armitagep_qqplot.png (100%) rename {static => lib/galaxy/web/framework/static}/images/add_icon.png (100%) rename {static => lib/galaxy/web/framework/static}/images/add_icon_dark.png (100%) rename {static => lib/galaxy/web/framework/static}/images/aggregate_history1.png (100%) rename {static => lib/galaxy/web/framework/static}/images/aggregate_history2.png (100%) rename {static => lib/galaxy/web/framework/static}/images/bar_chart.png (100%) rename {static => lib/galaxy/web/framework/static}/images/bed_warn.png (100%) rename {static => lib/galaxy/web/framework/static}/images/closebox.png (100%) rename {static => lib/galaxy/web/framework/static}/images/dat_points_table_brows_1.png (100%) rename {static => lib/galaxy/web/framework/static}/images/ddarrowsplit.png (100%) rename {static => lib/galaxy/web/framework/static}/images/delete.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/delete_tag_icon_gray.png (100%) rename {static => lib/galaxy/web/framework/static}/images/delete_tag_icon_white.png (100%) rename {static => lib/galaxy/web/framework/static}/images/documents-stack-faded.png (100%) rename {static => lib/galaxy/web/framework/static}/images/documents-stack.png (100%) rename {static => lib/galaxy/web/framework/static}/images/dropdownarrow.png (100%) rename {static => lib/galaxy/web/framework/static}/images/dw.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/fetchTax.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/fontawesome-webfont.eot (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/fontawesome-webfont.ttf (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/fontawesome-webfont.woff (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/iconic_stroke.eot (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/iconic_stroke.otf (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/iconic_stroke.svg (100%) rename {static => lib/galaxy/web/framework/static}/images/fonts/iconic_stroke.ttf (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/application-dock-270-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/application-dock-270.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-000-small-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-090.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-circle.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-resize-090-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-resize-090.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-split-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-split.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-transition-270-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/arrow-transition-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/asterisk-small-outline.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/asterisk-small-yellow.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/asterisk-small.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/block--plus-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/block--plus.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/bookmarks-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/bookmarks.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/bug.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/chart.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/chevron-expand-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/chevron-expand.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/chevron.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/control-270.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/cross-button.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/cross-circle-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/cross-circle.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/cross-small-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/cross.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/disk--arrow-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/disk--arrow.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/disk.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/exclamation.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/external.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/eye.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/gear-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/gear.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/globe-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/globe.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/hammer-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/hammer.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/information-white.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/layer-transparent-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/layer-transparent.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/layers-stack-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/layers-stack.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/magnifier-left.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/magnifier-zoom-out.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/magnifier-zoom.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/navigation.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/pencil-small.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/pencil.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/plus-button-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/plus-button.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/plus-circle.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/sticky-note-text.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/tag--plus.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/tag-label.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/tags.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/toggle-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/toggle-expand-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/toggle-expand.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/toggle.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/toolbox-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/toolbox.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/ui-slider-050-bw.png (100%) rename {static => lib/galaxy/web/framework/static}/images/fugue/ui-slider-050.png (100%) rename {static => lib/galaxy/web/framework/static}/images/galaxyIcon_noText.png (100%) rename {static => lib/galaxy/web/framework/static}/images/hatch-023858.png (100%) rename {static => lib/galaxy/web/framework/static}/images/hatch-fade-023858.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/histogram.png (100%) rename {static => lib/galaxy/web/framework/static}/images/histogram2.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/delete_icon.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/delete_icon_dark.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/delete_icon_grey.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/eye_icon.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/eye_icon_dark.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/eye_icon_grey.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/pencil_icon.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/pencil_icon_dark.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-buttons/pencil_icon_grey.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-states/data_empty.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-states/data_error.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-states/data_ok.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history-states/data_queued.png (100%) rename {static => lib/galaxy/web/framework/static}/images/history.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/history_down_arrow.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/history_up_arrow.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_error_lrg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_error_sml.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_info_lrg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_info_sml.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_success_lrg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_success_sml.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_warning_lrg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/icon_warning_sml.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/jstree/32px.png (100%) rename {static => lib/galaxy/web/framework/static}/images/jstree/40px.png (100%) rename {static => lib/galaxy/web/framework/static}/images/jstree/throbber.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/kendall.png (100%) rename {static => lib/galaxy/web/framework/static}/images/light_gray_grid.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/loading_large_white_bg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/loading_small_white_bg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/maf_icons/interval2maf.png (100%) rename {static => lib/galaxy/web/framework/static}/images/maf_icons/stitchMaf.png (100%) rename {static => lib/galaxy/web/framework/static}/images/mag_glass.png (100%) rename {static => lib/galaxy/web/framework/static}/images/mutation_visualization_example.png (100%) rename {static => lib/galaxy/web/framework/static}/images/openid-16x16.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/overview_arrows.png (100%) rename {static => lib/galaxy/web/framework/static}/images/pearson.png (100%) rename {static => lib/galaxy/web/framework/static}/images/resizable.png (100%) rename {static => lib/galaxy/web/framework/static}/images/rgWebLogo3_test.jpg (100%) rename {static => lib/galaxy/web/framework/static}/images/scatter.png (100%) rename {static => lib/galaxy/web/framework/static}/images/scatterplot.png (100%) rename {static => lib/galaxy/web/framework/static}/images/select2-spinner.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/select2.png (100%) rename {static => lib/galaxy/web/framework/static}/images/select2x2.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/add.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/book.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/book_open.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/chart_curve.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/folder.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/folder_page.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/link.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/link_break.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/page_white.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/page_white_compressed.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/resultset_bottom.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/resultset_next.png (100%) rename {static => lib/galaxy/web/framework/static}/images/silk/resultset_previous.png (100%) rename {static => lib/galaxy/web/framework/static}/images/solid_qual.png (100%) rename {static => lib/galaxy/web/framework/static}/images/spearman.png (100%) rename {static => lib/galaxy/web/framework/static}/images/square_empty.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/square_error.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/square_ok.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/square_queued.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/square_running.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/star.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/thumbtack_icon.png (100%) rename {static => lib/galaxy/web/framework/static}/images/thumbtack_icon_dark.png (100%) rename {static => lib/galaxy/web/framework/static}/images/tipsy.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tool_menu_down_arrow.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tools/lda/first_matrix_generator_example_file.png (100%) rename {static => lib/galaxy/web/framework/static}/images/tools/lda/second_matrix_generator_example_file.png (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/block.png (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/close_btn.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/diag_bg.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/go_btn.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/handle-left.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/handle-right.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/pan_left.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/pan_right.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/show_history.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/zoom_in.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/zoom_in_full.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/zoom_out.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/tracks/zoom_out_full.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/up.gif (100%) rename {static => lib/galaxy/web/framework/static}/images/visualization/draggable_horizontal.png (100%) rename {static => lib/galaxy/web/framework/static}/images/visualization/draggable_vertical.png (100%) rename {static => lib/galaxy/web/framework/static}/images/visualization/strand_left.png (100%) rename {static => lib/galaxy/web/framework/static}/images/visualization/strand_left_inv.png (100%) rename {static => lib/galaxy/web/framework/static}/images/visualization/strand_right.png (100%) rename {static => lib/galaxy/web/framework/static}/images/visualization/strand_right_inv.png (100%) rename {static => lib/galaxy/web/framework/static}/images/yui/rel_interstitial_loading.gif (100%) create mode 120000 lib/galaxy/web/framework/static/src create mode 120000 lib/galaxy/web/framework/static/toolshed/src rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/group/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/group/group.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/group/group_create.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/group/group_rename.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/role/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/role/role.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/role/role_create.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/dataset_security/role/role_rename.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/external_service/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/external_service/create_external_service.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/external_service/edit_external_service.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/external_service/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/external_service/reload_external_service_types.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/external_service/view_external_service.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/forms/create_form.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/forms/edit_form_definition.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/forms/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/forms/view_form_definition.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/impersonate.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/jobs.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/library/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/library/new_library.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/package_tool.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/quota/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/quota/quota.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/quota/quota_create.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/quota/quota_edit.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/quota/quota_rename.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/quota/quota_set_default.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/reload_tool.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/request_type/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/request_type/create_request_type.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/request_type/edit_request_type.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/request_type/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/request_type/request_type_permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/request_type/view_request_type.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/requests/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/requests/reject.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/requests/rename_datasets.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/requests/sample_datasets_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/requests/view_sample_dataset.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/review_tool_migration_stages.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_errors.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/browse_categories.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/browse_category.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/browse_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/browse_tool_dependency.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/initiate_repository_installation.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/install_tool_dependencies_with_update.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/manage_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/manage_repository_tool_dependencies.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/preview_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/purge_repository_confirmation.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/repair_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/repository_actions_menu.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/repository_installation_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/repository_installation_status.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/reselect_tool_panel_section.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/select_shed_tool_panel_config.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/select_tool_panel_section.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/tool_dependencies_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/tool_dependency_installation_status.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/uninstall_tool_dependencies.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/view_tool_metadata.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_shed_repository/view_workflow.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/tool_version/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/user/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/user/reset_password.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/user/user.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/view_data_tables_registry.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/admin/view_datatypes_registry.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/base/base_panels.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/common/select_template.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/common/template_common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/display_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/display_common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/embed_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/export_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/form.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/galaxy_client_app.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/grid_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/grid_base_async.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/ind_share_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/js-app.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/message.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/no_access.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/page_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/panels.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/refresh_frames.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/rss.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/search/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/sharing_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/show_params.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/slug_editing_js.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/sorting_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/spark_base.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/tagging_common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/tool_shed_rating.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/change_password.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/dbkeys.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/edit_address.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/login.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/logout.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/new_address.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/openid_associate.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/openid_manage.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/register.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/reset_password.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/toolbox_filters.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/user/username.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/admin/center.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/admin/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/admin/sanitize_whitelist.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/admin/tool_sheds.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/admin/toolsheds.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/admin/view_display_applications.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/base_panels.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/biostar/post_redirect.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/data_manager/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/data_manager/manage_data_manager.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/data_manager/manage_data_table.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/data_manager/view_job.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/copy_view.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/display.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/display_application/display.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/edit_attributes.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/embed.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/errors.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/item_content.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/large_file.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/security_common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/dataset/tabular_chunked.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/external_services/generic_jquery_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/external_services/generic_json.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/external_services/json_common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/galaxy.masthead.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/galaxy.panels.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/as_xml.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/citations.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/display.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/display_structured.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/embed.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/grid_js.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/item_content.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/list_as_xml.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/list_published.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/rename.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/share.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/shared_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/structure.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/view.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/history/view_multiple.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/browse_library.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/browse_library_opt.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/folder_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/folder_permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/import_datasets_to_histories.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/ldda_edit_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/ldda_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/ldda_permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/library_dataset_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/library_dataset_permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/library_dataset_search_results.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/library_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/library_item_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/library_permissions.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/move_library_item.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/new_folder.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/common/upload.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/library/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/dataset/detail.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/dataset/peek.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/form.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/history/detail.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/history/list.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/manage_library.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/mobile/settings.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/create.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/display.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/editor.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/list_published.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/select_items_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/page/wymiframe.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/add_samples.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/create_request.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/edit_basic_request_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/edit_samples.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/find_samples.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/sample_datasets.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/sample_state.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/view_request.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/view_request_history.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/view_sample.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/view_sample_datasets.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/common/view_sample_history.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/find_samples_index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/requests/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/root/redirect.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/root/tool_runner.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/tracks/add_to_viz.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/tracks/add_tracks.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/tracks/history_datasets_select_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/tracks/history_select_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/tracks/library_datasets_select_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/user/api_keys.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/user/list_users.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/user/manage_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/create.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/display.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/display_in_frame.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/embed.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/embed_in_frame.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/gie.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/item_content.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/list.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/list_published.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/phyloviz.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/visualization/sweepster.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/build_from_current_history.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/configure_menu.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/display.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/editor.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/editor_generic_form.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/editor_tool_form.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/embed.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/import.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/item_content.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/list.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/list_for_run.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/list_published.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/missing_tools.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/myexp_export.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/myexp_export_content.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/rename.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/run.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/run_complete.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/galaxy/workflow/sharing.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/base_panels.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/dataset_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/job_info.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_errors_per_tool.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_per_month_all.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_per_month_in_error.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_per_tool.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_per_user.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_specified_month_all.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_specified_month_in_error.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_tool_per_month.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/jobs_user_per_month.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/registered_users.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/registered_users_per_month.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/registered_users_specified_date.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/registered_users_specified_month.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/requests_per_month_all.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/requests_per_user.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/requests_user_per_month.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/run_stats.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/system.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/users_last_access_date.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/users_user_disk_usage.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/workflows_per_month_all.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/workflows_per_user.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/workflows_per_workflow.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/reports/workflows_user_per_month.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/admin/center.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/admin/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/admin/statistics.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/base_panels.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/category/create_category.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/category/edit_category.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/category/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/category/valid_grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/common/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/common/grid_common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/common/repository_actions_menu.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/group/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/index.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/browse_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/common.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/contact_owner.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/create_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/docker_image_repositories.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/export_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/find_tools.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/find_workflows.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/import_capsule.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/import_capsule_results.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/manage_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/preview_tools_in_changeset.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/rate_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/tool_form.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/upload.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/upload_capsule.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/view_changelog.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/view_changeset.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/view_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/view_tool_metadata.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository/view_workflow.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/browse_review.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/create_component.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/edit_component.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/edit_review.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/grid.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/reviews_of_repository.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/repository_review/select_previous_review.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/role/role.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/user/manage_email_alerts.mako (100%) rename {templates => lib/galaxy/web/framework/templates}/webapps/tool_shed/user/manage_info.mako (100%) diff --git a/display_applications/biom/biom_simple.xml b/lib/galaxy/datatypes/display_applications/configs/biom/biom_simple.xml similarity index 100% rename from display_applications/biom/biom_simple.xml rename to lib/galaxy/datatypes/display_applications/configs/biom/biom_simple.xml diff --git a/display_applications/ensembl/ensembl_bam.xml b/lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_bam.xml similarity index 100% rename from display_applications/ensembl/ensembl_bam.xml rename to lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_bam.xml diff --git a/display_applications/ensembl/ensembl_gff.xml b/lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_gff.xml similarity index 100% rename from display_applications/ensembl/ensembl_gff.xml rename to lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_gff.xml diff --git a/display_applications/ensembl/ensembl_interval_as_bed.xml b/lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_interval_as_bed.xml similarity index 100% rename from display_applications/ensembl/ensembl_interval_as_bed.xml rename to lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_interval_as_bed.xml diff --git a/display_applications/gbrowse/gbrowse_gff.xml b/lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_gff.xml similarity index 100% rename from display_applications/gbrowse/gbrowse_gff.xml rename to lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_gff.xml diff --git a/display_applications/gbrowse/gbrowse_interval_as_bed.xml b/lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_interval_as_bed.xml similarity index 100% rename from display_applications/gbrowse/gbrowse_interval_as_bed.xml rename to lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_interval_as_bed.xml diff --git a/display_applications/gbrowse/gbrowse_wig.xml b/lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_wig.xml similarity index 100% rename from display_applications/gbrowse/gbrowse_wig.xml rename to lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_wig.xml diff --git a/display_applications/igb/bam.xml b/lib/galaxy/datatypes/display_applications/configs/igb/bam.xml similarity index 100% rename from display_applications/igb/bam.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/bam.xml diff --git a/display_applications/igb/bb.xml b/lib/galaxy/datatypes/display_applications/configs/igb/bb.xml similarity index 100% rename from display_applications/igb/bb.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/bb.xml diff --git a/display_applications/igb/bed.xml b/lib/galaxy/datatypes/display_applications/configs/igb/bed.xml similarity index 100% rename from display_applications/igb/bed.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/bed.xml diff --git a/display_applications/igb/bedgraph.xml b/lib/galaxy/datatypes/display_applications/configs/igb/bedgraph.xml similarity index 100% rename from display_applications/igb/bedgraph.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/bedgraph.xml diff --git a/display_applications/igb/bigwig.xml b/lib/galaxy/datatypes/display_applications/configs/igb/bigwig.xml similarity index 100% rename from display_applications/igb/bigwig.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/bigwig.xml diff --git a/display_applications/igb/gtf.xml b/lib/galaxy/datatypes/display_applications/configs/igb/gtf.xml similarity index 100% rename from display_applications/igb/gtf.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/gtf.xml diff --git a/display_applications/igb/wig.xml b/lib/galaxy/datatypes/display_applications/configs/igb/wig.xml similarity index 100% rename from display_applications/igb/wig.xml rename to lib/galaxy/datatypes/display_applications/configs/igb/wig.xml diff --git a/display_applications/igv/bam.xml b/lib/galaxy/datatypes/display_applications/configs/igv/bam.xml similarity index 100% rename from display_applications/igv/bam.xml rename to lib/galaxy/datatypes/display_applications/configs/igv/bam.xml diff --git a/display_applications/igv/gff.xml b/lib/galaxy/datatypes/display_applications/configs/igv/gff.xml similarity index 100% rename from display_applications/igv/gff.xml rename to lib/galaxy/datatypes/display_applications/configs/igv/gff.xml diff --git a/display_applications/igv/interval_as_bed.xml b/lib/galaxy/datatypes/display_applications/configs/igv/interval_as_bed.xml similarity index 100% rename from display_applications/igv/interval_as_bed.xml rename to lib/galaxy/datatypes/display_applications/configs/igv/interval_as_bed.xml diff --git a/display_applications/igv/vcf.xml b/lib/galaxy/datatypes/display_applications/configs/igv/vcf.xml similarity index 100% rename from display_applications/igv/vcf.xml rename to lib/galaxy/datatypes/display_applications/configs/igv/vcf.xml diff --git a/display_applications/iobio/bam.xml b/lib/galaxy/datatypes/display_applications/configs/iobio/bam.xml similarity index 100% rename from display_applications/iobio/bam.xml rename to lib/galaxy/datatypes/display_applications/configs/iobio/bam.xml diff --git a/display_applications/iobio/vcf.xml b/lib/galaxy/datatypes/display_applications/configs/iobio/vcf.xml similarity index 100% rename from display_applications/iobio/vcf.xml rename to lib/galaxy/datatypes/display_applications/configs/iobio/vcf.xml diff --git a/display_applications/rviewer/bed.xml b/lib/galaxy/datatypes/display_applications/configs/rviewer/bed.xml similarity index 100% rename from display_applications/rviewer/bed.xml rename to lib/galaxy/datatypes/display_applications/configs/rviewer/bed.xml diff --git a/display_applications/rviewer/vcf.xml b/lib/galaxy/datatypes/display_applications/configs/rviewer/vcf.xml similarity index 100% rename from display_applications/rviewer/vcf.xml rename to lib/galaxy/datatypes/display_applications/configs/rviewer/vcf.xml diff --git a/display_applications/ucsc/bam.xml b/lib/galaxy/datatypes/display_applications/configs/ucsc/bam.xml similarity index 100% rename from display_applications/ucsc/bam.xml rename to lib/galaxy/datatypes/display_applications/configs/ucsc/bam.xml diff --git a/display_applications/ucsc/bigbed.xml b/lib/galaxy/datatypes/display_applications/configs/ucsc/bigbed.xml similarity index 100% rename from display_applications/ucsc/bigbed.xml rename to lib/galaxy/datatypes/display_applications/configs/ucsc/bigbed.xml diff --git a/display_applications/ucsc/bigwig.xml b/lib/galaxy/datatypes/display_applications/configs/ucsc/bigwig.xml similarity index 100% rename from display_applications/ucsc/bigwig.xml rename to lib/galaxy/datatypes/display_applications/configs/ucsc/bigwig.xml diff --git a/display_applications/ucsc/interval_as_bed.xml b/lib/galaxy/datatypes/display_applications/configs/ucsc/interval_as_bed.xml similarity index 100% rename from display_applications/ucsc/interval_as_bed.xml rename to lib/galaxy/datatypes/display_applications/configs/ucsc/interval_as_bed.xml diff --git a/display_applications/ucsc/maf_customtrack.xml b/lib/galaxy/datatypes/display_applications/configs/ucsc/maf_customtrack.xml similarity index 100% rename from display_applications/ucsc/maf_customtrack.xml rename to lib/galaxy/datatypes/display_applications/configs/ucsc/maf_customtrack.xml diff --git a/display_applications/ucsc/vcf.xml b/lib/galaxy/datatypes/display_applications/configs/ucsc/vcf.xml similarity index 100% rename from display_applications/ucsc/vcf.xml rename to lib/galaxy/datatypes/display_applications/configs/ucsc/vcf.xml diff --git a/tools/data_source/access_libraries.xml b/lib/galaxy/tools/bundled/data_source/access_libraries.xml similarity index 100% rename from tools/data_source/access_libraries.xml rename to lib/galaxy/tools/bundled/data_source/access_libraries.xml diff --git a/tools/data_source/bed_convert.xml b/lib/galaxy/tools/bundled/data_source/bed_convert.xml similarity index 100% rename from tools/data_source/bed_convert.xml rename to lib/galaxy/tools/bundled/data_source/bed_convert.xml diff --git a/tools/data_source/biomart.xml b/lib/galaxy/tools/bundled/data_source/biomart.xml similarity index 100% rename from tools/data_source/biomart.xml rename to lib/galaxy/tools/bundled/data_source/biomart.xml diff --git a/tools/data_source/biomart_test.xml b/lib/galaxy/tools/bundled/data_source/biomart_test.xml similarity index 100% rename from tools/data_source/biomart_test.xml rename to lib/galaxy/tools/bundled/data_source/biomart_test.xml diff --git a/tools/data_source/cbi_rice_mart.xml b/lib/galaxy/tools/bundled/data_source/cbi_rice_mart.xml similarity index 100% rename from tools/data_source/cbi_rice_mart.xml rename to lib/galaxy/tools/bundled/data_source/cbi_rice_mart.xml diff --git a/tools/data_source/data_source.py b/lib/galaxy/tools/bundled/data_source/data_source.py similarity index 100% rename from tools/data_source/data_source.py rename to lib/galaxy/tools/bundled/data_source/data_source.py diff --git a/tools/data_source/ebi_sra.xml b/lib/galaxy/tools/bundled/data_source/ebi_sra.xml similarity index 100% rename from tools/data_source/ebi_sra.xml rename to lib/galaxy/tools/bundled/data_source/ebi_sra.xml diff --git a/tools/data_source/eupathdb.xml b/lib/galaxy/tools/bundled/data_source/eupathdb.xml similarity index 100% rename from tools/data_source/eupathdb.xml rename to lib/galaxy/tools/bundled/data_source/eupathdb.xml diff --git a/tools/data_source/fetch.py b/lib/galaxy/tools/bundled/data_source/fetch.py similarity index 100% rename from tools/data_source/fetch.py rename to lib/galaxy/tools/bundled/data_source/fetch.py diff --git a/tools/data_source/fly_modencode.xml b/lib/galaxy/tools/bundled/data_source/fly_modencode.xml similarity index 100% rename from tools/data_source/fly_modencode.xml rename to lib/galaxy/tools/bundled/data_source/fly_modencode.xml diff --git a/tools/data_source/flymine.xml b/lib/galaxy/tools/bundled/data_source/flymine.xml similarity index 100% rename from tools/data_source/flymine.xml rename to lib/galaxy/tools/bundled/data_source/flymine.xml diff --git a/tools/data_source/flymine_test.xml b/lib/galaxy/tools/bundled/data_source/flymine_test.xml similarity index 100% rename from tools/data_source/flymine_test.xml rename to lib/galaxy/tools/bundled/data_source/flymine_test.xml diff --git a/tools/data_source/genbank.py b/lib/galaxy/tools/bundled/data_source/genbank.py similarity index 100% rename from tools/data_source/genbank.py rename to lib/galaxy/tools/bundled/data_source/genbank.py diff --git a/tools/data_source/genbank.xml b/lib/galaxy/tools/bundled/data_source/genbank.xml similarity index 100% rename from tools/data_source/genbank.xml rename to lib/galaxy/tools/bundled/data_source/genbank.xml diff --git a/tools/data_source/gramene_mart.xml b/lib/galaxy/tools/bundled/data_source/gramene_mart.xml similarity index 100% rename from tools/data_source/gramene_mart.xml rename to lib/galaxy/tools/bundled/data_source/gramene_mart.xml diff --git a/tools/data_source/hapmapmart.xml b/lib/galaxy/tools/bundled/data_source/hapmapmart.xml similarity index 100% rename from tools/data_source/hapmapmart.xml rename to lib/galaxy/tools/bundled/data_source/hapmapmart.xml diff --git a/tools/data_source/hbvar.xml b/lib/galaxy/tools/bundled/data_source/hbvar.xml similarity index 100% rename from tools/data_source/hbvar.xml rename to lib/galaxy/tools/bundled/data_source/hbvar.xml diff --git a/tools/data_source/hbvar_filter.py b/lib/galaxy/tools/bundled/data_source/hbvar_filter.py similarity index 100% rename from tools/data_source/hbvar_filter.py rename to lib/galaxy/tools/bundled/data_source/hbvar_filter.py diff --git a/tools/data_source/import.py b/lib/galaxy/tools/bundled/data_source/import.py similarity index 100% rename from tools/data_source/import.py rename to lib/galaxy/tools/bundled/data_source/import.py diff --git a/tools/data_source/import.xml b/lib/galaxy/tools/bundled/data_source/import.xml similarity index 100% rename from tools/data_source/import.xml rename to lib/galaxy/tools/bundled/data_source/import.xml diff --git a/tools/data_source/metabolicmine.xml b/lib/galaxy/tools/bundled/data_source/metabolicmine.xml similarity index 100% rename from tools/data_source/metabolicmine.xml rename to lib/galaxy/tools/bundled/data_source/metabolicmine.xml diff --git a/tools/data_source/microbial_import.py b/lib/galaxy/tools/bundled/data_source/microbial_import.py similarity index 100% rename from tools/data_source/microbial_import.py rename to lib/galaxy/tools/bundled/data_source/microbial_import.py diff --git a/tools/data_source/microbial_import.xml b/lib/galaxy/tools/bundled/data_source/microbial_import.xml similarity index 100% rename from tools/data_source/microbial_import.xml rename to lib/galaxy/tools/bundled/data_source/microbial_import.xml diff --git a/tools/data_source/microbial_import_code.py b/lib/galaxy/tools/bundled/data_source/microbial_import_code.py similarity index 100% rename from tools/data_source/microbial_import_code.py rename to lib/galaxy/tools/bundled/data_source/microbial_import_code.py diff --git a/tools/data_source/modmine.xml b/lib/galaxy/tools/bundled/data_source/modmine.xml similarity index 100% rename from tools/data_source/modmine.xml rename to lib/galaxy/tools/bundled/data_source/modmine.xml diff --git a/tools/data_source/mousemine.xml b/lib/galaxy/tools/bundled/data_source/mousemine.xml similarity index 100% rename from tools/data_source/mousemine.xml rename to lib/galaxy/tools/bundled/data_source/mousemine.xml diff --git a/tools/data_source/ratmine.xml b/lib/galaxy/tools/bundled/data_source/ratmine.xml similarity index 100% rename from tools/data_source/ratmine.xml rename to lib/galaxy/tools/bundled/data_source/ratmine.xml diff --git a/tools/data_source/ucsc_tablebrowser.xml b/lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser.xml similarity index 100% rename from tools/data_source/ucsc_tablebrowser.xml rename to lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser.xml diff --git a/tools/data_source/ucsc_tablebrowser_archaea.xml b/lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_archaea.xml similarity index 100% rename from tools/data_source/ucsc_tablebrowser_archaea.xml rename to lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_archaea.xml diff --git a/tools/data_source/ucsc_tablebrowser_test.xml b/lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_test.xml similarity index 100% rename from tools/data_source/ucsc_tablebrowser_test.xml rename to lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_test.xml diff --git a/tools/data_source/upload.py b/lib/galaxy/tools/bundled/data_source/upload.py similarity index 100% rename from tools/data_source/upload.py rename to lib/galaxy/tools/bundled/data_source/upload.py diff --git a/tools/data_source/upload.xml b/lib/galaxy/tools/bundled/data_source/upload.xml similarity index 100% rename from tools/data_source/upload.xml rename to lib/galaxy/tools/bundled/data_source/upload.xml diff --git a/tools/data_source/worm_modencode.xml b/lib/galaxy/tools/bundled/data_source/worm_modencode.xml similarity index 100% rename from tools/data_source/worm_modencode.xml rename to lib/galaxy/tools/bundled/data_source/worm_modencode.xml diff --git a/tools/data_source/wormbase.xml b/lib/galaxy/tools/bundled/data_source/wormbase.xml similarity index 100% rename from tools/data_source/wormbase.xml rename to lib/galaxy/tools/bundled/data_source/wormbase.xml diff --git a/tools/data_source/wormbase_test.xml b/lib/galaxy/tools/bundled/data_source/wormbase_test.xml similarity index 100% rename from tools/data_source/wormbase_test.xml rename to lib/galaxy/tools/bundled/data_source/wormbase_test.xml diff --git a/tools/data_source/yeastmine.xml b/lib/galaxy/tools/bundled/data_source/yeastmine.xml similarity index 100% rename from tools/data_source/yeastmine.xml rename to lib/galaxy/tools/bundled/data_source/yeastmine.xml diff --git a/tools/data_source/zebrafishmine.xml b/lib/galaxy/tools/bundled/data_source/zebrafishmine.xml similarity index 100% rename from tools/data_source/zebrafishmine.xml rename to lib/galaxy/tools/bundled/data_source/zebrafishmine.xml diff --git a/tools/evolution/add_scores.py b/lib/galaxy/tools/bundled/evolution/add_scores.py similarity index 100% rename from tools/evolution/add_scores.py rename to lib/galaxy/tools/bundled/evolution/add_scores.py diff --git a/tools/evolution/add_scores.xml b/lib/galaxy/tools/bundled/evolution/add_scores.xml similarity index 100% rename from tools/evolution/add_scores.xml rename to lib/galaxy/tools/bundled/evolution/add_scores.xml diff --git a/tools/evolution/codingSnps.pl b/lib/galaxy/tools/bundled/evolution/codingSnps.pl similarity index 100% rename from tools/evolution/codingSnps.pl rename to lib/galaxy/tools/bundled/evolution/codingSnps.pl diff --git a/tools/evolution/codingSnps.xml b/lib/galaxy/tools/bundled/evolution/codingSnps.xml similarity index 100% rename from tools/evolution/codingSnps.xml rename to lib/galaxy/tools/bundled/evolution/codingSnps.xml diff --git a/tools/evolution/codingSnps_filter.py b/lib/galaxy/tools/bundled/evolution/codingSnps_filter.py similarity index 100% rename from tools/evolution/codingSnps_filter.py rename to lib/galaxy/tools/bundled/evolution/codingSnps_filter.py diff --git a/tools/extract/extract_genomic_dna.py b/lib/galaxy/tools/bundled/extract/extract_genomic_dna.py similarity index 100% rename from tools/extract/extract_genomic_dna.py rename to lib/galaxy/tools/bundled/extract/extract_genomic_dna.py diff --git a/tools/extract/extract_genomic_dna.xml b/lib/galaxy/tools/bundled/extract/extract_genomic_dna.xml similarity index 100% rename from tools/extract/extract_genomic_dna.xml rename to lib/galaxy/tools/bundled/extract/extract_genomic_dna.xml diff --git a/tools/extract/liftOver_wrapper.py b/lib/galaxy/tools/bundled/extract/liftOver_wrapper.py similarity index 100% rename from tools/extract/liftOver_wrapper.py rename to lib/galaxy/tools/bundled/extract/liftOver_wrapper.py diff --git a/tools/extract/liftOver_wrapper.xml b/lib/galaxy/tools/bundled/extract/liftOver_wrapper.xml similarity index 100% rename from tools/extract/liftOver_wrapper.xml rename to lib/galaxy/tools/bundled/extract/liftOver_wrapper.xml diff --git a/tools/filters/CreateInterval.pl b/lib/galaxy/tools/bundled/filters/CreateInterval.pl similarity index 100% rename from tools/filters/CreateInterval.pl rename to lib/galaxy/tools/bundled/filters/CreateInterval.pl diff --git a/tools/filters/CreateInterval.xml b/lib/galaxy/tools/bundled/filters/CreateInterval.xml similarity index 100% rename from tools/filters/CreateInterval.xml rename to lib/galaxy/tools/bundled/filters/CreateInterval.xml diff --git a/tools/filters/axt_to_concat_fasta.py b/lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.py similarity index 100% rename from tools/filters/axt_to_concat_fasta.py rename to lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.py diff --git a/tools/filters/axt_to_concat_fasta.xml b/lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.xml similarity index 100% rename from tools/filters/axt_to_concat_fasta.xml rename to lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.xml diff --git a/tools/filters/axt_to_fasta.py b/lib/galaxy/tools/bundled/filters/axt_to_fasta.py similarity index 100% rename from tools/filters/axt_to_fasta.py rename to lib/galaxy/tools/bundled/filters/axt_to_fasta.py diff --git a/tools/filters/axt_to_fasta.xml b/lib/galaxy/tools/bundled/filters/axt_to_fasta.xml similarity index 100% rename from tools/filters/axt_to_fasta.xml rename to lib/galaxy/tools/bundled/filters/axt_to_fasta.xml diff --git a/tools/filters/axt_to_lav.py b/lib/galaxy/tools/bundled/filters/axt_to_lav.py similarity index 100% rename from tools/filters/axt_to_lav.py rename to lib/galaxy/tools/bundled/filters/axt_to_lav.py diff --git a/tools/filters/axt_to_lav.xml b/lib/galaxy/tools/bundled/filters/axt_to_lav.xml similarity index 100% rename from tools/filters/axt_to_lav.xml rename to lib/galaxy/tools/bundled/filters/axt_to_lav.xml diff --git a/tools/filters/axt_to_lav_code.py b/lib/galaxy/tools/bundled/filters/axt_to_lav_code.py similarity index 100% rename from tools/filters/axt_to_lav_code.py rename to lib/galaxy/tools/bundled/filters/axt_to_lav_code.py diff --git a/tools/filters/bed2gff.xml b/lib/galaxy/tools/bundled/filters/bed2gff.xml similarity index 100% rename from tools/filters/bed2gff.xml rename to lib/galaxy/tools/bundled/filters/bed2gff.xml diff --git a/tools/filters/bed_to_bigbed.xml b/lib/galaxy/tools/bundled/filters/bed_to_bigbed.xml similarity index 100% rename from tools/filters/bed_to_bigbed.xml rename to lib/galaxy/tools/bundled/filters/bed_to_bigbed.xml diff --git a/tools/filters/bed_to_gff_converter.py b/lib/galaxy/tools/bundled/filters/bed_to_gff_converter.py similarity index 100% rename from tools/filters/bed_to_gff_converter.py rename to lib/galaxy/tools/bundled/filters/bed_to_gff_converter.py diff --git a/tools/filters/catWrapper.py b/lib/galaxy/tools/bundled/filters/catWrapper.py similarity index 100% rename from tools/filters/catWrapper.py rename to lib/galaxy/tools/bundled/filters/catWrapper.py diff --git a/tools/filters/catWrapper.xml b/lib/galaxy/tools/bundled/filters/catWrapper.xml similarity index 100% rename from tools/filters/catWrapper.xml rename to lib/galaxy/tools/bundled/filters/catWrapper.xml diff --git a/tools/filters/changeCase.pl b/lib/galaxy/tools/bundled/filters/changeCase.pl similarity index 100% rename from tools/filters/changeCase.pl rename to lib/galaxy/tools/bundled/filters/changeCase.pl diff --git a/tools/filters/changeCase.xml b/lib/galaxy/tools/bundled/filters/changeCase.xml similarity index 100% rename from tools/filters/changeCase.xml rename to lib/galaxy/tools/bundled/filters/changeCase.xml diff --git a/tools/filters/commWrapper.pl b/lib/galaxy/tools/bundled/filters/commWrapper.pl similarity index 100% rename from tools/filters/commWrapper.pl rename to lib/galaxy/tools/bundled/filters/commWrapper.pl diff --git a/tools/filters/commWrapper.xml b/lib/galaxy/tools/bundled/filters/commWrapper.xml similarity index 100% rename from tools/filters/commWrapper.xml rename to lib/galaxy/tools/bundled/filters/commWrapper.xml diff --git a/tools/filters/compare.xml b/lib/galaxy/tools/bundled/filters/compare.xml similarity index 100% rename from tools/filters/compare.xml rename to lib/galaxy/tools/bundled/filters/compare.xml diff --git a/tools/filters/condense_characters.pl b/lib/galaxy/tools/bundled/filters/condense_characters.pl similarity index 100% rename from tools/filters/condense_characters.pl rename to lib/galaxy/tools/bundled/filters/condense_characters.pl diff --git a/tools/filters/condense_characters.xml b/lib/galaxy/tools/bundled/filters/condense_characters.xml similarity index 100% rename from tools/filters/condense_characters.xml rename to lib/galaxy/tools/bundled/filters/condense_characters.xml diff --git a/tools/filters/convert_characters.pl b/lib/galaxy/tools/bundled/filters/convert_characters.pl similarity index 100% rename from tools/filters/convert_characters.pl rename to lib/galaxy/tools/bundled/filters/convert_characters.pl diff --git a/tools/filters/convert_characters.py b/lib/galaxy/tools/bundled/filters/convert_characters.py similarity index 100% rename from tools/filters/convert_characters.py rename to lib/galaxy/tools/bundled/filters/convert_characters.py diff --git a/tools/filters/convert_characters.xml b/lib/galaxy/tools/bundled/filters/convert_characters.xml similarity index 100% rename from tools/filters/convert_characters.xml rename to lib/galaxy/tools/bundled/filters/convert_characters.xml diff --git a/tools/filters/cutWrapper.pl b/lib/galaxy/tools/bundled/filters/cutWrapper.pl similarity index 100% rename from tools/filters/cutWrapper.pl rename to lib/galaxy/tools/bundled/filters/cutWrapper.pl diff --git a/tools/filters/cutWrapper.xml b/lib/galaxy/tools/bundled/filters/cutWrapper.xml similarity index 100% rename from tools/filters/cutWrapper.xml rename to lib/galaxy/tools/bundled/filters/cutWrapper.xml diff --git a/tools/filters/fileGrep.xml b/lib/galaxy/tools/bundled/filters/fileGrep.xml similarity index 100% rename from tools/filters/fileGrep.xml rename to lib/galaxy/tools/bundled/filters/fileGrep.xml diff --git a/tools/filters/fixedValueColumn.pl b/lib/galaxy/tools/bundled/filters/fixedValueColumn.pl similarity index 100% rename from tools/filters/fixedValueColumn.pl rename to lib/galaxy/tools/bundled/filters/fixedValueColumn.pl diff --git a/tools/filters/fixedValueColumn.xml b/lib/galaxy/tools/bundled/filters/fixedValueColumn.xml similarity index 100% rename from tools/filters/fixedValueColumn.xml rename to lib/galaxy/tools/bundled/filters/fixedValueColumn.xml diff --git a/tools/filters/gff/extract_GFF_Features.py b/lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.py similarity index 100% rename from tools/filters/gff/extract_GFF_Features.py rename to lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.py diff --git a/tools/filters/gff/extract_GFF_Features.xml b/lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.xml similarity index 100% rename from tools/filters/gff/extract_GFF_Features.xml rename to lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.xml diff --git a/tools/filters/gff/gff_filter_by_attribute.py b/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.py similarity index 100% rename from tools/filters/gff/gff_filter_by_attribute.py rename to lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.py diff --git a/tools/filters/gff/gff_filter_by_attribute.xml b/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.xml similarity index 100% rename from tools/filters/gff/gff_filter_by_attribute.xml rename to lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.xml diff --git a/tools/filters/gff/gff_filter_by_feature_count.py b/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.py similarity index 100% rename from tools/filters/gff/gff_filter_by_feature_count.py rename to lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.py diff --git a/tools/filters/gff/gff_filter_by_feature_count.xml b/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.xml similarity index 100% rename from tools/filters/gff/gff_filter_by_feature_count.xml rename to lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.xml diff --git a/tools/filters/gff/gtf_filter_by_attribute_values_list.py b/lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.py similarity index 100% rename from tools/filters/gff/gtf_filter_by_attribute_values_list.py rename to lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.py diff --git a/tools/filters/gff/gtf_filter_by_attribute_values_list.xml b/lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.xml similarity index 100% rename from tools/filters/gff/gtf_filter_by_attribute_values_list.xml rename to lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.xml diff --git a/tools/filters/gff/sort_gtf.py b/lib/galaxy/tools/bundled/filters/gff/sort_gtf.py similarity index 100% rename from tools/filters/gff/sort_gtf.py rename to lib/galaxy/tools/bundled/filters/gff/sort_gtf.py diff --git a/tools/filters/gff2bed.xml b/lib/galaxy/tools/bundled/filters/gff2bed.xml similarity index 100% rename from tools/filters/gff2bed.xml rename to lib/galaxy/tools/bundled/filters/gff2bed.xml diff --git a/tools/filters/gff_to_bed_converter.py b/lib/galaxy/tools/bundled/filters/gff_to_bed_converter.py similarity index 100% rename from tools/filters/gff_to_bed_converter.py rename to lib/galaxy/tools/bundled/filters/gff_to_bed_converter.py diff --git a/tools/filters/grep.py b/lib/galaxy/tools/bundled/filters/grep.py similarity index 100% rename from tools/filters/grep.py rename to lib/galaxy/tools/bundled/filters/grep.py diff --git a/tools/filters/grep.xml b/lib/galaxy/tools/bundled/filters/grep.xml similarity index 100% rename from tools/filters/grep.xml rename to lib/galaxy/tools/bundled/filters/grep.xml diff --git a/tools/filters/gtf2bedgraph.xml b/lib/galaxy/tools/bundled/filters/gtf2bedgraph.xml similarity index 100% rename from tools/filters/gtf2bedgraph.xml rename to lib/galaxy/tools/bundled/filters/gtf2bedgraph.xml diff --git a/tools/filters/gtf_to_bedgraph_converter.py b/lib/galaxy/tools/bundled/filters/gtf_to_bedgraph_converter.py similarity index 100% rename from tools/filters/gtf_to_bedgraph_converter.py rename to lib/galaxy/tools/bundled/filters/gtf_to_bedgraph_converter.py diff --git a/tools/filters/headWrapper.pl b/lib/galaxy/tools/bundled/filters/headWrapper.pl similarity index 100% rename from tools/filters/headWrapper.pl rename to lib/galaxy/tools/bundled/filters/headWrapper.pl diff --git a/tools/filters/headWrapper.xml b/lib/galaxy/tools/bundled/filters/headWrapper.xml similarity index 100% rename from tools/filters/headWrapper.xml rename to lib/galaxy/tools/bundled/filters/headWrapper.xml diff --git a/tools/filters/join.py b/lib/galaxy/tools/bundled/filters/join.py similarity index 100% rename from tools/filters/join.py rename to lib/galaxy/tools/bundled/filters/join.py diff --git a/tools/filters/joinWrapper.pl b/lib/galaxy/tools/bundled/filters/joinWrapper.pl similarity index 100% rename from tools/filters/joinWrapper.pl rename to lib/galaxy/tools/bundled/filters/joinWrapper.pl diff --git a/tools/filters/joinWrapper.py b/lib/galaxy/tools/bundled/filters/joinWrapper.py similarity index 100% rename from tools/filters/joinWrapper.py rename to lib/galaxy/tools/bundled/filters/joinWrapper.py diff --git a/tools/filters/joiner.xml b/lib/galaxy/tools/bundled/filters/joiner.xml similarity index 100% rename from tools/filters/joiner.xml rename to lib/galaxy/tools/bundled/filters/joiner.xml diff --git a/tools/filters/joiner2.xml b/lib/galaxy/tools/bundled/filters/joiner2.xml similarity index 100% rename from tools/filters/joiner2.xml rename to lib/galaxy/tools/bundled/filters/joiner2.xml diff --git a/tools/filters/lav_to_bed.py b/lib/galaxy/tools/bundled/filters/lav_to_bed.py similarity index 100% rename from tools/filters/lav_to_bed.py rename to lib/galaxy/tools/bundled/filters/lav_to_bed.py diff --git a/tools/filters/lav_to_bed.xml b/lib/galaxy/tools/bundled/filters/lav_to_bed.xml similarity index 100% rename from tools/filters/lav_to_bed.xml rename to lib/galaxy/tools/bundled/filters/lav_to_bed.xml diff --git a/tools/filters/lav_to_bed_code.py b/lib/galaxy/tools/bundled/filters/lav_to_bed_code.py similarity index 100% rename from tools/filters/lav_to_bed_code.py rename to lib/galaxy/tools/bundled/filters/lav_to_bed_code.py diff --git a/tools/filters/mergeCols.py b/lib/galaxy/tools/bundled/filters/mergeCols.py similarity index 100% rename from tools/filters/mergeCols.py rename to lib/galaxy/tools/bundled/filters/mergeCols.py diff --git a/tools/filters/mergeCols.xml b/lib/galaxy/tools/bundled/filters/mergeCols.xml similarity index 100% rename from tools/filters/mergeCols.xml rename to lib/galaxy/tools/bundled/filters/mergeCols.xml diff --git a/tools/filters/pasteWrapper.pl b/lib/galaxy/tools/bundled/filters/pasteWrapper.pl similarity index 100% rename from tools/filters/pasteWrapper.pl rename to lib/galaxy/tools/bundled/filters/pasteWrapper.pl diff --git a/tools/filters/pasteWrapper.xml b/lib/galaxy/tools/bundled/filters/pasteWrapper.xml similarity index 100% rename from tools/filters/pasteWrapper.xml rename to lib/galaxy/tools/bundled/filters/pasteWrapper.xml diff --git a/tools/filters/random_lines_two_pass.py b/lib/galaxy/tools/bundled/filters/random_lines_two_pass.py similarity index 100% rename from tools/filters/random_lines_two_pass.py rename to lib/galaxy/tools/bundled/filters/random_lines_two_pass.py diff --git a/tools/filters/randomlines.py b/lib/galaxy/tools/bundled/filters/randomlines.py similarity index 100% rename from tools/filters/randomlines.py rename to lib/galaxy/tools/bundled/filters/randomlines.py diff --git a/tools/filters/randomlines.xml b/lib/galaxy/tools/bundled/filters/randomlines.xml similarity index 100% rename from tools/filters/randomlines.xml rename to lib/galaxy/tools/bundled/filters/randomlines.xml diff --git a/tools/filters/remove_beginning.pl b/lib/galaxy/tools/bundled/filters/remove_beginning.pl similarity index 100% rename from tools/filters/remove_beginning.pl rename to lib/galaxy/tools/bundled/filters/remove_beginning.pl diff --git a/tools/filters/remove_beginning.xml b/lib/galaxy/tools/bundled/filters/remove_beginning.xml similarity index 100% rename from tools/filters/remove_beginning.xml rename to lib/galaxy/tools/bundled/filters/remove_beginning.xml diff --git a/tools/filters/secure_hash_message_digest.py b/lib/galaxy/tools/bundled/filters/secure_hash_message_digest.py similarity index 100% rename from tools/filters/secure_hash_message_digest.py rename to lib/galaxy/tools/bundled/filters/secure_hash_message_digest.py diff --git a/tools/filters/secure_hash_message_digest.xml b/lib/galaxy/tools/bundled/filters/secure_hash_message_digest.xml similarity index 100% rename from tools/filters/secure_hash_message_digest.xml rename to lib/galaxy/tools/bundled/filters/secure_hash_message_digest.xml diff --git a/tools/filters/sff_extract.py b/lib/galaxy/tools/bundled/filters/sff_extract.py similarity index 100% rename from tools/filters/sff_extract.py rename to lib/galaxy/tools/bundled/filters/sff_extract.py diff --git a/tools/filters/sff_extractor.xml b/lib/galaxy/tools/bundled/filters/sff_extractor.xml similarity index 100% rename from tools/filters/sff_extractor.xml rename to lib/galaxy/tools/bundled/filters/sff_extractor.xml diff --git a/tools/filters/sorter.py b/lib/galaxy/tools/bundled/filters/sorter.py similarity index 100% rename from tools/filters/sorter.py rename to lib/galaxy/tools/bundled/filters/sorter.py diff --git a/tools/filters/sorter.xml b/lib/galaxy/tools/bundled/filters/sorter.xml similarity index 100% rename from tools/filters/sorter.xml rename to lib/galaxy/tools/bundled/filters/sorter.xml diff --git a/tools/filters/tailWrapper.pl b/lib/galaxy/tools/bundled/filters/tailWrapper.pl similarity index 100% rename from tools/filters/tailWrapper.pl rename to lib/galaxy/tools/bundled/filters/tailWrapper.pl diff --git a/tools/filters/tailWrapper.xml b/lib/galaxy/tools/bundled/filters/tailWrapper.xml similarity index 100% rename from tools/filters/tailWrapper.xml rename to lib/galaxy/tools/bundled/filters/tailWrapper.xml diff --git a/tools/filters/trimmer.py b/lib/galaxy/tools/bundled/filters/trimmer.py similarity index 100% rename from tools/filters/trimmer.py rename to lib/galaxy/tools/bundled/filters/trimmer.py diff --git a/tools/filters/trimmer.xml b/lib/galaxy/tools/bundled/filters/trimmer.xml similarity index 100% rename from tools/filters/trimmer.xml rename to lib/galaxy/tools/bundled/filters/trimmer.xml diff --git a/tools/filters/ucsc_gene_bed_to_exon_bed.py b/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.py similarity index 100% rename from tools/filters/ucsc_gene_bed_to_exon_bed.py rename to lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.py diff --git a/tools/filters/ucsc_gene_bed_to_exon_bed.xml b/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.xml similarity index 100% rename from tools/filters/ucsc_gene_bed_to_exon_bed.xml rename to lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.xml diff --git a/tools/filters/ucsc_gene_bed_to_intron_bed.py b/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.py similarity index 100% rename from tools/filters/ucsc_gene_bed_to_intron_bed.py rename to lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.py diff --git a/tools/filters/ucsc_gene_bed_to_intron_bed.xml b/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.xml similarity index 100% rename from tools/filters/ucsc_gene_bed_to_intron_bed.xml rename to lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.xml diff --git a/tools/filters/ucsc_gene_table_to_intervals.py b/lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.py similarity index 100% rename from tools/filters/ucsc_gene_table_to_intervals.py rename to lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.py diff --git a/tools/filters/ucsc_gene_table_to_intervals.xml b/lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.xml similarity index 100% rename from tools/filters/ucsc_gene_table_to_intervals.xml rename to lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.xml diff --git a/tools/filters/uniq.py b/lib/galaxy/tools/bundled/filters/uniq.py similarity index 100% rename from tools/filters/uniq.py rename to lib/galaxy/tools/bundled/filters/uniq.py diff --git a/tools/filters/uniq.xml b/lib/galaxy/tools/bundled/filters/uniq.xml similarity index 100% rename from tools/filters/uniq.xml rename to lib/galaxy/tools/bundled/filters/uniq.xml diff --git a/tools/filters/wc_gnu.xml b/lib/galaxy/tools/bundled/filters/wc_gnu.xml similarity index 100% rename from tools/filters/wc_gnu.xml rename to lib/galaxy/tools/bundled/filters/wc_gnu.xml diff --git a/tools/filters/wig_to_bigwig.xml b/lib/galaxy/tools/bundled/filters/wig_to_bigwig.xml similarity index 100% rename from tools/filters/wig_to_bigwig.xml rename to lib/galaxy/tools/bundled/filters/wig_to_bigwig.xml diff --git a/tools/filters/wiggle_to_simple.py b/lib/galaxy/tools/bundled/filters/wiggle_to_simple.py similarity index 100% rename from tools/filters/wiggle_to_simple.py rename to lib/galaxy/tools/bundled/filters/wiggle_to_simple.py diff --git a/tools/filters/wiggle_to_simple.xml b/lib/galaxy/tools/bundled/filters/wiggle_to_simple.xml similarity index 100% rename from tools/filters/wiggle_to_simple.xml rename to lib/galaxy/tools/bundled/filters/wiggle_to_simple.xml diff --git a/tools/genomespace/genomespace_exporter.py b/lib/galaxy/tools/bundled/genomespace/genomespace_exporter.py similarity index 100% rename from tools/genomespace/genomespace_exporter.py rename to lib/galaxy/tools/bundled/genomespace/genomespace_exporter.py diff --git a/tools/genomespace/genomespace_exporter.xml b/lib/galaxy/tools/bundled/genomespace/genomespace_exporter.xml similarity index 100% rename from tools/genomespace/genomespace_exporter.xml rename to lib/galaxy/tools/bundled/genomespace/genomespace_exporter.xml diff --git a/tools/genomespace/genomespace_file_browser.py b/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser.py similarity index 100% rename from tools/genomespace/genomespace_file_browser.py rename to lib/galaxy/tools/bundled/genomespace/genomespace_file_browser.py diff --git a/tools/genomespace/genomespace_file_browser_dev.xml b/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_dev.xml similarity index 100% rename from tools/genomespace/genomespace_file_browser_dev.xml rename to lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_dev.xml diff --git a/tools/genomespace/genomespace_file_browser_prod.xml b/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_prod.xml similarity index 100% rename from tools/genomespace/genomespace_file_browser_prod.xml rename to lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_prod.xml diff --git a/tools/genomespace/genomespace_file_browser_test.xml b/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_test.xml similarity index 100% rename from tools/genomespace/genomespace_file_browser_test.xml rename to lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_test.xml diff --git a/tools/genomespace/genomespace_importer.py b/lib/galaxy/tools/bundled/genomespace/genomespace_importer.py similarity index 100% rename from tools/genomespace/genomespace_importer.py rename to lib/galaxy/tools/bundled/genomespace/genomespace_importer.py diff --git a/tools/genomespace/genomespace_importer.xml b/lib/galaxy/tools/bundled/genomespace/genomespace_importer.xml similarity index 100% rename from tools/genomespace/genomespace_importer.xml rename to lib/galaxy/tools/bundled/genomespace/genomespace_importer.xml diff --git a/tools/maf/genebed_maf_to_fasta.xml b/lib/galaxy/tools/bundled/maf/genebed_maf_to_fasta.xml similarity index 100% rename from tools/maf/genebed_maf_to_fasta.xml rename to lib/galaxy/tools/bundled/maf/genebed_maf_to_fasta.xml diff --git a/tools/maf/interval2maf.py b/lib/galaxy/tools/bundled/maf/interval2maf.py similarity index 100% rename from tools/maf/interval2maf.py rename to lib/galaxy/tools/bundled/maf/interval2maf.py diff --git a/tools/maf/interval2maf.xml b/lib/galaxy/tools/bundled/maf/interval2maf.xml similarity index 100% rename from tools/maf/interval2maf.xml rename to lib/galaxy/tools/bundled/maf/interval2maf.xml diff --git a/tools/maf/interval2maf_pairwise.xml b/lib/galaxy/tools/bundled/maf/interval2maf_pairwise.xml similarity index 100% rename from tools/maf/interval2maf_pairwise.xml rename to lib/galaxy/tools/bundled/maf/interval2maf_pairwise.xml diff --git a/tools/maf/interval_maf_to_merged_fasta.py b/lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.py similarity index 100% rename from tools/maf/interval_maf_to_merged_fasta.py rename to lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.py diff --git a/tools/maf/interval_maf_to_merged_fasta.xml b/lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.xml similarity index 100% rename from tools/maf/interval_maf_to_merged_fasta.xml rename to lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.xml diff --git a/tools/maf/macros.xml b/lib/galaxy/tools/bundled/maf/macros.xml similarity index 100% rename from tools/maf/macros.xml rename to lib/galaxy/tools/bundled/maf/macros.xml diff --git a/tools/maf/maf_by_block_number.py b/lib/galaxy/tools/bundled/maf/maf_by_block_number.py similarity index 100% rename from tools/maf/maf_by_block_number.py rename to lib/galaxy/tools/bundled/maf/maf_by_block_number.py diff --git a/tools/maf/maf_by_block_number.xml b/lib/galaxy/tools/bundled/maf/maf_by_block_number.xml similarity index 100% rename from tools/maf/maf_by_block_number.xml rename to lib/galaxy/tools/bundled/maf/maf_by_block_number.xml diff --git a/tools/maf/maf_filter.py b/lib/galaxy/tools/bundled/maf/maf_filter.py similarity index 100% rename from tools/maf/maf_filter.py rename to lib/galaxy/tools/bundled/maf/maf_filter.py diff --git a/tools/maf/maf_filter.xml b/lib/galaxy/tools/bundled/maf/maf_filter.xml similarity index 100% rename from tools/maf/maf_filter.xml rename to lib/galaxy/tools/bundled/maf/maf_filter.xml diff --git a/tools/maf/maf_limit_size.py b/lib/galaxy/tools/bundled/maf/maf_limit_size.py similarity index 100% rename from tools/maf/maf_limit_size.py rename to lib/galaxy/tools/bundled/maf/maf_limit_size.py diff --git a/tools/maf/maf_limit_size.xml b/lib/galaxy/tools/bundled/maf/maf_limit_size.xml similarity index 100% rename from tools/maf/maf_limit_size.xml rename to lib/galaxy/tools/bundled/maf/maf_limit_size.xml diff --git a/tools/maf/maf_limit_to_species.py b/lib/galaxy/tools/bundled/maf/maf_limit_to_species.py similarity index 100% rename from tools/maf/maf_limit_to_species.py rename to lib/galaxy/tools/bundled/maf/maf_limit_to_species.py diff --git a/tools/maf/maf_limit_to_species.xml b/lib/galaxy/tools/bundled/maf/maf_limit_to_species.xml similarity index 100% rename from tools/maf/maf_limit_to_species.xml rename to lib/galaxy/tools/bundled/maf/maf_limit_to_species.xml diff --git a/tools/maf/maf_reverse_complement.py b/lib/galaxy/tools/bundled/maf/maf_reverse_complement.py similarity index 100% rename from tools/maf/maf_reverse_complement.py rename to lib/galaxy/tools/bundled/maf/maf_reverse_complement.py diff --git a/tools/maf/maf_reverse_complement.xml b/lib/galaxy/tools/bundled/maf/maf_reverse_complement.xml similarity index 100% rename from tools/maf/maf_reverse_complement.xml rename to lib/galaxy/tools/bundled/maf/maf_reverse_complement.xml diff --git a/tools/maf/maf_split_by_species.py b/lib/galaxy/tools/bundled/maf/maf_split_by_species.py similarity index 100% rename from tools/maf/maf_split_by_species.py rename to lib/galaxy/tools/bundled/maf/maf_split_by_species.py diff --git a/tools/maf/maf_split_by_species.xml b/lib/galaxy/tools/bundled/maf/maf_split_by_species.xml similarity index 100% rename from tools/maf/maf_split_by_species.xml rename to lib/galaxy/tools/bundled/maf/maf_split_by_species.xml diff --git a/tools/maf/maf_stats.py b/lib/galaxy/tools/bundled/maf/maf_stats.py similarity index 100% rename from tools/maf/maf_stats.py rename to lib/galaxy/tools/bundled/maf/maf_stats.py diff --git a/tools/maf/maf_stats.xml b/lib/galaxy/tools/bundled/maf/maf_stats.xml similarity index 100% rename from tools/maf/maf_stats.xml rename to lib/galaxy/tools/bundled/maf/maf_stats.xml diff --git a/tools/maf/maf_thread_for_species.py b/lib/galaxy/tools/bundled/maf/maf_thread_for_species.py similarity index 100% rename from tools/maf/maf_thread_for_species.py rename to lib/galaxy/tools/bundled/maf/maf_thread_for_species.py diff --git a/tools/maf/maf_thread_for_species.xml b/lib/galaxy/tools/bundled/maf/maf_thread_for_species.xml similarity index 100% rename from tools/maf/maf_thread_for_species.xml rename to lib/galaxy/tools/bundled/maf/maf_thread_for_species.xml diff --git a/tools/maf/maf_to_bed.py b/lib/galaxy/tools/bundled/maf/maf_to_bed.py similarity index 100% rename from tools/maf/maf_to_bed.py rename to lib/galaxy/tools/bundled/maf/maf_to_bed.py diff --git a/tools/maf/maf_to_bed.xml b/lib/galaxy/tools/bundled/maf/maf_to_bed.xml similarity index 100% rename from tools/maf/maf_to_bed.xml rename to lib/galaxy/tools/bundled/maf/maf_to_bed.xml diff --git a/tools/maf/maf_to_bed_code.py b/lib/galaxy/tools/bundled/maf/maf_to_bed_code.py similarity index 100% rename from tools/maf/maf_to_bed_code.py rename to lib/galaxy/tools/bundled/maf/maf_to_bed_code.py diff --git a/tools/maf/maf_to_fasta.xml b/lib/galaxy/tools/bundled/maf/maf_to_fasta.xml similarity index 100% rename from tools/maf/maf_to_fasta.xml rename to lib/galaxy/tools/bundled/maf/maf_to_fasta.xml diff --git a/tools/maf/maf_to_fasta_concat.py b/lib/galaxy/tools/bundled/maf/maf_to_fasta_concat.py similarity index 100% rename from tools/maf/maf_to_fasta_concat.py rename to lib/galaxy/tools/bundled/maf/maf_to_fasta_concat.py diff --git a/tools/maf/maf_to_fasta_multiple_sets.py b/lib/galaxy/tools/bundled/maf/maf_to_fasta_multiple_sets.py similarity index 100% rename from tools/maf/maf_to_fasta_multiple_sets.py rename to lib/galaxy/tools/bundled/maf/maf_to_fasta_multiple_sets.py diff --git a/tools/maf/maf_to_interval.py b/lib/galaxy/tools/bundled/maf/maf_to_interval.py similarity index 100% rename from tools/maf/maf_to_interval.py rename to lib/galaxy/tools/bundled/maf/maf_to_interval.py diff --git a/tools/maf/maf_to_interval.xml b/lib/galaxy/tools/bundled/maf/maf_to_interval.xml similarity index 100% rename from tools/maf/maf_to_interval.xml rename to lib/galaxy/tools/bundled/maf/maf_to_interval.xml diff --git a/tools/maf/vcf_to_maf_customtrack.py b/lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.py similarity index 100% rename from tools/maf/vcf_to_maf_customtrack.py rename to lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.py diff --git a/tools/maf/vcf_to_maf_customtrack.xml b/lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.xml similarity index 100% rename from tools/maf/vcf_to_maf_customtrack.xml rename to lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.xml diff --git a/tools/meme/fimo.xml b/lib/galaxy/tools/bundled/meme/fimo.xml similarity index 100% rename from tools/meme/fimo.xml rename to lib/galaxy/tools/bundled/meme/fimo.xml diff --git a/tools/meme/fimo_wrapper.py b/lib/galaxy/tools/bundled/meme/fimo_wrapper.py similarity index 100% rename from tools/meme/fimo_wrapper.py rename to lib/galaxy/tools/bundled/meme/fimo_wrapper.py diff --git a/tools/meme/meme.xml b/lib/galaxy/tools/bundled/meme/meme.xml similarity index 100% rename from tools/meme/meme.xml rename to lib/galaxy/tools/bundled/meme/meme.xml diff --git a/tools/metag_tools/blat_wrapper.py b/lib/galaxy/tools/bundled/metag_tools/blat_wrapper.py similarity index 100% rename from tools/metag_tools/blat_wrapper.py rename to lib/galaxy/tools/bundled/metag_tools/blat_wrapper.py diff --git a/tools/metag_tools/blat_wrapper.xml b/lib/galaxy/tools/bundled/metag_tools/blat_wrapper.xml similarity index 100% rename from tools/metag_tools/blat_wrapper.xml rename to lib/galaxy/tools/bundled/metag_tools/blat_wrapper.xml diff --git a/tools/metag_tools/shrimp_color_wrapper.py b/lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.py similarity index 100% rename from tools/metag_tools/shrimp_color_wrapper.py rename to lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.py diff --git a/tools/metag_tools/shrimp_color_wrapper.xml b/lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.xml similarity index 100% rename from tools/metag_tools/shrimp_color_wrapper.xml rename to lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.xml diff --git a/tools/metag_tools/shrimp_wrapper.py b/lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.py similarity index 100% rename from tools/metag_tools/shrimp_wrapper.py rename to lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.py diff --git a/tools/metag_tools/shrimp_wrapper.xml b/lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.xml similarity index 100% rename from tools/metag_tools/shrimp_wrapper.xml rename to lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.xml diff --git a/tools/next_gen_conversion/bwa_solid2fastq_modified.pl b/lib/galaxy/tools/bundled/next_gen_conversion/bwa_solid2fastq_modified.pl similarity index 100% rename from tools/next_gen_conversion/bwa_solid2fastq_modified.pl rename to lib/galaxy/tools/bundled/next_gen_conversion/bwa_solid2fastq_modified.pl diff --git a/tools/next_gen_conversion/fastq_conversions.py b/lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.py similarity index 100% rename from tools/next_gen_conversion/fastq_conversions.py rename to lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.py diff --git a/tools/next_gen_conversion/fastq_conversions.xml b/lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.xml similarity index 100% rename from tools/next_gen_conversion/fastq_conversions.xml rename to lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.xml diff --git a/tools/next_gen_conversion/fastq_gen_conv.py b/lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.py similarity index 100% rename from tools/next_gen_conversion/fastq_gen_conv.py rename to lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.py diff --git a/tools/next_gen_conversion/fastq_gen_conv.xml b/lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.xml similarity index 100% rename from tools/next_gen_conversion/fastq_gen_conv.xml rename to lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.xml diff --git a/tools/next_gen_conversion/solid2fastq.py b/lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.py similarity index 100% rename from tools/next_gen_conversion/solid2fastq.py rename to lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.py diff --git a/tools/next_gen_conversion/solid2fastq.xml b/lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.xml similarity index 100% rename from tools/next_gen_conversion/solid2fastq.xml rename to lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.xml diff --git a/tools/next_gen_conversion/solid_to_fastq.py b/lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.py similarity index 100% rename from tools/next_gen_conversion/solid_to_fastq.py rename to lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.py diff --git a/tools/next_gen_conversion/solid_to_fastq.xml b/lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.xml similarity index 100% rename from tools/next_gen_conversion/solid_to_fastq.xml rename to lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.xml diff --git a/tools/ngs_simulation/ngs_simulation.py b/lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.py similarity index 100% rename from tools/ngs_simulation/ngs_simulation.py rename to lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.py diff --git a/tools/ngs_simulation/ngs_simulation.xml b/lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.xml similarity index 100% rename from tools/ngs_simulation/ngs_simulation.xml rename to lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.xml diff --git a/tools/phenotype_association/BEAM2_wrapper.sh b/lib/galaxy/tools/bundled/phenotype_association/BEAM2_wrapper.sh similarity index 100% rename from tools/phenotype_association/BEAM2_wrapper.sh rename to lib/galaxy/tools/bundled/phenotype_association/BEAM2_wrapper.sh diff --git a/tools/phenotype_association/beam.xml b/lib/galaxy/tools/bundled/phenotype_association/beam.xml similarity index 100% rename from tools/phenotype_association/beam.xml rename to lib/galaxy/tools/bundled/phenotype_association/beam.xml diff --git a/tools/phenotype_association/gpass.pl b/lib/galaxy/tools/bundled/phenotype_association/gpass.pl similarity index 100% rename from tools/phenotype_association/gpass.pl rename to lib/galaxy/tools/bundled/phenotype_association/gpass.pl diff --git a/tools/phenotype_association/gpass.xml b/lib/galaxy/tools/bundled/phenotype_association/gpass.xml similarity index 100% rename from tools/phenotype_association/gpass.xml rename to lib/galaxy/tools/bundled/phenotype_association/gpass.xml diff --git a/tools/phenotype_association/ldtools.xml b/lib/galaxy/tools/bundled/phenotype_association/ldtools.xml similarity index 100% rename from tools/phenotype_association/ldtools.xml rename to lib/galaxy/tools/bundled/phenotype_association/ldtools.xml diff --git a/tools/phenotype_association/ldtools_wrapper.sh b/lib/galaxy/tools/bundled/phenotype_association/ldtools_wrapper.sh similarity index 100% rename from tools/phenotype_association/ldtools_wrapper.sh rename to lib/galaxy/tools/bundled/phenotype_association/ldtools_wrapper.sh diff --git a/tools/phenotype_association/linkToDavid.pl b/lib/galaxy/tools/bundled/phenotype_association/linkToDavid.pl similarity index 100% rename from tools/phenotype_association/linkToDavid.pl rename to lib/galaxy/tools/bundled/phenotype_association/linkToDavid.pl diff --git a/tools/phenotype_association/linkToDavid.xml b/lib/galaxy/tools/bundled/phenotype_association/linkToDavid.xml similarity index 100% rename from tools/phenotype_association/linkToDavid.xml rename to lib/galaxy/tools/bundled/phenotype_association/linkToDavid.xml diff --git a/tools/phenotype_association/linkToGProfile.pl b/lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.pl similarity index 100% rename from tools/phenotype_association/linkToGProfile.pl rename to lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.pl diff --git a/tools/phenotype_association/linkToGProfile.xml b/lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.xml similarity index 100% rename from tools/phenotype_association/linkToGProfile.xml rename to lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.xml diff --git a/tools/phenotype_association/lped_to_geno.pl b/lib/galaxy/tools/bundled/phenotype_association/lped_to_geno.pl similarity index 100% rename from tools/phenotype_association/lped_to_geno.pl rename to lib/galaxy/tools/bundled/phenotype_association/lped_to_geno.pl diff --git a/tools/phenotype_association/lps.xml b/lib/galaxy/tools/bundled/phenotype_association/lps.xml similarity index 100% rename from tools/phenotype_association/lps.xml rename to lib/galaxy/tools/bundled/phenotype_association/lps.xml diff --git a/tools/phenotype_association/lps_tool_wrapper.sh b/lib/galaxy/tools/bundled/phenotype_association/lps_tool_wrapper.sh similarity index 100% rename from tools/phenotype_association/lps_tool_wrapper.sh rename to lib/galaxy/tools/bundled/phenotype_association/lps_tool_wrapper.sh diff --git a/tools/phenotype_association/master2gd_snp.pl b/lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.pl similarity index 100% rename from tools/phenotype_association/master2gd_snp.pl rename to lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.pl diff --git a/tools/phenotype_association/master2gd_snp.xml b/lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.xml similarity index 100% rename from tools/phenotype_association/master2gd_snp.xml rename to lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.xml diff --git a/tools/phenotype_association/master2pg.pl b/lib/galaxy/tools/bundled/phenotype_association/master2pg.pl similarity index 100% rename from tools/phenotype_association/master2pg.pl rename to lib/galaxy/tools/bundled/phenotype_association/master2pg.pl diff --git a/tools/phenotype_association/master2pg.xml b/lib/galaxy/tools/bundled/phenotype_association/master2pg.xml similarity index 100% rename from tools/phenotype_association/master2pg.xml rename to lib/galaxy/tools/bundled/phenotype_association/master2pg.xml diff --git a/tools/phenotype_association/mergeSnps.pl b/lib/galaxy/tools/bundled/phenotype_association/mergeSnps.pl similarity index 100% rename from tools/phenotype_association/mergeSnps.pl rename to lib/galaxy/tools/bundled/phenotype_association/mergeSnps.pl diff --git a/tools/phenotype_association/pagetag.py b/lib/galaxy/tools/bundled/phenotype_association/pagetag.py similarity index 100% rename from tools/phenotype_association/pagetag.py rename to lib/galaxy/tools/bundled/phenotype_association/pagetag.py diff --git a/tools/phenotype_association/pass.xml b/lib/galaxy/tools/bundled/phenotype_association/pass.xml similarity index 100% rename from tools/phenotype_association/pass.xml rename to lib/galaxy/tools/bundled/phenotype_association/pass.xml diff --git a/tools/phenotype_association/pass_wrapper.sh b/lib/galaxy/tools/bundled/phenotype_association/pass_wrapper.sh similarity index 100% rename from tools/phenotype_association/pass_wrapper.sh rename to lib/galaxy/tools/bundled/phenotype_association/pass_wrapper.sh diff --git a/tools/phenotype_association/senatag.py b/lib/galaxy/tools/bundled/phenotype_association/senatag.py similarity index 100% rename from tools/phenotype_association/senatag.py rename to lib/galaxy/tools/bundled/phenotype_association/senatag.py diff --git a/tools/phenotype_association/sift.xml b/lib/galaxy/tools/bundled/phenotype_association/sift.xml similarity index 100% rename from tools/phenotype_association/sift.xml rename to lib/galaxy/tools/bundled/phenotype_association/sift.xml diff --git a/tools/phenotype_association/sift_variants_wrapper.sh b/lib/galaxy/tools/bundled/phenotype_association/sift_variants_wrapper.sh similarity index 100% rename from tools/phenotype_association/sift_variants_wrapper.sh rename to lib/galaxy/tools/bundled/phenotype_association/sift_variants_wrapper.sh diff --git a/tools/phenotype_association/vcf2pgSnpMult.pl b/lib/galaxy/tools/bundled/phenotype_association/vcf2pgSnpMult.pl similarity index 100% rename from tools/phenotype_association/vcf2pgSnpMult.pl rename to lib/galaxy/tools/bundled/phenotype_association/vcf2pgSnpMult.pl diff --git a/tools/plotting/bar_chart.py b/lib/galaxy/tools/bundled/plotting/bar_chart.py similarity index 100% rename from tools/plotting/bar_chart.py rename to lib/galaxy/tools/bundled/plotting/bar_chart.py diff --git a/tools/plotting/bar_chart.xml b/lib/galaxy/tools/bundled/plotting/bar_chart.xml similarity index 100% rename from tools/plotting/bar_chart.xml rename to lib/galaxy/tools/bundled/plotting/bar_chart.xml diff --git a/tools/plotting/boxplot.xml b/lib/galaxy/tools/bundled/plotting/boxplot.xml similarity index 100% rename from tools/plotting/boxplot.xml rename to lib/galaxy/tools/bundled/plotting/boxplot.xml diff --git a/tools/solid_tools/maq_cs_wrapper.py b/lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.py similarity index 100% rename from tools/solid_tools/maq_cs_wrapper.py rename to lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.py diff --git a/tools/solid_tools/maq_cs_wrapper.xml b/lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.xml similarity index 100% rename from tools/solid_tools/maq_cs_wrapper.xml rename to lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.xml diff --git a/tools/solid_tools/maq_cs_wrapper_code.py b/lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper_code.py similarity index 100% rename from tools/solid_tools/maq_cs_wrapper_code.py rename to lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper_code.py diff --git a/tools/solid_tools/qualsolid_boxplot_graph.sh b/lib/galaxy/tools/bundled/solid_tools/qualsolid_boxplot_graph.sh similarity index 100% rename from tools/solid_tools/qualsolid_boxplot_graph.sh rename to lib/galaxy/tools/bundled/solid_tools/qualsolid_boxplot_graph.sh diff --git a/tools/solid_tools/solid_qual_boxplot.xml b/lib/galaxy/tools/bundled/solid_tools/solid_qual_boxplot.xml similarity index 100% rename from tools/solid_tools/solid_qual_boxplot.xml rename to lib/galaxy/tools/bundled/solid_tools/solid_qual_boxplot.xml diff --git a/tools/solid_tools/solid_qual_stats.py b/lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.py similarity index 100% rename from tools/solid_tools/solid_qual_stats.py rename to lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.py diff --git a/tools/solid_tools/solid_qual_stats.xml b/lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.xml similarity index 100% rename from tools/solid_tools/solid_qual_stats.xml rename to lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.xml diff --git a/tools/sr_assembly/velvetg.xml b/lib/galaxy/tools/bundled/sr_assembly/velvetg.xml similarity index 100% rename from tools/sr_assembly/velvetg.xml rename to lib/galaxy/tools/bundled/sr_assembly/velvetg.xml diff --git a/tools/sr_assembly/velvetg_wrapper.py b/lib/galaxy/tools/bundled/sr_assembly/velvetg_wrapper.py similarity index 100% rename from tools/sr_assembly/velvetg_wrapper.py rename to lib/galaxy/tools/bundled/sr_assembly/velvetg_wrapper.py diff --git a/tools/sr_assembly/velveth.xml b/lib/galaxy/tools/bundled/sr_assembly/velveth.xml similarity index 100% rename from tools/sr_assembly/velveth.xml rename to lib/galaxy/tools/bundled/sr_assembly/velveth.xml diff --git a/tools/sr_assembly/velveth_wrapper.py b/lib/galaxy/tools/bundled/sr_assembly/velveth_wrapper.py similarity index 100% rename from tools/sr_assembly/velveth_wrapper.py rename to lib/galaxy/tools/bundled/sr_assembly/velveth_wrapper.py diff --git a/tools/sr_mapping/PerM.xml b/lib/galaxy/tools/bundled/sr_mapping/PerM.xml similarity index 100% rename from tools/sr_mapping/PerM.xml rename to lib/galaxy/tools/bundled/sr_mapping/PerM.xml diff --git a/tools/sr_mapping/bfast_wrapper.py b/lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.py similarity index 100% rename from tools/sr_mapping/bfast_wrapper.py rename to lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.py diff --git a/tools/sr_mapping/bfast_wrapper.xml b/lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.xml similarity index 100% rename from tools/sr_mapping/bfast_wrapper.xml rename to lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.xml diff --git a/tools/sr_mapping/fastq_statistics.xml b/lib/galaxy/tools/bundled/sr_mapping/fastq_statistics.xml similarity index 100% rename from tools/sr_mapping/fastq_statistics.xml rename to lib/galaxy/tools/bundled/sr_mapping/fastq_statistics.xml diff --git a/tools/sr_mapping/mosaik.xml b/lib/galaxy/tools/bundled/sr_mapping/mosaik.xml similarity index 100% rename from tools/sr_mapping/mosaik.xml rename to lib/galaxy/tools/bundled/sr_mapping/mosaik.xml diff --git a/tools/sr_mapping/srma_wrapper.py b/lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.py similarity index 100% rename from tools/sr_mapping/srma_wrapper.py rename to lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.py diff --git a/tools/sr_mapping/srma_wrapper.xml b/lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.xml similarity index 100% rename from tools/sr_mapping/srma_wrapper.xml rename to lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.xml diff --git a/tools/stats/aggregate_binned_scores_in_intervals.xml b/lib/galaxy/tools/bundled/stats/aggregate_binned_scores_in_intervals.xml similarity index 100% rename from tools/stats/aggregate_binned_scores_in_intervals.xml rename to lib/galaxy/tools/bundled/stats/aggregate_binned_scores_in_intervals.xml diff --git a/tools/stats/aggregate_scores_in_intervals.py b/lib/galaxy/tools/bundled/stats/aggregate_scores_in_intervals.py similarity index 100% rename from tools/stats/aggregate_scores_in_intervals.py rename to lib/galaxy/tools/bundled/stats/aggregate_scores_in_intervals.py diff --git a/tools/stats/filtering.py b/lib/galaxy/tools/bundled/stats/filtering.py similarity index 100% rename from tools/stats/filtering.py rename to lib/galaxy/tools/bundled/stats/filtering.py diff --git a/tools/stats/filtering.xml b/lib/galaxy/tools/bundled/stats/filtering.xml similarity index 100% rename from tools/stats/filtering.xml rename to lib/galaxy/tools/bundled/stats/filtering.xml diff --git a/tools/stats/grouping.py b/lib/galaxy/tools/bundled/stats/grouping.py similarity index 100% rename from tools/stats/grouping.py rename to lib/galaxy/tools/bundled/stats/grouping.py diff --git a/tools/stats/grouping.xml b/lib/galaxy/tools/bundled/stats/grouping.xml similarity index 100% rename from tools/stats/grouping.xml rename to lib/galaxy/tools/bundled/stats/grouping.xml diff --git a/tools/stats/gsummary.py b/lib/galaxy/tools/bundled/stats/gsummary.py similarity index 100% rename from tools/stats/gsummary.py rename to lib/galaxy/tools/bundled/stats/gsummary.py diff --git a/tools/stats/gsummary.xml b/lib/galaxy/tools/bundled/stats/gsummary.xml similarity index 100% rename from tools/stats/gsummary.xml rename to lib/galaxy/tools/bundled/stats/gsummary.xml diff --git a/tools/stats/gsummary.xml.groups b/lib/galaxy/tools/bundled/stats/gsummary.xml.groups similarity index 100% rename from tools/stats/gsummary.xml.groups rename to lib/galaxy/tools/bundled/stats/gsummary.xml.groups diff --git a/tools/stats/r_wrapper.sh b/lib/galaxy/tools/bundled/stats/r_wrapper.sh similarity index 100% rename from tools/stats/r_wrapper.sh rename to lib/galaxy/tools/bundled/stats/r_wrapper.sh diff --git a/tools/visualization/LAJ.py b/lib/galaxy/tools/bundled/visualization/LAJ.py similarity index 100% rename from tools/visualization/LAJ.py rename to lib/galaxy/tools/bundled/visualization/LAJ.py diff --git a/tools/visualization/LAJ.xml b/lib/galaxy/tools/bundled/visualization/LAJ.xml similarity index 100% rename from tools/visualization/LAJ.xml rename to lib/galaxy/tools/bundled/visualization/LAJ.xml diff --git a/tools/visualization/LAJ_code.py b/lib/galaxy/tools/bundled/visualization/LAJ_code.py similarity index 100% rename from tools/visualization/LAJ_code.py rename to lib/galaxy/tools/bundled/visualization/LAJ_code.py diff --git a/static/images/Armitagep_manhattan.png b/lib/galaxy/web/framework/static/images/Armitagep_manhattan.png similarity index 100% rename from static/images/Armitagep_manhattan.png rename to lib/galaxy/web/framework/static/images/Armitagep_manhattan.png diff --git a/static/images/Armitagep_qqplot.png b/lib/galaxy/web/framework/static/images/Armitagep_qqplot.png similarity index 100% rename from static/images/Armitagep_qqplot.png rename to lib/galaxy/web/framework/static/images/Armitagep_qqplot.png diff --git a/static/images/add_icon.png b/lib/galaxy/web/framework/static/images/add_icon.png similarity index 100% rename from static/images/add_icon.png rename to lib/galaxy/web/framework/static/images/add_icon.png diff --git a/static/images/add_icon_dark.png b/lib/galaxy/web/framework/static/images/add_icon_dark.png similarity index 100% rename from static/images/add_icon_dark.png rename to lib/galaxy/web/framework/static/images/add_icon_dark.png diff --git a/static/images/aggregate_history1.png b/lib/galaxy/web/framework/static/images/aggregate_history1.png similarity index 100% rename from static/images/aggregate_history1.png rename to lib/galaxy/web/framework/static/images/aggregate_history1.png diff --git a/static/images/aggregate_history2.png b/lib/galaxy/web/framework/static/images/aggregate_history2.png similarity index 100% rename from static/images/aggregate_history2.png rename to lib/galaxy/web/framework/static/images/aggregate_history2.png diff --git a/static/images/bar_chart.png b/lib/galaxy/web/framework/static/images/bar_chart.png similarity index 100% rename from static/images/bar_chart.png rename to lib/galaxy/web/framework/static/images/bar_chart.png diff --git a/static/images/bed_warn.png b/lib/galaxy/web/framework/static/images/bed_warn.png similarity index 100% rename from static/images/bed_warn.png rename to lib/galaxy/web/framework/static/images/bed_warn.png diff --git a/static/images/closebox.png b/lib/galaxy/web/framework/static/images/closebox.png similarity index 100% rename from static/images/closebox.png rename to lib/galaxy/web/framework/static/images/closebox.png diff --git a/static/images/dat_points_table_brows_1.png b/lib/galaxy/web/framework/static/images/dat_points_table_brows_1.png similarity index 100% rename from static/images/dat_points_table_brows_1.png rename to lib/galaxy/web/framework/static/images/dat_points_table_brows_1.png diff --git a/static/images/ddarrowsplit.png b/lib/galaxy/web/framework/static/images/ddarrowsplit.png similarity index 100% rename from static/images/ddarrowsplit.png rename to lib/galaxy/web/framework/static/images/ddarrowsplit.png diff --git a/static/images/delete.gif b/lib/galaxy/web/framework/static/images/delete.gif similarity index 100% rename from static/images/delete.gif rename to lib/galaxy/web/framework/static/images/delete.gif diff --git a/static/images/delete_tag_icon_gray.png b/lib/galaxy/web/framework/static/images/delete_tag_icon_gray.png similarity index 100% rename from static/images/delete_tag_icon_gray.png rename to lib/galaxy/web/framework/static/images/delete_tag_icon_gray.png diff --git a/static/images/delete_tag_icon_white.png b/lib/galaxy/web/framework/static/images/delete_tag_icon_white.png similarity index 100% rename from static/images/delete_tag_icon_white.png rename to lib/galaxy/web/framework/static/images/delete_tag_icon_white.png diff --git a/static/images/documents-stack-faded.png b/lib/galaxy/web/framework/static/images/documents-stack-faded.png similarity index 100% rename from static/images/documents-stack-faded.png rename to lib/galaxy/web/framework/static/images/documents-stack-faded.png diff --git a/static/images/documents-stack.png b/lib/galaxy/web/framework/static/images/documents-stack.png similarity index 100% rename from static/images/documents-stack.png rename to lib/galaxy/web/framework/static/images/documents-stack.png diff --git a/static/images/dropdownarrow.png b/lib/galaxy/web/framework/static/images/dropdownarrow.png similarity index 100% rename from static/images/dropdownarrow.png rename to lib/galaxy/web/framework/static/images/dropdownarrow.png diff --git a/static/images/dw.gif b/lib/galaxy/web/framework/static/images/dw.gif similarity index 100% rename from static/images/dw.gif rename to lib/galaxy/web/framework/static/images/dw.gif diff --git a/static/images/fetchTax.png b/lib/galaxy/web/framework/static/images/fetchTax.png similarity index 100% rename from static/images/fetchTax.png rename to lib/galaxy/web/framework/static/images/fetchTax.png diff --git a/static/images/fonts/fontawesome-webfont.eot b/lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.eot similarity index 100% rename from static/images/fonts/fontawesome-webfont.eot rename to lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.eot diff --git a/static/images/fonts/fontawesome-webfont.ttf b/lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.ttf similarity index 100% rename from static/images/fonts/fontawesome-webfont.ttf rename to lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.ttf diff --git a/static/images/fonts/fontawesome-webfont.woff b/lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.woff similarity index 100% rename from static/images/fonts/fontawesome-webfont.woff rename to lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.woff diff --git a/static/images/fonts/iconic_stroke.eot b/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.eot similarity index 100% rename from static/images/fonts/iconic_stroke.eot rename to lib/galaxy/web/framework/static/images/fonts/iconic_stroke.eot diff --git a/static/images/fonts/iconic_stroke.otf b/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.otf similarity index 100% rename from static/images/fonts/iconic_stroke.otf rename to lib/galaxy/web/framework/static/images/fonts/iconic_stroke.otf diff --git a/static/images/fonts/iconic_stroke.svg b/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.svg similarity index 100% rename from static/images/fonts/iconic_stroke.svg rename to lib/galaxy/web/framework/static/images/fonts/iconic_stroke.svg diff --git a/static/images/fonts/iconic_stroke.ttf b/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.ttf similarity index 100% rename from static/images/fonts/iconic_stroke.ttf rename to lib/galaxy/web/framework/static/images/fonts/iconic_stroke.ttf diff --git a/static/images/fugue/application-dock-270-bw.png b/lib/galaxy/web/framework/static/images/fugue/application-dock-270-bw.png similarity index 100% rename from static/images/fugue/application-dock-270-bw.png rename to lib/galaxy/web/framework/static/images/fugue/application-dock-270-bw.png diff --git a/static/images/fugue/application-dock-270.png b/lib/galaxy/web/framework/static/images/fugue/application-dock-270.png similarity index 100% rename from static/images/fugue/application-dock-270.png rename to lib/galaxy/web/framework/static/images/fugue/application-dock-270.png diff --git a/static/images/fugue/arrow-000-small-bw.png b/lib/galaxy/web/framework/static/images/fugue/arrow-000-small-bw.png similarity index 100% rename from static/images/fugue/arrow-000-small-bw.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-000-small-bw.png diff --git a/static/images/fugue/arrow-090.png b/lib/galaxy/web/framework/static/images/fugue/arrow-090.png similarity index 100% rename from static/images/fugue/arrow-090.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-090.png diff --git a/static/images/fugue/arrow-circle.png b/lib/galaxy/web/framework/static/images/fugue/arrow-circle.png similarity index 100% rename from static/images/fugue/arrow-circle.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-circle.png diff --git a/static/images/fugue/arrow-resize-090-bw.png b/lib/galaxy/web/framework/static/images/fugue/arrow-resize-090-bw.png similarity index 100% rename from static/images/fugue/arrow-resize-090-bw.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-resize-090-bw.png diff --git a/static/images/fugue/arrow-resize-090.png b/lib/galaxy/web/framework/static/images/fugue/arrow-resize-090.png similarity index 100% rename from static/images/fugue/arrow-resize-090.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-resize-090.png diff --git a/static/images/fugue/arrow-split-bw.png b/lib/galaxy/web/framework/static/images/fugue/arrow-split-bw.png similarity index 100% rename from static/images/fugue/arrow-split-bw.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-split-bw.png diff --git a/static/images/fugue/arrow-split.png b/lib/galaxy/web/framework/static/images/fugue/arrow-split.png similarity index 100% rename from static/images/fugue/arrow-split.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-split.png diff --git a/static/images/fugue/arrow-transition-270-bw.png b/lib/galaxy/web/framework/static/images/fugue/arrow-transition-270-bw.png similarity index 100% rename from static/images/fugue/arrow-transition-270-bw.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-transition-270-bw.png diff --git a/static/images/fugue/arrow-transition-bw.png b/lib/galaxy/web/framework/static/images/fugue/arrow-transition-bw.png similarity index 100% rename from static/images/fugue/arrow-transition-bw.png rename to lib/galaxy/web/framework/static/images/fugue/arrow-transition-bw.png diff --git a/static/images/fugue/asterisk-small-outline.png b/lib/galaxy/web/framework/static/images/fugue/asterisk-small-outline.png similarity index 100% rename from static/images/fugue/asterisk-small-outline.png rename to lib/galaxy/web/framework/static/images/fugue/asterisk-small-outline.png diff --git a/static/images/fugue/asterisk-small-yellow.png b/lib/galaxy/web/framework/static/images/fugue/asterisk-small-yellow.png similarity index 100% rename from static/images/fugue/asterisk-small-yellow.png rename to lib/galaxy/web/framework/static/images/fugue/asterisk-small-yellow.png diff --git a/static/images/fugue/asterisk-small.png b/lib/galaxy/web/framework/static/images/fugue/asterisk-small.png similarity index 100% rename from static/images/fugue/asterisk-small.png rename to lib/galaxy/web/framework/static/images/fugue/asterisk-small.png diff --git a/static/images/fugue/block--plus-bw.png b/lib/galaxy/web/framework/static/images/fugue/block--plus-bw.png similarity index 100% rename from static/images/fugue/block--plus-bw.png rename to lib/galaxy/web/framework/static/images/fugue/block--plus-bw.png diff --git a/static/images/fugue/block--plus.png b/lib/galaxy/web/framework/static/images/fugue/block--plus.png similarity index 100% rename from static/images/fugue/block--plus.png rename to lib/galaxy/web/framework/static/images/fugue/block--plus.png diff --git a/static/images/fugue/bookmarks-bw.png b/lib/galaxy/web/framework/static/images/fugue/bookmarks-bw.png similarity index 100% rename from static/images/fugue/bookmarks-bw.png rename to lib/galaxy/web/framework/static/images/fugue/bookmarks-bw.png diff --git a/static/images/fugue/bookmarks.png b/lib/galaxy/web/framework/static/images/fugue/bookmarks.png similarity index 100% rename from static/images/fugue/bookmarks.png rename to lib/galaxy/web/framework/static/images/fugue/bookmarks.png diff --git a/static/images/fugue/bug.png b/lib/galaxy/web/framework/static/images/fugue/bug.png similarity index 100% rename from static/images/fugue/bug.png rename to lib/galaxy/web/framework/static/images/fugue/bug.png diff --git a/static/images/fugue/chart.png b/lib/galaxy/web/framework/static/images/fugue/chart.png similarity index 100% rename from static/images/fugue/chart.png rename to lib/galaxy/web/framework/static/images/fugue/chart.png diff --git a/static/images/fugue/chevron-expand-bw.png b/lib/galaxy/web/framework/static/images/fugue/chevron-expand-bw.png similarity index 100% rename from static/images/fugue/chevron-expand-bw.png rename to lib/galaxy/web/framework/static/images/fugue/chevron-expand-bw.png diff --git a/static/images/fugue/chevron-expand.png b/lib/galaxy/web/framework/static/images/fugue/chevron-expand.png similarity index 100% rename from static/images/fugue/chevron-expand.png rename to lib/galaxy/web/framework/static/images/fugue/chevron-expand.png diff --git a/static/images/fugue/chevron.png b/lib/galaxy/web/framework/static/images/fugue/chevron.png similarity index 100% rename from static/images/fugue/chevron.png rename to lib/galaxy/web/framework/static/images/fugue/chevron.png diff --git a/static/images/fugue/control-270.png b/lib/galaxy/web/framework/static/images/fugue/control-270.png similarity index 100% rename from static/images/fugue/control-270.png rename to lib/galaxy/web/framework/static/images/fugue/control-270.png diff --git a/static/images/fugue/cross-button.png b/lib/galaxy/web/framework/static/images/fugue/cross-button.png similarity index 100% rename from static/images/fugue/cross-button.png rename to lib/galaxy/web/framework/static/images/fugue/cross-button.png diff --git a/static/images/fugue/cross-circle-bw.png b/lib/galaxy/web/framework/static/images/fugue/cross-circle-bw.png similarity index 100% rename from static/images/fugue/cross-circle-bw.png rename to lib/galaxy/web/framework/static/images/fugue/cross-circle-bw.png diff --git a/static/images/fugue/cross-circle.png b/lib/galaxy/web/framework/static/images/fugue/cross-circle.png similarity index 100% rename from static/images/fugue/cross-circle.png rename to lib/galaxy/web/framework/static/images/fugue/cross-circle.png diff --git a/static/images/fugue/cross-small-bw.png b/lib/galaxy/web/framework/static/images/fugue/cross-small-bw.png similarity index 100% rename from static/images/fugue/cross-small-bw.png rename to lib/galaxy/web/framework/static/images/fugue/cross-small-bw.png diff --git a/static/images/fugue/cross.png b/lib/galaxy/web/framework/static/images/fugue/cross.png similarity index 100% rename from static/images/fugue/cross.png rename to lib/galaxy/web/framework/static/images/fugue/cross.png diff --git a/static/images/fugue/disk--arrow-bw.png b/lib/galaxy/web/framework/static/images/fugue/disk--arrow-bw.png similarity index 100% rename from static/images/fugue/disk--arrow-bw.png rename to lib/galaxy/web/framework/static/images/fugue/disk--arrow-bw.png diff --git a/static/images/fugue/disk--arrow.png b/lib/galaxy/web/framework/static/images/fugue/disk--arrow.png similarity index 100% rename from static/images/fugue/disk--arrow.png rename to lib/galaxy/web/framework/static/images/fugue/disk--arrow.png diff --git a/static/images/fugue/disk.png b/lib/galaxy/web/framework/static/images/fugue/disk.png similarity index 100% rename from static/images/fugue/disk.png rename to lib/galaxy/web/framework/static/images/fugue/disk.png diff --git a/static/images/fugue/exclamation.png b/lib/galaxy/web/framework/static/images/fugue/exclamation.png similarity index 100% rename from static/images/fugue/exclamation.png rename to lib/galaxy/web/framework/static/images/fugue/exclamation.png diff --git a/static/images/fugue/external.png b/lib/galaxy/web/framework/static/images/fugue/external.png similarity index 100% rename from static/images/fugue/external.png rename to lib/galaxy/web/framework/static/images/fugue/external.png diff --git a/static/images/fugue/eye.png b/lib/galaxy/web/framework/static/images/fugue/eye.png similarity index 100% rename from static/images/fugue/eye.png rename to lib/galaxy/web/framework/static/images/fugue/eye.png diff --git a/static/images/fugue/gear-bw.png b/lib/galaxy/web/framework/static/images/fugue/gear-bw.png similarity index 100% rename from static/images/fugue/gear-bw.png rename to lib/galaxy/web/framework/static/images/fugue/gear-bw.png diff --git a/static/images/fugue/gear.png b/lib/galaxy/web/framework/static/images/fugue/gear.png similarity index 100% rename from static/images/fugue/gear.png rename to lib/galaxy/web/framework/static/images/fugue/gear.png diff --git a/static/images/fugue/globe-bw.png b/lib/galaxy/web/framework/static/images/fugue/globe-bw.png similarity index 100% rename from static/images/fugue/globe-bw.png rename to lib/galaxy/web/framework/static/images/fugue/globe-bw.png diff --git a/static/images/fugue/globe.png b/lib/galaxy/web/framework/static/images/fugue/globe.png similarity index 100% rename from static/images/fugue/globe.png rename to lib/galaxy/web/framework/static/images/fugue/globe.png diff --git a/static/images/fugue/hammer-bw.png b/lib/galaxy/web/framework/static/images/fugue/hammer-bw.png similarity index 100% rename from static/images/fugue/hammer-bw.png rename to lib/galaxy/web/framework/static/images/fugue/hammer-bw.png diff --git a/static/images/fugue/hammer.png b/lib/galaxy/web/framework/static/images/fugue/hammer.png similarity index 100% rename from static/images/fugue/hammer.png rename to lib/galaxy/web/framework/static/images/fugue/hammer.png diff --git a/static/images/fugue/information-white.png b/lib/galaxy/web/framework/static/images/fugue/information-white.png similarity index 100% rename from static/images/fugue/information-white.png rename to lib/galaxy/web/framework/static/images/fugue/information-white.png diff --git a/static/images/fugue/layer-transparent-bw.png b/lib/galaxy/web/framework/static/images/fugue/layer-transparent-bw.png similarity index 100% rename from static/images/fugue/layer-transparent-bw.png rename to lib/galaxy/web/framework/static/images/fugue/layer-transparent-bw.png diff --git a/static/images/fugue/layer-transparent.png b/lib/galaxy/web/framework/static/images/fugue/layer-transparent.png similarity index 100% rename from static/images/fugue/layer-transparent.png rename to lib/galaxy/web/framework/static/images/fugue/layer-transparent.png diff --git a/static/images/fugue/layers-stack-bw.png b/lib/galaxy/web/framework/static/images/fugue/layers-stack-bw.png similarity index 100% rename from static/images/fugue/layers-stack-bw.png rename to lib/galaxy/web/framework/static/images/fugue/layers-stack-bw.png diff --git a/static/images/fugue/layers-stack.png b/lib/galaxy/web/framework/static/images/fugue/layers-stack.png similarity index 100% rename from static/images/fugue/layers-stack.png rename to lib/galaxy/web/framework/static/images/fugue/layers-stack.png diff --git a/static/images/fugue/magnifier-left.png b/lib/galaxy/web/framework/static/images/fugue/magnifier-left.png similarity index 100% rename from static/images/fugue/magnifier-left.png rename to lib/galaxy/web/framework/static/images/fugue/magnifier-left.png diff --git a/static/images/fugue/magnifier-zoom-out.png b/lib/galaxy/web/framework/static/images/fugue/magnifier-zoom-out.png similarity index 100% rename from static/images/fugue/magnifier-zoom-out.png rename to lib/galaxy/web/framework/static/images/fugue/magnifier-zoom-out.png diff --git a/static/images/fugue/magnifier-zoom.png b/lib/galaxy/web/framework/static/images/fugue/magnifier-zoom.png similarity index 100% rename from static/images/fugue/magnifier-zoom.png rename to lib/galaxy/web/framework/static/images/fugue/magnifier-zoom.png diff --git a/static/images/fugue/navigation.png b/lib/galaxy/web/framework/static/images/fugue/navigation.png similarity index 100% rename from static/images/fugue/navigation.png rename to lib/galaxy/web/framework/static/images/fugue/navigation.png diff --git a/static/images/fugue/pencil-small.png b/lib/galaxy/web/framework/static/images/fugue/pencil-small.png similarity index 100% rename from static/images/fugue/pencil-small.png rename to lib/galaxy/web/framework/static/images/fugue/pencil-small.png diff --git a/static/images/fugue/pencil.png b/lib/galaxy/web/framework/static/images/fugue/pencil.png similarity index 100% rename from static/images/fugue/pencil.png rename to lib/galaxy/web/framework/static/images/fugue/pencil.png diff --git a/static/images/fugue/plus-button-bw.png b/lib/galaxy/web/framework/static/images/fugue/plus-button-bw.png similarity index 100% rename from static/images/fugue/plus-button-bw.png rename to lib/galaxy/web/framework/static/images/fugue/plus-button-bw.png diff --git a/static/images/fugue/plus-button.png b/lib/galaxy/web/framework/static/images/fugue/plus-button.png similarity index 100% rename from static/images/fugue/plus-button.png rename to lib/galaxy/web/framework/static/images/fugue/plus-button.png diff --git a/static/images/fugue/plus-circle.png b/lib/galaxy/web/framework/static/images/fugue/plus-circle.png similarity index 100% rename from static/images/fugue/plus-circle.png rename to lib/galaxy/web/framework/static/images/fugue/plus-circle.png diff --git a/static/images/fugue/sticky-note-text.png b/lib/galaxy/web/framework/static/images/fugue/sticky-note-text.png similarity index 100% rename from static/images/fugue/sticky-note-text.png rename to lib/galaxy/web/framework/static/images/fugue/sticky-note-text.png diff --git a/static/images/fugue/tag--plus.png b/lib/galaxy/web/framework/static/images/fugue/tag--plus.png similarity index 100% rename from static/images/fugue/tag--plus.png rename to lib/galaxy/web/framework/static/images/fugue/tag--plus.png diff --git a/static/images/fugue/tag-label.png b/lib/galaxy/web/framework/static/images/fugue/tag-label.png similarity index 100% rename from static/images/fugue/tag-label.png rename to lib/galaxy/web/framework/static/images/fugue/tag-label.png diff --git a/static/images/fugue/tags.png b/lib/galaxy/web/framework/static/images/fugue/tags.png similarity index 100% rename from static/images/fugue/tags.png rename to lib/galaxy/web/framework/static/images/fugue/tags.png diff --git a/static/images/fugue/toggle-bw.png b/lib/galaxy/web/framework/static/images/fugue/toggle-bw.png similarity index 100% rename from static/images/fugue/toggle-bw.png rename to lib/galaxy/web/framework/static/images/fugue/toggle-bw.png diff --git a/static/images/fugue/toggle-expand-bw.png b/lib/galaxy/web/framework/static/images/fugue/toggle-expand-bw.png similarity index 100% rename from static/images/fugue/toggle-expand-bw.png rename to lib/galaxy/web/framework/static/images/fugue/toggle-expand-bw.png diff --git a/static/images/fugue/toggle-expand.png b/lib/galaxy/web/framework/static/images/fugue/toggle-expand.png similarity index 100% rename from static/images/fugue/toggle-expand.png rename to lib/galaxy/web/framework/static/images/fugue/toggle-expand.png diff --git a/static/images/fugue/toggle.png b/lib/galaxy/web/framework/static/images/fugue/toggle.png similarity index 100% rename from static/images/fugue/toggle.png rename to lib/galaxy/web/framework/static/images/fugue/toggle.png diff --git a/static/images/fugue/toolbox-bw.png b/lib/galaxy/web/framework/static/images/fugue/toolbox-bw.png similarity index 100% rename from static/images/fugue/toolbox-bw.png rename to lib/galaxy/web/framework/static/images/fugue/toolbox-bw.png diff --git a/static/images/fugue/toolbox.png b/lib/galaxy/web/framework/static/images/fugue/toolbox.png similarity index 100% rename from static/images/fugue/toolbox.png rename to lib/galaxy/web/framework/static/images/fugue/toolbox.png diff --git a/static/images/fugue/ui-slider-050-bw.png b/lib/galaxy/web/framework/static/images/fugue/ui-slider-050-bw.png similarity index 100% rename from static/images/fugue/ui-slider-050-bw.png rename to lib/galaxy/web/framework/static/images/fugue/ui-slider-050-bw.png diff --git a/static/images/fugue/ui-slider-050.png b/lib/galaxy/web/framework/static/images/fugue/ui-slider-050.png similarity index 100% rename from static/images/fugue/ui-slider-050.png rename to lib/galaxy/web/framework/static/images/fugue/ui-slider-050.png diff --git a/static/images/galaxyIcon_noText.png b/lib/galaxy/web/framework/static/images/galaxyIcon_noText.png similarity index 100% rename from static/images/galaxyIcon_noText.png rename to lib/galaxy/web/framework/static/images/galaxyIcon_noText.png diff --git a/static/images/hatch-023858.png b/lib/galaxy/web/framework/static/images/hatch-023858.png similarity index 100% rename from static/images/hatch-023858.png rename to lib/galaxy/web/framework/static/images/hatch-023858.png diff --git a/static/images/hatch-fade-023858.gif b/lib/galaxy/web/framework/static/images/hatch-fade-023858.gif similarity index 100% rename from static/images/hatch-fade-023858.gif rename to lib/galaxy/web/framework/static/images/hatch-fade-023858.gif diff --git a/static/images/histogram.png b/lib/galaxy/web/framework/static/images/histogram.png similarity index 100% rename from static/images/histogram.png rename to lib/galaxy/web/framework/static/images/histogram.png diff --git a/static/images/histogram2.png b/lib/galaxy/web/framework/static/images/histogram2.png similarity index 100% rename from static/images/histogram2.png rename to lib/galaxy/web/framework/static/images/histogram2.png diff --git a/static/images/history-buttons/delete_icon.png b/lib/galaxy/web/framework/static/images/history-buttons/delete_icon.png similarity index 100% rename from static/images/history-buttons/delete_icon.png rename to lib/galaxy/web/framework/static/images/history-buttons/delete_icon.png diff --git a/static/images/history-buttons/delete_icon_dark.png b/lib/galaxy/web/framework/static/images/history-buttons/delete_icon_dark.png similarity index 100% rename from static/images/history-buttons/delete_icon_dark.png rename to lib/galaxy/web/framework/static/images/history-buttons/delete_icon_dark.png diff --git a/static/images/history-buttons/delete_icon_grey.png b/lib/galaxy/web/framework/static/images/history-buttons/delete_icon_grey.png similarity index 100% rename from static/images/history-buttons/delete_icon_grey.png rename to lib/galaxy/web/framework/static/images/history-buttons/delete_icon_grey.png diff --git a/static/images/history-buttons/eye_icon.png b/lib/galaxy/web/framework/static/images/history-buttons/eye_icon.png similarity index 100% rename from static/images/history-buttons/eye_icon.png rename to lib/galaxy/web/framework/static/images/history-buttons/eye_icon.png diff --git a/static/images/history-buttons/eye_icon_dark.png b/lib/galaxy/web/framework/static/images/history-buttons/eye_icon_dark.png similarity index 100% rename from static/images/history-buttons/eye_icon_dark.png rename to lib/galaxy/web/framework/static/images/history-buttons/eye_icon_dark.png diff --git a/static/images/history-buttons/eye_icon_grey.png b/lib/galaxy/web/framework/static/images/history-buttons/eye_icon_grey.png similarity index 100% rename from static/images/history-buttons/eye_icon_grey.png rename to lib/galaxy/web/framework/static/images/history-buttons/eye_icon_grey.png diff --git a/static/images/history-buttons/pencil_icon.png b/lib/galaxy/web/framework/static/images/history-buttons/pencil_icon.png similarity index 100% rename from static/images/history-buttons/pencil_icon.png rename to lib/galaxy/web/framework/static/images/history-buttons/pencil_icon.png diff --git a/static/images/history-buttons/pencil_icon_dark.png b/lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_dark.png similarity index 100% rename from static/images/history-buttons/pencil_icon_dark.png rename to lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_dark.png diff --git a/static/images/history-buttons/pencil_icon_grey.png b/lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_grey.png similarity index 100% rename from static/images/history-buttons/pencil_icon_grey.png rename to lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_grey.png diff --git a/static/images/history-states/data_empty.png b/lib/galaxy/web/framework/static/images/history-states/data_empty.png similarity index 100% rename from static/images/history-states/data_empty.png rename to lib/galaxy/web/framework/static/images/history-states/data_empty.png diff --git a/static/images/history-states/data_error.png b/lib/galaxy/web/framework/static/images/history-states/data_error.png similarity index 100% rename from static/images/history-states/data_error.png rename to lib/galaxy/web/framework/static/images/history-states/data_error.png diff --git a/static/images/history-states/data_ok.png b/lib/galaxy/web/framework/static/images/history-states/data_ok.png similarity index 100% rename from static/images/history-states/data_ok.png rename to lib/galaxy/web/framework/static/images/history-states/data_ok.png diff --git a/static/images/history-states/data_queued.png b/lib/galaxy/web/framework/static/images/history-states/data_queued.png similarity index 100% rename from static/images/history-states/data_queued.png rename to lib/galaxy/web/framework/static/images/history-states/data_queued.png diff --git a/static/images/history.gif b/lib/galaxy/web/framework/static/images/history.gif similarity index 100% rename from static/images/history.gif rename to lib/galaxy/web/framework/static/images/history.gif diff --git a/static/images/history_down_arrow.gif b/lib/galaxy/web/framework/static/images/history_down_arrow.gif similarity index 100% rename from static/images/history_down_arrow.gif rename to lib/galaxy/web/framework/static/images/history_down_arrow.gif diff --git a/static/images/history_up_arrow.gif b/lib/galaxy/web/framework/static/images/history_up_arrow.gif similarity index 100% rename from static/images/history_up_arrow.gif rename to lib/galaxy/web/framework/static/images/history_up_arrow.gif diff --git a/static/images/icon_error_lrg.gif b/lib/galaxy/web/framework/static/images/icon_error_lrg.gif similarity index 100% rename from static/images/icon_error_lrg.gif rename to lib/galaxy/web/framework/static/images/icon_error_lrg.gif diff --git a/static/images/icon_error_sml.gif b/lib/galaxy/web/framework/static/images/icon_error_sml.gif similarity index 100% rename from static/images/icon_error_sml.gif rename to lib/galaxy/web/framework/static/images/icon_error_sml.gif diff --git a/static/images/icon_info_lrg.gif b/lib/galaxy/web/framework/static/images/icon_info_lrg.gif similarity index 100% rename from static/images/icon_info_lrg.gif rename to lib/galaxy/web/framework/static/images/icon_info_lrg.gif diff --git a/static/images/icon_info_sml.gif b/lib/galaxy/web/framework/static/images/icon_info_sml.gif similarity index 100% rename from static/images/icon_info_sml.gif rename to lib/galaxy/web/framework/static/images/icon_info_sml.gif diff --git a/static/images/icon_success_lrg.gif b/lib/galaxy/web/framework/static/images/icon_success_lrg.gif similarity index 100% rename from static/images/icon_success_lrg.gif rename to lib/galaxy/web/framework/static/images/icon_success_lrg.gif diff --git a/static/images/icon_success_sml.gif b/lib/galaxy/web/framework/static/images/icon_success_sml.gif similarity index 100% rename from static/images/icon_success_sml.gif rename to lib/galaxy/web/framework/static/images/icon_success_sml.gif diff --git a/static/images/icon_warning_lrg.gif b/lib/galaxy/web/framework/static/images/icon_warning_lrg.gif similarity index 100% rename from static/images/icon_warning_lrg.gif rename to lib/galaxy/web/framework/static/images/icon_warning_lrg.gif diff --git a/static/images/icon_warning_sml.gif b/lib/galaxy/web/framework/static/images/icon_warning_sml.gif similarity index 100% rename from static/images/icon_warning_sml.gif rename to lib/galaxy/web/framework/static/images/icon_warning_sml.gif diff --git a/static/images/jstree/32px.png b/lib/galaxy/web/framework/static/images/jstree/32px.png similarity index 100% rename from static/images/jstree/32px.png rename to lib/galaxy/web/framework/static/images/jstree/32px.png diff --git a/static/images/jstree/40px.png b/lib/galaxy/web/framework/static/images/jstree/40px.png similarity index 100% rename from static/images/jstree/40px.png rename to lib/galaxy/web/framework/static/images/jstree/40px.png diff --git a/static/images/jstree/throbber.gif b/lib/galaxy/web/framework/static/images/jstree/throbber.gif similarity index 100% rename from static/images/jstree/throbber.gif rename to lib/galaxy/web/framework/static/images/jstree/throbber.gif diff --git a/static/images/kendall.png b/lib/galaxy/web/framework/static/images/kendall.png similarity index 100% rename from static/images/kendall.png rename to lib/galaxy/web/framework/static/images/kendall.png diff --git a/static/images/light_gray_grid.gif b/lib/galaxy/web/framework/static/images/light_gray_grid.gif similarity index 100% rename from static/images/light_gray_grid.gif rename to lib/galaxy/web/framework/static/images/light_gray_grid.gif diff --git a/static/images/loading_large_white_bg.gif b/lib/galaxy/web/framework/static/images/loading_large_white_bg.gif similarity index 100% rename from static/images/loading_large_white_bg.gif rename to lib/galaxy/web/framework/static/images/loading_large_white_bg.gif diff --git a/static/images/loading_small_white_bg.gif b/lib/galaxy/web/framework/static/images/loading_small_white_bg.gif similarity index 100% rename from static/images/loading_small_white_bg.gif rename to lib/galaxy/web/framework/static/images/loading_small_white_bg.gif diff --git a/static/images/maf_icons/interval2maf.png b/lib/galaxy/web/framework/static/images/maf_icons/interval2maf.png similarity index 100% rename from static/images/maf_icons/interval2maf.png rename to lib/galaxy/web/framework/static/images/maf_icons/interval2maf.png diff --git a/static/images/maf_icons/stitchMaf.png b/lib/galaxy/web/framework/static/images/maf_icons/stitchMaf.png similarity index 100% rename from static/images/maf_icons/stitchMaf.png rename to lib/galaxy/web/framework/static/images/maf_icons/stitchMaf.png diff --git a/static/images/mag_glass.png b/lib/galaxy/web/framework/static/images/mag_glass.png similarity index 100% rename from static/images/mag_glass.png rename to lib/galaxy/web/framework/static/images/mag_glass.png diff --git a/static/images/mutation_visualization_example.png b/lib/galaxy/web/framework/static/images/mutation_visualization_example.png similarity index 100% rename from static/images/mutation_visualization_example.png rename to lib/galaxy/web/framework/static/images/mutation_visualization_example.png diff --git a/static/images/openid-16x16.gif b/lib/galaxy/web/framework/static/images/openid-16x16.gif similarity index 100% rename from static/images/openid-16x16.gif rename to lib/galaxy/web/framework/static/images/openid-16x16.gif diff --git a/static/images/overview_arrows.png b/lib/galaxy/web/framework/static/images/overview_arrows.png similarity index 100% rename from static/images/overview_arrows.png rename to lib/galaxy/web/framework/static/images/overview_arrows.png diff --git a/static/images/pearson.png b/lib/galaxy/web/framework/static/images/pearson.png similarity index 100% rename from static/images/pearson.png rename to lib/galaxy/web/framework/static/images/pearson.png diff --git a/static/images/resizable.png b/lib/galaxy/web/framework/static/images/resizable.png similarity index 100% rename from static/images/resizable.png rename to lib/galaxy/web/framework/static/images/resizable.png diff --git a/static/images/rgWebLogo3_test.jpg b/lib/galaxy/web/framework/static/images/rgWebLogo3_test.jpg similarity index 100% rename from static/images/rgWebLogo3_test.jpg rename to lib/galaxy/web/framework/static/images/rgWebLogo3_test.jpg diff --git a/static/images/scatter.png b/lib/galaxy/web/framework/static/images/scatter.png similarity index 100% rename from static/images/scatter.png rename to lib/galaxy/web/framework/static/images/scatter.png diff --git a/static/images/scatterplot.png b/lib/galaxy/web/framework/static/images/scatterplot.png similarity index 100% rename from static/images/scatterplot.png rename to lib/galaxy/web/framework/static/images/scatterplot.png diff --git a/static/images/select2-spinner.gif b/lib/galaxy/web/framework/static/images/select2-spinner.gif similarity index 100% rename from static/images/select2-spinner.gif rename to lib/galaxy/web/framework/static/images/select2-spinner.gif diff --git a/static/images/select2.png b/lib/galaxy/web/framework/static/images/select2.png similarity index 100% rename from static/images/select2.png rename to lib/galaxy/web/framework/static/images/select2.png diff --git a/static/images/select2x2.png b/lib/galaxy/web/framework/static/images/select2x2.png similarity index 100% rename from static/images/select2x2.png rename to lib/galaxy/web/framework/static/images/select2x2.png diff --git a/static/images/silk/add.png b/lib/galaxy/web/framework/static/images/silk/add.png similarity index 100% rename from static/images/silk/add.png rename to lib/galaxy/web/framework/static/images/silk/add.png diff --git a/static/images/silk/book.png b/lib/galaxy/web/framework/static/images/silk/book.png similarity index 100% rename from static/images/silk/book.png rename to lib/galaxy/web/framework/static/images/silk/book.png diff --git a/static/images/silk/book_open.png b/lib/galaxy/web/framework/static/images/silk/book_open.png similarity index 100% rename from static/images/silk/book_open.png rename to lib/galaxy/web/framework/static/images/silk/book_open.png diff --git a/static/images/silk/chart_curve.png b/lib/galaxy/web/framework/static/images/silk/chart_curve.png similarity index 100% rename from static/images/silk/chart_curve.png rename to lib/galaxy/web/framework/static/images/silk/chart_curve.png diff --git a/static/images/silk/folder.png b/lib/galaxy/web/framework/static/images/silk/folder.png similarity index 100% rename from static/images/silk/folder.png rename to lib/galaxy/web/framework/static/images/silk/folder.png diff --git a/static/images/silk/folder_page.png b/lib/galaxy/web/framework/static/images/silk/folder_page.png similarity index 100% rename from static/images/silk/folder_page.png rename to lib/galaxy/web/framework/static/images/silk/folder_page.png diff --git a/static/images/silk/link.png b/lib/galaxy/web/framework/static/images/silk/link.png similarity index 100% rename from static/images/silk/link.png rename to lib/galaxy/web/framework/static/images/silk/link.png diff --git a/static/images/silk/link_break.png b/lib/galaxy/web/framework/static/images/silk/link_break.png similarity index 100% rename from static/images/silk/link_break.png rename to lib/galaxy/web/framework/static/images/silk/link_break.png diff --git a/static/images/silk/page_white.png b/lib/galaxy/web/framework/static/images/silk/page_white.png similarity index 100% rename from static/images/silk/page_white.png rename to lib/galaxy/web/framework/static/images/silk/page_white.png diff --git a/static/images/silk/page_white_compressed.png b/lib/galaxy/web/framework/static/images/silk/page_white_compressed.png similarity index 100% rename from static/images/silk/page_white_compressed.png rename to lib/galaxy/web/framework/static/images/silk/page_white_compressed.png diff --git a/static/images/silk/resultset_bottom.png b/lib/galaxy/web/framework/static/images/silk/resultset_bottom.png similarity index 100% rename from static/images/silk/resultset_bottom.png rename to lib/galaxy/web/framework/static/images/silk/resultset_bottom.png diff --git a/static/images/silk/resultset_next.png b/lib/galaxy/web/framework/static/images/silk/resultset_next.png similarity index 100% rename from static/images/silk/resultset_next.png rename to lib/galaxy/web/framework/static/images/silk/resultset_next.png diff --git a/static/images/silk/resultset_previous.png b/lib/galaxy/web/framework/static/images/silk/resultset_previous.png similarity index 100% rename from static/images/silk/resultset_previous.png rename to lib/galaxy/web/framework/static/images/silk/resultset_previous.png diff --git a/static/images/solid_qual.png b/lib/galaxy/web/framework/static/images/solid_qual.png similarity index 100% rename from static/images/solid_qual.png rename to lib/galaxy/web/framework/static/images/solid_qual.png diff --git a/static/images/spearman.png b/lib/galaxy/web/framework/static/images/spearman.png similarity index 100% rename from static/images/spearman.png rename to lib/galaxy/web/framework/static/images/spearman.png diff --git a/static/images/square_empty.gif b/lib/galaxy/web/framework/static/images/square_empty.gif similarity index 100% rename from static/images/square_empty.gif rename to lib/galaxy/web/framework/static/images/square_empty.gif diff --git a/static/images/square_error.gif b/lib/galaxy/web/framework/static/images/square_error.gif similarity index 100% rename from static/images/square_error.gif rename to lib/galaxy/web/framework/static/images/square_error.gif diff --git a/static/images/square_ok.gif b/lib/galaxy/web/framework/static/images/square_ok.gif similarity index 100% rename from static/images/square_ok.gif rename to lib/galaxy/web/framework/static/images/square_ok.gif diff --git a/static/images/square_queued.gif b/lib/galaxy/web/framework/static/images/square_queued.gif similarity index 100% rename from static/images/square_queued.gif rename to lib/galaxy/web/framework/static/images/square_queued.gif diff --git a/static/images/square_running.gif b/lib/galaxy/web/framework/static/images/square_running.gif similarity index 100% rename from static/images/square_running.gif rename to lib/galaxy/web/framework/static/images/square_running.gif diff --git a/static/images/star.gif b/lib/galaxy/web/framework/static/images/star.gif similarity index 100% rename from static/images/star.gif rename to lib/galaxy/web/framework/static/images/star.gif diff --git a/static/images/thumbtack_icon.png b/lib/galaxy/web/framework/static/images/thumbtack_icon.png similarity index 100% rename from static/images/thumbtack_icon.png rename to lib/galaxy/web/framework/static/images/thumbtack_icon.png diff --git a/static/images/thumbtack_icon_dark.png b/lib/galaxy/web/framework/static/images/thumbtack_icon_dark.png similarity index 100% rename from static/images/thumbtack_icon_dark.png rename to lib/galaxy/web/framework/static/images/thumbtack_icon_dark.png diff --git a/static/images/tipsy.gif b/lib/galaxy/web/framework/static/images/tipsy.gif similarity index 100% rename from static/images/tipsy.gif rename to lib/galaxy/web/framework/static/images/tipsy.gif diff --git a/static/images/tool_menu_down_arrow.gif b/lib/galaxy/web/framework/static/images/tool_menu_down_arrow.gif similarity index 100% rename from static/images/tool_menu_down_arrow.gif rename to lib/galaxy/web/framework/static/images/tool_menu_down_arrow.gif diff --git a/static/images/tools/lda/first_matrix_generator_example_file.png b/lib/galaxy/web/framework/static/images/tools/lda/first_matrix_generator_example_file.png similarity index 100% rename from static/images/tools/lda/first_matrix_generator_example_file.png rename to lib/galaxy/web/framework/static/images/tools/lda/first_matrix_generator_example_file.png diff --git a/static/images/tools/lda/second_matrix_generator_example_file.png b/lib/galaxy/web/framework/static/images/tools/lda/second_matrix_generator_example_file.png similarity index 100% rename from static/images/tools/lda/second_matrix_generator_example_file.png rename to lib/galaxy/web/framework/static/images/tools/lda/second_matrix_generator_example_file.png diff --git a/static/images/tracks/block.png b/lib/galaxy/web/framework/static/images/tracks/block.png similarity index 100% rename from static/images/tracks/block.png rename to lib/galaxy/web/framework/static/images/tracks/block.png diff --git a/static/images/tracks/close_btn.gif b/lib/galaxy/web/framework/static/images/tracks/close_btn.gif similarity index 100% rename from static/images/tracks/close_btn.gif rename to lib/galaxy/web/framework/static/images/tracks/close_btn.gif diff --git a/static/images/tracks/diag_bg.gif b/lib/galaxy/web/framework/static/images/tracks/diag_bg.gif similarity index 100% rename from static/images/tracks/diag_bg.gif rename to lib/galaxy/web/framework/static/images/tracks/diag_bg.gif diff --git a/static/images/tracks/go_btn.gif b/lib/galaxy/web/framework/static/images/tracks/go_btn.gif similarity index 100% rename from static/images/tracks/go_btn.gif rename to lib/galaxy/web/framework/static/images/tracks/go_btn.gif diff --git a/static/images/tracks/handle-left.gif b/lib/galaxy/web/framework/static/images/tracks/handle-left.gif similarity index 100% rename from static/images/tracks/handle-left.gif rename to lib/galaxy/web/framework/static/images/tracks/handle-left.gif diff --git a/static/images/tracks/handle-right.gif b/lib/galaxy/web/framework/static/images/tracks/handle-right.gif similarity index 100% rename from static/images/tracks/handle-right.gif rename to lib/galaxy/web/framework/static/images/tracks/handle-right.gif diff --git a/static/images/tracks/pan_left.gif b/lib/galaxy/web/framework/static/images/tracks/pan_left.gif similarity index 100% rename from static/images/tracks/pan_left.gif rename to lib/galaxy/web/framework/static/images/tracks/pan_left.gif diff --git a/static/images/tracks/pan_right.gif b/lib/galaxy/web/framework/static/images/tracks/pan_right.gif similarity index 100% rename from static/images/tracks/pan_right.gif rename to lib/galaxy/web/framework/static/images/tracks/pan_right.gif diff --git a/static/images/tracks/show_history.gif b/lib/galaxy/web/framework/static/images/tracks/show_history.gif similarity index 100% rename from static/images/tracks/show_history.gif rename to lib/galaxy/web/framework/static/images/tracks/show_history.gif diff --git a/static/images/tracks/zoom_in.gif b/lib/galaxy/web/framework/static/images/tracks/zoom_in.gif similarity index 100% rename from static/images/tracks/zoom_in.gif rename to lib/galaxy/web/framework/static/images/tracks/zoom_in.gif diff --git a/static/images/tracks/zoom_in_full.gif b/lib/galaxy/web/framework/static/images/tracks/zoom_in_full.gif similarity index 100% rename from static/images/tracks/zoom_in_full.gif rename to lib/galaxy/web/framework/static/images/tracks/zoom_in_full.gif diff --git a/static/images/tracks/zoom_out.gif b/lib/galaxy/web/framework/static/images/tracks/zoom_out.gif similarity index 100% rename from static/images/tracks/zoom_out.gif rename to lib/galaxy/web/framework/static/images/tracks/zoom_out.gif diff --git a/static/images/tracks/zoom_out_full.gif b/lib/galaxy/web/framework/static/images/tracks/zoom_out_full.gif similarity index 100% rename from static/images/tracks/zoom_out_full.gif rename to lib/galaxy/web/framework/static/images/tracks/zoom_out_full.gif diff --git a/static/images/up.gif b/lib/galaxy/web/framework/static/images/up.gif similarity index 100% rename from static/images/up.gif rename to lib/galaxy/web/framework/static/images/up.gif diff --git a/static/images/visualization/draggable_horizontal.png b/lib/galaxy/web/framework/static/images/visualization/draggable_horizontal.png similarity index 100% rename from static/images/visualization/draggable_horizontal.png rename to lib/galaxy/web/framework/static/images/visualization/draggable_horizontal.png diff --git a/static/images/visualization/draggable_vertical.png b/lib/galaxy/web/framework/static/images/visualization/draggable_vertical.png similarity index 100% rename from static/images/visualization/draggable_vertical.png rename to lib/galaxy/web/framework/static/images/visualization/draggable_vertical.png diff --git a/static/images/visualization/strand_left.png b/lib/galaxy/web/framework/static/images/visualization/strand_left.png similarity index 100% rename from static/images/visualization/strand_left.png rename to lib/galaxy/web/framework/static/images/visualization/strand_left.png diff --git a/static/images/visualization/strand_left_inv.png b/lib/galaxy/web/framework/static/images/visualization/strand_left_inv.png similarity index 100% rename from static/images/visualization/strand_left_inv.png rename to lib/galaxy/web/framework/static/images/visualization/strand_left_inv.png diff --git a/static/images/visualization/strand_right.png b/lib/galaxy/web/framework/static/images/visualization/strand_right.png similarity index 100% rename from static/images/visualization/strand_right.png rename to lib/galaxy/web/framework/static/images/visualization/strand_right.png diff --git a/static/images/visualization/strand_right_inv.png b/lib/galaxy/web/framework/static/images/visualization/strand_right_inv.png similarity index 100% rename from static/images/visualization/strand_right_inv.png rename to lib/galaxy/web/framework/static/images/visualization/strand_right_inv.png diff --git a/static/images/yui/rel_interstitial_loading.gif b/lib/galaxy/web/framework/static/images/yui/rel_interstitial_loading.gif similarity index 100% rename from static/images/yui/rel_interstitial_loading.gif rename to lib/galaxy/web/framework/static/images/yui/rel_interstitial_loading.gif diff --git a/lib/galaxy/web/framework/static/src b/lib/galaxy/web/framework/static/src new file mode 120000 index 00000000000..ff897777cef --- /dev/null +++ b/lib/galaxy/web/framework/static/src @@ -0,0 +1 @@ +../../../../../client/galaxy/scripts \ No newline at end of file diff --git a/lib/galaxy/web/framework/static/toolshed/src b/lib/galaxy/web/framework/static/toolshed/src new file mode 120000 index 00000000000..c220e9eeebb --- /dev/null +++ b/lib/galaxy/web/framework/static/toolshed/src @@ -0,0 +1 @@ +../../../../../../client/toolshed/scripts \ No newline at end of file diff --git a/templates/admin/dataset_security/group/grid.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/group/grid.mako similarity index 100% rename from templates/admin/dataset_security/group/grid.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/group/grid.mako diff --git a/templates/admin/dataset_security/group/group.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/group/group.mako similarity index 100% rename from templates/admin/dataset_security/group/group.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/group/group.mako diff --git a/templates/admin/dataset_security/group/group_create.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/group/group_create.mako similarity index 100% rename from templates/admin/dataset_security/group/group_create.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/group/group_create.mako diff --git a/templates/admin/dataset_security/group/group_rename.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/group/group_rename.mako similarity index 100% rename from templates/admin/dataset_security/group/group_rename.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/group/group_rename.mako diff --git a/templates/admin/dataset_security/role/grid.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/role/grid.mako similarity index 100% rename from templates/admin/dataset_security/role/grid.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/role/grid.mako diff --git a/templates/admin/dataset_security/role/role.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/role/role.mako similarity index 100% rename from templates/admin/dataset_security/role/role.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/role/role.mako diff --git a/templates/admin/dataset_security/role/role_create.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/role/role_create.mako similarity index 100% rename from templates/admin/dataset_security/role/role_create.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/role/role_create.mako diff --git a/templates/admin/dataset_security/role/role_rename.mako b/lib/galaxy/web/framework/templates/admin/dataset_security/role/role_rename.mako similarity index 100% rename from templates/admin/dataset_security/role/role_rename.mako rename to lib/galaxy/web/framework/templates/admin/dataset_security/role/role_rename.mako diff --git a/templates/admin/external_service/common.mako b/lib/galaxy/web/framework/templates/admin/external_service/common.mako similarity index 100% rename from templates/admin/external_service/common.mako rename to lib/galaxy/web/framework/templates/admin/external_service/common.mako diff --git a/templates/admin/external_service/create_external_service.mako b/lib/galaxy/web/framework/templates/admin/external_service/create_external_service.mako similarity index 100% rename from templates/admin/external_service/create_external_service.mako rename to lib/galaxy/web/framework/templates/admin/external_service/create_external_service.mako diff --git a/templates/admin/external_service/edit_external_service.mako b/lib/galaxy/web/framework/templates/admin/external_service/edit_external_service.mako similarity index 100% rename from templates/admin/external_service/edit_external_service.mako rename to lib/galaxy/web/framework/templates/admin/external_service/edit_external_service.mako diff --git a/templates/admin/external_service/grid.mako b/lib/galaxy/web/framework/templates/admin/external_service/grid.mako similarity index 100% rename from templates/admin/external_service/grid.mako rename to lib/galaxy/web/framework/templates/admin/external_service/grid.mako diff --git a/templates/admin/external_service/reload_external_service_types.mako b/lib/galaxy/web/framework/templates/admin/external_service/reload_external_service_types.mako similarity index 100% rename from templates/admin/external_service/reload_external_service_types.mako rename to lib/galaxy/web/framework/templates/admin/external_service/reload_external_service_types.mako diff --git a/templates/admin/external_service/view_external_service.mako b/lib/galaxy/web/framework/templates/admin/external_service/view_external_service.mako similarity index 100% rename from templates/admin/external_service/view_external_service.mako rename to lib/galaxy/web/framework/templates/admin/external_service/view_external_service.mako diff --git a/templates/admin/forms/create_form.mako b/lib/galaxy/web/framework/templates/admin/forms/create_form.mako similarity index 100% rename from templates/admin/forms/create_form.mako rename to lib/galaxy/web/framework/templates/admin/forms/create_form.mako diff --git a/templates/admin/forms/edit_form_definition.mako b/lib/galaxy/web/framework/templates/admin/forms/edit_form_definition.mako similarity index 100% rename from templates/admin/forms/edit_form_definition.mako rename to lib/galaxy/web/framework/templates/admin/forms/edit_form_definition.mako diff --git a/templates/admin/forms/grid.mako b/lib/galaxy/web/framework/templates/admin/forms/grid.mako similarity index 100% rename from templates/admin/forms/grid.mako rename to lib/galaxy/web/framework/templates/admin/forms/grid.mako diff --git a/templates/admin/forms/view_form_definition.mako b/lib/galaxy/web/framework/templates/admin/forms/view_form_definition.mako similarity index 100% rename from templates/admin/forms/view_form_definition.mako rename to lib/galaxy/web/framework/templates/admin/forms/view_form_definition.mako diff --git a/templates/admin/impersonate.mako b/lib/galaxy/web/framework/templates/admin/impersonate.mako similarity index 100% rename from templates/admin/impersonate.mako rename to lib/galaxy/web/framework/templates/admin/impersonate.mako diff --git a/templates/admin/jobs.mako b/lib/galaxy/web/framework/templates/admin/jobs.mako similarity index 100% rename from templates/admin/jobs.mako rename to lib/galaxy/web/framework/templates/admin/jobs.mako diff --git a/templates/admin/library/grid.mako b/lib/galaxy/web/framework/templates/admin/library/grid.mako similarity index 100% rename from templates/admin/library/grid.mako rename to lib/galaxy/web/framework/templates/admin/library/grid.mako diff --git a/templates/admin/library/new_library.mako b/lib/galaxy/web/framework/templates/admin/library/new_library.mako similarity index 100% rename from templates/admin/library/new_library.mako rename to lib/galaxy/web/framework/templates/admin/library/new_library.mako diff --git a/templates/admin/package_tool.mako b/lib/galaxy/web/framework/templates/admin/package_tool.mako similarity index 100% rename from templates/admin/package_tool.mako rename to lib/galaxy/web/framework/templates/admin/package_tool.mako diff --git a/templates/admin/quota/grid.mako b/lib/galaxy/web/framework/templates/admin/quota/grid.mako similarity index 100% rename from templates/admin/quota/grid.mako rename to lib/galaxy/web/framework/templates/admin/quota/grid.mako diff --git a/templates/admin/quota/quota.mako b/lib/galaxy/web/framework/templates/admin/quota/quota.mako similarity index 100% rename from templates/admin/quota/quota.mako rename to lib/galaxy/web/framework/templates/admin/quota/quota.mako diff --git a/templates/admin/quota/quota_create.mako b/lib/galaxy/web/framework/templates/admin/quota/quota_create.mako similarity index 100% rename from templates/admin/quota/quota_create.mako rename to lib/galaxy/web/framework/templates/admin/quota/quota_create.mako diff --git a/templates/admin/quota/quota_edit.mako b/lib/galaxy/web/framework/templates/admin/quota/quota_edit.mako similarity index 100% rename from templates/admin/quota/quota_edit.mako rename to lib/galaxy/web/framework/templates/admin/quota/quota_edit.mako diff --git a/templates/admin/quota/quota_rename.mako b/lib/galaxy/web/framework/templates/admin/quota/quota_rename.mako similarity index 100% rename from templates/admin/quota/quota_rename.mako rename to lib/galaxy/web/framework/templates/admin/quota/quota_rename.mako diff --git a/templates/admin/quota/quota_set_default.mako b/lib/galaxy/web/framework/templates/admin/quota/quota_set_default.mako similarity index 100% rename from templates/admin/quota/quota_set_default.mako rename to lib/galaxy/web/framework/templates/admin/quota/quota_set_default.mako diff --git a/templates/admin/reload_tool.mako b/lib/galaxy/web/framework/templates/admin/reload_tool.mako similarity index 100% rename from templates/admin/reload_tool.mako rename to lib/galaxy/web/framework/templates/admin/reload_tool.mako diff --git a/templates/admin/request_type/common.mako b/lib/galaxy/web/framework/templates/admin/request_type/common.mako similarity index 100% rename from templates/admin/request_type/common.mako rename to lib/galaxy/web/framework/templates/admin/request_type/common.mako diff --git a/templates/admin/request_type/create_request_type.mako b/lib/galaxy/web/framework/templates/admin/request_type/create_request_type.mako similarity index 100% rename from templates/admin/request_type/create_request_type.mako rename to lib/galaxy/web/framework/templates/admin/request_type/create_request_type.mako diff --git a/templates/admin/request_type/edit_request_type.mako b/lib/galaxy/web/framework/templates/admin/request_type/edit_request_type.mako similarity index 100% rename from templates/admin/request_type/edit_request_type.mako rename to lib/galaxy/web/framework/templates/admin/request_type/edit_request_type.mako diff --git a/templates/admin/request_type/grid.mako b/lib/galaxy/web/framework/templates/admin/request_type/grid.mako similarity index 100% rename from templates/admin/request_type/grid.mako rename to lib/galaxy/web/framework/templates/admin/request_type/grid.mako diff --git a/templates/admin/request_type/request_type_permissions.mako b/lib/galaxy/web/framework/templates/admin/request_type/request_type_permissions.mako similarity index 100% rename from templates/admin/request_type/request_type_permissions.mako rename to lib/galaxy/web/framework/templates/admin/request_type/request_type_permissions.mako diff --git a/templates/admin/request_type/view_request_type.mako b/lib/galaxy/web/framework/templates/admin/request_type/view_request_type.mako similarity index 100% rename from templates/admin/request_type/view_request_type.mako rename to lib/galaxy/web/framework/templates/admin/request_type/view_request_type.mako diff --git a/templates/admin/requests/grid.mako b/lib/galaxy/web/framework/templates/admin/requests/grid.mako similarity index 100% rename from templates/admin/requests/grid.mako rename to lib/galaxy/web/framework/templates/admin/requests/grid.mako diff --git a/templates/admin/requests/reject.mako b/lib/galaxy/web/framework/templates/admin/requests/reject.mako similarity index 100% rename from templates/admin/requests/reject.mako rename to lib/galaxy/web/framework/templates/admin/requests/reject.mako diff --git a/templates/admin/requests/rename_datasets.mako b/lib/galaxy/web/framework/templates/admin/requests/rename_datasets.mako similarity index 100% rename from templates/admin/requests/rename_datasets.mako rename to lib/galaxy/web/framework/templates/admin/requests/rename_datasets.mako diff --git a/templates/admin/requests/sample_datasets_grid.mako b/lib/galaxy/web/framework/templates/admin/requests/sample_datasets_grid.mako similarity index 100% rename from templates/admin/requests/sample_datasets_grid.mako rename to lib/galaxy/web/framework/templates/admin/requests/sample_datasets_grid.mako diff --git a/templates/admin/requests/view_sample_dataset.mako b/lib/galaxy/web/framework/templates/admin/requests/view_sample_dataset.mako similarity index 100% rename from templates/admin/requests/view_sample_dataset.mako rename to lib/galaxy/web/framework/templates/admin/requests/view_sample_dataset.mako diff --git a/templates/admin/review_tool_migration_stages.mako b/lib/galaxy/web/framework/templates/admin/review_tool_migration_stages.mako similarity index 100% rename from templates/admin/review_tool_migration_stages.mako rename to lib/galaxy/web/framework/templates/admin/review_tool_migration_stages.mako diff --git a/templates/admin/tool_errors.mako b/lib/galaxy/web/framework/templates/admin/tool_errors.mako similarity index 100% rename from templates/admin/tool_errors.mako rename to lib/galaxy/web/framework/templates/admin/tool_errors.mako diff --git a/templates/admin/tool_shed_repository/browse_categories.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_categories.mako similarity index 100% rename from templates/admin/tool_shed_repository/browse_categories.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_categories.mako diff --git a/templates/admin/tool_shed_repository/browse_category.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_category.mako similarity index 100% rename from templates/admin/tool_shed_repository/browse_category.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_category.mako diff --git a/templates/admin/tool_shed_repository/browse_repository.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_repository.mako similarity index 100% rename from templates/admin/tool_shed_repository/browse_repository.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_repository.mako diff --git a/templates/admin/tool_shed_repository/browse_tool_dependency.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_tool_dependency.mako similarity index 100% rename from templates/admin/tool_shed_repository/browse_tool_dependency.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_tool_dependency.mako diff --git a/templates/admin/tool_shed_repository/common.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/common.mako similarity index 100% rename from templates/admin/tool_shed_repository/common.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/common.mako diff --git a/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako similarity index 100% rename from templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako diff --git a/templates/admin/tool_shed_repository/grid.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/grid.mako similarity index 100% rename from templates/admin/tool_shed_repository/grid.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/grid.mako diff --git a/templates/admin/tool_shed_repository/initiate_repository_installation.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/initiate_repository_installation.mako similarity index 100% rename from templates/admin/tool_shed_repository/initiate_repository_installation.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/initiate_repository_installation.mako diff --git a/templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako similarity index 100% rename from templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako diff --git a/templates/admin/tool_shed_repository/manage_repository.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository.mako similarity index 100% rename from templates/admin/tool_shed_repository/manage_repository.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository.mako diff --git a/templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako similarity index 100% rename from templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako diff --git a/templates/admin/tool_shed_repository/preview_repository.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/preview_repository.mako similarity index 100% rename from templates/admin/tool_shed_repository/preview_repository.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/preview_repository.mako diff --git a/templates/admin/tool_shed_repository/purge_repository_confirmation.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/purge_repository_confirmation.mako similarity index 100% rename from templates/admin/tool_shed_repository/purge_repository_confirmation.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/purge_repository_confirmation.mako diff --git a/templates/admin/tool_shed_repository/repair_repository.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repair_repository.mako similarity index 100% rename from templates/admin/tool_shed_repository/repair_repository.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/repair_repository.mako diff --git a/templates/admin/tool_shed_repository/repository_actions_menu.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_actions_menu.mako similarity index 100% rename from templates/admin/tool_shed_repository/repository_actions_menu.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_actions_menu.mako diff --git a/templates/admin/tool_shed_repository/repository_installation_grid.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_grid.mako similarity index 100% rename from templates/admin/tool_shed_repository/repository_installation_grid.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_grid.mako diff --git a/templates/admin/tool_shed_repository/repository_installation_status.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_status.mako similarity index 100% rename from templates/admin/tool_shed_repository/repository_installation_status.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_status.mako diff --git a/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako similarity index 100% rename from templates/admin/tool_shed_repository/reselect_tool_panel_section.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako diff --git a/templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako similarity index 100% rename from templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako diff --git a/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako similarity index 100% rename from templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako diff --git a/templates/admin/tool_shed_repository/select_tool_panel_section.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_tool_panel_section.mako similarity index 100% rename from templates/admin/tool_shed_repository/select_tool_panel_section.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_tool_panel_section.mako diff --git a/templates/admin/tool_shed_repository/tool_dependencies_grid.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependencies_grid.mako similarity index 100% rename from templates/admin/tool_shed_repository/tool_dependencies_grid.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependencies_grid.mako diff --git a/templates/admin/tool_shed_repository/tool_dependency_installation_status.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependency_installation_status.mako similarity index 100% rename from templates/admin/tool_shed_repository/tool_dependency_installation_status.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependency_installation_status.mako diff --git a/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako similarity index 100% rename from templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako diff --git a/templates/admin/tool_shed_repository/view_tool_metadata.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_tool_metadata.mako similarity index 100% rename from templates/admin/tool_shed_repository/view_tool_metadata.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_tool_metadata.mako diff --git a/templates/admin/tool_shed_repository/view_workflow.mako b/lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_workflow.mako similarity index 100% rename from templates/admin/tool_shed_repository/view_workflow.mako rename to lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_workflow.mako diff --git a/templates/admin/tool_version/grid.mako b/lib/galaxy/web/framework/templates/admin/tool_version/grid.mako similarity index 100% rename from templates/admin/tool_version/grid.mako rename to lib/galaxy/web/framework/templates/admin/tool_version/grid.mako diff --git a/templates/admin/user/grid.mako b/lib/galaxy/web/framework/templates/admin/user/grid.mako similarity index 100% rename from templates/admin/user/grid.mako rename to lib/galaxy/web/framework/templates/admin/user/grid.mako diff --git a/templates/admin/user/reset_password.mako b/lib/galaxy/web/framework/templates/admin/user/reset_password.mako similarity index 100% rename from templates/admin/user/reset_password.mako rename to lib/galaxy/web/framework/templates/admin/user/reset_password.mako diff --git a/templates/admin/user/user.mako b/lib/galaxy/web/framework/templates/admin/user/user.mako similarity index 100% rename from templates/admin/user/user.mako rename to lib/galaxy/web/framework/templates/admin/user/user.mako diff --git a/templates/admin/view_data_tables_registry.mako b/lib/galaxy/web/framework/templates/admin/view_data_tables_registry.mako similarity index 100% rename from templates/admin/view_data_tables_registry.mako rename to lib/galaxy/web/framework/templates/admin/view_data_tables_registry.mako diff --git a/templates/admin/view_datatypes_registry.mako b/lib/galaxy/web/framework/templates/admin/view_datatypes_registry.mako similarity index 100% rename from templates/admin/view_datatypes_registry.mako rename to lib/galaxy/web/framework/templates/admin/view_datatypes_registry.mako diff --git a/templates/base.mako b/lib/galaxy/web/framework/templates/base.mako similarity index 100% rename from templates/base.mako rename to lib/galaxy/web/framework/templates/base.mako diff --git a/templates/base/base_panels.mako b/lib/galaxy/web/framework/templates/base/base_panels.mako similarity index 100% rename from templates/base/base_panels.mako rename to lib/galaxy/web/framework/templates/base/base_panels.mako diff --git a/templates/common/select_template.mako b/lib/galaxy/web/framework/templates/common/select_template.mako similarity index 100% rename from templates/common/select_template.mako rename to lib/galaxy/web/framework/templates/common/select_template.mako diff --git a/templates/common/template_common.mako b/lib/galaxy/web/framework/templates/common/template_common.mako similarity index 100% rename from templates/common/template_common.mako rename to lib/galaxy/web/framework/templates/common/template_common.mako diff --git a/templates/display_base.mako b/lib/galaxy/web/framework/templates/display_base.mako similarity index 100% rename from templates/display_base.mako rename to lib/galaxy/web/framework/templates/display_base.mako diff --git a/templates/display_common.mako b/lib/galaxy/web/framework/templates/display_common.mako similarity index 100% rename from templates/display_common.mako rename to lib/galaxy/web/framework/templates/display_common.mako diff --git a/templates/embed_base.mako b/lib/galaxy/web/framework/templates/embed_base.mako similarity index 100% rename from templates/embed_base.mako rename to lib/galaxy/web/framework/templates/embed_base.mako diff --git a/templates/export_base.mako b/lib/galaxy/web/framework/templates/export_base.mako similarity index 100% rename from templates/export_base.mako rename to lib/galaxy/web/framework/templates/export_base.mako diff --git a/templates/form.mako b/lib/galaxy/web/framework/templates/form.mako similarity index 100% rename from templates/form.mako rename to lib/galaxy/web/framework/templates/form.mako diff --git a/templates/galaxy_client_app.mako b/lib/galaxy/web/framework/templates/galaxy_client_app.mako similarity index 100% rename from templates/galaxy_client_app.mako rename to lib/galaxy/web/framework/templates/galaxy_client_app.mako diff --git a/templates/grid_base.mako b/lib/galaxy/web/framework/templates/grid_base.mako similarity index 100% rename from templates/grid_base.mako rename to lib/galaxy/web/framework/templates/grid_base.mako diff --git a/templates/grid_base_async.mako b/lib/galaxy/web/framework/templates/grid_base_async.mako similarity index 100% rename from templates/grid_base_async.mako rename to lib/galaxy/web/framework/templates/grid_base_async.mako diff --git a/templates/ind_share_base.mako b/lib/galaxy/web/framework/templates/ind_share_base.mako similarity index 100% rename from templates/ind_share_base.mako rename to lib/galaxy/web/framework/templates/ind_share_base.mako diff --git a/templates/js-app.mako b/lib/galaxy/web/framework/templates/js-app.mako similarity index 100% rename from templates/js-app.mako rename to lib/galaxy/web/framework/templates/js-app.mako diff --git a/templates/message.mako b/lib/galaxy/web/framework/templates/message.mako similarity index 100% rename from templates/message.mako rename to lib/galaxy/web/framework/templates/message.mako diff --git a/templates/no_access.mako b/lib/galaxy/web/framework/templates/no_access.mako similarity index 100% rename from templates/no_access.mako rename to lib/galaxy/web/framework/templates/no_access.mako diff --git a/templates/page_base.mako b/lib/galaxy/web/framework/templates/page_base.mako similarity index 100% rename from templates/page_base.mako rename to lib/galaxy/web/framework/templates/page_base.mako diff --git a/templates/panels.mako b/lib/galaxy/web/framework/templates/panels.mako similarity index 100% rename from templates/panels.mako rename to lib/galaxy/web/framework/templates/panels.mako diff --git a/templates/refresh_frames.mako b/lib/galaxy/web/framework/templates/refresh_frames.mako similarity index 100% rename from templates/refresh_frames.mako rename to lib/galaxy/web/framework/templates/refresh_frames.mako diff --git a/templates/rss.mako b/lib/galaxy/web/framework/templates/rss.mako similarity index 100% rename from templates/rss.mako rename to lib/galaxy/web/framework/templates/rss.mako diff --git a/templates/search/index.mako b/lib/galaxy/web/framework/templates/search/index.mako similarity index 100% rename from templates/search/index.mako rename to lib/galaxy/web/framework/templates/search/index.mako diff --git a/templates/sharing_base.mako b/lib/galaxy/web/framework/templates/sharing_base.mako similarity index 100% rename from templates/sharing_base.mako rename to lib/galaxy/web/framework/templates/sharing_base.mako diff --git a/templates/show_params.mako b/lib/galaxy/web/framework/templates/show_params.mako similarity index 100% rename from templates/show_params.mako rename to lib/galaxy/web/framework/templates/show_params.mako diff --git a/templates/slug_editing_js.mako b/lib/galaxy/web/framework/templates/slug_editing_js.mako similarity index 100% rename from templates/slug_editing_js.mako rename to lib/galaxy/web/framework/templates/slug_editing_js.mako diff --git a/templates/sorting_base.mako b/lib/galaxy/web/framework/templates/sorting_base.mako similarity index 100% rename from templates/sorting_base.mako rename to lib/galaxy/web/framework/templates/sorting_base.mako diff --git a/templates/spark_base.mako b/lib/galaxy/web/framework/templates/spark_base.mako similarity index 100% rename from templates/spark_base.mako rename to lib/galaxy/web/framework/templates/spark_base.mako diff --git a/templates/tagging_common.mako b/lib/galaxy/web/framework/templates/tagging_common.mako similarity index 100% rename from templates/tagging_common.mako rename to lib/galaxy/web/framework/templates/tagging_common.mako diff --git a/templates/tool_shed_rating.mako b/lib/galaxy/web/framework/templates/tool_shed_rating.mako similarity index 100% rename from templates/tool_shed_rating.mako rename to lib/galaxy/web/framework/templates/tool_shed_rating.mako diff --git a/templates/user/change_password.mako b/lib/galaxy/web/framework/templates/user/change_password.mako similarity index 100% rename from templates/user/change_password.mako rename to lib/galaxy/web/framework/templates/user/change_password.mako diff --git a/templates/user/dbkeys.mako b/lib/galaxy/web/framework/templates/user/dbkeys.mako similarity index 100% rename from templates/user/dbkeys.mako rename to lib/galaxy/web/framework/templates/user/dbkeys.mako diff --git a/templates/user/edit_address.mako b/lib/galaxy/web/framework/templates/user/edit_address.mako similarity index 100% rename from templates/user/edit_address.mako rename to lib/galaxy/web/framework/templates/user/edit_address.mako diff --git a/templates/user/index.mako b/lib/galaxy/web/framework/templates/user/index.mako similarity index 100% rename from templates/user/index.mako rename to lib/galaxy/web/framework/templates/user/index.mako diff --git a/templates/user/info.mako b/lib/galaxy/web/framework/templates/user/info.mako similarity index 100% rename from templates/user/info.mako rename to lib/galaxy/web/framework/templates/user/info.mako diff --git a/templates/user/login.mako b/lib/galaxy/web/framework/templates/user/login.mako similarity index 100% rename from templates/user/login.mako rename to lib/galaxy/web/framework/templates/user/login.mako diff --git a/templates/user/logout.mako b/lib/galaxy/web/framework/templates/user/logout.mako similarity index 100% rename from templates/user/logout.mako rename to lib/galaxy/web/framework/templates/user/logout.mako diff --git a/templates/user/new_address.mako b/lib/galaxy/web/framework/templates/user/new_address.mako similarity index 100% rename from templates/user/new_address.mako rename to lib/galaxy/web/framework/templates/user/new_address.mako diff --git a/templates/user/openid_associate.mako b/lib/galaxy/web/framework/templates/user/openid_associate.mako similarity index 100% rename from templates/user/openid_associate.mako rename to lib/galaxy/web/framework/templates/user/openid_associate.mako diff --git a/templates/user/openid_manage.mako b/lib/galaxy/web/framework/templates/user/openid_manage.mako similarity index 100% rename from templates/user/openid_manage.mako rename to lib/galaxy/web/framework/templates/user/openid_manage.mako diff --git a/templates/user/permissions.mako b/lib/galaxy/web/framework/templates/user/permissions.mako similarity index 100% rename from templates/user/permissions.mako rename to lib/galaxy/web/framework/templates/user/permissions.mako diff --git a/templates/user/register.mako b/lib/galaxy/web/framework/templates/user/register.mako similarity index 100% rename from templates/user/register.mako rename to lib/galaxy/web/framework/templates/user/register.mako diff --git a/templates/user/reset_password.mako b/lib/galaxy/web/framework/templates/user/reset_password.mako similarity index 100% rename from templates/user/reset_password.mako rename to lib/galaxy/web/framework/templates/user/reset_password.mako diff --git a/templates/user/toolbox_filters.mako b/lib/galaxy/web/framework/templates/user/toolbox_filters.mako similarity index 100% rename from templates/user/toolbox_filters.mako rename to lib/galaxy/web/framework/templates/user/toolbox_filters.mako diff --git a/templates/user/username.mako b/lib/galaxy/web/framework/templates/user/username.mako similarity index 100% rename from templates/user/username.mako rename to lib/galaxy/web/framework/templates/user/username.mako diff --git a/templates/webapps/galaxy/admin/center.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/admin/center.mako similarity index 100% rename from templates/webapps/galaxy/admin/center.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/admin/center.mako diff --git a/templates/webapps/galaxy/admin/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/admin/index.mako similarity index 100% rename from templates/webapps/galaxy/admin/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/admin/index.mako diff --git a/templates/webapps/galaxy/admin/sanitize_whitelist.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/admin/sanitize_whitelist.mako similarity index 100% rename from templates/webapps/galaxy/admin/sanitize_whitelist.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/admin/sanitize_whitelist.mako diff --git a/templates/webapps/galaxy/admin/tool_sheds.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/admin/tool_sheds.mako similarity index 100% rename from templates/webapps/galaxy/admin/tool_sheds.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/admin/tool_sheds.mako diff --git a/templates/webapps/galaxy/admin/toolsheds.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/admin/toolsheds.mako similarity index 100% rename from templates/webapps/galaxy/admin/toolsheds.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/admin/toolsheds.mako diff --git a/templates/webapps/galaxy/admin/view_display_applications.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/admin/view_display_applications.mako similarity index 100% rename from templates/webapps/galaxy/admin/view_display_applications.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/admin/view_display_applications.mako diff --git a/templates/webapps/galaxy/base_panels.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/base_panels.mako similarity index 100% rename from templates/webapps/galaxy/base_panels.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/base_panels.mako diff --git a/templates/webapps/galaxy/biostar/post_redirect.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/biostar/post_redirect.mako similarity index 100% rename from templates/webapps/galaxy/biostar/post_redirect.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/biostar/post_redirect.mako diff --git a/templates/webapps/galaxy/data_manager/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/index.mako similarity index 100% rename from templates/webapps/galaxy/data_manager/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/index.mako diff --git a/templates/webapps/galaxy/data_manager/manage_data_manager.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_manager.mako similarity index 100% rename from templates/webapps/galaxy/data_manager/manage_data_manager.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_manager.mako diff --git a/templates/webapps/galaxy/data_manager/manage_data_table.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_table.mako similarity index 100% rename from templates/webapps/galaxy/data_manager/manage_data_table.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_table.mako diff --git a/templates/webapps/galaxy/data_manager/view_job.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/view_job.mako similarity index 100% rename from templates/webapps/galaxy/data_manager/view_job.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/view_job.mako diff --git a/templates/webapps/galaxy/dataset/copy_view.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/copy_view.mako similarity index 100% rename from templates/webapps/galaxy/dataset/copy_view.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/copy_view.mako diff --git a/templates/webapps/galaxy/dataset/display.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display.mako similarity index 100% rename from templates/webapps/galaxy/dataset/display.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display.mako diff --git a/templates/webapps/galaxy/dataset/display_application/display.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display_application/display.mako similarity index 100% rename from templates/webapps/galaxy/dataset/display_application/display.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display_application/display.mako diff --git a/templates/webapps/galaxy/dataset/edit_attributes.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/edit_attributes.mako similarity index 100% rename from templates/webapps/galaxy/dataset/edit_attributes.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/edit_attributes.mako diff --git a/templates/webapps/galaxy/dataset/embed.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/embed.mako similarity index 100% rename from templates/webapps/galaxy/dataset/embed.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/embed.mako diff --git a/templates/webapps/galaxy/dataset/errors.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/errors.mako similarity index 100% rename from templates/webapps/galaxy/dataset/errors.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/errors.mako diff --git a/templates/webapps/galaxy/dataset/grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/grid.mako similarity index 100% rename from templates/webapps/galaxy/dataset/grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/grid.mako diff --git a/templates/webapps/galaxy/dataset/item_content.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/item_content.mako similarity index 100% rename from templates/webapps/galaxy/dataset/item_content.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/item_content.mako diff --git a/templates/webapps/galaxy/dataset/large_file.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/large_file.mako similarity index 100% rename from templates/webapps/galaxy/dataset/large_file.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/large_file.mako diff --git a/templates/webapps/galaxy/dataset/security_common.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/security_common.mako similarity index 100% rename from templates/webapps/galaxy/dataset/security_common.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/security_common.mako diff --git a/templates/webapps/galaxy/dataset/tabular_chunked.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/tabular_chunked.mako similarity index 100% rename from templates/webapps/galaxy/dataset/tabular_chunked.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/dataset/tabular_chunked.mako diff --git a/templates/webapps/galaxy/external_services/generic_jquery_grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_jquery_grid.mako similarity index 100% rename from templates/webapps/galaxy/external_services/generic_jquery_grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_jquery_grid.mako diff --git a/templates/webapps/galaxy/external_services/generic_json.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_json.mako similarity index 100% rename from templates/webapps/galaxy/external_services/generic_json.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_json.mako diff --git a/templates/webapps/galaxy/external_services/json_common.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/external_services/json_common.mako similarity index 100% rename from templates/webapps/galaxy/external_services/json_common.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/external_services/json_common.mako diff --git a/templates/webapps/galaxy/galaxy.masthead.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.masthead.mako similarity index 100% rename from templates/webapps/galaxy/galaxy.masthead.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.masthead.mako diff --git a/templates/webapps/galaxy/galaxy.panels.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.panels.mako similarity index 100% rename from templates/webapps/galaxy/galaxy.panels.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.panels.mako diff --git a/templates/webapps/galaxy/history/as_xml.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/as_xml.mako similarity index 100% rename from templates/webapps/galaxy/history/as_xml.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/as_xml.mako diff --git a/templates/webapps/galaxy/history/citations.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/citations.mako similarity index 100% rename from templates/webapps/galaxy/history/citations.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/citations.mako diff --git a/templates/webapps/galaxy/history/display.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/display.mako similarity index 100% rename from templates/webapps/galaxy/history/display.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/display.mako diff --git a/templates/webapps/galaxy/history/display_structured.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/display_structured.mako similarity index 100% rename from templates/webapps/galaxy/history/display_structured.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/display_structured.mako diff --git a/templates/webapps/galaxy/history/embed.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/embed.mako similarity index 100% rename from templates/webapps/galaxy/history/embed.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/embed.mako diff --git a/templates/webapps/galaxy/history/grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/grid.mako similarity index 100% rename from templates/webapps/galaxy/history/grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/grid.mako diff --git a/templates/webapps/galaxy/history/grid_js.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/grid_js.mako similarity index 100% rename from templates/webapps/galaxy/history/grid_js.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/grid_js.mako diff --git a/templates/webapps/galaxy/history/item_content.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/item_content.mako similarity index 100% rename from templates/webapps/galaxy/history/item_content.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/item_content.mako diff --git a/templates/webapps/galaxy/history/list_as_xml.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/list_as_xml.mako similarity index 100% rename from templates/webapps/galaxy/history/list_as_xml.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/list_as_xml.mako diff --git a/templates/webapps/galaxy/history/list_published.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/list_published.mako similarity index 100% rename from templates/webapps/galaxy/history/list_published.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/list_published.mako diff --git a/templates/webapps/galaxy/history/permissions.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/permissions.mako similarity index 100% rename from templates/webapps/galaxy/history/permissions.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/permissions.mako diff --git a/templates/webapps/galaxy/history/rename.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/rename.mako similarity index 100% rename from templates/webapps/galaxy/history/rename.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/rename.mako diff --git a/templates/webapps/galaxy/history/share.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/share.mako similarity index 100% rename from templates/webapps/galaxy/history/share.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/share.mako diff --git a/templates/webapps/galaxy/history/shared_grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/shared_grid.mako similarity index 100% rename from templates/webapps/galaxy/history/shared_grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/shared_grid.mako diff --git a/templates/webapps/galaxy/history/structure.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/structure.mako similarity index 100% rename from templates/webapps/galaxy/history/structure.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/structure.mako diff --git a/templates/webapps/galaxy/history/view.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/view.mako similarity index 100% rename from templates/webapps/galaxy/history/view.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/view.mako diff --git a/templates/webapps/galaxy/history/view_multiple.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/history/view_multiple.mako similarity index 100% rename from templates/webapps/galaxy/history/view_multiple.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/history/view_multiple.mako diff --git a/templates/webapps/galaxy/library/common/browse_library.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library.mako similarity index 100% rename from templates/webapps/galaxy/library/common/browse_library.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library.mako diff --git a/templates/webapps/galaxy/library/common/browse_library_opt.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library_opt.mako similarity index 100% rename from templates/webapps/galaxy/library/common/browse_library_opt.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library_opt.mako diff --git a/templates/webapps/galaxy/library/common/common.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/common.mako similarity index 100% rename from templates/webapps/galaxy/library/common/common.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/common.mako diff --git a/templates/webapps/galaxy/library/common/folder_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_info.mako similarity index 100% rename from templates/webapps/galaxy/library/common/folder_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_info.mako diff --git a/templates/webapps/galaxy/library/common/folder_permissions.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_permissions.mako similarity index 100% rename from templates/webapps/galaxy/library/common/folder_permissions.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_permissions.mako diff --git a/templates/webapps/galaxy/library/common/import_datasets_to_histories.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/import_datasets_to_histories.mako similarity index 100% rename from templates/webapps/galaxy/library/common/import_datasets_to_histories.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/import_datasets_to_histories.mako diff --git a/templates/webapps/galaxy/library/common/ldda_edit_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_edit_info.mako similarity index 100% rename from templates/webapps/galaxy/library/common/ldda_edit_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_edit_info.mako diff --git a/templates/webapps/galaxy/library/common/ldda_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_info.mako similarity index 100% rename from templates/webapps/galaxy/library/common/ldda_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_info.mako diff --git a/templates/webapps/galaxy/library/common/ldda_permissions.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_permissions.mako similarity index 100% rename from templates/webapps/galaxy/library/common/ldda_permissions.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_permissions.mako diff --git a/templates/webapps/galaxy/library/common/library_dataset_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_info.mako similarity index 100% rename from templates/webapps/galaxy/library/common/library_dataset_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_info.mako diff --git a/templates/webapps/galaxy/library/common/library_dataset_permissions.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_permissions.mako similarity index 100% rename from templates/webapps/galaxy/library/common/library_dataset_permissions.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_permissions.mako diff --git a/templates/webapps/galaxy/library/common/library_dataset_search_results.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_search_results.mako similarity index 100% rename from templates/webapps/galaxy/library/common/library_dataset_search_results.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_search_results.mako diff --git a/templates/webapps/galaxy/library/common/library_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_info.mako similarity index 100% rename from templates/webapps/galaxy/library/common/library_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_info.mako diff --git a/templates/webapps/galaxy/library/common/library_item_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_item_info.mako similarity index 100% rename from templates/webapps/galaxy/library/common/library_item_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_item_info.mako diff --git a/templates/webapps/galaxy/library/common/library_permissions.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_permissions.mako similarity index 100% rename from templates/webapps/galaxy/library/common/library_permissions.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_permissions.mako diff --git a/templates/webapps/galaxy/library/common/move_library_item.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/move_library_item.mako similarity index 100% rename from templates/webapps/galaxy/library/common/move_library_item.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/move_library_item.mako diff --git a/templates/webapps/galaxy/library/common/new_folder.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/new_folder.mako similarity index 100% rename from templates/webapps/galaxy/library/common/new_folder.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/new_folder.mako diff --git a/templates/webapps/galaxy/library/common/upload.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/upload.mako similarity index 100% rename from templates/webapps/galaxy/library/common/upload.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/common/upload.mako diff --git a/templates/webapps/galaxy/library/grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/grid.mako similarity index 100% rename from templates/webapps/galaxy/library/grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/grid.mako diff --git a/templates/webapps/galaxy/library/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/library/index.mako similarity index 100% rename from templates/webapps/galaxy/library/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/library/index.mako diff --git a/templates/webapps/galaxy/mobile/dataset/detail.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/detail.mako similarity index 100% rename from templates/webapps/galaxy/mobile/dataset/detail.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/detail.mako diff --git a/templates/webapps/galaxy/mobile/dataset/peek.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/peek.mako similarity index 100% rename from templates/webapps/galaxy/mobile/dataset/peek.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/peek.mako diff --git a/templates/webapps/galaxy/mobile/form.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/form.mako similarity index 100% rename from templates/webapps/galaxy/mobile/form.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/form.mako diff --git a/templates/webapps/galaxy/mobile/history/detail.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/detail.mako similarity index 100% rename from templates/webapps/galaxy/mobile/history/detail.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/detail.mako diff --git a/templates/webapps/galaxy/mobile/history/list.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/list.mako similarity index 100% rename from templates/webapps/galaxy/mobile/history/list.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/list.mako diff --git a/templates/webapps/galaxy/mobile/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/index.mako similarity index 100% rename from templates/webapps/galaxy/mobile/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/index.mako diff --git a/templates/webapps/galaxy/mobile/manage_library.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/manage_library.mako similarity index 100% rename from templates/webapps/galaxy/mobile/manage_library.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/manage_library.mako diff --git a/templates/webapps/galaxy/mobile/settings.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/settings.mako similarity index 100% rename from templates/webapps/galaxy/mobile/settings.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/mobile/settings.mako diff --git a/templates/webapps/galaxy/page/create.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/create.mako similarity index 100% rename from templates/webapps/galaxy/page/create.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/create.mako diff --git a/templates/webapps/galaxy/page/display.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/display.mako similarity index 100% rename from templates/webapps/galaxy/page/display.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/display.mako diff --git a/templates/webapps/galaxy/page/editor.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/editor.mako similarity index 100% rename from templates/webapps/galaxy/page/editor.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/editor.mako diff --git a/templates/webapps/galaxy/page/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/index.mako similarity index 100% rename from templates/webapps/galaxy/page/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/index.mako diff --git a/templates/webapps/galaxy/page/list_published.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/list_published.mako similarity index 100% rename from templates/webapps/galaxy/page/list_published.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/list_published.mako diff --git a/templates/webapps/galaxy/page/select_items_grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/select_items_grid.mako similarity index 100% rename from templates/webapps/galaxy/page/select_items_grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/select_items_grid.mako diff --git a/templates/webapps/galaxy/page/wymiframe.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/page/wymiframe.mako similarity index 100% rename from templates/webapps/galaxy/page/wymiframe.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/page/wymiframe.mako diff --git a/templates/webapps/galaxy/requests/common/add_samples.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/add_samples.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/add_samples.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/add_samples.mako diff --git a/templates/webapps/galaxy/requests/common/common.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/common.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/common.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/common.mako diff --git a/templates/webapps/galaxy/requests/common/create_request.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/create_request.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/create_request.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/create_request.mako diff --git a/templates/webapps/galaxy/requests/common/edit_basic_request_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_basic_request_info.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/edit_basic_request_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_basic_request_info.mako diff --git a/templates/webapps/galaxy/requests/common/edit_samples.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_samples.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/edit_samples.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_samples.mako diff --git a/templates/webapps/galaxy/requests/common/find_samples.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/find_samples.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/find_samples.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/find_samples.mako diff --git a/templates/webapps/galaxy/requests/common/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/index.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/index.mako diff --git a/templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako diff --git a/templates/webapps/galaxy/requests/common/sample_datasets.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_datasets.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/sample_datasets.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_datasets.mako diff --git a/templates/webapps/galaxy/requests/common/sample_state.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_state.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/sample_state.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_state.mako diff --git a/templates/webapps/galaxy/requests/common/view_request.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/view_request.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request.mako diff --git a/templates/webapps/galaxy/requests/common/view_request_history.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request_history.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/view_request_history.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request_history.mako diff --git a/templates/webapps/galaxy/requests/common/view_sample.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/view_sample.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample.mako diff --git a/templates/webapps/galaxy/requests/common/view_sample_datasets.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_datasets.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/view_sample_datasets.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_datasets.mako diff --git a/templates/webapps/galaxy/requests/common/view_sample_history.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_history.mako similarity index 100% rename from templates/webapps/galaxy/requests/common/view_sample_history.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_history.mako diff --git a/templates/webapps/galaxy/requests/find_samples_index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/find_samples_index.mako similarity index 100% rename from templates/webapps/galaxy/requests/find_samples_index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/find_samples_index.mako diff --git a/templates/webapps/galaxy/requests/grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/grid.mako similarity index 100% rename from templates/webapps/galaxy/requests/grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/grid.mako diff --git a/templates/webapps/galaxy/requests/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/requests/index.mako similarity index 100% rename from templates/webapps/galaxy/requests/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/requests/index.mako diff --git a/templates/webapps/galaxy/root/redirect.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/root/redirect.mako similarity index 100% rename from templates/webapps/galaxy/root/redirect.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/root/redirect.mako diff --git a/templates/webapps/galaxy/root/tool_runner.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/root/tool_runner.mako similarity index 100% rename from templates/webapps/galaxy/root/tool_runner.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/root/tool_runner.mako diff --git a/templates/webapps/galaxy/tracks/add_to_viz.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_to_viz.mako similarity index 100% rename from templates/webapps/galaxy/tracks/add_to_viz.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_to_viz.mako diff --git a/templates/webapps/galaxy/tracks/add_tracks.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_tracks.mako similarity index 100% rename from templates/webapps/galaxy/tracks/add_tracks.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_tracks.mako diff --git a/templates/webapps/galaxy/tracks/history_datasets_select_grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_datasets_select_grid.mako similarity index 100% rename from templates/webapps/galaxy/tracks/history_datasets_select_grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_datasets_select_grid.mako diff --git a/templates/webapps/galaxy/tracks/history_select_grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_select_grid.mako similarity index 100% rename from templates/webapps/galaxy/tracks/history_select_grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_select_grid.mako diff --git a/templates/webapps/galaxy/tracks/library_datasets_select_grid.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/library_datasets_select_grid.mako similarity index 100% rename from templates/webapps/galaxy/tracks/library_datasets_select_grid.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/tracks/library_datasets_select_grid.mako diff --git a/templates/webapps/galaxy/user/api_keys.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/user/api_keys.mako similarity index 100% rename from templates/webapps/galaxy/user/api_keys.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/user/api_keys.mako diff --git a/templates/webapps/galaxy/user/list_users.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/user/list_users.mako similarity index 100% rename from templates/webapps/galaxy/user/list_users.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/user/list_users.mako diff --git a/templates/webapps/galaxy/user/manage_info.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/user/manage_info.mako similarity index 100% rename from templates/webapps/galaxy/user/manage_info.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/user/manage_info.mako diff --git a/templates/webapps/galaxy/visualization/create.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/create.mako similarity index 100% rename from templates/webapps/galaxy/visualization/create.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/create.mako diff --git a/templates/webapps/galaxy/visualization/display.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display.mako similarity index 100% rename from templates/webapps/galaxy/visualization/display.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display.mako diff --git a/templates/webapps/galaxy/visualization/display_in_frame.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display_in_frame.mako similarity index 100% rename from templates/webapps/galaxy/visualization/display_in_frame.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display_in_frame.mako diff --git a/templates/webapps/galaxy/visualization/embed.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed.mako similarity index 100% rename from templates/webapps/galaxy/visualization/embed.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed.mako diff --git a/templates/webapps/galaxy/visualization/embed_in_frame.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed_in_frame.mako similarity index 100% rename from templates/webapps/galaxy/visualization/embed_in_frame.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed_in_frame.mako diff --git a/templates/webapps/galaxy/visualization/gie.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/gie.mako similarity index 100% rename from templates/webapps/galaxy/visualization/gie.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/gie.mako diff --git a/templates/webapps/galaxy/visualization/item_content.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/item_content.mako similarity index 100% rename from templates/webapps/galaxy/visualization/item_content.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/item_content.mako diff --git a/templates/webapps/galaxy/visualization/list.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list.mako similarity index 100% rename from templates/webapps/galaxy/visualization/list.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list.mako diff --git a/templates/webapps/galaxy/visualization/list_published.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list_published.mako similarity index 100% rename from templates/webapps/galaxy/visualization/list_published.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list_published.mako diff --git a/templates/webapps/galaxy/visualization/phyloviz.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/phyloviz.mako similarity index 100% rename from templates/webapps/galaxy/visualization/phyloviz.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/phyloviz.mako diff --git a/templates/webapps/galaxy/visualization/sweepster.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/sweepster.mako similarity index 100% rename from templates/webapps/galaxy/visualization/sweepster.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/visualization/sweepster.mako diff --git a/templates/webapps/galaxy/workflow/build_from_current_history.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/build_from_current_history.mako similarity index 100% rename from templates/webapps/galaxy/workflow/build_from_current_history.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/build_from_current_history.mako diff --git a/templates/webapps/galaxy/workflow/configure_menu.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/configure_menu.mako similarity index 100% rename from templates/webapps/galaxy/workflow/configure_menu.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/configure_menu.mako diff --git a/templates/webapps/galaxy/workflow/display.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/display.mako similarity index 100% rename from templates/webapps/galaxy/workflow/display.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/display.mako diff --git a/templates/webapps/galaxy/workflow/editor.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor.mako similarity index 100% rename from templates/webapps/galaxy/workflow/editor.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor.mako diff --git a/templates/webapps/galaxy/workflow/editor_generic_form.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_generic_form.mako similarity index 100% rename from templates/webapps/galaxy/workflow/editor_generic_form.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_generic_form.mako diff --git a/templates/webapps/galaxy/workflow/editor_tool_form.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_tool_form.mako similarity index 100% rename from templates/webapps/galaxy/workflow/editor_tool_form.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_tool_form.mako diff --git a/templates/webapps/galaxy/workflow/embed.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/embed.mako similarity index 100% rename from templates/webapps/galaxy/workflow/embed.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/embed.mako diff --git a/templates/webapps/galaxy/workflow/import.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/import.mako similarity index 100% rename from templates/webapps/galaxy/workflow/import.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/import.mako diff --git a/templates/webapps/galaxy/workflow/index.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/index.mako similarity index 100% rename from templates/webapps/galaxy/workflow/index.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/index.mako diff --git a/templates/webapps/galaxy/workflow/item_content.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/item_content.mako similarity index 100% rename from templates/webapps/galaxy/workflow/item_content.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/item_content.mako diff --git a/templates/webapps/galaxy/workflow/list.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list.mako similarity index 100% rename from templates/webapps/galaxy/workflow/list.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list.mako diff --git a/templates/webapps/galaxy/workflow/list_for_run.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_for_run.mako similarity index 100% rename from templates/webapps/galaxy/workflow/list_for_run.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_for_run.mako diff --git a/templates/webapps/galaxy/workflow/list_published.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_published.mako similarity index 100% rename from templates/webapps/galaxy/workflow/list_published.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_published.mako diff --git a/templates/webapps/galaxy/workflow/missing_tools.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/missing_tools.mako similarity index 100% rename from templates/webapps/galaxy/workflow/missing_tools.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/missing_tools.mako diff --git a/templates/webapps/galaxy/workflow/myexp_export.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export.mako similarity index 100% rename from templates/webapps/galaxy/workflow/myexp_export.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export.mako diff --git a/templates/webapps/galaxy/workflow/myexp_export_content.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export_content.mako similarity index 100% rename from templates/webapps/galaxy/workflow/myexp_export_content.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export_content.mako diff --git a/templates/webapps/galaxy/workflow/rename.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/rename.mako similarity index 100% rename from templates/webapps/galaxy/workflow/rename.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/rename.mako diff --git a/templates/webapps/galaxy/workflow/run.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run.mako similarity index 100% rename from templates/webapps/galaxy/workflow/run.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run.mako diff --git a/templates/webapps/galaxy/workflow/run_complete.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run_complete.mako similarity index 100% rename from templates/webapps/galaxy/workflow/run_complete.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run_complete.mako diff --git a/templates/webapps/galaxy/workflow/sharing.mako b/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/sharing.mako similarity index 100% rename from templates/webapps/galaxy/workflow/sharing.mako rename to lib/galaxy/web/framework/templates/webapps/galaxy/workflow/sharing.mako diff --git a/templates/webapps/reports/base_panels.mako b/lib/galaxy/web/framework/templates/webapps/reports/base_panels.mako similarity index 100% rename from templates/webapps/reports/base_panels.mako rename to lib/galaxy/web/framework/templates/webapps/reports/base_panels.mako diff --git a/templates/webapps/reports/dataset_info.mako b/lib/galaxy/web/framework/templates/webapps/reports/dataset_info.mako similarity index 100% rename from templates/webapps/reports/dataset_info.mako rename to lib/galaxy/web/framework/templates/webapps/reports/dataset_info.mako diff --git a/templates/webapps/reports/grid.mako b/lib/galaxy/web/framework/templates/webapps/reports/grid.mako similarity index 100% rename from templates/webapps/reports/grid.mako rename to lib/galaxy/web/framework/templates/webapps/reports/grid.mako diff --git a/templates/webapps/reports/index.mako b/lib/galaxy/web/framework/templates/webapps/reports/index.mako similarity index 100% rename from templates/webapps/reports/index.mako rename to lib/galaxy/web/framework/templates/webapps/reports/index.mako diff --git a/templates/webapps/reports/job_info.mako b/lib/galaxy/web/framework/templates/webapps/reports/job_info.mako similarity index 100% rename from templates/webapps/reports/job_info.mako rename to lib/galaxy/web/framework/templates/webapps/reports/job_info.mako diff --git a/templates/webapps/reports/jobs_errors_per_tool.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_errors_per_tool.mako similarity index 100% rename from templates/webapps/reports/jobs_errors_per_tool.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_errors_per_tool.mako diff --git a/templates/webapps/reports/jobs_per_month_all.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_all.mako similarity index 100% rename from templates/webapps/reports/jobs_per_month_all.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_all.mako diff --git a/templates/webapps/reports/jobs_per_month_in_error.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_in_error.mako similarity index 100% rename from templates/webapps/reports/jobs_per_month_in_error.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_in_error.mako diff --git a/templates/webapps/reports/jobs_per_tool.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_tool.mako similarity index 100% rename from templates/webapps/reports/jobs_per_tool.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_per_tool.mako diff --git a/templates/webapps/reports/jobs_per_user.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_user.mako similarity index 100% rename from templates/webapps/reports/jobs_per_user.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_per_user.mako diff --git a/templates/webapps/reports/jobs_specified_month_all.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_all.mako similarity index 100% rename from templates/webapps/reports/jobs_specified_month_all.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_all.mako diff --git a/templates/webapps/reports/jobs_specified_month_in_error.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_in_error.mako similarity index 100% rename from templates/webapps/reports/jobs_specified_month_in_error.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_in_error.mako diff --git a/templates/webapps/reports/jobs_tool_per_month.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_tool_per_month.mako similarity index 100% rename from templates/webapps/reports/jobs_tool_per_month.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_tool_per_month.mako diff --git a/templates/webapps/reports/jobs_user_per_month.mako b/lib/galaxy/web/framework/templates/webapps/reports/jobs_user_per_month.mako similarity index 100% rename from templates/webapps/reports/jobs_user_per_month.mako rename to lib/galaxy/web/framework/templates/webapps/reports/jobs_user_per_month.mako diff --git a/templates/webapps/reports/registered_users.mako b/lib/galaxy/web/framework/templates/webapps/reports/registered_users.mako similarity index 100% rename from templates/webapps/reports/registered_users.mako rename to lib/galaxy/web/framework/templates/webapps/reports/registered_users.mako diff --git a/templates/webapps/reports/registered_users_per_month.mako b/lib/galaxy/web/framework/templates/webapps/reports/registered_users_per_month.mako similarity index 100% rename from templates/webapps/reports/registered_users_per_month.mako rename to lib/galaxy/web/framework/templates/webapps/reports/registered_users_per_month.mako diff --git a/templates/webapps/reports/registered_users_specified_date.mako b/lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_date.mako similarity index 100% rename from templates/webapps/reports/registered_users_specified_date.mako rename to lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_date.mako diff --git a/templates/webapps/reports/registered_users_specified_month.mako b/lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_month.mako similarity index 100% rename from templates/webapps/reports/registered_users_specified_month.mako rename to lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_month.mako diff --git a/templates/webapps/reports/requests_per_month_all.mako b/lib/galaxy/web/framework/templates/webapps/reports/requests_per_month_all.mako similarity index 100% rename from templates/webapps/reports/requests_per_month_all.mako rename to lib/galaxy/web/framework/templates/webapps/reports/requests_per_month_all.mako diff --git a/templates/webapps/reports/requests_per_user.mako b/lib/galaxy/web/framework/templates/webapps/reports/requests_per_user.mako similarity index 100% rename from templates/webapps/reports/requests_per_user.mako rename to lib/galaxy/web/framework/templates/webapps/reports/requests_per_user.mako diff --git a/templates/webapps/reports/requests_user_per_month.mako b/lib/galaxy/web/framework/templates/webapps/reports/requests_user_per_month.mako similarity index 100% rename from templates/webapps/reports/requests_user_per_month.mako rename to lib/galaxy/web/framework/templates/webapps/reports/requests_user_per_month.mako diff --git a/templates/webapps/reports/run_stats.mako b/lib/galaxy/web/framework/templates/webapps/reports/run_stats.mako similarity index 100% rename from templates/webapps/reports/run_stats.mako rename to lib/galaxy/web/framework/templates/webapps/reports/run_stats.mako diff --git a/templates/webapps/reports/system.mako b/lib/galaxy/web/framework/templates/webapps/reports/system.mako similarity index 100% rename from templates/webapps/reports/system.mako rename to lib/galaxy/web/framework/templates/webapps/reports/system.mako diff --git a/templates/webapps/reports/users_last_access_date.mako b/lib/galaxy/web/framework/templates/webapps/reports/users_last_access_date.mako similarity index 100% rename from templates/webapps/reports/users_last_access_date.mako rename to lib/galaxy/web/framework/templates/webapps/reports/users_last_access_date.mako diff --git a/templates/webapps/reports/users_user_disk_usage.mako b/lib/galaxy/web/framework/templates/webapps/reports/users_user_disk_usage.mako similarity index 100% rename from templates/webapps/reports/users_user_disk_usage.mako rename to lib/galaxy/web/framework/templates/webapps/reports/users_user_disk_usage.mako diff --git a/templates/webapps/reports/workflows_per_month_all.mako b/lib/galaxy/web/framework/templates/webapps/reports/workflows_per_month_all.mako similarity index 100% rename from templates/webapps/reports/workflows_per_month_all.mako rename to lib/galaxy/web/framework/templates/webapps/reports/workflows_per_month_all.mako diff --git a/templates/webapps/reports/workflows_per_user.mako b/lib/galaxy/web/framework/templates/webapps/reports/workflows_per_user.mako similarity index 100% rename from templates/webapps/reports/workflows_per_user.mako rename to lib/galaxy/web/framework/templates/webapps/reports/workflows_per_user.mako diff --git a/templates/webapps/reports/workflows_per_workflow.mako b/lib/galaxy/web/framework/templates/webapps/reports/workflows_per_workflow.mako similarity index 100% rename from templates/webapps/reports/workflows_per_workflow.mako rename to lib/galaxy/web/framework/templates/webapps/reports/workflows_per_workflow.mako diff --git a/templates/webapps/reports/workflows_user_per_month.mako b/lib/galaxy/web/framework/templates/webapps/reports/workflows_user_per_month.mako similarity index 100% rename from templates/webapps/reports/workflows_user_per_month.mako rename to lib/galaxy/web/framework/templates/webapps/reports/workflows_user_per_month.mako diff --git a/templates/webapps/tool_shed/admin/center.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/admin/center.mako similarity index 100% rename from templates/webapps/tool_shed/admin/center.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/admin/center.mako diff --git a/templates/webapps/tool_shed/admin/index.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/admin/index.mako similarity index 100% rename from templates/webapps/tool_shed/admin/index.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/admin/index.mako diff --git a/templates/webapps/tool_shed/admin/statistics.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/admin/statistics.mako similarity index 100% rename from templates/webapps/tool_shed/admin/statistics.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/admin/statistics.mako diff --git a/templates/webapps/tool_shed/base_panels.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/base_panels.mako similarity index 100% rename from templates/webapps/tool_shed/base_panels.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/base_panels.mako diff --git a/templates/webapps/tool_shed/category/create_category.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/category/create_category.mako similarity index 100% rename from templates/webapps/tool_shed/category/create_category.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/category/create_category.mako diff --git a/templates/webapps/tool_shed/category/edit_category.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/category/edit_category.mako similarity index 100% rename from templates/webapps/tool_shed/category/edit_category.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/category/edit_category.mako diff --git a/templates/webapps/tool_shed/category/grid.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/category/grid.mako similarity index 100% rename from templates/webapps/tool_shed/category/grid.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/category/grid.mako diff --git a/templates/webapps/tool_shed/category/valid_grid.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/category/valid_grid.mako similarity index 100% rename from templates/webapps/tool_shed/category/valid_grid.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/category/valid_grid.mako diff --git a/templates/webapps/tool_shed/common/common.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/common/common.mako similarity index 100% rename from templates/webapps/tool_shed/common/common.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/common/common.mako diff --git a/templates/webapps/tool_shed/common/grid_common.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/common/grid_common.mako similarity index 100% rename from templates/webapps/tool_shed/common/grid_common.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/common/grid_common.mako diff --git a/templates/webapps/tool_shed/common/repository_actions_menu.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/common/repository_actions_menu.mako similarity index 100% rename from templates/webapps/tool_shed/common/repository_actions_menu.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/common/repository_actions_menu.mako diff --git a/templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako similarity index 100% rename from templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako diff --git a/templates/webapps/tool_shed/group/index.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/group/index.mako similarity index 100% rename from templates/webapps/tool_shed/group/index.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/group/index.mako diff --git a/templates/webapps/tool_shed/index.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/index.mako similarity index 100% rename from templates/webapps/tool_shed/index.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/index.mako diff --git a/templates/webapps/tool_shed/repository/browse_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/browse_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository/browse_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/browse_repository.mako diff --git a/templates/webapps/tool_shed/repository/common.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/common.mako similarity index 100% rename from templates/webapps/tool_shed/repository/common.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/common.mako diff --git a/templates/webapps/tool_shed/repository/contact_owner.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/contact_owner.mako similarity index 100% rename from templates/webapps/tool_shed/repository/contact_owner.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/contact_owner.mako diff --git a/templates/webapps/tool_shed/repository/create_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/create_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository/create_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/create_repository.mako diff --git a/templates/webapps/tool_shed/repository/docker_image_repositories.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/docker_image_repositories.mako similarity index 100% rename from templates/webapps/tool_shed/repository/docker_image_repositories.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/docker_image_repositories.mako diff --git a/templates/webapps/tool_shed/repository/export_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/export_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository/export_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/export_repository.mako diff --git a/templates/webapps/tool_shed/repository/find_tools.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_tools.mako similarity index 100% rename from templates/webapps/tool_shed/repository/find_tools.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_tools.mako diff --git a/templates/webapps/tool_shed/repository/find_workflows.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_workflows.mako similarity index 100% rename from templates/webapps/tool_shed/repository/find_workflows.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_workflows.mako diff --git a/templates/webapps/tool_shed/repository/grid.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/grid.mako similarity index 100% rename from templates/webapps/tool_shed/repository/grid.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/grid.mako diff --git a/templates/webapps/tool_shed/repository/import_capsule.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule.mako similarity index 100% rename from templates/webapps/tool_shed/repository/import_capsule.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule.mako diff --git a/templates/webapps/tool_shed/repository/import_capsule_results.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule_results.mako similarity index 100% rename from templates/webapps/tool_shed/repository/import_capsule_results.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule_results.mako diff --git a/templates/webapps/tool_shed/repository/manage_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/manage_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository/manage_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/manage_repository.mako diff --git a/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako similarity index 100% rename from templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako diff --git a/templates/webapps/tool_shed/repository/rate_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/rate_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository/rate_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/rate_repository.mako diff --git a/templates/webapps/tool_shed/repository/tool_form.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/tool_form.mako similarity index 100% rename from templates/webapps/tool_shed/repository/tool_form.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/tool_form.mako diff --git a/templates/webapps/tool_shed/repository/upload.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload.mako similarity index 100% rename from templates/webapps/tool_shed/repository/upload.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload.mako diff --git a/templates/webapps/tool_shed/repository/upload_capsule.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload_capsule.mako similarity index 100% rename from templates/webapps/tool_shed/repository/upload_capsule.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload_capsule.mako diff --git a/templates/webapps/tool_shed/repository/view_changelog.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changelog.mako similarity index 100% rename from templates/webapps/tool_shed/repository/view_changelog.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changelog.mako diff --git a/templates/webapps/tool_shed/repository/view_changeset.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changeset.mako similarity index 100% rename from templates/webapps/tool_shed/repository/view_changeset.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changeset.mako diff --git a/templates/webapps/tool_shed/repository/view_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository/view_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_repository.mako diff --git a/templates/webapps/tool_shed/repository/view_tool_metadata.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_tool_metadata.mako similarity index 100% rename from templates/webapps/tool_shed/repository/view_tool_metadata.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_tool_metadata.mako diff --git a/templates/webapps/tool_shed/repository/view_workflow.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_workflow.mako similarity index 100% rename from templates/webapps/tool_shed/repository/view_workflow.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_workflow.mako diff --git a/templates/webapps/tool_shed/repository_review/browse_review.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/browse_review.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/browse_review.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/browse_review.mako diff --git a/templates/webapps/tool_shed/repository_review/create_component.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/create_component.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/create_component.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/create_component.mako diff --git a/templates/webapps/tool_shed/repository_review/edit_component.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_component.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/edit_component.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_component.mako diff --git a/templates/webapps/tool_shed/repository_review/edit_review.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_review.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/edit_review.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_review.mako diff --git a/templates/webapps/tool_shed/repository_review/grid.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/grid.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/grid.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/grid.mako diff --git a/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako diff --git a/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/reviews_of_repository.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako diff --git a/templates/webapps/tool_shed/repository_review/select_previous_review.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/select_previous_review.mako similarity index 100% rename from templates/webapps/tool_shed/repository_review/select_previous_review.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/select_previous_review.mako diff --git a/templates/webapps/tool_shed/role/role.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/role/role.mako similarity index 100% rename from templates/webapps/tool_shed/role/role.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/role/role.mako diff --git a/templates/webapps/tool_shed/user/manage_email_alerts.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_email_alerts.mako similarity index 100% rename from templates/webapps/tool_shed/user/manage_email_alerts.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_email_alerts.mako diff --git a/templates/webapps/tool_shed/user/manage_info.mako b/lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_info.mako similarity index 100% rename from templates/webapps/tool_shed/user/manage_info.mako rename to lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_info.mako From e67e7fde3c578e61fbcd657a0c416f9245773e9a Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 16 May 2016 16:46:12 -0400 Subject: [PATCH 005/141] Update client build for moved static directories --- client/GruntFile.js | 12 ++++++------ client/grunt-tasks/style.js | 4 ++-- client/webpack.config.js | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/client/GruntFile.js b/client/GruntFile.js index 831d90d9fe5..195a2df0f8e 100644 --- a/client/GruntFile.js +++ b/client/GruntFile.js @@ -2,15 +2,15 @@ module.exports = function(grunt) { "use strict"; var GALAXY_PATHS = { - dist : '../static/scripts', - maps : '../static/maps', + dist : '../lib/galaxy/web/framework/static/scripts', + maps : '../lib/galaxy/web/framework/static/maps', // this symlink allows us to serve uncompressed scripts in DEV_PATH for use with sourcemaps - srcSymlink : '../static/src', + srcSymlink : '../lib/galaxy/web/framework/static/src', }, TOOLSHED_PATHS = { - dist : '../static/toolshed/scripts', - maps : '../static/toolshed/maps', - srcSymlink : '../static/toolshed/src', + dist : '../lib/galaxy/web/framework/static/toolshed/scripts', + maps : '../lib/galaxy/web/framework/static/toolshed/maps', + srcSymlink : '../lib/galaxy/web/framework/static/toolshed/src', }; grunt.config.set( 'app', 'galaxy' ); diff --git a/client/grunt-tasks/style.js b/client/grunt-tasks/style.js index 1ae7b3a27ee..3e1173dcec0 100644 --- a/client/grunt-tasks/style.js +++ b/client/grunt-tasks/style.js @@ -9,8 +9,8 @@ module.exports = function( grunt ){ var _ = grunt.util._, fmt = _.sprintf, theme = grunt.option( 'theme', 'blue' ), - styleDistPath = '../static/style/blue', - imagesPath = '../static/images', + styleDistPath = '../lib/galaxy/web/framework/static/style/blue', + imagesPath = '../lib/galaxy/web/framework/static/images', lessPath = './galaxy/style/less', lessFiles = [ 'base', diff --git a/client/webpack.config.js b/client/webpack.config.js index 3cc66c385d6..0307e25ff67 100644 --- a/client/webpack.config.js +++ b/client/webpack.config.js @@ -39,7 +39,7 @@ module.exports = { analysis: './galaxy/scripts/apps/analysis.js', }, output : { - path : '../static/scripts/bundled', + path : '../lib/galaxy/web/framework/static/scripts/bundled', filename : '[name].bundled.js' }, resolve : { From 787b4d4e01263e7680f7894231bbae4a8c92c192 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 16 May 2016 16:48:42 -0400 Subject: [PATCH 006/141] Improvements to distribution building --- MANIFEST.in.galaxy | 3 +++ Makefile | 17 +++++++++++++++++ setup.py | 1 + 3 files changed, 21 insertions(+) create mode 100644 MANIFEST.in.galaxy diff --git a/MANIFEST.in.galaxy b/MANIFEST.in.galaxy new file mode 100644 index 00000000000..c749475c802 --- /dev/null +++ b/MANIFEST.in.galaxy @@ -0,0 +1,3 @@ +recursive-include lib/galaxy/web/framework/templates *.mako +recursive-include lib/galaxy/web/framework/static * +recursive-include lib/galaxy/tools/bundled * diff --git a/Makefile b/Makefile index cea7c06f367..1450e595e6d 100644 --- a/Makefile +++ b/Makefile @@ -80,6 +80,23 @@ clean-grunt-docker-image: ## Remove grunt docker image docker rmi ${GRUNT_DOCKER_NAME} +wheels: wheel-galaxy-lib wheel-galaxy-app wheel-galaxy + +wheel-galaxy-lib: + rm -rf build MANIFEST.in + GALAXY_PACKAGE=galaxy-lib python setup.py bdist_wheel + +wheel-galaxy-app: + rm -rf build MANIFEST.in + GALAXY_PACKAGE=galaxy-app python setup.py bdist_wheel + +# FIXME: it'd be great if client time could be compared against the wheel and +# not rebuild client if unnecessary. But it's really only a problem in dev. +# When this stuff goes into production it won't be as big of a deal. +wheel-galaxy: client + ln -s MANIFEST.in.galaxy MANIFEST.in + GALAXY_PACKAGE=galaxy python setup.py bdist_wheel + # Release Targets release-create-rc: release-ensure-upstream ## Create a release-candidate branch git checkout dev diff --git a/setup.py b/setup.py index f6dfe52ec56..1ab4f3f41be 100644 --- a/setup.py +++ b/setup.py @@ -35,6 +35,7 @@ if GALAXY_PACKAGE == "galaxy-lib": package_data = [ 'exceptions/error_codes.json', 'datatypes/converters/*.xml', + 'datatypes/display_applications/configs/*/*.xml', 'datatypes/set_metadata_tool.xml', 'tools/imp_exp/imp_history_from_archive.xml', 'tools/imp_exp/exp_history_to_archive.xml', From 6518e64783d0f81a271c2880a4265dd81f419ab9 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 16 May 2016 16:49:06 -0400 Subject: [PATCH 007/141] Fixes for paths expected to be relative to "galaxy root", which in the "installed Galaxy" world is not the current working directory. --- lib/galaxy/datatypes/registry.py | 14 +++++++++++++- lib/galaxy/tools/__init__.py | 5 +++++ lib/galaxy/tools/special_tools.py | 9 ++++++--- lib/galaxy/web/framework/webapp.py | 22 ++++++++++++++-------- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 5bde4a1ecc2..90e6048ed09 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -106,11 +106,23 @@ class Registry( object ): if not self.converters_path: self.converters_path_attr = registration.get( 'converters_path', 'lib/galaxy/datatypes/converters' ) self.converters_path = os.path.join( root_dir, self.converters_path_attr ) + if self.converters_path_attr == 'lib/galaxy/datatypes/converters' \ + and not os.path.isdir( self.converters_path ): + # Deal with the old default of this path being set in + # datatypes_conf.xml.sample (this path is not useful in an + # "installed Galaxy" world) + self.converters_path_attr = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'converters' ) ) + self.converters_path = self.converters_path_attr if not os.path.isdir( self.converters_path ): raise ConfigurationError( "Directory does not exist: %s" % self.converters_path ) if not self.display_applications_path: self.display_path_attr = registration.get( 'display_path', 'display_applications' ) self.display_applications_path = os.path.join( root_dir, self.display_path_attr ) + if self.display_path_attr == 'display_applications' \ + and not os.path.isdir( 'display_applications' ): + # Ditto as with converters_path + self.display_path_attr = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'display_applications', 'configs' ) ) + self.display_applications_path = self.display_path_attr # Proprietary datatype's tag may have special attributes, proprietary_converter_path and proprietary_display_path. proprietary_converter_path = registration.get( 'proprietary_converter_path', None ) proprietary_display_path = registration.get( 'proprietary_display_path', None ) @@ -643,7 +655,7 @@ class Registry( object ): # We need to be able to add a job to the queue to set metadata. The queue will currently only accept jobs with an associated # tool. We'll load a special tool to be used for Auto-Detecting metadata; this is less than ideal, but effective # Properly building a tool without relying on parsing an XML file is near difficult...so we bundle with Galaxy. - set_meta_tool = toolbox.load_hidden_lib_tool( "galaxy/datatypes/set_metadata_tool.xml" ) + set_meta_tool = toolbox.load_hidden_lib_tool( os.path.abspath( os.path.join( os.path.dirname( __file__ ), "set_metadata_tool.xml" ) ) ) self.set_external_metadata_tool = set_meta_tool self.log.debug( "Loaded external metadata tool: %s", self.set_external_metadata_tool.id ) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index 8c60e5a80f7..dea58608fc5 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -102,6 +102,11 @@ class ToolBox( BaseGalaxyToolBox ): """ def __init__( self, config_filenames, tool_root_dir, app ): + # This is here to deal with the old default value, which doesn't make + # sense in an "installed Galaxy" world. + # FIXME: ./ + if tool_root_dir == './tools': + tool_root_dir = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'bundled' ) ) super( ToolBox, self ).__init__( config_filenames=config_filenames, tool_root_dir=tool_root_dir, diff --git a/lib/galaxy/tools/special_tools.py b/lib/galaxy/tools/special_tools.py index 4aa82a0f1d1..0568692a8a8 100644 --- a/lib/galaxy/tools/special_tools.py +++ b/lib/galaxy/tools/special_tools.py @@ -1,13 +1,16 @@ +import os import logging + + log = logging.getLogger( __name__ ) SPECIAL_TOOLS = { - "history export": "galaxy/tools/imp_exp/exp_history_to_archive.xml", - "history import": "galaxy/tools/imp_exp/imp_history_from_archive.xml", + "history export": "imp_exp/exp_history_to_archive.xml", + "history import": "imp_exp/imp_history_from_archive.xml", } def load_lib_tools( toolbox ): for name, path in SPECIAL_TOOLS.items(): - tool = toolbox.load_hidden_lib_tool( path ) + tool = toolbox.load_hidden_lib_tool( os.path.abspath( os.path.join( os.path.dirname( __file__ ), path ) ) ) log.debug( "Loaded %s tool: %s", name, tool.id ) diff --git a/lib/galaxy/web/framework/webapp.py b/lib/galaxy/web/framework/webapp.py index 0fd2ad3544a..8f7d7ee722b 100644 --- a/lib/galaxy/web/framework/webapp.py +++ b/lib/galaxy/web/framework/webapp.py @@ -73,11 +73,16 @@ class WebApplication( base.WebApplication ): def create_mako_template_lookup( self, galaxy_app, name ): paths = [] + # FIXME: should be os.path.join (galaxy_root, 'templates')? + if galaxy_app.config.template_path == './templates': + template_path = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'templates' ) ) + else: + template_path = galaxy_app.config.template_path # First look in webapp specific directory if name is not None: - paths.append( os.path.join( galaxy_app.config.template_path, 'webapps', name ) ) + paths.append( os.path.join( template_path, 'webapps', name ) ) # Then look in root directory - paths.append( galaxy_app.config.template_path ) + paths.append( template_path ) # Create TemplateLookup with a small cache return mako.lookup.TemplateLookup(directories=paths, module_directory=galaxy_app.config.template_cache, @@ -910,13 +915,14 @@ def build_url_map( app, global_conf, local_conf ): cache_time = conf.get( "static_cache_time", None ) if cache_time is not None: cache_time = int( cache_time ) + _def = lambda x: os.path.abspath( os.path.join( os.path.dirname( __file__ ), x ) ) # Send to dynamic app by default urlmap["/"] = app # Define static mappings from config - urlmap["/static"] = Static( conf.get( "static_dir", "./static/" ), cache_time ) - urlmap["/images"] = Static( conf.get( "static_images_dir", "./static/images" ), cache_time ) - urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir", "./static/scripts/" ), cache_time ) - urlmap["/static/style"] = Static( conf.get( "static_style_dir", "./static/style/blue" ), cache_time ) - urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir", "./static/favicon.ico" ), cache_time ) - urlmap["/robots.txt"] = Static( conf.get( "static_robots_txt", "./static/robots.txt" ), cache_time ) + urlmap["/static"] = Static( conf.get( "static_dir", _def("static/") ), cache_time ) + urlmap["/images"] = Static( conf.get( "static_images_dir", _def("static/images") ), cache_time ) + urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir", _def("static/scripts/") ), cache_time ) + urlmap["/static/style"] = Static( conf.get( "static_style_dir", _def("./static/style/blue") ), cache_time ) + urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir", _def("./static/favicon.ico") ), cache_time ) + urlmap["/robots.txt"] = Static( conf.get( "static_robots_txt", _def("./static/robots.txt") ), cache_time ) return urlmap, cache_time From fbb6eea97778532ac33604cfe0c622d6b112e6f8 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 18 May 2016 14:04:13 -0400 Subject: [PATCH 008/141] Remove the galaxy-app package for now, and PEP 8 fixes --- .ci/flake8_blacklist.txt | 2 ++ MANIFEST.in.galaxy | 1 + lib/galaxy/datatypes/registry.py | 4 +-- lib/galaxy/web/framework/webapp.py | 17 ++++++----- setup.py | 45 ++++++++++-------------------- test/functional/tools/upload.py | 2 +- test/functional/tools/upload.xml | 2 +- 7 files changed, 32 insertions(+), 41 deletions(-) diff --git a/.ci/flake8_blacklist.txt b/.ci/flake8_blacklist.txt index 04ee7d84b7e..63bf819e1ea 100644 --- a/.ci/flake8_blacklist.txt +++ b/.ci/flake8_blacklist.txt @@ -4,3 +4,5 @@ database/ doc/patch.py doc/source/conf.py lib/galaxy/util/jstree.py +build/ +dist/ diff --git a/MANIFEST.in.galaxy b/MANIFEST.in.galaxy index c749475c802..6072b22831e 100644 --- a/MANIFEST.in.galaxy +++ b/MANIFEST.in.galaxy @@ -1,3 +1,4 @@ recursive-include lib/galaxy/web/framework/templates *.mako recursive-include lib/galaxy/web/framework/static * recursive-include lib/galaxy/tools/bundled * +recursive-include lib/galaxy/web/proxy/js * diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 90e6048ed09..6db2f332c9c 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -107,7 +107,7 @@ class Registry( object ): self.converters_path_attr = registration.get( 'converters_path', 'lib/galaxy/datatypes/converters' ) self.converters_path = os.path.join( root_dir, self.converters_path_attr ) if self.converters_path_attr == 'lib/galaxy/datatypes/converters' \ - and not os.path.isdir( self.converters_path ): + and not os.path.isdir( self.converters_path ): # Deal with the old default of this path being set in # datatypes_conf.xml.sample (this path is not useful in an # "installed Galaxy" world) @@ -119,7 +119,7 @@ class Registry( object ): self.display_path_attr = registration.get( 'display_path', 'display_applications' ) self.display_applications_path = os.path.join( root_dir, self.display_path_attr ) if self.display_path_attr == 'display_applications' \ - and not os.path.isdir( 'display_applications' ): + and not os.path.isdir( 'display_applications' ): # Ditto as with converters_path self.display_path_attr = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'display_applications', 'configs' ) ) self.display_applications_path = self.display_path_attr diff --git a/lib/galaxy/web/framework/webapp.py b/lib/galaxy/web/framework/webapp.py index 8f7d7ee722b..ea46936c034 100644 --- a/lib/galaxy/web/framework/webapp.py +++ b/lib/galaxy/web/framework/webapp.py @@ -904,6 +904,10 @@ class GalaxyWebTransaction( base.DefaultWebTransaction, return str(template) +def default_url_path( path ): + return os.path.abspath( os.path.join( os.path.dirname( __file__ ), path ) ) + + def build_url_map( app, global_conf, local_conf ): from paste.urlmap import URLMap from galaxy.web.framework.middleware.static import CacheableStaticURLParser as Static @@ -915,14 +919,13 @@ def build_url_map( app, global_conf, local_conf ): cache_time = conf.get( "static_cache_time", None ) if cache_time is not None: cache_time = int( cache_time ) - _def = lambda x: os.path.abspath( os.path.join( os.path.dirname( __file__ ), x ) ) # Send to dynamic app by default urlmap["/"] = app # Define static mappings from config - urlmap["/static"] = Static( conf.get( "static_dir", _def("static/") ), cache_time ) - urlmap["/images"] = Static( conf.get( "static_images_dir", _def("static/images") ), cache_time ) - urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir", _def("static/scripts/") ), cache_time ) - urlmap["/static/style"] = Static( conf.get( "static_style_dir", _def("./static/style/blue") ), cache_time ) - urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir", _def("./static/favicon.ico") ), cache_time ) - urlmap["/robots.txt"] = Static( conf.get( "static_robots_txt", _def("./static/robots.txt") ), cache_time ) + urlmap["/static"] = Static( conf.get( "static_dir", default_url_path("static/") ), cache_time ) + urlmap["/images"] = Static( conf.get( "static_images_dir", default_url_path("static/images") ), cache_time ) + urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir", default_url_path("static/scripts/") ), cache_time ) + urlmap["/static/style"] = Static( conf.get( "static_style_dir", default_url_path("./static/style/blue") ), cache_time ) + urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir", default_url_path("./static/favicon.ico") ), cache_time ) + urlmap["/robots.txt"] = Static( conf.get( "static_robots_txt", default_url_path("./static/robots.txt") ), cache_time ) return urlmap, cache_time diff --git a/setup.py b/setup.py index 1ab4f3f41be..d1dfc85fd64 100644 --- a/setup.py +++ b/setup.py @@ -6,13 +6,9 @@ from setuptools import setup, find_packages readme = open('README.rst').read() -# Obviously this should not be empty, but for the moment, use: -# pip install -e git+https://github.com/natefoo/pip@linux-wheels#egg=pip && \ -# pip install -r requirements.txt --index-url https://wheels.galaxyproject.org/simple/ -requirements = [ -] - GALAXY_PACKAGE = os.environ.get("GALAXY_PACKAGE", "galaxy-lib") +VERSION = None + def _find_packages(base): r = [] @@ -40,18 +36,30 @@ if GALAXY_PACKAGE == "galaxy-lib": 'tools/imp_exp/imp_history_from_archive.xml', 'tools/imp_exp/exp_history_to_archive.xml', ] -elif GALAXY_PACKAGE == "galaxy-app": +elif GALAXY_PACKAGE == "galaxy": requirements = [ 'galaxy-lib', ] base_packages = [ + 'galaxy.actions', 'galaxy.auth', + 'galaxy.dataset_collections', 'galaxy.dependencies', 'galaxy.external_services', + 'galaxy.forms', 'galaxy.jobs', + 'galaxy.managers', 'galaxy.model', + 'galaxy.openid', 'galaxy.quota', + 'galaxy.sample_tracking', 'galaxy.security', + 'galaxy.tags', + 'galaxy.tours', + 'galaxy.visualization', + 'galaxy.web', + 'galaxy.webapps', + 'galaxy.workflow', 'galaxy.work', ] package_data = [ @@ -59,28 +67,7 @@ elif GALAXY_PACKAGE == "galaxy-app": 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', 'model/migrate/migrate.cfg', 'dependencies/*.txt', - # FIXME: web/proxy/js/lib doesn't exist - #'web/proxy/js/*', ] -elif GALAXY_PACKAGE == "galaxy": - requirements = [ - 'galaxy-app', - ] - base_packages = [ - 'galaxy.actions', - 'galaxy.dataset_collections', - 'galaxy.forms', - 'galaxy.managers', - 'galaxy.openid', - 'galaxy.sample_tracking', - 'galaxy.tags', - 'galaxy.tours', - 'galaxy.visualization', - 'galaxy.web', - 'galaxy.webapps', - 'galaxy.workflow', - ] - package_data = [] elif GALAXY_PACKAGE == 'tool-shed': requirements = [ 'galaxy-app', @@ -105,7 +92,6 @@ execfile('lib/galaxy/version.py') scripts = ["scripts/galaxy"] setup( - #name='galaxy', name=GALAXY_PACKAGE, version=VERSION, description='Galaxy (http://galaxyproject.org/).', @@ -113,7 +99,6 @@ setup( author='Galaxy Project', author_email='galaxy-dev@lists.galaxyproject.org', url='https://github.com/galaxyproject/galaxy', - #packages=find_packages('lib'), packages=packages, entry_points=''' [console_scripts] diff --git a/test/functional/tools/upload.py b/test/functional/tools/upload.py index 6cf43a566b3..282421f9585 120000 --- a/test/functional/tools/upload.py +++ b/test/functional/tools/upload.py @@ -1 +1 @@ -../../../tools/data_source/upload.py \ No newline at end of file +../../../lib/galaxy/tools/bundled/data_source/upload.py \ No newline at end of file diff --git a/test/functional/tools/upload.xml b/test/functional/tools/upload.xml index 3096f6a2d4c..684a91b47ee 120000 --- a/test/functional/tools/upload.xml +++ b/test/functional/tools/upload.xml @@ -1 +1 @@ -../../../tools/data_source/upload.xml \ No newline at end of file +../../../lib/galaxy/tools/bundled/data_source/upload.xml \ No newline at end of file From 8772297095c7b4e68ef8407d1b19f6669d8bdc2c Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 26 May 2016 14:20:22 -0400 Subject: [PATCH 009/141] Remove the namespacing of galaxy packages for now, everything will just live in the `galaxy` package. Install deps at install time. --- setup.py | 151 ++++++++++++++++++++++++++----------------------------- 1 file changed, 70 insertions(+), 81 deletions(-) diff --git a/setup.py b/setup.py index d1dfc85fd64..5cb64670288 100644 --- a/setup.py +++ b/setup.py @@ -5,85 +5,11 @@ from setuptools import setup, find_packages readme = open('README.rst').read() - -GALAXY_PACKAGE = os.environ.get("GALAXY_PACKAGE", "galaxy-lib") VERSION = None -def _find_packages(base): - r = [] - for sub in find_packages(os.sep.join(['lib'] + base.split('.'))): - print 'Found package', '.'.join([base, sub]) - r.append('.'.join([base, sub])) - return r - - -if GALAXY_PACKAGE == "galaxy-lib": - requirements = [] - base_packages = [ - 'galaxy.datatypes', - 'galaxy.exceptions', - 'galaxy.jobs.metrics', - 'galaxy.objectstore', - 'galaxy.tools', - 'galaxy.util', - ] - package_data = [ - 'exceptions/error_codes.json', - 'datatypes/converters/*.xml', - 'datatypes/display_applications/configs/*/*.xml', - 'datatypes/set_metadata_tool.xml', - 'tools/imp_exp/imp_history_from_archive.xml', - 'tools/imp_exp/exp_history_to_archive.xml', - ] -elif GALAXY_PACKAGE == "galaxy": - requirements = [ - 'galaxy-lib', - ] - base_packages = [ - 'galaxy.actions', - 'galaxy.auth', - 'galaxy.dataset_collections', - 'galaxy.dependencies', - 'galaxy.external_services', - 'galaxy.forms', - 'galaxy.jobs', - 'galaxy.managers', - 'galaxy.model', - 'galaxy.openid', - 'galaxy.quota', - 'galaxy.sample_tracking', - 'galaxy.security', - 'galaxy.tags', - 'galaxy.tours', - 'galaxy.visualization', - 'galaxy.web', - 'galaxy.webapps', - 'galaxy.workflow', - 'galaxy.work', - ] - package_data = [ - 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', - 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', - 'model/migrate/migrate.cfg', - 'dependencies/*.txt', - ] -elif GALAXY_PACKAGE == 'tool-shed': - requirements = [ - 'galaxy-app', - ] - packages = ['tool_shed'] + _find_packages('tool_shed') - package_data = [] -else: - sys.stderr.write('ERROR: Unknown package name: {}\n'.format(GALAXY_PACKAGE)) - sys.exit(1) - - -if GALAXY_PACKAGE.startswith('galaxy'): - packages = ['galaxy'] - for base_package in base_packages: - packages.append(base_package) - packages.extend(_find_packages(base_package)) +# TODO: detect if we are not running from pip (inspect the stack?) and if not, +# suggest using `pip install -i https://wheels.galaxyproject.org/simple .` # sets VERSION (also VERSION_MAJOR and VERSION_MINOR) @@ -92,22 +18,32 @@ execfile('lib/galaxy/version.py') scripts = ["scripts/galaxy"] setup( - name=GALAXY_PACKAGE, + name='galaxy', version=VERSION, description='Galaxy (http://galaxyproject.org/).', long_description=readme, author='Galaxy Project', author_email='galaxy-dev@lists.galaxyproject.org', url='https://github.com/galaxyproject/galaxy', - packages=packages, + packages=find_packages('lib'), entry_points=''' [console_scripts] galaxy-paster=galaxy.util.pastescript.serve:run galaxy-main=galaxy.main:main ''', - scripts=scripts, package_data={ - 'galaxy': package_data, + 'galaxy': [ + 'exceptions/error_codes.json', + 'datatypes/converters/*.xml', + 'datatypes/display_applications/configs/*/*.xml', + 'datatypes/set_metadata_tool.xml', + 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', + 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', + 'tools/imp_exp/imp_history_from_archive.xml', + 'tools/imp_exp/exp_history_to_archive.xml', + 'model/migrate/migrate.cfg', + 'dependencies/*.txt', + ], 'tool_shed': [ 'galaxy_install/migrate/migrate.cfg', 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', @@ -117,7 +53,60 @@ setup( }, package_dir={'': 'lib'}, include_package_data=True, - install_requires=requirements, + dependency_links=['https://wheels.galaxyproject.org/packages'], + setup_requires=['pip>=8.1'], + # FIXME: read requirements.txt into a list... + install_requires=[ + 'bx-python==0.7.3', + 'MarkupSafe==0.23', + 'PyYAML==3.11', + 'SQLAlchemy==1.0.8', + 'mercurial==3.7.3', + 'numpy==1.9.2', + 'pycrypto==2.6.1', + 'Paste==2.0.2', + 'PasteDeploy==1.5.2', + 'docutils==0.12', + 'wchartype==0.1', + 'repoze.lru==0.6', + 'Routes==2.2', + 'WebOb==1.4.1', + 'WebHelpers==1.3', + 'Mako==1.0.2', + 'pytz==2015.4', + 'Babel==2.0', + 'Beaker==1.7.0', + 'dictobj==0.3.1', + 'nose==1.3.7', + 'Parsley==1.3', + 'six==1.9.0', + 'Whoosh==2.7.4', + 'Cheetah==2.4.4', + 'Markdown==2.6.3', + 'bioblend==0.7.0', + 'boto==2.38.0', + 'requests==2.8.1', + 'requests-toolbelt==0.4.0', + 'kombu==3.0.30', + 'amqp==1.4.8', + 'anyjson==0.3.3', + 'psutil==4.1.0', + 'pulsar-galaxy-lib==0.7.0.dev4', + 'sqlalchemy-migrate==0.10.0', + 'decorator==4.0.2', + 'Tempita==0.5.3dev', + 'sqlparse==0.1.16', + 'pbr==1.8.0', + 'svgwrite==1.1.6', + 'pyparsing==2.1.1', + 'Fabric==1.10.2', + 'paramiko==1.15.2', + 'ecdsa==0.13', + 'pysam==0.8.4+gx1', + ], + extras_require={ + 'postgresql': ['psycopg2==2.6.1'], + }, license="Academic Free License 3.0", zip_safe=False, keywords='galaxy', From 42cf61fd3608e24e74837da6706d506dd276db36 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 10 Jun 2016 14:06:36 -0400 Subject: [PATCH 010/141] Move some things from scripts/ to lib/ and some sample configs to lib/galaxy/config/sample/ --- lib/galaxy/{config.py => config/__init__.py} | 0 {config => lib/galaxy/config/sample}/auth_conf.xml.sample | 0 .../galaxy/config/sample}/datatypes_conf.xml.sample | 0 .../galaxy/config/sample}/tool_sheds_conf.xml.sample | 0 .../tool_shed/galaxy_install/migrate/scripts}/0002_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0003_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0004_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0005_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0006_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0007_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0008_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0009_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0010_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0011_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/0012_tools.xml | 0 .../tool_shed/galaxy_install/migrate/scripts}/manage_tools.py | 0 .../galaxy_install/migrate/scripts}/migrate_tools.py | 0 scripts/migrate_tools/0002_tools.sh | 4 ---- scripts/migrate_tools/0003_tools.sh | 4 ---- scripts/migrate_tools/0004_tools.sh | 4 ---- scripts/migrate_tools/0005_tools.sh | 4 ---- scripts/migrate_tools/0006_tools.sh | 4 ---- scripts/migrate_tools/0007_tools.sh | 4 ---- scripts/migrate_tools/0008_tools.sh | 4 ---- scripts/migrate_tools/0009_tools.sh | 4 ---- scripts/migrate_tools/0010_tools.sh | 4 ---- scripts/migrate_tools/0011_tools.sh | 4 ---- scripts/migrate_tools/0012_tools.sh | 4 ---- 28 files changed, 44 deletions(-) rename lib/galaxy/{config.py => config/__init__.py} (100%) rename {config => lib/galaxy/config/sample}/auth_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/datatypes_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/tool_sheds_conf.xml.sample (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0002_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0003_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0004_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0005_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0006_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0007_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0008_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0009_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0010_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0011_tools.xml (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/0012_tools.xml (100%) rename {scripts => lib/tool_shed/galaxy_install/migrate/scripts}/manage_tools.py (100%) rename {scripts/migrate_tools => lib/tool_shed/galaxy_install/migrate/scripts}/migrate_tools.py (100%) delete mode 100644 scripts/migrate_tools/0002_tools.sh delete mode 100644 scripts/migrate_tools/0003_tools.sh delete mode 100644 scripts/migrate_tools/0004_tools.sh delete mode 100644 scripts/migrate_tools/0005_tools.sh delete mode 100644 scripts/migrate_tools/0006_tools.sh delete mode 100644 scripts/migrate_tools/0007_tools.sh delete mode 100644 scripts/migrate_tools/0008_tools.sh delete mode 100644 scripts/migrate_tools/0009_tools.sh delete mode 100644 scripts/migrate_tools/0010_tools.sh delete mode 100644 scripts/migrate_tools/0011_tools.sh delete mode 100644 scripts/migrate_tools/0012_tools.sh diff --git a/lib/galaxy/config.py b/lib/galaxy/config/__init__.py similarity index 100% rename from lib/galaxy/config.py rename to lib/galaxy/config/__init__.py diff --git a/config/auth_conf.xml.sample b/lib/galaxy/config/sample/auth_conf.xml.sample similarity index 100% rename from config/auth_conf.xml.sample rename to lib/galaxy/config/sample/auth_conf.xml.sample diff --git a/config/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample similarity index 100% rename from config/datatypes_conf.xml.sample rename to lib/galaxy/config/sample/datatypes_conf.xml.sample diff --git a/config/tool_sheds_conf.xml.sample b/lib/galaxy/config/sample/tool_sheds_conf.xml.sample similarity index 100% rename from config/tool_sheds_conf.xml.sample rename to lib/galaxy/config/sample/tool_sheds_conf.xml.sample diff --git a/scripts/migrate_tools/0002_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0002_tools.xml similarity index 100% rename from scripts/migrate_tools/0002_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0002_tools.xml diff --git a/scripts/migrate_tools/0003_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0003_tools.xml similarity index 100% rename from scripts/migrate_tools/0003_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0003_tools.xml diff --git a/scripts/migrate_tools/0004_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0004_tools.xml similarity index 100% rename from scripts/migrate_tools/0004_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0004_tools.xml diff --git a/scripts/migrate_tools/0005_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0005_tools.xml similarity index 100% rename from scripts/migrate_tools/0005_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0005_tools.xml diff --git a/scripts/migrate_tools/0006_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0006_tools.xml similarity index 100% rename from scripts/migrate_tools/0006_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0006_tools.xml diff --git a/scripts/migrate_tools/0007_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0007_tools.xml similarity index 100% rename from scripts/migrate_tools/0007_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0007_tools.xml diff --git a/scripts/migrate_tools/0008_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0008_tools.xml similarity index 100% rename from scripts/migrate_tools/0008_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0008_tools.xml diff --git a/scripts/migrate_tools/0009_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0009_tools.xml similarity index 100% rename from scripts/migrate_tools/0009_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0009_tools.xml diff --git a/scripts/migrate_tools/0010_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0010_tools.xml similarity index 100% rename from scripts/migrate_tools/0010_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0010_tools.xml diff --git a/scripts/migrate_tools/0011_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0011_tools.xml similarity index 100% rename from scripts/migrate_tools/0011_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0011_tools.xml diff --git a/scripts/migrate_tools/0012_tools.xml b/lib/tool_shed/galaxy_install/migrate/scripts/0012_tools.xml similarity index 100% rename from scripts/migrate_tools/0012_tools.xml rename to lib/tool_shed/galaxy_install/migrate/scripts/0012_tools.xml diff --git a/scripts/manage_tools.py b/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py similarity index 100% rename from scripts/manage_tools.py rename to lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py diff --git a/scripts/migrate_tools/migrate_tools.py b/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py similarity index 100% rename from scripts/migrate_tools/migrate_tools.py rename to lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py diff --git a/scripts/migrate_tools/0002_tools.sh b/scripts/migrate_tools/0002_tools.sh deleted file mode 100644 index 926aba9529d..00000000000 --- a/scripts/migrate_tools/0002_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0002_tools.xml $@ diff --git a/scripts/migrate_tools/0003_tools.sh b/scripts/migrate_tools/0003_tools.sh deleted file mode 100644 index dfc3bde56b3..00000000000 --- a/scripts/migrate_tools/0003_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0003_tools.xml $@ diff --git a/scripts/migrate_tools/0004_tools.sh b/scripts/migrate_tools/0004_tools.sh deleted file mode 100644 index 40b76956fa2..00000000000 --- a/scripts/migrate_tools/0004_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0004_tools.xml $@ diff --git a/scripts/migrate_tools/0005_tools.sh b/scripts/migrate_tools/0005_tools.sh deleted file mode 100644 index c9f1f3c61d6..00000000000 --- a/scripts/migrate_tools/0005_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0005_tools.xml $@ diff --git a/scripts/migrate_tools/0006_tools.sh b/scripts/migrate_tools/0006_tools.sh deleted file mode 100644 index 1f000ebeca6..00000000000 --- a/scripts/migrate_tools/0006_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0006_tools.xml $@ diff --git a/scripts/migrate_tools/0007_tools.sh b/scripts/migrate_tools/0007_tools.sh deleted file mode 100644 index a6cf948593d..00000000000 --- a/scripts/migrate_tools/0007_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0007_tools.xml $@ diff --git a/scripts/migrate_tools/0008_tools.sh b/scripts/migrate_tools/0008_tools.sh deleted file mode 100644 index 50cafd19936..00000000000 --- a/scripts/migrate_tools/0008_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0008_tools.xml $@ diff --git a/scripts/migrate_tools/0009_tools.sh b/scripts/migrate_tools/0009_tools.sh deleted file mode 100644 index 36f162b141c..00000000000 --- a/scripts/migrate_tools/0009_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0009_tools.xml $@ diff --git a/scripts/migrate_tools/0010_tools.sh b/scripts/migrate_tools/0010_tools.sh deleted file mode 100644 index fde17704dd3..00000000000 --- a/scripts/migrate_tools/0010_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0010_tools.xml $@ diff --git a/scripts/migrate_tools/0011_tools.sh b/scripts/migrate_tools/0011_tools.sh deleted file mode 100644 index a31365804fd..00000000000 --- a/scripts/migrate_tools/0011_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0011_tools.xml $@ diff --git a/scripts/migrate_tools/0012_tools.sh b/scripts/migrate_tools/0012_tools.sh deleted file mode 100644 index 97fbe354d04..00000000000 --- a/scripts/migrate_tools/0012_tools.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd `dirname $0`/../.. -python ./scripts/migrate_tools/migrate_tools.py 0012_tools.xml $@ From fe487a32469c27159ea0327ec857aa3d9c8bd8e2 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 10 Jun 2016 14:08:24 -0400 Subject: [PATCH 011/141] Add the config_dir and data_dir config options. Handle the following files for "installed" galaxy: - config/auth_conf.xml - database/universe.sqlite - database/files - database/tool_dependency_dir - database/shed_tools - config/migrated_tools_conf.xml - config/integrated_tool_panel.xml - config/tool_sheds_conf.xml In most cases these are read from internal defaults if not configured. The exception (so far) is datatypes_conf.xml, which would be bad to duplicate. It is instead read from lib/galaxy/config/sample/datatypes_conf.xml.sample This probably breaks tool migrations. The deprecated database_file option has been removed. --- lib/galaxy/auth/__init__.py | 22 +++- lib/galaxy/config/__init__.py | 118 +++++++++++++----- lib/tool_shed/galaxy_install/migrate/check.py | 4 +- .../migrate/scripts/manage_tools.py | 10 +- .../migrate/scripts/migrate_tools.py | 2 +- .../galaxy_install/tool_migration_manager.py | 17 ++- lib/tool_shed/tool_shed_registry.py | 52 ++++---- lib/tool_shed/util/common_util.py | 5 +- manage_tools.sh | 2 +- setup.py | 2 + 10 files changed, 172 insertions(+), 62 deletions(-) diff --git a/lib/galaxy/auth/__init__.py b/lib/galaxy/auth/__init__.py index 67a1db2a810..80a802377d4 100644 --- a/lib/galaxy/auth/__init__.py +++ b/lib/galaxy/auth/__init__.py @@ -11,6 +11,17 @@ from galaxy.util import plugin_config, string_as_bool, string_as_bool_or_none log = logging.getLogger(__name__) +AUTH_CONF_XML = """ + + + localdb + + true + + + +""" + class AuthManager(object): @@ -20,9 +31,14 @@ class AuthManager(object): self.__plugins_dict = plugin_config.plugins_dict(galaxy.auth.providers, 'plugin_type' ) auth_config_file = app.config.auth_config_file # parse XML - ct = xml.etree.ElementTree.parse(auth_config_file) - conf_root = ct.getroot() - + try: + ct = xml.etree.ElementTree.parse(auth_config_file) + conf_root = ct.getroot() + except (OSError, IOError): + if not app.config.auth_config_file_set: + conf_root = xml.etree.ElementTree.fromstring(AUTH_CONF_XML) + else: + raise authenticators = [] # process authenticators for auth_elem in conf_root.getchildren(): diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 511348cfea7..2d20b226b05 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -24,7 +24,7 @@ from galaxy.util import listify from galaxy.util import string_as_bool from galaxy.util.dbkeys import GenomeBuilds from galaxy.web.formatting import expand_pretty_datetime_format -from .version import VERSION_MAJOR +from ..version import VERSION_MAJOR log = logging.getLogger( __name__ ) @@ -48,12 +48,56 @@ def resolve_path( path, root ): class Configuration( object ): - deprecated_options = ( 'database_file', ) + deprecated_options = (None,) def __init__( self, **kwargs ): self.config_dict = kwargs self.root = kwargs.get( 'root_dir', '.' ) + # Facilitate "installed" Galaxy without disturbing existing "running + # from source" installations and all the various assumptions/defaults + self.__running_from_source = None + + self.config_file = None + global_conf = kwargs.get( 'global_conf', None ) + # TODO: under what conditions is global_conf None, or does it not + # contain __file__? + if global_conf and "__file__" in global_conf: + self.config_file = global_conf['__file__'] + elif self.running_from_source: + for f in ( 'config/galaxy.ini', 'config/galaxy.ini.sample' ): + if os.path.exists( f ): + self.config_file = f + break + else: + log.warning( "global_conf unset or __file__ not in global_conf and " + "not running from source, unable to determine config file, " + "global_conf is: %s", global_conf ) + assert self.config_file is not None, "Unable to determine galaxy config file" + self.config_dir = kwargs.get( 'config_dir', os.path.dirname( self.config_file ) ) + self.data_dir = kwargs.get( 'data_dir', None ) + # mutable_config_dir is intentionally not configurable. You can + # override individual mutable configs with config options, but they + # should be considered Galaxy-controlled data files and will by default + # just live in the data dir + if self.running_from_source: + if self.data_dir is None: + self.data_dir = os.path.join( self.root, 'config', 'database' ) + self.mutable_config_dir = self.config_dir + self.shed_tools_dir = "../shed_tools" + else: + if self.data_dir is None: + self.data_dir = os.path.join( self.config_dir, 'data' ) + self.mutable_config_dir = os.path.join( self.data_dir, 'config' ) + self.shed_tools_dir = os.path.join( self.data_dir, 'shed_tools' ) + log.debug( "Configuration directory is %s", self.config_dir ) + log.debug( "Data directory is %s", self.data_dir ) + + self.sample_config_dir = os.path.join( os.path.dirname( __file__ ), 'sample' ) + + # Configs no longer read from samples + self.migrated_tools_config = resolve_path( kwargs.get( 'migrated_tools_conf', 'migrated_tools_conf.xml' ), self.mutable_config_dir ) + # Resolve paths of other config files self.__parse_config_file_options( kwargs ) @@ -64,8 +108,8 @@ class Configuration( object ): self.version_major = VERSION_MAJOR # Database related configuration - self.database = resolve_path( kwargs.get( "database_file", "database/universe.sqlite" ), self.root ) - self.database_connection = kwargs.get( "database_connection", False ) + self.database_connection = kwargs.get( "database_connection", + "sqlite:///%s?isolation_level=IMMEDIATE" % resolve_path( "universe.sqlite", self.data_dir ) ) self.database_engine_options = get_database_engine_options( kwargs ) self.database_create_tables = string_as_bool( kwargs.get( "database_create_tables", "True" ) ) self.database_query_profiling_proxy = string_as_bool( kwargs.get( "database_query_profiling_proxy", "False" ) ) @@ -79,7 +123,7 @@ class Configuration( object ): self.install_database_engine_options = get_database_engine_options( kwargs, model_prefix="install_" ) # Where dataset files are stored - self.file_path = resolve_path( kwargs.get( "file_path", "database/files" ), self.root ) + self.file_path = resolve_path( kwargs.get( "file_path", "files" ), self.data_dir ) self.new_file_path = resolve_path( kwargs.get( "new_file_path", "database/tmp" ), self.root ) tempfile.tempdir = self.new_file_path self.openid_consumer_cache_path = resolve_path( kwargs.get( "openid_consumer_cache_path", "database/openid_consumer_cache" ), self.root ) @@ -93,8 +137,8 @@ class Configuration( object ): self.builds_file_path = resolve_path( kwargs.get( "builds_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'builds.txt') ), self.root ) self.len_file_path = resolve_path( kwargs.get( "len_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'chrom') ), self.root ) # The value of migrated_tools_config is the file reserved for containing only those tools that have been eliminated from the distribution - # and moved to the tool shed. - self.integrated_tool_panel_config = resolve_path( kwargs.get( 'integrated_tool_panel_config', 'integrated_tool_panel.xml' ), self.root ) + # and moved to the tool shed. It is created on demand. + self.integrated_tool_panel_config = resolve_path( kwargs.get( 'integrated_tool_panel_config', 'integrated_tool_panel.xml' ), self.mutable_config_dir ) integrated_tool_panel_tracking_directory = kwargs.get( 'integrated_tool_panel_tracking_directory', None ) if integrated_tool_panel_tracking_directory: self.integrated_tool_panel_tracking_directory = resolve_path( integrated_tool_panel_tracking_directory, self.root ) @@ -104,6 +148,7 @@ class Configuration( object ): self.tool_filters = listify( kwargs.get( "tool_filters", [] ), do_strip=True ) self.tool_label_filters = listify( kwargs.get( "tool_label_filters", [] ), do_strip=True ) self.tool_section_filters = listify( kwargs.get( "tool_section_filters", [] ), do_strip=True ) + self.tool_sheds_config_file = resolve_path( kwargs.get( "tool_sheds_config_file", "tool_sheds_conf.xml" ), self.config_dir ) self.user_tool_filters = listify( kwargs.get( "user_tool_filters", [] ), do_strip=True ) self.user_label_filters = listify( kwargs.get( "user_tool_label_filters", [] ), do_strip=True ) @@ -312,13 +357,12 @@ class Configuration( object ): self.tool_help_boost = kwargs.get( "tool_help_boost", 0.5 ) self.tool_search_limit = kwargs.get( "tool_search_limit", 20 ) # Location for tool dependencies. - # Location for tool dependencies. - tool_dependency_dir = kwargs.get( "tool_dependency_dir", "database/dependencies" ) + tool_dependency_dir = kwargs.get( "tool_dependency_dir", "dependencies" ) if tool_dependency_dir.lower() == "none": tool_dependency_dir = None if tool_dependency_dir is not None: - self.tool_dependency_dir = resolve_path( tool_dependency_dir, self.root ) + self.tool_dependency_dir = resolve_path( tool_dependency_dir, self.data_dir ) # Setting the following flag to true will ultimately cause tool dependencies # to be located in the shell environment and used by the job that is executing # the tool. @@ -362,13 +406,10 @@ class Configuration( object ): self.irods_root_collection_path = kwargs.get( 'irods_root_collection_path', None ) self.irods_default_resource = kwargs.get( 'irods_default_resource', None ) # Parse global_conf and save the parser - global_conf = kwargs.get( 'global_conf', None ) global_conf_parser = configparser.ConfigParser() - self.config_file = None self.global_conf_parser = global_conf_parser - if global_conf and "__file__" in global_conf: - self.config_file = global_conf['__file__'] - global_conf_parser.read(global_conf['__file__']) + if self.config_file is not None: + global_conf_parser.read(self.config_file) # Heartbeat log file name override if global_conf is not None and 'heartbeat_log' in global_conf: self.heartbeat_log = global_conf['heartbeat_log'] @@ -436,7 +477,7 @@ class Configuration( object ): elif 'database_connection' in kwargs: self.amqp_internal_connection = "sqlalchemy+" + self.database_connection else: - self.amqp_internal_connection = "sqlalchemy+sqlite:///%s?isolation_level=IMMEDIATE" % resolve_path( "database/control.sqlite", self.root ) + self.amqp_internal_connection = "sqlalchemy+sqlite:///%s?isolation_level=IMMEDIATE" % resolve_path( "control.sqlite", self.data_dir ) self.biostar_url = kwargs.get( 'biostar_url', None ) self.biostar_key_name = kwargs.get( 'biostar_key_name', None ) self.biostar_key = kwargs.get( 'biostar_key', None ) @@ -494,6 +535,19 @@ class Configuration( object ): self.citation_cache_data_dir = self.resolve_path( kwargs.get( "citation_cache_data_dir", "database/citations/data" ) ) self.citation_cache_lock_dir = self.resolve_path( kwargs.get( "citation_cache_lock_dir", "database/citations/locks" ) ) + @property + def running_from_source( self ): + if self.__running_from_source is None: + try: + # is there a better way to do this? + assert os.path.exists( 'run.sh' ) + assert os.path.exists( 'lib/galaxy/__init__.py' ) + assert os.path.exists( 'scripts/common_startup.sh' ) + self.__running_from_source = True + except AssertionError: + self.__running_from_source = False + return self.__running_from_source + @property def sentry_dsn_public( self ): """ @@ -516,25 +570,32 @@ class Configuration( object ): if explicit: log.warning("Sanitize log file explicitly specified as '%s' but does not exist, continuing with no tools whitelisted.", self.sanitize_whitelist_file) + def __in_mutable_config_dir( self, path ): + return os.path.join( self.mutable_config_dir, path ) + + def __in_config_dir( self, path ): + return os.path.join( self.config_dir, path ) + + def __in_sample_dir( self, path ): + return os.path.join( self.sample_config_dir, path ) + def __parse_config_file_options( self, kwargs ): """ Backwards compatibility for config files moved to the config/ dir. """ defaults = dict( - auth_config_file=[ 'config/auth_conf.xml', 'config/auth_conf.xml.sample' ], + auth_config_file=[ self.__in_config_dir( 'auth_conf.xml' ) ], data_manager_config_file=[ 'config/data_manager_conf.xml', 'data_manager_conf.xml', 'config/data_manager_conf.xml.sample' ], - datatypes_config_file=[ 'config/datatypes_conf.xml', 'datatypes_conf.xml', 'config/datatypes_conf.xml.sample' ], + datatypes_config_file=[ self.__in_config_dir( 'datatypes_conf.xml' ), self.__in_sample_dir( 'datatypes_conf.xml.sample' ) ], external_service_type_config_file=[ 'config/external_service_types_conf.xml', 'external_service_types_conf.xml', 'config/external_service_types_conf.xml.sample' ], job_config_file=[ 'config/job_conf.xml', 'job_conf.xml' ], job_metrics_config_file=[ 'config/job_metrics_conf.xml', 'job_metrics_conf.xml', 'config/job_metrics_conf.xml.sample' ], dependency_resolvers_config_file=[ 'config/dependency_resolvers_conf.xml', 'dependency_resolvers_conf.xml' ], job_resource_params_file=[ 'config/job_resource_params_conf.xml', 'job_resource_params_conf.xml' ], - migrated_tools_config=[ 'migrated_tools_conf.xml', 'config/migrated_tools_conf.xml' ], object_store_config_file=[ 'config/object_store_conf.xml', 'object_store_conf.xml' ], openid_config_file=[ 'config/openid_conf.xml', 'openid_conf.xml', 'config/openid_conf.xml.sample' ], shed_data_manager_config_file=[ 'shed_data_manager_conf.xml', 'config/shed_data_manager_conf.xml' ], shed_tool_data_table_config=[ 'shed_tool_data_table_conf.xml', 'config/shed_tool_data_table_conf.xml' ], - tool_sheds_config_file=[ 'config/tool_sheds_conf.xml', 'tool_sheds_conf.xml', 'config/tool_sheds_conf.xml.sample' ], workflow_schedulers_config_file=['config/workflow_schedulers_conf.xml', 'config/workflow_schedulers_conf.xml.sample'], ) @@ -559,6 +620,7 @@ class Configuration( object ): for var, defaults in defaults.items(): if kwargs.get( var, None ) is not None: path = kwargs.get( var ) + setattr( self, var + '_set', True ) else: for default in defaults: if os.path.exists( resolve_path( default, self.root ) ): @@ -566,6 +628,7 @@ class Configuration( object ): break else: path = defaults[-1] + setattr( self, var + '_set', False ) setattr( self, var, resolve_path( path, self.root ) ) for var, defaults in listify_defaults.items(): @@ -643,7 +706,9 @@ class Configuration( object ): raise ConfigurationError( "Unable to create missing directory: %s\n%s" % ( path, e ) ) def check( self ): - paths_to_check = [ self.root, self.tool_path, self.tool_data_path, self.template_path ] + paths_to_check = [ self.root, self.tool_path, self.tool_data_path, + self.template_path, self.data_dir, + self.mutable_config_dir ] # Check that required directories exist for path in paths_to_check: if path not in [ None, False ] and not os.path.isdir( path ): @@ -662,7 +727,7 @@ class Configuration( object ): self._ensure_directory( path ) # Check that required files exist tool_configs = self.tool_configs - if self.migrated_tools_config not in tool_configs: + if self.migrated_tools_config not in tool_configs and os.path.exists( self.migrated_tools_config ): tool_configs.append( self.migrated_tools_config ) for path in tool_configs: if not os.path.exists( path ): @@ -887,18 +952,15 @@ class ConfiguresGalaxyMixin: # Set up the tool sheds registry if os.path.isfile( self.config.tool_sheds_config_file ): - self.tool_shed_registry = tool_shed.tool_shed_registry.Registry( self.config.root, self.config.tool_sheds_config_file ) + self.tool_shed_registry = tool_shed.tool_shed_registry.Registry( self.config.tool_sheds_config_file ) else: - self.tool_shed_registry = None + self.tool_shed_registry = tool_shed.tool_shed_registry.Registry() def _configure_models( self, check_migrate_databases=False, check_migrate_tools=False, config_file=None ): """ Preconditions: object_store must be set on self. """ - if self.config.database_connection: - db_url = self.config.database_connection - else: - db_url = "sqlite:///%s?isolation_level=IMMEDIATE" % self.config.database + db_url = self.config.database_connection install_db_url = self.config.install_database_connection # TODO: Consider more aggressive check here that this is not the same # database file under the hood. diff --git a/lib/tool_shed/galaxy_install/migrate/check.py b/lib/tool_shed/galaxy_install/migrate/check.py index fc2ad614b2a..6319bcdd266 100644 --- a/lib/tool_shed/galaxy_install/migrate/check.py +++ b/lib/tool_shed/galaxy_install/migrate/check.py @@ -58,7 +58,9 @@ def verify_tools( app, url, galaxy_config_file=None, engine_options={} ): config_arg = '' if galaxy_config_file: config_arg = " -c %s" % galaxy_config_file - cmd = 'sh manage_tools.sh%s upgrade' % config_arg + # FIXME: this doesn't seem right. + manage_tools = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'scripts', 'manage_tools.py' ) ) + cmd = 'python %s%s upgrade' % (manage_tools, config_arg) proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ) return_code = proc.wait() output = proc.stdout.read( 32768 ) diff --git a/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py b/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py index 5d17e41347f..961d759c3a1 100644 --- a/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py +++ b/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py @@ -5,7 +5,7 @@ from ConfigParser import SafeConfigParser from migrate.versioning.shell import main -sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'lib'))) +sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir, os.pardir))) from galaxy.model.orm.scripts import read_config_file_arg from galaxy.util.properties import load_app_properties @@ -16,7 +16,7 @@ config_file = read_config_file_arg( sys.argv, 'config/galaxy.ini', 'universe_wsg if not os.path.exists( config_file ): print "Galaxy config file does not exist (hint: use '-c config.ini' for non-standard locations): %s" % config_file sys.exit( 1 ) -repo = 'lib/tool_shed/galaxy_install/migrate' +repo = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) properties = load_app_properties( ini_file=config_file ) cp = SafeConfigParser() @@ -29,9 +29,9 @@ elif "install_database_connection" in properties: db_url = properties[ "install_database_connection" ] elif "database_connection" in properties: db_url = properties[ "database_connection" ] -elif "database_file" in properties: - db_url = "sqlite:///%s?isolation_level=IMMEDIATE" % properties[ "database_file" ] -else: +elif os.path.exists('run.sh'): db_url = "sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE" +else: + db_url = "sqlite:///./data/universe.sqlite?isolation_level=IMMEDIATE" main( repository=repo, url=db_url ) diff --git a/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py b/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py index 0872417e109..461fab22fdc 100644 --- a/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py +++ b/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py @@ -10,7 +10,7 @@ shed repository but not defined in tool_conf.xml. import os import sys -sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, 'lib'))) +sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir, os.pardir))) from tool_shed.galaxy_install.migrate.common import MigrateToolsApplication diff --git a/lib/tool_shed/galaxy_install/tool_migration_manager.py b/lib/tool_shed/galaxy_install/tool_migration_manager.py index 39c33470230..d92d346ec7a 100644 --- a/lib/tool_shed/galaxy_install/tool_migration_manager.py +++ b/lib/tool_shed/galaxy_install/tool_migration_manager.py @@ -2,6 +2,7 @@ Manage automatic installation of tools configured in the xxx.xml files in ~/scripts/migrate_tools (e.g., 0002_tools.xml). All of the tools were at some point included in the Galaxy distribution, but are now hosted in the main Galaxy tool shed. """ +import errno import json import os import shutil @@ -34,6 +35,12 @@ from tool_shed.util import xml_util log = logging.getLogger( __name__ ) +MIGRATED_TOOLS_CONF_XML = """ + + +""" + + class ToolMigrationManager( object ): def __init__( self, app, latest_migration_script_number, tool_shed_install_config, migrated_tools_config, @@ -62,7 +69,15 @@ class ToolMigrationManager( object ): self.proprietary_tool_panel_elems = self.get_proprietary_tool_panel_elems( latest_migration_script_number ) # Set the location where the repositories will be installed by retrieving the tool_path # setting from migrated_tools_config. - tree, error_message = xml_util.parse_xml( migrated_tools_config ) + try: + tree, error_message = xml_util.parse_xml( migrated_tools_config ) + except (IOError, OSError) as exc: + if exc.errno == errno.ENOENT: + with open( migrated_tools_config, 'w' ) as fh: + fh.write( MIGRATED_TOOLS_CONF_XML.format( shed_tools_dir=self.app.config.shed_tools_dir ) ) + tree, error_message = xml_util.parse_xml( migrated_tools_config ) + else: + raise if tree is None: log.error( error_message ) else: diff --git a/lib/tool_shed/tool_shed_registry.py b/lib/tool_shed/tool_shed_registry.py index 56023004923..4ee88748221 100644 --- a/lib/tool_shed/tool_shed_registry.py +++ b/lib/tool_shed/tool_shed_registry.py @@ -1,4 +1,5 @@ import logging +import xml.etree.ElementTree from galaxy.util.odict import odict from tool_shed.util import common_util, xml_util @@ -6,36 +7,45 @@ from six.moves.urllib import request as urlrequest log = logging.getLogger( __name__ ) +DEFAULT_TOOL_SHEDS_CONF_XML = """ + + + +""" + class Registry( object ): - def __init__( self, root_dir=None, config=None ): + def __init__( self, config=None ): self.tool_sheds = odict() self.tool_sheds_auth = odict() - if root_dir and config: + if config: # Parse tool_sheds_conf.xml tree, error_message = xml_util.parse_xml( config ) if tree is None: log.warning( "Unable to load references to tool sheds defined in file %s" % str( config ) ) - else: - root = tree.getroot() - log.debug( 'Loading references to tool sheds from %s' % config ) - for elem in root.findall( 'tool_shed' ): - try: - name = elem.get( 'name', None ) - url = elem.get( 'url', None ) - username = elem.get( 'user', None ) - password = elem.get( 'pass', None ) - if name and url: - self.tool_sheds[ name ] = url - self.tool_sheds_auth[ name ] = None - log.debug( 'Loaded reference to tool shed: %s' % name ) - if name and url and username and password: - pass_mgr = urlrequest.HTTPPasswordMgrWithDefaultRealm() - pass_mgr.add_password( None, url, username, password ) - self.tool_sheds_auth[ name ] = pass_mgr - except Exception as e: - log.warning( 'Error loading reference to tool shed "%s", problem: %s' % ( name, str( e ) ) ) + return + root = tree.getroot() + else: + root = xml.etree.ElementTree.fromstring( DEFAULT_TOOL_SHEDS_CONF_XML ) + config = "internal default config" + log.debug( 'Loading references to tool sheds from %s' % config ) + for elem in root.findall( 'tool_shed' ): + try: + name = elem.get( 'name', None ) + url = elem.get( 'url', None ) + username = elem.get( 'user', None ) + password = elem.get( 'pass', None ) + if name and url: + self.tool_sheds[ name ] = url + self.tool_sheds_auth[ name ] = None + log.debug( 'Loaded reference to tool shed: %s' % name ) + if name and url and username and password: + pass_mgr = urlrequest.HTTPPasswordMgrWithDefaultRealm() + pass_mgr.add_password( None, url, username, password ) + self.tool_sheds_auth[ name ] = pass_mgr + except Exception as e: + log.warning( 'Error loading reference to tool shed "%s", problem: %s' % ( name, str( e ) ) ) def password_manager_for_url( self, url ): """ diff --git a/lib/tool_shed/util/common_util.py b/lib/tool_shed/util/common_util.py index 0302227c312..b213823c51f 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/tool_shed/util/common_util.py @@ -23,7 +23,10 @@ def accumulate_tool_dependencies( tool_shed_accessible, tool_dependencies, all_t def check_for_missing_tools( app, tool_panel_configs, latest_tool_migration_script_number ): # Get the 000x_tools.xml file associated with the current migrate_tools version number. - tools_xml_file_path = os.path.abspath( os.path.join( 'scripts', 'migrate_tools', '%04d_tools.xml' % latest_tool_migration_script_number ) ) + tools_xml_file_path = os.path.abspath( os.path.join( os.path.dirname( __file__ ), + os.pardir, 'galaxy_install', + 'migrate', 'scripts', + '%04d_tools.xml' % latest_tool_migration_script_number) ) # Parse the XML and load the file attributes for later checking against the proprietary tool_panel_config. migrated_tool_configs_dict = odict() tree, error_message = xml_util.parse_xml( tools_xml_file_path ) diff --git a/manage_tools.sh b/manage_tools.sh index 67473f99782..d30bbebc284 100644 --- a/manage_tools.sh +++ b/manage_tools.sh @@ -9,4 +9,4 @@ then fi cd `dirname $0` -python ./scripts/manage_tools.py $@ +python ./lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py $@ diff --git a/setup.py b/setup.py index 5cb64670288..ed34ea59917 100644 --- a/setup.py +++ b/setup.py @@ -43,9 +43,11 @@ setup( 'tools/imp_exp/exp_history_to_archive.xml', 'model/migrate/migrate.cfg', 'dependencies/*.txt', + 'util/docutils_template.txt', ], 'tool_shed': [ 'galaxy_install/migrate/migrate.cfg', + 'galaxy_install/migrate/scripts/*', 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', 'scripts/bootstrap_tool_shed/user_info.xml', From 04f4584e5995b13ff8357606c08f771bd4d74388 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 11:21:08 -0400 Subject: [PATCH 012/141] Fix tests --- config/migrated_tools_conf.xml.sample | 3 --- config/shed_tool_conf.xml.sample | 3 --- {config => lib/galaxy/config/sample}/tool_conf.xml.sample | 0 lib/galaxy/datatypes/sniff.py | 2 +- lib/galaxy/util/__init__.py | 7 ++++++- setup.py | 3 --- 6 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 config/migrated_tools_conf.xml.sample delete mode 100644 config/shed_tool_conf.xml.sample rename {config => lib/galaxy/config/sample}/tool_conf.xml.sample (100%) diff --git a/config/migrated_tools_conf.xml.sample b/config/migrated_tools_conf.xml.sample deleted file mode 100644 index 64252819052..00000000000 --- a/config/migrated_tools_conf.xml.sample +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/config/shed_tool_conf.xml.sample b/config/shed_tool_conf.xml.sample deleted file mode 100644 index 31ca79b8421..00000000000 --- a/config/shed_tool_conf.xml.sample +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/config/tool_conf.xml.sample b/lib/galaxy/config/sample/tool_conf.xml.sample similarity index 100% rename from config/tool_conf.xml.sample rename to lib/galaxy/config/sample/tool_conf.xml.sample diff --git a/lib/galaxy/datatypes/sniff.py b/lib/galaxy/datatypes/sniff.py index 609a46c6419..53687d824ae 100644 --- a/lib/galaxy/datatypes/sniff.py +++ b/lib/galaxy/datatypes/sniff.py @@ -263,7 +263,7 @@ def guess_ext( fname, sniff_order, is_multi_byte=False ): >>> fname = get_test_fname('megablast_xml_parser_test1.blastxml') >>> from galaxy.datatypes import registry - >>> sample_conf = os.path.join(util.galaxy_directory(), "config", "datatypes_conf.xml.sample") + >>> sample_conf = os.path.join(util.galaxy_samples_directory(), "datatypes_conf.xml.sample") >>> datatypes_registry = registry.Registry() >>> datatypes_registry.load_datatypes(root_dir=util.galaxy_directory(), config=sample_conf) >>> sniff_order = datatypes_registry.sniff_order diff --git a/lib/galaxy/util/__init__.py b/lib/galaxy/util/__init__.py index be3172b0ffa..13d8f2a68a9 100644 --- a/lib/galaxy/util/__init__.py +++ b/lib/galaxy/util/__init__.py @@ -1350,13 +1350,18 @@ def safe_str_cmp(a, b): rv |= ord(x) ^ ord(y) return rv == 0 -galaxy_root_path = os.path.join(__path__[0], "..", "..", "..") +galaxy_root_path = os.path.join(__path__[0], os.pardir, os.pardir, os.pardir) +galaxy_samples_path = os.path.join(__path__[0], os.pardir, 'config', 'sample') def galaxy_directory(): return os.path.abspath(galaxy_root_path) +def galaxy_samples_directory(): + return os.path.abspath(galaxy_samples_path) + + def config_directories_from_setting( directories_setting, galaxy_root=galaxy_root_path ): """ Parse the ``directories_setting`` into a list of relative or absolute diff --git a/setup.py b/setup.py index ed34ea59917..5eba845a6b2 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,3 @@ -import os -import sys - from setuptools import setup, find_packages From 404dcbc1040ae301f480adb7d1999f0af0bd99a9 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 15:51:16 -0400 Subject: [PATCH 013/141] Handle the following files for "installed" galaxy: - config/data_manager_conf.xml - config/external_service_types_conf.xml - config/shed_data_manager_conf.xml - config/shed_tool_data_table_conf.xml - config/shed_data_manager_conf.xml - config/tool_data_table_conf.xml - config/workflow_schedulers_conf.xml - tool-data (for shed-installed data tables) shed_* are now created on demand when shed things are installed. Installed Galaxy can now be started from outside the Galaxy root with just a galaxy.ini. Some features will still be broken (static dbkeys, display build sites). Some (dependency resolvers) are broken just because I haven't gotten to fixing paths yet and will be easy to fix, others (dbkeys) are more complicated because of complex paths and relative-to-galaxy-root defaults (in datatypes_conf.xml). --- config/data_manager_conf.xml.sample | 3 -- config/shed_data_manager_conf.xml.sample | 3 -- config/shed_tool_data_table_conf.xml.sample | 3 -- lib/galaxy/auth/__init__.py | 5 ++- lib/galaxy/config/__init__.py | 43 +++++++++++++++---- .../external_service_types_conf.xml.sample | 0 .../sample}/tool_data_table_conf.xml.sample | 36 ++++++++-------- .../workflow_schedulers_conf.xml.sample | 0 .../sample_tracking/external_service_types.py | 13 +++++- lib/galaxy/tools/data/__init__.py | 28 ++++++++++-- lib/galaxy/tools/data_manager/manager.py | 4 ++ lib/galaxy/tools/toolbox/base.py | 22 +++++++++- lib/galaxy/workflow/scheduling_manager.py | 4 +- .../galaxy_install/tools/data_manager.py | 16 ++++++- .../tools/tool_panel_manager.py | 11 ++++- lib/tool_shed/util/common_util.py | 7 ++- 16 files changed, 148 insertions(+), 50 deletions(-) delete mode 100644 config/data_manager_conf.xml.sample delete mode 100644 config/shed_data_manager_conf.xml.sample delete mode 100644 config/shed_tool_data_table_conf.xml.sample rename {config => lib/galaxy/config/sample}/external_service_types_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/tool_data_table_conf.xml.sample (75%) rename {config => lib/galaxy/config/sample}/workflow_schedulers_conf.xml.sample (100%) diff --git a/config/data_manager_conf.xml.sample b/config/data_manager_conf.xml.sample deleted file mode 100644 index 04b4637c390..00000000000 --- a/config/data_manager_conf.xml.sample +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/config/shed_data_manager_conf.xml.sample b/config/shed_data_manager_conf.xml.sample deleted file mode 100644 index 04b4637c390..00000000000 --- a/config/shed_data_manager_conf.xml.sample +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/config/shed_tool_data_table_conf.xml.sample b/config/shed_tool_data_table_conf.xml.sample deleted file mode 100644 index fd376e4ed3b..00000000000 --- a/config/shed_tool_data_table_conf.xml.sample +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/lib/galaxy/auth/__init__.py b/lib/galaxy/auth/__init__.py index 80a802377d4..822ab1ad505 100644 --- a/lib/galaxy/auth/__init__.py +++ b/lib/galaxy/auth/__init__.py @@ -2,6 +2,7 @@ Contains implementations of the authentication logic. """ +import errno import logging import xml.etree.ElementTree from collections import namedtuple @@ -34,8 +35,8 @@ class AuthManager(object): try: ct = xml.etree.ElementTree.parse(auth_config_file) conf_root = ct.getroot() - except (OSError, IOError): - if not app.config.auth_config_file_set: + except (OSError, IOError) as exc: + if exc.errno == errno.ENOENT and not app.config.auth_config_file_set: conf_root = xml.etree.ElementTree.fromstring(AUTH_CONF_XML) else: raise diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 2d20b226b05..8de20500e2e 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -4,6 +4,7 @@ Universe configuration builder. # absolute_import needed for tool_shed package. from __future__ import absolute_import +import errno import logging import logging.config import os @@ -97,6 +98,9 @@ class Configuration( object ): # Configs no longer read from samples self.migrated_tools_config = resolve_path( kwargs.get( 'migrated_tools_conf', 'migrated_tools_conf.xml' ), self.mutable_config_dir ) + self.shed_tool_conf = resolve_path( kwargs.get( 'shed_tool_conf', 'shed_tool_conf.xml' ), self.mutable_config_dir ) + for name in ( 'migrated_tools_config', 'shed_tool_conf' ): + setattr( self, name + '_set', kwargs.get( name, None ) is not None ) # Resolve paths of other config files self.__parse_config_file_options( kwargs ) @@ -134,6 +138,8 @@ class Configuration( object ): self.enable_unique_workflow_defaults = string_as_bool( kwargs.get( 'enable_unique_workflow_defaults', False ) ) self.tool_path = resolve_path( kwargs.get( "tool_path", "tools" ), self.root ) self.tool_data_path = resolve_path( kwargs.get( "tool_data_path", "tool-data" ), os.getcwd() ) + if not self.running_from_source and kwargs.get( "tool_data_path", None ) is None: + self.tool_data_path = resolve_path( "tool-data", self.data_dir ) self.builds_file_path = resolve_path( kwargs.get( "builds_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'builds.txt') ), self.root ) self.len_file_path = resolve_path( kwargs.get( "len_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'chrom') ), self.root ) # The value of migrated_tools_config is the file reserved for containing only those tools that have been eliminated from the distribution @@ -585,18 +591,18 @@ class Configuration( object ): """ defaults = dict( auth_config_file=[ self.__in_config_dir( 'auth_conf.xml' ) ], - data_manager_config_file=[ 'config/data_manager_conf.xml', 'data_manager_conf.xml', 'config/data_manager_conf.xml.sample' ], + data_manager_config_file=[ self.__in_config_dir( 'data_manager_conf.xml' ) ], datatypes_config_file=[ self.__in_config_dir( 'datatypes_conf.xml' ), self.__in_sample_dir( 'datatypes_conf.xml.sample' ) ], - external_service_type_config_file=[ 'config/external_service_types_conf.xml', 'external_service_types_conf.xml', 'config/external_service_types_conf.xml.sample' ], + external_service_type_config_file=[ self.__in_config_dir( 'external_service_types_conf.xml' ) ], job_config_file=[ 'config/job_conf.xml', 'job_conf.xml' ], job_metrics_config_file=[ 'config/job_metrics_conf.xml', 'job_metrics_conf.xml', 'config/job_metrics_conf.xml.sample' ], dependency_resolvers_config_file=[ 'config/dependency_resolvers_conf.xml', 'dependency_resolvers_conf.xml' ], job_resource_params_file=[ 'config/job_resource_params_conf.xml', 'job_resource_params_conf.xml' ], object_store_config_file=[ 'config/object_store_conf.xml', 'object_store_conf.xml' ], openid_config_file=[ 'config/openid_conf.xml', 'openid_conf.xml', 'config/openid_conf.xml.sample' ], - shed_data_manager_config_file=[ 'shed_data_manager_conf.xml', 'config/shed_data_manager_conf.xml' ], - shed_tool_data_table_config=[ 'shed_tool_data_table_conf.xml', 'config/shed_tool_data_table_conf.xml' ], - workflow_schedulers_config_file=['config/workflow_schedulers_conf.xml', 'config/workflow_schedulers_conf.xml.sample'], + shed_data_manager_config_file=[ self.__in_mutable_config_dir( 'shed_data_manager_conf.xml' ) ], + shed_tool_data_table_config=[ self.__in_mutable_config_dir( 'shed_tool_data_table_conf.xml' ) ], + workflow_schedulers_config_file=[ self.__in_config_dir( 'config/workflow_schedulers_conf.xml' ) ], ) listify_defaults = dict( @@ -617,6 +623,14 @@ class Configuration( object ): 'config/tool_conf.xml.sample,config/shed_tool_conf.xml' ] ) + if not self.running_from_source: + listify_defaults['tool_data_table_config_path'] = [ + self.__in_config_dir( 'tool_data_table_conf.xml' ), + self.__in_sample_dir( 'tool_data_table_conf.xml.sample' ) ] + listify_defaults['tool_config_file'] = [ + self.__in_config_dir( 'tool_conf.xml' ), + self.__in_sample_dir( 'tool_conf.xml.sample' ) ] + for var, defaults in defaults.items(): if kwargs.get( var, None ) is not None: path = kwargs.get( var ) @@ -647,6 +661,12 @@ class Configuration( object ): paths = listify( defaults[-1] ) setattr( self, var, [ resolve_path( x, self.root ) for x in paths ] ) + # If the user has configured a shed tool config in tool_config_file + # this would add a second, but since we're not parsing them yet we + # don't know if that's the case. + if not self.running_from_source and self.shed_tool_conf not in self.tool_config_file: + self.tool_config_file.append( self.shed_tool_conf ) + # Backwards compatibility for names used in too many places to fix self.datatypes_config = self.datatypes_config_file self.tool_configs = self.tool_config_file @@ -730,7 +750,7 @@ class Configuration( object ): if self.migrated_tools_config not in tool_configs and os.path.exists( self.migrated_tools_config ): tool_configs.append( self.migrated_tools_config ) for path in tool_configs: - if not os.path.exists( path ): + if not os.path.exists( path ) and path != self.shed_tool_conf: raise ConfigurationError("Tool config file not found: %s" % path ) for datatypes_config in listify( self.datatypes_config ): if not os.path.isfile( datatypes_config ): @@ -915,9 +935,14 @@ class ConfiguresGalaxyMixin: self.tool_data_tables = ToolDataTableManager( tool_data_path=self.config.tool_data_path, config_filename=self.config.tool_data_table_config_path ) # Load additional entries defined by self.config.shed_tool_data_table_config into tool data tables. - self.tool_data_tables.load_from_config_file( config_filename=self.config.shed_tool_data_table_config, - tool_data_path=self.tool_data_tables.tool_data_path, - from_shed_config=from_shed_config ) + try: + self.tool_data_tables.load_from_config_file( config_filename=self.config.shed_tool_data_table_config, + tool_data_path=self.tool_data_tables.tool_data_path, + from_shed_config=from_shed_config ) + except (OSError, IOError) as exc: + # Missing shed_tool_data_table_config is okay if it's the default + if exc.errno != errno.ENOENT or self.config.shed_tool_data_table_config_set: + raise def _configure_datatypes_registry( self, installed_repository_manager=None ): from galaxy.datatypes import registry diff --git a/config/external_service_types_conf.xml.sample b/lib/galaxy/config/sample/external_service_types_conf.xml.sample similarity index 100% rename from config/external_service_types_conf.xml.sample rename to lib/galaxy/config/sample/external_service_types_conf.xml.sample diff --git a/config/tool_data_table_conf.xml.sample b/lib/galaxy/config/sample/tool_data_table_conf.xml.sample similarity index 75% rename from config/tool_data_table_conf.xml.sample rename to lib/galaxy/config/sample/tool_data_table_conf.xml.sample index 62917970e41..a25afdf41c3 100644 --- a/config/tool_data_table_conf.xml.sample +++ b/lib/galaxy/config/sample/tool_data_table_conf.xml.sample @@ -1,69 +1,69 @@ - + value, dbkey, name, path - +
value, dbkey, formats, name, path - +
value, name, path - +
value, dbkey, name, path - +
value, dbkey, name, path - +
name, value, dbkey, species - +
value, dbkey, name, path - +
value, name, path - +
value, name, path - +
value, dbkey, name, path - +
value, dbkey, name, path - +
value, dbkey, name, path - +
value, path - +
@@ -73,21 +73,21 @@
dbkey, name, value - +
value, name, url - +
value, name, url - +
value, name, url - +
diff --git a/config/workflow_schedulers_conf.xml.sample b/lib/galaxy/config/sample/workflow_schedulers_conf.xml.sample similarity index 100% rename from config/workflow_schedulers_conf.xml.sample rename to lib/galaxy/config/sample/workflow_schedulers_conf.xml.sample diff --git a/lib/galaxy/sample_tracking/external_service_types.py b/lib/galaxy/sample_tracking/external_service_types.py index 1e52efc20d0..956b4b7418b 100644 --- a/lib/galaxy/sample_tracking/external_service_types.py +++ b/lib/galaxy/sample_tracking/external_service_types.py @@ -1,10 +1,14 @@ +import errno import os import logging + from galaxy.util.odict import odict from galaxy import util, model from galaxy.forms.forms import form_factory from galaxy.external_services.service import ExternalServiceActionsGroup from galaxy.sample_tracking.data_transfer import data_transfer_factories + + log = logging.getLogger( __name__ ) @@ -25,8 +29,13 @@ class ExternalServiceTypesCollection( object ): def load_all( self, config_filename ): self.visible_external_service_types = [] - tree = util.parse_xml( config_filename ) - root = tree.getroot() + try: + tree = util.parse_xml( config_filename ) + root = tree.getroot() + except (OSError, IOError) as exc: + if exc.errno != errno.ENOENT or self.app.config.external_service_type_config_file_set: + raise + root = [] for elem in root: try: if elem.tag == 'external_service_type': diff --git a/lib/galaxy/tools/data/__init__.py b/lib/galaxy/tools/data/__init__.py index cd287a84a32..661a0c72521 100644 --- a/lib/galaxy/tools/data/__init__.py +++ b/lib/galaxy/tools/data/__init__.py @@ -6,6 +6,7 @@ users to configure data tables for a local Galaxy instance without needing to modify the tool configurations. """ +import errno import logging import os import os.path @@ -26,11 +27,16 @@ log = logging.getLogger( __name__ ) DEFAULT_TABLE_TYPE = 'tabular' +TOOL_DATA_TABLE_CONF_XML = """ + + +""" + class ToolDataTableManager( object ): """Manages a collection of tool data tables""" - def __init__( self, tool_data_path, config_filename=None ): + def __init__( self, tool_data_path, config_filename=None, tool_data_table_config_path_set=None ): self.tool_data_path = tool_data_path # This stores all defined data table entries from both the tool_data_table_conf.xml file and the shed_tool_data_table_conf.xml file # at server startup. If tool shed repositories are installed that contain a valid file named tool_data_table_conf.xml.sample, entries @@ -141,12 +147,20 @@ class ToolDataTableManager( object ): full_path = os.path.abspath( shed_tool_data_table_config ) # FIXME: we should lock changing this file by other threads / head nodes try: - tree = util.parse_xml( full_path ) + try: + tree = util.parse_xml( full_path ) + except (OSError, IOError) as exc: + if exc.errno == errno.ENOENT: + with open( full_path, 'w' ) as fh: + fh.write( TOOL_DATA_TABLE_CONF_XML ) + tree = util.parse_xml( full_path ) + else: + raise root = tree.getroot() out_elems = [ elem for elem in root ] - except Exception as e: + except Exception as exc: out_elems = [] - log.debug( 'Could not parse existing tool data table config, assume no existing elements: %s', e ) + log.debug( 'Could not parse existing tool data table config, assume no existing elements: %s', exc ) for elem in remove_elems: # handle multiple occurrences of remove elem in existing elems while elem in out_elems: @@ -340,6 +354,12 @@ class TabularToolDataTable( ToolDataTable, Dictifiable ): self._update_version() else: self.missing_index_file = filename + # TODO: some data tables need to exist (even if they are empty) + # for tools to load. In an installed Galaxy environment and the + # default tool_data_table_conf.xml, this will emit spurious + # warnings about missing location files that would otherwise be + # empty and we don't care about unless the admin chooses to + # populate them. log.warning( "Cannot find index file '%s' for tool data table '%s'" % ( filename, self.name ) ) if filename not in self.filenames or not self.filenames[ filename ][ 'found' ]: diff --git a/lib/galaxy/tools/data_manager/manager.py b/lib/galaxy/tools/data_manager/manager.py index 086065beca0..354de5b5b99 100644 --- a/lib/galaxy/tools/data_manager/manager.py +++ b/lib/galaxy/tools/data_manager/manager.py @@ -37,6 +37,10 @@ class DataManagers( object ): def load_from_xml( self, xml_filename, store_tool_path=True, replace_existing=False ): try: tree = util.parse_xml( xml_filename ) + except (IOError, OSError) as e: + if e.errno != errno.ENOENT or self.app.config.data_manager_config_file_set: + raise + return # default config option and it doesn't exist, which is fine except Exception as e: log.error( 'There was an error parsing your Data Manager config file "%s": %s' % ( xml_filename, e ) ) return # we are not able to load any data managers diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py index 2a2b998b253..659b2f19e2a 100644 --- a/lib/galaxy/tools/toolbox/base.py +++ b/lib/galaxy/tools/toolbox/base.py @@ -1,3 +1,4 @@ +import errno import logging import os import string @@ -39,6 +40,11 @@ from galaxy.tools.deps import build_dependency_manager log = logging.getLogger( __name__ ) +SHED_TOOL_CONF_XML = """ + + +""" + class AbstractToolBox( Dictifiable, ManagesIntegratedToolPanelMixin, object ): """ @@ -124,7 +130,21 @@ class AbstractToolBox( Dictifiable, ManagesIntegratedToolPanelMixin, object ): """ log.info( "Parsing the tool configuration %s" % config_filename ) - tool_conf_source = get_toolbox_parser(config_filename) + try: + tool_conf_source = get_toolbox_parser(config_filename) + except (OSError, IOError) as exc: + for opt in ('shed_tool_conf', 'migrated_tools_config'): + if (config_filename == getattr( self.app.config, opt ) + and not getattr( self.app.config, opt + '_set' ) + and exc.errno == errno.ENOENT): + log.debug( "Skipping loading missing default config file: %s", config_filename ) + stcd = dict( config_filename=config_filename, + tool_path=self.app.config.shed_tools_dir, + config_elems=[], + create=SHED_TOOL_CONF_XML.format(shed_tools_dir=self.app.config.shed_tools_dir) ) + self._dynamic_tool_confs.append( stcd ) + return + raise tool_path = tool_conf_source.parse_tool_path() parsing_shed_tool_conf = tool_conf_source.is_shed_tool_conf() if parsing_shed_tool_conf: diff --git a/lib/galaxy/workflow/scheduling_manager.py b/lib/galaxy/workflow/scheduling_manager.py index 222b878c22f..71ec00df326 100644 --- a/lib/galaxy/workflow/scheduling_manager.py +++ b/lib/galaxy/workflow/scheduling_manager.py @@ -93,8 +93,8 @@ class WorkflowSchedulingManager( object ): def __init_schedulers( self ): config_file = self.app.config.workflow_schedulers_config_file use_default_scheduler = False - if not config_file: - log.info( "Not workflow schedulers plugin config file defined, using default scheduler." ) + if not config_file or (not os.path.exists( config_file ) and not self.app.config.workflow_schedulers_config_file_set): + log.info( "No workflow schedulers plugin config file defined, using default scheduler." ) use_default_scheduler = True elif not os.path.exists( config_file ): log.info( "Cannot find workflow schedulers plugin config file '%s', using default scheduler." % config_file ) diff --git a/lib/tool_shed/galaxy_install/tools/data_manager.py b/lib/tool_shed/galaxy_install/tools/data_manager.py index 7acf0bec5ca..65a685bba57 100644 --- a/lib/tool_shed/galaxy_install/tools/data_manager.py +++ b/lib/tool_shed/galaxy_install/tools/data_manager.py @@ -1,3 +1,4 @@ +import errno import logging import os import threading @@ -7,6 +8,11 @@ from tool_shed.util import xml_util log = logging.getLogger( __name__ ) +SHED_DATA_MANAGER_CONF_XML = """ + + +""" + class DataManagerHandler( object ): @@ -41,7 +47,15 @@ class DataManagerHandler( object ): for tool_tup in repository_tools_tups: repository_tools_by_guid[ tool_tup[ 1 ] ] = dict( tool_config_filename=tool_tup[ 0 ], tool=tool_tup[ 2 ] ) # Load existing data managers. - tree, error_message = xml_util.parse_xml( shed_data_manager_conf_filename ) + try: + tree, error_message = xml_util.parse_xml( shed_data_manager_conf_filename ) + except (OSError, IOError) as exc: + if exc.errno == errno.ENOENT: + with open( shed_data_manager_conf_filename, 'w' ) as fh: + fh.write( SHED_DATA_MANAGER_CONF_XML ) + tree, error_message = xml_util.parse_xml( shed_data_manager_conf_filename ) + else: + raise if tree is None: return rval config_elems = [ elem for elem in tree.getroot() ] diff --git a/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py b/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py index 204ed0f2749..ac197e5ca2c 100644 --- a/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py +++ b/lib/tool_shed/galaxy_install/tools/tool_panel_manager.py @@ -1,3 +1,4 @@ +import errno import logging import threading @@ -26,7 +27,15 @@ class ToolPanelManager( object ): shed_tool_conf = shed_tool_conf_dict[ 'config_filename' ] tool_path = shed_tool_conf_dict[ 'tool_path' ] config_elems = [] - tree, error_message = xml_util.parse_xml( shed_tool_conf ) + try: + tree, error_message = xml_util.parse_xml( shed_tool_conf ) + except (OSError, IOError) as exc: + if (exc.errno == errno.ENOENT and shed_tool_conf_dict.get( 'create', None ) is not None ): + with open( shed_tool_conf, 'w' ) as fh: + fh.write( shed_tool_conf_dict['create'] ) + tree, error_message = xml_util.parse_xml( shed_tool_conf ) + else: + raise if tree: root = tree.getroot() for elem in root: diff --git a/lib/tool_shed/util/common_util.py b/lib/tool_shed/util/common_util.py index b213823c51f..7779e7c96b3 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/tool_shed/util/common_util.py @@ -144,7 +144,12 @@ def get_non_shed_tool_panel_configs( app ): for config_filename in app.config.tool_configs: # Any config file that includes a tool_path attribute in the root tag set like the following is shed-related. # - tree, error_message = xml_util.parse_xml( config_filename ) + try: + tree, error_message = xml_util.parse_xml( config_filename ) + except (OSError, IOError) as exc: + if config_filename == app.config.shed_tool_conf and not app.config.shed_tool_conf_set: + continue + raise if tree is None: continue root = tree.getroot() From 29dd038ef6fb2bebbd465455c74257d0a39c2cf9 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 16:47:55 -0400 Subject: [PATCH 014/141] Fixes for installed Galaxy --- MANIFEST.in.galaxy => MANIFEST.in | 0 Makefile | 13 ++----------- setup.py | 1 + 3 files changed, 3 insertions(+), 11 deletions(-) rename MANIFEST.in.galaxy => MANIFEST.in (100%) diff --git a/MANIFEST.in.galaxy b/MANIFEST.in similarity index 100% rename from MANIFEST.in.galaxy rename to MANIFEST.in diff --git a/Makefile b/Makefile index 1450e595e6d..b55d55d1c21 100644 --- a/Makefile +++ b/Makefile @@ -80,22 +80,13 @@ clean-grunt-docker-image: ## Remove grunt docker image docker rmi ${GRUNT_DOCKER_NAME} -wheels: wheel-galaxy-lib wheel-galaxy-app wheel-galaxy - -wheel-galaxy-lib: - rm -rf build MANIFEST.in - GALAXY_PACKAGE=galaxy-lib python setup.py bdist_wheel - -wheel-galaxy-app: - rm -rf build MANIFEST.in - GALAXY_PACKAGE=galaxy-app python setup.py bdist_wheel +wheels: wheel-galaxy # FIXME: it'd be great if client time could be compared against the wheel and # not rebuild client if unnecessary. But it's really only a problem in dev. # When this stuff goes into production it won't be as big of a deal. wheel-galaxy: client - ln -s MANIFEST.in.galaxy MANIFEST.in - GALAXY_PACKAGE=galaxy python setup.py bdist_wheel + python setup.py bdist_wheel # Release Targets release-create-rc: release-ensure-upstream ## Create a release-candidate branch diff --git a/setup.py b/setup.py index 5eba845a6b2..8b8ceb480a1 100644 --- a/setup.py +++ b/setup.py @@ -30,6 +30,7 @@ setup( ''', package_data={ 'galaxy': [ + 'config/sample/*', 'exceptions/error_codes.json', 'datatypes/converters/*.xml', 'datatypes/display_applications/configs/*/*.xml', From 1574213b58a31e032ac0000ae7710f45e46e9cd3 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 22:29:07 -0400 Subject: [PATCH 015/141] Fix for running from source --- lib/galaxy/config/__init__.py | 48 +++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 8de20500e2e..29d4bd5eecd 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -605,31 +605,35 @@ class Configuration( object ): workflow_schedulers_config_file=[ self.__in_config_dir( 'config/workflow_schedulers_conf.xml' ) ], ) - listify_defaults = dict( - tool_data_table_config_path=[ 'config/tool_data_table_conf.xml', 'tool_data_table_conf.xml', 'config/tool_data_table_conf.xml.sample' ], - # rationale: - # [0]: user has explicitly created config/tool_conf.xml but did not - # move their existing shed_tool_conf.xml, don't use - # config/shed_tool_conf.xml, which is probably the empty - # version copied from the sample, or else their shed tools - # will disappear - # [1]: user has created config/tool_conf.xml and, having passed - # [0], probably moved their shed_tool_conf.xml as well - # [2]: user has done nothing, use the old files - # [3]: fresh install - tool_config_file=[ 'config/tool_conf.xml,shed_tool_conf.xml', - 'config/tool_conf.xml,config/shed_tool_conf.xml', - 'tool_conf.xml,shed_tool_conf.xml', - 'config/tool_conf.xml.sample,config/shed_tool_conf.xml' ] - ) - - if not self.running_from_source: - listify_defaults['tool_data_table_config_path'] = [ + if self.running_from_source: + listify_defaults = { + 'tool_data_table_config_path': [ 'config/tool_data_table_conf.xml', + 'tool_data_table_conf.xml', + 'lib/galaxy/config/sample/tool_data_table_conf.xml.sample' ], + # rationale: + # [0]: user has explicitly created config/tool_conf.xml but did not + # move their existing shed_tool_conf.xml, don't use + # config/shed_tool_conf.xml, which is probably the empty + # version copied from the sample, or else their shed tools + # will disappear + # [1]: user has created config/tool_conf.xml and, having passed + # [0], probably moved their shed_tool_conf.xml as well + # [2]: user has done nothing, use the old files + # [3]: fresh install (shed_tool_conf will be added later) + 'tool_config_file': [ 'config/tool_conf.xml,shed_tool_conf.xml', + 'config/tool_conf.xml,config/shed_tool_conf.xml', + 'tool_conf.xml,shed_tool_conf.xml', + 'lib/galaxy/config/sample/tool_conf.xml.sample' ] + } + else: + listify_defaults = { + 'tool_data_table_config_path': [ self.__in_config_dir( 'tool_data_table_conf.xml' ), - self.__in_sample_dir( 'tool_data_table_conf.xml.sample' ) ] - listify_defaults['tool_config_file'] = [ + self.__in_sample_dir( 'tool_data_table_conf.xml.sample' ) ], + 'tool_config_file': [ self.__in_config_dir( 'tool_conf.xml' ), self.__in_sample_dir( 'tool_conf.xml.sample' ) ] + } for var, defaults in defaults.items(): if kwargs.get( var, None ) is not None: From 1843c9b3b60fdd411072c59ecc7ac1218f4a4762 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 22:34:44 -0400 Subject: [PATCH 016/141] Fix galaxy-main --- scripts/galaxy-main | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/galaxy-main b/scripts/galaxy-main index 8a4796d939b..d92873abf45 100755 --- a/scripts/galaxy-main +++ b/scripts/galaxy-main @@ -62,7 +62,11 @@ if base_file == 'main.py': GALAXY_ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir)) elif base_file == 'galaxy-main': GALAXY_ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir)) -GALAXY_LIB_DIR = os.path.join(GALAXY_ROOT_DIR, "lib") +else: + # Galaxy is installed + GALAXY_ROOT_DIR = None +if GALAXY_ROOT_DIR is not None: + GALAXY_LIB_DIR = os.path.join(GALAXY_ROOT_DIR, "lib") DEFAULT_INI_APP = "main" DEFAULT_INIS = ["config/galaxy.ini", "universe_wsgi.ini", "config/galaxy.ini.sample"] @@ -111,9 +115,10 @@ def load_galaxy_app( def app_loop(args, log): try: config_builder = GalaxyConfigBuilder(args) + config_env = GALAXY_ROOT_DIR is not None galaxy_app = load_galaxy_app( config_builder, - config_env=True, + config_env=config_env, log=log, ) except BaseException: @@ -146,8 +151,11 @@ def find_ini(supplied_ini, galaxy_root): if supplied_ini: return supplied_ini + if galaxy_root is None: + return os.path.abspath('galaxy.ini') + # If not explicitly supplied an ini, check server.ini and then - # just restort to sample if that has not been configured. + # just resort to sample if that has not been configured. for guess in DEFAULT_INIS: ini_path = os.path.join(galaxy_root, guess) if os.path.exists(ini_path): @@ -176,7 +184,7 @@ class GalaxyConfigBuilder(object): def populate_options(cls, arg_parser): arg_parser.add_argument("-c", "--ini-path", default=None, help="Galaxy ini config file (defaults to config/galaxy.ini)") arg_parser.add_argument("--app", default=DEFAULT_INI_APP, help="app section in ini file (defaults to main)") - arg_parser.add_argument("-d", "--daemonize", default=False, help="Daemonzie process", action="store_true") + arg_parser.add_argument("-d", "--daemonize", default=False, help="Daemonize process", action="store_true") arg_parser.add_argument("--daemon-log-file", default=None, help="log file for daemon script ") arg_parser.add_argument("--log-file", default=None, help="Galaxy log file (overrides log configuration in ini_path if set)") arg_parser.add_argument("--pid-file", default=DEFAULT_PID, help="pid file (default is %s)" % DEFAULT_PID) From ee1064cdf76ded2736201cb60fcbb205b1ec3e32 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 22:54:38 -0400 Subject: [PATCH 017/141] Fix linting errors --- .ci/py3_sources.txt | 9 ++++++++- config/job_conf.xml.sample_basic | 13 ------------- .../galaxy/config/sample/job_conf.xml.sample | 19 +++++++++++++++++++ lib/galaxy/tools/toolbox/base.py | 6 +++--- lib/tool_shed/util/common_util.py | 5 ++++- 5 files changed, 34 insertions(+), 18 deletions(-) delete mode 100644 config/job_conf.xml.sample_basic rename config/job_conf.xml.sample_advanced => lib/galaxy/config/sample/job_conf.xml.sample (98%) diff --git a/.ci/py3_sources.txt b/.ci/py3_sources.txt index 035b842699f..95a0f0e65c3 100644 --- a/.ci/py3_sources.txt +++ b/.ci/py3_sources.txt @@ -2,7 +2,7 @@ contrib/ cron/ lib/galaxy/actions/ lib/galaxy/auth/ -lib/galaxy/config.py +lib/galaxy/config/ lib/galaxy/dataset_collections/ lib/galaxy/datatypes/binary.py lib/galaxy/datatypes/converters/ @@ -25,6 +25,10 @@ lib/galaxy/quota/ lib/galaxy/sample_tracking/ lib/galaxy/security/ lib/galaxy/tags/ +lib/galaxy/tools/bundled/data_source/ +lib/galaxy/tools/bundled/evolution/ +lib/galaxy/tools/bundled/sr_mapping/ +lib/galaxy/tools/bundled/visualization/ lib/galaxy/tools/cwl/ lib/galaxy/tools/deps/ lib/galaxy/tools/lint.py @@ -71,8 +75,11 @@ scripts/db_shell.py scripts/drmaa_external_runner.py test/ tool_list.py +<<<<<<< HEAD tools/data_source/ tools/evolution/ tools/sr_mapping/ tools/stats/aggregate_scores_in_intervals.py tools/visualization/ +======= +>>>>>>> Fix linting errors diff --git a/config/job_conf.xml.sample_basic b/config/job_conf.xml.sample_basic deleted file mode 100644 index 66d9531fa8f..00000000000 --- a/config/job_conf.xml.sample_basic +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/config/job_conf.xml.sample_advanced b/lib/galaxy/config/sample/job_conf.xml.sample similarity index 98% rename from config/job_conf.xml.sample_advanced rename to lib/galaxy/config/sample/job_conf.xml.sample index d90cf920caf..643935f4db2 100644 --- a/config/job_conf.xml.sample_advanced +++ b/lib/galaxy/config/sample/job_conf.xml.sample @@ -1,8 +1,27 @@ + + + + + + + + + + + + + + diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py index 659b2f19e2a..8940f9f55d4 100644 --- a/lib/galaxy/tools/toolbox/base.py +++ b/lib/galaxy/tools/toolbox/base.py @@ -134,9 +134,9 @@ class AbstractToolBox( Dictifiable, ManagesIntegratedToolPanelMixin, object ): tool_conf_source = get_toolbox_parser(config_filename) except (OSError, IOError) as exc: for opt in ('shed_tool_conf', 'migrated_tools_config'): - if (config_filename == getattr( self.app.config, opt ) - and not getattr( self.app.config, opt + '_set' ) - and exc.errno == errno.ENOENT): + if (config_filename == getattr( self.app.config, opt ) and not + getattr( self.app.config, opt + '_set' ) and + exc.errno == errno.ENOENT): log.debug( "Skipping loading missing default config file: %s", config_filename ) stcd = dict( config_filename=config_filename, tool_path=self.app.config.shed_tools_dir, diff --git a/lib/tool_shed/util/common_util.py b/lib/tool_shed/util/common_util.py index 7779e7c96b3..57b5c763ca6 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/tool_shed/util/common_util.py @@ -1,3 +1,4 @@ +import errno import json import logging import os @@ -147,7 +148,9 @@ def get_non_shed_tool_panel_configs( app ): try: tree, error_message = xml_util.parse_xml( config_filename ) except (OSError, IOError) as exc: - if config_filename == app.config.shed_tool_conf and not app.config.shed_tool_conf_set: + if ( config_filename == app.config.shed_tool_conf and not + app.config.shed_tool_conf_set and + exc.errno == errno.ENOENT ): continue raise if tree is None: From f8eecda9e441c75a10430e20bddc4398ec5e7837 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 13 Jun 2016 23:56:10 -0400 Subject: [PATCH 018/141] Handle remaining config and path moves for installable Galaxy --- lib/galaxy/config/__init__.py | 42 +++++++++---------- .../dependency_resolvers_conf.xml.sample | 0 .../disposable_email_blacklist.conf.sample | 0 .../galaxy/config/sample}/galaxy.ini.sample | 0 .../sample}/job_metrics_conf.xml.sample | 0 .../job_resource_params_conf.xml.sample | 0 .../sample}/object_store_conf.xml.sample | 0 .../config/sample}/openid_conf.xml.sample | 0 .../galaxy/config/sample}/reports.ini.sample | 0 .../galaxy/config/sample}/tool_conf.xml.main | 0 .../config/sample}/tool_shed.ini.sample | 0 .../galaxy/web/framework/static/welcome.html | 0 run.sh | 2 +- scripts/common_startup.sh | 6 +-- 14 files changed, 22 insertions(+), 28 deletions(-) rename {config => lib/galaxy/config/sample}/dependency_resolvers_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/disposable_email_blacklist.conf.sample (100%) rename {config => lib/galaxy/config/sample}/galaxy.ini.sample (100%) rename {config => lib/galaxy/config/sample}/job_metrics_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/job_resource_params_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/object_store_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/openid_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/reports.ini.sample (100%) rename {config => lib/galaxy/config/sample}/tool_conf.xml.main (100%) rename {config => lib/galaxy/config/sample}/tool_shed.ini.sample (100%) rename static/welcome.html.sample => lib/galaxy/web/framework/static/welcome.html (100%) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 29d4bd5eecd..6804c2ab215 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -83,7 +83,7 @@ class Configuration( object ): # just live in the data dir if self.running_from_source: if self.data_dir is None: - self.data_dir = os.path.join( self.root, 'config', 'database' ) + self.data_dir = os.path.join( self.root, 'database' ) self.mutable_config_dir = self.config_dir self.shed_tools_dir = "../shed_tools" else: @@ -128,9 +128,9 @@ class Configuration( object ): # Where dataset files are stored self.file_path = resolve_path( kwargs.get( "file_path", "files" ), self.data_dir ) - self.new_file_path = resolve_path( kwargs.get( "new_file_path", "database/tmp" ), self.root ) + self.new_file_path = resolve_path( kwargs.get( "new_file_path", "tmp" ), self.data_dir ) tempfile.tempdir = self.new_file_path - self.openid_consumer_cache_path = resolve_path( kwargs.get( "openid_consumer_cache_path", "database/openid_consumer_cache" ), self.root ) + self.openid_consumer_cache_path = resolve_path( kwargs.get( "openid_consumer_cache_path", "openid_consumer_cache" ), self.data_dir ) self.cookie_path = kwargs.get( "cookie_path", "/" ) # Galaxy OpenID settings self.enable_openid = string_as_bool( kwargs.get( 'enable_openid', False ) ) @@ -219,18 +219,18 @@ class Configuration( object ): self.new_user_dataset_access_role_default_private = string_as_bool( kwargs.get( "new_user_dataset_access_role_default_private", "False" ) ) self.collect_outputs_from = [ x.strip() for x in kwargs.get( 'collect_outputs_from', 'new_file_path,job_working_directory' ).lower().split(',') ] self.template_path = resolve_path( kwargs.get( "template_path", "templates" ), self.root ) - self.template_cache = resolve_path( kwargs.get( "template_cache_path", "database/compiled_templates" ), self.root ) + self.template_cache = resolve_path( kwargs.get( "template_cache_path", "compiled_templates" ), self.data_dir ) self.local_job_queue_workers = int( kwargs.get( "local_job_queue_workers", "5" ) ) self.cluster_job_queue_workers = int( kwargs.get( "cluster_job_queue_workers", "3" ) ) self.job_queue_cleanup_interval = int( kwargs.get("job_queue_cleanup_interval", "5") ) - self.cluster_files_directory = os.path.abspath( kwargs.get( "cluster_files_directory", "database/pbs" ) ) + self.cluster_files_directory = os.path.abspath( resolve_path( kwargs.get( "cluster_files_directory", "pbs" ), self.data_dir ) ) # Fall back to to legacy job_working_directory config variable if set. - default_jobs_directory = kwargs.get( "job_working_directory", "database/jobs_directory" ) - self.jobs_directory = resolve_path( kwargs.get( "jobs_directory", default_jobs_directory ), self.root ) + default_jobs_directory = kwargs.get( "job_working_directory", "jobs_directory" ) + self.jobs_directory = resolve_path( kwargs.get( "jobs_directory", default_jobs_directory ), self.data_dir ) self.default_job_shell = kwargs.get( "default_job_shell", "/bin/bash" ) self.cleanup_job = kwargs.get( "cleanup_job", "always" ) - self.container_image_cache_path = self.resolve_path( kwargs.get( "container_image_cache_path", "database/container_images" ) ) + self.container_image_cache_path = resolve_path( kwargs.get( "container_image_cache_path", "container_images" ), self.data_dir ) self.outputs_to_working_directory = string_as_bool( kwargs.get( 'outputs_to_working_directory', False ) ) self.output_size_limit = int( kwargs.get( 'output_size_limit', 0 ) ) self.retry_job_output_collection = int( kwargs.get( 'retry_job_output_collection', 0 ) ) @@ -343,7 +343,7 @@ class Configuration( object ): # Searching data libraries self.enable_lucene_library_search = string_as_bool( kwargs.get( 'enable_lucene_library_search', False ) ) self.enable_whoosh_library_search = string_as_bool( kwargs.get( 'enable_whoosh_library_search', False ) ) - self.whoosh_index_dir = resolve_path( kwargs.get( "whoosh_index_dir", "database/whoosh_indexes" ), self.root ) + self.whoosh_index_dir = resolve_path( kwargs.get( "whoosh_index_dir", "whoosh_indexes" ), self.data_dir ) self.ftp_upload_dir = kwargs.get( 'ftp_upload_dir', None ) self.ftp_upload_dir_identifier = kwargs.get( 'ftp_upload_dir_identifier', 'email' ) # attribute on user - email, username, id, etc... self.ftp_upload_dir_template = kwargs.get( 'ftp_upload_dir_template', '${ftp_upload_dir}%s${ftp_upload_dir_identifier}' % os.path.sep ) @@ -389,7 +389,7 @@ class Configuration( object ): self.nginx_upload_store = os.path.abspath( self.nginx_upload_store ) self.object_store = kwargs.get( 'object_store', 'disk' ) self.object_store_check_old_style = string_as_bool( kwargs.get( 'object_store_check_old_style', False ) ) - self.object_store_cache_path = resolve_path( kwargs.get( "object_store_cache_path", "database/object_store_cache" ), self.root ) + self.object_store_cache_path = resolve_path( kwargs.get( "object_store_cache_path", "object_store_cache" ), self.data_dir ) # Handle AWS-specific config options for backward compatibility if kwargs.get( 'aws_access_key', None) is not None: self.os_access_key = kwargs.get( 'aws_access_key', None ) @@ -520,7 +520,7 @@ class Configuration( object ): elif ie_dirs: self.visualization_plugins_directory += ",%s" % ie_dirs - self.proxy_session_map = self.resolve_path( kwargs.get( "dynamic_proxy_session_map", "database/session_map.sqlite" ) ) + self.proxy_session_map = resolve_path( kwargs.get( "dynamic_proxy_session_map", "session_map.sqlite" ), self.data_dir ) self.manage_dynamic_proxy = string_as_bool( kwargs.get( "dynamic_proxy_manage", "True" ) ) # Set to false if being launched externally self.dynamic_proxy_debug = string_as_bool( kwargs.get( "dynamic_proxy_debug", "False" ) ) self.dynamic_proxy_bind_port = int( kwargs.get( "dynamic_proxy_bind_port", "8800" ) ) @@ -538,8 +538,8 @@ class Configuration( object ): self.display_chunk_size = int( kwargs.get( 'display_chunk_size', 65536) ) self.citation_cache_type = kwargs.get( "citation_cache_type", "file" ) - self.citation_cache_data_dir = self.resolve_path( kwargs.get( "citation_cache_data_dir", "database/citations/data" ) ) - self.citation_cache_lock_dir = self.resolve_path( kwargs.get( "citation_cache_lock_dir", "database/citations/locks" ) ) + self.citation_cache_data_dir = resolve_path( kwargs.get( "citation_cache_data_dir", "citations/data" ), self.data_dir ) + self.citation_cache_lock_dir = resolve_path( kwargs.get( "citation_cache_lock_dir", "citations/locks" ), self.data_dir ) @property def running_from_source( self ): @@ -594,12 +594,12 @@ class Configuration( object ): data_manager_config_file=[ self.__in_config_dir( 'data_manager_conf.xml' ) ], datatypes_config_file=[ self.__in_config_dir( 'datatypes_conf.xml' ), self.__in_sample_dir( 'datatypes_conf.xml.sample' ) ], external_service_type_config_file=[ self.__in_config_dir( 'external_service_types_conf.xml' ) ], - job_config_file=[ 'config/job_conf.xml', 'job_conf.xml' ], - job_metrics_config_file=[ 'config/job_metrics_conf.xml', 'job_metrics_conf.xml', 'config/job_metrics_conf.xml.sample' ], - dependency_resolvers_config_file=[ 'config/dependency_resolvers_conf.xml', 'dependency_resolvers_conf.xml' ], - job_resource_params_file=[ 'config/job_resource_params_conf.xml', 'job_resource_params_conf.xml' ], - object_store_config_file=[ 'config/object_store_conf.xml', 'object_store_conf.xml' ], - openid_config_file=[ 'config/openid_conf.xml', 'openid_conf.xml', 'config/openid_conf.xml.sample' ], + job_config_file=[ self.__in_config_dir( 'job_conf.xml' ) ], + job_metrics_config_file=[ self.__in_config_dir( 'job_metrics_conf.xml' ) ], + dependency_resolvers_config_file=[ self.__in_config_dir( 'dependency_resolvers_conf.xml' ) ], + job_resource_params_file=[ self.__in_config_dir( 'job_resource_params_conf.xml' ) ], + object_store_config_file=[ self.__in_config_dir( 'object_store_conf.xml' ) ], + openid_config_file=[ self.__in_config_dir( 'openid_conf.xml' ) ], shed_data_manager_config_file=[ self.__in_mutable_config_dir( 'shed_data_manager_conf.xml' ) ], shed_tool_data_table_config=[ self.__in_mutable_config_dir( 'shed_tool_data_table_conf.xml' ) ], workflow_schedulers_config_file=[ self.__in_config_dir( 'config/workflow_schedulers_conf.xml' ) ], @@ -730,9 +730,7 @@ class Configuration( object ): raise ConfigurationError( "Unable to create missing directory: %s\n%s" % ( path, e ) ) def check( self ): - paths_to_check = [ self.root, self.tool_path, self.tool_data_path, - self.template_path, self.data_dir, - self.mutable_config_dir ] + paths_to_check = [ self.root, self.tool_data_path, self.data_dir, self.mutable_config_dir ] # Check that required directories exist for path in paths_to_check: if path not in [ None, False ] and not os.path.isdir( path ): diff --git a/config/dependency_resolvers_conf.xml.sample b/lib/galaxy/config/sample/dependency_resolvers_conf.xml.sample similarity index 100% rename from config/dependency_resolvers_conf.xml.sample rename to lib/galaxy/config/sample/dependency_resolvers_conf.xml.sample diff --git a/config/disposable_email_blacklist.conf.sample b/lib/galaxy/config/sample/disposable_email_blacklist.conf.sample similarity index 100% rename from config/disposable_email_blacklist.conf.sample rename to lib/galaxy/config/sample/disposable_email_blacklist.conf.sample diff --git a/config/galaxy.ini.sample b/lib/galaxy/config/sample/galaxy.ini.sample similarity index 100% rename from config/galaxy.ini.sample rename to lib/galaxy/config/sample/galaxy.ini.sample diff --git a/config/job_metrics_conf.xml.sample b/lib/galaxy/config/sample/job_metrics_conf.xml.sample similarity index 100% rename from config/job_metrics_conf.xml.sample rename to lib/galaxy/config/sample/job_metrics_conf.xml.sample diff --git a/config/job_resource_params_conf.xml.sample b/lib/galaxy/config/sample/job_resource_params_conf.xml.sample similarity index 100% rename from config/job_resource_params_conf.xml.sample rename to lib/galaxy/config/sample/job_resource_params_conf.xml.sample diff --git a/config/object_store_conf.xml.sample b/lib/galaxy/config/sample/object_store_conf.xml.sample similarity index 100% rename from config/object_store_conf.xml.sample rename to lib/galaxy/config/sample/object_store_conf.xml.sample diff --git a/config/openid_conf.xml.sample b/lib/galaxy/config/sample/openid_conf.xml.sample similarity index 100% rename from config/openid_conf.xml.sample rename to lib/galaxy/config/sample/openid_conf.xml.sample diff --git a/config/reports.ini.sample b/lib/galaxy/config/sample/reports.ini.sample similarity index 100% rename from config/reports.ini.sample rename to lib/galaxy/config/sample/reports.ini.sample diff --git a/config/tool_conf.xml.main b/lib/galaxy/config/sample/tool_conf.xml.main similarity index 100% rename from config/tool_conf.xml.main rename to lib/galaxy/config/sample/tool_conf.xml.main diff --git a/config/tool_shed.ini.sample b/lib/galaxy/config/sample/tool_shed.ini.sample similarity index 100% rename from config/tool_shed.ini.sample rename to lib/galaxy/config/sample/tool_shed.ini.sample diff --git a/static/welcome.html.sample b/lib/galaxy/web/framework/static/welcome.html similarity index 100% rename from static/welcome.html.sample rename to lib/galaxy/web/framework/static/welcome.html diff --git a/run.sh b/run.sh index 901d7e46172..b9517e7e584 100755 --- a/run.sh +++ b/run.sh @@ -93,7 +93,7 @@ if [ -z "$GALAXY_CONFIG_FILE" ]; then elif [ -f config/galaxy.ini ]; then GALAXY_CONFIG_FILE=config/galaxy.ini else - GALAXY_CONFIG_FILE=config/galaxy.ini.sample + GALAXY_CONFIG_FILE=lib/galaxy/config/sample/galaxy.ini.sample fi export GALAXY_CONFIG_FILE fi diff --git a/scripts/common_startup.sh b/scripts/common_startup.sh index 63406c81857..494abc28e69 100755 --- a/scripts/common_startup.sh +++ b/scripts/common_startup.sh @@ -29,10 +29,6 @@ for arg in "$@"; do done SAMPLES=" - config/migrated_tools_conf.xml.sample - config/shed_tool_conf.xml.sample - config/shed_tool_data_table_conf.xml.sample - config/shed_data_manager_conf.xml.sample lib/tool_shed/scripts/bootstrap_tool_shed/user_info.xml.sample tool-data/shared/ucsc/builds.txt.sample tool-data/shared/ucsc/manual_builds.txt.sample @@ -67,7 +63,7 @@ if [ ! -f $GALAXY_CONFIG_FILE ]; then GALAXY_CONFIG_FILE=universe_wsgi.ini fi if [ ! -f $GALAXY_CONFIG_FILE ]; then - GALAXY_CONFIG_FILE=config/galaxy.ini.sample + GALAXY_CONFIG_FILE=lib/galaxy/config/sample/galaxy.ini.sample fi : ${GALAXY_VIRTUAL_ENV:=.venv} From 2b809719ebeb3a130d08e696e536bf75fa9cb9d7 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 00:00:58 -0400 Subject: [PATCH 019/141] Add configurable options to allow for easy addition of static content served via Galaxy, because in an installed context, the static directory is not easily modifiable. --- lib/galaxy/config/sample/galaxy.ini.sample | 11 +++++++++-- lib/galaxy/web/framework/webapp.py | 5 ++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/config/sample/galaxy.ini.sample b/lib/galaxy/config/sample/galaxy.ini.sample index cc79edf3eb1..db56254fa12 100644 --- a/lib/galaxy/config/sample/galaxy.ini.sample +++ b/lib/galaxy/config/sample/galaxy.ini.sample @@ -507,7 +507,8 @@ nglims_config_file = tool-data/nglims.yaml #galaxy_infrastructure_web_port = 8080 # The URL of the page to display in Galaxy's middle pane when loaded. This can -# be an absolute or relative URL. +# be an absolute or relative URL. Alternatively, you can modify the file that +# /static/welcome.html points to using the `static_welcome_html` option below. #welcome_url = /static/welcome.html # The URL linked by the "Galaxy/brand" text. @@ -543,7 +544,8 @@ nglims_config_file = tool-data/nglims.yaml # Serve static content, which must be enabled if you're not serving it via a # proxy server. These options should be self explanatory and so are not # documented individually. You can use these paths (or ones in the proxy -# server) to point to your own styles. +# server) to point to your own styles. Paths are relative to +# galaxy/web/framework/ #static_enabled = True #static_cache_time = 360 #static_dir = static/ @@ -552,6 +554,11 @@ nglims_config_file = tool-data/nglims.yaml #static_scripts_dir = static/scripts/ #static_style_dir = static/june_2007_style/blue #static_robots_txt = static/robots.txt +#static_welcome_html = static/welcome.html + +# A directory to serve at /static_local for local static content served by +# Galaxy +#static_local_dir = None # Incremental Display Options diff --git a/lib/galaxy/web/framework/webapp.py b/lib/galaxy/web/framework/webapp.py index ea46936c034..a515abd0c05 100644 --- a/lib/galaxy/web/framework/webapp.py +++ b/lib/galaxy/web/framework/webapp.py @@ -925,7 +925,10 @@ def build_url_map( app, global_conf, local_conf ): urlmap["/static"] = Static( conf.get( "static_dir", default_url_path("static/") ), cache_time ) urlmap["/images"] = Static( conf.get( "static_images_dir", default_url_path("static/images") ), cache_time ) urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir", default_url_path("static/scripts/") ), cache_time ) - urlmap["/static/style"] = Static( conf.get( "static_style_dir", default_url_path("./static/style/blue") ), cache_time ) + urlmap["/static/style"] = Static( conf.get( "static_style_dir", default_url_path("static/style/blue") ), cache_time ) + urlmap["/static/welcome.html"] = Static( conf.get( "static_welcome_html", default_url_path("static/welcome.html") ), cache_time ) urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir", default_url_path("./static/favicon.ico") ), cache_time ) urlmap["/robots.txt"] = Static( conf.get( "static_robots_txt", default_url_path("./static/robots.txt") ), cache_time ) + if 'static_local_dir' in conf: + urlmap["/static_local"] = Static( conf["static_local_dir"], cache_time ) return urlmap, cache_time From 5da0cfe4568d7b891ce016b14638b26d3dda877b Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 00:01:50 -0400 Subject: [PATCH 020/141] Ignore things generated as part of the wheel/client build process --- .gitignore | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitignore b/.gitignore index 371240a7939..9699d96664a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,15 @@ scripts/scramble/archives # Python virtualenv .venv +# Python build artifacts +build +dist + +# Generated static content +lib/galaxy/web/framework/static/maps +lib/galaxy/web/framework/static/scripts +lib/galaxy/web/framework/static/style + # Database stuff database/beaker_sessions database/citations From 11d541263236cdf6c25c90e03e42fa6aece0007e Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 14:25:55 -0400 Subject: [PATCH 021/141] Attempt to fix functional tests --- .gitignore | 1 + run_tests.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9699d96664a..d97b919a70f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ scripts/scramble/archives # Python build artifacts build dist +lib/galaxy.egg-info # Generated static content lib/galaxy/web/framework/static/maps diff --git a/run_tests.sh b/run_tests.sh index 712c6f87d5e..1efd5f347c9 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -506,7 +506,7 @@ if [ "$driver" = "python" ]; then structured_data_args="" fi if [ -n "$with_framework_test_tools_arg" ]; then - GALAXY_TEST_TOOL_CONF="config/tool_conf.xml.sample,test/functional/tools/samples_tool_conf.xml" + GALAXY_TEST_TOOL_CONF="lib/galaxy/config/sample/tool_conf.xml.sample,test/functional/tools/samples_tool_conf.xml" export GALAXY_TEST_TOOL_CONF fi python $test_script $coverage_arg -v --with-nosehtml --html-report-file $report_file $xunit_args $structured_data_args $extra_args From cba2a3dbf0f28697681c1fa5371234b2bd17aab7 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 14:26:14 -0400 Subject: [PATCH 022/141] Add a galaxy-config command to create galaxy.ini in the installed context. --- lib/galaxy/config/sample/galaxy.ini.sample | 23 +++ lib/galaxy/config/script.py | 180 +++++++++++++++++++++ setup.py | 1 + 3 files changed, 204 insertions(+) create mode 100644 lib/galaxy/config/script.py diff --git a/lib/galaxy/config/sample/galaxy.ini.sample b/lib/galaxy/config/sample/galaxy.ini.sample index db56254fa12..5e3731d7360 100644 --- a/lib/galaxy/config/sample/galaxy.ini.sample +++ b/lib/galaxy/config/sample/galaxy.ini.sample @@ -46,6 +46,16 @@ use_threadpool = True # (assuming it will never finish) to 3 hours. Default is 600 (10 minutes). threadpool_kill_thread_limit = 10800 +# Alternatively, a minimal uWSGI server configuration listening for HTTP +# requests on port 8080. For (much) more see the Galaxy configuration +# documentation and https://uwsgi-docs.readthedocs.io/ + +[uwsgi] +processes = 2 +http = 127.0.0.1:8080 +threads = 2 +master = True + # ---- Filters -------------------------------------------------------------- # Filters sit between Galaxy and the HTTP server. @@ -68,6 +78,19 @@ prefix = /galaxy [app:main] +# Directories for relative configuration options + +# The directory that will be prepended to relative paths in options specifying +# other Galaxy config files (e.g. datatypes_config_file). Defaults to the +# directory in which galaxy.ini is located. +#config_dir = None + +# The directory that will be prepended to relative paths in options specifying +# Galaxy data/cache directories and files (such as the default SQLite database, +# file_path, etc.). Defaults to `database/` if running Galaxy from source or +# `/data` otherwise. +#data_dir = None + # -- Application and filtering # The factory for the WSGI application. This should not be changed. diff --git a/lib/galaxy/config/script.py b/lib/galaxy/config/script.py new file mode 100644 index 00000000000..0f98348c223 --- /dev/null +++ b/lib/galaxy/config/script.py @@ -0,0 +1,180 @@ +#!/usr/bin/env python +from __future__ import print_function + +import os +import string +import sys +from argparse import ArgumentParser + +try: + import pip +except ImportError: + pip = None + + +CONFIGURE_URL = "https://wiki.galaxyproject.org/Admin/Config/Performance/ProductionServer" + +DESCRIPTION = "Initialize a directory with a minimal Galaxy config." +HELP_CONFIG_DIR = "Directory containing the configuration files for Galaxy." +HELP_DATA_DIR = "Directory containing Galaxy-created data." +HELP_FORCE = "Overwrite existing files if they already exist." +HELP_WSGI_SERVER = ("Web server stack used to host Galaxy web application, and " + "if uWSGI, which protocol to use.") +HELP_LIBDRMAA = ("Configure Galaxy to submit jobs to a cluster via DRMAA by " + "supplying the path to a libdrmaa.so file using this argument.") +HELP_INSTALL = ("Install optional dependencies required by specified configuration " + "(e.g. drmaa, uwsgi, etc...).") +HELP_HOST = ('Host to bind Galaxy to - defaults to localhost. Specify an IP ' + 'address or "all" to listen on all interfaces.') +HELP_PORT = ("Port to bind Galaxy to.") + +DEFAULT_HOST = "localhost" +DEFAULT_INI = "galaxy.ini" + +SAMPLES_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), 'sample')) +GALAXY_CONFIG_TEMPLATE_FILE = os.path.join(SAMPLES_PATH, 'galaxy.ini.sample') + +# The sample is used as the default config file for Galaxy started without a +# config, and we don't want to duplicate the whole thing into galaxy.config for +# templating, so for now just substitute some lines. In the future we will +# build configs differently. +GALAXY_CONFIG_SUBSTITUTIONS = { + '#port = 8080': 'port = ${port}', + '#host = 127.0.0.1': 'host = ${host}', + 'http = 127.0.0.1:8080': '${uwsgi_transport} = ${host}:${port}', + '#config_dir = None': 'config_dir = ${config_dir}', + '#data_dir = None': 'data_dir = ${data_dir}', +} + + +def main(argv=None): + dependencies = [] + arg_parser = ArgumentParser(description=DESCRIPTION) + arg_parser.add_argument("--config-dir", + default=".", + help=HELP_CONFIG_DIR) + arg_parser.add_argument("--data-dir", + default="./data", + help=HELP_DATA_DIR) + arg_parser.add_argument("--wsgi-server", + choices=["paster", "uwsgi-http", "uwsgi-native"], + default="paster", + help=HELP_WSGI_SERVER) + arg_parser.add_argument("--host", + default=DEFAULT_HOST, + help=HELP_HOST) + arg_parser.add_argument("--port", + default="8080", + help=HELP_PORT) + arg_parser.add_argument("--install", + action="store_true", + help=HELP_INSTALL) + arg_parser.add_argument("--force", + action="store_true", + default=False, + help=HELP_FORCE) + args = arg_parser.parse_args(argv) + config_dir = args.config_dir + relative_config_dir = config_dir + config_dir = os.path.abspath(config_dir) + data_dir = args.data_dir + relative_data_dir = data_dir + data_dir = os.path.abspath(data_dir) + + mode = _determine_mode(args) + if mode.startswith("uwsgi-"): + dependencies.append("uwsgi") + + for directory in (config_dir, data_dir): + if not os.path.exists(directory): + os.makedirs(directory) + + print("Bootstrapping Galaxy configuration into directory %s" % relative_config_dir) + _handle_galaxy_ini(args, config_dir, data_dir) + _handle_install(args, dependencies) + _print_config_summary(args, mode, relative_config_dir) + + +def _print_config_summary(args, mode, relative_config_dir): + _print_galaxy_ini_info(args, mode) + print("") + print("For additional help on configuring Galaxy, consult the documentation at:\n ", CONFIGURE_URL) + print("") + print("Start Galaxy by running the command from directory [%s]:" % relative_config_dir) + _print_galaxy_run(mode) + + +def _print_galaxy_ini_info(args, mode): + print(" - galaxy.ini created, update to configure Galaxy.") + print(" * Target web server %s" % mode) + if args.host == DEFAULT_HOST: + print(" * Binding to host localhost, remote clients will not be able to connect.") + elif _determine_host(args) == "0.0.0.0": + print(" * Binding to all network interfaces.") + else: + print(" * Binding to host [%s].", args.host) + + +def _print_galaxy_run(mode): + if mode.startswith("uwsgi"): + print(" uwsgi --ini-paste galaxy.ini") + else: + print(" galaxy-paster serve galaxy.ini") + + +def _determine_mode(args): + if args.wsgi_server: + mode = args.wsgi_server + else: + mode = "paster" + return mode + + +def _determine_host(args): + return '0.0.0.0' if args.host == 'all' else args.host + + +def _determine_ini_file(config_dir): + return os.path.join(config_dir, DEFAULT_INI) + + +def _handle_galaxy_ini(args, config_dir, data_dir): + force = args.force + ini_file = _determine_ini_file(config_dir) + _check_file(ini_file, force) + uwsgi_transport = 'socket' if args.wsgi_server == 'uwsgi-native' else 'http' + config_dict = dict( + port=args.port, + host=_determine_host(args), + uwsgi_transport=uwsgi_transport, + config_dir=config_dir, + data_dir=data_dir, + ) + + galaxy_config_template = [] + with open(GALAXY_CONFIG_TEMPLATE_FILE) as fh: + for line in [ l.rstrip('\n') for l in fh.readlines() ]: + for k, v in GALAXY_CONFIG_SUBSTITUTIONS.items(): + if line == k: + line = v + galaxy_config_template.append(line) + galaxy_config_template = string.Template('\n'.join(galaxy_config_template)) + + galaxy_config = galaxy_config_template.safe_substitute( + **config_dict + ) + open(ini_file, "w").write(galaxy_config) + + +def _handle_install(args, dependencies): + if args.install and dependencies: + if pip is None: + raise ImportError("Bootstrapping Pulsar dependencies requires pip library.") + + pip.main(["install"] + dependencies) + + +def _check_file(path, force): + if os.path.exists(path) and not force: + print("File %s exists, exiting. Run with --force to replace configuration." % path, file=sys.stderr) + sys.exit(1) diff --git a/setup.py b/setup.py index 8b8ceb480a1..9c71ed476f7 100644 --- a/setup.py +++ b/setup.py @@ -27,6 +27,7 @@ setup( [console_scripts] galaxy-paster=galaxy.util.pastescript.serve:run galaxy-main=galaxy.main:main + galaxy-config=galaxy.config.script:main ''', package_data={ 'galaxy': [ From 90d9c03bcd6037f10d13728012daf91df08c02c2 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 16:20:15 -0400 Subject: [PATCH 023/141] Provide path to additional samples in galaxy-config output --- lib/galaxy/config/script.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/config/script.py b/lib/galaxy/config/script.py index 0f98348c223..8d4fec2ea29 100644 --- a/lib/galaxy/config/script.py +++ b/lib/galaxy/config/script.py @@ -98,7 +98,10 @@ def main(argv=None): def _print_config_summary(args, mode, relative_config_dir): _print_galaxy_ini_info(args, mode) print("") - print("For additional help on configuring Galaxy, consult the documentation at:\n ", CONFIGURE_URL) + print("For help on configuring Galaxy, consult the documentation at:\n ", CONFIGURE_URL) + print("") + print("Additional sample configuration files for various Galaxy components (jobs,") + print("datatypes, etc.) can be found in:\n ", SAMPLES_PATH) print("") print("Start Galaxy by running the command from directory [%s]:" % relative_config_dir) _print_galaxy_run(mode) From 0f5eabfda46ba843a642c1d1a6543a2446c6ae1a Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 16:20:35 -0400 Subject: [PATCH 024/141] Fixes for tool migration when data_dir != ./data --- lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py b/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py index 961d759c3a1..37945661dd2 100644 --- a/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py +++ b/lib/tool_shed/galaxy_install/migrate/scripts/manage_tools.py @@ -32,6 +32,7 @@ elif "database_connection" in properties: elif os.path.exists('run.sh'): db_url = "sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE" else: - db_url = "sqlite:///./data/universe.sqlite?isolation_level=IMMEDIATE" + data_dir = properties.get('data_dir', './data') + db_url = "sqlite:///%s/universe.sqlite?isolation_level=IMMEDIATE" % data_dir main( repository=repo, url=db_url ) From 5375b345dc67303f5531c0bef26849e10d3e9f90 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 17:15:30 -0400 Subject: [PATCH 025/141] Fix migrations and add the galaxy-manage-db command for installed Galaxy. Could use a bit of help explaining how to use the Galaxy-specific options that aren't passed on to sqlalchemy-migrate. --- .gitignore | 1 + lib/galaxy/config/__init__.py | 28 +++++------------------ lib/galaxy/model/orm/scripts.py | 40 ++++++++++++++++++++------------- lib/galaxy/util/properties.py | 27 +++++++++++++++++++++- setup.py | 1 + 5 files changed, 59 insertions(+), 38 deletions(-) diff --git a/.gitignore b/.gitignore index d97b919a70f..a15ed1417c3 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ scripts/scramble/archives build dist lib/galaxy.egg-info +.eggs # Generated static content lib/galaxy/web/framework/static/maps diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 6804c2ab215..996868cdb0f 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -23,6 +23,7 @@ from six.moves import configparser from galaxy.exceptions import ConfigurationError from galaxy.util import listify from galaxy.util import string_as_bool +from galaxy.util.properties import running_from_source from galaxy.util.dbkeys import GenomeBuilds from galaxy.web.formatting import expand_pretty_datetime_format from ..version import VERSION_MAJOR @@ -55,17 +56,13 @@ class Configuration( object ): self.config_dict = kwargs self.root = kwargs.get( 'root_dir', '.' ) - # Facilitate "installed" Galaxy without disturbing existing "running - # from source" installations and all the various assumptions/defaults - self.__running_from_source = None - self.config_file = None global_conf = kwargs.get( 'global_conf', None ) # TODO: under what conditions is global_conf None, or does it not # contain __file__? if global_conf and "__file__" in global_conf: self.config_file = global_conf['__file__'] - elif self.running_from_source: + elif running_from_source: for f in ( 'config/galaxy.ini', 'config/galaxy.ini.sample' ): if os.path.exists( f ): self.config_file = f @@ -81,7 +78,7 @@ class Configuration( object ): # override individual mutable configs with config options, but they # should be considered Galaxy-controlled data files and will by default # just live in the data dir - if self.running_from_source: + if running_from_source: if self.data_dir is None: self.data_dir = os.path.join( self.root, 'database' ) self.mutable_config_dir = self.config_dir @@ -138,7 +135,7 @@ class Configuration( object ): self.enable_unique_workflow_defaults = string_as_bool( kwargs.get( 'enable_unique_workflow_defaults', False ) ) self.tool_path = resolve_path( kwargs.get( "tool_path", "tools" ), self.root ) self.tool_data_path = resolve_path( kwargs.get( "tool_data_path", "tool-data" ), os.getcwd() ) - if not self.running_from_source and kwargs.get( "tool_data_path", None ) is None: + if not running_from_source and kwargs.get( "tool_data_path", None ) is None: self.tool_data_path = resolve_path( "tool-data", self.data_dir ) self.builds_file_path = resolve_path( kwargs.get( "builds_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'builds.txt') ), self.root ) self.len_file_path = resolve_path( kwargs.get( "len_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'chrom') ), self.root ) @@ -541,19 +538,6 @@ class Configuration( object ): self.citation_cache_data_dir = resolve_path( kwargs.get( "citation_cache_data_dir", "citations/data" ), self.data_dir ) self.citation_cache_lock_dir = resolve_path( kwargs.get( "citation_cache_lock_dir", "citations/locks" ), self.data_dir ) - @property - def running_from_source( self ): - if self.__running_from_source is None: - try: - # is there a better way to do this? - assert os.path.exists( 'run.sh' ) - assert os.path.exists( 'lib/galaxy/__init__.py' ) - assert os.path.exists( 'scripts/common_startup.sh' ) - self.__running_from_source = True - except AssertionError: - self.__running_from_source = False - return self.__running_from_source - @property def sentry_dsn_public( self ): """ @@ -605,7 +589,7 @@ class Configuration( object ): workflow_schedulers_config_file=[ self.__in_config_dir( 'config/workflow_schedulers_conf.xml' ) ], ) - if self.running_from_source: + if running_from_source: listify_defaults = { 'tool_data_table_config_path': [ 'config/tool_data_table_conf.xml', 'tool_data_table_conf.xml', @@ -668,7 +652,7 @@ class Configuration( object ): # If the user has configured a shed tool config in tool_config_file # this would add a second, but since we're not parsing them yet we # don't know if that's the case. - if not self.running_from_source and self.shed_tool_conf not in self.tool_config_file: + if not running_from_source and self.shed_tool_conf not in self.tool_config_file: self.tool_config_file.append( self.shed_tool_conf ) # Backwards compatibility for names used in too many places to fix diff --git a/lib/galaxy/model/orm/scripts.py b/lib/galaxy/model/orm/scripts.py index d7fce87ecb2..5f90ac78982 100644 --- a/lib/galaxy/model/orm/scripts.py +++ b/lib/galaxy/model/orm/scripts.py @@ -2,13 +2,17 @@ Code to support database helper scripts (create_db.py, manage_db.py, etc...). """ import logging -import os.path +import os +import sys -from galaxy.util.properties import load_app_properties +from migrate.versioning.shell import main as migrate_main + +from galaxy.util.properties import load_app_properties, get_data_dir, running_from_source log = logging.getLogger( __name__ ) +DEFAULT_CONFIG_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, 'config', 'sample')) DEFAULT_CONFIG_FILE = 'config/galaxy.ini' DEFAULT_CONFIG_PREFIX = '' DEFAULT_DATABASE = 'galaxy' @@ -16,42 +20,46 @@ DEFAULT_DATABASE = 'galaxy' DATABASE = { "galaxy": { - 'repo': 'lib/galaxy/model/migrate', + 'repo': 'galaxy/model/migrate', 'old_config_file': 'universe_wsgi.ini', - 'default_sqlite_file': './database/universe.sqlite', + 'default_sqlite_file': 'universe.sqlite', 'config_override': 'GALAXY_CONFIG_', }, "tool_shed": { - 'repo': 'lib/galaxy/webapps/tool_shed/model/migrate', + 'repo': 'galaxy/webapps/tool_shed/model/migrate', 'config_file': 'config/tool_shed.ini', 'old_config_file': 'tool_shed_wsgi.ini', - 'default_sqlite_file': './database/community.sqlite', + 'default_sqlite_file': 'community.sqlite', 'config_override': 'TOOL_SHED_CONFIG_', }, "install": { - 'repo': 'lib/galaxy/model/tool_shed_install/migrate', + 'repo': 'galaxy/model/tool_shed_install/migrate', 'old_config_file': 'universe_wsgi.ini', 'config_prefix': 'install_', - 'default_sqlite_file': './database/install.sqlite', + 'default_sqlite_file': 'install.sqlite', 'config_override': 'GALAXY_INSTALL_CONFIG_', }, } def read_config_file_arg( argv, default, old_default ): + config_file = None if '-c' in argv: pos = argv.index( '-c' ) argv.pop(pos) config_file = argv.pop( pos ) + elif not running_from_source: + if os.path.exists( os.path.basename( default ) ): + config_file = os.path.basename( default ) else: if not os.path.exists( default ) and os.path.exists( old_default ): config_file = old_default elif os.path.exists( default ): config_file = default - else: - config_file = default + ".sample" + if config_file is None: + config_file = os.path.join( DEFAULT_CONFIG_DIR, os.path.basename( default ) + ".sample" ) return config_file @@ -93,7 +101,7 @@ def get_config( argv, cwd=None ): default = os.path.join( cwd, default ) old_default = os.path.join( cwd, old_default ) config_file = read_config_file_arg( argv, default, old_default ) - repo = database_defaults[ 'repo' ] + repo = os.path.join( os.path.dirname( __file__ ), os.pardir, os.pardir, os.pardir, database_defaults[ 'repo' ] ) config_prefix = database_defaults.get( 'config_prefix', DEFAULT_CONFIG_PREFIX ) config_override = database_defaults.get( 'config_override', 'GALAXY_CONFIG_' ) default_sqlite_file = database_defaults[ 'default_sqlite_file' ] @@ -104,10 +112,12 @@ def get_config( argv, cwd=None ): if ("%sdatabase_connection" % config_prefix) in properties: db_url = properties[ "%sdatabase_connection" % config_prefix ] - elif ("%sdatabase_file" % config_prefix) in properties: - database_file = properties[ "%sdatabase_file" % config_prefix ] - db_url = "sqlite:///%s?isolation_level=IMMEDIATE" % database_file else: - db_url = "sqlite:///%s?isolation_level=IMMEDIATE" % default_sqlite_file + db_url = "sqlite:///%s?isolation_level=IMMEDIATE" % os.path.join(get_data_dir(properties), default_sqlite_file) return dict(db_url=db_url, repo=repo, config_file=config_file, database=database) + + +def manage_db(): + config = get_config(sys.argv) + migrate_main(repository=config['repo'], url=config['db_url']) diff --git a/lib/galaxy/util/properties.py b/lib/galaxy/util/properties.py index b5a498e3b49..29e840ab20d 100644 --- a/lib/galaxy/util/properties.py +++ b/lib/galaxy/util/properties.py @@ -97,4 +97,29 @@ class NicerConfigParser(ConfigParser): raise -__all__ = ['load_app_properties', 'NicerConfigParser'] +def _running_from_source(): + try: + # is there a better way to do this? + assert os.path.exists( 'run.sh' ) + assert os.path.exists( 'lib/galaxy/__init__.py' ) + assert os.path.exists( 'scripts/common_startup.sh' ) + return True + except AssertionError: + return False + + +running_from_source = _running_from_source() + + +def get_data_dir(properties): + data_dir = properties.get('data_dir', None) + if data_dir is None: + if running_from_source: + data_dir = './database' + else: + config_dir = properties.get('config_dir', os.path.dirname(properties['__file__'])) + data_dir = os.path.join(config_dir, 'data') + return data_dir + + +__all__ = ['load_app_properties', 'NicerConfigParser', 'running_from_source', 'get_data_dir'] diff --git a/setup.py b/setup.py index 9c71ed476f7..b50a473df31 100644 --- a/setup.py +++ b/setup.py @@ -28,6 +28,7 @@ setup( galaxy-paster=galaxy.util.pastescript.serve:run galaxy-main=galaxy.main:main galaxy-config=galaxy.config.script:main + galaxy-manage-db=galaxy.model.orm.scripts:manage_db ''', package_data={ 'galaxy': [ From 37e8efcde3ec3563deb7488ebba8790fc4a6362c Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 14 Jun 2016 17:34:48 -0400 Subject: [PATCH 026/141] Don't duplicate requirements (setup.py reads requirements from requirements.txt) --- .../dependencies/pinned-requirements.txt | 6 ++ setup.py | 63 +++++-------------- 2 files changed, 20 insertions(+), 49 deletions(-) diff --git a/lib/galaxy/dependencies/pinned-requirements.txt b/lib/galaxy/dependencies/pinned-requirements.txt index 52a22ed66ca..3b05b8d96fa 100644 --- a/lib/galaxy/dependencies/pinned-requirements.txt +++ b/lib/galaxy/dependencies/pinned-requirements.txt @@ -1,3 +1,9 @@ +# Warning: If you are modifying this file, please ensure it still parses +# properly in setup.py + +# Install dependencies from Galaxy's wheels server +--index-url https://wheels.galaxyproject.org/simple/ + # packages with C extensions bx-python==0.7.3 MarkupSafe==0.23 diff --git a/setup.py b/setup.py index b50a473df31..b879b8034eb 100644 --- a/setup.py +++ b/setup.py @@ -12,8 +12,21 @@ VERSION = None # sets VERSION (also VERSION_MAJOR and VERSION_MINOR) execfile('lib/galaxy/version.py') +# Note we really shouldn't do things this way, but it makes the most sense for now: +# https://caremad.io/2013/07/setup-vs-requirement/ +requirements = [] +with open('requirements.txt') as fh: + for line in fh: + line = line.strip() + if line.startswith('#') or line.startswith('-') or line == '': + continue + if '#' in line: + line = line[:line.index('#')].strip() + requirements.append(line) + scripts = ["scripts/galaxy"] + setup( name='galaxy', version=VERSION, @@ -57,55 +70,7 @@ setup( include_package_data=True, dependency_links=['https://wheels.galaxyproject.org/packages'], setup_requires=['pip>=8.1'], - # FIXME: read requirements.txt into a list... - install_requires=[ - 'bx-python==0.7.3', - 'MarkupSafe==0.23', - 'PyYAML==3.11', - 'SQLAlchemy==1.0.8', - 'mercurial==3.7.3', - 'numpy==1.9.2', - 'pycrypto==2.6.1', - 'Paste==2.0.2', - 'PasteDeploy==1.5.2', - 'docutils==0.12', - 'wchartype==0.1', - 'repoze.lru==0.6', - 'Routes==2.2', - 'WebOb==1.4.1', - 'WebHelpers==1.3', - 'Mako==1.0.2', - 'pytz==2015.4', - 'Babel==2.0', - 'Beaker==1.7.0', - 'dictobj==0.3.1', - 'nose==1.3.7', - 'Parsley==1.3', - 'six==1.9.0', - 'Whoosh==2.7.4', - 'Cheetah==2.4.4', - 'Markdown==2.6.3', - 'bioblend==0.7.0', - 'boto==2.38.0', - 'requests==2.8.1', - 'requests-toolbelt==0.4.0', - 'kombu==3.0.30', - 'amqp==1.4.8', - 'anyjson==0.3.3', - 'psutil==4.1.0', - 'pulsar-galaxy-lib==0.7.0.dev4', - 'sqlalchemy-migrate==0.10.0', - 'decorator==4.0.2', - 'Tempita==0.5.3dev', - 'sqlparse==0.1.16', - 'pbr==1.8.0', - 'svgwrite==1.1.6', - 'pyparsing==2.1.1', - 'Fabric==1.10.2', - 'paramiko==1.15.2', - 'ecdsa==0.13', - 'pysam==0.8.4+gx1', - ], + install_requires=requirements, extras_require={ 'postgresql': ['psycopg2==2.6.1'], }, From 2f409953df82ec656db930d83f80674a842538f3 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 15 Jun 2016 18:22:03 -0400 Subject: [PATCH 027/141] Do not attempt to create galaxy's root directory --- lib/galaxy/config/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 996868cdb0f..783a62563b5 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -714,7 +714,7 @@ class Configuration( object ): raise ConfigurationError( "Unable to create missing directory: %s\n%s" % ( path, e ) ) def check( self ): - paths_to_check = [ self.root, self.tool_data_path, self.data_dir, self.mutable_config_dir ] + paths_to_check = [ self.tool_data_path, self.data_dir, self.mutable_config_dir ] # Check that required directories exist for path in paths_to_check: if path not in [ None, False ] and not os.path.isdir( path ): From 47140f0506130cd88e98d75833ee4203032864d5 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 15 Jun 2016 22:52:41 -0400 Subject: [PATCH 028/141] Handle static paths in uWSGI in a very kludgey way (this should be improved) --- lib/galaxy/config/sample/galaxy.ini.sample | 2 ++ lib/galaxy/config/script.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/lib/galaxy/config/sample/galaxy.ini.sample b/lib/galaxy/config/sample/galaxy.ini.sample index 5e3731d7360..9acc9a3cd1e 100644 --- a/lib/galaxy/config/sample/galaxy.ini.sample +++ b/lib/galaxy/config/sample/galaxy.ini.sample @@ -55,6 +55,8 @@ processes = 2 http = 127.0.0.1:8080 threads = 2 master = True +static-map = /static=/path/to/galaxy/web/framework/static +static-map = /static/style=/path/to/galaxy/web/framework/static/style/blue # ---- Filters -------------------------------------------------------------- diff --git a/lib/galaxy/config/script.py b/lib/galaxy/config/script.py index 8d4fec2ea29..19be45361d5 100644 --- a/lib/galaxy/config/script.py +++ b/lib/galaxy/config/script.py @@ -33,6 +33,7 @@ DEFAULT_INI = "galaxy.ini" SAMPLES_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), 'sample')) GALAXY_CONFIG_TEMPLATE_FILE = os.path.join(SAMPLES_PATH, 'galaxy.ini.sample') +STATIC_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'web', 'framework', 'static')) # The sample is used as the default config file for Galaxy started without a # config, and we don't want to duplicate the whole thing into galaxy.config for @@ -42,6 +43,8 @@ GALAXY_CONFIG_SUBSTITUTIONS = { '#port = 8080': 'port = ${port}', '#host = 127.0.0.1': 'host = ${host}', 'http = 127.0.0.1:8080': '${uwsgi_transport} = ${host}:${port}', + 'static-map = /static=/path/to/galaxy/web/framework/static': 'static-map = /static=${static_path}', + 'static-map = /static/style=/path/to/galaxy/web/framework/static/style/blue': 'static-map = /static/style=${static_path}/style/blue', '#config_dir = None': 'config_dir = ${config_dir}', '#data_dir = None': 'data_dir = ${data_dir}', } @@ -152,6 +155,7 @@ def _handle_galaxy_ini(args, config_dir, data_dir): uwsgi_transport=uwsgi_transport, config_dir=config_dir, data_dir=data_dir, + static_path=STATIC_PATH, ) galaxy_config_template = [] From e77a534daa249686909e4fcff18a9018eeff9442 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 16 Jun 2016 13:52:34 -0400 Subject: [PATCH 029/141] Split sample job configs back into two separate files for tests --- ...onf.xml.sample => job_conf.xml.sample_advanced} | 14 -------------- lib/galaxy/config/sample/job_conf.xml.sample_basic | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 14 deletions(-) rename lib/galaxy/config/sample/{job_conf.xml.sample => job_conf.xml.sample_advanced} (98%) create mode 100644 lib/galaxy/config/sample/job_conf.xml.sample_basic diff --git a/lib/galaxy/config/sample/job_conf.xml.sample b/lib/galaxy/config/sample/job_conf.xml.sample_advanced similarity index 98% rename from lib/galaxy/config/sample/job_conf.xml.sample rename to lib/galaxy/config/sample/job_conf.xml.sample_advanced index 643935f4db2..c521158e461 100644 --- a/lib/galaxy/config/sample/job_conf.xml.sample +++ b/lib/galaxy/config/sample/job_conf.xml.sample_advanced @@ -1,18 +1,4 @@ - - - - - - - - - - - - - diff --git a/lib/galaxy/config/sample/job_conf.xml.sample_basic b/lib/galaxy/config/sample/job_conf.xml.sample_basic new file mode 100644 index 00000000000..4393a408a38 --- /dev/null +++ b/lib/galaxy/config/sample/job_conf.xml.sample_basic @@ -0,0 +1,14 @@ + + + + + + + + + + + + + From 280d2e3e627b3796630d1588cd4af9202dd6c8fe Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 16 Jun 2016 14:19:01 -0400 Subject: [PATCH 030/141] Fix tox tests and api/framework tests should at least be able to run now. --- lib/galaxy/config/script.py | 1 - lib/galaxy/model/orm/scripts.py | 12 ++++++------ lib/galaxy/tools/data_manager/manager.py | 6 +++++- test/base/driver_util.py | 12 ++++++------ test/unit/jobs/test_job_configuration.py | 4 ++-- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/lib/galaxy/config/script.py b/lib/galaxy/config/script.py index 19be45361d5..4fcd98ceaab 100644 --- a/lib/galaxy/config/script.py +++ b/lib/galaxy/config/script.py @@ -81,7 +81,6 @@ def main(argv=None): relative_config_dir = config_dir config_dir = os.path.abspath(config_dir) data_dir = args.data_dir - relative_data_dir = data_dir data_dir = os.path.abspath(data_dir) mode = _determine_mode(args) diff --git a/lib/galaxy/model/orm/scripts.py b/lib/galaxy/model/orm/scripts.py index 5f90ac78982..396c3f3b1d1 100644 --- a/lib/galaxy/model/orm/scripts.py +++ b/lib/galaxy/model/orm/scripts.py @@ -78,16 +78,16 @@ def get_config( argv, cwd=None ): ... with open(os.path.join(config_dir, 'config', path), 'w') as f: p.write(f) >>> write_ini('tool_shed.ini', 'database_connection', 'sqlite:///pg/testdb1') >>> config = get_config(['manage_db.py', 'tool_shed'], cwd=config_dir) - >>> config['repo'] - 'lib/galaxy/webapps/tool_shed/model/migrate' + >>> config['repo'].endswith('galaxy/webapps/tool_shed/model/migrate') + True >>> config['db_url'] 'sqlite:///pg/testdb1' - >>> write_ini('galaxy.ini', 'database_file', 'moo.sqlite') + >>> write_ini('galaxy.ini', 'data_dir', '/moo') >>> config = get_config(['manage_db.py'], cwd=config_dir) >>> config['db_url'] - 'sqlite:///moo.sqlite?isolation_level=IMMEDIATE' - >>> config['repo'] - 'lib/galaxy/model/migrate' + 'sqlite:////moo/universe.sqlite?isolation_level=IMMEDIATE' + >>> config['repo'].endswith('galaxy/model/migrate') + True """ if argv and (argv[-1] in DATABASE): database = argv.pop() # database name tool_shed, galaxy, or install. diff --git a/lib/galaxy/tools/data_manager/manager.py b/lib/galaxy/tools/data_manager/manager.py index 354de5b5b99..84a9897bc3a 100644 --- a/lib/galaxy/tools/data_manager/manager.py +++ b/lib/galaxy/tools/data_manager/manager.py @@ -32,7 +32,11 @@ class DataManagers( object ): continue self.load_from_xml( filename ) if self.app.config.shed_data_manager_config_file: - self.load_from_xml( self.app.config.shed_data_manager_config_file, store_tool_path=False, replace_existing=True ) + try: + self.load_from_xml( self.app.config.shed_data_manager_config_file, store_tool_path=False, replace_existing=True ) + except (OSError, IOError) as exc: + if exc.errno != errno.ENOENT or self.app.config.shed_data_manager_config_file_set: + raise def load_from_xml( self, xml_filename, store_tool_path=True, replace_existing=False ): try: diff --git a/test/base/driver_util.py b/test/base/driver_util.py index 6db9dc74941..f1ceeef7d7f 100644 --- a/test/base/driver_util.py +++ b/test/base/driver_util.py @@ -133,11 +133,13 @@ def setup_galaxy_config( if tool_dependency_dir is None: tool_dependency_dir = tempfile.mkdtemp(dir=tmpdir, prefix="tool_dependencies") tool_data_table_config_path = _tool_data_table_config_path(default_tool_data_table_config_path) - default_data_manager_config = 'config/data_manager_conf.xml.sample' + default_data_manager_config = None for data_manager_config in ['config/data_manager_conf.xml', 'data_manager_conf.xml' ]: if os.path.exists( data_manager_config ): default_data_manager_config = data_manager_config - data_manager_config_file = "%s,test/functional/tools/sample_data_manager_conf.xml" % default_data_manager_config + data_manager_config_file = "test/functional/tools/sample_data_manager_conf.xml" + if default_data_manager_config is not None: + data_manager_config_file = "%s,%s" % (default_data_manager_config, data_manager_config_file) master_api_key = get_master_api_key() # Data Manager testing temp path @@ -153,8 +155,6 @@ def setup_galaxy_config( tool_conf = "%s,%s" % (tool_conf, shed_tool_conf) shed_tool_data_table_config = default_shed_tool_data_table_config - if shed_tool_data_table_config is None: - shed_tool_data_table_config = 'config/shed_tool_data_table_conf.xml' config = dict( admin_users='test@bx.psu.edu', @@ -210,7 +210,7 @@ def _tool_data_table_config_path(default_tool_data_table_config_path=None): if tool_data_table_config_path is None: # ... otherise find whatever Galaxy would use as the default and # the sample data for fucntional tests to that. - default_tool_data_config = 'config/tool_data_table_conf.xml.sample' + default_tool_data_config = 'lib/galaxy/config/sample/tool_data_table_conf.xml.sample' for tool_data_config in ['config/tool_data_table_conf.xml', 'tool_data_table_conf.xml' ]: if os.path.exists( tool_data_config ): default_tool_data_config = tool_data_config @@ -455,7 +455,7 @@ def build_galaxy_app(simple_kwargs): """ log.info("Galaxy database connection: %s", simple_kwargs["database_connection"]) simple_kwargs['global_conf'] = get_webapp_global_conf() - simple_kwargs['global_conf']['__file__'] = "config/galaxy.ini.sample" + simple_kwargs['global_conf']['__file__'] = "lib/galaxy/config/sample/galaxy.ini.sample" simple_kwargs = load_app_properties( kwds=simple_kwargs ) diff --git a/test/unit/jobs/test_job_configuration.py b/test/unit/jobs/test_job_configuration.py index ace89b38c3a..6f75e4c0f5a 100644 --- a/test/unit/jobs/test_job_configuration.py +++ b/test/unit/jobs/test_job_configuration.py @@ -9,8 +9,8 @@ from galaxy.jobs import JobConfiguration # File would be slightly more readable if contents were embedded directly, but # there are advantages to testing the documentation/examples. -SIMPLE_JOB_CONF = os.path.join( os.path.dirname( __file__ ), "..", "..", "..", "config", "job_conf.xml.sample_basic" ) -ADVANCED_JOB_CONF = os.path.join( os.path.dirname( __file__ ), "..", "..", "..", "config", "job_conf.xml.sample_advanced" ) +SIMPLE_JOB_CONF = os.path.join( os.path.dirname( __file__ ), "..", "..", "..", "lib", "galaxy", "config", "sample", "job_conf.xml.sample_basic" ) +ADVANCED_JOB_CONF = os.path.join( os.path.dirname( __file__ ), "..", "..", "..", "lib", "galaxy", "config", "sample", "job_conf.xml.sample_advanced" ) class JobConfXmlParserTestCase( unittest.TestCase ): From cf7828a1ac9888b3d5e2b00d4fbd584817a8e8ec Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 20 Jun 2016 16:48:53 -0400 Subject: [PATCH 031/141] Add a --db-conn option to galaxy-config (Ideally in the future this would be managed more automatically rather than having to specify the whole URI) and ensure tool migrations are called with the correct interpreter. --- lib/galaxy/config/script.py | 7 +++++++ lib/tool_shed/galaxy_install/migrate/check.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/config/script.py b/lib/galaxy/config/script.py index 4fcd98ceaab..7ac94097ab7 100644 --- a/lib/galaxy/config/script.py +++ b/lib/galaxy/config/script.py @@ -27,9 +27,11 @@ HELP_INSTALL = ("Install optional dependencies required by specified configurati HELP_HOST = ('Host to bind Galaxy to - defaults to localhost. Specify an IP ' 'address or "all" to listen on all interfaces.') HELP_PORT = ("Port to bind Galaxy to.") +HELP_DB_CONN = ('Galaxy database connection URI.') DEFAULT_HOST = "localhost" DEFAULT_INI = "galaxy.ini" +DEFAULT_DB_CONN = 'sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE' SAMPLES_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), 'sample')) GALAXY_CONFIG_TEMPLATE_FILE = os.path.join(SAMPLES_PATH, 'galaxy.ini.sample') @@ -47,6 +49,7 @@ GALAXY_CONFIG_SUBSTITUTIONS = { 'static-map = /static/style=/path/to/galaxy/web/framework/static/style/blue': 'static-map = /static/style=${static_path}/style/blue', '#config_dir = None': 'config_dir = ${config_dir}', '#data_dir = None': 'data_dir = ${data_dir}', + '#database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE': 'database_connection = ${database_connection}', } @@ -69,6 +72,9 @@ def main(argv=None): arg_parser.add_argument("--port", default="8080", help=HELP_PORT) + arg_parser.add_argument("--db-conn", + default=DEFAULT_DB_CONN, + help=HELP_DB_CONN) arg_parser.add_argument("--install", action="store_true", help=HELP_INSTALL) @@ -155,6 +161,7 @@ def _handle_galaxy_ini(args, config_dir, data_dir): config_dir=config_dir, data_dir=data_dir, static_path=STATIC_PATH, + database_connection=args.db_conn, ) galaxy_config_template = [] diff --git a/lib/tool_shed/galaxy_install/migrate/check.py b/lib/tool_shed/galaxy_install/migrate/check.py index 6319bcdd266..7cbb45ddcc2 100644 --- a/lib/tool_shed/galaxy_install/migrate/check.py +++ b/lib/tool_shed/galaxy_install/migrate/check.py @@ -60,7 +60,7 @@ def verify_tools( app, url, galaxy_config_file=None, engine_options={} ): config_arg = " -c %s" % galaxy_config_file # FIXME: this doesn't seem right. manage_tools = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'scripts', 'manage_tools.py' ) ) - cmd = 'python %s%s upgrade' % (manage_tools, config_arg) + cmd = '%s %s%s upgrade' % (sys.executable, manage_tools, config_arg) proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ) return_code = proc.wait() output = proc.stdout.read( 32768 ) From 891daf4f82eb45c692f3fc5542cea35f94e10118 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 20 Jun 2016 22:53:02 -0400 Subject: [PATCH 032/141] When running under uWSGI, sys.executable is the path to uwsgi. Attempt to locate python. --- lib/galaxy/util/__init__.py | 28 +++++++++++++++++++ lib/tool_shed/galaxy_install/migrate/check.py | 3 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/util/__init__.py b/lib/galaxy/util/__init__.py index 13d8f2a68a9..9e0548fc98e 100644 --- a/lib/galaxy/util/__init__.py +++ b/lib/galaxy/util/__init__.py @@ -39,6 +39,11 @@ except ImportError: docutils_core = None docutils_html4css1 = None +try: + import uwsgi +except ImportError: + uwsgi = None + from .inflection import English, Inflector inflector = Inflector(English) @@ -1465,6 +1470,29 @@ def safe_relpath(path): return True +def _executable(): + exe = sys.executable + if exe.endswith('uwsgi'): + virtualenv = None + if uwsgi is not None: + for name in ('home', 'virtualenv', 'venv', 'pyhome'): + if name in uwsgi.opt: + virtualenv = uwsgi.opt[name] + break + if virtualenv is None and 'VIRTUAL_ENV' in os.environ: + virtualenv = os.environ['VIRTUAL_ENV'] + if virtualenv is not None: + exe = os.path.join(virtualenv, 'bin', 'python') + else: + exe = os.path.join(os.path.dirname(exe), 'python') + if not os.path.exists(exe): + exe = 'python' + return exe + + +executable = _executable() + + class ExecutionTimer(object): def __init__(self): diff --git a/lib/tool_shed/galaxy_install/migrate/check.py b/lib/tool_shed/galaxy_install/migrate/check.py index 7cbb45ddcc2..cff820c637a 100644 --- a/lib/tool_shed/galaxy_install/migrate/check.py +++ b/lib/tool_shed/galaxy_install/migrate/check.py @@ -6,6 +6,7 @@ import sys from migrate.versioning import repository, schema from sqlalchemy import create_engine, MetaData, Table +from galaxy.util import executable from galaxy.util.odict import odict from tool_shed.util import common_util @@ -60,7 +61,7 @@ def verify_tools( app, url, galaxy_config_file=None, engine_options={} ): config_arg = " -c %s" % galaxy_config_file # FIXME: this doesn't seem right. manage_tools = os.path.abspath( os.path.join( os.path.dirname( __file__ ), 'scripts', 'manage_tools.py' ) ) - cmd = '%s %s%s upgrade' % (sys.executable, manage_tools, config_arg) + cmd = '%s %s%s upgrade' % (executable, manage_tools, config_arg) proc = subprocess.Popen( args=cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT ) return_code = proc.wait() output = proc.stdout.read( 32768 ) From d4ffd60ff51c824a22f78766c6a16b4fdd2a7d16 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 5 Jul 2016 16:14:35 -0400 Subject: [PATCH 033/141] (Slightly) refactor galaxy.config:Configuration for installable galaxy changes so they do not have to be copy/pasted to the tool shed's Configuration class. --- lib/galaxy/config/__init__.py | 186 +++++++++++++------------ lib/galaxy/webapps/tool_shed/config.py | 34 +++-- 2 files changed, 116 insertions(+), 104 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 783a62563b5..d0848ac8a6c 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -49,31 +49,28 @@ def resolve_path( path, root ): return path -class Configuration( object ): - deprecated_options = (None,) - - def __init__( self, **kwargs ): - self.config_dict = kwargs - self.root = kwargs.get( 'root_dir', '.' ) - - self.config_file = None - global_conf = kwargs.get( 'global_conf', None ) +class BaseAppConfiguration(object): + def _set_config_base(self, config_kwargs): + self.sample_config_dir = os.path.join(os.path.dirname(__file__), 'sample') # TODO: under what conditions is global_conf None, or does it not # contain __file__? + global_conf = config_kwargs.get( 'global_conf', None ) + self.config_file = None if global_conf and "__file__" in global_conf: self.config_file = global_conf['__file__'] elif running_from_source: - for f in ( 'config/galaxy.ini', 'config/galaxy.ini.sample' ): - if os.path.exists( f ): + for f in ('config/%s.ini' % self.__class__.default_config_file_name, + os.path.join(self.sample_config_dir, '%s.sample' % self.__class__.default_config_file_name)): + if os.path.exists(f): self.config_file = f break else: - log.warning( "global_conf unset or __file__ not in global_conf and " - "not running from source, unable to determine config file, " - "global_conf is: %s", global_conf ) - assert self.config_file is not None, "Unable to determine galaxy config file" - self.config_dir = kwargs.get( 'config_dir', os.path.dirname( self.config_file ) ) - self.data_dir = kwargs.get( 'data_dir', None ) + log.warning("global_conf unset or __file__ not in global_conf and " + "not running from source, unable to determine config file, " + "global_conf is: %s", global_conf) + assert self.config_file is not None, "Unable to determine app config file" + self.config_dir = config_kwargs.get('config_dir', os.path.dirname(self.config_file)) + self.data_dir = config_kwargs.get('data_dir', None) # mutable_config_dir is intentionally not configurable. You can # override individual mutable configs with config options, but they # should be considered Galaxy-controlled data files and will by default @@ -91,7 +88,56 @@ class Configuration( object ): log.debug( "Configuration directory is %s", self.config_dir ) log.debug( "Data directory is %s", self.data_dir ) - self.sample_config_dir = os.path.join( os.path.dirname( __file__ ), 'sample' ) + def _in_mutable_config_dir(self, path): + return os.path.join(self.mutable_config_dir, path) + + def _in_config_dir(self, path): + return os.path.join(self.config_dir, path) + + def _in_sample_dir(self, path): + return os.path.join(self.sample_config_dir, path) + + def _parse_config_file_options(self, defaults, listify_defaults, config_kwargs): + for var, defaults in defaults.items(): + if config_kwargs.get( var, None ) is not None: + path = config_kwargs.get( var ) + setattr( self, var + '_set', True ) + else: + for default in defaults: + if os.path.exists( resolve_path( default, self.root ) ): + path = default + break + else: + path = defaults[-1] + setattr( self, var + '_set', False ) + setattr( self, var, resolve_path( path, self.root ) ) + + for var, defaults in listify_defaults.items(): + paths = [] + if config_kwargs.get( var, None ) is not None: + paths = listify( config_kwargs.get( var ) ) + else: + for default in defaults: + for path in listify( default ): + if not os.path.exists( resolve_path( path, self.root ) ): + break + else: + paths = listify( default ) + break + else: + paths = listify( defaults[-1] ) + setattr( self, var, [ resolve_path( x, self.root ) for x in paths ] ) + + +class GalaxyAppConfiguration( BaseAppConfiguration ): + deprecated_options = (None,) + default_config_file_name = 'galaxy.ini' + + def __init__( self, **kwargs ): + self.config_dict = kwargs + self.root = kwargs.get( 'root_dir', '.' ) + + self._set_config_base( kwargs ) # Configs no longer read from samples self.migrated_tools_config = resolve_path( kwargs.get( 'migrated_tools_conf', 'migrated_tools_conf.xml' ), self.mutable_config_dir ) @@ -100,7 +146,7 @@ class Configuration( object ): setattr( self, name + '_set', kwargs.get( name, None ) is not None ) # Resolve paths of other config files - self.__parse_config_file_options( kwargs ) + self.parse_config_file_options( kwargs ) # Collect the umask and primary gid from the environment self.umask = os.umask( 0o77 ) # get the current umask @@ -409,6 +455,7 @@ class Configuration( object ): self.irods_root_collection_path = kwargs.get( 'irods_root_collection_path', None ) self.irods_default_resource = kwargs.get( 'irods_default_resource', None ) # Parse global_conf and save the parser + global_conf = kwargs.get( 'global_conf', None ) global_conf_parser = configparser.ConfigParser() self.global_conf_parser = global_conf_parser if self.config_file is not None: @@ -549,44 +596,24 @@ class Configuration( object ): else: return None - def reload_sanitize_whitelist( self, explicit=True ): - self.sanitize_whitelist = [] - try: - with open(self.sanitize_whitelist_file, 'rt') as f: - for line in f.readlines(): - if not line.startswith("#"): - self.sanitize_whitelist.append(line.strip()) - except IOError: - if explicit: - log.warning("Sanitize log file explicitly specified as '%s' but does not exist, continuing with no tools whitelisted.", self.sanitize_whitelist_file) - - def __in_mutable_config_dir( self, path ): - return os.path.join( self.mutable_config_dir, path ) - - def __in_config_dir( self, path ): - return os.path.join( self.config_dir, path ) - - def __in_sample_dir( self, path ): - return os.path.join( self.sample_config_dir, path ) - - def __parse_config_file_options( self, kwargs ): + def parse_config_file_options( self, kwargs ): """ Backwards compatibility for config files moved to the config/ dir. """ defaults = dict( - auth_config_file=[ self.__in_config_dir( 'auth_conf.xml' ) ], - data_manager_config_file=[ self.__in_config_dir( 'data_manager_conf.xml' ) ], - datatypes_config_file=[ self.__in_config_dir( 'datatypes_conf.xml' ), self.__in_sample_dir( 'datatypes_conf.xml.sample' ) ], - external_service_type_config_file=[ self.__in_config_dir( 'external_service_types_conf.xml' ) ], - job_config_file=[ self.__in_config_dir( 'job_conf.xml' ) ], - job_metrics_config_file=[ self.__in_config_dir( 'job_metrics_conf.xml' ) ], - dependency_resolvers_config_file=[ self.__in_config_dir( 'dependency_resolvers_conf.xml' ) ], - job_resource_params_file=[ self.__in_config_dir( 'job_resource_params_conf.xml' ) ], - object_store_config_file=[ self.__in_config_dir( 'object_store_conf.xml' ) ], - openid_config_file=[ self.__in_config_dir( 'openid_conf.xml' ) ], - shed_data_manager_config_file=[ self.__in_mutable_config_dir( 'shed_data_manager_conf.xml' ) ], - shed_tool_data_table_config=[ self.__in_mutable_config_dir( 'shed_tool_data_table_conf.xml' ) ], - workflow_schedulers_config_file=[ self.__in_config_dir( 'config/workflow_schedulers_conf.xml' ) ], + auth_config_file=[ self._in_config_dir( 'auth_conf.xml' ) ], + data_manager_config_file=[ self._in_config_dir( 'data_manager_conf.xml' ) ], + datatypes_config_file=[ self._in_config_dir( 'datatypes_conf.xml' ), self._in_sample_dir( 'datatypes_conf.xml.sample' ) ], + external_service_type_config_file=[ self._in_config_dir( 'external_service_types_conf.xml' ) ], + job_config_file=[ self._in_config_dir( 'job_conf.xml' ) ], + job_metrics_config_file=[ self._in_config_dir( 'job_metrics_conf.xml' ) ], + dependency_resolvers_config_file=[ self._in_config_dir( 'dependency_resolvers_conf.xml' ) ], + job_resource_params_file=[ self._in_config_dir( 'job_resource_params_conf.xml' ) ], + object_store_config_file=[ self._in_config_dir( 'object_store_conf.xml' ) ], + openid_config_file=[ self._in_config_dir( 'openid_conf.xml' ) ], + shed_data_manager_config_file=[ self._in_mutable_config_dir( 'shed_data_manager_conf.xml' ) ], + shed_tool_data_table_config=[ self._in_mutable_config_dir( 'shed_tool_data_table_conf.xml' ) ], + workflow_schedulers_config_file=[ self._in_config_dir( 'config/workflow_schedulers_conf.xml' ) ], ) if running_from_source: @@ -612,42 +639,14 @@ class Configuration( object ): else: listify_defaults = { 'tool_data_table_config_path': [ - self.__in_config_dir( 'tool_data_table_conf.xml' ), - self.__in_sample_dir( 'tool_data_table_conf.xml.sample' ) ], + self._in_config_dir( 'tool_data_table_conf.xml' ), + self._in_sample_dir( 'tool_data_table_conf.xml.sample' ) ], 'tool_config_file': [ - self.__in_config_dir( 'tool_conf.xml' ), - self.__in_sample_dir( 'tool_conf.xml.sample' ) ] + self._in_config_dir( 'tool_conf.xml' ), + self._in_sample_dir( 'tool_conf.xml.sample' ) ] } - for var, defaults in defaults.items(): - if kwargs.get( var, None ) is not None: - path = kwargs.get( var ) - setattr( self, var + '_set', True ) - else: - for default in defaults: - if os.path.exists( resolve_path( default, self.root ) ): - path = default - break - else: - path = defaults[-1] - setattr( self, var + '_set', False ) - setattr( self, var, resolve_path( path, self.root ) ) - - for var, defaults in listify_defaults.items(): - paths = [] - if kwargs.get( var, None ) is not None: - paths = listify( kwargs.get( var ) ) - else: - for default in defaults: - for path in listify( default ): - if not os.path.exists( resolve_path( path, self.root ) ): - break - else: - paths = listify( default ) - break - else: - paths = listify( defaults[-1] ) - setattr( self, var, [ resolve_path( x, self.root ) for x in paths ] ) + self._parse_config_file_options( defaults, listify_defaults, kwargs ) # If the user has configured a shed tool config in tool_config_file # this would add a second, but since we're not parsing them yet we @@ -659,6 +658,17 @@ class Configuration( object ): self.datatypes_config = self.datatypes_config_file self.tool_configs = self.tool_config_file + def reload_sanitize_whitelist( self, explicit=True ): + self.sanitize_whitelist = [] + try: + with open(self.sanitize_whitelist_file, 'rt') as f: + for line in f.readlines(): + if not line.startswith("#"): + self.sanitize_whitelist.append(line.strip()) + except IOError: + if explicit: + log.warning("Sanitize log file explicitly specified as '%s' but does not exist, continuing with no tools whitelisted.", self.sanitize_whitelist_file) + def __read_tool_job_config( self, global_conf_parser, section, key ): try: tool_runners_config = global_conf_parser.items( section ) @@ -793,6 +803,10 @@ class Configuration( object ): return [ parse( v ) for v in allowed_origin_hostnames if v ] +# legacy naming +Configuration = GalaxyAppConfiguration + + def get_database_engine_options( kwargs, model_prefix='' ): """ Allow options for the SQLAlchemy database engine to be passed by using diff --git a/lib/galaxy/webapps/tool_shed/config.py b/lib/galaxy/webapps/tool_shed/config.py index bb9d61571ce..4b9763fcfc8 100644 --- a/lib/galaxy/webapps/tool_shed/config.py +++ b/lib/galaxy/webapps/tool_shed/config.py @@ -8,6 +8,7 @@ import logging import logging.config import ConfigParser from datetime import timedelta +from galaxy.config import BaseAppConfiguration from galaxy.util import string_as_bool from galaxy.web.formatting import expand_pretty_datetime_format from galaxy.version import VERSION, VERSION_MAJOR @@ -26,14 +27,17 @@ class ConfigurationError( Exception ): pass -class Configuration( object ): +class ToolShedAppConfiguration( BaseAppConfiguration ): + default_config_file_name = 'tool_shed.ini' def __init__( self, **kwargs ): self.config_dict = kwargs self.root = kwargs.get( 'root_dir', '.' ) + self._set_config_base( kwargs ) + # Resolve paths of other config files - self.__parse_config_file_options( kwargs ) + self.parse_config_file_options( kwargs ) # Collect the umask and primary gid from the environment self.umask = os.umask( 077 ) # get the current umask @@ -42,8 +46,9 @@ class Configuration( object ): self.version_major = VERSION_MAJOR self.version = VERSION # Database related configuration - self.database = resolve_path( kwargs.get( "database_file", "database/community.sqlite" ), self.root ) self.database_connection = kwargs.get( "database_connection", False ) + self.database_connection = kwargs.get( "database_connection", + "sqlite:///%s?isolation_level=IMMEDIATE" % resolve_path( "community.sqlite", self.data_dir ) ) self.database_engine_options = get_database_engine_options( kwargs ) self.database_create_tables = string_as_bool( kwargs.get( "database_create_tables", "True" ) ) # Repository and Tool search API @@ -168,24 +173,14 @@ class Configuration( object ): else: return None - def __parse_config_file_options( self, kwargs ): + def parse_config_file_options( self, kwargs ): defaults = dict( - auth_config_file=[ 'config/auth_conf.xml', 'config/auth_conf.xml.sample' ], - datatypes_config_file=[ 'config/datatypes_conf.xml', 'datatypes_conf.xml', 'config/datatypes_conf.xml.sample' ], - shed_tool_data_table_config=[ 'shed_tool_data_table_conf.xml', 'config/shed_tool_data_table_conf.xml' ], + auth_config_file=[ self._in_config_dir( 'config/auth_conf.xml' ) ], + datatypes_config_file=[ self._in_config_dir( 'datatypes_conf.xml' ), self._in_sample_dir( 'datatypes_conf.xml.sample' ) ], + shed_tool_data_table_config=[ self._in_mutable_config_dir( 'shed_tool_data_table_conf.xml' ) ], ) - for var, defaults in defaults.items(): - if kwargs.get( var, None ) is not None: - path = kwargs.get( var ) - else: - for default in defaults: - if os.path.exists( resolve_path( default, self.root ) ): - path = default - break - else: - path = defaults[-1] - setattr( self, var, resolve_path( path, self.root ) ) + self._parse_config_file_options( defaults, dict(), kwargs ) # Backwards compatibility for names used in too many places to fix self.datatypes_config = self.datatypes_config_file @@ -229,6 +224,9 @@ class Configuration( object ): return user is not None and user.email in admin_users +Configuration = ToolShedAppConfiguration + + def get_database_engine_options( kwargs ): """ Allow options for the SQLAlchemy database engine to be passed by using From 1cbef8c918ff05906fcfb8c5828b4a14f74bbfdf Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 5 Jul 2016 16:26:05 -0400 Subject: [PATCH 034/141] Fix a rebase mistake --- .ci/py3_sources.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.ci/py3_sources.txt b/.ci/py3_sources.txt index 95a0f0e65c3..ebe4b85dcc2 100644 --- a/.ci/py3_sources.txt +++ b/.ci/py3_sources.txt @@ -28,6 +28,7 @@ lib/galaxy/tags/ lib/galaxy/tools/bundled/data_source/ lib/galaxy/tools/bundled/evolution/ lib/galaxy/tools/bundled/sr_mapping/ +lib/galaxy/tools/bundled/stats/aggregate_scores_in_intervals.py lib/galaxy/tools/bundled/visualization/ lib/galaxy/tools/cwl/ lib/galaxy/tools/deps/ @@ -75,11 +76,3 @@ scripts/db_shell.py scripts/drmaa_external_runner.py test/ tool_list.py -<<<<<<< HEAD -tools/data_source/ -tools/evolution/ -tools/sr_mapping/ -tools/stats/aggregate_scores_in_intervals.py -tools/visualization/ -======= ->>>>>>> Fix linting errors From 979817d00b89d14d20ff9159b26d34dd0a6fe849 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 7 Jul 2016 13:29:55 -0400 Subject: [PATCH 035/141] Fix paths to tool migrations --- lib/galaxy/webapps/galaxy/controllers/admin.py | 8 +++++--- lib/tool_shed/util/common_util.py | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/controllers/admin.py b/lib/galaxy/webapps/galaxy/controllers/admin.py index 7757e5aada0..31dcddb305b 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin.py @@ -766,7 +766,7 @@ class AdminGalaxy( BaseUIController, Admin, AdminActions, UsesQuotaMixin, QuotaP def check_for_tool_dependencies( self, trans, migration_stage ): # Get the 000x_tools.xml file associated with migration_stage. - tools_xml_file_path = os.path.abspath( os.path.join( trans.app.config.root, 'scripts', 'migrate_tools', '%04d_tools.xml' % migration_stage ) ) + tools_xml_file_path = os.path.abspath( os.path.join( common_util.TOOL_MIGRATION_SCRIPTS_DIR, '%04d_tools.xml' % migration_stage ) ) tree = galaxy.util.parse_xml( tools_xml_file_path ) root = tree.getroot() tool_shed = root.get( 'name' ) @@ -800,10 +800,12 @@ class AdminGalaxy( BaseUIController, Admin, AdminActions, UsesQuotaMixin, QuotaP status = galaxy.util.restore_text( kwd.get( 'status', 'done' ) ) migration_stages_dict = odict() migration_modules = [] - migration_scripts_dir = os.path.abspath( os.path.join( trans.app.config.root, 'lib', 'tool_shed', 'galaxy_install', 'migrate', 'versions' ) ) + migration_scripts_dir = common_util.TOOL_MIGRATION_VERSIONS_DIR migration_scripts_dir_contents = os.listdir( migration_scripts_dir ) for item in migration_scripts_dir_contents: - if os.path.isfile( os.path.join( migration_scripts_dir, item ) ) and item.endswith( '.py' ): + if ( os.path.isfile( os.path.join( migration_scripts_dir, item ) ) + and item.endswith( '.py' ) + and not item.startswith( '_' ) ): module = item.replace( '.py', '' ) migration_modules.append( module ) if migration_modules: diff --git a/lib/tool_shed/util/common_util.py b/lib/tool_shed/util/common_util.py index 57b5c763ca6..700e3b20e05 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/tool_shed/util/common_util.py @@ -11,6 +11,10 @@ from tool_shed.util import encoding_util, xml_util log = logging.getLogger( __name__ ) REPOSITORY_OWNER = 'devteam' +TOOL_MIGRATION_SCRIPTS_DIR = os.path.abspath( os.path.join( + os.path.dirname( __file__ ), os.pardir, 'galaxy_install', 'migrate', 'scripts' ) ) +TOOL_MIGRATION_VERSIONS_DIR = os.path.abspath( os.path.join( + os.path.dirname( __file__ ), os.pardir, 'galaxy_install', 'migrate', 'versions' ) ) def accumulate_tool_dependencies( tool_shed_accessible, tool_dependencies, all_tool_dependencies ): From c1e06f6792cdd0fa270675cdda724f0f49c52e25 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Thu, 7 Jul 2016 13:34:37 -0400 Subject: [PATCH 036/141] Do not use -c with manage_db.sh in Travis' startup tests, Galaxy can find the sample config on its own. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 83463757ea4..968fd3dd6a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,7 +23,7 @@ before_install: install: - pip install tox - if [ "$TOX_ENV" == "qunit" ]; then bash -c 'cd test/qunit && npm install'; fi - - if [ "$TOX_ENV" == "first_startup" ]; then bash -c "bash scripts/common_startup.sh && wget -q https://github.com/jmchilton/galaxy-downloads/raw/master/db_gx_rev_0127.sqlite && mv db_gx_rev_0127.sqlite database/universe.sqlite && bash manage_db.sh -c ./config/galaxy.ini.sample upgrade"; fi + - if [ "$TOX_ENV" == "first_startup" ]; then bash -c "bash scripts/common_startup.sh && wget -q https://github.com/jmchilton/galaxy-downloads/raw/master/db_gx_rev_0127.sqlite && mv db_gx_rev_0127.sqlite database/universe.sqlite && bash manage_db.sh upgrade"; fi script: tox -e $TOX_ENV From 00d6a9b07ab356602bc0d1de2e64edc0ef6fcf43 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 1 Feb 2019 23:02:41 -0500 Subject: [PATCH 037/141] Revert "Move tools, images, and templates in to lib/galaxy/ for inclusion in" This reverts commit 77c2d153619a182d5be165fccd2cb85ab60b9725. I'll move whatever needs to be moved after merging. --- .../biom/biom_simple.xml | 0 .../ensembl/ensembl_bam.xml | 0 .../ensembl/ensembl_gff.xml | 0 .../ensembl/ensembl_interval_as_bed.xml | 0 .../gbrowse/gbrowse_gff.xml | 0 .../gbrowse/gbrowse_interval_as_bed.xml | 0 .../gbrowse/gbrowse_wig.xml | 0 .../configs => display_applications}/igb/bam.xml | 0 .../configs => display_applications}/igb/bb.xml | 0 .../configs => display_applications}/igb/bed.xml | 0 .../igb/bedgraph.xml | 0 .../configs => display_applications}/igb/bigwig.xml | 0 .../configs => display_applications}/igb/gtf.xml | 0 .../configs => display_applications}/igb/wig.xml | 0 .../configs => display_applications}/igv/bam.xml | 0 .../configs => display_applications}/igv/gff.xml | 0 .../igv/interval_as_bed.xml | 0 .../configs => display_applications}/igv/vcf.xml | 0 .../configs => display_applications}/iobio/bam.xml | 0 .../configs => display_applications}/iobio/vcf.xml | 0 .../rviewer/bed.xml | 0 .../rviewer/vcf.xml | 0 .../configs => display_applications}/ucsc/bam.xml | 0 .../ucsc/bigbed.xml | 0 .../ucsc/bigwig.xml | 0 .../ucsc/interval_as_bed.xml | 0 .../ucsc/maf_customtrack.xml | 0 .../configs => display_applications}/ucsc/vcf.xml | 0 lib/galaxy/web/framework/static/src | 1 - lib/galaxy/web/framework/static/toolshed/src | 1 - .../images/Armitagep_manhattan.png | Bin .../static => static}/images/Armitagep_qqplot.png | Bin .../framework/static => static}/images/add_icon.png | Bin .../static => static}/images/add_icon_dark.png | Bin .../static => static}/images/aggregate_history1.png | Bin .../static => static}/images/aggregate_history2.png | Bin .../static => static}/images/bar_chart.png | Bin .../framework/static => static}/images/bed_warn.png | Bin .../framework/static => static}/images/closebox.png | Bin .../images/dat_points_table_brows_1.png | Bin .../static => static}/images/ddarrowsplit.png | Bin .../framework/static => static}/images/delete.gif | Bin .../images/delete_tag_icon_gray.png | Bin .../images/delete_tag_icon_white.png | Bin .../images/documents-stack-faded.png | Bin .../static => static}/images/documents-stack.png | Bin .../static => static}/images/dropdownarrow.png | Bin .../web/framework/static => static}/images/dw.gif | Bin .../framework/static => static}/images/fetchTax.png | Bin .../images/fonts/fontawesome-webfont.eot | Bin .../images/fonts/fontawesome-webfont.ttf | Bin .../images/fonts/fontawesome-webfont.woff | Bin .../images/fonts/iconic_stroke.eot | Bin .../images/fonts/iconic_stroke.otf | Bin .../images/fonts/iconic_stroke.svg | 0 .../images/fonts/iconic_stroke.ttf | Bin .../images/fugue/application-dock-270-bw.png | Bin .../images/fugue/application-dock-270.png | Bin .../images/fugue/arrow-000-small-bw.png | Bin .../static => static}/images/fugue/arrow-090.png | Bin .../static => static}/images/fugue/arrow-circle.png | Bin .../images/fugue/arrow-resize-090-bw.png | Bin .../images/fugue/arrow-resize-090.png | Bin .../images/fugue/arrow-split-bw.png | Bin .../static => static}/images/fugue/arrow-split.png | Bin .../images/fugue/arrow-transition-270-bw.png | Bin .../images/fugue/arrow-transition-bw.png | Bin .../images/fugue/asterisk-small-outline.png | Bin .../images/fugue/asterisk-small-yellow.png | Bin .../images/fugue/asterisk-small.png | Bin .../images/fugue/block--plus-bw.png | Bin .../static => static}/images/fugue/block--plus.png | Bin .../static => static}/images/fugue/bookmarks-bw.png | Bin .../static => static}/images/fugue/bookmarks.png | Bin .../static => static}/images/fugue/bug.png | Bin .../static => static}/images/fugue/chart.png | Bin .../images/fugue/chevron-expand-bw.png | Bin .../images/fugue/chevron-expand.png | Bin .../static => static}/images/fugue/chevron.png | Bin .../static => static}/images/fugue/control-270.png | Bin .../static => static}/images/fugue/cross-button.png | Bin .../images/fugue/cross-circle-bw.png | Bin .../static => static}/images/fugue/cross-circle.png | Bin .../images/fugue/cross-small-bw.png | Bin .../static => static}/images/fugue/cross.png | Bin .../images/fugue/disk--arrow-bw.png | Bin .../static => static}/images/fugue/disk--arrow.png | Bin .../static => static}/images/fugue/disk.png | Bin .../static => static}/images/fugue/exclamation.png | Bin .../static => static}/images/fugue/external.png | Bin .../static => static}/images/fugue/eye.png | Bin .../static => static}/images/fugue/gear-bw.png | Bin .../static => static}/images/fugue/gear.png | Bin .../static => static}/images/fugue/globe-bw.png | Bin .../static => static}/images/fugue/globe.png | Bin .../static => static}/images/fugue/hammer-bw.png | Bin .../static => static}/images/fugue/hammer.png | Bin .../images/fugue/information-white.png | Bin .../images/fugue/layer-transparent-bw.png | Bin .../images/fugue/layer-transparent.png | Bin .../images/fugue/layers-stack-bw.png | Bin .../static => static}/images/fugue/layers-stack.png | Bin .../images/fugue/magnifier-left.png | Bin .../images/fugue/magnifier-zoom-out.png | Bin .../images/fugue/magnifier-zoom.png | Bin .../static => static}/images/fugue/navigation.png | Bin .../static => static}/images/fugue/pencil-small.png | Bin .../static => static}/images/fugue/pencil.png | Bin .../images/fugue/plus-button-bw.png | Bin .../static => static}/images/fugue/plus-button.png | Bin .../static => static}/images/fugue/plus-circle.png | Bin .../images/fugue/sticky-note-text.png | Bin .../static => static}/images/fugue/tag--plus.png | Bin .../static => static}/images/fugue/tag-label.png | Bin .../static => static}/images/fugue/tags.png | Bin .../static => static}/images/fugue/toggle-bw.png | Bin .../images/fugue/toggle-expand-bw.png | Bin .../images/fugue/toggle-expand.png | Bin .../static => static}/images/fugue/toggle.png | Bin .../static => static}/images/fugue/toolbox-bw.png | Bin .../static => static}/images/fugue/toolbox.png | Bin .../images/fugue/ui-slider-050-bw.png | Bin .../images/fugue/ui-slider-050.png | Bin .../static => static}/images/galaxyIcon_noText.png | Bin .../static => static}/images/hatch-023858.png | Bin .../static => static}/images/hatch-fade-023858.gif | Bin .../static => static}/images/histogram.png | Bin .../static => static}/images/histogram2.png | Bin .../images/history-buttons/delete_icon.png | Bin .../images/history-buttons/delete_icon_dark.png | Bin .../images/history-buttons/delete_icon_grey.png | Bin .../images/history-buttons/eye_icon.png | Bin .../images/history-buttons/eye_icon_dark.png | Bin .../images/history-buttons/eye_icon_grey.png | Bin .../images/history-buttons/pencil_icon.png | Bin .../images/history-buttons/pencil_icon_dark.png | Bin .../images/history-buttons/pencil_icon_grey.png | Bin .../images/history-states/data_empty.png | Bin .../images/history-states/data_error.png | Bin .../images/history-states/data_ok.png | Bin .../images/history-states/data_queued.png | Bin .../framework/static => static}/images/history.gif | Bin .../static => static}/images/history_down_arrow.gif | Bin .../static => static}/images/history_up_arrow.gif | Bin .../static => static}/images/icon_error_lrg.gif | Bin .../static => static}/images/icon_error_sml.gif | Bin .../static => static}/images/icon_info_lrg.gif | Bin .../static => static}/images/icon_info_sml.gif | Bin .../static => static}/images/icon_success_lrg.gif | Bin .../static => static}/images/icon_success_sml.gif | Bin .../static => static}/images/icon_warning_lrg.gif | Bin .../static => static}/images/icon_warning_sml.gif | Bin .../static => static}/images/jstree/32px.png | Bin .../static => static}/images/jstree/40px.png | Bin .../static => static}/images/jstree/throbber.gif | Bin .../framework/static => static}/images/kendall.png | Bin .../static => static}/images/light_gray_grid.gif | Bin .../images/loading_large_white_bg.gif | Bin .../images/loading_small_white_bg.gif | Bin .../images/maf_icons/interval2maf.png | Bin .../images/maf_icons/stitchMaf.png | Bin .../static => static}/images/mag_glass.png | Bin .../images/mutation_visualization_example.png | Bin .../static => static}/images/openid-16x16.gif | Bin .../static => static}/images/overview_arrows.png | Bin .../framework/static => static}/images/pearson.png | Bin .../static => static}/images/resizable.png | Bin .../static => static}/images/rgWebLogo3_test.jpg | Bin .../framework/static => static}/images/scatter.png | Bin .../static => static}/images/scatterplot.png | Bin .../static => static}/images/select2-spinner.gif | Bin .../framework/static => static}/images/select2.png | Bin .../static => static}/images/select2x2.png | Bin .../framework/static => static}/images/silk/add.png | Bin .../static => static}/images/silk/book.png | Bin .../static => static}/images/silk/book_open.png | Bin .../static => static}/images/silk/chart_curve.png | Bin .../static => static}/images/silk/folder.png | Bin .../static => static}/images/silk/folder_page.png | Bin .../static => static}/images/silk/link.png | Bin .../static => static}/images/silk/link_break.png | Bin .../static => static}/images/silk/page_white.png | Bin .../images/silk/page_white_compressed.png | Bin .../images/silk/resultset_bottom.png | Bin .../images/silk/resultset_next.png | Bin .../images/silk/resultset_previous.png | Bin .../static => static}/images/solid_qual.png | Bin .../framework/static => static}/images/spearman.png | Bin .../static => static}/images/square_empty.gif | Bin .../static => static}/images/square_error.gif | Bin .../static => static}/images/square_ok.gif | Bin .../static => static}/images/square_queued.gif | Bin .../static => static}/images/square_running.gif | Bin .../web/framework/static => static}/images/star.gif | Bin .../static => static}/images/thumbtack_icon.png | Bin .../images/thumbtack_icon_dark.png | Bin .../framework/static => static}/images/tipsy.gif | Bin .../images/tool_menu_down_arrow.gif | Bin .../lda/first_matrix_generator_example_file.png | Bin .../lda/second_matrix_generator_example_file.png | Bin .../static => static}/images/tracks/block.png | Bin .../static => static}/images/tracks/close_btn.gif | Bin .../static => static}/images/tracks/diag_bg.gif | Bin .../static => static}/images/tracks/go_btn.gif | Bin .../static => static}/images/tracks/handle-left.gif | Bin .../images/tracks/handle-right.gif | Bin .../static => static}/images/tracks/pan_left.gif | Bin .../static => static}/images/tracks/pan_right.gif | Bin .../images/tracks/show_history.gif | Bin .../static => static}/images/tracks/zoom_in.gif | Bin .../images/tracks/zoom_in_full.gif | Bin .../static => static}/images/tracks/zoom_out.gif | Bin .../images/tracks/zoom_out_full.gif | Bin .../web/framework/static => static}/images/up.gif | Bin .../images/visualization/draggable_horizontal.png | Bin .../images/visualization/draggable_vertical.png | Bin .../images/visualization/strand_left.png | Bin .../images/visualization/strand_left_inv.png | Bin .../images/visualization/strand_right.png | Bin .../images/visualization/strand_right_inv.png | Bin .../images/yui/rel_interstitial_loading.gif | Bin .../admin/dataset_security/group/grid.mako | 0 .../admin/dataset_security/group/group.mako | 0 .../admin/dataset_security/group/group_create.mako | 0 .../admin/dataset_security/group/group_rename.mako | 0 .../admin/dataset_security/role/grid.mako | 0 .../admin/dataset_security/role/role.mako | 0 .../admin/dataset_security/role/role_create.mako | 0 .../admin/dataset_security/role/role_rename.mako | 0 .../admin/external_service/common.mako | 0 .../external_service/create_external_service.mako | 0 .../external_service/edit_external_service.mako | 0 .../admin/external_service/grid.mako | 0 .../reload_external_service_types.mako | 0 .../external_service/view_external_service.mako | 0 .../admin/forms/create_form.mako | 0 .../admin/forms/edit_form_definition.mako | 0 .../templates => templates}/admin/forms/grid.mako | 0 .../admin/forms/view_form_definition.mako | 0 .../templates => templates}/admin/impersonate.mako | 0 .../templates => templates}/admin/jobs.mako | 0 .../templates => templates}/admin/library/grid.mako | 0 .../admin/library/new_library.mako | 0 .../templates => templates}/admin/package_tool.mako | 0 .../templates => templates}/admin/quota/grid.mako | 0 .../templates => templates}/admin/quota/quota.mako | 0 .../admin/quota/quota_create.mako | 0 .../admin/quota/quota_edit.mako | 0 .../admin/quota/quota_rename.mako | 0 .../admin/quota/quota_set_default.mako | 0 .../templates => templates}/admin/reload_tool.mako | 0 .../admin/request_type/common.mako | 0 .../admin/request_type/create_request_type.mako | 0 .../admin/request_type/edit_request_type.mako | 0 .../admin/request_type/grid.mako | 0 .../request_type/request_type_permissions.mako | 0 .../admin/request_type/view_request_type.mako | 0 .../admin/requests/grid.mako | 0 .../admin/requests/reject.mako | 0 .../admin/requests/rename_datasets.mako | 0 .../admin/requests/sample_datasets_grid.mako | 0 .../admin/requests/view_sample_dataset.mako | 0 .../admin/review_tool_migration_stages.mako | 0 .../templates => templates}/admin/tool_errors.mako | 0 .../tool_shed_repository/browse_categories.mako | 0 .../admin/tool_shed_repository/browse_category.mako | 0 .../tool_shed_repository/browse_repository.mako | 0 .../browse_tool_dependency.mako | 0 .../admin/tool_shed_repository/common.mako | 0 .../deactivate_or_uninstall_repository.mako | 0 .../admin/tool_shed_repository/grid.mako | 0 .../initiate_repository_installation.mako | 0 .../install_tool_dependencies_with_update.mako | 0 .../tool_shed_repository/manage_repository.mako | 0 .../manage_repository_tool_dependencies.mako | 0 .../tool_shed_repository/preview_repository.mako | 0 .../purge_repository_confirmation.mako | 0 .../tool_shed_repository/repair_repository.mako | 0 .../repository_actions_menu.mako | 0 .../repository_installation_grid.mako | 0 .../repository_installation_status.mako | 0 .../reselect_tool_panel_section.mako | 0 .../reset_metadata_on_selected_repositories.mako | 0 .../select_shed_tool_panel_config.mako | 0 .../select_tool_panel_section.mako | 0 .../tool_dependencies_grid.mako | 0 .../tool_dependency_installation_status.mako | 0 .../uninstall_tool_dependencies.mako | 0 .../tool_shed_repository/view_tool_metadata.mako | 0 .../admin/tool_shed_repository/view_workflow.mako | 0 .../admin/tool_version/grid.mako | 0 .../templates => templates}/admin/user/grid.mako | 0 .../admin/user/reset_password.mako | 0 .../templates => templates}/admin/user/user.mako | 0 .../admin/view_data_tables_registry.mako | 0 .../admin/view_datatypes_registry.mako | 0 .../web/framework/templates => templates}/base.mako | 0 .../templates => templates}/base/base_panels.mako | 0 .../common/select_template.mako | 0 .../common/template_common.mako | 0 .../templates => templates}/display_base.mako | 0 .../templates => templates}/display_common.mako | 0 .../templates => templates}/embed_base.mako | 0 .../templates => templates}/export_base.mako | 0 .../web/framework/templates => templates}/form.mako | 0 .../templates => templates}/galaxy_client_app.mako | 0 .../templates => templates}/grid_base.mako | 0 .../templates => templates}/grid_base_async.mako | 0 .../templates => templates}/ind_share_base.mako | 0 .../framework/templates => templates}/js-app.mako | 0 .../framework/templates => templates}/message.mako | 0 .../templates => templates}/no_access.mako | 0 .../templates => templates}/page_base.mako | 0 .../framework/templates => templates}/panels.mako | 0 .../templates => templates}/refresh_frames.mako | 0 .../web/framework/templates => templates}/rss.mako | 0 .../templates => templates}/search/index.mako | 0 .../templates => templates}/sharing_base.mako | 0 .../templates => templates}/show_params.mako | 0 .../templates => templates}/slug_editing_js.mako | 0 .../templates => templates}/sorting_base.mako | 0 .../templates => templates}/spark_base.mako | 0 .../templates => templates}/tagging_common.mako | 0 .../templates => templates}/tool_shed_rating.mako | 0 .../user/change_password.mako | 0 .../templates => templates}/user/dbkeys.mako | 0 .../templates => templates}/user/edit_address.mako | 0 .../templates => templates}/user/index.mako | 0 .../templates => templates}/user/info.mako | 0 .../templates => templates}/user/login.mako | 0 .../templates => templates}/user/logout.mako | 0 .../templates => templates}/user/new_address.mako | 0 .../user/openid_associate.mako | 0 .../templates => templates}/user/openid_manage.mako | 0 .../templates => templates}/user/permissions.mako | 0 .../templates => templates}/user/register.mako | 0 .../user/reset_password.mako | 0 .../user/toolbox_filters.mako | 0 .../templates => templates}/user/username.mako | 0 .../webapps/galaxy/admin/center.mako | 0 .../webapps/galaxy/admin/index.mako | 0 .../webapps/galaxy/admin/sanitize_whitelist.mako | 0 .../webapps/galaxy/admin/tool_sheds.mako | 0 .../webapps/galaxy/admin/toolsheds.mako | 0 .../galaxy/admin/view_display_applications.mako | 0 .../webapps/galaxy/base_panels.mako | 0 .../webapps/galaxy/biostar/post_redirect.mako | 0 .../webapps/galaxy/data_manager/index.mako | 0 .../galaxy/data_manager/manage_data_manager.mako | 0 .../galaxy/data_manager/manage_data_table.mako | 0 .../webapps/galaxy/data_manager/view_job.mako | 0 .../webapps/galaxy/dataset/copy_view.mako | 0 .../webapps/galaxy/dataset/display.mako | 0 .../galaxy/dataset/display_application/display.mako | 0 .../webapps/galaxy/dataset/edit_attributes.mako | 0 .../webapps/galaxy/dataset/embed.mako | 0 .../webapps/galaxy/dataset/errors.mako | 0 .../webapps/galaxy/dataset/grid.mako | 0 .../webapps/galaxy/dataset/item_content.mako | 0 .../webapps/galaxy/dataset/large_file.mako | 0 .../webapps/galaxy/dataset/security_common.mako | 0 .../webapps/galaxy/dataset/tabular_chunked.mako | 0 .../external_services/generic_jquery_grid.mako | 0 .../galaxy/external_services/generic_json.mako | 0 .../galaxy/external_services/json_common.mako | 0 .../webapps/galaxy/galaxy.masthead.mako | 0 .../webapps/galaxy/galaxy.panels.mako | 0 .../webapps/galaxy/history/as_xml.mako | 0 .../webapps/galaxy/history/citations.mako | 0 .../webapps/galaxy/history/display.mako | 0 .../webapps/galaxy/history/display_structured.mako | 0 .../webapps/galaxy/history/embed.mako | 0 .../webapps/galaxy/history/grid.mako | 0 .../webapps/galaxy/history/grid_js.mako | 0 .../webapps/galaxy/history/item_content.mako | 0 .../webapps/galaxy/history/list_as_xml.mako | 0 .../webapps/galaxy/history/list_published.mako | 0 .../webapps/galaxy/history/permissions.mako | 0 .../webapps/galaxy/history/rename.mako | 0 .../webapps/galaxy/history/share.mako | 0 .../webapps/galaxy/history/shared_grid.mako | 0 .../webapps/galaxy/history/structure.mako | 0 .../webapps/galaxy/history/view.mako | 0 .../webapps/galaxy/history/view_multiple.mako | 0 .../galaxy/library/common/browse_library.mako | 0 .../galaxy/library/common/browse_library_opt.mako | 0 .../webapps/galaxy/library/common/common.mako | 0 .../webapps/galaxy/library/common/folder_info.mako | 0 .../galaxy/library/common/folder_permissions.mako | 0 .../common/import_datasets_to_histories.mako | 0 .../galaxy/library/common/ldda_edit_info.mako | 0 .../webapps/galaxy/library/common/ldda_info.mako | 0 .../galaxy/library/common/ldda_permissions.mako | 0 .../galaxy/library/common/library_dataset_info.mako | 0 .../library/common/library_dataset_permissions.mako | 0 .../common/library_dataset_search_results.mako | 0 .../webapps/galaxy/library/common/library_info.mako | 0 .../galaxy/library/common/library_item_info.mako | 0 .../galaxy/library/common/library_permissions.mako | 0 .../galaxy/library/common/move_library_item.mako | 0 .../webapps/galaxy/library/common/new_folder.mako | 0 .../webapps/galaxy/library/common/upload.mako | 0 .../webapps/galaxy/library/grid.mako | 0 .../webapps/galaxy/library/index.mako | 0 .../webapps/galaxy/mobile/dataset/detail.mako | 0 .../webapps/galaxy/mobile/dataset/peek.mako | 0 .../webapps/galaxy/mobile/form.mako | 0 .../webapps/galaxy/mobile/history/detail.mako | 0 .../webapps/galaxy/mobile/history/list.mako | 0 .../webapps/galaxy/mobile/index.mako | 0 .../webapps/galaxy/mobile/manage_library.mako | 0 .../webapps/galaxy/mobile/settings.mako | 0 .../webapps/galaxy/page/create.mako | 0 .../webapps/galaxy/page/display.mako | 0 .../webapps/galaxy/page/editor.mako | 0 .../webapps/galaxy/page/index.mako | 0 .../webapps/galaxy/page/list_published.mako | 0 .../webapps/galaxy/page/select_items_grid.mako | 0 .../webapps/galaxy/page/wymiframe.mako | 0 .../webapps/galaxy/requests/common/add_samples.mako | 0 .../webapps/galaxy/requests/common/common.mako | 0 .../galaxy/requests/common/create_request.mako | 0 .../requests/common/edit_basic_request_info.mako | 0 .../galaxy/requests/common/edit_samples.mako | 0 .../galaxy/requests/common/find_samples.mako | 0 .../webapps/galaxy/requests/common/index.mako | 0 .../common/sample_dataset_transfer_status.mako | 0 .../galaxy/requests/common/sample_datasets.mako | 0 .../galaxy/requests/common/sample_state.mako | 0 .../galaxy/requests/common/view_request.mako | 0 .../requests/common/view_request_history.mako | 0 .../webapps/galaxy/requests/common/view_sample.mako | 0 .../requests/common/view_sample_datasets.mako | 0 .../galaxy/requests/common/view_sample_history.mako | 0 .../webapps/galaxy/requests/find_samples_index.mako | 0 .../webapps/galaxy/requests/grid.mako | 0 .../webapps/galaxy/requests/index.mako | 0 .../webapps/galaxy/root/redirect.mako | 0 .../webapps/galaxy/root/tool_runner.mako | 0 .../webapps/galaxy/tracks/add_to_viz.mako | 0 .../webapps/galaxy/tracks/add_tracks.mako | 0 .../galaxy/tracks/history_datasets_select_grid.mako | 0 .../webapps/galaxy/tracks/history_select_grid.mako | 0 .../galaxy/tracks/library_datasets_select_grid.mako | 0 .../webapps/galaxy/user/api_keys.mako | 0 .../webapps/galaxy/user/list_users.mako | 0 .../webapps/galaxy/user/manage_info.mako | 0 .../webapps/galaxy/visualization/create.mako | 0 .../webapps/galaxy/visualization/display.mako | 0 .../galaxy/visualization/display_in_frame.mako | 0 .../webapps/galaxy/visualization/embed.mako | 0 .../galaxy/visualization/embed_in_frame.mako | 0 .../webapps/galaxy/visualization/gie.mako | 0 .../webapps/galaxy/visualization/item_content.mako | 0 .../webapps/galaxy/visualization/list.mako | 0 .../galaxy/visualization/list_published.mako | 0 .../webapps/galaxy/visualization/phyloviz.mako | 0 .../webapps/galaxy/visualization/sweepster.mako | 0 .../galaxy/workflow/build_from_current_history.mako | 0 .../webapps/galaxy/workflow/configure_menu.mako | 0 .../webapps/galaxy/workflow/display.mako | 0 .../webapps/galaxy/workflow/editor.mako | 0 .../galaxy/workflow/editor_generic_form.mako | 0 .../webapps/galaxy/workflow/editor_tool_form.mako | 0 .../webapps/galaxy/workflow/embed.mako | 0 .../webapps/galaxy/workflow/import.mako | 0 .../webapps/galaxy/workflow/index.mako | 0 .../webapps/galaxy/workflow/item_content.mako | 0 .../webapps/galaxy/workflow/list.mako | 0 .../webapps/galaxy/workflow/list_for_run.mako | 0 .../webapps/galaxy/workflow/list_published.mako | 0 .../webapps/galaxy/workflow/missing_tools.mako | 0 .../webapps/galaxy/workflow/myexp_export.mako | 0 .../galaxy/workflow/myexp_export_content.mako | 0 .../webapps/galaxy/workflow/rename.mako | 0 .../webapps/galaxy/workflow/run.mako | 0 .../webapps/galaxy/workflow/run_complete.mako | 0 .../webapps/galaxy/workflow/sharing.mako | 0 .../webapps/reports/base_panels.mako | 0 .../webapps/reports/dataset_info.mako | 0 .../webapps/reports/grid.mako | 0 .../webapps/reports/index.mako | 0 .../webapps/reports/job_info.mako | 0 .../webapps/reports/jobs_errors_per_tool.mako | 0 .../webapps/reports/jobs_per_month_all.mako | 0 .../webapps/reports/jobs_per_month_in_error.mako | 0 .../webapps/reports/jobs_per_tool.mako | 0 .../webapps/reports/jobs_per_user.mako | 0 .../webapps/reports/jobs_specified_month_all.mako | 0 .../reports/jobs_specified_month_in_error.mako | 0 .../webapps/reports/jobs_tool_per_month.mako | 0 .../webapps/reports/jobs_user_per_month.mako | 0 .../webapps/reports/registered_users.mako | 0 .../webapps/reports/registered_users_per_month.mako | 0 .../reports/registered_users_specified_date.mako | 0 .../reports/registered_users_specified_month.mako | 0 .../webapps/reports/requests_per_month_all.mako | 0 .../webapps/reports/requests_per_user.mako | 0 .../webapps/reports/requests_user_per_month.mako | 0 .../webapps/reports/run_stats.mako | 0 .../webapps/reports/system.mako | 0 .../webapps/reports/users_last_access_date.mako | 0 .../webapps/reports/users_user_disk_usage.mako | 0 .../webapps/reports/workflows_per_month_all.mako | 0 .../webapps/reports/workflows_per_user.mako | 0 .../webapps/reports/workflows_per_workflow.mako | 0 .../webapps/reports/workflows_user_per_month.mako | 0 .../webapps/tool_shed/admin/center.mako | 0 .../webapps/tool_shed/admin/index.mako | 0 .../webapps/tool_shed/admin/statistics.mako | 0 .../webapps/tool_shed/base_panels.mako | 0 .../webapps/tool_shed/category/create_category.mako | 0 .../webapps/tool_shed/category/edit_category.mako | 0 .../webapps/tool_shed/category/grid.mako | 0 .../webapps/tool_shed/category/valid_grid.mako | 0 .../webapps/tool_shed/common/common.mako | 0 .../webapps/tool_shed/common/grid_common.mako | 0 .../tool_shed/common/repository_actions_menu.mako | 0 .../reset_metadata_on_selected_repositories.mako | 0 .../webapps/tool_shed/group/index.mako | 0 .../webapps/tool_shed/index.mako | 0 .../tool_shed/repository/browse_repository.mako | 0 .../webapps/tool_shed/repository/common.mako | 0 .../webapps/tool_shed/repository/contact_owner.mako | 0 .../tool_shed/repository/create_repository.mako | 0 .../repository/docker_image_repositories.mako | 0 .../tool_shed/repository/export_repository.mako | 0 .../webapps/tool_shed/repository/find_tools.mako | 0 .../tool_shed/repository/find_workflows.mako | 0 .../webapps/tool_shed/repository/grid.mako | 0 .../tool_shed/repository/import_capsule.mako | 0 .../repository/import_capsule_results.mako | 0 .../tool_shed/repository/manage_repository.mako | 0 .../repository/preview_tools_in_changeset.mako | 0 .../tool_shed/repository/rate_repository.mako | 0 .../webapps/tool_shed/repository/tool_form.mako | 0 .../webapps/tool_shed/repository/upload.mako | 0 .../tool_shed/repository/upload_capsule.mako | 0 .../tool_shed/repository/view_changelog.mako | 0 .../tool_shed/repository/view_changeset.mako | 0 .../tool_shed/repository/view_repository.mako | 0 .../tool_shed/repository/view_tool_metadata.mako | 0 .../webapps/tool_shed/repository/view_workflow.mako | 0 .../tool_shed/repository_review/browse_review.mako | 0 .../repository_review/create_component.mako | 0 .../tool_shed/repository_review/edit_component.mako | 0 .../tool_shed/repository_review/edit_review.mako | 0 .../webapps/tool_shed/repository_review/grid.mako | 0 .../reviews_of_changeset_revision.mako | 0 .../repository_review/reviews_of_repository.mako | 0 .../repository_review/select_previous_review.mako | 0 .../webapps/tool_shed/role/role.mako | 0 .../webapps/tool_shed/user/manage_email_alerts.mako | 0 .../webapps/tool_shed/user/manage_info.mako | 0 .../data_source/access_libraries.xml | 0 .../bundled => tools}/data_source/bed_convert.xml | 0 .../tools/bundled => tools}/data_source/biomart.xml | 0 .../bundled => tools}/data_source/biomart_test.xml | 0 .../bundled => tools}/data_source/cbi_rice_mart.xml | 0 .../bundled => tools}/data_source/data_source.py | 0 .../tools/bundled => tools}/data_source/ebi_sra.xml | 0 .../bundled => tools}/data_source/eupathdb.xml | 0 .../tools/bundled => tools}/data_source/fetch.py | 0 .../bundled => tools}/data_source/fly_modencode.xml | 0 .../tools/bundled => tools}/data_source/flymine.xml | 0 .../bundled => tools}/data_source/flymine_test.xml | 0 .../tools/bundled => tools}/data_source/genbank.py | 0 .../tools/bundled => tools}/data_source/genbank.xml | 0 .../bundled => tools}/data_source/gramene_mart.xml | 0 .../bundled => tools}/data_source/hapmapmart.xml | 0 .../tools/bundled => tools}/data_source/hbvar.xml | 0 .../bundled => tools}/data_source/hbvar_filter.py | 0 .../tools/bundled => tools}/data_source/import.py | 0 .../tools/bundled => tools}/data_source/import.xml | 0 .../bundled => tools}/data_source/metabolicmine.xml | 0 .../data_source/microbial_import.py | 0 .../data_source/microbial_import.xml | 0 .../data_source/microbial_import_code.py | 0 .../tools/bundled => tools}/data_source/modmine.xml | 0 .../bundled => tools}/data_source/mousemine.xml | 0 .../tools/bundled => tools}/data_source/ratmine.xml | 0 .../data_source/ucsc_tablebrowser.xml | 0 .../data_source/ucsc_tablebrowser_archaea.xml | 0 .../data_source/ucsc_tablebrowser_test.xml | 0 .../tools/bundled => tools}/data_source/upload.py | 0 .../tools/bundled => tools}/data_source/upload.xml | 0 .../data_source/worm_modencode.xml | 0 .../bundled => tools}/data_source/wormbase.xml | 0 .../bundled => tools}/data_source/wormbase_test.xml | 0 .../bundled => tools}/data_source/yeastmine.xml | 0 .../bundled => tools}/data_source/zebrafishmine.xml | 0 .../tools/bundled => tools}/evolution/add_scores.py | 0 .../bundled => tools}/evolution/add_scores.xml | 0 .../tools/bundled => tools}/evolution/codingSnps.pl | 0 .../bundled => tools}/evolution/codingSnps.xml | 0 .../evolution/codingSnps_filter.py | 0 .../extract/extract_genomic_dna.py | 0 .../extract/extract_genomic_dna.xml | 0 .../bundled => tools}/extract/liftOver_wrapper.py | 0 .../bundled => tools}/extract/liftOver_wrapper.xml | 0 .../bundled => tools}/filters/CreateInterval.pl | 0 .../bundled => tools}/filters/CreateInterval.xml | 0 .../filters/axt_to_concat_fasta.py | 0 .../filters/axt_to_concat_fasta.xml | 0 .../tools/bundled => tools}/filters/axt_to_fasta.py | 0 .../bundled => tools}/filters/axt_to_fasta.xml | 0 .../tools/bundled => tools}/filters/axt_to_lav.py | 0 .../tools/bundled => tools}/filters/axt_to_lav.xml | 0 .../bundled => tools}/filters/axt_to_lav_code.py | 0 .../tools/bundled => tools}/filters/bed2gff.xml | 0 .../bundled => tools}/filters/bed_to_bigbed.xml | 0 .../filters/bed_to_gff_converter.py | 0 .../tools/bundled => tools}/filters/catWrapper.py | 0 .../tools/bundled => tools}/filters/catWrapper.xml | 0 .../tools/bundled => tools}/filters/changeCase.pl | 0 .../tools/bundled => tools}/filters/changeCase.xml | 0 .../tools/bundled => tools}/filters/commWrapper.pl | 0 .../tools/bundled => tools}/filters/commWrapper.xml | 0 .../tools/bundled => tools}/filters/compare.xml | 0 .../filters/condense_characters.pl | 0 .../filters/condense_characters.xml | 0 .../bundled => tools}/filters/convert_characters.pl | 0 .../bundled => tools}/filters/convert_characters.py | 0 .../filters/convert_characters.xml | 0 .../tools/bundled => tools}/filters/cutWrapper.pl | 0 .../tools/bundled => tools}/filters/cutWrapper.xml | 0 .../tools/bundled => tools}/filters/fileGrep.xml | 0 .../bundled => tools}/filters/fixedValueColumn.pl | 0 .../bundled => tools}/filters/fixedValueColumn.xml | 0 .../filters/gff/extract_GFF_Features.py | 0 .../filters/gff/extract_GFF_Features.xml | 0 .../filters/gff/gff_filter_by_attribute.py | 0 .../filters/gff/gff_filter_by_attribute.xml | 0 .../filters/gff/gff_filter_by_feature_count.py | 0 .../filters/gff/gff_filter_by_feature_count.xml | 0 .../gff/gtf_filter_by_attribute_values_list.py | 0 .../gff/gtf_filter_by_attribute_values_list.xml | 0 .../tools/bundled => tools}/filters/gff/sort_gtf.py | 0 .../tools/bundled => tools}/filters/gff2bed.xml | 0 .../filters/gff_to_bed_converter.py | 0 {lib/galaxy/tools/bundled => tools}/filters/grep.py | 0 .../galaxy/tools/bundled => tools}/filters/grep.xml | 0 .../bundled => tools}/filters/gtf2bedgraph.xml | 0 .../filters/gtf_to_bedgraph_converter.py | 0 .../tools/bundled => tools}/filters/headWrapper.pl | 0 .../tools/bundled => tools}/filters/headWrapper.xml | 0 {lib/galaxy/tools/bundled => tools}/filters/join.py | 0 .../tools/bundled => tools}/filters/joinWrapper.pl | 0 .../tools/bundled => tools}/filters/joinWrapper.py | 0 .../tools/bundled => tools}/filters/joiner.xml | 0 .../tools/bundled => tools}/filters/joiner2.xml | 0 .../tools/bundled => tools}/filters/lav_to_bed.py | 0 .../tools/bundled => tools}/filters/lav_to_bed.xml | 0 .../bundled => tools}/filters/lav_to_bed_code.py | 0 .../tools/bundled => tools}/filters/mergeCols.py | 0 .../tools/bundled => tools}/filters/mergeCols.xml | 0 .../tools/bundled => tools}/filters/pasteWrapper.pl | 0 .../bundled => tools}/filters/pasteWrapper.xml | 0 .../filters/random_lines_two_pass.py | 0 .../tools/bundled => tools}/filters/randomlines.py | 0 .../tools/bundled => tools}/filters/randomlines.xml | 0 .../bundled => tools}/filters/remove_beginning.pl | 0 .../bundled => tools}/filters/remove_beginning.xml | 0 .../filters/secure_hash_message_digest.py | 0 .../filters/secure_hash_message_digest.xml | 0 .../tools/bundled => tools}/filters/sff_extract.py | 0 .../bundled => tools}/filters/sff_extractor.xml | 0 .../tools/bundled => tools}/filters/sorter.py | 0 .../tools/bundled => tools}/filters/sorter.xml | 0 .../tools/bundled => tools}/filters/tailWrapper.pl | 0 .../tools/bundled => tools}/filters/tailWrapper.xml | 0 .../tools/bundled => tools}/filters/trimmer.py | 0 .../tools/bundled => tools}/filters/trimmer.xml | 0 .../filters/ucsc_gene_bed_to_exon_bed.py | 0 .../filters/ucsc_gene_bed_to_exon_bed.xml | 0 .../filters/ucsc_gene_bed_to_intron_bed.py | 0 .../filters/ucsc_gene_bed_to_intron_bed.xml | 0 .../filters/ucsc_gene_table_to_intervals.py | 0 .../filters/ucsc_gene_table_to_intervals.xml | 0 {lib/galaxy/tools/bundled => tools}/filters/uniq.py | 0 .../galaxy/tools/bundled => tools}/filters/uniq.xml | 0 .../tools/bundled => tools}/filters/wc_gnu.xml | 0 .../bundled => tools}/filters/wig_to_bigwig.xml | 0 .../bundled => tools}/filters/wiggle_to_simple.py | 0 .../bundled => tools}/filters/wiggle_to_simple.xml | 0 .../genomespace/genomespace_exporter.py | 0 .../genomespace/genomespace_exporter.xml | 0 .../genomespace/genomespace_file_browser.py | 0 .../genomespace/genomespace_file_browser_dev.xml | 0 .../genomespace/genomespace_file_browser_prod.xml | 0 .../genomespace/genomespace_file_browser_test.xml | 0 .../genomespace/genomespace_importer.py | 0 .../genomespace/genomespace_importer.xml | 0 .../bundled => tools}/maf/genebed_maf_to_fasta.xml | 0 .../tools/bundled => tools}/maf/interval2maf.py | 0 .../tools/bundled => tools}/maf/interval2maf.xml | 0 .../bundled => tools}/maf/interval2maf_pairwise.xml | 0 .../maf/interval_maf_to_merged_fasta.py | 0 .../maf/interval_maf_to_merged_fasta.xml | 0 {lib/galaxy/tools/bundled => tools}/maf/macros.xml | 0 .../bundled => tools}/maf/maf_by_block_number.py | 0 .../bundled => tools}/maf/maf_by_block_number.xml | 0 .../tools/bundled => tools}/maf/maf_filter.py | 0 .../tools/bundled => tools}/maf/maf_filter.xml | 0 .../tools/bundled => tools}/maf/maf_limit_size.py | 0 .../tools/bundled => tools}/maf/maf_limit_size.xml | 0 .../bundled => tools}/maf/maf_limit_to_species.py | 0 .../bundled => tools}/maf/maf_limit_to_species.xml | 0 .../bundled => tools}/maf/maf_reverse_complement.py | 0 .../maf/maf_reverse_complement.xml | 0 .../bundled => tools}/maf/maf_split_by_species.py | 0 .../bundled => tools}/maf/maf_split_by_species.xml | 0 .../galaxy/tools/bundled => tools}/maf/maf_stats.py | 0 .../tools/bundled => tools}/maf/maf_stats.xml | 0 .../bundled => tools}/maf/maf_thread_for_species.py | 0 .../maf/maf_thread_for_species.xml | 0 .../tools/bundled => tools}/maf/maf_to_bed.py | 0 .../tools/bundled => tools}/maf/maf_to_bed.xml | 0 .../tools/bundled => tools}/maf/maf_to_bed_code.py | 0 .../tools/bundled => tools}/maf/maf_to_fasta.xml | 0 .../bundled => tools}/maf/maf_to_fasta_concat.py | 0 .../maf/maf_to_fasta_multiple_sets.py | 0 .../tools/bundled => tools}/maf/maf_to_interval.py | 0 .../tools/bundled => tools}/maf/maf_to_interval.xml | 0 .../bundled => tools}/maf/vcf_to_maf_customtrack.py | 0 .../maf/vcf_to_maf_customtrack.xml | 0 {lib/galaxy/tools/bundled => tools}/meme/fimo.xml | 0 .../tools/bundled => tools}/meme/fimo_wrapper.py | 0 {lib/galaxy/tools/bundled => tools}/meme/meme.xml | 0 .../bundled => tools}/metag_tools/blat_wrapper.py | 0 .../bundled => tools}/metag_tools/blat_wrapper.xml | 0 .../metag_tools/shrimp_color_wrapper.py | 0 .../metag_tools/shrimp_color_wrapper.xml | 0 .../bundled => tools}/metag_tools/shrimp_wrapper.py | 0 .../metag_tools/shrimp_wrapper.xml | 0 .../next_gen_conversion/bwa_solid2fastq_modified.pl | 0 .../next_gen_conversion/fastq_conversions.py | 0 .../next_gen_conversion/fastq_conversions.xml | 0 .../next_gen_conversion/fastq_gen_conv.py | 0 .../next_gen_conversion/fastq_gen_conv.xml | 0 .../next_gen_conversion/solid2fastq.py | 0 .../next_gen_conversion/solid2fastq.xml | 0 .../next_gen_conversion/solid_to_fastq.py | 0 .../next_gen_conversion/solid_to_fastq.xml | 0 .../ngs_simulation/ngs_simulation.py | 0 .../ngs_simulation/ngs_simulation.xml | 0 .../phenotype_association/BEAM2_wrapper.sh | 0 .../phenotype_association/beam.xml | 0 .../phenotype_association/gpass.pl | 0 .../phenotype_association/gpass.xml | 0 .../phenotype_association/ldtools.xml | 0 .../phenotype_association/ldtools_wrapper.sh | 0 .../phenotype_association/linkToDavid.pl | 0 .../phenotype_association/linkToDavid.xml | 0 .../phenotype_association/linkToGProfile.pl | 0 .../phenotype_association/linkToGProfile.xml | 0 .../phenotype_association/lped_to_geno.pl | 0 .../bundled => tools}/phenotype_association/lps.xml | 0 .../phenotype_association/lps_tool_wrapper.sh | 0 .../phenotype_association/master2gd_snp.pl | 0 .../phenotype_association/master2gd_snp.xml | 0 .../phenotype_association/master2pg.pl | 0 .../phenotype_association/master2pg.xml | 0 .../phenotype_association/mergeSnps.pl | 0 .../phenotype_association/pagetag.py | 0 .../phenotype_association/pass.xml | 0 .../phenotype_association/pass_wrapper.sh | 0 .../phenotype_association/senatag.py | 0 .../phenotype_association/sift.xml | 0 .../phenotype_association/sift_variants_wrapper.sh | 0 .../phenotype_association/vcf2pgSnpMult.pl | 0 .../tools/bundled => tools}/plotting/bar_chart.py | 0 .../tools/bundled => tools}/plotting/bar_chart.xml | 0 .../tools/bundled => tools}/plotting/boxplot.xml | 0 .../bundled => tools}/solid_tools/maq_cs_wrapper.py | 0 .../solid_tools/maq_cs_wrapper.xml | 0 .../solid_tools/maq_cs_wrapper_code.py | 0 .../solid_tools/qualsolid_boxplot_graph.sh | 0 .../solid_tools/solid_qual_boxplot.xml | 0 .../solid_tools/solid_qual_stats.py | 0 .../solid_tools/solid_qual_stats.xml | 0 .../tools/bundled => tools}/sr_assembly/velvetg.xml | 0 .../sr_assembly/velvetg_wrapper.py | 0 .../tools/bundled => tools}/sr_assembly/velveth.xml | 0 .../sr_assembly/velveth_wrapper.py | 0 .../tools/bundled => tools}/sr_mapping/PerM.xml | 0 .../bundled => tools}/sr_mapping/bfast_wrapper.py | 0 .../bundled => tools}/sr_mapping/bfast_wrapper.xml | 0 .../sr_mapping/fastq_statistics.xml | 0 .../tools/bundled => tools}/sr_mapping/mosaik.xml | 0 .../bundled => tools}/sr_mapping/srma_wrapper.py | 0 .../bundled => tools}/sr_mapping/srma_wrapper.xml | 0 .../stats/aggregate_binned_scores_in_intervals.xml | 0 .../stats/aggregate_scores_in_intervals.py | 0 .../tools/bundled => tools}/stats/filtering.py | 0 .../tools/bundled => tools}/stats/filtering.xml | 0 .../tools/bundled => tools}/stats/grouping.py | 0 .../tools/bundled => tools}/stats/grouping.xml | 0 .../tools/bundled => tools}/stats/gsummary.py | 0 .../tools/bundled => tools}/stats/gsummary.xml | 0 .../bundled => tools}/stats/gsummary.xml.groups | 0 .../tools/bundled => tools}/stats/r_wrapper.sh | 0 .../tools/bundled => tools}/visualization/LAJ.py | 0 .../tools/bundled => tools}/visualization/LAJ.xml | 0 .../bundled => tools}/visualization/LAJ_code.py | 0 805 files changed, 2 deletions(-) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/biom/biom_simple.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ensembl/ensembl_bam.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ensembl/ensembl_gff.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ensembl/ensembl_interval_as_bed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/gbrowse/gbrowse_gff.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/gbrowse/gbrowse_interval_as_bed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/gbrowse/gbrowse_wig.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/bam.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/bb.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/bed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/bedgraph.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/bigwig.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/gtf.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igb/wig.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igv/bam.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igv/gff.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igv/interval_as_bed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/igv/vcf.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/iobio/bam.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/iobio/vcf.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/rviewer/bed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/rviewer/vcf.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ucsc/bam.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ucsc/bigbed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ucsc/bigwig.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ucsc/interval_as_bed.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ucsc/maf_customtrack.xml (100%) rename {lib/galaxy/datatypes/display_applications/configs => display_applications}/ucsc/vcf.xml (100%) delete mode 120000 lib/galaxy/web/framework/static/src delete mode 120000 lib/galaxy/web/framework/static/toolshed/src rename {lib/galaxy/web/framework/static => static}/images/Armitagep_manhattan.png (100%) rename {lib/galaxy/web/framework/static => static}/images/Armitagep_qqplot.png (100%) rename {lib/galaxy/web/framework/static => static}/images/add_icon.png (100%) rename {lib/galaxy/web/framework/static => static}/images/add_icon_dark.png (100%) rename {lib/galaxy/web/framework/static => static}/images/aggregate_history1.png (100%) rename {lib/galaxy/web/framework/static => static}/images/aggregate_history2.png (100%) rename {lib/galaxy/web/framework/static => static}/images/bar_chart.png (100%) rename {lib/galaxy/web/framework/static => static}/images/bed_warn.png (100%) rename {lib/galaxy/web/framework/static => static}/images/closebox.png (100%) rename {lib/galaxy/web/framework/static => static}/images/dat_points_table_brows_1.png (100%) rename {lib/galaxy/web/framework/static => static}/images/ddarrowsplit.png (100%) rename {lib/galaxy/web/framework/static => static}/images/delete.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/delete_tag_icon_gray.png (100%) rename {lib/galaxy/web/framework/static => static}/images/delete_tag_icon_white.png (100%) rename {lib/galaxy/web/framework/static => static}/images/documents-stack-faded.png (100%) rename {lib/galaxy/web/framework/static => static}/images/documents-stack.png (100%) rename {lib/galaxy/web/framework/static => static}/images/dropdownarrow.png (100%) rename {lib/galaxy/web/framework/static => static}/images/dw.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/fetchTax.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/fontawesome-webfont.eot (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/fontawesome-webfont.ttf (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/fontawesome-webfont.woff (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/iconic_stroke.eot (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/iconic_stroke.otf (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/iconic_stroke.svg (100%) rename {lib/galaxy/web/framework/static => static}/images/fonts/iconic_stroke.ttf (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/application-dock-270-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/application-dock-270.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-000-small-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-090.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-circle.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-resize-090-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-resize-090.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-split-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-split.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-transition-270-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/arrow-transition-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/asterisk-small-outline.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/asterisk-small-yellow.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/asterisk-small.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/block--plus-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/block--plus.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/bookmarks-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/bookmarks.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/bug.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/chart.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/chevron-expand-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/chevron-expand.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/chevron.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/control-270.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/cross-button.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/cross-circle-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/cross-circle.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/cross-small-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/cross.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/disk--arrow-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/disk--arrow.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/disk.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/exclamation.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/external.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/eye.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/gear-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/gear.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/globe-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/globe.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/hammer-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/hammer.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/information-white.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/layer-transparent-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/layer-transparent.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/layers-stack-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/layers-stack.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/magnifier-left.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/magnifier-zoom-out.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/magnifier-zoom.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/navigation.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/pencil-small.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/pencil.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/plus-button-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/plus-button.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/plus-circle.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/sticky-note-text.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/tag--plus.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/tag-label.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/tags.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/toggle-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/toggle-expand-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/toggle-expand.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/toggle.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/toolbox-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/toolbox.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/ui-slider-050-bw.png (100%) rename {lib/galaxy/web/framework/static => static}/images/fugue/ui-slider-050.png (100%) rename {lib/galaxy/web/framework/static => static}/images/galaxyIcon_noText.png (100%) rename {lib/galaxy/web/framework/static => static}/images/hatch-023858.png (100%) rename {lib/galaxy/web/framework/static => static}/images/hatch-fade-023858.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/histogram.png (100%) rename {lib/galaxy/web/framework/static => static}/images/histogram2.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/delete_icon.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/delete_icon_dark.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/delete_icon_grey.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/eye_icon.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/eye_icon_dark.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/eye_icon_grey.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/pencil_icon.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/pencil_icon_dark.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-buttons/pencil_icon_grey.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-states/data_empty.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-states/data_error.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-states/data_ok.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history-states/data_queued.png (100%) rename {lib/galaxy/web/framework/static => static}/images/history.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/history_down_arrow.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/history_up_arrow.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_error_lrg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_error_sml.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_info_lrg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_info_sml.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_success_lrg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_success_sml.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_warning_lrg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/icon_warning_sml.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/jstree/32px.png (100%) rename {lib/galaxy/web/framework/static => static}/images/jstree/40px.png (100%) rename {lib/galaxy/web/framework/static => static}/images/jstree/throbber.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/kendall.png (100%) rename {lib/galaxy/web/framework/static => static}/images/light_gray_grid.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/loading_large_white_bg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/loading_small_white_bg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/maf_icons/interval2maf.png (100%) rename {lib/galaxy/web/framework/static => static}/images/maf_icons/stitchMaf.png (100%) rename {lib/galaxy/web/framework/static => static}/images/mag_glass.png (100%) rename {lib/galaxy/web/framework/static => static}/images/mutation_visualization_example.png (100%) rename {lib/galaxy/web/framework/static => static}/images/openid-16x16.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/overview_arrows.png (100%) rename {lib/galaxy/web/framework/static => static}/images/pearson.png (100%) rename {lib/galaxy/web/framework/static => static}/images/resizable.png (100%) rename {lib/galaxy/web/framework/static => static}/images/rgWebLogo3_test.jpg (100%) rename {lib/galaxy/web/framework/static => static}/images/scatter.png (100%) rename {lib/galaxy/web/framework/static => static}/images/scatterplot.png (100%) rename {lib/galaxy/web/framework/static => static}/images/select2-spinner.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/select2.png (100%) rename {lib/galaxy/web/framework/static => static}/images/select2x2.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/add.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/book.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/book_open.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/chart_curve.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/folder.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/folder_page.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/link.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/link_break.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/page_white.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/page_white_compressed.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/resultset_bottom.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/resultset_next.png (100%) rename {lib/galaxy/web/framework/static => static}/images/silk/resultset_previous.png (100%) rename {lib/galaxy/web/framework/static => static}/images/solid_qual.png (100%) rename {lib/galaxy/web/framework/static => static}/images/spearman.png (100%) rename {lib/galaxy/web/framework/static => static}/images/square_empty.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/square_error.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/square_ok.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/square_queued.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/square_running.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/star.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/thumbtack_icon.png (100%) rename {lib/galaxy/web/framework/static => static}/images/thumbtack_icon_dark.png (100%) rename {lib/galaxy/web/framework/static => static}/images/tipsy.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tool_menu_down_arrow.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tools/lda/first_matrix_generator_example_file.png (100%) rename {lib/galaxy/web/framework/static => static}/images/tools/lda/second_matrix_generator_example_file.png (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/block.png (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/close_btn.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/diag_bg.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/go_btn.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/handle-left.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/handle-right.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/pan_left.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/pan_right.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/show_history.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/zoom_in.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/zoom_in_full.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/zoom_out.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/tracks/zoom_out_full.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/up.gif (100%) rename {lib/galaxy/web/framework/static => static}/images/visualization/draggable_horizontal.png (100%) rename {lib/galaxy/web/framework/static => static}/images/visualization/draggable_vertical.png (100%) rename {lib/galaxy/web/framework/static => static}/images/visualization/strand_left.png (100%) rename {lib/galaxy/web/framework/static => static}/images/visualization/strand_left_inv.png (100%) rename {lib/galaxy/web/framework/static => static}/images/visualization/strand_right.png (100%) rename {lib/galaxy/web/framework/static => static}/images/visualization/strand_right_inv.png (100%) rename {lib/galaxy/web/framework/static => static}/images/yui/rel_interstitial_loading.gif (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/group/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/group/group.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/group/group_create.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/group/group_rename.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/role/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/role/role.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/role/role_create.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/dataset_security/role/role_rename.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/external_service/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/external_service/create_external_service.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/external_service/edit_external_service.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/external_service/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/external_service/reload_external_service_types.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/external_service/view_external_service.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/forms/create_form.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/forms/edit_form_definition.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/forms/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/forms/view_form_definition.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/impersonate.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/jobs.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/library/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/library/new_library.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/package_tool.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/quota/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/quota/quota.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/quota/quota_create.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/quota/quota_edit.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/quota/quota_rename.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/quota/quota_set_default.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/reload_tool.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/request_type/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/request_type/create_request_type.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/request_type/edit_request_type.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/request_type/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/request_type/request_type_permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/request_type/view_request_type.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/requests/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/requests/reject.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/requests/rename_datasets.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/requests/sample_datasets_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/requests/view_sample_dataset.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/review_tool_migration_stages.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_errors.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/browse_categories.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/browse_category.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/browse_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/browse_tool_dependency.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/initiate_repository_installation.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/install_tool_dependencies_with_update.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/manage_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/manage_repository_tool_dependencies.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/preview_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/purge_repository_confirmation.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/repair_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/repository_actions_menu.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/repository_installation_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/repository_installation_status.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/reselect_tool_panel_section.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/select_shed_tool_panel_config.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/select_tool_panel_section.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/tool_dependencies_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/tool_dependency_installation_status.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/uninstall_tool_dependencies.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/view_tool_metadata.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_shed_repository/view_workflow.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/tool_version/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/user/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/user/reset_password.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/user/user.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/view_data_tables_registry.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/admin/view_datatypes_registry.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/base/base_panels.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/common/select_template.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/common/template_common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/display_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/display_common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/embed_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/export_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/form.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/galaxy_client_app.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/grid_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/grid_base_async.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/ind_share_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/js-app.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/message.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/no_access.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/page_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/panels.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/refresh_frames.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/rss.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/search/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/sharing_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/show_params.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/slug_editing_js.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/sorting_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/spark_base.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/tagging_common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/tool_shed_rating.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/change_password.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/dbkeys.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/edit_address.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/login.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/logout.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/new_address.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/openid_associate.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/openid_manage.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/register.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/reset_password.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/toolbox_filters.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/user/username.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/admin/center.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/admin/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/admin/sanitize_whitelist.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/admin/tool_sheds.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/admin/toolsheds.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/admin/view_display_applications.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/base_panels.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/biostar/post_redirect.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/data_manager/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/data_manager/manage_data_manager.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/data_manager/manage_data_table.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/data_manager/view_job.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/copy_view.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/display.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/display_application/display.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/edit_attributes.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/embed.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/errors.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/item_content.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/large_file.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/security_common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/dataset/tabular_chunked.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/external_services/generic_jquery_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/external_services/generic_json.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/external_services/json_common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/galaxy.masthead.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/galaxy.panels.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/as_xml.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/citations.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/display.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/display_structured.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/embed.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/grid_js.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/item_content.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/list_as_xml.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/list_published.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/rename.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/share.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/shared_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/structure.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/view.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/history/view_multiple.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/browse_library.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/browse_library_opt.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/folder_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/folder_permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/import_datasets_to_histories.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/ldda_edit_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/ldda_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/ldda_permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/library_dataset_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/library_dataset_permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/library_dataset_search_results.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/library_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/library_item_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/library_permissions.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/move_library_item.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/new_folder.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/common/upload.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/library/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/dataset/detail.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/dataset/peek.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/form.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/history/detail.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/history/list.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/manage_library.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/mobile/settings.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/create.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/display.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/editor.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/list_published.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/select_items_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/page/wymiframe.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/add_samples.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/create_request.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/edit_basic_request_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/edit_samples.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/find_samples.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/sample_datasets.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/sample_state.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/view_request.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/view_request_history.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/view_sample.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/view_sample_datasets.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/common/view_sample_history.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/find_samples_index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/requests/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/root/redirect.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/root/tool_runner.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/tracks/add_to_viz.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/tracks/add_tracks.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/tracks/history_datasets_select_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/tracks/history_select_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/tracks/library_datasets_select_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/user/api_keys.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/user/list_users.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/user/manage_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/create.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/display.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/display_in_frame.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/embed.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/embed_in_frame.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/gie.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/item_content.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/list.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/list_published.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/phyloviz.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/visualization/sweepster.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/build_from_current_history.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/configure_menu.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/display.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/editor.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/editor_generic_form.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/editor_tool_form.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/embed.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/import.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/item_content.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/list.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/list_for_run.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/list_published.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/missing_tools.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/myexp_export.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/myexp_export_content.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/rename.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/run.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/run_complete.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/galaxy/workflow/sharing.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/base_panels.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/dataset_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/job_info.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_errors_per_tool.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_per_month_all.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_per_month_in_error.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_per_tool.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_per_user.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_specified_month_all.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_specified_month_in_error.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_tool_per_month.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/jobs_user_per_month.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/registered_users.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/registered_users_per_month.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/registered_users_specified_date.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/registered_users_specified_month.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/requests_per_month_all.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/requests_per_user.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/requests_user_per_month.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/run_stats.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/system.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/users_last_access_date.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/users_user_disk_usage.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/workflows_per_month_all.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/workflows_per_user.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/workflows_per_workflow.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/reports/workflows_user_per_month.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/admin/center.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/admin/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/admin/statistics.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/base_panels.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/category/create_category.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/category/edit_category.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/category/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/category/valid_grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/common/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/common/grid_common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/common/repository_actions_menu.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/group/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/index.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/browse_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/common.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/contact_owner.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/create_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/docker_image_repositories.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/export_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/find_tools.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/find_workflows.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/import_capsule.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/import_capsule_results.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/manage_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/preview_tools_in_changeset.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/rate_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/tool_form.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/upload.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/upload_capsule.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/view_changelog.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/view_changeset.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/view_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/view_tool_metadata.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository/view_workflow.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/browse_review.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/create_component.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/edit_component.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/edit_review.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/grid.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/reviews_of_repository.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/repository_review/select_previous_review.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/role/role.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/user/manage_email_alerts.mako (100%) rename {lib/galaxy/web/framework/templates => templates}/webapps/tool_shed/user/manage_info.mako (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/access_libraries.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/bed_convert.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/biomart.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/biomart_test.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/cbi_rice_mart.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/data_source.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/ebi_sra.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/eupathdb.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/fetch.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/fly_modencode.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/flymine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/flymine_test.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/genbank.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/genbank.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/gramene_mart.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/hapmapmart.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/hbvar.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/hbvar_filter.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/import.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/import.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/metabolicmine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/microbial_import.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/microbial_import.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/microbial_import_code.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/modmine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/mousemine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/ratmine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/ucsc_tablebrowser.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/ucsc_tablebrowser_archaea.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/ucsc_tablebrowser_test.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/upload.py (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/upload.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/worm_modencode.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/wormbase.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/wormbase_test.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/yeastmine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/data_source/zebrafishmine.xml (100%) rename {lib/galaxy/tools/bundled => tools}/evolution/add_scores.py (100%) rename {lib/galaxy/tools/bundled => tools}/evolution/add_scores.xml (100%) rename {lib/galaxy/tools/bundled => tools}/evolution/codingSnps.pl (100%) rename {lib/galaxy/tools/bundled => tools}/evolution/codingSnps.xml (100%) rename {lib/galaxy/tools/bundled => tools}/evolution/codingSnps_filter.py (100%) rename {lib/galaxy/tools/bundled => tools}/extract/extract_genomic_dna.py (100%) rename {lib/galaxy/tools/bundled => tools}/extract/extract_genomic_dna.xml (100%) rename {lib/galaxy/tools/bundled => tools}/extract/liftOver_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/extract/liftOver_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/CreateInterval.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/CreateInterval.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_concat_fasta.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_concat_fasta.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_fasta.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_fasta.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_lav.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_lav.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/axt_to_lav_code.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/bed2gff.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/bed_to_bigbed.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/bed_to_gff_converter.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/catWrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/catWrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/changeCase.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/changeCase.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/commWrapper.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/commWrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/compare.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/condense_characters.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/condense_characters.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/convert_characters.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/convert_characters.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/convert_characters.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/cutWrapper.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/cutWrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/fileGrep.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/fixedValueColumn.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/fixedValueColumn.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/extract_GFF_Features.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/extract_GFF_Features.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/gff_filter_by_attribute.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/gff_filter_by_attribute.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/gff_filter_by_feature_count.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/gff_filter_by_feature_count.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/gtf_filter_by_attribute_values_list.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/gtf_filter_by_attribute_values_list.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff/sort_gtf.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff2bed.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gff_to_bed_converter.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/grep.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/grep.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gtf2bedgraph.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/gtf_to_bedgraph_converter.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/headWrapper.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/headWrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/join.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/joinWrapper.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/joinWrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/joiner.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/joiner2.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/lav_to_bed.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/lav_to_bed.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/lav_to_bed_code.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/mergeCols.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/mergeCols.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/pasteWrapper.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/pasteWrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/random_lines_two_pass.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/randomlines.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/randomlines.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/remove_beginning.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/remove_beginning.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/secure_hash_message_digest.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/secure_hash_message_digest.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/sff_extract.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/sff_extractor.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/sorter.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/sorter.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/tailWrapper.pl (100%) rename {lib/galaxy/tools/bundled => tools}/filters/tailWrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/trimmer.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/trimmer.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/ucsc_gene_bed_to_exon_bed.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/ucsc_gene_bed_to_exon_bed.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/ucsc_gene_bed_to_intron_bed.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/ucsc_gene_bed_to_intron_bed.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/ucsc_gene_table_to_intervals.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/ucsc_gene_table_to_intervals.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/uniq.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/uniq.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/wc_gnu.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/wig_to_bigwig.xml (100%) rename {lib/galaxy/tools/bundled => tools}/filters/wiggle_to_simple.py (100%) rename {lib/galaxy/tools/bundled => tools}/filters/wiggle_to_simple.xml (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_exporter.py (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_exporter.xml (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_file_browser.py (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_file_browser_dev.xml (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_file_browser_prod.xml (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_file_browser_test.xml (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_importer.py (100%) rename {lib/galaxy/tools/bundled => tools}/genomespace/genomespace_importer.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/genebed_maf_to_fasta.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/interval2maf.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/interval2maf.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/interval2maf_pairwise.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/interval_maf_to_merged_fasta.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/interval_maf_to_merged_fasta.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/macros.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_by_block_number.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_by_block_number.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_filter.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_filter.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_limit_size.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_limit_size.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_limit_to_species.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_limit_to_species.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_reverse_complement.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_reverse_complement.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_split_by_species.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_split_by_species.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_stats.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_stats.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_thread_for_species.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_thread_for_species.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_bed.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_bed.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_bed_code.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_fasta.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_fasta_concat.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_fasta_multiple_sets.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_interval.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/maf_to_interval.xml (100%) rename {lib/galaxy/tools/bundled => tools}/maf/vcf_to_maf_customtrack.py (100%) rename {lib/galaxy/tools/bundled => tools}/maf/vcf_to_maf_customtrack.xml (100%) rename {lib/galaxy/tools/bundled => tools}/meme/fimo.xml (100%) rename {lib/galaxy/tools/bundled => tools}/meme/fimo_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/meme/meme.xml (100%) rename {lib/galaxy/tools/bundled => tools}/metag_tools/blat_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/metag_tools/blat_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/metag_tools/shrimp_color_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/metag_tools/shrimp_color_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/metag_tools/shrimp_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/metag_tools/shrimp_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/bwa_solid2fastq_modified.pl (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/fastq_conversions.py (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/fastq_conversions.xml (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/fastq_gen_conv.py (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/fastq_gen_conv.xml (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/solid2fastq.py (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/solid2fastq.xml (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/solid_to_fastq.py (100%) rename {lib/galaxy/tools/bundled => tools}/next_gen_conversion/solid_to_fastq.xml (100%) rename {lib/galaxy/tools/bundled => tools}/ngs_simulation/ngs_simulation.py (100%) rename {lib/galaxy/tools/bundled => tools}/ngs_simulation/ngs_simulation.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/BEAM2_wrapper.sh (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/beam.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/gpass.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/gpass.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/ldtools.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/ldtools_wrapper.sh (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/linkToDavid.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/linkToDavid.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/linkToGProfile.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/linkToGProfile.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/lped_to_geno.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/lps.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/lps_tool_wrapper.sh (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/master2gd_snp.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/master2gd_snp.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/master2pg.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/master2pg.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/mergeSnps.pl (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/pagetag.py (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/pass.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/pass_wrapper.sh (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/senatag.py (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/sift.xml (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/sift_variants_wrapper.sh (100%) rename {lib/galaxy/tools/bundled => tools}/phenotype_association/vcf2pgSnpMult.pl (100%) rename {lib/galaxy/tools/bundled => tools}/plotting/bar_chart.py (100%) rename {lib/galaxy/tools/bundled => tools}/plotting/bar_chart.xml (100%) rename {lib/galaxy/tools/bundled => tools}/plotting/boxplot.xml (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/maq_cs_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/maq_cs_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/maq_cs_wrapper_code.py (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/qualsolid_boxplot_graph.sh (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/solid_qual_boxplot.xml (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/solid_qual_stats.py (100%) rename {lib/galaxy/tools/bundled => tools}/solid_tools/solid_qual_stats.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_assembly/velvetg.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_assembly/velvetg_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/sr_assembly/velveth.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_assembly/velveth_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/PerM.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/bfast_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/bfast_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/fastq_statistics.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/mosaik.xml (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/srma_wrapper.py (100%) rename {lib/galaxy/tools/bundled => tools}/sr_mapping/srma_wrapper.xml (100%) rename {lib/galaxy/tools/bundled => tools}/stats/aggregate_binned_scores_in_intervals.xml (100%) rename {lib/galaxy/tools/bundled => tools}/stats/aggregate_scores_in_intervals.py (100%) rename {lib/galaxy/tools/bundled => tools}/stats/filtering.py (100%) rename {lib/galaxy/tools/bundled => tools}/stats/filtering.xml (100%) rename {lib/galaxy/tools/bundled => tools}/stats/grouping.py (100%) rename {lib/galaxy/tools/bundled => tools}/stats/grouping.xml (100%) rename {lib/galaxy/tools/bundled => tools}/stats/gsummary.py (100%) rename {lib/galaxy/tools/bundled => tools}/stats/gsummary.xml (100%) rename {lib/galaxy/tools/bundled => tools}/stats/gsummary.xml.groups (100%) rename {lib/galaxy/tools/bundled => tools}/stats/r_wrapper.sh (100%) rename {lib/galaxy/tools/bundled => tools}/visualization/LAJ.py (100%) rename {lib/galaxy/tools/bundled => tools}/visualization/LAJ.xml (100%) rename {lib/galaxy/tools/bundled => tools}/visualization/LAJ_code.py (100%) diff --git a/lib/galaxy/datatypes/display_applications/configs/biom/biom_simple.xml b/display_applications/biom/biom_simple.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/biom/biom_simple.xml rename to display_applications/biom/biom_simple.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_bam.xml b/display_applications/ensembl/ensembl_bam.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_bam.xml rename to display_applications/ensembl/ensembl_bam.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_gff.xml b/display_applications/ensembl/ensembl_gff.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_gff.xml rename to display_applications/ensembl/ensembl_gff.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_interval_as_bed.xml b/display_applications/ensembl/ensembl_interval_as_bed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ensembl/ensembl_interval_as_bed.xml rename to display_applications/ensembl/ensembl_interval_as_bed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_gff.xml b/display_applications/gbrowse/gbrowse_gff.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_gff.xml rename to display_applications/gbrowse/gbrowse_gff.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_interval_as_bed.xml b/display_applications/gbrowse/gbrowse_interval_as_bed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_interval_as_bed.xml rename to display_applications/gbrowse/gbrowse_interval_as_bed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_wig.xml b/display_applications/gbrowse/gbrowse_wig.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/gbrowse/gbrowse_wig.xml rename to display_applications/gbrowse/gbrowse_wig.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/bam.xml b/display_applications/igb/bam.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/bam.xml rename to display_applications/igb/bam.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/bb.xml b/display_applications/igb/bb.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/bb.xml rename to display_applications/igb/bb.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/bed.xml b/display_applications/igb/bed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/bed.xml rename to display_applications/igb/bed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/bedgraph.xml b/display_applications/igb/bedgraph.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/bedgraph.xml rename to display_applications/igb/bedgraph.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/bigwig.xml b/display_applications/igb/bigwig.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/bigwig.xml rename to display_applications/igb/bigwig.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/gtf.xml b/display_applications/igb/gtf.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/gtf.xml rename to display_applications/igb/gtf.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igb/wig.xml b/display_applications/igb/wig.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igb/wig.xml rename to display_applications/igb/wig.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igv/bam.xml b/display_applications/igv/bam.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igv/bam.xml rename to display_applications/igv/bam.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igv/gff.xml b/display_applications/igv/gff.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igv/gff.xml rename to display_applications/igv/gff.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igv/interval_as_bed.xml b/display_applications/igv/interval_as_bed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igv/interval_as_bed.xml rename to display_applications/igv/interval_as_bed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/igv/vcf.xml b/display_applications/igv/vcf.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/igv/vcf.xml rename to display_applications/igv/vcf.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/iobio/bam.xml b/display_applications/iobio/bam.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/iobio/bam.xml rename to display_applications/iobio/bam.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/iobio/vcf.xml b/display_applications/iobio/vcf.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/iobio/vcf.xml rename to display_applications/iobio/vcf.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/rviewer/bed.xml b/display_applications/rviewer/bed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/rviewer/bed.xml rename to display_applications/rviewer/bed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/rviewer/vcf.xml b/display_applications/rviewer/vcf.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/rviewer/vcf.xml rename to display_applications/rviewer/vcf.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ucsc/bam.xml b/display_applications/ucsc/bam.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ucsc/bam.xml rename to display_applications/ucsc/bam.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ucsc/bigbed.xml b/display_applications/ucsc/bigbed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ucsc/bigbed.xml rename to display_applications/ucsc/bigbed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ucsc/bigwig.xml b/display_applications/ucsc/bigwig.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ucsc/bigwig.xml rename to display_applications/ucsc/bigwig.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ucsc/interval_as_bed.xml b/display_applications/ucsc/interval_as_bed.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ucsc/interval_as_bed.xml rename to display_applications/ucsc/interval_as_bed.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ucsc/maf_customtrack.xml b/display_applications/ucsc/maf_customtrack.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ucsc/maf_customtrack.xml rename to display_applications/ucsc/maf_customtrack.xml diff --git a/lib/galaxy/datatypes/display_applications/configs/ucsc/vcf.xml b/display_applications/ucsc/vcf.xml similarity index 100% rename from lib/galaxy/datatypes/display_applications/configs/ucsc/vcf.xml rename to display_applications/ucsc/vcf.xml diff --git a/lib/galaxy/web/framework/static/src b/lib/galaxy/web/framework/static/src deleted file mode 120000 index ff897777cef..00000000000 --- a/lib/galaxy/web/framework/static/src +++ /dev/null @@ -1 +0,0 @@ -../../../../../client/galaxy/scripts \ No newline at end of file diff --git a/lib/galaxy/web/framework/static/toolshed/src b/lib/galaxy/web/framework/static/toolshed/src deleted file mode 120000 index c220e9eeebb..00000000000 --- a/lib/galaxy/web/framework/static/toolshed/src +++ /dev/null @@ -1 +0,0 @@ -../../../../../../client/toolshed/scripts \ No newline at end of file diff --git a/lib/galaxy/web/framework/static/images/Armitagep_manhattan.png b/static/images/Armitagep_manhattan.png similarity index 100% rename from lib/galaxy/web/framework/static/images/Armitagep_manhattan.png rename to static/images/Armitagep_manhattan.png diff --git a/lib/galaxy/web/framework/static/images/Armitagep_qqplot.png b/static/images/Armitagep_qqplot.png similarity index 100% rename from lib/galaxy/web/framework/static/images/Armitagep_qqplot.png rename to static/images/Armitagep_qqplot.png diff --git a/lib/galaxy/web/framework/static/images/add_icon.png b/static/images/add_icon.png similarity index 100% rename from lib/galaxy/web/framework/static/images/add_icon.png rename to static/images/add_icon.png diff --git a/lib/galaxy/web/framework/static/images/add_icon_dark.png b/static/images/add_icon_dark.png similarity index 100% rename from lib/galaxy/web/framework/static/images/add_icon_dark.png rename to static/images/add_icon_dark.png diff --git a/lib/galaxy/web/framework/static/images/aggregate_history1.png b/static/images/aggregate_history1.png similarity index 100% rename from lib/galaxy/web/framework/static/images/aggregate_history1.png rename to static/images/aggregate_history1.png diff --git a/lib/galaxy/web/framework/static/images/aggregate_history2.png b/static/images/aggregate_history2.png similarity index 100% rename from lib/galaxy/web/framework/static/images/aggregate_history2.png rename to static/images/aggregate_history2.png diff --git a/lib/galaxy/web/framework/static/images/bar_chart.png b/static/images/bar_chart.png similarity index 100% rename from lib/galaxy/web/framework/static/images/bar_chart.png rename to static/images/bar_chart.png diff --git a/lib/galaxy/web/framework/static/images/bed_warn.png b/static/images/bed_warn.png similarity index 100% rename from lib/galaxy/web/framework/static/images/bed_warn.png rename to static/images/bed_warn.png diff --git a/lib/galaxy/web/framework/static/images/closebox.png b/static/images/closebox.png similarity index 100% rename from lib/galaxy/web/framework/static/images/closebox.png rename to static/images/closebox.png diff --git a/lib/galaxy/web/framework/static/images/dat_points_table_brows_1.png b/static/images/dat_points_table_brows_1.png similarity index 100% rename from lib/galaxy/web/framework/static/images/dat_points_table_brows_1.png rename to static/images/dat_points_table_brows_1.png diff --git a/lib/galaxy/web/framework/static/images/ddarrowsplit.png b/static/images/ddarrowsplit.png similarity index 100% rename from lib/galaxy/web/framework/static/images/ddarrowsplit.png rename to static/images/ddarrowsplit.png diff --git a/lib/galaxy/web/framework/static/images/delete.gif b/static/images/delete.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/delete.gif rename to static/images/delete.gif diff --git a/lib/galaxy/web/framework/static/images/delete_tag_icon_gray.png b/static/images/delete_tag_icon_gray.png similarity index 100% rename from lib/galaxy/web/framework/static/images/delete_tag_icon_gray.png rename to static/images/delete_tag_icon_gray.png diff --git a/lib/galaxy/web/framework/static/images/delete_tag_icon_white.png b/static/images/delete_tag_icon_white.png similarity index 100% rename from lib/galaxy/web/framework/static/images/delete_tag_icon_white.png rename to static/images/delete_tag_icon_white.png diff --git a/lib/galaxy/web/framework/static/images/documents-stack-faded.png b/static/images/documents-stack-faded.png similarity index 100% rename from lib/galaxy/web/framework/static/images/documents-stack-faded.png rename to static/images/documents-stack-faded.png diff --git a/lib/galaxy/web/framework/static/images/documents-stack.png b/static/images/documents-stack.png similarity index 100% rename from lib/galaxy/web/framework/static/images/documents-stack.png rename to static/images/documents-stack.png diff --git a/lib/galaxy/web/framework/static/images/dropdownarrow.png b/static/images/dropdownarrow.png similarity index 100% rename from lib/galaxy/web/framework/static/images/dropdownarrow.png rename to static/images/dropdownarrow.png diff --git a/lib/galaxy/web/framework/static/images/dw.gif b/static/images/dw.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/dw.gif rename to static/images/dw.gif diff --git a/lib/galaxy/web/framework/static/images/fetchTax.png b/static/images/fetchTax.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fetchTax.png rename to static/images/fetchTax.png diff --git a/lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.eot b/static/images/fonts/fontawesome-webfont.eot similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.eot rename to static/images/fonts/fontawesome-webfont.eot diff --git a/lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.ttf b/static/images/fonts/fontawesome-webfont.ttf similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.ttf rename to static/images/fonts/fontawesome-webfont.ttf diff --git a/lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.woff b/static/images/fonts/fontawesome-webfont.woff similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/fontawesome-webfont.woff rename to static/images/fonts/fontawesome-webfont.woff diff --git a/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.eot b/static/images/fonts/iconic_stroke.eot similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/iconic_stroke.eot rename to static/images/fonts/iconic_stroke.eot diff --git a/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.otf b/static/images/fonts/iconic_stroke.otf similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/iconic_stroke.otf rename to static/images/fonts/iconic_stroke.otf diff --git a/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.svg b/static/images/fonts/iconic_stroke.svg similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/iconic_stroke.svg rename to static/images/fonts/iconic_stroke.svg diff --git a/lib/galaxy/web/framework/static/images/fonts/iconic_stroke.ttf b/static/images/fonts/iconic_stroke.ttf similarity index 100% rename from lib/galaxy/web/framework/static/images/fonts/iconic_stroke.ttf rename to static/images/fonts/iconic_stroke.ttf diff --git a/lib/galaxy/web/framework/static/images/fugue/application-dock-270-bw.png b/static/images/fugue/application-dock-270-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/application-dock-270-bw.png rename to static/images/fugue/application-dock-270-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/application-dock-270.png b/static/images/fugue/application-dock-270.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/application-dock-270.png rename to static/images/fugue/application-dock-270.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-000-small-bw.png b/static/images/fugue/arrow-000-small-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-000-small-bw.png rename to static/images/fugue/arrow-000-small-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-090.png b/static/images/fugue/arrow-090.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-090.png rename to static/images/fugue/arrow-090.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-circle.png b/static/images/fugue/arrow-circle.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-circle.png rename to static/images/fugue/arrow-circle.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-resize-090-bw.png b/static/images/fugue/arrow-resize-090-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-resize-090-bw.png rename to static/images/fugue/arrow-resize-090-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-resize-090.png b/static/images/fugue/arrow-resize-090.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-resize-090.png rename to static/images/fugue/arrow-resize-090.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-split-bw.png b/static/images/fugue/arrow-split-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-split-bw.png rename to static/images/fugue/arrow-split-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-split.png b/static/images/fugue/arrow-split.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-split.png rename to static/images/fugue/arrow-split.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-transition-270-bw.png b/static/images/fugue/arrow-transition-270-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-transition-270-bw.png rename to static/images/fugue/arrow-transition-270-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/arrow-transition-bw.png b/static/images/fugue/arrow-transition-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/arrow-transition-bw.png rename to static/images/fugue/arrow-transition-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/asterisk-small-outline.png b/static/images/fugue/asterisk-small-outline.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/asterisk-small-outline.png rename to static/images/fugue/asterisk-small-outline.png diff --git a/lib/galaxy/web/framework/static/images/fugue/asterisk-small-yellow.png b/static/images/fugue/asterisk-small-yellow.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/asterisk-small-yellow.png rename to static/images/fugue/asterisk-small-yellow.png diff --git a/lib/galaxy/web/framework/static/images/fugue/asterisk-small.png b/static/images/fugue/asterisk-small.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/asterisk-small.png rename to static/images/fugue/asterisk-small.png diff --git a/lib/galaxy/web/framework/static/images/fugue/block--plus-bw.png b/static/images/fugue/block--plus-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/block--plus-bw.png rename to static/images/fugue/block--plus-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/block--plus.png b/static/images/fugue/block--plus.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/block--plus.png rename to static/images/fugue/block--plus.png diff --git a/lib/galaxy/web/framework/static/images/fugue/bookmarks-bw.png b/static/images/fugue/bookmarks-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/bookmarks-bw.png rename to static/images/fugue/bookmarks-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/bookmarks.png b/static/images/fugue/bookmarks.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/bookmarks.png rename to static/images/fugue/bookmarks.png diff --git a/lib/galaxy/web/framework/static/images/fugue/bug.png b/static/images/fugue/bug.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/bug.png rename to static/images/fugue/bug.png diff --git a/lib/galaxy/web/framework/static/images/fugue/chart.png b/static/images/fugue/chart.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/chart.png rename to static/images/fugue/chart.png diff --git a/lib/galaxy/web/framework/static/images/fugue/chevron-expand-bw.png b/static/images/fugue/chevron-expand-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/chevron-expand-bw.png rename to static/images/fugue/chevron-expand-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/chevron-expand.png b/static/images/fugue/chevron-expand.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/chevron-expand.png rename to static/images/fugue/chevron-expand.png diff --git a/lib/galaxy/web/framework/static/images/fugue/chevron.png b/static/images/fugue/chevron.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/chevron.png rename to static/images/fugue/chevron.png diff --git a/lib/galaxy/web/framework/static/images/fugue/control-270.png b/static/images/fugue/control-270.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/control-270.png rename to static/images/fugue/control-270.png diff --git a/lib/galaxy/web/framework/static/images/fugue/cross-button.png b/static/images/fugue/cross-button.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/cross-button.png rename to static/images/fugue/cross-button.png diff --git a/lib/galaxy/web/framework/static/images/fugue/cross-circle-bw.png b/static/images/fugue/cross-circle-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/cross-circle-bw.png rename to static/images/fugue/cross-circle-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/cross-circle.png b/static/images/fugue/cross-circle.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/cross-circle.png rename to static/images/fugue/cross-circle.png diff --git a/lib/galaxy/web/framework/static/images/fugue/cross-small-bw.png b/static/images/fugue/cross-small-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/cross-small-bw.png rename to static/images/fugue/cross-small-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/cross.png b/static/images/fugue/cross.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/cross.png rename to static/images/fugue/cross.png diff --git a/lib/galaxy/web/framework/static/images/fugue/disk--arrow-bw.png b/static/images/fugue/disk--arrow-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/disk--arrow-bw.png rename to static/images/fugue/disk--arrow-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/disk--arrow.png b/static/images/fugue/disk--arrow.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/disk--arrow.png rename to static/images/fugue/disk--arrow.png diff --git a/lib/galaxy/web/framework/static/images/fugue/disk.png b/static/images/fugue/disk.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/disk.png rename to static/images/fugue/disk.png diff --git a/lib/galaxy/web/framework/static/images/fugue/exclamation.png b/static/images/fugue/exclamation.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/exclamation.png rename to static/images/fugue/exclamation.png diff --git a/lib/galaxy/web/framework/static/images/fugue/external.png b/static/images/fugue/external.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/external.png rename to static/images/fugue/external.png diff --git a/lib/galaxy/web/framework/static/images/fugue/eye.png b/static/images/fugue/eye.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/eye.png rename to static/images/fugue/eye.png diff --git a/lib/galaxy/web/framework/static/images/fugue/gear-bw.png b/static/images/fugue/gear-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/gear-bw.png rename to static/images/fugue/gear-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/gear.png b/static/images/fugue/gear.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/gear.png rename to static/images/fugue/gear.png diff --git a/lib/galaxy/web/framework/static/images/fugue/globe-bw.png b/static/images/fugue/globe-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/globe-bw.png rename to static/images/fugue/globe-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/globe.png b/static/images/fugue/globe.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/globe.png rename to static/images/fugue/globe.png diff --git a/lib/galaxy/web/framework/static/images/fugue/hammer-bw.png b/static/images/fugue/hammer-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/hammer-bw.png rename to static/images/fugue/hammer-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/hammer.png b/static/images/fugue/hammer.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/hammer.png rename to static/images/fugue/hammer.png diff --git a/lib/galaxy/web/framework/static/images/fugue/information-white.png b/static/images/fugue/information-white.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/information-white.png rename to static/images/fugue/information-white.png diff --git a/lib/galaxy/web/framework/static/images/fugue/layer-transparent-bw.png b/static/images/fugue/layer-transparent-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/layer-transparent-bw.png rename to static/images/fugue/layer-transparent-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/layer-transparent.png b/static/images/fugue/layer-transparent.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/layer-transparent.png rename to static/images/fugue/layer-transparent.png diff --git a/lib/galaxy/web/framework/static/images/fugue/layers-stack-bw.png b/static/images/fugue/layers-stack-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/layers-stack-bw.png rename to static/images/fugue/layers-stack-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/layers-stack.png b/static/images/fugue/layers-stack.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/layers-stack.png rename to static/images/fugue/layers-stack.png diff --git a/lib/galaxy/web/framework/static/images/fugue/magnifier-left.png b/static/images/fugue/magnifier-left.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/magnifier-left.png rename to static/images/fugue/magnifier-left.png diff --git a/lib/galaxy/web/framework/static/images/fugue/magnifier-zoom-out.png b/static/images/fugue/magnifier-zoom-out.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/magnifier-zoom-out.png rename to static/images/fugue/magnifier-zoom-out.png diff --git a/lib/galaxy/web/framework/static/images/fugue/magnifier-zoom.png b/static/images/fugue/magnifier-zoom.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/magnifier-zoom.png rename to static/images/fugue/magnifier-zoom.png diff --git a/lib/galaxy/web/framework/static/images/fugue/navigation.png b/static/images/fugue/navigation.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/navigation.png rename to static/images/fugue/navigation.png diff --git a/lib/galaxy/web/framework/static/images/fugue/pencil-small.png b/static/images/fugue/pencil-small.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/pencil-small.png rename to static/images/fugue/pencil-small.png diff --git a/lib/galaxy/web/framework/static/images/fugue/pencil.png b/static/images/fugue/pencil.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/pencil.png rename to static/images/fugue/pencil.png diff --git a/lib/galaxy/web/framework/static/images/fugue/plus-button-bw.png b/static/images/fugue/plus-button-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/plus-button-bw.png rename to static/images/fugue/plus-button-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/plus-button.png b/static/images/fugue/plus-button.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/plus-button.png rename to static/images/fugue/plus-button.png diff --git a/lib/galaxy/web/framework/static/images/fugue/plus-circle.png b/static/images/fugue/plus-circle.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/plus-circle.png rename to static/images/fugue/plus-circle.png diff --git a/lib/galaxy/web/framework/static/images/fugue/sticky-note-text.png b/static/images/fugue/sticky-note-text.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/sticky-note-text.png rename to static/images/fugue/sticky-note-text.png diff --git a/lib/galaxy/web/framework/static/images/fugue/tag--plus.png b/static/images/fugue/tag--plus.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/tag--plus.png rename to static/images/fugue/tag--plus.png diff --git a/lib/galaxy/web/framework/static/images/fugue/tag-label.png b/static/images/fugue/tag-label.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/tag-label.png rename to static/images/fugue/tag-label.png diff --git a/lib/galaxy/web/framework/static/images/fugue/tags.png b/static/images/fugue/tags.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/tags.png rename to static/images/fugue/tags.png diff --git a/lib/galaxy/web/framework/static/images/fugue/toggle-bw.png b/static/images/fugue/toggle-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/toggle-bw.png rename to static/images/fugue/toggle-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/toggle-expand-bw.png b/static/images/fugue/toggle-expand-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/toggle-expand-bw.png rename to static/images/fugue/toggle-expand-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/toggle-expand.png b/static/images/fugue/toggle-expand.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/toggle-expand.png rename to static/images/fugue/toggle-expand.png diff --git a/lib/galaxy/web/framework/static/images/fugue/toggle.png b/static/images/fugue/toggle.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/toggle.png rename to static/images/fugue/toggle.png diff --git a/lib/galaxy/web/framework/static/images/fugue/toolbox-bw.png b/static/images/fugue/toolbox-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/toolbox-bw.png rename to static/images/fugue/toolbox-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/toolbox.png b/static/images/fugue/toolbox.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/toolbox.png rename to static/images/fugue/toolbox.png diff --git a/lib/galaxy/web/framework/static/images/fugue/ui-slider-050-bw.png b/static/images/fugue/ui-slider-050-bw.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/ui-slider-050-bw.png rename to static/images/fugue/ui-slider-050-bw.png diff --git a/lib/galaxy/web/framework/static/images/fugue/ui-slider-050.png b/static/images/fugue/ui-slider-050.png similarity index 100% rename from lib/galaxy/web/framework/static/images/fugue/ui-slider-050.png rename to static/images/fugue/ui-slider-050.png diff --git a/lib/galaxy/web/framework/static/images/galaxyIcon_noText.png b/static/images/galaxyIcon_noText.png similarity index 100% rename from lib/galaxy/web/framework/static/images/galaxyIcon_noText.png rename to static/images/galaxyIcon_noText.png diff --git a/lib/galaxy/web/framework/static/images/hatch-023858.png b/static/images/hatch-023858.png similarity index 100% rename from lib/galaxy/web/framework/static/images/hatch-023858.png rename to static/images/hatch-023858.png diff --git a/lib/galaxy/web/framework/static/images/hatch-fade-023858.gif b/static/images/hatch-fade-023858.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/hatch-fade-023858.gif rename to static/images/hatch-fade-023858.gif diff --git a/lib/galaxy/web/framework/static/images/histogram.png b/static/images/histogram.png similarity index 100% rename from lib/galaxy/web/framework/static/images/histogram.png rename to static/images/histogram.png diff --git a/lib/galaxy/web/framework/static/images/histogram2.png b/static/images/histogram2.png similarity index 100% rename from lib/galaxy/web/framework/static/images/histogram2.png rename to static/images/histogram2.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/delete_icon.png b/static/images/history-buttons/delete_icon.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/delete_icon.png rename to static/images/history-buttons/delete_icon.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/delete_icon_dark.png b/static/images/history-buttons/delete_icon_dark.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/delete_icon_dark.png rename to static/images/history-buttons/delete_icon_dark.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/delete_icon_grey.png b/static/images/history-buttons/delete_icon_grey.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/delete_icon_grey.png rename to static/images/history-buttons/delete_icon_grey.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/eye_icon.png b/static/images/history-buttons/eye_icon.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/eye_icon.png rename to static/images/history-buttons/eye_icon.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/eye_icon_dark.png b/static/images/history-buttons/eye_icon_dark.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/eye_icon_dark.png rename to static/images/history-buttons/eye_icon_dark.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/eye_icon_grey.png b/static/images/history-buttons/eye_icon_grey.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/eye_icon_grey.png rename to static/images/history-buttons/eye_icon_grey.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/pencil_icon.png b/static/images/history-buttons/pencil_icon.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/pencil_icon.png rename to static/images/history-buttons/pencil_icon.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_dark.png b/static/images/history-buttons/pencil_icon_dark.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_dark.png rename to static/images/history-buttons/pencil_icon_dark.png diff --git a/lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_grey.png b/static/images/history-buttons/pencil_icon_grey.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-buttons/pencil_icon_grey.png rename to static/images/history-buttons/pencil_icon_grey.png diff --git a/lib/galaxy/web/framework/static/images/history-states/data_empty.png b/static/images/history-states/data_empty.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-states/data_empty.png rename to static/images/history-states/data_empty.png diff --git a/lib/galaxy/web/framework/static/images/history-states/data_error.png b/static/images/history-states/data_error.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-states/data_error.png rename to static/images/history-states/data_error.png diff --git a/lib/galaxy/web/framework/static/images/history-states/data_ok.png b/static/images/history-states/data_ok.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-states/data_ok.png rename to static/images/history-states/data_ok.png diff --git a/lib/galaxy/web/framework/static/images/history-states/data_queued.png b/static/images/history-states/data_queued.png similarity index 100% rename from lib/galaxy/web/framework/static/images/history-states/data_queued.png rename to static/images/history-states/data_queued.png diff --git a/lib/galaxy/web/framework/static/images/history.gif b/static/images/history.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/history.gif rename to static/images/history.gif diff --git a/lib/galaxy/web/framework/static/images/history_down_arrow.gif b/static/images/history_down_arrow.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/history_down_arrow.gif rename to static/images/history_down_arrow.gif diff --git a/lib/galaxy/web/framework/static/images/history_up_arrow.gif b/static/images/history_up_arrow.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/history_up_arrow.gif rename to static/images/history_up_arrow.gif diff --git a/lib/galaxy/web/framework/static/images/icon_error_lrg.gif b/static/images/icon_error_lrg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_error_lrg.gif rename to static/images/icon_error_lrg.gif diff --git a/lib/galaxy/web/framework/static/images/icon_error_sml.gif b/static/images/icon_error_sml.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_error_sml.gif rename to static/images/icon_error_sml.gif diff --git a/lib/galaxy/web/framework/static/images/icon_info_lrg.gif b/static/images/icon_info_lrg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_info_lrg.gif rename to static/images/icon_info_lrg.gif diff --git a/lib/galaxy/web/framework/static/images/icon_info_sml.gif b/static/images/icon_info_sml.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_info_sml.gif rename to static/images/icon_info_sml.gif diff --git a/lib/galaxy/web/framework/static/images/icon_success_lrg.gif b/static/images/icon_success_lrg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_success_lrg.gif rename to static/images/icon_success_lrg.gif diff --git a/lib/galaxy/web/framework/static/images/icon_success_sml.gif b/static/images/icon_success_sml.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_success_sml.gif rename to static/images/icon_success_sml.gif diff --git a/lib/galaxy/web/framework/static/images/icon_warning_lrg.gif b/static/images/icon_warning_lrg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_warning_lrg.gif rename to static/images/icon_warning_lrg.gif diff --git a/lib/galaxy/web/framework/static/images/icon_warning_sml.gif b/static/images/icon_warning_sml.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/icon_warning_sml.gif rename to static/images/icon_warning_sml.gif diff --git a/lib/galaxy/web/framework/static/images/jstree/32px.png b/static/images/jstree/32px.png similarity index 100% rename from lib/galaxy/web/framework/static/images/jstree/32px.png rename to static/images/jstree/32px.png diff --git a/lib/galaxy/web/framework/static/images/jstree/40px.png b/static/images/jstree/40px.png similarity index 100% rename from lib/galaxy/web/framework/static/images/jstree/40px.png rename to static/images/jstree/40px.png diff --git a/lib/galaxy/web/framework/static/images/jstree/throbber.gif b/static/images/jstree/throbber.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/jstree/throbber.gif rename to static/images/jstree/throbber.gif diff --git a/lib/galaxy/web/framework/static/images/kendall.png b/static/images/kendall.png similarity index 100% rename from lib/galaxy/web/framework/static/images/kendall.png rename to static/images/kendall.png diff --git a/lib/galaxy/web/framework/static/images/light_gray_grid.gif b/static/images/light_gray_grid.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/light_gray_grid.gif rename to static/images/light_gray_grid.gif diff --git a/lib/galaxy/web/framework/static/images/loading_large_white_bg.gif b/static/images/loading_large_white_bg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/loading_large_white_bg.gif rename to static/images/loading_large_white_bg.gif diff --git a/lib/galaxy/web/framework/static/images/loading_small_white_bg.gif b/static/images/loading_small_white_bg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/loading_small_white_bg.gif rename to static/images/loading_small_white_bg.gif diff --git a/lib/galaxy/web/framework/static/images/maf_icons/interval2maf.png b/static/images/maf_icons/interval2maf.png similarity index 100% rename from lib/galaxy/web/framework/static/images/maf_icons/interval2maf.png rename to static/images/maf_icons/interval2maf.png diff --git a/lib/galaxy/web/framework/static/images/maf_icons/stitchMaf.png b/static/images/maf_icons/stitchMaf.png similarity index 100% rename from lib/galaxy/web/framework/static/images/maf_icons/stitchMaf.png rename to static/images/maf_icons/stitchMaf.png diff --git a/lib/galaxy/web/framework/static/images/mag_glass.png b/static/images/mag_glass.png similarity index 100% rename from lib/galaxy/web/framework/static/images/mag_glass.png rename to static/images/mag_glass.png diff --git a/lib/galaxy/web/framework/static/images/mutation_visualization_example.png b/static/images/mutation_visualization_example.png similarity index 100% rename from lib/galaxy/web/framework/static/images/mutation_visualization_example.png rename to static/images/mutation_visualization_example.png diff --git a/lib/galaxy/web/framework/static/images/openid-16x16.gif b/static/images/openid-16x16.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/openid-16x16.gif rename to static/images/openid-16x16.gif diff --git a/lib/galaxy/web/framework/static/images/overview_arrows.png b/static/images/overview_arrows.png similarity index 100% rename from lib/galaxy/web/framework/static/images/overview_arrows.png rename to static/images/overview_arrows.png diff --git a/lib/galaxy/web/framework/static/images/pearson.png b/static/images/pearson.png similarity index 100% rename from lib/galaxy/web/framework/static/images/pearson.png rename to static/images/pearson.png diff --git a/lib/galaxy/web/framework/static/images/resizable.png b/static/images/resizable.png similarity index 100% rename from lib/galaxy/web/framework/static/images/resizable.png rename to static/images/resizable.png diff --git a/lib/galaxy/web/framework/static/images/rgWebLogo3_test.jpg b/static/images/rgWebLogo3_test.jpg similarity index 100% rename from lib/galaxy/web/framework/static/images/rgWebLogo3_test.jpg rename to static/images/rgWebLogo3_test.jpg diff --git a/lib/galaxy/web/framework/static/images/scatter.png b/static/images/scatter.png similarity index 100% rename from lib/galaxy/web/framework/static/images/scatter.png rename to static/images/scatter.png diff --git a/lib/galaxy/web/framework/static/images/scatterplot.png b/static/images/scatterplot.png similarity index 100% rename from lib/galaxy/web/framework/static/images/scatterplot.png rename to static/images/scatterplot.png diff --git a/lib/galaxy/web/framework/static/images/select2-spinner.gif b/static/images/select2-spinner.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/select2-spinner.gif rename to static/images/select2-spinner.gif diff --git a/lib/galaxy/web/framework/static/images/select2.png b/static/images/select2.png similarity index 100% rename from lib/galaxy/web/framework/static/images/select2.png rename to static/images/select2.png diff --git a/lib/galaxy/web/framework/static/images/select2x2.png b/static/images/select2x2.png similarity index 100% rename from lib/galaxy/web/framework/static/images/select2x2.png rename to static/images/select2x2.png diff --git a/lib/galaxy/web/framework/static/images/silk/add.png b/static/images/silk/add.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/add.png rename to static/images/silk/add.png diff --git a/lib/galaxy/web/framework/static/images/silk/book.png b/static/images/silk/book.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/book.png rename to static/images/silk/book.png diff --git a/lib/galaxy/web/framework/static/images/silk/book_open.png b/static/images/silk/book_open.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/book_open.png rename to static/images/silk/book_open.png diff --git a/lib/galaxy/web/framework/static/images/silk/chart_curve.png b/static/images/silk/chart_curve.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/chart_curve.png rename to static/images/silk/chart_curve.png diff --git a/lib/galaxy/web/framework/static/images/silk/folder.png b/static/images/silk/folder.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/folder.png rename to static/images/silk/folder.png diff --git a/lib/galaxy/web/framework/static/images/silk/folder_page.png b/static/images/silk/folder_page.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/folder_page.png rename to static/images/silk/folder_page.png diff --git a/lib/galaxy/web/framework/static/images/silk/link.png b/static/images/silk/link.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/link.png rename to static/images/silk/link.png diff --git a/lib/galaxy/web/framework/static/images/silk/link_break.png b/static/images/silk/link_break.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/link_break.png rename to static/images/silk/link_break.png diff --git a/lib/galaxy/web/framework/static/images/silk/page_white.png b/static/images/silk/page_white.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/page_white.png rename to static/images/silk/page_white.png diff --git a/lib/galaxy/web/framework/static/images/silk/page_white_compressed.png b/static/images/silk/page_white_compressed.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/page_white_compressed.png rename to static/images/silk/page_white_compressed.png diff --git a/lib/galaxy/web/framework/static/images/silk/resultset_bottom.png b/static/images/silk/resultset_bottom.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/resultset_bottom.png rename to static/images/silk/resultset_bottom.png diff --git a/lib/galaxy/web/framework/static/images/silk/resultset_next.png b/static/images/silk/resultset_next.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/resultset_next.png rename to static/images/silk/resultset_next.png diff --git a/lib/galaxy/web/framework/static/images/silk/resultset_previous.png b/static/images/silk/resultset_previous.png similarity index 100% rename from lib/galaxy/web/framework/static/images/silk/resultset_previous.png rename to static/images/silk/resultset_previous.png diff --git a/lib/galaxy/web/framework/static/images/solid_qual.png b/static/images/solid_qual.png similarity index 100% rename from lib/galaxy/web/framework/static/images/solid_qual.png rename to static/images/solid_qual.png diff --git a/lib/galaxy/web/framework/static/images/spearman.png b/static/images/spearman.png similarity index 100% rename from lib/galaxy/web/framework/static/images/spearman.png rename to static/images/spearman.png diff --git a/lib/galaxy/web/framework/static/images/square_empty.gif b/static/images/square_empty.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/square_empty.gif rename to static/images/square_empty.gif diff --git a/lib/galaxy/web/framework/static/images/square_error.gif b/static/images/square_error.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/square_error.gif rename to static/images/square_error.gif diff --git a/lib/galaxy/web/framework/static/images/square_ok.gif b/static/images/square_ok.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/square_ok.gif rename to static/images/square_ok.gif diff --git a/lib/galaxy/web/framework/static/images/square_queued.gif b/static/images/square_queued.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/square_queued.gif rename to static/images/square_queued.gif diff --git a/lib/galaxy/web/framework/static/images/square_running.gif b/static/images/square_running.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/square_running.gif rename to static/images/square_running.gif diff --git a/lib/galaxy/web/framework/static/images/star.gif b/static/images/star.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/star.gif rename to static/images/star.gif diff --git a/lib/galaxy/web/framework/static/images/thumbtack_icon.png b/static/images/thumbtack_icon.png similarity index 100% rename from lib/galaxy/web/framework/static/images/thumbtack_icon.png rename to static/images/thumbtack_icon.png diff --git a/lib/galaxy/web/framework/static/images/thumbtack_icon_dark.png b/static/images/thumbtack_icon_dark.png similarity index 100% rename from lib/galaxy/web/framework/static/images/thumbtack_icon_dark.png rename to static/images/thumbtack_icon_dark.png diff --git a/lib/galaxy/web/framework/static/images/tipsy.gif b/static/images/tipsy.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tipsy.gif rename to static/images/tipsy.gif diff --git a/lib/galaxy/web/framework/static/images/tool_menu_down_arrow.gif b/static/images/tool_menu_down_arrow.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tool_menu_down_arrow.gif rename to static/images/tool_menu_down_arrow.gif diff --git a/lib/galaxy/web/framework/static/images/tools/lda/first_matrix_generator_example_file.png b/static/images/tools/lda/first_matrix_generator_example_file.png similarity index 100% rename from lib/galaxy/web/framework/static/images/tools/lda/first_matrix_generator_example_file.png rename to static/images/tools/lda/first_matrix_generator_example_file.png diff --git a/lib/galaxy/web/framework/static/images/tools/lda/second_matrix_generator_example_file.png b/static/images/tools/lda/second_matrix_generator_example_file.png similarity index 100% rename from lib/galaxy/web/framework/static/images/tools/lda/second_matrix_generator_example_file.png rename to static/images/tools/lda/second_matrix_generator_example_file.png diff --git a/lib/galaxy/web/framework/static/images/tracks/block.png b/static/images/tracks/block.png similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/block.png rename to static/images/tracks/block.png diff --git a/lib/galaxy/web/framework/static/images/tracks/close_btn.gif b/static/images/tracks/close_btn.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/close_btn.gif rename to static/images/tracks/close_btn.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/diag_bg.gif b/static/images/tracks/diag_bg.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/diag_bg.gif rename to static/images/tracks/diag_bg.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/go_btn.gif b/static/images/tracks/go_btn.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/go_btn.gif rename to static/images/tracks/go_btn.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/handle-left.gif b/static/images/tracks/handle-left.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/handle-left.gif rename to static/images/tracks/handle-left.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/handle-right.gif b/static/images/tracks/handle-right.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/handle-right.gif rename to static/images/tracks/handle-right.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/pan_left.gif b/static/images/tracks/pan_left.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/pan_left.gif rename to static/images/tracks/pan_left.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/pan_right.gif b/static/images/tracks/pan_right.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/pan_right.gif rename to static/images/tracks/pan_right.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/show_history.gif b/static/images/tracks/show_history.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/show_history.gif rename to static/images/tracks/show_history.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/zoom_in.gif b/static/images/tracks/zoom_in.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/zoom_in.gif rename to static/images/tracks/zoom_in.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/zoom_in_full.gif b/static/images/tracks/zoom_in_full.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/zoom_in_full.gif rename to static/images/tracks/zoom_in_full.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/zoom_out.gif b/static/images/tracks/zoom_out.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/zoom_out.gif rename to static/images/tracks/zoom_out.gif diff --git a/lib/galaxy/web/framework/static/images/tracks/zoom_out_full.gif b/static/images/tracks/zoom_out_full.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/tracks/zoom_out_full.gif rename to static/images/tracks/zoom_out_full.gif diff --git a/lib/galaxy/web/framework/static/images/up.gif b/static/images/up.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/up.gif rename to static/images/up.gif diff --git a/lib/galaxy/web/framework/static/images/visualization/draggable_horizontal.png b/static/images/visualization/draggable_horizontal.png similarity index 100% rename from lib/galaxy/web/framework/static/images/visualization/draggable_horizontal.png rename to static/images/visualization/draggable_horizontal.png diff --git a/lib/galaxy/web/framework/static/images/visualization/draggable_vertical.png b/static/images/visualization/draggable_vertical.png similarity index 100% rename from lib/galaxy/web/framework/static/images/visualization/draggable_vertical.png rename to static/images/visualization/draggable_vertical.png diff --git a/lib/galaxy/web/framework/static/images/visualization/strand_left.png b/static/images/visualization/strand_left.png similarity index 100% rename from lib/galaxy/web/framework/static/images/visualization/strand_left.png rename to static/images/visualization/strand_left.png diff --git a/lib/galaxy/web/framework/static/images/visualization/strand_left_inv.png b/static/images/visualization/strand_left_inv.png similarity index 100% rename from lib/galaxy/web/framework/static/images/visualization/strand_left_inv.png rename to static/images/visualization/strand_left_inv.png diff --git a/lib/galaxy/web/framework/static/images/visualization/strand_right.png b/static/images/visualization/strand_right.png similarity index 100% rename from lib/galaxy/web/framework/static/images/visualization/strand_right.png rename to static/images/visualization/strand_right.png diff --git a/lib/galaxy/web/framework/static/images/visualization/strand_right_inv.png b/static/images/visualization/strand_right_inv.png similarity index 100% rename from lib/galaxy/web/framework/static/images/visualization/strand_right_inv.png rename to static/images/visualization/strand_right_inv.png diff --git a/lib/galaxy/web/framework/static/images/yui/rel_interstitial_loading.gif b/static/images/yui/rel_interstitial_loading.gif similarity index 100% rename from lib/galaxy/web/framework/static/images/yui/rel_interstitial_loading.gif rename to static/images/yui/rel_interstitial_loading.gif diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/group/grid.mako b/templates/admin/dataset_security/group/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/group/grid.mako rename to templates/admin/dataset_security/group/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/group/group.mako b/templates/admin/dataset_security/group/group.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/group/group.mako rename to templates/admin/dataset_security/group/group.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/group/group_create.mako b/templates/admin/dataset_security/group/group_create.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/group/group_create.mako rename to templates/admin/dataset_security/group/group_create.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/group/group_rename.mako b/templates/admin/dataset_security/group/group_rename.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/group/group_rename.mako rename to templates/admin/dataset_security/group/group_rename.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/role/grid.mako b/templates/admin/dataset_security/role/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/role/grid.mako rename to templates/admin/dataset_security/role/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/role/role.mako b/templates/admin/dataset_security/role/role.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/role/role.mako rename to templates/admin/dataset_security/role/role.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/role/role_create.mako b/templates/admin/dataset_security/role/role_create.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/role/role_create.mako rename to templates/admin/dataset_security/role/role_create.mako diff --git a/lib/galaxy/web/framework/templates/admin/dataset_security/role/role_rename.mako b/templates/admin/dataset_security/role/role_rename.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/dataset_security/role/role_rename.mako rename to templates/admin/dataset_security/role/role_rename.mako diff --git a/lib/galaxy/web/framework/templates/admin/external_service/common.mako b/templates/admin/external_service/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/external_service/common.mako rename to templates/admin/external_service/common.mako diff --git a/lib/galaxy/web/framework/templates/admin/external_service/create_external_service.mako b/templates/admin/external_service/create_external_service.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/external_service/create_external_service.mako rename to templates/admin/external_service/create_external_service.mako diff --git a/lib/galaxy/web/framework/templates/admin/external_service/edit_external_service.mako b/templates/admin/external_service/edit_external_service.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/external_service/edit_external_service.mako rename to templates/admin/external_service/edit_external_service.mako diff --git a/lib/galaxy/web/framework/templates/admin/external_service/grid.mako b/templates/admin/external_service/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/external_service/grid.mako rename to templates/admin/external_service/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/external_service/reload_external_service_types.mako b/templates/admin/external_service/reload_external_service_types.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/external_service/reload_external_service_types.mako rename to templates/admin/external_service/reload_external_service_types.mako diff --git a/lib/galaxy/web/framework/templates/admin/external_service/view_external_service.mako b/templates/admin/external_service/view_external_service.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/external_service/view_external_service.mako rename to templates/admin/external_service/view_external_service.mako diff --git a/lib/galaxy/web/framework/templates/admin/forms/create_form.mako b/templates/admin/forms/create_form.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/forms/create_form.mako rename to templates/admin/forms/create_form.mako diff --git a/lib/galaxy/web/framework/templates/admin/forms/edit_form_definition.mako b/templates/admin/forms/edit_form_definition.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/forms/edit_form_definition.mako rename to templates/admin/forms/edit_form_definition.mako diff --git a/lib/galaxy/web/framework/templates/admin/forms/grid.mako b/templates/admin/forms/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/forms/grid.mako rename to templates/admin/forms/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/forms/view_form_definition.mako b/templates/admin/forms/view_form_definition.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/forms/view_form_definition.mako rename to templates/admin/forms/view_form_definition.mako diff --git a/lib/galaxy/web/framework/templates/admin/impersonate.mako b/templates/admin/impersonate.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/impersonate.mako rename to templates/admin/impersonate.mako diff --git a/lib/galaxy/web/framework/templates/admin/jobs.mako b/templates/admin/jobs.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/jobs.mako rename to templates/admin/jobs.mako diff --git a/lib/galaxy/web/framework/templates/admin/library/grid.mako b/templates/admin/library/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/library/grid.mako rename to templates/admin/library/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/library/new_library.mako b/templates/admin/library/new_library.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/library/new_library.mako rename to templates/admin/library/new_library.mako diff --git a/lib/galaxy/web/framework/templates/admin/package_tool.mako b/templates/admin/package_tool.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/package_tool.mako rename to templates/admin/package_tool.mako diff --git a/lib/galaxy/web/framework/templates/admin/quota/grid.mako b/templates/admin/quota/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/quota/grid.mako rename to templates/admin/quota/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/quota/quota.mako b/templates/admin/quota/quota.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/quota/quota.mako rename to templates/admin/quota/quota.mako diff --git a/lib/galaxy/web/framework/templates/admin/quota/quota_create.mako b/templates/admin/quota/quota_create.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/quota/quota_create.mako rename to templates/admin/quota/quota_create.mako diff --git a/lib/galaxy/web/framework/templates/admin/quota/quota_edit.mako b/templates/admin/quota/quota_edit.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/quota/quota_edit.mako rename to templates/admin/quota/quota_edit.mako diff --git a/lib/galaxy/web/framework/templates/admin/quota/quota_rename.mako b/templates/admin/quota/quota_rename.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/quota/quota_rename.mako rename to templates/admin/quota/quota_rename.mako diff --git a/lib/galaxy/web/framework/templates/admin/quota/quota_set_default.mako b/templates/admin/quota/quota_set_default.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/quota/quota_set_default.mako rename to templates/admin/quota/quota_set_default.mako diff --git a/lib/galaxy/web/framework/templates/admin/reload_tool.mako b/templates/admin/reload_tool.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/reload_tool.mako rename to templates/admin/reload_tool.mako diff --git a/lib/galaxy/web/framework/templates/admin/request_type/common.mako b/templates/admin/request_type/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/request_type/common.mako rename to templates/admin/request_type/common.mako diff --git a/lib/galaxy/web/framework/templates/admin/request_type/create_request_type.mako b/templates/admin/request_type/create_request_type.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/request_type/create_request_type.mako rename to templates/admin/request_type/create_request_type.mako diff --git a/lib/galaxy/web/framework/templates/admin/request_type/edit_request_type.mako b/templates/admin/request_type/edit_request_type.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/request_type/edit_request_type.mako rename to templates/admin/request_type/edit_request_type.mako diff --git a/lib/galaxy/web/framework/templates/admin/request_type/grid.mako b/templates/admin/request_type/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/request_type/grid.mako rename to templates/admin/request_type/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/request_type/request_type_permissions.mako b/templates/admin/request_type/request_type_permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/request_type/request_type_permissions.mako rename to templates/admin/request_type/request_type_permissions.mako diff --git a/lib/galaxy/web/framework/templates/admin/request_type/view_request_type.mako b/templates/admin/request_type/view_request_type.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/request_type/view_request_type.mako rename to templates/admin/request_type/view_request_type.mako diff --git a/lib/galaxy/web/framework/templates/admin/requests/grid.mako b/templates/admin/requests/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/requests/grid.mako rename to templates/admin/requests/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/requests/reject.mako b/templates/admin/requests/reject.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/requests/reject.mako rename to templates/admin/requests/reject.mako diff --git a/lib/galaxy/web/framework/templates/admin/requests/rename_datasets.mako b/templates/admin/requests/rename_datasets.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/requests/rename_datasets.mako rename to templates/admin/requests/rename_datasets.mako diff --git a/lib/galaxy/web/framework/templates/admin/requests/sample_datasets_grid.mako b/templates/admin/requests/sample_datasets_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/requests/sample_datasets_grid.mako rename to templates/admin/requests/sample_datasets_grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/requests/view_sample_dataset.mako b/templates/admin/requests/view_sample_dataset.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/requests/view_sample_dataset.mako rename to templates/admin/requests/view_sample_dataset.mako diff --git a/lib/galaxy/web/framework/templates/admin/review_tool_migration_stages.mako b/templates/admin/review_tool_migration_stages.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/review_tool_migration_stages.mako rename to templates/admin/review_tool_migration_stages.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_errors.mako b/templates/admin/tool_errors.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_errors.mako rename to templates/admin/tool_errors.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_categories.mako b/templates/admin/tool_shed_repository/browse_categories.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_categories.mako rename to templates/admin/tool_shed_repository/browse_categories.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_category.mako b/templates/admin/tool_shed_repository/browse_category.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_category.mako rename to templates/admin/tool_shed_repository/browse_category.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_repository.mako b/templates/admin/tool_shed_repository/browse_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_repository.mako rename to templates/admin/tool_shed_repository/browse_repository.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_tool_dependency.mako b/templates/admin/tool_shed_repository/browse_tool_dependency.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/browse_tool_dependency.mako rename to templates/admin/tool_shed_repository/browse_tool_dependency.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/common.mako b/templates/admin/tool_shed_repository/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/common.mako rename to templates/admin/tool_shed_repository/common.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako b/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako rename to templates/admin/tool_shed_repository/deactivate_or_uninstall_repository.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/grid.mako b/templates/admin/tool_shed_repository/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/grid.mako rename to templates/admin/tool_shed_repository/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/initiate_repository_installation.mako b/templates/admin/tool_shed_repository/initiate_repository_installation.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/initiate_repository_installation.mako rename to templates/admin/tool_shed_repository/initiate_repository_installation.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako b/templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako rename to templates/admin/tool_shed_repository/install_tool_dependencies_with_update.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository.mako b/templates/admin/tool_shed_repository/manage_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository.mako rename to templates/admin/tool_shed_repository/manage_repository.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako b/templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako rename to templates/admin/tool_shed_repository/manage_repository_tool_dependencies.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/preview_repository.mako b/templates/admin/tool_shed_repository/preview_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/preview_repository.mako rename to templates/admin/tool_shed_repository/preview_repository.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/purge_repository_confirmation.mako b/templates/admin/tool_shed_repository/purge_repository_confirmation.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/purge_repository_confirmation.mako rename to templates/admin/tool_shed_repository/purge_repository_confirmation.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repair_repository.mako b/templates/admin/tool_shed_repository/repair_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/repair_repository.mako rename to templates/admin/tool_shed_repository/repair_repository.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_actions_menu.mako b/templates/admin/tool_shed_repository/repository_actions_menu.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_actions_menu.mako rename to templates/admin/tool_shed_repository/repository_actions_menu.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_grid.mako b/templates/admin/tool_shed_repository/repository_installation_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_grid.mako rename to templates/admin/tool_shed_repository/repository_installation_grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_status.mako b/templates/admin/tool_shed_repository/repository_installation_status.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/repository_installation_status.mako rename to templates/admin/tool_shed_repository/repository_installation_status.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako b/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/reselect_tool_panel_section.mako rename to templates/admin/tool_shed_repository/reselect_tool_panel_section.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako b/templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako rename to templates/admin/tool_shed_repository/reset_metadata_on_selected_repositories.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako b/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako rename to templates/admin/tool_shed_repository/select_shed_tool_panel_config.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_tool_panel_section.mako b/templates/admin/tool_shed_repository/select_tool_panel_section.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/select_tool_panel_section.mako rename to templates/admin/tool_shed_repository/select_tool_panel_section.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependencies_grid.mako b/templates/admin/tool_shed_repository/tool_dependencies_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependencies_grid.mako rename to templates/admin/tool_shed_repository/tool_dependencies_grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependency_installation_status.mako b/templates/admin/tool_shed_repository/tool_dependency_installation_status.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/tool_dependency_installation_status.mako rename to templates/admin/tool_shed_repository/tool_dependency_installation_status.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako b/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako rename to templates/admin/tool_shed_repository/uninstall_tool_dependencies.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_tool_metadata.mako b/templates/admin/tool_shed_repository/view_tool_metadata.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_tool_metadata.mako rename to templates/admin/tool_shed_repository/view_tool_metadata.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_workflow.mako b/templates/admin/tool_shed_repository/view_workflow.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_shed_repository/view_workflow.mako rename to templates/admin/tool_shed_repository/view_workflow.mako diff --git a/lib/galaxy/web/framework/templates/admin/tool_version/grid.mako b/templates/admin/tool_version/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/tool_version/grid.mako rename to templates/admin/tool_version/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/user/grid.mako b/templates/admin/user/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/user/grid.mako rename to templates/admin/user/grid.mako diff --git a/lib/galaxy/web/framework/templates/admin/user/reset_password.mako b/templates/admin/user/reset_password.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/user/reset_password.mako rename to templates/admin/user/reset_password.mako diff --git a/lib/galaxy/web/framework/templates/admin/user/user.mako b/templates/admin/user/user.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/user/user.mako rename to templates/admin/user/user.mako diff --git a/lib/galaxy/web/framework/templates/admin/view_data_tables_registry.mako b/templates/admin/view_data_tables_registry.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/view_data_tables_registry.mako rename to templates/admin/view_data_tables_registry.mako diff --git a/lib/galaxy/web/framework/templates/admin/view_datatypes_registry.mako b/templates/admin/view_datatypes_registry.mako similarity index 100% rename from lib/galaxy/web/framework/templates/admin/view_datatypes_registry.mako rename to templates/admin/view_datatypes_registry.mako diff --git a/lib/galaxy/web/framework/templates/base.mako b/templates/base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/base.mako rename to templates/base.mako diff --git a/lib/galaxy/web/framework/templates/base/base_panels.mako b/templates/base/base_panels.mako similarity index 100% rename from lib/galaxy/web/framework/templates/base/base_panels.mako rename to templates/base/base_panels.mako diff --git a/lib/galaxy/web/framework/templates/common/select_template.mako b/templates/common/select_template.mako similarity index 100% rename from lib/galaxy/web/framework/templates/common/select_template.mako rename to templates/common/select_template.mako diff --git a/lib/galaxy/web/framework/templates/common/template_common.mako b/templates/common/template_common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/common/template_common.mako rename to templates/common/template_common.mako diff --git a/lib/galaxy/web/framework/templates/display_base.mako b/templates/display_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/display_base.mako rename to templates/display_base.mako diff --git a/lib/galaxy/web/framework/templates/display_common.mako b/templates/display_common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/display_common.mako rename to templates/display_common.mako diff --git a/lib/galaxy/web/framework/templates/embed_base.mako b/templates/embed_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/embed_base.mako rename to templates/embed_base.mako diff --git a/lib/galaxy/web/framework/templates/export_base.mako b/templates/export_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/export_base.mako rename to templates/export_base.mako diff --git a/lib/galaxy/web/framework/templates/form.mako b/templates/form.mako similarity index 100% rename from lib/galaxy/web/framework/templates/form.mako rename to templates/form.mako diff --git a/lib/galaxy/web/framework/templates/galaxy_client_app.mako b/templates/galaxy_client_app.mako similarity index 100% rename from lib/galaxy/web/framework/templates/galaxy_client_app.mako rename to templates/galaxy_client_app.mako diff --git a/lib/galaxy/web/framework/templates/grid_base.mako b/templates/grid_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/grid_base.mako rename to templates/grid_base.mako diff --git a/lib/galaxy/web/framework/templates/grid_base_async.mako b/templates/grid_base_async.mako similarity index 100% rename from lib/galaxy/web/framework/templates/grid_base_async.mako rename to templates/grid_base_async.mako diff --git a/lib/galaxy/web/framework/templates/ind_share_base.mako b/templates/ind_share_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/ind_share_base.mako rename to templates/ind_share_base.mako diff --git a/lib/galaxy/web/framework/templates/js-app.mako b/templates/js-app.mako similarity index 100% rename from lib/galaxy/web/framework/templates/js-app.mako rename to templates/js-app.mako diff --git a/lib/galaxy/web/framework/templates/message.mako b/templates/message.mako similarity index 100% rename from lib/galaxy/web/framework/templates/message.mako rename to templates/message.mako diff --git a/lib/galaxy/web/framework/templates/no_access.mako b/templates/no_access.mako similarity index 100% rename from lib/galaxy/web/framework/templates/no_access.mako rename to templates/no_access.mako diff --git a/lib/galaxy/web/framework/templates/page_base.mako b/templates/page_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/page_base.mako rename to templates/page_base.mako diff --git a/lib/galaxy/web/framework/templates/panels.mako b/templates/panels.mako similarity index 100% rename from lib/galaxy/web/framework/templates/panels.mako rename to templates/panels.mako diff --git a/lib/galaxy/web/framework/templates/refresh_frames.mako b/templates/refresh_frames.mako similarity index 100% rename from lib/galaxy/web/framework/templates/refresh_frames.mako rename to templates/refresh_frames.mako diff --git a/lib/galaxy/web/framework/templates/rss.mako b/templates/rss.mako similarity index 100% rename from lib/galaxy/web/framework/templates/rss.mako rename to templates/rss.mako diff --git a/lib/galaxy/web/framework/templates/search/index.mako b/templates/search/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/search/index.mako rename to templates/search/index.mako diff --git a/lib/galaxy/web/framework/templates/sharing_base.mako b/templates/sharing_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/sharing_base.mako rename to templates/sharing_base.mako diff --git a/lib/galaxy/web/framework/templates/show_params.mako b/templates/show_params.mako similarity index 100% rename from lib/galaxy/web/framework/templates/show_params.mako rename to templates/show_params.mako diff --git a/lib/galaxy/web/framework/templates/slug_editing_js.mako b/templates/slug_editing_js.mako similarity index 100% rename from lib/galaxy/web/framework/templates/slug_editing_js.mako rename to templates/slug_editing_js.mako diff --git a/lib/galaxy/web/framework/templates/sorting_base.mako b/templates/sorting_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/sorting_base.mako rename to templates/sorting_base.mako diff --git a/lib/galaxy/web/framework/templates/spark_base.mako b/templates/spark_base.mako similarity index 100% rename from lib/galaxy/web/framework/templates/spark_base.mako rename to templates/spark_base.mako diff --git a/lib/galaxy/web/framework/templates/tagging_common.mako b/templates/tagging_common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/tagging_common.mako rename to templates/tagging_common.mako diff --git a/lib/galaxy/web/framework/templates/tool_shed_rating.mako b/templates/tool_shed_rating.mako similarity index 100% rename from lib/galaxy/web/framework/templates/tool_shed_rating.mako rename to templates/tool_shed_rating.mako diff --git a/lib/galaxy/web/framework/templates/user/change_password.mako b/templates/user/change_password.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/change_password.mako rename to templates/user/change_password.mako diff --git a/lib/galaxy/web/framework/templates/user/dbkeys.mako b/templates/user/dbkeys.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/dbkeys.mako rename to templates/user/dbkeys.mako diff --git a/lib/galaxy/web/framework/templates/user/edit_address.mako b/templates/user/edit_address.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/edit_address.mako rename to templates/user/edit_address.mako diff --git a/lib/galaxy/web/framework/templates/user/index.mako b/templates/user/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/index.mako rename to templates/user/index.mako diff --git a/lib/galaxy/web/framework/templates/user/info.mako b/templates/user/info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/info.mako rename to templates/user/info.mako diff --git a/lib/galaxy/web/framework/templates/user/login.mako b/templates/user/login.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/login.mako rename to templates/user/login.mako diff --git a/lib/galaxy/web/framework/templates/user/logout.mako b/templates/user/logout.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/logout.mako rename to templates/user/logout.mako diff --git a/lib/galaxy/web/framework/templates/user/new_address.mako b/templates/user/new_address.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/new_address.mako rename to templates/user/new_address.mako diff --git a/lib/galaxy/web/framework/templates/user/openid_associate.mako b/templates/user/openid_associate.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/openid_associate.mako rename to templates/user/openid_associate.mako diff --git a/lib/galaxy/web/framework/templates/user/openid_manage.mako b/templates/user/openid_manage.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/openid_manage.mako rename to templates/user/openid_manage.mako diff --git a/lib/galaxy/web/framework/templates/user/permissions.mako b/templates/user/permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/permissions.mako rename to templates/user/permissions.mako diff --git a/lib/galaxy/web/framework/templates/user/register.mako b/templates/user/register.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/register.mako rename to templates/user/register.mako diff --git a/lib/galaxy/web/framework/templates/user/reset_password.mako b/templates/user/reset_password.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/reset_password.mako rename to templates/user/reset_password.mako diff --git a/lib/galaxy/web/framework/templates/user/toolbox_filters.mako b/templates/user/toolbox_filters.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/toolbox_filters.mako rename to templates/user/toolbox_filters.mako diff --git a/lib/galaxy/web/framework/templates/user/username.mako b/templates/user/username.mako similarity index 100% rename from lib/galaxy/web/framework/templates/user/username.mako rename to templates/user/username.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/admin/center.mako b/templates/webapps/galaxy/admin/center.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/admin/center.mako rename to templates/webapps/galaxy/admin/center.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/admin/index.mako b/templates/webapps/galaxy/admin/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/admin/index.mako rename to templates/webapps/galaxy/admin/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/admin/sanitize_whitelist.mako b/templates/webapps/galaxy/admin/sanitize_whitelist.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/admin/sanitize_whitelist.mako rename to templates/webapps/galaxy/admin/sanitize_whitelist.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/admin/tool_sheds.mako b/templates/webapps/galaxy/admin/tool_sheds.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/admin/tool_sheds.mako rename to templates/webapps/galaxy/admin/tool_sheds.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/admin/toolsheds.mako b/templates/webapps/galaxy/admin/toolsheds.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/admin/toolsheds.mako rename to templates/webapps/galaxy/admin/toolsheds.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/admin/view_display_applications.mako b/templates/webapps/galaxy/admin/view_display_applications.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/admin/view_display_applications.mako rename to templates/webapps/galaxy/admin/view_display_applications.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/base_panels.mako b/templates/webapps/galaxy/base_panels.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/base_panels.mako rename to templates/webapps/galaxy/base_panels.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/biostar/post_redirect.mako b/templates/webapps/galaxy/biostar/post_redirect.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/biostar/post_redirect.mako rename to templates/webapps/galaxy/biostar/post_redirect.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/index.mako b/templates/webapps/galaxy/data_manager/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/index.mako rename to templates/webapps/galaxy/data_manager/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_manager.mako b/templates/webapps/galaxy/data_manager/manage_data_manager.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_manager.mako rename to templates/webapps/galaxy/data_manager/manage_data_manager.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_table.mako b/templates/webapps/galaxy/data_manager/manage_data_table.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/manage_data_table.mako rename to templates/webapps/galaxy/data_manager/manage_data_table.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/view_job.mako b/templates/webapps/galaxy/data_manager/view_job.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/data_manager/view_job.mako rename to templates/webapps/galaxy/data_manager/view_job.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/copy_view.mako b/templates/webapps/galaxy/dataset/copy_view.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/copy_view.mako rename to templates/webapps/galaxy/dataset/copy_view.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display.mako b/templates/webapps/galaxy/dataset/display.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display.mako rename to templates/webapps/galaxy/dataset/display.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display_application/display.mako b/templates/webapps/galaxy/dataset/display_application/display.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/display_application/display.mako rename to templates/webapps/galaxy/dataset/display_application/display.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/edit_attributes.mako b/templates/webapps/galaxy/dataset/edit_attributes.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/edit_attributes.mako rename to templates/webapps/galaxy/dataset/edit_attributes.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/embed.mako b/templates/webapps/galaxy/dataset/embed.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/embed.mako rename to templates/webapps/galaxy/dataset/embed.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/errors.mako b/templates/webapps/galaxy/dataset/errors.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/errors.mako rename to templates/webapps/galaxy/dataset/errors.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/grid.mako b/templates/webapps/galaxy/dataset/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/grid.mako rename to templates/webapps/galaxy/dataset/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/item_content.mako b/templates/webapps/galaxy/dataset/item_content.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/item_content.mako rename to templates/webapps/galaxy/dataset/item_content.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/large_file.mako b/templates/webapps/galaxy/dataset/large_file.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/large_file.mako rename to templates/webapps/galaxy/dataset/large_file.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/security_common.mako b/templates/webapps/galaxy/dataset/security_common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/security_common.mako rename to templates/webapps/galaxy/dataset/security_common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/dataset/tabular_chunked.mako b/templates/webapps/galaxy/dataset/tabular_chunked.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/dataset/tabular_chunked.mako rename to templates/webapps/galaxy/dataset/tabular_chunked.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_jquery_grid.mako b/templates/webapps/galaxy/external_services/generic_jquery_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_jquery_grid.mako rename to templates/webapps/galaxy/external_services/generic_jquery_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_json.mako b/templates/webapps/galaxy/external_services/generic_json.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/external_services/generic_json.mako rename to templates/webapps/galaxy/external_services/generic_json.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/external_services/json_common.mako b/templates/webapps/galaxy/external_services/json_common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/external_services/json_common.mako rename to templates/webapps/galaxy/external_services/json_common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.masthead.mako b/templates/webapps/galaxy/galaxy.masthead.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.masthead.mako rename to templates/webapps/galaxy/galaxy.masthead.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.panels.mako b/templates/webapps/galaxy/galaxy.panels.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/galaxy.panels.mako rename to templates/webapps/galaxy/galaxy.panels.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/as_xml.mako b/templates/webapps/galaxy/history/as_xml.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/as_xml.mako rename to templates/webapps/galaxy/history/as_xml.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/citations.mako b/templates/webapps/galaxy/history/citations.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/citations.mako rename to templates/webapps/galaxy/history/citations.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/display.mako b/templates/webapps/galaxy/history/display.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/display.mako rename to templates/webapps/galaxy/history/display.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/display_structured.mako b/templates/webapps/galaxy/history/display_structured.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/display_structured.mako rename to templates/webapps/galaxy/history/display_structured.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/embed.mako b/templates/webapps/galaxy/history/embed.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/embed.mako rename to templates/webapps/galaxy/history/embed.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/grid.mako b/templates/webapps/galaxy/history/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/grid.mako rename to templates/webapps/galaxy/history/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/grid_js.mako b/templates/webapps/galaxy/history/grid_js.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/grid_js.mako rename to templates/webapps/galaxy/history/grid_js.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/item_content.mako b/templates/webapps/galaxy/history/item_content.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/item_content.mako rename to templates/webapps/galaxy/history/item_content.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/list_as_xml.mako b/templates/webapps/galaxy/history/list_as_xml.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/list_as_xml.mako rename to templates/webapps/galaxy/history/list_as_xml.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/list_published.mako b/templates/webapps/galaxy/history/list_published.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/list_published.mako rename to templates/webapps/galaxy/history/list_published.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/permissions.mako b/templates/webapps/galaxy/history/permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/permissions.mako rename to templates/webapps/galaxy/history/permissions.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/rename.mako b/templates/webapps/galaxy/history/rename.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/rename.mako rename to templates/webapps/galaxy/history/rename.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/share.mako b/templates/webapps/galaxy/history/share.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/share.mako rename to templates/webapps/galaxy/history/share.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/shared_grid.mako b/templates/webapps/galaxy/history/shared_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/shared_grid.mako rename to templates/webapps/galaxy/history/shared_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/structure.mako b/templates/webapps/galaxy/history/structure.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/structure.mako rename to templates/webapps/galaxy/history/structure.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/view.mako b/templates/webapps/galaxy/history/view.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/view.mako rename to templates/webapps/galaxy/history/view.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/history/view_multiple.mako b/templates/webapps/galaxy/history/view_multiple.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/history/view_multiple.mako rename to templates/webapps/galaxy/history/view_multiple.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library.mako b/templates/webapps/galaxy/library/common/browse_library.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library.mako rename to templates/webapps/galaxy/library/common/browse_library.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library_opt.mako b/templates/webapps/galaxy/library/common/browse_library_opt.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/browse_library_opt.mako rename to templates/webapps/galaxy/library/common/browse_library_opt.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/common.mako b/templates/webapps/galaxy/library/common/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/common.mako rename to templates/webapps/galaxy/library/common/common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_info.mako b/templates/webapps/galaxy/library/common/folder_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_info.mako rename to templates/webapps/galaxy/library/common/folder_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_permissions.mako b/templates/webapps/galaxy/library/common/folder_permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/folder_permissions.mako rename to templates/webapps/galaxy/library/common/folder_permissions.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/import_datasets_to_histories.mako b/templates/webapps/galaxy/library/common/import_datasets_to_histories.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/import_datasets_to_histories.mako rename to templates/webapps/galaxy/library/common/import_datasets_to_histories.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_edit_info.mako b/templates/webapps/galaxy/library/common/ldda_edit_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_edit_info.mako rename to templates/webapps/galaxy/library/common/ldda_edit_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_info.mako b/templates/webapps/galaxy/library/common/ldda_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_info.mako rename to templates/webapps/galaxy/library/common/ldda_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_permissions.mako b/templates/webapps/galaxy/library/common/ldda_permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/ldda_permissions.mako rename to templates/webapps/galaxy/library/common/ldda_permissions.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_info.mako b/templates/webapps/galaxy/library/common/library_dataset_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_info.mako rename to templates/webapps/galaxy/library/common/library_dataset_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_permissions.mako b/templates/webapps/galaxy/library/common/library_dataset_permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_permissions.mako rename to templates/webapps/galaxy/library/common/library_dataset_permissions.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_search_results.mako b/templates/webapps/galaxy/library/common/library_dataset_search_results.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_dataset_search_results.mako rename to templates/webapps/galaxy/library/common/library_dataset_search_results.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_info.mako b/templates/webapps/galaxy/library/common/library_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_info.mako rename to templates/webapps/galaxy/library/common/library_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_item_info.mako b/templates/webapps/galaxy/library/common/library_item_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_item_info.mako rename to templates/webapps/galaxy/library/common/library_item_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_permissions.mako b/templates/webapps/galaxy/library/common/library_permissions.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/library_permissions.mako rename to templates/webapps/galaxy/library/common/library_permissions.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/move_library_item.mako b/templates/webapps/galaxy/library/common/move_library_item.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/move_library_item.mako rename to templates/webapps/galaxy/library/common/move_library_item.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/new_folder.mako b/templates/webapps/galaxy/library/common/new_folder.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/new_folder.mako rename to templates/webapps/galaxy/library/common/new_folder.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/common/upload.mako b/templates/webapps/galaxy/library/common/upload.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/common/upload.mako rename to templates/webapps/galaxy/library/common/upload.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/grid.mako b/templates/webapps/galaxy/library/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/grid.mako rename to templates/webapps/galaxy/library/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/library/index.mako b/templates/webapps/galaxy/library/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/library/index.mako rename to templates/webapps/galaxy/library/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/detail.mako b/templates/webapps/galaxy/mobile/dataset/detail.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/detail.mako rename to templates/webapps/galaxy/mobile/dataset/detail.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/peek.mako b/templates/webapps/galaxy/mobile/dataset/peek.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/dataset/peek.mako rename to templates/webapps/galaxy/mobile/dataset/peek.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/form.mako b/templates/webapps/galaxy/mobile/form.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/form.mako rename to templates/webapps/galaxy/mobile/form.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/detail.mako b/templates/webapps/galaxy/mobile/history/detail.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/detail.mako rename to templates/webapps/galaxy/mobile/history/detail.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/list.mako b/templates/webapps/galaxy/mobile/history/list.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/history/list.mako rename to templates/webapps/galaxy/mobile/history/list.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/index.mako b/templates/webapps/galaxy/mobile/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/index.mako rename to templates/webapps/galaxy/mobile/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/manage_library.mako b/templates/webapps/galaxy/mobile/manage_library.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/manage_library.mako rename to templates/webapps/galaxy/mobile/manage_library.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/mobile/settings.mako b/templates/webapps/galaxy/mobile/settings.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/mobile/settings.mako rename to templates/webapps/galaxy/mobile/settings.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/create.mako b/templates/webapps/galaxy/page/create.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/create.mako rename to templates/webapps/galaxy/page/create.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/display.mako b/templates/webapps/galaxy/page/display.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/display.mako rename to templates/webapps/galaxy/page/display.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/editor.mako b/templates/webapps/galaxy/page/editor.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/editor.mako rename to templates/webapps/galaxy/page/editor.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/index.mako b/templates/webapps/galaxy/page/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/index.mako rename to templates/webapps/galaxy/page/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/list_published.mako b/templates/webapps/galaxy/page/list_published.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/list_published.mako rename to templates/webapps/galaxy/page/list_published.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/select_items_grid.mako b/templates/webapps/galaxy/page/select_items_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/select_items_grid.mako rename to templates/webapps/galaxy/page/select_items_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/page/wymiframe.mako b/templates/webapps/galaxy/page/wymiframe.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/page/wymiframe.mako rename to templates/webapps/galaxy/page/wymiframe.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/add_samples.mako b/templates/webapps/galaxy/requests/common/add_samples.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/add_samples.mako rename to templates/webapps/galaxy/requests/common/add_samples.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/common.mako b/templates/webapps/galaxy/requests/common/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/common.mako rename to templates/webapps/galaxy/requests/common/common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/create_request.mako b/templates/webapps/galaxy/requests/common/create_request.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/create_request.mako rename to templates/webapps/galaxy/requests/common/create_request.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_basic_request_info.mako b/templates/webapps/galaxy/requests/common/edit_basic_request_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_basic_request_info.mako rename to templates/webapps/galaxy/requests/common/edit_basic_request_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_samples.mako b/templates/webapps/galaxy/requests/common/edit_samples.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/edit_samples.mako rename to templates/webapps/galaxy/requests/common/edit_samples.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/find_samples.mako b/templates/webapps/galaxy/requests/common/find_samples.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/find_samples.mako rename to templates/webapps/galaxy/requests/common/find_samples.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/index.mako b/templates/webapps/galaxy/requests/common/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/index.mako rename to templates/webapps/galaxy/requests/common/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako b/templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako rename to templates/webapps/galaxy/requests/common/sample_dataset_transfer_status.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_datasets.mako b/templates/webapps/galaxy/requests/common/sample_datasets.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_datasets.mako rename to templates/webapps/galaxy/requests/common/sample_datasets.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_state.mako b/templates/webapps/galaxy/requests/common/sample_state.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/sample_state.mako rename to templates/webapps/galaxy/requests/common/sample_state.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request.mako b/templates/webapps/galaxy/requests/common/view_request.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request.mako rename to templates/webapps/galaxy/requests/common/view_request.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request_history.mako b/templates/webapps/galaxy/requests/common/view_request_history.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_request_history.mako rename to templates/webapps/galaxy/requests/common/view_request_history.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample.mako b/templates/webapps/galaxy/requests/common/view_sample.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample.mako rename to templates/webapps/galaxy/requests/common/view_sample.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_datasets.mako b/templates/webapps/galaxy/requests/common/view_sample_datasets.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_datasets.mako rename to templates/webapps/galaxy/requests/common/view_sample_datasets.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_history.mako b/templates/webapps/galaxy/requests/common/view_sample_history.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/common/view_sample_history.mako rename to templates/webapps/galaxy/requests/common/view_sample_history.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/find_samples_index.mako b/templates/webapps/galaxy/requests/find_samples_index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/find_samples_index.mako rename to templates/webapps/galaxy/requests/find_samples_index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/grid.mako b/templates/webapps/galaxy/requests/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/grid.mako rename to templates/webapps/galaxy/requests/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/requests/index.mako b/templates/webapps/galaxy/requests/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/requests/index.mako rename to templates/webapps/galaxy/requests/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/root/redirect.mako b/templates/webapps/galaxy/root/redirect.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/root/redirect.mako rename to templates/webapps/galaxy/root/redirect.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/root/tool_runner.mako b/templates/webapps/galaxy/root/tool_runner.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/root/tool_runner.mako rename to templates/webapps/galaxy/root/tool_runner.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_to_viz.mako b/templates/webapps/galaxy/tracks/add_to_viz.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_to_viz.mako rename to templates/webapps/galaxy/tracks/add_to_viz.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_tracks.mako b/templates/webapps/galaxy/tracks/add_tracks.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/tracks/add_tracks.mako rename to templates/webapps/galaxy/tracks/add_tracks.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_datasets_select_grid.mako b/templates/webapps/galaxy/tracks/history_datasets_select_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_datasets_select_grid.mako rename to templates/webapps/galaxy/tracks/history_datasets_select_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_select_grid.mako b/templates/webapps/galaxy/tracks/history_select_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/tracks/history_select_grid.mako rename to templates/webapps/galaxy/tracks/history_select_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/tracks/library_datasets_select_grid.mako b/templates/webapps/galaxy/tracks/library_datasets_select_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/tracks/library_datasets_select_grid.mako rename to templates/webapps/galaxy/tracks/library_datasets_select_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/user/api_keys.mako b/templates/webapps/galaxy/user/api_keys.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/user/api_keys.mako rename to templates/webapps/galaxy/user/api_keys.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/user/list_users.mako b/templates/webapps/galaxy/user/list_users.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/user/list_users.mako rename to templates/webapps/galaxy/user/list_users.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/user/manage_info.mako b/templates/webapps/galaxy/user/manage_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/user/manage_info.mako rename to templates/webapps/galaxy/user/manage_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/create.mako b/templates/webapps/galaxy/visualization/create.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/create.mako rename to templates/webapps/galaxy/visualization/create.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display.mako b/templates/webapps/galaxy/visualization/display.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display.mako rename to templates/webapps/galaxy/visualization/display.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display_in_frame.mako b/templates/webapps/galaxy/visualization/display_in_frame.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/display_in_frame.mako rename to templates/webapps/galaxy/visualization/display_in_frame.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed.mako b/templates/webapps/galaxy/visualization/embed.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed.mako rename to templates/webapps/galaxy/visualization/embed.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed_in_frame.mako b/templates/webapps/galaxy/visualization/embed_in_frame.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/embed_in_frame.mako rename to templates/webapps/galaxy/visualization/embed_in_frame.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/gie.mako b/templates/webapps/galaxy/visualization/gie.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/gie.mako rename to templates/webapps/galaxy/visualization/gie.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/item_content.mako b/templates/webapps/galaxy/visualization/item_content.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/item_content.mako rename to templates/webapps/galaxy/visualization/item_content.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list.mako b/templates/webapps/galaxy/visualization/list.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list.mako rename to templates/webapps/galaxy/visualization/list.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list_published.mako b/templates/webapps/galaxy/visualization/list_published.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/list_published.mako rename to templates/webapps/galaxy/visualization/list_published.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/phyloviz.mako b/templates/webapps/galaxy/visualization/phyloviz.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/phyloviz.mako rename to templates/webapps/galaxy/visualization/phyloviz.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/visualization/sweepster.mako b/templates/webapps/galaxy/visualization/sweepster.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/visualization/sweepster.mako rename to templates/webapps/galaxy/visualization/sweepster.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/build_from_current_history.mako b/templates/webapps/galaxy/workflow/build_from_current_history.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/build_from_current_history.mako rename to templates/webapps/galaxy/workflow/build_from_current_history.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/configure_menu.mako b/templates/webapps/galaxy/workflow/configure_menu.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/configure_menu.mako rename to templates/webapps/galaxy/workflow/configure_menu.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/display.mako b/templates/webapps/galaxy/workflow/display.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/display.mako rename to templates/webapps/galaxy/workflow/display.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor.mako b/templates/webapps/galaxy/workflow/editor.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor.mako rename to templates/webapps/galaxy/workflow/editor.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_generic_form.mako b/templates/webapps/galaxy/workflow/editor_generic_form.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_generic_form.mako rename to templates/webapps/galaxy/workflow/editor_generic_form.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_tool_form.mako b/templates/webapps/galaxy/workflow/editor_tool_form.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/editor_tool_form.mako rename to templates/webapps/galaxy/workflow/editor_tool_form.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/embed.mako b/templates/webapps/galaxy/workflow/embed.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/embed.mako rename to templates/webapps/galaxy/workflow/embed.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/import.mako b/templates/webapps/galaxy/workflow/import.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/import.mako rename to templates/webapps/galaxy/workflow/import.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/index.mako b/templates/webapps/galaxy/workflow/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/index.mako rename to templates/webapps/galaxy/workflow/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/item_content.mako b/templates/webapps/galaxy/workflow/item_content.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/item_content.mako rename to templates/webapps/galaxy/workflow/item_content.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list.mako b/templates/webapps/galaxy/workflow/list.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list.mako rename to templates/webapps/galaxy/workflow/list.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_for_run.mako b/templates/webapps/galaxy/workflow/list_for_run.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_for_run.mako rename to templates/webapps/galaxy/workflow/list_for_run.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_published.mako b/templates/webapps/galaxy/workflow/list_published.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/list_published.mako rename to templates/webapps/galaxy/workflow/list_published.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/missing_tools.mako b/templates/webapps/galaxy/workflow/missing_tools.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/missing_tools.mako rename to templates/webapps/galaxy/workflow/missing_tools.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export.mako b/templates/webapps/galaxy/workflow/myexp_export.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export.mako rename to templates/webapps/galaxy/workflow/myexp_export.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export_content.mako b/templates/webapps/galaxy/workflow/myexp_export_content.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/myexp_export_content.mako rename to templates/webapps/galaxy/workflow/myexp_export_content.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/rename.mako b/templates/webapps/galaxy/workflow/rename.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/rename.mako rename to templates/webapps/galaxy/workflow/rename.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run.mako b/templates/webapps/galaxy/workflow/run.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run.mako rename to templates/webapps/galaxy/workflow/run.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run_complete.mako b/templates/webapps/galaxy/workflow/run_complete.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/run_complete.mako rename to templates/webapps/galaxy/workflow/run_complete.mako diff --git a/lib/galaxy/web/framework/templates/webapps/galaxy/workflow/sharing.mako b/templates/webapps/galaxy/workflow/sharing.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/galaxy/workflow/sharing.mako rename to templates/webapps/galaxy/workflow/sharing.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/base_panels.mako b/templates/webapps/reports/base_panels.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/base_panels.mako rename to templates/webapps/reports/base_panels.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/dataset_info.mako b/templates/webapps/reports/dataset_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/dataset_info.mako rename to templates/webapps/reports/dataset_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/grid.mako b/templates/webapps/reports/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/grid.mako rename to templates/webapps/reports/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/index.mako b/templates/webapps/reports/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/index.mako rename to templates/webapps/reports/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/job_info.mako b/templates/webapps/reports/job_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/job_info.mako rename to templates/webapps/reports/job_info.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_errors_per_tool.mako b/templates/webapps/reports/jobs_errors_per_tool.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_errors_per_tool.mako rename to templates/webapps/reports/jobs_errors_per_tool.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_all.mako b/templates/webapps/reports/jobs_per_month_all.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_all.mako rename to templates/webapps/reports/jobs_per_month_all.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_in_error.mako b/templates/webapps/reports/jobs_per_month_in_error.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_per_month_in_error.mako rename to templates/webapps/reports/jobs_per_month_in_error.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_tool.mako b/templates/webapps/reports/jobs_per_tool.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_per_tool.mako rename to templates/webapps/reports/jobs_per_tool.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_per_user.mako b/templates/webapps/reports/jobs_per_user.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_per_user.mako rename to templates/webapps/reports/jobs_per_user.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_all.mako b/templates/webapps/reports/jobs_specified_month_all.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_all.mako rename to templates/webapps/reports/jobs_specified_month_all.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_in_error.mako b/templates/webapps/reports/jobs_specified_month_in_error.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_specified_month_in_error.mako rename to templates/webapps/reports/jobs_specified_month_in_error.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_tool_per_month.mako b/templates/webapps/reports/jobs_tool_per_month.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_tool_per_month.mako rename to templates/webapps/reports/jobs_tool_per_month.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/jobs_user_per_month.mako b/templates/webapps/reports/jobs_user_per_month.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/jobs_user_per_month.mako rename to templates/webapps/reports/jobs_user_per_month.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/registered_users.mako b/templates/webapps/reports/registered_users.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/registered_users.mako rename to templates/webapps/reports/registered_users.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/registered_users_per_month.mako b/templates/webapps/reports/registered_users_per_month.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/registered_users_per_month.mako rename to templates/webapps/reports/registered_users_per_month.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_date.mako b/templates/webapps/reports/registered_users_specified_date.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_date.mako rename to templates/webapps/reports/registered_users_specified_date.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_month.mako b/templates/webapps/reports/registered_users_specified_month.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/registered_users_specified_month.mako rename to templates/webapps/reports/registered_users_specified_month.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/requests_per_month_all.mako b/templates/webapps/reports/requests_per_month_all.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/requests_per_month_all.mako rename to templates/webapps/reports/requests_per_month_all.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/requests_per_user.mako b/templates/webapps/reports/requests_per_user.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/requests_per_user.mako rename to templates/webapps/reports/requests_per_user.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/requests_user_per_month.mako b/templates/webapps/reports/requests_user_per_month.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/requests_user_per_month.mako rename to templates/webapps/reports/requests_user_per_month.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/run_stats.mako b/templates/webapps/reports/run_stats.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/run_stats.mako rename to templates/webapps/reports/run_stats.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/system.mako b/templates/webapps/reports/system.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/system.mako rename to templates/webapps/reports/system.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/users_last_access_date.mako b/templates/webapps/reports/users_last_access_date.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/users_last_access_date.mako rename to templates/webapps/reports/users_last_access_date.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/users_user_disk_usage.mako b/templates/webapps/reports/users_user_disk_usage.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/users_user_disk_usage.mako rename to templates/webapps/reports/users_user_disk_usage.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/workflows_per_month_all.mako b/templates/webapps/reports/workflows_per_month_all.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/workflows_per_month_all.mako rename to templates/webapps/reports/workflows_per_month_all.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/workflows_per_user.mako b/templates/webapps/reports/workflows_per_user.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/workflows_per_user.mako rename to templates/webapps/reports/workflows_per_user.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/workflows_per_workflow.mako b/templates/webapps/reports/workflows_per_workflow.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/workflows_per_workflow.mako rename to templates/webapps/reports/workflows_per_workflow.mako diff --git a/lib/galaxy/web/framework/templates/webapps/reports/workflows_user_per_month.mako b/templates/webapps/reports/workflows_user_per_month.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/reports/workflows_user_per_month.mako rename to templates/webapps/reports/workflows_user_per_month.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/admin/center.mako b/templates/webapps/tool_shed/admin/center.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/admin/center.mako rename to templates/webapps/tool_shed/admin/center.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/admin/index.mako b/templates/webapps/tool_shed/admin/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/admin/index.mako rename to templates/webapps/tool_shed/admin/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/admin/statistics.mako b/templates/webapps/tool_shed/admin/statistics.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/admin/statistics.mako rename to templates/webapps/tool_shed/admin/statistics.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/base_panels.mako b/templates/webapps/tool_shed/base_panels.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/base_panels.mako rename to templates/webapps/tool_shed/base_panels.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/category/create_category.mako b/templates/webapps/tool_shed/category/create_category.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/category/create_category.mako rename to templates/webapps/tool_shed/category/create_category.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/category/edit_category.mako b/templates/webapps/tool_shed/category/edit_category.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/category/edit_category.mako rename to templates/webapps/tool_shed/category/edit_category.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/category/grid.mako b/templates/webapps/tool_shed/category/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/category/grid.mako rename to templates/webapps/tool_shed/category/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/category/valid_grid.mako b/templates/webapps/tool_shed/category/valid_grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/category/valid_grid.mako rename to templates/webapps/tool_shed/category/valid_grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/common/common.mako b/templates/webapps/tool_shed/common/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/common/common.mako rename to templates/webapps/tool_shed/common/common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/common/grid_common.mako b/templates/webapps/tool_shed/common/grid_common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/common/grid_common.mako rename to templates/webapps/tool_shed/common/grid_common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/common/repository_actions_menu.mako b/templates/webapps/tool_shed/common/repository_actions_menu.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/common/repository_actions_menu.mako rename to templates/webapps/tool_shed/common/repository_actions_menu.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako b/templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako rename to templates/webapps/tool_shed/common/reset_metadata_on_selected_repositories.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/group/index.mako b/templates/webapps/tool_shed/group/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/group/index.mako rename to templates/webapps/tool_shed/group/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/index.mako b/templates/webapps/tool_shed/index.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/index.mako rename to templates/webapps/tool_shed/index.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/browse_repository.mako b/templates/webapps/tool_shed/repository/browse_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/browse_repository.mako rename to templates/webapps/tool_shed/repository/browse_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/common.mako b/templates/webapps/tool_shed/repository/common.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/common.mako rename to templates/webapps/tool_shed/repository/common.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/contact_owner.mako b/templates/webapps/tool_shed/repository/contact_owner.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/contact_owner.mako rename to templates/webapps/tool_shed/repository/contact_owner.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/create_repository.mako b/templates/webapps/tool_shed/repository/create_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/create_repository.mako rename to templates/webapps/tool_shed/repository/create_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/docker_image_repositories.mako b/templates/webapps/tool_shed/repository/docker_image_repositories.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/docker_image_repositories.mako rename to templates/webapps/tool_shed/repository/docker_image_repositories.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/export_repository.mako b/templates/webapps/tool_shed/repository/export_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/export_repository.mako rename to templates/webapps/tool_shed/repository/export_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_tools.mako b/templates/webapps/tool_shed/repository/find_tools.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_tools.mako rename to templates/webapps/tool_shed/repository/find_tools.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_workflows.mako b/templates/webapps/tool_shed/repository/find_workflows.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/find_workflows.mako rename to templates/webapps/tool_shed/repository/find_workflows.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/grid.mako b/templates/webapps/tool_shed/repository/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/grid.mako rename to templates/webapps/tool_shed/repository/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule.mako b/templates/webapps/tool_shed/repository/import_capsule.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule.mako rename to templates/webapps/tool_shed/repository/import_capsule.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule_results.mako b/templates/webapps/tool_shed/repository/import_capsule_results.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/import_capsule_results.mako rename to templates/webapps/tool_shed/repository/import_capsule_results.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/manage_repository.mako b/templates/webapps/tool_shed/repository/manage_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/manage_repository.mako rename to templates/webapps/tool_shed/repository/manage_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako b/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako rename to templates/webapps/tool_shed/repository/preview_tools_in_changeset.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/rate_repository.mako b/templates/webapps/tool_shed/repository/rate_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/rate_repository.mako rename to templates/webapps/tool_shed/repository/rate_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/tool_form.mako b/templates/webapps/tool_shed/repository/tool_form.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/tool_form.mako rename to templates/webapps/tool_shed/repository/tool_form.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload.mako b/templates/webapps/tool_shed/repository/upload.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload.mako rename to templates/webapps/tool_shed/repository/upload.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload_capsule.mako b/templates/webapps/tool_shed/repository/upload_capsule.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/upload_capsule.mako rename to templates/webapps/tool_shed/repository/upload_capsule.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changelog.mako b/templates/webapps/tool_shed/repository/view_changelog.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changelog.mako rename to templates/webapps/tool_shed/repository/view_changelog.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changeset.mako b/templates/webapps/tool_shed/repository/view_changeset.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_changeset.mako rename to templates/webapps/tool_shed/repository/view_changeset.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_repository.mako b/templates/webapps/tool_shed/repository/view_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_repository.mako rename to templates/webapps/tool_shed/repository/view_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_tool_metadata.mako b/templates/webapps/tool_shed/repository/view_tool_metadata.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_tool_metadata.mako rename to templates/webapps/tool_shed/repository/view_tool_metadata.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_workflow.mako b/templates/webapps/tool_shed/repository/view_workflow.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository/view_workflow.mako rename to templates/webapps/tool_shed/repository/view_workflow.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/browse_review.mako b/templates/webapps/tool_shed/repository_review/browse_review.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/browse_review.mako rename to templates/webapps/tool_shed/repository_review/browse_review.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/create_component.mako b/templates/webapps/tool_shed/repository_review/create_component.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/create_component.mako rename to templates/webapps/tool_shed/repository_review/create_component.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_component.mako b/templates/webapps/tool_shed/repository_review/edit_component.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_component.mako rename to templates/webapps/tool_shed/repository_review/edit_component.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_review.mako b/templates/webapps/tool_shed/repository_review/edit_review.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/edit_review.mako rename to templates/webapps/tool_shed/repository_review/edit_review.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/grid.mako b/templates/webapps/tool_shed/repository_review/grid.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/grid.mako rename to templates/webapps/tool_shed/repository_review/grid.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako b/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako rename to templates/webapps/tool_shed/repository_review/reviews_of_changeset_revision.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako b/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/reviews_of_repository.mako rename to templates/webapps/tool_shed/repository_review/reviews_of_repository.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/select_previous_review.mako b/templates/webapps/tool_shed/repository_review/select_previous_review.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/repository_review/select_previous_review.mako rename to templates/webapps/tool_shed/repository_review/select_previous_review.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/role/role.mako b/templates/webapps/tool_shed/role/role.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/role/role.mako rename to templates/webapps/tool_shed/role/role.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_email_alerts.mako b/templates/webapps/tool_shed/user/manage_email_alerts.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_email_alerts.mako rename to templates/webapps/tool_shed/user/manage_email_alerts.mako diff --git a/lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_info.mako b/templates/webapps/tool_shed/user/manage_info.mako similarity index 100% rename from lib/galaxy/web/framework/templates/webapps/tool_shed/user/manage_info.mako rename to templates/webapps/tool_shed/user/manage_info.mako diff --git a/lib/galaxy/tools/bundled/data_source/access_libraries.xml b/tools/data_source/access_libraries.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/access_libraries.xml rename to tools/data_source/access_libraries.xml diff --git a/lib/galaxy/tools/bundled/data_source/bed_convert.xml b/tools/data_source/bed_convert.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/bed_convert.xml rename to tools/data_source/bed_convert.xml diff --git a/lib/galaxy/tools/bundled/data_source/biomart.xml b/tools/data_source/biomart.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/biomart.xml rename to tools/data_source/biomart.xml diff --git a/lib/galaxy/tools/bundled/data_source/biomart_test.xml b/tools/data_source/biomart_test.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/biomart_test.xml rename to tools/data_source/biomart_test.xml diff --git a/lib/galaxy/tools/bundled/data_source/cbi_rice_mart.xml b/tools/data_source/cbi_rice_mart.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/cbi_rice_mart.xml rename to tools/data_source/cbi_rice_mart.xml diff --git a/lib/galaxy/tools/bundled/data_source/data_source.py b/tools/data_source/data_source.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/data_source.py rename to tools/data_source/data_source.py diff --git a/lib/galaxy/tools/bundled/data_source/ebi_sra.xml b/tools/data_source/ebi_sra.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/ebi_sra.xml rename to tools/data_source/ebi_sra.xml diff --git a/lib/galaxy/tools/bundled/data_source/eupathdb.xml b/tools/data_source/eupathdb.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/eupathdb.xml rename to tools/data_source/eupathdb.xml diff --git a/lib/galaxy/tools/bundled/data_source/fetch.py b/tools/data_source/fetch.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/fetch.py rename to tools/data_source/fetch.py diff --git a/lib/galaxy/tools/bundled/data_source/fly_modencode.xml b/tools/data_source/fly_modencode.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/fly_modencode.xml rename to tools/data_source/fly_modencode.xml diff --git a/lib/galaxy/tools/bundled/data_source/flymine.xml b/tools/data_source/flymine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/flymine.xml rename to tools/data_source/flymine.xml diff --git a/lib/galaxy/tools/bundled/data_source/flymine_test.xml b/tools/data_source/flymine_test.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/flymine_test.xml rename to tools/data_source/flymine_test.xml diff --git a/lib/galaxy/tools/bundled/data_source/genbank.py b/tools/data_source/genbank.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/genbank.py rename to tools/data_source/genbank.py diff --git a/lib/galaxy/tools/bundled/data_source/genbank.xml b/tools/data_source/genbank.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/genbank.xml rename to tools/data_source/genbank.xml diff --git a/lib/galaxy/tools/bundled/data_source/gramene_mart.xml b/tools/data_source/gramene_mart.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/gramene_mart.xml rename to tools/data_source/gramene_mart.xml diff --git a/lib/galaxy/tools/bundled/data_source/hapmapmart.xml b/tools/data_source/hapmapmart.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/hapmapmart.xml rename to tools/data_source/hapmapmart.xml diff --git a/lib/galaxy/tools/bundled/data_source/hbvar.xml b/tools/data_source/hbvar.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/hbvar.xml rename to tools/data_source/hbvar.xml diff --git a/lib/galaxy/tools/bundled/data_source/hbvar_filter.py b/tools/data_source/hbvar_filter.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/hbvar_filter.py rename to tools/data_source/hbvar_filter.py diff --git a/lib/galaxy/tools/bundled/data_source/import.py b/tools/data_source/import.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/import.py rename to tools/data_source/import.py diff --git a/lib/galaxy/tools/bundled/data_source/import.xml b/tools/data_source/import.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/import.xml rename to tools/data_source/import.xml diff --git a/lib/galaxy/tools/bundled/data_source/metabolicmine.xml b/tools/data_source/metabolicmine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/metabolicmine.xml rename to tools/data_source/metabolicmine.xml diff --git a/lib/galaxy/tools/bundled/data_source/microbial_import.py b/tools/data_source/microbial_import.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/microbial_import.py rename to tools/data_source/microbial_import.py diff --git a/lib/galaxy/tools/bundled/data_source/microbial_import.xml b/tools/data_source/microbial_import.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/microbial_import.xml rename to tools/data_source/microbial_import.xml diff --git a/lib/galaxy/tools/bundled/data_source/microbial_import_code.py b/tools/data_source/microbial_import_code.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/microbial_import_code.py rename to tools/data_source/microbial_import_code.py diff --git a/lib/galaxy/tools/bundled/data_source/modmine.xml b/tools/data_source/modmine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/modmine.xml rename to tools/data_source/modmine.xml diff --git a/lib/galaxy/tools/bundled/data_source/mousemine.xml b/tools/data_source/mousemine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/mousemine.xml rename to tools/data_source/mousemine.xml diff --git a/lib/galaxy/tools/bundled/data_source/ratmine.xml b/tools/data_source/ratmine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/ratmine.xml rename to tools/data_source/ratmine.xml diff --git a/lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser.xml b/tools/data_source/ucsc_tablebrowser.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser.xml rename to tools/data_source/ucsc_tablebrowser.xml diff --git a/lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_archaea.xml b/tools/data_source/ucsc_tablebrowser_archaea.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_archaea.xml rename to tools/data_source/ucsc_tablebrowser_archaea.xml diff --git a/lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_test.xml b/tools/data_source/ucsc_tablebrowser_test.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/ucsc_tablebrowser_test.xml rename to tools/data_source/ucsc_tablebrowser_test.xml diff --git a/lib/galaxy/tools/bundled/data_source/upload.py b/tools/data_source/upload.py similarity index 100% rename from lib/galaxy/tools/bundled/data_source/upload.py rename to tools/data_source/upload.py diff --git a/lib/galaxy/tools/bundled/data_source/upload.xml b/tools/data_source/upload.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/upload.xml rename to tools/data_source/upload.xml diff --git a/lib/galaxy/tools/bundled/data_source/worm_modencode.xml b/tools/data_source/worm_modencode.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/worm_modencode.xml rename to tools/data_source/worm_modencode.xml diff --git a/lib/galaxy/tools/bundled/data_source/wormbase.xml b/tools/data_source/wormbase.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/wormbase.xml rename to tools/data_source/wormbase.xml diff --git a/lib/galaxy/tools/bundled/data_source/wormbase_test.xml b/tools/data_source/wormbase_test.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/wormbase_test.xml rename to tools/data_source/wormbase_test.xml diff --git a/lib/galaxy/tools/bundled/data_source/yeastmine.xml b/tools/data_source/yeastmine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/yeastmine.xml rename to tools/data_source/yeastmine.xml diff --git a/lib/galaxy/tools/bundled/data_source/zebrafishmine.xml b/tools/data_source/zebrafishmine.xml similarity index 100% rename from lib/galaxy/tools/bundled/data_source/zebrafishmine.xml rename to tools/data_source/zebrafishmine.xml diff --git a/lib/galaxy/tools/bundled/evolution/add_scores.py b/tools/evolution/add_scores.py similarity index 100% rename from lib/galaxy/tools/bundled/evolution/add_scores.py rename to tools/evolution/add_scores.py diff --git a/lib/galaxy/tools/bundled/evolution/add_scores.xml b/tools/evolution/add_scores.xml similarity index 100% rename from lib/galaxy/tools/bundled/evolution/add_scores.xml rename to tools/evolution/add_scores.xml diff --git a/lib/galaxy/tools/bundled/evolution/codingSnps.pl b/tools/evolution/codingSnps.pl similarity index 100% rename from lib/galaxy/tools/bundled/evolution/codingSnps.pl rename to tools/evolution/codingSnps.pl diff --git a/lib/galaxy/tools/bundled/evolution/codingSnps.xml b/tools/evolution/codingSnps.xml similarity index 100% rename from lib/galaxy/tools/bundled/evolution/codingSnps.xml rename to tools/evolution/codingSnps.xml diff --git a/lib/galaxy/tools/bundled/evolution/codingSnps_filter.py b/tools/evolution/codingSnps_filter.py similarity index 100% rename from lib/galaxy/tools/bundled/evolution/codingSnps_filter.py rename to tools/evolution/codingSnps_filter.py diff --git a/lib/galaxy/tools/bundled/extract/extract_genomic_dna.py b/tools/extract/extract_genomic_dna.py similarity index 100% rename from lib/galaxy/tools/bundled/extract/extract_genomic_dna.py rename to tools/extract/extract_genomic_dna.py diff --git a/lib/galaxy/tools/bundled/extract/extract_genomic_dna.xml b/tools/extract/extract_genomic_dna.xml similarity index 100% rename from lib/galaxy/tools/bundled/extract/extract_genomic_dna.xml rename to tools/extract/extract_genomic_dna.xml diff --git a/lib/galaxy/tools/bundled/extract/liftOver_wrapper.py b/tools/extract/liftOver_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/extract/liftOver_wrapper.py rename to tools/extract/liftOver_wrapper.py diff --git a/lib/galaxy/tools/bundled/extract/liftOver_wrapper.xml b/tools/extract/liftOver_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/extract/liftOver_wrapper.xml rename to tools/extract/liftOver_wrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/CreateInterval.pl b/tools/filters/CreateInterval.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/CreateInterval.pl rename to tools/filters/CreateInterval.pl diff --git a/lib/galaxy/tools/bundled/filters/CreateInterval.xml b/tools/filters/CreateInterval.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/CreateInterval.xml rename to tools/filters/CreateInterval.xml diff --git a/lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.py b/tools/filters/axt_to_concat_fasta.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.py rename to tools/filters/axt_to_concat_fasta.py diff --git a/lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.xml b/tools/filters/axt_to_concat_fasta.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_concat_fasta.xml rename to tools/filters/axt_to_concat_fasta.xml diff --git a/lib/galaxy/tools/bundled/filters/axt_to_fasta.py b/tools/filters/axt_to_fasta.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_fasta.py rename to tools/filters/axt_to_fasta.py diff --git a/lib/galaxy/tools/bundled/filters/axt_to_fasta.xml b/tools/filters/axt_to_fasta.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_fasta.xml rename to tools/filters/axt_to_fasta.xml diff --git a/lib/galaxy/tools/bundled/filters/axt_to_lav.py b/tools/filters/axt_to_lav.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_lav.py rename to tools/filters/axt_to_lav.py diff --git a/lib/galaxy/tools/bundled/filters/axt_to_lav.xml b/tools/filters/axt_to_lav.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_lav.xml rename to tools/filters/axt_to_lav.xml diff --git a/lib/galaxy/tools/bundled/filters/axt_to_lav_code.py b/tools/filters/axt_to_lav_code.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/axt_to_lav_code.py rename to tools/filters/axt_to_lav_code.py diff --git a/lib/galaxy/tools/bundled/filters/bed2gff.xml b/tools/filters/bed2gff.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/bed2gff.xml rename to tools/filters/bed2gff.xml diff --git a/lib/galaxy/tools/bundled/filters/bed_to_bigbed.xml b/tools/filters/bed_to_bigbed.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/bed_to_bigbed.xml rename to tools/filters/bed_to_bigbed.xml diff --git a/lib/galaxy/tools/bundled/filters/bed_to_gff_converter.py b/tools/filters/bed_to_gff_converter.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/bed_to_gff_converter.py rename to tools/filters/bed_to_gff_converter.py diff --git a/lib/galaxy/tools/bundled/filters/catWrapper.py b/tools/filters/catWrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/catWrapper.py rename to tools/filters/catWrapper.py diff --git a/lib/galaxy/tools/bundled/filters/catWrapper.xml b/tools/filters/catWrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/catWrapper.xml rename to tools/filters/catWrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/changeCase.pl b/tools/filters/changeCase.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/changeCase.pl rename to tools/filters/changeCase.pl diff --git a/lib/galaxy/tools/bundled/filters/changeCase.xml b/tools/filters/changeCase.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/changeCase.xml rename to tools/filters/changeCase.xml diff --git a/lib/galaxy/tools/bundled/filters/commWrapper.pl b/tools/filters/commWrapper.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/commWrapper.pl rename to tools/filters/commWrapper.pl diff --git a/lib/galaxy/tools/bundled/filters/commWrapper.xml b/tools/filters/commWrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/commWrapper.xml rename to tools/filters/commWrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/compare.xml b/tools/filters/compare.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/compare.xml rename to tools/filters/compare.xml diff --git a/lib/galaxy/tools/bundled/filters/condense_characters.pl b/tools/filters/condense_characters.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/condense_characters.pl rename to tools/filters/condense_characters.pl diff --git a/lib/galaxy/tools/bundled/filters/condense_characters.xml b/tools/filters/condense_characters.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/condense_characters.xml rename to tools/filters/condense_characters.xml diff --git a/lib/galaxy/tools/bundled/filters/convert_characters.pl b/tools/filters/convert_characters.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/convert_characters.pl rename to tools/filters/convert_characters.pl diff --git a/lib/galaxy/tools/bundled/filters/convert_characters.py b/tools/filters/convert_characters.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/convert_characters.py rename to tools/filters/convert_characters.py diff --git a/lib/galaxy/tools/bundled/filters/convert_characters.xml b/tools/filters/convert_characters.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/convert_characters.xml rename to tools/filters/convert_characters.xml diff --git a/lib/galaxy/tools/bundled/filters/cutWrapper.pl b/tools/filters/cutWrapper.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/cutWrapper.pl rename to tools/filters/cutWrapper.pl diff --git a/lib/galaxy/tools/bundled/filters/cutWrapper.xml b/tools/filters/cutWrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/cutWrapper.xml rename to tools/filters/cutWrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/fileGrep.xml b/tools/filters/fileGrep.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/fileGrep.xml rename to tools/filters/fileGrep.xml diff --git a/lib/galaxy/tools/bundled/filters/fixedValueColumn.pl b/tools/filters/fixedValueColumn.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/fixedValueColumn.pl rename to tools/filters/fixedValueColumn.pl diff --git a/lib/galaxy/tools/bundled/filters/fixedValueColumn.xml b/tools/filters/fixedValueColumn.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/fixedValueColumn.xml rename to tools/filters/fixedValueColumn.xml diff --git a/lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.py b/tools/filters/gff/extract_GFF_Features.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.py rename to tools/filters/gff/extract_GFF_Features.py diff --git a/lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.xml b/tools/filters/gff/extract_GFF_Features.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/extract_GFF_Features.xml rename to tools/filters/gff/extract_GFF_Features.xml diff --git a/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.py b/tools/filters/gff/gff_filter_by_attribute.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.py rename to tools/filters/gff/gff_filter_by_attribute.py diff --git a/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.xml b/tools/filters/gff/gff_filter_by_attribute.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/gff_filter_by_attribute.xml rename to tools/filters/gff/gff_filter_by_attribute.xml diff --git a/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.py b/tools/filters/gff/gff_filter_by_feature_count.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.py rename to tools/filters/gff/gff_filter_by_feature_count.py diff --git a/lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.xml b/tools/filters/gff/gff_filter_by_feature_count.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/gff_filter_by_feature_count.xml rename to tools/filters/gff/gff_filter_by_feature_count.xml diff --git a/lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.py b/tools/filters/gff/gtf_filter_by_attribute_values_list.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.py rename to tools/filters/gff/gtf_filter_by_attribute_values_list.py diff --git a/lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.xml b/tools/filters/gff/gtf_filter_by_attribute_values_list.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/gtf_filter_by_attribute_values_list.xml rename to tools/filters/gff/gtf_filter_by_attribute_values_list.xml diff --git a/lib/galaxy/tools/bundled/filters/gff/sort_gtf.py b/tools/filters/gff/sort_gtf.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff/sort_gtf.py rename to tools/filters/gff/sort_gtf.py diff --git a/lib/galaxy/tools/bundled/filters/gff2bed.xml b/tools/filters/gff2bed.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff2bed.xml rename to tools/filters/gff2bed.xml diff --git a/lib/galaxy/tools/bundled/filters/gff_to_bed_converter.py b/tools/filters/gff_to_bed_converter.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gff_to_bed_converter.py rename to tools/filters/gff_to_bed_converter.py diff --git a/lib/galaxy/tools/bundled/filters/grep.py b/tools/filters/grep.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/grep.py rename to tools/filters/grep.py diff --git a/lib/galaxy/tools/bundled/filters/grep.xml b/tools/filters/grep.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/grep.xml rename to tools/filters/grep.xml diff --git a/lib/galaxy/tools/bundled/filters/gtf2bedgraph.xml b/tools/filters/gtf2bedgraph.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/gtf2bedgraph.xml rename to tools/filters/gtf2bedgraph.xml diff --git a/lib/galaxy/tools/bundled/filters/gtf_to_bedgraph_converter.py b/tools/filters/gtf_to_bedgraph_converter.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/gtf_to_bedgraph_converter.py rename to tools/filters/gtf_to_bedgraph_converter.py diff --git a/lib/galaxy/tools/bundled/filters/headWrapper.pl b/tools/filters/headWrapper.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/headWrapper.pl rename to tools/filters/headWrapper.pl diff --git a/lib/galaxy/tools/bundled/filters/headWrapper.xml b/tools/filters/headWrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/headWrapper.xml rename to tools/filters/headWrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/join.py b/tools/filters/join.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/join.py rename to tools/filters/join.py diff --git a/lib/galaxy/tools/bundled/filters/joinWrapper.pl b/tools/filters/joinWrapper.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/joinWrapper.pl rename to tools/filters/joinWrapper.pl diff --git a/lib/galaxy/tools/bundled/filters/joinWrapper.py b/tools/filters/joinWrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/joinWrapper.py rename to tools/filters/joinWrapper.py diff --git a/lib/galaxy/tools/bundled/filters/joiner.xml b/tools/filters/joiner.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/joiner.xml rename to tools/filters/joiner.xml diff --git a/lib/galaxy/tools/bundled/filters/joiner2.xml b/tools/filters/joiner2.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/joiner2.xml rename to tools/filters/joiner2.xml diff --git a/lib/galaxy/tools/bundled/filters/lav_to_bed.py b/tools/filters/lav_to_bed.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/lav_to_bed.py rename to tools/filters/lav_to_bed.py diff --git a/lib/galaxy/tools/bundled/filters/lav_to_bed.xml b/tools/filters/lav_to_bed.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/lav_to_bed.xml rename to tools/filters/lav_to_bed.xml diff --git a/lib/galaxy/tools/bundled/filters/lav_to_bed_code.py b/tools/filters/lav_to_bed_code.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/lav_to_bed_code.py rename to tools/filters/lav_to_bed_code.py diff --git a/lib/galaxy/tools/bundled/filters/mergeCols.py b/tools/filters/mergeCols.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/mergeCols.py rename to tools/filters/mergeCols.py diff --git a/lib/galaxy/tools/bundled/filters/mergeCols.xml b/tools/filters/mergeCols.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/mergeCols.xml rename to tools/filters/mergeCols.xml diff --git a/lib/galaxy/tools/bundled/filters/pasteWrapper.pl b/tools/filters/pasteWrapper.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/pasteWrapper.pl rename to tools/filters/pasteWrapper.pl diff --git a/lib/galaxy/tools/bundled/filters/pasteWrapper.xml b/tools/filters/pasteWrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/pasteWrapper.xml rename to tools/filters/pasteWrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/random_lines_two_pass.py b/tools/filters/random_lines_two_pass.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/random_lines_two_pass.py rename to tools/filters/random_lines_two_pass.py diff --git a/lib/galaxy/tools/bundled/filters/randomlines.py b/tools/filters/randomlines.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/randomlines.py rename to tools/filters/randomlines.py diff --git a/lib/galaxy/tools/bundled/filters/randomlines.xml b/tools/filters/randomlines.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/randomlines.xml rename to tools/filters/randomlines.xml diff --git a/lib/galaxy/tools/bundled/filters/remove_beginning.pl b/tools/filters/remove_beginning.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/remove_beginning.pl rename to tools/filters/remove_beginning.pl diff --git a/lib/galaxy/tools/bundled/filters/remove_beginning.xml b/tools/filters/remove_beginning.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/remove_beginning.xml rename to tools/filters/remove_beginning.xml diff --git a/lib/galaxy/tools/bundled/filters/secure_hash_message_digest.py b/tools/filters/secure_hash_message_digest.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/secure_hash_message_digest.py rename to tools/filters/secure_hash_message_digest.py diff --git a/lib/galaxy/tools/bundled/filters/secure_hash_message_digest.xml b/tools/filters/secure_hash_message_digest.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/secure_hash_message_digest.xml rename to tools/filters/secure_hash_message_digest.xml diff --git a/lib/galaxy/tools/bundled/filters/sff_extract.py b/tools/filters/sff_extract.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/sff_extract.py rename to tools/filters/sff_extract.py diff --git a/lib/galaxy/tools/bundled/filters/sff_extractor.xml b/tools/filters/sff_extractor.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/sff_extractor.xml rename to tools/filters/sff_extractor.xml diff --git a/lib/galaxy/tools/bundled/filters/sorter.py b/tools/filters/sorter.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/sorter.py rename to tools/filters/sorter.py diff --git a/lib/galaxy/tools/bundled/filters/sorter.xml b/tools/filters/sorter.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/sorter.xml rename to tools/filters/sorter.xml diff --git a/lib/galaxy/tools/bundled/filters/tailWrapper.pl b/tools/filters/tailWrapper.pl similarity index 100% rename from lib/galaxy/tools/bundled/filters/tailWrapper.pl rename to tools/filters/tailWrapper.pl diff --git a/lib/galaxy/tools/bundled/filters/tailWrapper.xml b/tools/filters/tailWrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/tailWrapper.xml rename to tools/filters/tailWrapper.xml diff --git a/lib/galaxy/tools/bundled/filters/trimmer.py b/tools/filters/trimmer.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/trimmer.py rename to tools/filters/trimmer.py diff --git a/lib/galaxy/tools/bundled/filters/trimmer.xml b/tools/filters/trimmer.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/trimmer.xml rename to tools/filters/trimmer.xml diff --git a/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.py b/tools/filters/ucsc_gene_bed_to_exon_bed.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.py rename to tools/filters/ucsc_gene_bed_to_exon_bed.py diff --git a/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.xml b/tools/filters/ucsc_gene_bed_to_exon_bed.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_exon_bed.xml rename to tools/filters/ucsc_gene_bed_to_exon_bed.xml diff --git a/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.py b/tools/filters/ucsc_gene_bed_to_intron_bed.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.py rename to tools/filters/ucsc_gene_bed_to_intron_bed.py diff --git a/lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.xml b/tools/filters/ucsc_gene_bed_to_intron_bed.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/ucsc_gene_bed_to_intron_bed.xml rename to tools/filters/ucsc_gene_bed_to_intron_bed.xml diff --git a/lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.py b/tools/filters/ucsc_gene_table_to_intervals.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.py rename to tools/filters/ucsc_gene_table_to_intervals.py diff --git a/lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.xml b/tools/filters/ucsc_gene_table_to_intervals.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/ucsc_gene_table_to_intervals.xml rename to tools/filters/ucsc_gene_table_to_intervals.xml diff --git a/lib/galaxy/tools/bundled/filters/uniq.py b/tools/filters/uniq.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/uniq.py rename to tools/filters/uniq.py diff --git a/lib/galaxy/tools/bundled/filters/uniq.xml b/tools/filters/uniq.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/uniq.xml rename to tools/filters/uniq.xml diff --git a/lib/galaxy/tools/bundled/filters/wc_gnu.xml b/tools/filters/wc_gnu.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/wc_gnu.xml rename to tools/filters/wc_gnu.xml diff --git a/lib/galaxy/tools/bundled/filters/wig_to_bigwig.xml b/tools/filters/wig_to_bigwig.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/wig_to_bigwig.xml rename to tools/filters/wig_to_bigwig.xml diff --git a/lib/galaxy/tools/bundled/filters/wiggle_to_simple.py b/tools/filters/wiggle_to_simple.py similarity index 100% rename from lib/galaxy/tools/bundled/filters/wiggle_to_simple.py rename to tools/filters/wiggle_to_simple.py diff --git a/lib/galaxy/tools/bundled/filters/wiggle_to_simple.xml b/tools/filters/wiggle_to_simple.xml similarity index 100% rename from lib/galaxy/tools/bundled/filters/wiggle_to_simple.xml rename to tools/filters/wiggle_to_simple.xml diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_exporter.py b/tools/genomespace/genomespace_exporter.py similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_exporter.py rename to tools/genomespace/genomespace_exporter.py diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_exporter.xml b/tools/genomespace/genomespace_exporter.xml similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_exporter.xml rename to tools/genomespace/genomespace_exporter.xml diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser.py b/tools/genomespace/genomespace_file_browser.py similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_file_browser.py rename to tools/genomespace/genomespace_file_browser.py diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_dev.xml b/tools/genomespace/genomespace_file_browser_dev.xml similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_dev.xml rename to tools/genomespace/genomespace_file_browser_dev.xml diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_prod.xml b/tools/genomespace/genomespace_file_browser_prod.xml similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_prod.xml rename to tools/genomespace/genomespace_file_browser_prod.xml diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_test.xml b/tools/genomespace/genomespace_file_browser_test.xml similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_file_browser_test.xml rename to tools/genomespace/genomespace_file_browser_test.xml diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_importer.py b/tools/genomespace/genomespace_importer.py similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_importer.py rename to tools/genomespace/genomespace_importer.py diff --git a/lib/galaxy/tools/bundled/genomespace/genomespace_importer.xml b/tools/genomespace/genomespace_importer.xml similarity index 100% rename from lib/galaxy/tools/bundled/genomespace/genomespace_importer.xml rename to tools/genomespace/genomespace_importer.xml diff --git a/lib/galaxy/tools/bundled/maf/genebed_maf_to_fasta.xml b/tools/maf/genebed_maf_to_fasta.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/genebed_maf_to_fasta.xml rename to tools/maf/genebed_maf_to_fasta.xml diff --git a/lib/galaxy/tools/bundled/maf/interval2maf.py b/tools/maf/interval2maf.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/interval2maf.py rename to tools/maf/interval2maf.py diff --git a/lib/galaxy/tools/bundled/maf/interval2maf.xml b/tools/maf/interval2maf.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/interval2maf.xml rename to tools/maf/interval2maf.xml diff --git a/lib/galaxy/tools/bundled/maf/interval2maf_pairwise.xml b/tools/maf/interval2maf_pairwise.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/interval2maf_pairwise.xml rename to tools/maf/interval2maf_pairwise.xml diff --git a/lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.py b/tools/maf/interval_maf_to_merged_fasta.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.py rename to tools/maf/interval_maf_to_merged_fasta.py diff --git a/lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.xml b/tools/maf/interval_maf_to_merged_fasta.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/interval_maf_to_merged_fasta.xml rename to tools/maf/interval_maf_to_merged_fasta.xml diff --git a/lib/galaxy/tools/bundled/maf/macros.xml b/tools/maf/macros.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/macros.xml rename to tools/maf/macros.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_by_block_number.py b/tools/maf/maf_by_block_number.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_by_block_number.py rename to tools/maf/maf_by_block_number.py diff --git a/lib/galaxy/tools/bundled/maf/maf_by_block_number.xml b/tools/maf/maf_by_block_number.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_by_block_number.xml rename to tools/maf/maf_by_block_number.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_filter.py b/tools/maf/maf_filter.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_filter.py rename to tools/maf/maf_filter.py diff --git a/lib/galaxy/tools/bundled/maf/maf_filter.xml b/tools/maf/maf_filter.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_filter.xml rename to tools/maf/maf_filter.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_limit_size.py b/tools/maf/maf_limit_size.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_limit_size.py rename to tools/maf/maf_limit_size.py diff --git a/lib/galaxy/tools/bundled/maf/maf_limit_size.xml b/tools/maf/maf_limit_size.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_limit_size.xml rename to tools/maf/maf_limit_size.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_limit_to_species.py b/tools/maf/maf_limit_to_species.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_limit_to_species.py rename to tools/maf/maf_limit_to_species.py diff --git a/lib/galaxy/tools/bundled/maf/maf_limit_to_species.xml b/tools/maf/maf_limit_to_species.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_limit_to_species.xml rename to tools/maf/maf_limit_to_species.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_reverse_complement.py b/tools/maf/maf_reverse_complement.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_reverse_complement.py rename to tools/maf/maf_reverse_complement.py diff --git a/lib/galaxy/tools/bundled/maf/maf_reverse_complement.xml b/tools/maf/maf_reverse_complement.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_reverse_complement.xml rename to tools/maf/maf_reverse_complement.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_split_by_species.py b/tools/maf/maf_split_by_species.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_split_by_species.py rename to tools/maf/maf_split_by_species.py diff --git a/lib/galaxy/tools/bundled/maf/maf_split_by_species.xml b/tools/maf/maf_split_by_species.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_split_by_species.xml rename to tools/maf/maf_split_by_species.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_stats.py b/tools/maf/maf_stats.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_stats.py rename to tools/maf/maf_stats.py diff --git a/lib/galaxy/tools/bundled/maf/maf_stats.xml b/tools/maf/maf_stats.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_stats.xml rename to tools/maf/maf_stats.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_thread_for_species.py b/tools/maf/maf_thread_for_species.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_thread_for_species.py rename to tools/maf/maf_thread_for_species.py diff --git a/lib/galaxy/tools/bundled/maf/maf_thread_for_species.xml b/tools/maf/maf_thread_for_species.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_thread_for_species.xml rename to tools/maf/maf_thread_for_species.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_to_bed.py b/tools/maf/maf_to_bed.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_bed.py rename to tools/maf/maf_to_bed.py diff --git a/lib/galaxy/tools/bundled/maf/maf_to_bed.xml b/tools/maf/maf_to_bed.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_bed.xml rename to tools/maf/maf_to_bed.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_to_bed_code.py b/tools/maf/maf_to_bed_code.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_bed_code.py rename to tools/maf/maf_to_bed_code.py diff --git a/lib/galaxy/tools/bundled/maf/maf_to_fasta.xml b/tools/maf/maf_to_fasta.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_fasta.xml rename to tools/maf/maf_to_fasta.xml diff --git a/lib/galaxy/tools/bundled/maf/maf_to_fasta_concat.py b/tools/maf/maf_to_fasta_concat.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_fasta_concat.py rename to tools/maf/maf_to_fasta_concat.py diff --git a/lib/galaxy/tools/bundled/maf/maf_to_fasta_multiple_sets.py b/tools/maf/maf_to_fasta_multiple_sets.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_fasta_multiple_sets.py rename to tools/maf/maf_to_fasta_multiple_sets.py diff --git a/lib/galaxy/tools/bundled/maf/maf_to_interval.py b/tools/maf/maf_to_interval.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_interval.py rename to tools/maf/maf_to_interval.py diff --git a/lib/galaxy/tools/bundled/maf/maf_to_interval.xml b/tools/maf/maf_to_interval.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/maf_to_interval.xml rename to tools/maf/maf_to_interval.xml diff --git a/lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.py b/tools/maf/vcf_to_maf_customtrack.py similarity index 100% rename from lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.py rename to tools/maf/vcf_to_maf_customtrack.py diff --git a/lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.xml b/tools/maf/vcf_to_maf_customtrack.xml similarity index 100% rename from lib/galaxy/tools/bundled/maf/vcf_to_maf_customtrack.xml rename to tools/maf/vcf_to_maf_customtrack.xml diff --git a/lib/galaxy/tools/bundled/meme/fimo.xml b/tools/meme/fimo.xml similarity index 100% rename from lib/galaxy/tools/bundled/meme/fimo.xml rename to tools/meme/fimo.xml diff --git a/lib/galaxy/tools/bundled/meme/fimo_wrapper.py b/tools/meme/fimo_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/meme/fimo_wrapper.py rename to tools/meme/fimo_wrapper.py diff --git a/lib/galaxy/tools/bundled/meme/meme.xml b/tools/meme/meme.xml similarity index 100% rename from lib/galaxy/tools/bundled/meme/meme.xml rename to tools/meme/meme.xml diff --git a/lib/galaxy/tools/bundled/metag_tools/blat_wrapper.py b/tools/metag_tools/blat_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/metag_tools/blat_wrapper.py rename to tools/metag_tools/blat_wrapper.py diff --git a/lib/galaxy/tools/bundled/metag_tools/blat_wrapper.xml b/tools/metag_tools/blat_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/metag_tools/blat_wrapper.xml rename to tools/metag_tools/blat_wrapper.xml diff --git a/lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.py b/tools/metag_tools/shrimp_color_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.py rename to tools/metag_tools/shrimp_color_wrapper.py diff --git a/lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.xml b/tools/metag_tools/shrimp_color_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/metag_tools/shrimp_color_wrapper.xml rename to tools/metag_tools/shrimp_color_wrapper.xml diff --git a/lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.py b/tools/metag_tools/shrimp_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.py rename to tools/metag_tools/shrimp_wrapper.py diff --git a/lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.xml b/tools/metag_tools/shrimp_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/metag_tools/shrimp_wrapper.xml rename to tools/metag_tools/shrimp_wrapper.xml diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/bwa_solid2fastq_modified.pl b/tools/next_gen_conversion/bwa_solid2fastq_modified.pl similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/bwa_solid2fastq_modified.pl rename to tools/next_gen_conversion/bwa_solid2fastq_modified.pl diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.py b/tools/next_gen_conversion/fastq_conversions.py similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.py rename to tools/next_gen_conversion/fastq_conversions.py diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.xml b/tools/next_gen_conversion/fastq_conversions.xml similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/fastq_conversions.xml rename to tools/next_gen_conversion/fastq_conversions.xml diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.py b/tools/next_gen_conversion/fastq_gen_conv.py similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.py rename to tools/next_gen_conversion/fastq_gen_conv.py diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.xml b/tools/next_gen_conversion/fastq_gen_conv.xml similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/fastq_gen_conv.xml rename to tools/next_gen_conversion/fastq_gen_conv.xml diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.py b/tools/next_gen_conversion/solid2fastq.py similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.py rename to tools/next_gen_conversion/solid2fastq.py diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.xml b/tools/next_gen_conversion/solid2fastq.xml similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/solid2fastq.xml rename to tools/next_gen_conversion/solid2fastq.xml diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.py b/tools/next_gen_conversion/solid_to_fastq.py similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.py rename to tools/next_gen_conversion/solid_to_fastq.py diff --git a/lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.xml b/tools/next_gen_conversion/solid_to_fastq.xml similarity index 100% rename from lib/galaxy/tools/bundled/next_gen_conversion/solid_to_fastq.xml rename to tools/next_gen_conversion/solid_to_fastq.xml diff --git a/lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.py b/tools/ngs_simulation/ngs_simulation.py similarity index 100% rename from lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.py rename to tools/ngs_simulation/ngs_simulation.py diff --git a/lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.xml b/tools/ngs_simulation/ngs_simulation.xml similarity index 100% rename from lib/galaxy/tools/bundled/ngs_simulation/ngs_simulation.xml rename to tools/ngs_simulation/ngs_simulation.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/BEAM2_wrapper.sh b/tools/phenotype_association/BEAM2_wrapper.sh similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/BEAM2_wrapper.sh rename to tools/phenotype_association/BEAM2_wrapper.sh diff --git a/lib/galaxy/tools/bundled/phenotype_association/beam.xml b/tools/phenotype_association/beam.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/beam.xml rename to tools/phenotype_association/beam.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/gpass.pl b/tools/phenotype_association/gpass.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/gpass.pl rename to tools/phenotype_association/gpass.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/gpass.xml b/tools/phenotype_association/gpass.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/gpass.xml rename to tools/phenotype_association/gpass.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/ldtools.xml b/tools/phenotype_association/ldtools.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/ldtools.xml rename to tools/phenotype_association/ldtools.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/ldtools_wrapper.sh b/tools/phenotype_association/ldtools_wrapper.sh similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/ldtools_wrapper.sh rename to tools/phenotype_association/ldtools_wrapper.sh diff --git a/lib/galaxy/tools/bundled/phenotype_association/linkToDavid.pl b/tools/phenotype_association/linkToDavid.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/linkToDavid.pl rename to tools/phenotype_association/linkToDavid.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/linkToDavid.xml b/tools/phenotype_association/linkToDavid.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/linkToDavid.xml rename to tools/phenotype_association/linkToDavid.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.pl b/tools/phenotype_association/linkToGProfile.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.pl rename to tools/phenotype_association/linkToGProfile.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.xml b/tools/phenotype_association/linkToGProfile.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/linkToGProfile.xml rename to tools/phenotype_association/linkToGProfile.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/lped_to_geno.pl b/tools/phenotype_association/lped_to_geno.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/lped_to_geno.pl rename to tools/phenotype_association/lped_to_geno.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/lps.xml b/tools/phenotype_association/lps.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/lps.xml rename to tools/phenotype_association/lps.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/lps_tool_wrapper.sh b/tools/phenotype_association/lps_tool_wrapper.sh similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/lps_tool_wrapper.sh rename to tools/phenotype_association/lps_tool_wrapper.sh diff --git a/lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.pl b/tools/phenotype_association/master2gd_snp.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.pl rename to tools/phenotype_association/master2gd_snp.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.xml b/tools/phenotype_association/master2gd_snp.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/master2gd_snp.xml rename to tools/phenotype_association/master2gd_snp.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/master2pg.pl b/tools/phenotype_association/master2pg.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/master2pg.pl rename to tools/phenotype_association/master2pg.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/master2pg.xml b/tools/phenotype_association/master2pg.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/master2pg.xml rename to tools/phenotype_association/master2pg.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/mergeSnps.pl b/tools/phenotype_association/mergeSnps.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/mergeSnps.pl rename to tools/phenotype_association/mergeSnps.pl diff --git a/lib/galaxy/tools/bundled/phenotype_association/pagetag.py b/tools/phenotype_association/pagetag.py similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/pagetag.py rename to tools/phenotype_association/pagetag.py diff --git a/lib/galaxy/tools/bundled/phenotype_association/pass.xml b/tools/phenotype_association/pass.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/pass.xml rename to tools/phenotype_association/pass.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/pass_wrapper.sh b/tools/phenotype_association/pass_wrapper.sh similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/pass_wrapper.sh rename to tools/phenotype_association/pass_wrapper.sh diff --git a/lib/galaxy/tools/bundled/phenotype_association/senatag.py b/tools/phenotype_association/senatag.py similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/senatag.py rename to tools/phenotype_association/senatag.py diff --git a/lib/galaxy/tools/bundled/phenotype_association/sift.xml b/tools/phenotype_association/sift.xml similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/sift.xml rename to tools/phenotype_association/sift.xml diff --git a/lib/galaxy/tools/bundled/phenotype_association/sift_variants_wrapper.sh b/tools/phenotype_association/sift_variants_wrapper.sh similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/sift_variants_wrapper.sh rename to tools/phenotype_association/sift_variants_wrapper.sh diff --git a/lib/galaxy/tools/bundled/phenotype_association/vcf2pgSnpMult.pl b/tools/phenotype_association/vcf2pgSnpMult.pl similarity index 100% rename from lib/galaxy/tools/bundled/phenotype_association/vcf2pgSnpMult.pl rename to tools/phenotype_association/vcf2pgSnpMult.pl diff --git a/lib/galaxy/tools/bundled/plotting/bar_chart.py b/tools/plotting/bar_chart.py similarity index 100% rename from lib/galaxy/tools/bundled/plotting/bar_chart.py rename to tools/plotting/bar_chart.py diff --git a/lib/galaxy/tools/bundled/plotting/bar_chart.xml b/tools/plotting/bar_chart.xml similarity index 100% rename from lib/galaxy/tools/bundled/plotting/bar_chart.xml rename to tools/plotting/bar_chart.xml diff --git a/lib/galaxy/tools/bundled/plotting/boxplot.xml b/tools/plotting/boxplot.xml similarity index 100% rename from lib/galaxy/tools/bundled/plotting/boxplot.xml rename to tools/plotting/boxplot.xml diff --git a/lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.py b/tools/solid_tools/maq_cs_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.py rename to tools/solid_tools/maq_cs_wrapper.py diff --git a/lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.xml b/tools/solid_tools/maq_cs_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper.xml rename to tools/solid_tools/maq_cs_wrapper.xml diff --git a/lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper_code.py b/tools/solid_tools/maq_cs_wrapper_code.py similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/maq_cs_wrapper_code.py rename to tools/solid_tools/maq_cs_wrapper_code.py diff --git a/lib/galaxy/tools/bundled/solid_tools/qualsolid_boxplot_graph.sh b/tools/solid_tools/qualsolid_boxplot_graph.sh similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/qualsolid_boxplot_graph.sh rename to tools/solid_tools/qualsolid_boxplot_graph.sh diff --git a/lib/galaxy/tools/bundled/solid_tools/solid_qual_boxplot.xml b/tools/solid_tools/solid_qual_boxplot.xml similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/solid_qual_boxplot.xml rename to tools/solid_tools/solid_qual_boxplot.xml diff --git a/lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.py b/tools/solid_tools/solid_qual_stats.py similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.py rename to tools/solid_tools/solid_qual_stats.py diff --git a/lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.xml b/tools/solid_tools/solid_qual_stats.xml similarity index 100% rename from lib/galaxy/tools/bundled/solid_tools/solid_qual_stats.xml rename to tools/solid_tools/solid_qual_stats.xml diff --git a/lib/galaxy/tools/bundled/sr_assembly/velvetg.xml b/tools/sr_assembly/velvetg.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_assembly/velvetg.xml rename to tools/sr_assembly/velvetg.xml diff --git a/lib/galaxy/tools/bundled/sr_assembly/velvetg_wrapper.py b/tools/sr_assembly/velvetg_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/sr_assembly/velvetg_wrapper.py rename to tools/sr_assembly/velvetg_wrapper.py diff --git a/lib/galaxy/tools/bundled/sr_assembly/velveth.xml b/tools/sr_assembly/velveth.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_assembly/velveth.xml rename to tools/sr_assembly/velveth.xml diff --git a/lib/galaxy/tools/bundled/sr_assembly/velveth_wrapper.py b/tools/sr_assembly/velveth_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/sr_assembly/velveth_wrapper.py rename to tools/sr_assembly/velveth_wrapper.py diff --git a/lib/galaxy/tools/bundled/sr_mapping/PerM.xml b/tools/sr_mapping/PerM.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/PerM.xml rename to tools/sr_mapping/PerM.xml diff --git a/lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.py b/tools/sr_mapping/bfast_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.py rename to tools/sr_mapping/bfast_wrapper.py diff --git a/lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.xml b/tools/sr_mapping/bfast_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/bfast_wrapper.xml rename to tools/sr_mapping/bfast_wrapper.xml diff --git a/lib/galaxy/tools/bundled/sr_mapping/fastq_statistics.xml b/tools/sr_mapping/fastq_statistics.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/fastq_statistics.xml rename to tools/sr_mapping/fastq_statistics.xml diff --git a/lib/galaxy/tools/bundled/sr_mapping/mosaik.xml b/tools/sr_mapping/mosaik.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/mosaik.xml rename to tools/sr_mapping/mosaik.xml diff --git a/lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.py b/tools/sr_mapping/srma_wrapper.py similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.py rename to tools/sr_mapping/srma_wrapper.py diff --git a/lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.xml b/tools/sr_mapping/srma_wrapper.xml similarity index 100% rename from lib/galaxy/tools/bundled/sr_mapping/srma_wrapper.xml rename to tools/sr_mapping/srma_wrapper.xml diff --git a/lib/galaxy/tools/bundled/stats/aggregate_binned_scores_in_intervals.xml b/tools/stats/aggregate_binned_scores_in_intervals.xml similarity index 100% rename from lib/galaxy/tools/bundled/stats/aggregate_binned_scores_in_intervals.xml rename to tools/stats/aggregate_binned_scores_in_intervals.xml diff --git a/lib/galaxy/tools/bundled/stats/aggregate_scores_in_intervals.py b/tools/stats/aggregate_scores_in_intervals.py similarity index 100% rename from lib/galaxy/tools/bundled/stats/aggregate_scores_in_intervals.py rename to tools/stats/aggregate_scores_in_intervals.py diff --git a/lib/galaxy/tools/bundled/stats/filtering.py b/tools/stats/filtering.py similarity index 100% rename from lib/galaxy/tools/bundled/stats/filtering.py rename to tools/stats/filtering.py diff --git a/lib/galaxy/tools/bundled/stats/filtering.xml b/tools/stats/filtering.xml similarity index 100% rename from lib/galaxy/tools/bundled/stats/filtering.xml rename to tools/stats/filtering.xml diff --git a/lib/galaxy/tools/bundled/stats/grouping.py b/tools/stats/grouping.py similarity index 100% rename from lib/galaxy/tools/bundled/stats/grouping.py rename to tools/stats/grouping.py diff --git a/lib/galaxy/tools/bundled/stats/grouping.xml b/tools/stats/grouping.xml similarity index 100% rename from lib/galaxy/tools/bundled/stats/grouping.xml rename to tools/stats/grouping.xml diff --git a/lib/galaxy/tools/bundled/stats/gsummary.py b/tools/stats/gsummary.py similarity index 100% rename from lib/galaxy/tools/bundled/stats/gsummary.py rename to tools/stats/gsummary.py diff --git a/lib/galaxy/tools/bundled/stats/gsummary.xml b/tools/stats/gsummary.xml similarity index 100% rename from lib/galaxy/tools/bundled/stats/gsummary.xml rename to tools/stats/gsummary.xml diff --git a/lib/galaxy/tools/bundled/stats/gsummary.xml.groups b/tools/stats/gsummary.xml.groups similarity index 100% rename from lib/galaxy/tools/bundled/stats/gsummary.xml.groups rename to tools/stats/gsummary.xml.groups diff --git a/lib/galaxy/tools/bundled/stats/r_wrapper.sh b/tools/stats/r_wrapper.sh similarity index 100% rename from lib/galaxy/tools/bundled/stats/r_wrapper.sh rename to tools/stats/r_wrapper.sh diff --git a/lib/galaxy/tools/bundled/visualization/LAJ.py b/tools/visualization/LAJ.py similarity index 100% rename from lib/galaxy/tools/bundled/visualization/LAJ.py rename to tools/visualization/LAJ.py diff --git a/lib/galaxy/tools/bundled/visualization/LAJ.xml b/tools/visualization/LAJ.xml similarity index 100% rename from lib/galaxy/tools/bundled/visualization/LAJ.xml rename to tools/visualization/LAJ.xml diff --git a/lib/galaxy/tools/bundled/visualization/LAJ_code.py b/tools/visualization/LAJ_code.py similarity index 100% rename from lib/galaxy/tools/bundled/visualization/LAJ_code.py rename to tools/visualization/LAJ_code.py From e41375bb7799e226d7ccf2a08efc2a22d68e0041 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Feb 2019 16:35:04 -0500 Subject: [PATCH 038/141] Remove link to old mako-based toolshed installer from admin panel --- client/galaxy/scripts/entry/panels/admin-panel.js | 7 +------ lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py | 8 -------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/client/galaxy/scripts/entry/panels/admin-panel.js b/client/galaxy/scripts/entry/panels/admin-panel.js index a94035e382e..6b3b14935c3 100644 --- a/client/galaxy/scripts/entry/panels/admin-panel.js +++ b/client/galaxy/scripts/entry/panels/admin-panel.js @@ -87,15 +87,10 @@ var AdminPanel = Backbone.View.extend({ { title: _l("Tool Management"), items: [ - { - title: _l("Install new tools"), - url: "admin_toolshed/browse_tool_sheds", - enabled: self.settings.is_tool_shed_installed - }, { title: "Install new tools (Beta)", url: "admin_toolshed/browse_toolsheds", - enabled: self.settings.is_tool_shed_installed && self.config.enable_beta_ts_api_install + enabled: self.settings.is_tool_shed_installed }, { title: _l("Monitor installation"), diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index 5d5b86f20b1..c67a097549d 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -180,14 +180,6 @@ class AdminToolshed(AdminGalaxy): 'app': app, 'bundle': 'extended'}) - @web.expose - @web.require_admin - def browse_tool_sheds(self, trans, **kwd): - message = escape(kwd.get('message', '')) - return trans.fill_template('/webapps/galaxy/admin/tool_sheds.mako', - message=message, - status='error') - @web.expose @web.require_admin def check_for_updates(self, trans, **kwd): From e9e74ba1d33b0c6b08143f394478e6dc03b01eac Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Feb 2019 16:35:58 -0500 Subject: [PATCH 039/141] Remove toolshed browsing mako --- .../webapps/galaxy/admin/tool_sheds.mako | 33 ------------------- 1 file changed, 33 deletions(-) delete mode 100644 templates/webapps/galaxy/admin/tool_sheds.mako diff --git a/templates/webapps/galaxy/admin/tool_sheds.mako b/templates/webapps/galaxy/admin/tool_sheds.mako deleted file mode 100644 index 68f3f116864..00000000000 --- a/templates/webapps/galaxy/admin/tool_sheds.mako +++ /dev/null @@ -1,33 +0,0 @@ -<%inherit file="/base.mako"/> -<%namespace file="/message.mako" import="render_msg" /> - -<%def name="title()">Configured Galaxy tool sheds - -<%def name="stylesheets()"> - ${parent.stylesheets()} - ${h.css( "library" )} - - -%if message: - ${render_msg( message, status )} -%endif - -
-
Accessible Galaxy tool sheds
-
- <% shed_id = 0 %> - %for name, url in trans.app.tool_shed_registry.tool_sheds.items(): - <% margin_cls = "mt-2" if shed_id > 0 else "" %> - - -
- <% shed_id += 1 %> - %endfor -
-
From b94110ace5e0917be9f8a423cdc08c888a39e10f Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Feb 2019 16:38:56 -0500 Subject: [PATCH 040/141] Remove browse toolshed repository controller endpoint --- lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index c67a097549d..bd595c8de26 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -159,15 +159,6 @@ class AdminToolshed(AdminGalaxy): message=message, status=status) - @web.expose - @web.require_admin - def browse_tool_shed(self, trans, **kwd): - tool_shed_url = kwd.get('tool_shed_url', '') - tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(trans.app, tool_shed_url) - params = dict(galaxy_url=web.url_for('/', qualified=True)) - url = util.build_url(tool_shed_url, pathspec=['repository', 'browse_valid_categories'], params=params) - return trans.response.send_redirect(url) - @web.expose @web.require_admin def browse_toolsheds(self, trans, **kwd): From 3b8e1d0463e01ef9ee657ed3694759c696ace247 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Feb 2019 16:40:05 -0500 Subject: [PATCH 041/141] Remove find_tools_in_tool_shed controller endpoint --- lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index bd595c8de26..721c1f2742c 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -262,15 +262,6 @@ class AdminToolshed(AdminGalaxy): return open(path_to_file, 'rb') return None - @web.expose - @web.require_admin - def find_tools_in_tool_shed(self, trans, **kwd): - tool_shed_url = kwd.get('tool_shed_url', '') - tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(trans.app, tool_shed_url) - params = dict(galaxy_url=web.url_for('/', qualified=True)) - url = util.build_url(tool_shed_url, pathspec=['repository', 'find_tools'], params=params) - return trans.response.send_redirect(url) - @web.expose @web.require_admin def find_workflows_in_tool_shed(self, trans, **kwd): From 36a45d289e331f8e65da4d303b05bb74753256fd Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Feb 2019 16:41:11 -0500 Subject: [PATCH 042/141] Remove find_workflows_in_tool_shed controller endpoint --- lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index 721c1f2742c..36da0eba580 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -262,15 +262,6 @@ class AdminToolshed(AdminGalaxy): return open(path_to_file, 'rb') return None - @web.expose - @web.require_admin - def find_workflows_in_tool_shed(self, trans, **kwd): - tool_shed_url = kwd.get('tool_shed_url', '') - tool_shed_url = common_util.get_tool_shed_url_from_tool_shed_registry(trans.app, tool_shed_url) - params = dict(galaxy_url=web.url_for('/', qualified=True)) - url = util.build_url(tool_shed_url, pathspec=['repository', 'find_workflows'], params=params) - return trans.response.send_redirect(url) - @web.expose @web.require_admin def generate_workflow_image(self, trans, workflow_name, repository_id=None): From 211a33ec6ca7cb34ddfc9ef82f369d4bc36464f4 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 19 Feb 2019 20:06:44 -0500 Subject: [PATCH 043/141] Remove beta config flag for new toolshed access point --- config/galaxy.yml.sample | 4 ---- doc/source/admin/galaxy_options.rst | 11 ----------- lib/galaxy/config.py | 4 ---- lib/galaxy/managers/configuration.py | 2 -- lib/galaxy/webapps/galaxy/config_schema.yml | 7 ------- 5 files changed, 28 deletions(-) diff --git a/config/galaxy.yml.sample b/config/galaxy.yml.sample index 0e733553171..7f43547bfab 100644 --- a/config/galaxy.yml.sample +++ b/config/galaxy.yml.sample @@ -1344,10 +1344,6 @@ galaxy: # the special topics area of the admin documentation. #enable_beta_gdpr: false - # Enable the new interface for installing tools from Tool Shed via the - # API. Admin menu will list both if enabled. - #enable_beta_ts_api_install: true - # Enable the new container interface for Interactive Environments #enable_beta_containers_interface: false diff --git a/doc/source/admin/galaxy_options.rst b/doc/source/admin/galaxy_options.rst index bd2d8bdadbf..c61954579d4 100644 --- a/doc/source/admin/galaxy_options.rst +++ b/doc/source/admin/galaxy_options.rst @@ -2784,17 +2784,6 @@ :Type: bool -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -``enable_beta_ts_api_install`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -:Description: - Enable the new interface for installing tools from Tool Shed via - the API. Admin menu will list both if enabled. -:Default: ``true`` -:Type: bool - - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``enable_beta_containers_interface`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index fcaadab0628..3f7b810dbce 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -366,10 +366,6 @@ class Configuration(object): self.local_task_queue_workers = int(kwargs.get("local_task_queue_workers", 2)) self.tool_submission_burst_threads = int(kwargs.get('tool_submission_burst_threads', '1')) self.tool_submission_burst_at = int(kwargs.get('tool_submission_burst_at', '10')) - - # Enable new interface for API installations from TS. - # Admin menu will list both if enabled. - self.enable_beta_ts_api_install = string_as_bool(kwargs.get('enable_beta_ts_api_install', 'True')) # The transfer manager and deferred job queue self.enable_beta_job_managers = string_as_bool(kwargs.get('enable_beta_job_managers', 'False')) # Set this to go back to setting the object store in the tool request instead of diff --git a/lib/galaxy/managers/configuration.py b/lib/galaxy/managers/configuration.py index bd3d7466183..c992fe52dc5 100644 --- a/lib/galaxy/managers/configuration.py +++ b/lib/galaxy/managers/configuration.py @@ -53,8 +53,6 @@ class ConfigSerializer(base.ModelSerializer): 'biostar_url' : _defaults_to(''), 'biostar_url_redirect' : lambda *a, **c: self.url_for(controller='biostar', action='biostar_redirect', qualified=True), 'default_locale' : _defaults_to(self.app.config.default_locale), - - 'enable_beta_ts_api_install' : _defaults_to(False), 'enable_communication_server' : _defaults_to(False), 'communication_server_port' : _defaults_to(None), 'communication_server_host' : _defaults_to(None), diff --git a/lib/galaxy/webapps/galaxy/config_schema.yml b/lib/galaxy/webapps/galaxy/config_schema.yml index 9fa6a566648..47839459241 100644 --- a/lib/galaxy/webapps/galaxy/config_schema.yml +++ b/lib/galaxy/webapps/galaxy/config_schema.yml @@ -2078,13 +2078,6 @@ mapping: Please read the GDPR section under the special topics area of the admin documentation. - enable_beta_ts_api_install: - type: bool - default: true - required: false - desc: | - Enable the new interface for installing tools from Tool Shed - via the API. Admin menu will list both if enabled. enable_beta_containers_interface: type: bool From 9e338c2e20c3d8cee7002d92f40b0f3cf8c0db4c Mon Sep 17 00:00:00 2001 From: guerler Date: Thu, 21 Feb 2019 20:10:27 -0500 Subject: [PATCH 044/141] Remove 'beta' from toolshed installer link title --- client/galaxy/scripts/entry/panels/admin-panel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/galaxy/scripts/entry/panels/admin-panel.js b/client/galaxy/scripts/entry/panels/admin-panel.js index 6b3b14935c3..35fa5c21a4a 100644 --- a/client/galaxy/scripts/entry/panels/admin-panel.js +++ b/client/galaxy/scripts/entry/panels/admin-panel.js @@ -88,7 +88,7 @@ var AdminPanel = Backbone.View.extend({ title: _l("Tool Management"), items: [ { - title: "Install new tools (Beta)", + title: "Install new tools", url: "admin_toolshed/browse_toolsheds", enabled: self.settings.is_tool_shed_installed }, From 0485373a3cbd3c6fe5358fc593dfb41e3d7106ec Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 26 Feb 2019 13:32:05 -0500 Subject: [PATCH 045/141] Remove test case for browsing multiple toolsheds through iframe in galaxy --- .../functional/test_1000_install_basic_repository.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/shed_functional/functional/test_1000_install_basic_repository.py b/test/shed_functional/functional/test_1000_install_basic_repository.py index 4fc6d2223db..56c0fe593b3 100644 --- a/test/shed_functional/functional/test_1000_install_basic_repository.py +++ b/test/shed_functional/functional/test_1000_install_basic_repository.py @@ -68,13 +68,6 @@ class BasicToolShedFeatures(ShedTwillTestCase): strings_displayed=[], strings_not_displayed=[]) - def test_0010_browse_tool_sheds(self): - """Browse the available tool sheds in this Galaxy instance.""" - self.galaxy_login(email=common.admin_email, username=common.admin_username) - self.visit_galaxy_url('/admin_toolshed/browse_tool_sheds') - self.check_page_for_string('Embedded tool shed for functional tests') - self.browse_tool_shed(url=self.url, strings_displayed=['Test 0000 Basic Repository Features 1', 'Test 0000 Basic Repository Features 2']) - def test_0015_browse_test_0000_category(self): '''Browse the category created in test 0000. It should contain the filtering_0000 repository also created in that test.''' category = self.test_db_util.get_category_by_name('Test 0000 Basic Repository Features 1') From da8cc8aa970500a7df2cb423cc1f649ec636caa9 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 26 Feb 2019 14:26:43 -0500 Subject: [PATCH 046/141] Fix access to toolshed browsing, bypass Galaxy --- test/shed_functional/base/twilltestcase.py | 6 ++---- .../functional/test_1000_install_basic_repository.py | 5 +++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/test/shed_functional/base/twilltestcase.py b/test/shed_functional/base/twilltestcase.py index 0e333731a5a..dfea88bbb60 100644 --- a/test/shed_functional/base/twilltestcase.py +++ b/test/shed_functional/base/twilltestcase.py @@ -523,10 +523,8 @@ class ShedTwillTestCase(FunctionalTestCase): self.check_for_strings(strings_displayed, strings_not_displayed) def browse_tool_shed(self, url, strings_displayed=None, strings_not_displayed=None): - params = { - 'tool_shed_url': url - } - self.visit_galaxy_url('/admin_toolshed/browse_tool_shed', params=params) + url = '/repository/browse_valid_categories' + self.visit_url(url) self.check_for_strings(strings_displayed, strings_not_displayed) def browse_tool_dependencies(self, strings_displayed=None, strings_not_displayed=None): diff --git a/test/shed_functional/functional/test_1000_install_basic_repository.py b/test/shed_functional/functional/test_1000_install_basic_repository.py index 56c0fe593b3..e44f61a2fcf 100644 --- a/test/shed_functional/functional/test_1000_install_basic_repository.py +++ b/test/shed_functional/functional/test_1000_install_basic_repository.py @@ -68,6 +68,11 @@ class BasicToolShedFeatures(ShedTwillTestCase): strings_displayed=[], strings_not_displayed=[]) + def test_0010_browse_tool_sheds(self): + """Browse the available tool sheds in this Galaxy instance.""" + self.galaxy_login(email=common.admin_email, username=common.admin_username) + self.browse_tool_shed(url=self.url, strings_displayed=['Test 0000 Basic Repository Features 1', 'Test 0000 Basic Repository Features 2']) + def test_0015_browse_test_0000_category(self): '''Browse the category created in test 0000. It should contain the filtering_0000 repository also created in that test.''' category = self.test_db_util.get_category_by_name('Test 0000 Basic Repository Features 1') From 625eea896d07aa35d0790d77c961757cc3dd1fa2 Mon Sep 17 00:00:00 2001 From: guerler Date: Fri, 19 Apr 2019 13:35:52 -0400 Subject: [PATCH 047/141] Remove metadata viewer --- .../galaxy/controllers/admin_toolshed.py | 35 ------------------- 1 file changed, 35 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index 574e4f0aa3b..022f495a9a9 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -1741,41 +1741,6 @@ class AdminToolshed(AdminGalaxy): message=message, status=status)) - @web.expose - @web.require_admin - def view_tool_metadata(self, trans, repository_id, tool_id, **kwd): - message = escape(kwd.get('message', '')) - status = kwd.get('status', 'done') - repository = repository_util.get_installed_tool_shed_repository(trans.app, repository_id) - repository_metadata = repository.metadata - shed_config_dict = repository.get_shed_config_dict(trans.app) - tool_metadata = {} - tool_lineage = [] - tool = None - if 'tools' in repository_metadata: - for tool_metadata_dict in repository_metadata['tools']: - if tool_metadata_dict['id'] == tool_id: - tool_metadata = tool_metadata_dict - tool_config = tool_metadata['tool_config'] - if shed_config_dict and shed_config_dict.get('tool_path'): - tool_config = os.path.join(shed_config_dict.get('tool_path'), tool_config) - tool = trans.app.toolbox.get_tool(tool_id=tool_metadata['guid'], exact=True) - if not tool: - tool = trans.app.toolbox.load_tool(os.path.abspath(tool_config), guid=tool_metadata['guid']) - if tool: - tool._lineage = trans.app.toolbox._lineage_map.register(tool) - if tool: - tool_lineage = tool.lineage.get_version_ids(reverse=True) - break - return trans.fill_template("/admin/tool_shed_repository/view_tool_metadata.mako", - repository=repository, - repository_metadata=repository_metadata, - tool=tool, - tool_metadata=tool_metadata, - tool_lineage=tool_lineage, - message=message, - status=status) - @web.expose @web.require_admin def update_tool_shed_status_for_installed_repository(self, trans, **kwd): From 3e38b6e6962cde487afe1c47e1f8dc5570311c2c Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 26 Jun 2019 09:59:49 +0200 Subject: [PATCH 048/141] Fix deleting jobs Discussed this with @slugger90 and @erasche on gitter. The traceback was: ``` galaxy.jobs.handler ERROR 2019-06-26 13:09:12,754 [p:32491,w:0,m:2] [JobHandlerStopQueue.monitor_thread] Exception in monitor_step Traceback (most recent call last): File "lib/galaxy/jobs/handler.py", line 866, in monitor self.monitor_step() File "lib/galaxy/jobs/handler.py", line 886, in monitor_step jobs_to_check.append((job, job.stderr)) File "lib/galaxy/model/__init__.py", line 337, in get_stderr stderr += "\n" + self.job_stderr TypeError: unsupported operand type(s) for +=: 'NoneType' and 'unicode' ``` --- lib/galaxy/jobs/handler.py | 5 ++++- lib/galaxy/model/__init__.py | 11 +++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/galaxy/jobs/handler.py b/lib/galaxy/jobs/handler.py index 33a705caccc..3c30f26d97d 100644 --- a/lib/galaxy/jobs/handler.py +++ b/lib/galaxy/jobs/handler.py @@ -883,7 +883,10 @@ class JobHandlerStopQueue(Monitors): .filter((model.Job.state == model.Job.states.DELETED_NEW) & (model.Job.handler == self.app.config.server_name)).all() for job in newly_deleted_jobs: - jobs_to_check.append((job, job.stderr)) + # job.stderr is always a string (job.job_stderr + job.tool_stderr, possibly `''`), + # while any `not None` message returned in self.queue.get_nowait() is interpreted + # as an error, so here we use None if job.stderr is false-y + jobs_to_check.append((job, job.stderr or None)) # Also pull from the queue (in the case of Administrative stopped jobs) try: while 1: diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 95efaa76ecc..ae71455da81 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -331,18 +331,17 @@ class JobLike(object): def set_stdout(self, stdout): raise NotImplementedError("Attempt to set stdout, must set tool_stdout or job_stdout") - def get_stderr(self): - stderr = self.tool_stderr + @property + def stderr(self): + stderr = self.tool_stderr or '' if self.job_stderr: stderr += "\n" + self.job_stderr return stderr - def set_stderr(self, stderr): + @stderr.setter + def stderr(self, stderr): raise NotImplementedError("Attempt to set stdout, must set tool_stderr or job_stderr") - stdout = property(get_stdout, set_stdout) - stderr = property(get_stderr, set_stderr) - class User(Dictifiable, RepresentById): use_pbkdf2 = True From 96c001c565d713676c9002818d62f01960c1793d Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 26 Jun 2019 11:34:05 +0200 Subject: [PATCH 049/141] Add stdout property removed in 3e38b6e6962cde487afe1c47e1f8dc5570311c2c --- lib/galaxy/model/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index ae71455da81..8cdea1c826c 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -322,13 +322,15 @@ class JobLike(object): return "%s[%s,tool_id=%s]" % (self.__class__.__name__, extra, self.tool_id) - def get_stdout(self): - stdout = self.tool_stdout + @property + def stdout(self): + stdout = self.tool_stdout or '' if self.job_stdout: stdout += "\n" + self.job_stdout return stdout - def set_stdout(self, stdout): + @stdout.setter + def stdout(self, stdout): raise NotImplementedError("Attempt to set stdout, must set tool_stdout or job_stdout") @property From 5016dedac73e65b4bc07f0341e216d071ba1c740 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 26 Jun 2019 11:23:11 +0200 Subject: [PATCH 050/141] Add test that ensures cancelling job in admin interface works --- .../test_local_job_cancellation.py | 48 ++++++++++++++----- 1 file changed, 35 insertions(+), 13 deletions(-) diff --git a/test/integration/test_local_job_cancellation.py b/test/integration/test_local_job_cancellation.py index abcaa0a1576..06166c242e3 100644 --- a/test/integration/test_local_job_cancellation.py +++ b/test/integration/test_local_job_cancellation.py @@ -18,29 +18,51 @@ class LocalJobCancellationTestCase(integration_util.IntegrationTestCase): super(LocalJobCancellationTestCase, self).setUp() self.dataset_populator = DatasetPopulator(self.galaxy_interactor) + def setup_cat_data_and_sleep(self, history_id): + hda1 = self.dataset_populator.new_dataset(history_id, content="1 2 3") + running_inputs = { + "input1": {"src": "hda", "id": hda1["id"]}, + "sleep_time": 240, + } + running_response = self.dataset_populator.run_tool( + "cat_data_and_sleep", + running_inputs, + history_id, + assert_ok=False, + ).json() + job_dict = running_response["jobs"][0] + return job_dict + + def test_cancel_job_with_admin_message(self): + with self.dataset_populator.test_history() as history_id: + job_dict = self.setup_cat_data_and_sleep(history_id) + self.galaxy_interactor.wait_for(lambda: self._get("jobs/%s" % job_dict['id']).json()['state'] != 'running', + maxseconds=60) + app = self._app + sa_session = app.model.context.current + Job = app.model.Job + job = sa_session.query(Job).filter_by(tool_id="cat_data_and_sleep").order_by(Job.create_time.desc()).first() + # This is how the admin controller code cancels a job + job.job_stderr = 'admin cancelled job' + job.set_state(app.model.Job.states.DELETED_NEW) + sa_session.add(job) + sa_session.flush() + self.galaxy_interactor.wait_for(lambda: self._get("jobs/%s" % job_dict['id']).json()['state'] != 'error', + maxseconds=60) + def test_kill_process(self): """ """ with self.dataset_populator.test_history() as history_id: - hda1 = self.dataset_populator.new_dataset(history_id, content="1 2 3") - running_inputs = { - "input1": {"src": "hda", "id": hda1["id"]}, - "sleep_time": 240, - } - running_response = self.dataset_populator.run_tool( - "cat_data_and_sleep", - running_inputs, - history_id, - assert_ok=False, - ).json() - job_dict = running_response["jobs"][0] + job_dict = self.setup_cat_data_and_sleep(history_id) app = self._app sa_session = app.model.context.current external_id = None state = False + Job = app.model.Job - job = sa_session.query(app.model.Job).filter_by(tool_id="cat_data_and_sleep").one() + job = sa_session.query(Job).filter_by(tool_id="cat_data_and_sleep").order_by(Job.create_time.desc()).first() # Not checking the state here allows the change from queued to running to overwrite # the change from queued to deleted_new in the API thread - this is a problem because # the job will still run. See issue https://github.com/galaxyproject/galaxy/issues/4960. From 54a60a6aaa992319cdb0f5bc1fb68be83c28ffd2 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 26 Jun 2019 15:53:25 +0200 Subject: [PATCH 051/141] Looks like we never actually cancel the job? --- lib/galaxy/tools/verify/interactor.py | 4 ++-- test/integration/test_local_job_cancellation.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/tools/verify/interactor.py b/lib/galaxy/tools/verify/interactor.py index 2330e8853c5..a83f338a0f1 100644 --- a/lib/galaxy/tools/verify/interactor.py +++ b/lib/galaxy/tools/verify/interactor.py @@ -244,7 +244,7 @@ class GalaxyInteractorApi(object): def wait_for_job(self, job_id, history_id, maxseconds): self.wait_for(lambda: not self.__job_ready(job_id, history_id), maxseconds=maxseconds) - def wait_for(self, func, **kwd): + def wait_for(self, func, what='Tool test run', **kwd): sleep_amount = 0.2 slept = 0 walltime_exceeded = int(kwd.get("maxseconds", DEFAULT_TOOL_TEST_WAIT)) @@ -258,7 +258,7 @@ class GalaxyInteractorApi(object): else: return - message = 'Tool test run exceeded walltime [total %s, max %s], terminating.' % (slept, walltime_exceeded) + message = '%s exceeded walltime [total %s, max %s], terminating.' % (what, slept, walltime_exceeded) log.info(message) raise AssertionError(message) diff --git a/test/integration/test_local_job_cancellation.py b/test/integration/test_local_job_cancellation.py index 06166c242e3..d01cea8bd2e 100644 --- a/test/integration/test_local_job_cancellation.py +++ b/test/integration/test_local_job_cancellation.py @@ -37,6 +37,7 @@ class LocalJobCancellationTestCase(integration_util.IntegrationTestCase): with self.dataset_populator.test_history() as history_id: job_dict = self.setup_cat_data_and_sleep(history_id) self.galaxy_interactor.wait_for(lambda: self._get("jobs/%s" % job_dict['id']).json()['state'] != 'running', + what="Wait for job to start running", maxseconds=60) app = self._app sa_session = app.model.context.current @@ -48,6 +49,7 @@ class LocalJobCancellationTestCase(integration_util.IntegrationTestCase): sa_session.add(job) sa_session.flush() self.galaxy_interactor.wait_for(lambda: self._get("jobs/%s" % job_dict['id']).json()['state'] != 'error', + what="Wait for job to end in error", maxseconds=60) def test_kill_process(self): From 85643c50f53a2d7a42e0d7a9b483421c86dfb4e2 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Fri, 28 Jun 2019 18:17:58 +0200 Subject: [PATCH 052/141] Quick hack to allow delayed invocations followed by step that consumes an input parameter Fixes https://github.com/galaxyproject/galaxy/issues/8248, tested with normal input parameters and expression tool input. Proper fix would of course be tracking the OutputSteps that are produced, but would probably require a database migration. --- lib/galaxy/workflow/run.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/galaxy/workflow/run.py b/lib/galaxy/workflow/run.py index e9120f2529b..3336139eab3 100644 --- a/lib/galaxy/workflow/run.py +++ b/lib/galaxy/workflow/run.py @@ -352,10 +352,16 @@ class WorkflowProgress(object): try: replacement = step_outputs[output_name] except KeyError: - # Must resolve. - template = "Workflow evaluation problem - failed to find output_name %s in step_outputs %s" - message = template % (output_name, step_outputs) - raise Exception(message) + replacement = self.inputs_by_step_id.get(output_step_id) + if connection.output_step.type == 'parameter_input' and output_step_id is not None: + # FIXME: parameter_input step outputs should be properly recorded as step outputs, but for now we can + # short-circuit and just pick the input value + pass + else: + # Must resolve. + template = "Workflow evaluation problem - failed to find output_name %s in step_outputs %s" + message = template % (output_name, step_outputs) + raise Exception(message) if isinstance(replacement, model.HistoryDatasetCollectionAssociation): if not replacement.collection.populated: if not replacement.collection.waiting_for_elements: From d4c802a1752bc9c094618535a25e40873c99133d Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Fri, 28 Jun 2019 15:26:49 +0200 Subject: [PATCH 053/141] Fix migration if WorkflowStepConnection index not present Fixes: ``` self = , cursor = statement = '\nDROP INDEX ix_workflow_step_connection_input_subworkflow_step_id', parameters = () context = def do_execute(self, cursor, statement, parameters, context=None): > cursor.execute(statement, parameters) E sqlite3.OperationalError: no such index: ix_workflow_step_connection_input_subworkflow_step_id .venv3/lib/python3.6/site-packages/sqlalchemy/engine/default.py:550: OperationalError The above exception was the direct cause of the following exception: cls = @classmethod def setUpClass(cls): # realpath for docker deployed in a VM on Mac, also done in driver_util. cls.jobs_directory = os.path.realpath(tempfile.mkdtemp()) > super(KubernetesDependencyResolutionIntegrationTestCase, cls).setUpClass() test/integration/test_kubernetes_staging.py:147: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/base/integration_util.py:69: in setUpClass cls._test_driver.setup(config_object=cls) test/base/driver_util.py:898: in setup self._register_and_run_servers(config_object) test/base/driver_util.py:953: in _register_and_run_servers self.app = build_galaxy_app(galaxy_config) test/base/driver_util.py:563: in build_galaxy_app app = GalaxyUniverseApplication(**simple_kwargs) lib/galaxy/app.py:88: in __init__ self._configure_models(check_migrate_databases=self.config.check_migrate_databases, check_migrate_tools=check_migrate_tools, config_file=config_file) lib/galaxy/config.py:1149: in _configure_models create_or_verify_database(db_url, config_file, self.config.database_engine_options, app=self) lib/galaxy/model/migrate/check.py:64: in create_or_verify_database migrate() lib/galaxy/model/migrate/check.py:60: in migrate migrate_to_current_version(engine, db_schema) lib/galaxy/model/migrate/check.py:149: in migrate_to_current_version schema.runchange(ver, change, changeset.step) .venv3/lib/python3.6/site-packages/migrate/versioning/schema.py:93: in runchange change.run(self.engine, step) .venv3/lib/python3.6/site-packages/migrate/versioning/script/py.py:148: in run script_func(engine) lib/galaxy/model/migrate/versions/0145_add_workflow_step_input.py:48: in upgrade index.drop() .venv3/lib/python3.6/site-packages/sqlalchemy/sql/schema.py:3713: in drop bind._run_visitor(ddl.SchemaDropper, self) .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:2033: in _run_visitor conn._run_visitor(visitorcallable, element, **kwargs) .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:1607: in _run_visitor visitorcallable(self.dialect, self, **kwargs).traverse_single(element) .venv3/lib/python3.6/site-packages/sqlalchemy/sql/visitors.py:131: in traverse_single return meth(obj, **kw) .venv3/lib/python3.6/site-packages/sqlalchemy/sql/ddl.py:988: in visit_index self.connection.execute(DropIndex(index)) .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:988: in execute return meth(self, multiparams, params) .venv3/lib/python3.6/site-packages/sqlalchemy/sql/ddl.py:72: in _execute_on_connection return connection._execute_ddl(self, multiparams, params) .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:1050: in _execute_ddl compiled, .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:1248: in _execute_context e, statement, parameters, cursor, context .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:1466: in _handle_dbapi_exception util.raise_from_cause(sqlalchemy_exception, exc_info) .venv3/lib/python3.6/site-packages/sqlalchemy/util/compat.py:383: in raise_from_cause reraise(type(exception), exception, tb=exc_tb, cause=cause) .venv3/lib/python3.6/site-packages/sqlalchemy/util/compat.py:128: in reraise raise value.with_traceback(tb) .venv3/lib/python3.6/site-packages/sqlalchemy/engine/base.py:1244: in _execute_context cursor, statement, parameters, context _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , cursor = statement = '\nDROP INDEX ix_workflow_step_connection_input_subworkflow_step_id', parameters = () context = def do_execute(self, cursor, statement, parameters, context=None): > cursor.execute(statement, parameters) E sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such index: ix_workflow_step_connection_input_subworkflow_step_id E [SQL: E DROP INDEX ix_workflow_step_connection_input_subworkflow_step_id] E (Background on this error at: http://sqlalche.me/e/e3q8) .venv3/lib/python3.6/site-packages/sqlalchemy/engine/default.py:550: OperationalError ``` when running the test in https://github.com/galaxyproject/galaxy/pull/8195 --- .../model/migrate/versions/0145_add_workflow_step_input.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/model/migrate/versions/0145_add_workflow_step_input.py b/lib/galaxy/model/migrate/versions/0145_add_workflow_step_input.py index 4944fc3ec9c..a5e799104d5 100644 --- a/lib/galaxy/model/migrate/versions/0145_add_workflow_step_input.py +++ b/lib/galaxy/model/migrate/versions/0145_add_workflow_step_input.py @@ -45,7 +45,10 @@ def upgrade(migrate_engine): OldWorkflowStepConnection_table = Table("workflow_step_connection", metadata, autoload=True) for index in OldWorkflowStepConnection_table.indexes: - index.drop() + try: + index.drop() + except Exception: + log.exception("Dropping index '%s' from table '%s' failed", index, OldWorkflowStepConnection_table) OldWorkflowStepConnection_table.rename("workflow_step_connection_preupgrade145") # Try to deregister that table to work around some caching problems it seems. OldWorkflowStepConnection_table.deregister() From 9b815ce7a6b7c774340fb27b91919126048bd8fb Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sat, 29 Jun 2019 10:31:44 +0200 Subject: [PATCH 054/141] Refresh job to see update state? --- lib/galaxy/webapps/galaxy/api/jobs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/webapps/galaxy/api/jobs.py b/lib/galaxy/webapps/galaxy/api/jobs.py index d5fc9568bbf..de77d68bb11 100644 --- a/lib/galaxy/webapps/galaxy/api/jobs.py +++ b/lib/galaxy/webapps/galaxy/api/jobs.py @@ -324,6 +324,7 @@ class JobController(BaseAPIController, UsesLibraryMixinItems): for data_assoc in job.output_datasets: if not self.dataset_manager.is_accessible(data_assoc.dataset.dataset, trans.user): raise exceptions.ItemAccessibilityException("You are not allowed to rerun this job.") + trans.sa_session.refresh(job) return job @expose_api From 02f283e004dfc66035819fac4e52b43c9182d117 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Sun, 30 Jun 2019 19:38:29 +0200 Subject: [PATCH 055/141] Include workdir path when reading env var from file `env_setup_commands` runs before `cd $working_directory` in the job file template, so just using the relative path fails with ``` Traceback (most recent call last): File "_evaluate_expression_.py", line 1, in from galaxy_ext.expressions.handle_job import run; run() File "/opt/galaxy/server/lib/galaxy_ext/expressions/handle_job.py", line 31, in run with open(environment_path, "r") as f: IOError: [Errno 2] No such file or directory: '' cat: tmp6CL_1e: No such file or directory ``` --- .../jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh | 1 + lib/galaxy/tools/evaluation.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh b/lib/galaxy/jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh index 81107c568b5..a588fb12b5a 100644 --- a/lib/galaxy/jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh +++ b/lib/galaxy/jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh @@ -4,6 +4,7 @@ $headers _galaxy_setup_environment() { local _use_framework_galaxy="$1" + _GALAXY_JOB_DIR="$working_directory" _GALAXY_JOB_HOME_DIR="$working_directory/home" _GALAXY_JOB_TMP_DIR=$tmp_dir_creation_statement $env_setup_commands diff --git a/lib/galaxy/tools/evaluation.py b/lib/galaxy/tools/evaluation.py index 162f0c906d1..d71602805ff 100644 --- a/lib/galaxy/tools/evaluation.py +++ b/lib/galaxy/tools/evaluation.py @@ -521,7 +521,8 @@ class ToolEvaluator(object): os.close(fd) self.__write_workdir_file(config_filename, environment_variable_template, param_dict) config_file_basename = os.path.basename(config_filename) - environment_variable["value"] = "`cat %s`" % config_file_basename + # environment setup in job file template happens before `cd $working_directory` + environment_variable["value"] = '`cat "$_GALAXY_JOB_DIR/%s"`' % config_file_basename environment_variable["raw"] = True environment_variables.append(environment_variable) From 6cff1686bda47e0bbaf33810af43663d4405509f Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 1 Jul 2019 02:10:05 +0200 Subject: [PATCH 056/141] Fix regex rule count --- client/galaxy/scripts/mvc/rules/rule-definitions.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/galaxy/scripts/mvc/rules/rule-definitions.js b/client/galaxy/scripts/mvc/rules/rule-definitions.js index e6fc8154036..4561660c0fa 100644 --- a/client/galaxy/scripts/mvc/rules/rule-definitions.js +++ b/client/galaxy/scripts/mvc/rules/rule-definitions.js @@ -253,7 +253,7 @@ const RULES = { component.addColumnRegexTarget = rule.target_column; component.addColumnRegexExpression = rule.expression; component.addColumnRegexReplacement = rule.replacement; - component.addColumnRegexGroupCount = rule.group_count; + component.addColumnRegexGroupCount = parseInt(rule.group_count); } let addColumnRegexType = "global"; if (component.addColumnRegexGroupCount) { From fc2a7d197b472d9e559b91261c5e8be78d8281e9 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Tue, 2 Jul 2019 16:25:45 +0200 Subject: [PATCH 057/141] Specify radix in parseInt to avoid surprises Thanks @dannon! --- .../scripts/mvc/rules/rule-definitions.js | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/client/galaxy/scripts/mvc/rules/rule-definitions.js b/client/galaxy/scripts/mvc/rules/rule-definitions.js index 4561660c0fa..a6f7f65e4d7 100644 --- a/client/galaxy/scripts/mvc/rules/rule-definitions.js +++ b/client/galaxy/scripts/mvc/rules/rule-definitions.js @@ -42,7 +42,7 @@ const applyRegex = function(regex, target, data, replacement, groupCount) { return null; } if (!replacement) { - groupCount = groupCount && parseInt(groupCount); + groupCount = groupCount && parseInt(groupCount, 10); if (groupCount) { if (match.length != groupCount + 1) { failedCount++; @@ -108,7 +108,7 @@ const RULES = { } }, save: (component, rule) => { - rule.start = parseInt(component.addColumnRownumStart); + rule.start = parseInt(component.addColumnRownumStart, 10); }, apply: (rule, data, sources, columns) => { let rownum = rule.start; @@ -169,7 +169,7 @@ const RULES = { const ruleValue = rule.value; let newRow; if (ruleValue.indexOf("identifier") == 0) { - const identifierIndex = parseInt(ruleValue.substring("identifier".length)); + const identifierIndex = parseInt(ruleValue.substring("identifier".length), 10); newRow = (row, index) => { const newRow = row.slice(); newRow.push(sources[index]["identifiers"][identifierIndex]); @@ -347,7 +347,7 @@ const RULES = { }, save: (component, rule) => { rule.target_column = component.addColumnSubstrTarget; - rule.length = parseInt(component.addColumnSubstrLength); + rule.length = parseInt(component.addColumnSubstrLength, 10); rule.substr_type = component.addColumnSubstrType; }, apply: (rule, data, sources, columns) => { @@ -403,7 +403,7 @@ const RULES = { function newRow(row) { const newRow = []; for (const index in row) { - if (targets.indexOf(parseInt(index)) == -1) { + if (targets.indexOf(parseInt(index, 10)) == -1) { newRow.push(row[index]); } } @@ -448,7 +448,7 @@ const RULES = { const target = rule.target_column; const invert = rule.invert; const filterFunction = function(el, index) { - const row = data[parseInt(index)]; + const row = data[parseInt(index, 10)]; return regExp.exec(row[target]) ? !invert : invert; }; sources = sources.filter(filterFunction); @@ -477,13 +477,13 @@ const RULES = { component.addFilterCountWhich = "first"; component.addFilterCountInvert = false; } else { - component.addFilterCountN = parseInt(rule.count); + component.addFilterCountN = parseInt(rule.count, 10); component.addFilterCountWhich = rule.which; component.addFilterCountInvert = rule.inverse; } }, save: (component, rule) => { - rule.count = parseInt(component.addFilterCountN); + rule.count = parseInt(component.addFilterCountN, 10); rule.which = component.addFilterCountWhich; rule.invert = component.addFilterCountInvert; }, @@ -528,7 +528,7 @@ const RULES = { const target = rule.target_column; const invert = rule.invert; const filterFunction = function(el, index) { - const row = data[parseInt(index)]; + const row = data[parseInt(index, 10)]; return row[target].length ? !invert : invert; }; sources = sources.filter(filterFunction); @@ -562,7 +562,7 @@ const RULES = { const invert = rule.invert; const value = rule.value; const filterFunction = function(el, index) { - const row = data[parseInt(index)]; + const row = data[parseInt(index, 10)]; return row[target] == value ? !invert : invert; }; sources = sources.filter(filterFunction); @@ -598,7 +598,7 @@ const RULES = { const compare_type = rule.compare_type; const value = rule.value; const filterFunction = function(el, index) { - const row = data[parseInt(index)]; + const row = data[parseInt(index, 10)]; const targetValue = parseFloat(row[target]); let matches; if (compare_type == "less_than") { @@ -730,7 +730,7 @@ const RULES = { const newRow0 = [], newRow1 = []; for (let index in row) { - index = parseInt(index); + index = parseInt(index, 10); if (targets0.indexOf(index) > -1) { newRow0.push(row[index]); } else if (targets1.indexOf(index) > -1) { From 4b8e0daaf46b71cf0c3837bea0d04dd089d3bc33 Mon Sep 17 00:00:00 2001 From: guerler Date: Wed, 3 Jul 2019 10:43:31 +0200 Subject: [PATCH 058/141] Fix and unify search bar handling --- .../galaxy/scripts/components/PluginList.vue | 18 ++++--- client/galaxy/scripts/mvc/tool/tools.js | 12 ++--- client/galaxy/style/scss/base.scss | 49 ------------------- client/galaxy/style/scss/history.scss | 15 ------ client/galaxy/style/scss/theme/blue.scss | 2 + client/galaxy/style/scss/ui/search-input.scss | 36 +++++++++----- 6 files changed, 39 insertions(+), 93 deletions(-) diff --git a/client/galaxy/scripts/components/PluginList.vue b/client/galaxy/scripts/components/PluginList.vue index 7acf1ff0533..e6ba960e8e8 100644 --- a/client/galaxy/scripts/components/PluginList.vue +++ b/client/galaxy/scripts/components/PluginList.vue @@ -2,14 +2,16 @@
{{ error }}
- +
+ +
diff --git a/client/galaxy/scripts/mvc/tool/tools.js b/client/galaxy/scripts/mvc/tool/tools.js index d1831083fb9..ddda58bc452 100644 --- a/client/galaxy/scripts/mvc/tool/tools.js +++ b/client/galaxy/scripts/mvc/tool/tools.js @@ -347,9 +347,7 @@ var ToolSearch = Backbone.Model.extend({ SEARCH_RESERVED_TERMS_FAVORITES: ["#favs", "#favorites", "#favourites"], defaults: { - search_hint_string: "search tools", min_chars_for_search: 3, - clear_btn_url: "", visible: true, query: "", results: null, @@ -635,7 +633,7 @@ var ToolSectionView = BaseView.extend({ var ToolSearchView = Backbone.View.extend({ tagName: "div", id: "tool-search", - className: "bar", + className: "search-input", events: { click: "focus_and_select", @@ -649,7 +647,6 @@ var ToolSearchView = Backbone.View.extend({ if (!this.model.is_visible()) { this.$el.hide(); } - this.$el.find("[title]").tooltip(); return this; }, @@ -774,10 +771,9 @@ var templates = { // the search bar at the top of the tool panel tool_search: _.template( ` - - - ` + placeholder="search tools" autocomplete="off" type="text" /> + + ` ), // the category level container in the tool panel (e.g. 'Get Data', 'Text Manipulation') diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index cb5b7a3560c..b61022c664e 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -735,55 +735,6 @@ button { } } -.search-query { - display: inline-block; - padding: 4px; - font-size: $font-size-base; - line-height: $line-height-base; - color: $text-color; - border: 1px solid $border-default-color; - padding-left: 14px !important; - padding-right: 14px; - margin-bottom: 0; - @include border-radius(14px); - max-width: auto; - background: $brand-white; -} -.search-query:focus { - border-color: darken(rgba(82, 168, 236, 0.8), 15%); - $shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); - @include box-shadow($shadow); - outline: 0; - outline: thin dotted \9; /* IE6-8 */ -} - -.search-spinner { - position: absolute; - display: none; - right: 6px; - top: 5px; - font-size: 1.4em; - color: #888; -} - -#tool-search { - position: relative; - @extend .mb-2; - #search-clear-btn { - position: absolute; - right: 6px; - top: 6px; - display: block; - font-size: 1.4em !important; - text-decoration: none; - color: #888; - @extend .fa-icon; - &:before { - content: "\f057"; - } - } -} - // Messages .errormessagelarge, diff --git a/client/galaxy/style/scss/history.scss b/client/galaxy/style/scss/history.scss index 2a569d750e7..74132b79b41 100644 --- a/client/galaxy/style/scss/history.scss +++ b/client/galaxy/style/scss/history.scss @@ -470,21 +470,6 @@ .btn { @extend .btn-sm; } - .search-control { - display: inline-block; - width: 40%; - - .search-clear, - .search-loading { - margin-top: -22px; - } - } - input.search-query { - font-size: 90%; - height: 21px; - line-height: normal; - padding: 2px 2px 1px 2px; - } .open-more-options { padding: 2px 6px 2px 6px; font-size: 100%; diff --git a/client/galaxy/style/scss/theme/blue.scss b/client/galaxy/style/scss/theme/blue.scss index de520a37669..a6d2e196b6d 100644 --- a/client/galaxy/style/scss/theme/blue.scss +++ b/client/galaxy/style/scss/theme/blue.scss @@ -114,7 +114,9 @@ $layout-border: none; // Borders $border-radius-base: 0.1875rem; $border-radius-large: 0.3125rem; +$border-radius-extralarge: 1rem; $border-default-color: $gray-400; +$border-default: 1px solid $border-default-color; // Buttons $btn-default-color: $text-color; diff --git a/client/galaxy/style/scss/ui/search-input.scss b/client/galaxy/style/scss/ui/search-input.scss index 71b0d9290ca..73b3ae01d3e 100644 --- a/client/galaxy/style/scss/ui/search-input.scss +++ b/client/galaxy/style/scss/ui/search-input.scss @@ -1,26 +1,36 @@ -// search bar, see: scripts/jq-plugins/ui/search-input.js .search-input { - .search-query { - width: 100%; - padding-right: 24px; - } .search-clear, .search-loading { - // it places the icons on the right of the bar (and puts the lotion on its skin) + @extend .mr-2; position: relative; display: inline-block; - float: right; margin-top: -25px; - margin-right: 4px; - font-size: 1.4em; - line-height: 23px; - color: grey; + color: $gray-600; } - .search-clear:hover { - color: $link-color; + color: $brand-info; cursor: pointer; } + .search-loading { + display: none; + } + .search-query { + @extend .px-3; + @extend .py-1; + width: 100%; + display: inline-block; + font-size: $font-size-base; + line-height: $line-height-base; + color: $text-color; + border: $border-default; + @include border-radius($border-radius-extralarge); + max-width: auto; + background: $brand-white; + } + .search-query:focus { + border-color: $brand-info; + outline: 0; + } } From 292072dbdce23fe2d8d3c60829d8d3cfb6711196 Mon Sep 17 00:00:00 2001 From: guerler Date: Wed, 3 Jul 2019 11:42:57 +0200 Subject: [PATCH 059/141] Align icon color to previous grade, fix margin --- client/galaxy/style/scss/ui/search-input.scss | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/galaxy/style/scss/ui/search-input.scss b/client/galaxy/style/scss/ui/search-input.scss index 73b3ae01d3e..1b35779a931 100644 --- a/client/galaxy/style/scss/ui/search-input.scss +++ b/client/galaxy/style/scss/ui/search-input.scss @@ -1,4 +1,5 @@ .search-input { + @extend .mb-2; .search-clear, .search-loading { @extend .mr-2; @@ -7,7 +8,7 @@ float: right; margin-top: -25px; font-size: 1.4em; - color: $gray-600; + color: $gray-500; } .search-clear:hover { color: $brand-info; From be10a32aa97215a1e4cbff9737b305abc473fd0d Mon Sep 17 00:00:00 2001 From: dglaetzer <35349535+dglaetzer@users.noreply.github.com> Date: Fri, 5 Jul 2019 11:10:07 +0200 Subject: [PATCH 060/141] run tests for tool_util --- packages/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test.sh b/packages/test.sh index aacfab67a3e..2079be976ca 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -25,7 +25,7 @@ PACKAGE_DIRS=( ) # containers has no tests, tool_util not yet working 100%, # data has many problems quota, tool shed install database, etc.. -RUN_TESTS=(1 1 1 0 0 0 0 1) +RUN_TESTS=(1 1 1 0 1 0 0 1) for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do package_dir=${PACKAGE_DIRS[$i]} From e2cd6e768574e4274d00889af5789549a2727dfb Mon Sep 17 00:00:00 2001 From: guerler Date: Fri, 5 Jul 2019 13:48:06 +0200 Subject: [PATCH 061/141] Adjust search input in paired collection builder --- .../mvc/collection/list-of-pairs-collection-creator.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js b/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js index 7ff9a260697..df6cab76641 100644 --- a/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js +++ b/client/galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js @@ -1569,7 +1569,7 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) "", '', "", - '
', + '
', '', @@ -1597,7 +1597,7 @@ var PairedCollectionCreator = Backbone.View.extend(baseMVC.LoggableMixin) "", '', "
", - '
', + '
', '', From 9cf0924578394ce85460a705b035226c5adb5c99 Mon Sep 17 00:00:00 2001 From: dglaetzer <35349535+dglaetzer@users.noreply.github.com> Date: Fri, 5 Jul 2019 14:08:09 +0200 Subject: [PATCH 062/141] Update test.sh --- packages/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test.sh b/packages/test.sh index 2079be976ca..34024fbe642 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -25,7 +25,7 @@ PACKAGE_DIRS=( ) # containers has no tests, tool_util not yet working 100%, # data has many problems quota, tool shed install database, etc.. -RUN_TESTS=(1 1 1 0 1 0 0 1) +RUN_TESTS=(0 0 0 0 0 1 0) for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do package_dir=${PACKAGE_DIRS[$i]} From e7600bdf0c4b2feeb467a3c19ca685cf359f42b5 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 5 Jul 2019 18:15:20 +0200 Subject: [PATCH 063/141] Fix Python 2.7 lint errors --- lib/galaxy/auth/__init__.py | 3 +-- lib/galaxy/auth/util.py | 5 +++-- lib/galaxy/config/__init__.py | 18 +++++++++--------- lib/galaxy/config/script.py | 2 +- lib/galaxy/model/orm/scripts.py | 2 +- lib/galaxy/tools/special_tools.py | 3 ++- lib/galaxy/web/framework/webapp.py | 2 +- lib/tool_shed/galaxy_install/migrate/check.py | 2 +- .../galaxy_install/tool_migration_manager.py | 3 +-- lib/tool_shed/util/common_util.py | 4 ++-- setup.py | 2 +- 11 files changed, 23 insertions(+), 23 deletions(-) diff --git a/lib/galaxy/auth/__init__.py b/lib/galaxy/auth/__init__.py index 843f4d761e6..470f7667fef 100644 --- a/lib/galaxy/auth/__init__.py +++ b/lib/galaxy/auth/__init__.py @@ -1,7 +1,6 @@ """ Contains implementations of the authentication logic. """ -import errno import logging from galaxy.auth.util import get_authenticators, parse_auth_results @@ -16,7 +15,7 @@ class AuthManager(object): def __init__(self, app): self.__app = app self.redact_username_in_logs = app.config.redact_username_in_logs - self.authenticators = get_authenticators(app.config.auth_config_file) + self.authenticators = get_authenticators(app.config.auth_config_file, app.config.auth_config_file_set) def check_registration_allowed(self, email, username, password): """Checks if the provided email/username is allowed to register.""" diff --git a/lib/galaxy/auth/util.py b/lib/galaxy/auth/util.py index 28b39400190..86bec13c692 100644 --- a/lib/galaxy/auth/util.py +++ b/lib/galaxy/auth/util.py @@ -1,3 +1,4 @@ +import errno import logging import xml.etree.ElementTree from collections import namedtuple @@ -24,14 +25,14 @@ AUTH_CONF_XML = """ Authenticator = namedtuple('Authenticator', ['plugin', 'filter_template', 'options']) -def get_authenticators(auth_config_file): +def get_authenticators(auth_config_file, auth_config_file_set): __plugins_dict = plugin_config.plugins_dict(galaxy.auth.providers, 'plugin_type') # parse XML try: ct = xml.etree.ElementTree.parse(auth_config_file) conf_root = ct.getroot() except (OSError, IOError) as exc: - if exc.errno == errno.ENOENT and not app.config.auth_config_file_set: + if exc.errno == errno.ENOENT and not auth_config_file_set: conf_root = xml.etree.ElementTree.fromstring(AUTH_CONF_XML) else: raise diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 293ba1e4306..7e996d8f2a7 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -217,18 +217,18 @@ class BaseAppConfiguration(object): def _parse_config_file_options(self, defaults, listify_defaults, config_kwargs): for var, defaults in defaults.items(): - if config_kwargs.get( var, None ) is not None: - path = config_kwargs.get( var ) - setattr( self, var + '_set', True ) + if config_kwargs.get(var, None) is not None: + path = config_kwargs.get(var) + setattr(self, var + '_set', True) else: for default in defaults: - if os.path.exists( resolve_path( default, self.root ) ): + if os.path.exists(resolve_path(default, self.root)): path = default break else: path = defaults[-1] - setattr( self, var + '_set', False ) - setattr( self, var, resolve_path( path, self.root ) ) + setattr(self, var + '_set', False) + setattr(self, var, resolve_path(path, self.root)) for var, defaults in listify_defaults.items(): paths = [] @@ -326,7 +326,7 @@ class GalaxyAppConfiguration(BaseAppConfiguration): self.oidc = [] # The value of migrated_tools_config is the file reserved for containing only those tools that have been eliminated from the distribution # and moved to the tool shed. It is created on demand. - self.integrated_tool_panel_config = resolve_path(kwargs.get('integrated_tool_panel_config', 'integrated_tool_panel.xml' ), self.mutable_config_dir) + self.integrated_tool_panel_config = resolve_path(kwargs.get('integrated_tool_panel_config', 'integrated_tool_panel.xml'), self.mutable_config_dir) integrated_tool_panel_tracking_directory = kwargs.get('integrated_tool_panel_tracking_directory', None) if integrated_tool_panel_tracking_directory: self.integrated_tool_panel_tracking_directory = resolve_path(integrated_tool_panel_tracking_directory, self.root) @@ -603,7 +603,7 @@ class GalaxyAppConfiguration(BaseAppConfiguration): self.tool_test_data_directories = kwargs.get("tool_test_data_directories", default_tool_test_data_directories) # Location for tool dependencies. use_tool_dependencies, tool_dependency_dir, use_cached_dependency_manager, tool_dependency_cache_dir, precache_dependencies = \ - parse_dependency_options(kwargs, self.root, self.dependency_resolvers_config_file) + parse_dependency_options(kwargs, self.data_dir, self.dependency_resolvers_config_file) self.use_tool_dependencies = use_tool_dependencies self.tool_dependency_dir = tool_dependency_dir self.use_cached_dependency_manager = use_cached_dependency_manager @@ -1064,7 +1064,7 @@ def parse_dependency_options(kwargs, root, dependency_resolvers_config_file): tool_dependency_dir = None if tool_dependency_dir is not None: - tool_dependency_dir = resolve_path(tool_dependency_dir, self.data_dir) + tool_dependency_dir = resolve_path(tool_dependency_dir, root) # Setting the following flag to true will ultimately cause tool dependencies # to be located in the shell environment and used by the job that is executing # the tool. diff --git a/lib/galaxy/config/script.py b/lib/galaxy/config/script.py index 7ac94097ab7..6cf211a890d 100644 --- a/lib/galaxy/config/script.py +++ b/lib/galaxy/config/script.py @@ -166,7 +166,7 @@ def _handle_galaxy_ini(args, config_dir, data_dir): galaxy_config_template = [] with open(GALAXY_CONFIG_TEMPLATE_FILE) as fh: - for line in [ l.rstrip('\n') for l in fh.readlines() ]: + for line in [l.rstrip('\n') for l in fh.readlines()]: for k, v in GALAXY_CONFIG_SUBSTITUTIONS.items(): if line == k: line = v diff --git a/lib/galaxy/model/orm/scripts.py b/lib/galaxy/model/orm/scripts.py index 62a17b22de4..b519897fd48 100644 --- a/lib/galaxy/model/orm/scripts.py +++ b/lib/galaxy/model/orm/scripts.py @@ -9,7 +9,7 @@ import sys from migrate.versioning.shell import main as migrate_main from galaxy.util.path import get_ext -from galaxy.util.properties import find_config_file, get_data_dir, load_app_properties, running_from_source +from galaxy.util.properties import find_config_file, get_data_dir, load_app_properties from galaxy.util.script import populate_config_args diff --git a/lib/galaxy/tools/special_tools.py b/lib/galaxy/tools/special_tools.py index 92f8a21830f..5665118bce2 100644 --- a/lib/galaxy/tools/special_tools.py +++ b/lib/galaxy/tools/special_tools.py @@ -1,5 +1,6 @@ -import os import logging +import os + log = logging.getLogger(__name__) SPECIAL_TOOLS = { diff --git a/lib/galaxy/web/framework/webapp.py b/lib/galaxy/web/framework/webapp.py index a0fca708765..5f42693649a 100644 --- a/lib/galaxy/web/framework/webapp.py +++ b/lib/galaxy/web/framework/webapp.py @@ -968,7 +968,7 @@ class GalaxyWebTransaction(base.DefaultWebTransaction, def default_url_path(path): - return os.path.abspath(os.path.join(os.path.dirname( __file__ ), path)) + return os.path.abspath(os.path.join(os.path.dirname(__file__), path)) def build_native_uwsgi_app(paste_factory, config_section): diff --git a/lib/tool_shed/galaxy_install/migrate/check.py b/lib/tool_shed/galaxy_install/migrate/check.py index 1afba56b375..f7a9c8747a6 100644 --- a/lib/tool_shed/galaxy_install/migrate/check.py +++ b/lib/tool_shed/galaxy_install/migrate/check.py @@ -57,7 +57,7 @@ def verify_tools(app, url, galaxy_config_file=None, engine_options={}): if tool_shed_accessible: # Automatically update the value of the migrate_tools.version database table column. # FIXME: this doesn't seem right. - manage_tools = os.path.abspath(os.path.join(os.path.dirname( __file__ ), 'scripts', 'manage_tools.py')) + manage_tools = os.path.abspath(os.path.join(os.path.dirname(__file__), 'scripts', 'manage_tools.py')) cmd = [executable, manage_tools, 'upgrade', 'tools'] if galaxy_config_file: cmd[2:2] = ['-c', galaxy_config_file] diff --git a/lib/tool_shed/galaxy_install/tool_migration_manager.py b/lib/tool_shed/galaxy_install/tool_migration_manager.py index 91455a1c5d0..5545b583d67 100644 --- a/lib/tool_shed/galaxy_install/tool_migration_manager.py +++ b/lib/tool_shed/galaxy_install/tool_migration_manager.py @@ -3,7 +3,6 @@ Manage automatic installation of tools configured in the xxx.xml files in ~/scri All of the tools were at some point included in the Galaxy distribution, but are now hosted in the main Galaxy tool shed. """ import errno -import json import logging import os import shutil @@ -72,7 +71,7 @@ class ToolMigrationManager(object): except (IOError, OSError) as exc: if exc.errno == errno.ENOENT: with open(migrated_tools_config, 'w') as fh: - fh.write( MIGRATED_TOOLS_CONF_XML.format(shed_tools_dir=self.app.config.shed_tools_dir)) + fh.write(MIGRATED_TOOLS_CONF_XML.format(shed_tools_dir=self.app.config.shed_tools_dir)) tree, error_message = xml_util.parse_xml(migrated_tools_config) else: raise diff --git a/lib/tool_shed/util/common_util.py b/lib/tool_shed/util/common_util.py index e61c2b5972e..7caeb00f18b 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/tool_shed/util/common_util.py @@ -15,7 +15,7 @@ log = logging.getLogger(__name__) REPOSITORY_OWNER = 'devteam' TOOL_MIGRATION_SCRIPTS_DIR = os.path.abspath(os.path.join( os.path.dirname(__file__), os.pardir, 'galaxy_install', 'migrate', 'scripts')) -TOOL_MIGRATION_VERSIONS_DIR = os.path.abspath( os.path.join( +TOOL_MIGRATION_VERSIONS_DIR = os.path.abspath(os.path.join( os.path.dirname(__file__), os.pardir, 'galaxy_install', 'migrate', 'versions')) @@ -30,7 +30,7 @@ def accumulate_tool_dependencies(tool_shed_accessible, tool_dependencies, all_to def check_for_missing_tools(app, tool_panel_configs, latest_tool_migration_script_number): # Get the 000x_tools.xml file associated with the current migrate_tools version number. - tools_xml_file_path = os.path.abspath(os.path.join(os.path.dirname( __file__ ), + tools_xml_file_path = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'galaxy_install', 'migrate', 'scripts', '%04d_tools.xml' % latest_tool_migration_script_number)) diff --git a/setup.py b/setup.py index b879b8034eb..9256aea4117 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup, find_packages +from setuptools import find_packages, setup readme = open('README.rst').read() From 45959399dfc6f0d0b6a4677568e6121d2247db13 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Fri, 5 Jul 2019 18:30:43 +0200 Subject: [PATCH 064/141] Fix requirements symlink clobbered in merge --- .../dependencies/pinned-requirements.txt | 77 +------------------ 1 file changed, 1 insertion(+), 76 deletions(-) mode change 100644 => 120000 lib/galaxy/dependencies/pinned-requirements.txt diff --git a/lib/galaxy/dependencies/pinned-requirements.txt b/lib/galaxy/dependencies/pinned-requirements.txt deleted file mode 100644 index 3b05b8d96fa..00000000000 --- a/lib/galaxy/dependencies/pinned-requirements.txt +++ /dev/null @@ -1,76 +0,0 @@ -# Warning: If you are modifying this file, please ensure it still parses -# properly in setup.py - -# Install dependencies from Galaxy's wheels server ---index-url https://wheels.galaxyproject.org/simple/ - -# packages with C extensions -bx-python==0.7.3 -MarkupSafe==0.23 -PyYAML==3.11 -SQLAlchemy==1.0.8 -mercurial==3.7.3 -numpy==1.9.2 -pycrypto==2.6.1 - -# Install python_lzo if you want to support indexed access to lzo-compressed -# locally cached maf files via bx-python -#python_lzo==1.8 - -# pure Python packages -Paste==2.0.2 -PasteDeploy==1.5.2 -docutils==0.12 -wchartype==0.1 -repoze.lru==0.6 -Routes==2.2 -WebOb==1.4.1 -WebHelpers==1.3 -Mako==1.0.2 -pytz==2015.4 -Babel==2.0 -Beaker==1.7.0 -dictobj==0.3.1 -nose==1.3.7 -Parsley==1.3 -six==1.9.0 -Whoosh==2.7.4 - -# Cheetah and dependencies -Cheetah==2.4.4 -Markdown==2.6.3 - -# BioBlend and dependencies -bioblend==0.7.0 -boto==2.38.0 -requests==2.8.1 -requests-toolbelt==0.4.0 - -# kombu and dependencies -kombu==3.0.30 -amqp==1.4.8 -anyjson==0.3.3 - -# Pulsar requirements -psutil==4.1.0 -pulsar-galaxy-lib==0.7.0.dev5 - -# sqlalchemy-migrate and dependencies -sqlalchemy-migrate==0.10.0 -decorator==4.0.2 -Tempita==0.5.3dev -sqlparse==0.1.16 -pbr==1.8.0 - -# svgwrite and dependencies -svgwrite==1.1.6 -pyparsing==2.1.1 - -# Fabric and dependencies -Fabric==1.10.2 -paramiko==1.15.2 -ecdsa==0.13 - -# Flexible BAM index naming -pysam==0.8.4+gx1 - diff --git a/lib/galaxy/dependencies/pinned-requirements.txt b/lib/galaxy/dependencies/pinned-requirements.txt new file mode 120000 index 00000000000..26ec2b5e875 --- /dev/null +++ b/lib/galaxy/dependencies/pinned-requirements.txt @@ -0,0 +1 @@ +pipfiles/default/pinned-requirements.txt \ No newline at end of file From 19b34f600dff57c94e4b8247c9970c533ceb01e9 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sat, 6 Jul 2019 12:01:36 +0200 Subject: [PATCH 065/141] Config file fixes for installable Galaxy --- lib/galaxy/config/__init__.py | 83 ++++--------------- .../tool_util/deps/resolvers/__init__.py | 10 ++- setup.py | 4 +- 3 files changed, 25 insertions(+), 72 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 7e996d8f2a7..9c84112a24b 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -45,50 +45,6 @@ from ..version import VERSION_MAJOR log = logging.getLogger(__name__) - -PATH_DEFAULTS = dict( - auth_config_file=['config/auth_conf.xml', 'config/auth_conf.xml.sample'], - data_manager_config_file=['config/data_manager_conf.xml', 'data_manager_conf.xml', 'config/data_manager_conf.xml.sample'], - datatypes_config_file=['config/datatypes_conf.xml', 'datatypes_conf.xml', 'config/datatypes_conf.xml.sample'], - build_sites_config_file=['config/build_sites.yml', 'config/build_sites.yml.sample'], - job_config_file=['config/job_conf.xml', 'job_conf.xml'], - tool_destinations_config_file=['config/tool_destinations.yml', 'config/tool_destinations.yml.sample'], - job_metrics_config_file=['config/job_metrics_conf.xml', 'job_metrics_conf.xml', 'config/job_metrics_conf.xml.sample'], - error_report_file=['config/error_report.yml', 'config/error_report.yml.sample'], - oidc_config_file=['config/oidc_config.yml', 'config/oidc_config.yml.sample'], - oidc_backends_config_file=['config/oidc_backends_config.yml', 'config/oidc_backends_config.yml.sample'], - dependency_resolvers_config_file=['config/dependency_resolvers_conf.xml', 'dependency_resolvers_conf.xml', None], - job_resource_params_file=['config/job_resource_params_conf.xml', 'job_resource_params_conf.xml'], - workflow_resource_params_file=['config/workflow_resource_params_conf.xml', 'workflow_resource_params_conf.xml'], - migrated_tools_config=['migrated_tools_conf.xml', 'config/migrated_tools_conf.xml'], - object_store_config_file=['config/object_store_conf.xml', 'object_store_conf.xml'], - shed_data_manager_config_file=['shed_data_manager_conf.xml', 'config/shed_data_manager_conf.xml'], - shed_tool_data_table_config=['shed_tool_data_table_conf.xml', 'config/shed_tool_data_table_conf.xml'], - tool_sheds_config_file=['config/tool_sheds_conf.xml', 'tool_sheds_conf.xml', 'config/tool_sheds_conf.xml.sample'], - workflow_schedulers_config_file=['config/workflow_schedulers_conf.xml', 'config/workflow_schedulers_conf.xml.sample'], - modules_mapping_files=['config/environment_modules_mapping.yml', 'config/environment_modules_mapping.yml.sample'], - local_conda_mapping_file=['config/local_conda_mapping.yml', 'config/local_conda_mapping.yml.sample'], - containers_config_file=['config/containers_conf.yml'], -) - -PATH_LIST_DEFAULTS = dict( - tool_data_table_config_path=['config/tool_data_table_conf.xml', 'tool_data_table_conf.xml', 'config/tool_data_table_conf.xml.sample'], - # rationale: - # [0]: user has explicitly created config/tool_conf.xml but did not - # move their existing shed_tool_conf.xml, don't use - # config/shed_tool_conf.xml, which is probably the empty - # version copied from the sample, or else their shed tools - # will disappear - # [1]: user has created config/tool_conf.xml and, having passed - # [0], probably moved their shed_tool_conf.xml as well - # [2]: user has done nothing, use the old files - # [3]: fresh install - tool_config_file=['config/tool_conf.xml,shed_tool_conf.xml', - 'config/tool_conf.xml,config/shed_tool_conf.xml', - 'tool_conf.xml,shed_tool_conf.xml', - 'config/tool_conf.xml.sample,config/shed_tool_conf.xml'] -) - LOGGING_CONFIG_DEFAULT = { 'version': 1, 'root': { @@ -141,26 +97,6 @@ def resolve_path(path, root): return path -def find_path(kwargs, var, root): - """Find a configuration path that may exist at different defaults.""" - defaults = PATH_DEFAULTS[var] - - if kwargs.get(var, None) is not None: - path = kwargs.get(var) - else: - for default in defaults: - if default is None: - # if None is the final default - just return that. - return None - if os.path.exists(resolve_path(default, root)): - path = default - break - else: - path = defaults[-1] - - return resolve_path(path, root) - - def find_root(kwargs): root = kwargs.get('root_dir', '.') return root @@ -195,7 +131,7 @@ class BaseAppConfiguration(object): if running_from_source: if self.data_dir is None: self.data_dir = os.path.join(self.root, 'database') - self.mutable_config_dir = self.config_dir + self.mutable_config_dir = self.config_dir # TODO: do we still need to support ../shed_tools? self.shed_tools_dir = "database/shed_tools" else: @@ -205,6 +141,7 @@ class BaseAppConfiguration(object): self.shed_tools_dir = os.path.join(self.data_dir, 'shed_tools') log.debug("Configuration directory is %s", self.config_dir) log.debug("Data directory is %s", self.data_dir) + log.debug("Mutable config directory is %s", self.mutable_config_dir) def _in_mutable_config_dir(self, path): return os.path.join(self.mutable_config_dir, path) @@ -890,20 +827,28 @@ class GalaxyAppConfiguration(BaseAppConfiguration): """ defaults = dict( auth_config_file=[self._in_config_dir('auth_conf.xml')], + build_sites_config_file=[self._in_config_dir('build_sites.yml')], + containers_config_file=[self._in_config_dir('containers_conf.yml')], data_manager_config_file=[self._in_config_dir('data_manager_conf.xml')], datatypes_config_file=[self._in_config_dir('datatypes_conf.xml'), self._in_sample_dir('datatypes_conf.xml.sample')], - external_service_type_config_file=[self._in_config_dir('external_service_types_conf.xml')], + dependency_resolvers_config_file=[self._in_config_dir('dependency_resolvers_conf.xml')], + error_report_file=[self._in_config_dir('error_report.yml')], job_config_file=[self._in_config_dir('job_conf.xml')], job_metrics_config_file=[self._in_config_dir('job_metrics_conf.xml')], - dependency_resolvers_config_file=[self._in_config_dir('dependency_resolvers_conf.xml')], job_resource_params_file=[self._in_config_dir('job_resource_params_conf.xml')], + local_conda_mapping_file=[self._in_config_dir('local_conda_mapping.yml')], + migrated_tools_config=[self._in_config_dir('migrated_tools_conf.xml')], + modules_mapping_files=[self._in_config_dir('environment_modules_mapping.yml')], object_store_config_file=[self._in_config_dir('object_store_conf.xml')], - openid_config_file=[self._in_config_dir('openid_conf.xml')], + oidc_backends_config_file=[self._in_config_dir('config/oidc_backends_config.yml')], + oidc_config_file=[self._in_config_dir('oidc_config.yml')], shed_data_manager_config_file=[self._in_mutable_config_dir('shed_data_manager_conf.xml')], shed_tool_data_table_config=[self._in_mutable_config_dir('shed_tool_data_table_conf.xml')], + tool_destinations_config_file=[self._in_config_dir('config/tool_destinations.yml')], + tool_sheds_config_file=[self._in_config_dir('tool_sheds_conf.xml')], + workflow_resource_params_file=[self._in_config_dir('workflow_resource_params_conf.xml')], workflow_schedulers_config_file=[self._in_config_dir('config/workflow_schedulers_conf.xml')], ) - if running_from_source: listify_defaults = { 'tool_data_table_config_path': ['config/tool_data_table_conf.xml', diff --git a/lib/galaxy/tool_util/deps/resolvers/__init__.py b/lib/galaxy/tool_util/deps/resolvers/__init__.py index 7fd9099acde..5de84139510 100644 --- a/lib/galaxy/tool_util/deps/resolvers/__init__.py +++ b/lib/galaxy/tool_util/deps/resolvers/__init__.py @@ -4,6 +4,7 @@ from abc import ( abstractmethod, abstractproperty, ) +import errno import six import yaml @@ -95,8 +96,13 @@ class MappableDependencyResolver(object): @staticmethod def _mapping_file_to_list(mapping_file): - with open(mapping_file, "r") as f: - raw_mapping = yaml.safe_load(f) or [] + raw_mapping = [] + try: + with open(mapping_file, "r") as f: + raw_mapping = yaml.safe_load(f) + except (OSError, IOError) as exc: + if exc.errno != errno.ENOENT: + raise return map(RequirementMapping.from_dict, raw_mapping) def _expand_mappings(self, requirement): diff --git a/setup.py b/setup.py index 9256aea4117..ece808240a4 100644 --- a/setup.py +++ b/setup.py @@ -50,10 +50,12 @@ setup( 'datatypes/converters/*.xml', 'datatypes/display_applications/configs/*/*.xml', 'datatypes/set_metadata_tool.xml', - 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', + 'jobs/runners/util/job_script/MEMORY_STATEMENT.sh', + 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', 'tools/imp_exp/imp_history_from_archive.xml', 'tools/imp_exp/exp_history_to_archive.xml', + 'tools/data_fetch.xml', 'model/migrate/migrate.cfg', 'dependencies/*.txt', 'util/docutils_template.txt', From 54d2ca01f879b19222edf538205b48e2fc55fa3b Mon Sep 17 00:00:00 2001 From: damian Date: Sat, 6 Jul 2019 13:58:52 +0200 Subject: [PATCH 066/141] moved common_util.py, encoding_util.py and xml_util.py from tool_shed/util to galaxy/util/tool_shed (for data package) --- lib/galaxy/datatypes/converters/maf_to_fasta_converter.py | 2 +- .../datatypes/converters/maf_to_interval_converter.py | 2 +- lib/galaxy/datatypes/test/temp2.txt | 2 ++ lib/galaxy/{tools => datatypes}/util/maf_utilities.py | 0 lib/galaxy/model/migrate/check.py | 1 - lib/galaxy/model/tool_shed_install/__init__.py | 2 +- lib/galaxy/util/tool_shed/__init__.py | 0 .../util => galaxy/util/tool_shed}/common_util.py | 6 ++++-- .../util => galaxy/util/tool_shed}/encoding_util.py | 2 -- lib/{tool_shed/util => galaxy/util/tool_shed}/xml_util.py | 0 packages/data/requirements.txt | 3 +++ packages/data/tests/unittest_utils/__init__.py | 2 +- packages/data/tests/unittest_utils/tempfilecache.py | 2 +- packages/data/tests/unittest_utils/utility.py | 2 +- packages/util/requirements.txt | 2 ++ 15 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 lib/galaxy/datatypes/test/temp2.txt rename lib/galaxy/{tools => datatypes}/util/maf_utilities.py (100%) create mode 100644 lib/galaxy/util/tool_shed/__init__.py rename lib/{tool_shed/util => galaxy/util/tool_shed}/common_util.py (99%) rename lib/{tool_shed/util => galaxy/util/tool_shed}/encoding_util.py (95%) rename lib/{tool_shed/util => galaxy/util/tool_shed}/xml_util.py (100%) diff --git a/lib/galaxy/datatypes/converters/maf_to_fasta_converter.py b/lib/galaxy/datatypes/converters/maf_to_fasta_converter.py index 98e6af16c01..1b893f1ab5d 100644 --- a/lib/galaxy/datatypes/converters/maf_to_fasta_converter.py +++ b/lib/galaxy/datatypes/converters/maf_to_fasta_converter.py @@ -6,7 +6,7 @@ import sys import bx.align.maf -from galaxy.tools.util import maf_utilities +from galaxy.datatypes.util import maf_utilities assert sys.version_info[:2] >= (2, 6) diff --git a/lib/galaxy/datatypes/converters/maf_to_interval_converter.py b/lib/galaxy/datatypes/converters/maf_to_interval_converter.py index 51049ed54c6..a19ab25cabb 100644 --- a/lib/galaxy/datatypes/converters/maf_to_interval_converter.py +++ b/lib/galaxy/datatypes/converters/maf_to_interval_converter.py @@ -6,7 +6,7 @@ import sys import bx.align.maf -from galaxy.tools.util import maf_utilities +from galaxy.datatypes.util import maf_utilities assert sys.version_info[:2] >= (2, 6) diff --git a/lib/galaxy/datatypes/test/temp2.txt b/lib/galaxy/datatypes/test/temp2.txt new file mode 100644 index 00000000000..2c3f803432c --- /dev/null +++ b/lib/galaxy/datatypes/test/temp2.txt @@ -0,0 +1,2 @@ +1 2 +3 4 diff --git a/lib/galaxy/tools/util/maf_utilities.py b/lib/galaxy/datatypes/util/maf_utilities.py similarity index 100% rename from lib/galaxy/tools/util/maf_utilities.py rename to lib/galaxy/datatypes/util/maf_utilities.py diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py index 3fe5f987446..e90576434e6 100644 --- a/lib/galaxy/model/migrate/check.py +++ b/lib/galaxy/model/migrate/check.py @@ -1,6 +1,5 @@ import logging import os.path -import sys from migrate.versioning import repository, schema from sqlalchemy import ( diff --git a/lib/galaxy/model/tool_shed_install/__init__.py b/lib/galaxy/model/tool_shed_install/__init__.py index 4aef91b43b7..668943720a5 100644 --- a/lib/galaxy/model/tool_shed_install/__init__.py +++ b/lib/galaxy/model/tool_shed_install/__init__.py @@ -4,7 +4,7 @@ import os from galaxy.util import asbool from galaxy.util.bunch import Bunch from galaxy.util.dictifiable import Dictifiable -from tool_shed.util import common_util +from galaxy.util.tool_shed import common_util log = logging.getLogger(__name__) diff --git a/lib/galaxy/util/tool_shed/__init__.py b/lib/galaxy/util/tool_shed/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/tool_shed/util/common_util.py b/lib/galaxy/util/tool_shed/common_util.py similarity index 99% rename from lib/tool_shed/util/common_util.py rename to lib/galaxy/util/tool_shed/common_util.py index 8f5686197a2..84bb1182489 100644 --- a/lib/tool_shed/util/common_util.py +++ b/lib/galaxy/util/tool_shed/common_util.py @@ -1,13 +1,15 @@ import json import logging import os +import sys + +from routes import url_for from six.moves.urllib.parse import urljoin from galaxy import util from galaxy.util.odict import odict -from galaxy.web import url_for -from tool_shed.util import encoding_util, xml_util +from galaxy.util.tool_shed import encoding_util, xml_util log = logging.getLogger(__name__) diff --git a/lib/tool_shed/util/encoding_util.py b/lib/galaxy/util/tool_shed/encoding_util.py similarity index 95% rename from lib/tool_shed/util/encoding_util.py rename to lib/galaxy/util/tool_shed/encoding_util.py index f5bb2ff6441..57c1a11c8a7 100644 --- a/lib/tool_shed/util/encoding_util.py +++ b/lib/galaxy/util/tool_shed/encoding_util.py @@ -1,6 +1,5 @@ import binascii import json -import logging from galaxy.util import ( smart_str, @@ -8,7 +7,6 @@ from galaxy.util import ( ) from galaxy.util.hash_util import hmac_new -log = logging.getLogger(__name__) encoding_sep = '__esep__' encoding_sep2 = '__esepii__' diff --git a/lib/tool_shed/util/xml_util.py b/lib/galaxy/util/tool_shed/xml_util.py similarity index 100% rename from lib/tool_shed/util/xml_util.py rename to lib/galaxy/util/tool_shed/xml_util.py diff --git a/packages/data/requirements.txt b/packages/data/requirements.txt index f2b5c80f06e..c053000ed2e 100644 --- a/packages/data/requirements.txt +++ b/packages/data/requirements.txt @@ -1,13 +1,16 @@ galaxy-objectstore +galaxy-sequence-utils==1.1.3 galaxy-util bdbag bx-python h5py isa-rwval numpy +parsley pycryptodome pysam social_auth_core SQLAlchemy==1.2 sqlalchemy-migrate +sqlalchemy-utils WebOb diff --git a/packages/data/tests/unittest_utils/__init__.py b/packages/data/tests/unittest_utils/__init__.py index 2115ad35783..290bb9ee29b 120000 --- a/packages/data/tests/unittest_utils/__init__.py +++ b/packages/data/tests/unittest_utils/__init__.py @@ -1 +1 @@ -../../test/unit/unittest_utils/__init__.py \ No newline at end of file +../../../../test/unit/unittest_utils/__init__.py \ No newline at end of file diff --git a/packages/data/tests/unittest_utils/tempfilecache.py b/packages/data/tests/unittest_utils/tempfilecache.py index 93fb83f1df7..588f6eec7d8 120000 --- a/packages/data/tests/unittest_utils/tempfilecache.py +++ b/packages/data/tests/unittest_utils/tempfilecache.py @@ -1 +1 @@ -../../test/unit/unittest_utils/tempfilecache.py \ No newline at end of file +../../../../test/unit/unittest_utils/tempfilecache.py \ No newline at end of file diff --git a/packages/data/tests/unittest_utils/utility.py b/packages/data/tests/unittest_utils/utility.py index 54dd4ca7a3b..3c69a8fd67e 120000 --- a/packages/data/tests/unittest_utils/utility.py +++ b/packages/data/tests/unittest_utils/utility.py @@ -1 +1 @@ -../../test/unit/unittest_utils/utility.py \ No newline at end of file +../../../../test/unit/unittest_utils/utility.py \ No newline at end of file diff --git a/packages/util/requirements.txt b/packages/util/requirements.txt index e15e5db251e..01367630095 100644 --- a/packages/util/requirements.txt +++ b/packages/util/requirements.txt @@ -2,7 +2,9 @@ bleach boltons bz2file; python_version < '3.3' docutils +logging markupsafe packaging pyyaml +routes six>=1.9.0 From c56dd17403a56b3c09199d488e7ff7e4a7663559 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sat, 6 Jul 2019 14:08:09 +0200 Subject: [PATCH 067/141] Fix galaxy-manage-db --- lib/galaxy/model/orm/scripts.py | 3 ++- lib/galaxy/util/properties.py | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/model/orm/scripts.py b/lib/galaxy/model/orm/scripts.py index b519897fd48..b86c32f7990 100644 --- a/lib/galaxy/model/orm/scripts.py +++ b/lib/galaxy/model/orm/scripts.py @@ -141,5 +141,6 @@ def get_config(argv, use_argparse=True, cwd=None): def manage_db(): - config = get_config(sys.argv) + # Migrate has its own args, so cannot use argparse + config = get_config(sys.argv, use_argparse=False, cwd=os.getcwd()) migrate_main(repository=config['repo'], url=config['db_url']) diff --git a/lib/galaxy/util/properties.py b/lib/galaxy/util/properties.py index aa81a4a5026..7cc131145ac 100644 --- a/lib/galaxy/util/properties.py +++ b/lib/galaxy/util/properties.py @@ -71,11 +71,13 @@ def load_app_properties( config_prefix="GALAXY_CONFIG_" ): properties = kwds.copy() if kwds else {} + properties['__file__'] = None if config_file is None: config_file = ini_file config_section = ini_section if config_file: + properties['__file__'] = os.path.abspath(config_file) if not has_ext(config_file, 'yaml', aliases=True, ignore='sample'): if config_section is None: config_section = "app:main" From 64b94a2b862d4915855c3a5a734cf0dae899c562 Mon Sep 17 00:00:00 2001 From: damian Date: Sat, 6 Jul 2019 14:12:21 +0200 Subject: [PATCH 068/141] symlinked tool shed utils back to their original directory --- packages/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test.sh b/packages/test.sh index 34024fbe642..64444f86b6d 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -25,7 +25,7 @@ PACKAGE_DIRS=( ) # containers has no tests, tool_util not yet working 100%, # data has many problems quota, tool shed install database, etc.. -RUN_TESTS=(0 0 0 0 0 1 0) +RUN_TESTS=(1 1 1 0 0 1 0) for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do package_dir=${PACKAGE_DIRS[$i]} From ac3f74b483c24bf52c4b36d1a87889ae34b0d586 Mon Sep 17 00:00:00 2001 From: dglaetzer <35349535+dglaetzer@users.noreply.github.com> Date: Sat, 6 Jul 2019 14:24:17 +0200 Subject: [PATCH 069/141] accidentialy removed it before --- lib/galaxy/model/migrate/check.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py index e90576434e6..3fe5f987446 100644 --- a/lib/galaxy/model/migrate/check.py +++ b/lib/galaxy/model/migrate/check.py @@ -1,5 +1,6 @@ import logging import os.path +import sys from migrate.versioning import repository, schema from sqlalchemy import ( From 3289e2341052f1a39cd5d4851309e1d3484fb6b1 Mon Sep 17 00:00:00 2001 From: dglaetzer <35349535+dglaetzer@users.noreply.github.com> Date: Sat, 6 Jul 2019 14:27:21 +0200 Subject: [PATCH 070/141] added it accidentialy before --- lib/galaxy/util/tool_shed/common_util.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/galaxy/util/tool_shed/common_util.py b/lib/galaxy/util/tool_shed/common_util.py index 84bb1182489..e171c16237c 100644 --- a/lib/galaxy/util/tool_shed/common_util.py +++ b/lib/galaxy/util/tool_shed/common_util.py @@ -1,7 +1,6 @@ import json import logging import os -import sys from routes import url_for From e2e6cbffb899cca28dada322b1bec583bf126999 Mon Sep 17 00:00:00 2001 From: dglaetzer <35349535+dglaetzer@users.noreply.github.com> Date: Sat, 6 Jul 2019 15:29:39 +0200 Subject: [PATCH 071/141] Update common_util.py --- lib/galaxy/util/tool_shed/common_util.py | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/galaxy/util/tool_shed/common_util.py b/lib/galaxy/util/tool_shed/common_util.py index e171c16237c..1faa08ac6b4 100644 --- a/lib/galaxy/util/tool_shed/common_util.py +++ b/lib/galaxy/util/tool_shed/common_util.py @@ -3,7 +3,6 @@ import logging import os from routes import url_for - from six.moves.urllib.parse import urljoin from galaxy import util From b989c6375eeaa5defae727a334a3817629fbffd2 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sat, 6 Jul 2019 17:14:18 +0200 Subject: [PATCH 072/141] Restore tools/templates/static moves as symlinks --- lib/galaxy/tools/bundled | 1 + lib/galaxy/web/framework/static | 1 + lib/galaxy/web/framework/templates | 1 + .../framework/static/welcome.html => static/welcome.html.sample | 0 4 files changed, 3 insertions(+) create mode 120000 lib/galaxy/tools/bundled create mode 120000 lib/galaxy/web/framework/static create mode 120000 lib/galaxy/web/framework/templates rename lib/galaxy/web/framework/static/welcome.html => static/welcome.html.sample (100%) diff --git a/lib/galaxy/tools/bundled b/lib/galaxy/tools/bundled new file mode 120000 index 00000000000..c92f4172dfd --- /dev/null +++ b/lib/galaxy/tools/bundled @@ -0,0 +1 @@ +../../../tools \ No newline at end of file diff --git a/lib/galaxy/web/framework/static b/lib/galaxy/web/framework/static new file mode 120000 index 00000000000..5feb6c21f47 --- /dev/null +++ b/lib/galaxy/web/framework/static @@ -0,0 +1 @@ +../../../../static \ No newline at end of file diff --git a/lib/galaxy/web/framework/templates b/lib/galaxy/web/framework/templates new file mode 120000 index 00000000000..f8a06d1d1c8 --- /dev/null +++ b/lib/galaxy/web/framework/templates @@ -0,0 +1 @@ +../../../../templates \ No newline at end of file diff --git a/lib/galaxy/web/framework/static/welcome.html b/static/welcome.html.sample similarity index 100% rename from lib/galaxy/web/framework/static/welcome.html rename to static/welcome.html.sample From 427bf91909e716e07d8c7544793c8615bc290fc7 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sat, 6 Jul 2019 17:14:48 +0200 Subject: [PATCH 073/141] Fix static map paths --- lib/galaxy/web/framework/webapp.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/web/framework/webapp.py b/lib/galaxy/web/framework/webapp.py index 5f42693649a..b1ce088938d 100644 --- a/lib/galaxy/web/framework/webapp.py +++ b/lib/galaxy/web/framework/webapp.py @@ -998,10 +998,10 @@ def build_url_map(app, global_conf, local_conf): urlmap["/static"] = Static(conf.get("static_dir", default_url_path("static/")), cache_time) urlmap["/images"] = Static(conf.get("static_images_dir", default_url_path("static/images")), cache_time) urlmap["/static/scripts"] = Static(conf.get("static_scripts_dir", default_url_path("static/scripts/")), cache_time) - urlmap["/static/style"] = Static(conf.get("static_style_dir", default_url_path("./static/style/blue")), cache_time) + urlmap["/static/style"] = Static(conf.get("static_style_dir", default_url_path("static/style/blue")), cache_time) urlmap["/static/welcome.html"] = Static(conf.get("static_welcome_html", default_url_path("static/welcome.html")), cache_time) - urlmap["/favicon.ico"] = Static(conf.get("static_favicon_dir", default_url_path("./static/favicon.ico")), cache_time) - urlmap["/robots.txt"] = Static(conf.get("static_robots_txt", default_url_path("./static/robots.txt")), cache_time) + urlmap["/favicon.ico"] = Static(conf.get("static_favicon_dir", default_url_path("static/favicon.ico")), cache_time) + urlmap["/robots.txt"] = Static(conf.get("static_robots_txt", default_url_path("static/robots.txt")), cache_time) if 'static_local_dir' in conf: urlmap["/static_local"] = Static(conf["static_local_dir"], cache_time) return urlmap, cache_time From a2f2e6eec4736cbe18b091f61d6d7335e3f1c504 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sat, 6 Jul 2019 17:17:02 +0200 Subject: [PATCH 074/141] Don't require a config file --- lib/galaxy/config/__init__.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 9c84112a24b..20be4665e0d 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -105,8 +105,6 @@ def find_root(kwargs): class BaseAppConfiguration(object): def _set_config_base(self, config_kwargs): self.sample_config_dir = os.path.join(os.path.dirname(__file__), 'sample') - # TODO: under what conditions is global_conf None, or does it not - # contain __file__? global_conf = config_kwargs.get('global_conf', None) self.config_file = None if global_conf and "__file__" in global_conf: @@ -118,11 +116,12 @@ class BaseAppConfiguration(object): self.config_file = f break else: - log.warning("global_conf unset or __file__ not in global_conf and " - "not running from source, unable to determine config file, " - "global_conf is: %s", global_conf) - assert self.config_file is not None, "Unable to determine app config file" - self.config_dir = config_kwargs.get('config_dir', os.path.dirname(self.config_file)) + log.warning("global_conf unset or __file__ not in global_conf and not running from source, unable to " + "determine config file, global_conf is: %s", global_conf) + #assert self.config_file is not None, "Unable to determine app config file" + if self.config_file is None: + log.warning("No Galaxy config file found, running from current working directory: %s", os.getcwd()) + self.config_dir = config_kwargs.get('config_dir', os.path.dirname(self.config_file or os.getcwd())) self.data_dir = config_kwargs.get('data_dir', None) # mutable_config_dir is intentionally not configurable. You can # override individual mutable configs with config options, but they From 1b6be605b89ca0300f2737742ec2805b520fe501 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Sat, 6 Jul 2019 17:40:13 +0200 Subject: [PATCH 075/141] Fix imports --- packages/util/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/util/requirements.txt b/packages/util/requirements.txt index 01367630095..3aaba044dcb 100644 --- a/packages/util/requirements.txt +++ b/packages/util/requirements.txt @@ -1,8 +1,9 @@ bleach boltons bz2file; python_version < '3.3' +cheetah3 docutils -logging +future markupsafe packaging pyyaml From c95c99a3b7873eaec276807cfdfdc04613a3f8d2 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Sat, 6 Jul 2019 16:50:01 +0200 Subject: [PATCH 076/141] Some work on the tool menu styles. Highlighting the background of items was added at some point, but did not extend to fill the entire width and was not applied to the section elements. This attempts to make things a bit more visually appealing and consistent. Additionally there are some debatable changes: - Removed the indent for items, I think it is clear from the size and weight changes - Remove underlines, the background highlight is an equally good indicator that these are clickable - Top level labels are now large like the sections, second level returns to the default font size --- .../galaxy/scripts/entry/panels/tool-panel.js | 4 +- client/galaxy/style/scss/base.scss | 62 +++++++++++-------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/client/galaxy/scripts/entry/panels/tool-panel.js b/client/galaxy/scripts/entry/panels/tool-panel.js index d3c134a77d0..47b1ab4cfbe 100644 --- a/client/galaxy/scripts/entry/panels/tool-panel.js +++ b/client/galaxy/scripts/entry/panels/tool-panel.js @@ -141,9 +141,9 @@ const ToolPanel = Backbone.View.extend({
diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index 4a0bbe2a8e9..1b438b84581 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1477,11 +1477,10 @@ div.permissionContainer { .toolMenuContainer { color: $panel-text-color; a { - color: $panel-text-color; + color: $panel-text-color; } background: $panel-bg-color; min-height: 100%; - @extend .m-3; } div.toolSectionWrapper { @@ -1491,35 +1490,46 @@ div.toolSectionWrapper { div.toolSectionTitle { font-weight: 500; font-size: $h4-font-size; -} - -div.toolPanelLabel { - @extend .mt-3; - @extend .mb-2; - font-weight: bold; - color: $gray-600; - text-transform: uppercase; -} - -div.toolTitle { - @extend .m-2; - display: block; - .labels { - float: right; - } -} - -div a.tool-link { - text-decoration: none; - display: block; - span.tool-old-link { - text-decoration: underline; - } &:hover { background: darken($panel-bg-color, 5%); } } +div.toolPanelLabel { + @extend .mt-3; + @extend .mb-2; + @extend .px-3; + font-weight: bold; + font-size: $h4-font-size; + color: $gray-600; + text-transform: uppercase; +} + +div.toolSectionWrapper div.toolPanelLabel { + font-size: inherit; +} + +div.toolSectionTitle, div.toolTitle { + display: block; + .labels { + float: right; + } + + a { + @extend .px-3; + @extend .py-1; + text-decoration: none; + display: block; + span.tool-old-link { + font-weight: 500; + // text-decoration: underline; + } + &:hover { + background: darken($panel-bg-color, 5%); + } + } +} + div.toolTitleNoSection { @extend .pb-1; font-weight: bold; From c571a15d290b749d26feef6ea6a4594f70c2a4f9 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Sat, 6 Jul 2019 17:33:31 +0200 Subject: [PATCH 077/141] Fix tool menu styles for workflow editor. --- client/galaxy/style/scss/base.scss | 6 ++++++ templates/webapps/galaxy/workflow/editor.mako | 16 +++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index 1b438b84581..878ae5d796c 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1528,6 +1528,12 @@ div.toolSectionTitle, div.toolTitle { background: darken($panel-bg-color, 5%); } } + + &.text-muted a { + &:hover { + background: inherit; + } + } } div.toolTitleNoSection { diff --git a/templates/webapps/galaxy/workflow/editor.mako b/templates/webapps/galaxy/workflow/editor.mako index 09f66de636d..ad361a31d93 100644 --- a/templates/webapps/galaxy/workflow/editor.mako +++ b/templates/webapps/galaxy/workflow/editor.mako @@ -91,13 +91,15 @@ %else:
%endif - %if "[[" in tool.description and "]]" in tool.description: - ${tool.description.replace( '[[', '' % tool.id ).replace( "]]", "" )} - %elif tool.name: - ${tool.name} ${tool.description} - %else: - ${tool.description} - %endif + + %if "[[" in tool.description and "]]" in tool.description: + ${tool.description.replace( '[[', '' % tool.id ).replace( "]]", "" )} + %elif tool.name: + ${tool.name} ${tool.description} + %else: + ${tool.description} + %endif +
%endif %endif From 339cfd47c3eb3cae2df53723012ca720ed339bc7 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Sun, 7 Jul 2019 10:19:33 +0200 Subject: [PATCH 078/141] Tighten up vertical padding in tool menu. 1. There was extra padding at the bottom of each section which created extra space when everything was collapsed 2. Label padding now matches section padding. --- client/galaxy/style/scss/base.scss | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index 878ae5d796c..8e69136845d 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1483,10 +1483,6 @@ div.permissionContainer { min-height: 100%; } -div.toolSectionWrapper { - @extend .mb-1; -} - div.toolSectionTitle { font-weight: 500; font-size: $h4-font-size; @@ -1496,8 +1492,7 @@ div.toolSectionTitle { } div.toolPanelLabel { - @extend .mt-3; - @extend .mb-2; + @extend .py-1; @extend .px-3; font-weight: bold; font-size: $h4-font-size; From 560565b4e6f442b751bac16844166a693b8e8e0f Mon Sep 17 00:00:00 2001 From: dglaetzer Date: Sun, 7 Jul 2019 10:56:17 +0200 Subject: [PATCH 079/141] link maf_utilities back to it's original directory, fix requirements --- packages/data/requirements.txt | 2 +- packages/util/requirements.txt | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/data/requirements.txt b/packages/data/requirements.txt index 874087c5c5a..40d2a9baed0 100644 --- a/packages/data/requirements.txt +++ b/packages/data/requirements.txt @@ -1,6 +1,6 @@ galaxy-objectstore galaxy-sequence-utils==1.1.3 -galaxy-util +galaxy-util[template] bdbag bx-python h5py diff --git a/packages/util/requirements.txt b/packages/util/requirements.txt index 3aaba044dcb..aad3e2dc97a 100644 --- a/packages/util/requirements.txt +++ b/packages/util/requirements.txt @@ -1,9 +1,7 @@ bleach boltons bz2file; python_version < '3.3' -cheetah3 docutils -future markupsafe packaging pyyaml From caef1d6711b369a72a70fe9403a9c096ea81c1d4 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 13:10:37 +0200 Subject: [PATCH 080/141] Fix datatypes_conf.xml.sample path for upload integration test --- test/integration/test_datatype_upload.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/test_datatype_upload.py b/test/integration/test_datatype_upload.py index 58e45b0bb55..46275580351 100644 --- a/test/integration/test_datatype_upload.py +++ b/test/integration/test_datatype_upload.py @@ -18,7 +18,7 @@ SCRIPT_DIRECTORY = os.path.abspath(os.path.dirname(__file__)) TEST_FILE_DIR = '%s/../../lib/galaxy/datatypes/test' % SCRIPT_DIRECTORY TestData = collections.namedtuple('UploadDatatypesData', 'path datatype uploadable') GALAXY_ROOT = os.path.abspath('%s/../../' % SCRIPT_DIRECTORY) -DATATYPES_CONFIG = os.path.join(GALAXY_ROOT, 'config/datatypes_conf.xml.sample') +DATATYPES_CONFIG = os.path.join(GALAXY_ROOT, 'lib/galaxy/config/sample/datatypes_conf.xml.sample') PARENT_SNIFFER_MAP = {'fastqsolexa': 'fastq'} From d72f87abdec91e5b3fb7d696cc709fc43d05efe8 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 13:36:38 +0200 Subject: [PATCH 081/141] Move the galaxy metapackage to packages/ (incomplete) --- packages/meta/HISTORY.rst | 12 ++ packages/meta/LICENSE | 1 + MANIFEST.in => packages/meta/MANIFEST.in | 0 packages/meta/Makefile | 1 + packages/meta/README.rst | 1 + packages/meta/dev-requirements.txt | 1 + packages/meta/galaxy/project_galaxy_util.py | 13 ++ packages/meta/scripts | 1 + packages/meta/setup.cfg | 1 + packages/meta/setup.py | 133 ++++++++++++++++++++ setup.py | 96 -------------- 11 files changed, 164 insertions(+), 96 deletions(-) create mode 100644 packages/meta/HISTORY.rst create mode 120000 packages/meta/LICENSE rename MANIFEST.in => packages/meta/MANIFEST.in (100%) create mode 120000 packages/meta/Makefile create mode 120000 packages/meta/README.rst create mode 120000 packages/meta/dev-requirements.txt create mode 100644 packages/meta/galaxy/project_galaxy_util.py create mode 120000 packages/meta/scripts create mode 120000 packages/meta/setup.cfg create mode 100644 packages/meta/setup.py delete mode 100644 setup.py diff --git a/packages/meta/HISTORY.rst b/packages/meta/HISTORY.rst new file mode 100644 index 00000000000..ec2f0e746e9 --- /dev/null +++ b/packages/meta/HISTORY.rst @@ -0,0 +1,12 @@ +.. :changelog: + +History +------- + +.. to_doc + +--------------------- +19.9.0.dev0 +--------------------- + +* Initial import from dev branch of Galaxy during 19.09 development cycle. diff --git a/packages/meta/LICENSE b/packages/meta/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/meta/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/MANIFEST.in b/packages/meta/MANIFEST.in similarity index 100% rename from MANIFEST.in rename to packages/meta/MANIFEST.in diff --git a/packages/meta/Makefile b/packages/meta/Makefile new file mode 120000 index 00000000000..37af8bae5ba --- /dev/null +++ b/packages/meta/Makefile @@ -0,0 +1 @@ +../package.Makefile \ No newline at end of file diff --git a/packages/meta/README.rst b/packages/meta/README.rst new file mode 120000 index 00000000000..c768ff7d970 --- /dev/null +++ b/packages/meta/README.rst @@ -0,0 +1 @@ +../../README.rst \ No newline at end of file diff --git a/packages/meta/dev-requirements.txt b/packages/meta/dev-requirements.txt new file mode 120000 index 00000000000..467b90d7a23 --- /dev/null +++ b/packages/meta/dev-requirements.txt @@ -0,0 +1 @@ +../package-dev-requirements.txt \ No newline at end of file diff --git a/packages/meta/galaxy/project_galaxy_util.py b/packages/meta/galaxy/project_galaxy_util.py new file mode 100644 index 00000000000..ade2b2ef107 --- /dev/null +++ b/packages/meta/galaxy/project_galaxy_util.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- + +__version__ = '19.9.0.dev0' + +PROJECT_NAME = "galaxy" +PROJECT_OWNER = PROJECT_USERAME = "galaxyproject" +PROJECT_URL = "https://github.com/galaxyproject/galaxy" +PROJECT_AUTHOR = 'Galaxy Project and Community' +PROJECT_DESCRIPTION = 'Galaxy Server Metapackage' +PROJECT_EMAIL = 'jmchilton@gmail.com' +RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % ( + PROJECT_USERAME, PROJECT_NAME +) diff --git a/packages/meta/scripts b/packages/meta/scripts new file mode 120000 index 00000000000..9aec9dc5a06 --- /dev/null +++ b/packages/meta/scripts @@ -0,0 +1 @@ +../build_scripts \ No newline at end of file diff --git a/packages/meta/setup.cfg b/packages/meta/setup.cfg new file mode 120000 index 00000000000..eb7cf09393f --- /dev/null +++ b/packages/meta/setup.cfg @@ -0,0 +1 @@ +../../setup.cfg \ No newline at end of file diff --git a/packages/meta/setup.py b/packages/meta/setup.py new file mode 100644 index 00000000000..0edfd7a4e2d --- /dev/null +++ b/packages/meta/setup.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import ast +import os +import re +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +SOURCE_DIR = "galaxy" + +_version_re = re.compile(r'__version__\s+=\s+(.*)') + +with open('%s/project_galaxy_util.py' % SOURCE_DIR, 'rb') as f: + init_contents = f.read().decode('utf-8') + + def get_var(var_name): + pattern = re.compile(r'%s\s+=\s+(.*)' % var_name) + match = pattern.search(init_contents).group(1) + return str(ast.literal_eval(match)) + + version = get_var("__version__") + PROJECT_NAME = get_var("PROJECT_NAME") + PROJECT_URL = get_var("PROJECT_URL") + PROJECT_AUTHOR = get_var("PROJECT_AUTHOR") + PROJECT_EMAIL = get_var("PROJECT_EMAIL") + PROJECT_DESCRIPTION = get_var("PROJECT_DESCRIPTION") + +TEST_DIR = 'tests' +PACKAGES = [] +ENTRY_POINTS = ''' + [console_scripts] + galaxy-paster=galaxy.util.pastescript.serve:run + galaxy-main=galaxy.main:main + galaxy-config=galaxy.config.script:main + galaxy-manage-db=galaxy.model.orm.scripts:manage_db +''' +PACKAGE_DATA = { + # Be sure to update MANIFEST.in for source dist. +} +PACKAGE_DIR = { + SOURCE_DIR: SOURCE_DIR, +} + +readme = open('README.rst').read() +history = open('HISTORY.rst').read().replace('.. :changelog:', '') + +if os.path.exists("requirements.txt"): + requirements = open("requirements.txt").read().split("\n") +else: + # In tox, it will cover them anyway. + requirements = [] + + +test_requirements = [ + # TODO: put package test requirements here +] + + +# TODO: +# package_data={ +# 'galaxy': [ +# 'config/sample/*', +# 'exceptions/error_codes.json', +# 'datatypes/converters/*.xml', +# 'datatypes/display_applications/configs/*/*.xml', +# 'datatypes/set_metadata_tool.xml', +# 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', +# 'jobs/runners/util/job_script/MEMORY_STATEMENT.sh', +# 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', +# 'tools/imp_exp/imp_history_from_archive.xml', +# 'tools/imp_exp/exp_history_to_archive.xml', +# 'tools/data_fetch.xml', +# 'model/migrate/migrate.cfg', +# 'dependencies/*.txt', +# 'util/docutils_template.txt', +# ], +# 'tool_shed': [ +# 'galaxy_install/migrate/migrate.cfg', +# 'galaxy_install/migrate/scripts/*', +# 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', +# 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', +# 'scripts/bootstrap_tool_shed/user_info.xml', +# ], +# }, +# package_dir={'': 'lib'}, +# include_package_data=True, + + +setup( + name=PROJECT_NAME, + version=version, + description=PROJECT_DESCRIPTION, + long_description=readme + '\n\n' + history, + long_description_content_type='text/x-rst', + author=PROJECT_AUTHOR, + author_email=PROJECT_EMAIL, + url=PROJECT_URL, + packages=PACKAGES, + entry_points=ENTRY_POINTS, + package_data=PACKAGE_DATA, + package_dir=PACKAGE_DIR, + include_package_data=True, + install_requires=requirements, + extras_require={ + 'postgresql': ['psycopg2-binary'], + }, + license="AFL", + zip_safe=False, + keywords='galaxy', + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'Intended Audience :: Science/Research', + 'Environment :: Console', + 'License :: OSI Approved :: Academic Free License (AFL)', + 'Operating System :: POSIX', + 'Topic :: Scientific/Engineering :: Bio-Informatics', + 'Topic :: Software Development', + 'Topic :: Software Development :: Code Generators', + 'Topic :: Software Development :: Testing', + 'Natural Language :: English', + "Programming Language :: Python :: 2", + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + ], + test_suite=TEST_DIR, + tests_require=test_requirements +) diff --git a/setup.py b/setup.py deleted file mode 100644 index ece808240a4..00000000000 --- a/setup.py +++ /dev/null @@ -1,96 +0,0 @@ -from setuptools import find_packages, setup - - -readme = open('README.rst').read() -VERSION = None - - -# TODO: detect if we are not running from pip (inspect the stack?) and if not, -# suggest using `pip install -i https://wheels.galaxyproject.org/simple .` - - -# sets VERSION (also VERSION_MAJOR and VERSION_MINOR) -execfile('lib/galaxy/version.py') - -# Note we really shouldn't do things this way, but it makes the most sense for now: -# https://caremad.io/2013/07/setup-vs-requirement/ -requirements = [] -with open('requirements.txt') as fh: - for line in fh: - line = line.strip() - if line.startswith('#') or line.startswith('-') or line == '': - continue - if '#' in line: - line = line[:line.index('#')].strip() - requirements.append(line) - -scripts = ["scripts/galaxy"] - - -setup( - name='galaxy', - version=VERSION, - description='Galaxy (http://galaxyproject.org/).', - long_description=readme, - author='Galaxy Project', - author_email='galaxy-dev@lists.galaxyproject.org', - url='https://github.com/galaxyproject/galaxy', - packages=find_packages('lib'), - entry_points=''' - [console_scripts] - galaxy-paster=galaxy.util.pastescript.serve:run - galaxy-main=galaxy.main:main - galaxy-config=galaxy.config.script:main - galaxy-manage-db=galaxy.model.orm.scripts:manage_db - ''', - package_data={ - 'galaxy': [ - 'config/sample/*', - 'exceptions/error_codes.json', - 'datatypes/converters/*.xml', - 'datatypes/display_applications/configs/*/*.xml', - 'datatypes/set_metadata_tool.xml', - 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', - 'jobs/runners/util/job_script/MEMORY_STATEMENT.sh', - 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', - 'tools/imp_exp/imp_history_from_archive.xml', - 'tools/imp_exp/exp_history_to_archive.xml', - 'tools/data_fetch.xml', - 'model/migrate/migrate.cfg', - 'dependencies/*.txt', - 'util/docutils_template.txt', - ], - 'tool_shed': [ - 'galaxy_install/migrate/migrate.cfg', - 'galaxy_install/migrate/scripts/*', - 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', - 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', - 'scripts/bootstrap_tool_shed/user_info.xml', - ], - }, - package_dir={'': 'lib'}, - include_package_data=True, - dependency_links=['https://wheels.galaxyproject.org/packages'], - setup_requires=['pip>=8.1'], - install_requires=requirements, - extras_require={ - 'postgresql': ['psycopg2==2.6.1'], - }, - license="Academic Free License 3.0", - zip_safe=False, - keywords='galaxy', - classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Intended Audience :: Science/Research', - 'Environment :: Console', - 'License :: OSI Approved :: Academic Free License (AFL)', - 'Operating System :: POSIX', - 'Natural Language :: English', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - 'Topic :: Scientific/Engineering :: Bio-Informatics', - ], - test_suite='test' -) From 1af4d42bd024fffb984f06852f2b28af26d2d723 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 13:51:51 +0200 Subject: [PATCH 082/141] Make default tool dependency dir relative to data dir --- lib/galaxy/tools/toolbox/base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/toolbox/base.py b/lib/galaxy/tools/toolbox/base.py index 249143be954..aaa01dc489a 100644 --- a/lib/galaxy/tools/toolbox/base.py +++ b/lib/galaxy/tools/toolbox/base.py @@ -1158,7 +1158,9 @@ class BaseGalaxyToolBox(AbstractToolBox): def _init_dependency_manager(self): app_config_dict = self.app.config.config_dict conf_file = app_config_dict.get("dependency_resolvers_config_file") - self.dependency_manager = build_dependency_manager(app_config_dict=app_config_dict, conf_file=conf_file, default_tool_dependency_dir="database/dependencies") + default_tool_dependency_dir = os.path.join(self.app.config.data_dir, "dependencies") + self.dependency_manager = build_dependency_manager(app_config_dict=app_config_dict, conf_file=conf_file, + default_tool_dependency_dir=default_tool_dependency_dir) def reload_dependency_manager(self): self._init_dependency_manager() From 118e01f7966eaff6294cd322a1f48699cc0883cc Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 14:22:07 +0200 Subject: [PATCH 083/141] Don't show the pip progress bar when installing under CI --- scripts/common_startup.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/common_startup.sh b/scripts/common_startup.sh index 25d421bb795..98cd01bbb69 100755 --- a/scripts/common_startup.sh +++ b/scripts/common_startup.sh @@ -191,15 +191,18 @@ if [ $DEV_WHEELS -eq 1 ]; then requirement_args="$requirement_args -r ${GALAXY_DEV_REQUIREMENTS}" fi +PIP_PROGRESS_BAR= +[ "$CI" = "true" ] && PIP_PROGRESS_BAR='--progress-bar off' + if [ $FETCH_WHEELS -eq 1 ]; then - pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" + pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" ${PIP_PROGRESS_BAR} GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))") if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then if pip list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2." pip uninstall -y psycopg2 psycopg2-binary fi - echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" + echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" ${PIP_PROGRESS_BAR} fi fi From a4df0b6bc0d2b172e784418f3c6d87d1ad569a00 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 14:31:37 +0200 Subject: [PATCH 084/141] Fix lint errors --- lib/galaxy/config/__init__.py | 1 - lib/galaxy/tool_util/deps/resolvers/__init__.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index abb4d4bd29f..8894846e5b2 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -118,7 +118,6 @@ class BaseAppConfiguration(object): else: log.warning("global_conf unset or __file__ not in global_conf and not running from source, unable to " "determine config file, global_conf is: %s", global_conf) - #assert self.config_file is not None, "Unable to determine app config file" if self.config_file is None: log.warning("No Galaxy config file found, running from current working directory: %s", os.getcwd()) self.config_dir = config_kwargs.get('config_dir', os.path.dirname(self.config_file or os.getcwd())) diff --git a/lib/galaxy/tool_util/deps/resolvers/__init__.py b/lib/galaxy/tool_util/deps/resolvers/__init__.py index 5de84139510..96369c7d96c 100644 --- a/lib/galaxy/tool_util/deps/resolvers/__init__.py +++ b/lib/galaxy/tool_util/deps/resolvers/__init__.py @@ -1,10 +1,10 @@ """The module defines the abstract interface for dealing tool dependency resolution plugins.""" +import errno from abc import ( ABCMeta, abstractmethod, abstractproperty, ) -import errno import six import yaml From 2964d830cd462c857a2953d2c9360a34bcf63f6b Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 14:32:01 +0200 Subject: [PATCH 085/141] Excluded bundled tools from unit tests --- run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run_tests.sh b/run_tests.sh index 2b237097246..2db31345c4f 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -507,7 +507,7 @@ do -u|-unit|--unit) report_file="run_unit_tests.html" test_script="pytest" - unit_extra='--doctest-modules --ignore lib/galaxy/web/proxy/js/node_modules/ --ignore lib/galaxy/webapps/tool_shed/controllers --ignore lib/galaxy/jobs/runners/chronos.py --ignore lib/galaxy/webapps/tool_shed/model/migrate' + unit_extra='--doctest-modules --ignore lib/galaxy/web/proxy/js/node_modules/ --ignore lib/galaxy/webapps/tool_shed/controllers --ignore lib/galaxy/jobs/runners/chronos.py --ignore lib/galaxy/webapps/tool_shed/model/migrate --ignore lib/galaxy/tools/bundled' if [ $# -gt 1 ]; then unit_extra="$unit_extra $2" shift 2 From a0b1d0066fd724b1778f7de9ecc94a3045356248 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 16:29:58 +0200 Subject: [PATCH 086/141] Unit test fixes --- lib/galaxy/datatypes/registry.py | 2 +- lib/galaxy/model/orm/scripts.py | 2 +- .../migrate/scripts/migrate_tools.py | 32 +++++++++++-------- test/unit/queue_worker/conftest.py | 7 ++++ test/unit/unittest_utils/galaxy_mock.py | 7 ++++ 5 files changed, 35 insertions(+), 15 deletions(-) diff --git a/lib/galaxy/datatypes/registry.py b/lib/galaxy/datatypes/registry.py index 4f573d514c6..bdf6ff9fac5 100644 --- a/lib/galaxy/datatypes/registry.py +++ b/lib/galaxy/datatypes/registry.py @@ -993,7 +993,7 @@ class Registry(object): def example_datatype_registry_for_sample(sniff_compressed_dynamic_datatypes_default=True): galaxy_dir = galaxy.util.galaxy_directory() - sample_conf = os.path.join(galaxy_dir, "config", "datatypes_conf.xml.sample") + sample_conf = os.path.join(galaxy_dir, "lib", "galaxy", "config", "sample", "datatypes_conf.xml.sample") config = Bunch(sniff_compressed_dynamic_datatypes_default=sniff_compressed_dynamic_datatypes_default) datatypes_registry = Registry(config) datatypes_registry.load_datatypes(root_dir=galaxy_dir, config=sample_conf) diff --git a/lib/galaxy/model/orm/scripts.py b/lib/galaxy/model/orm/scripts.py index b86c32f7990..8cf9292b8b2 100644 --- a/lib/galaxy/model/orm/scripts.py +++ b/lib/galaxy/model/orm/scripts.py @@ -103,7 +103,7 @@ def get_config(argv, use_argparse=True, cwd=None): 'sqlite:///pg/testdb1' >>> write_ini('galaxy.ini', 'data_dir', '/moo') >>> config = get_config(['manage_db.py'], cwd=config_dir) - >>> uri_with_env = os.getenv("GALAXY_TEST_DBURI", "sqlite:///moo.sqlite?isolation_level=IMMEDIATE") + >>> uri_with_env = os.getenv("GALAXY_TEST_DBURI", "sqlite:////moo/universe.sqlite?isolation_level=IMMEDIATE") >>> config['db_url'] == uri_with_env True >>> config['repo'].endswith('galaxy/model/migrate') diff --git a/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py b/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py index 4c187f8856e..749e5a8d2a1 100644 --- a/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py +++ b/lib/tool_shed/galaxy_install/migrate/scripts/migrate_tools.py @@ -16,16 +16,22 @@ sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pa from tool_shed.galaxy_install.migrate.common import MigrateToolsApplication -app = MigrateToolsApplication(sys.argv[1]) -non_shed_tool_confs = app.tool_migration_manager.proprietary_tool_confs -if len(non_shed_tool_confs) == 1: - plural = '' - file_names = non_shed_tool_confs[0] -else: - plural = 's' - file_names = ', '.join(non_shed_tool_confs) -msg = "\nThe installation process is finished. All tools associated with this migration that were defined in your file%s named\n" % plural -msg += "%s, have been removed. You may now start your Galaxy server.\n" % file_names -print(msg) -app.shutdown() -sys.exit(0) + +def main(): + app = MigrateToolsApplication(sys.argv[1]) + non_shed_tool_confs = app.tool_migration_manager.proprietary_tool_confs + if len(non_shed_tool_confs) == 1: + plural = '' + file_names = non_shed_tool_confs[0] + else: + plural = 's' + file_names = ', '.join(non_shed_tool_confs) + msg = "\nThe installation process is finished. All tools associated with this migration that were defined in your file%s named\n" % plural + msg += "%s, have been removed. You may now start your Galaxy server.\n" % file_names + print(msg) + app.shutdown() + sys.exit(0) + + +if __name__ == '__main__': + main() diff --git a/test/unit/queue_worker/conftest.py b/test/unit/queue_worker/conftest.py index 603265ebcc8..2e867eec1a4 100644 --- a/test/unit/queue_worker/conftest.py +++ b/test/unit/queue_worker/conftest.py @@ -3,6 +3,11 @@ import tempfile import pytest +try: + import psycopg2 +except ImportError: + psycopg2 = None + from galaxy.util import which from ..unittest_utils import galaxy_mock @@ -57,6 +62,8 @@ def database_app(request): if request.param == 'postgres_app': if not which('initdb'): pytest.skip("initdb must be on PATH for postgresql fixture") + if not psycopg2: + pytest.skip("psycopg2 must be installed for postgresql fixture") if request.param == 'sqlite_rabbitmq_app': if not os.environ.get('GALAXY_TEST_AMQP_INTERNAL_CONNECTION'): pytest.skip("rabbitmq tests will be skipped if GALAXY_TEST_AMQP_INTERNAL_CONNECTION env var is unset") diff --git a/test/unit/unittest_utils/galaxy_mock.py b/test/unit/unittest_utils/galaxy_mock.py index b1254494041..6feaab340ba 100644 --- a/test/unit/unittest_utils/galaxy_mock.py +++ b/test/unit/unittest_utils/galaxy_mock.py @@ -113,6 +113,7 @@ class MockAppConfig(Bunch): self.security = idencoding.IdEncodingHelper(id_secret='6e46ed6483a833c100e68cc3f1d0dd76') self.database_connection = kwargs.get('database_connection', "sqlite:///:memory:") self.use_remote_user = kwargs.get('use_remote_user', False) + self.data_dir = '/tmp' self.file_path = '/tmp' self.jobs_directory = '/tmp' self.new_file_path = '/tmp' @@ -155,6 +156,12 @@ class MockAppConfig(Bunch): def config_dict(self): return self.dict() + def __getattr__(self, name): + # Handle the automatic config file _set options + if name.endswith('_file_set'): + return False + return super(MockAppConfig, self).__getattr__(name) + class MockWebapp(object): From 72f3d25d09a987cdf2a419a39dd32013d53806f6 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 11:13:11 -0400 Subject: [PATCH 087/141] Switches to ldda update time for list views --- lib/galaxy/webapps/galaxy/api/folder_contents.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/webapps/galaxy/api/folder_contents.py b/lib/galaxy/webapps/galaxy/api/folder_contents.py index a7ecc98481d..f0e2bdf2e9b 100644 --- a/lib/galaxy/webapps/galaxy/api/folder_contents.py +++ b/lib/galaxy/webapps/galaxy/api/folder_contents.py @@ -81,13 +81,13 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM for content_item in self._load_folder_contents(trans, folder, deleted): return_item = {} encoded_id = trans.security.encode_id(content_item.id) - update_time = content_item.update_time.strftime("%Y-%m-%d %I:%M %p") create_time = content_item.create_time.strftime("%Y-%m-%d %I:%M %p") if content_item.api_type == 'folder': encoded_id = 'F' + encoded_id can_modify = is_admin or (trans.user and trans.app.security_agent.can_modify_library_item(current_user_roles, folder)) can_manage = is_admin or (trans.user and trans.app.security_agent.can_manage_library_item(current_user_roles, folder)) + update_time = content_item.update_time.strftime("%Y-%m-%d %I:%M %p") return_item.update(dict(can_modify=can_modify, can_manage=can_manage)) if content_item.description: return_item.update(dict(description=content_item.description)) @@ -106,12 +106,14 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM # Can user manage the permissions on the dataset? can_manage = is_admin or (trans.user and trans.app.security_agent.can_manage_dataset(current_user_roles, content_item.library_dataset_dataset_association.dataset)) raw_size = int(content_item.library_dataset_dataset_association.get_size()) + update_time = content_item.library_dataset_dataset_association.update_time.strftime("%Y-%m-%d %I:%M %p") nice_size = util.nice_size(raw_size) library_dataset_dict = content_item.to_dict() encoded_ldda_id = trans.security.encode_id(content_item.library_dataset_dataset_association.id) return_item.update(dict(file_ext=library_dataset_dict['file_ext'], date_uploaded=library_dataset_dict['date_uploaded'], + update_time=update_time, is_unrestricted=is_unrestricted, is_private=is_private, can_manage=can_manage, From f8d75a7c2c85e109a78df28cea03e5aed693f230 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 11:15:39 -0400 Subject: [PATCH 088/141] Displays update_time throughout library view --- .../scripts/mvc/library/library-dataset-view.js | 16 ++++++++++++++++ .../mvc/library/library-folderlist-view.js | 2 +- lib/galaxy/managers/library_datasets.py | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/client/galaxy/scripts/mvc/library/library-dataset-view.js b/client/galaxy/scripts/mvc/library/library-dataset-view.js index 53c6d30eb6f..8137376b77f 100644 --- a/client/galaxy/scripts/mvc/library/library-dataset-view.js +++ b/client/galaxy/scripts/mvc/library/library-dataset-view.js @@ -703,6 +703,12 @@ var LibraryDatasetView = Backbone.View.extend({
<% } %> + <% if (item.get("update_time")) { %> + + + + + <% } %> <% if (item.get("date_uploaded")) { %> @@ -880,6 +886,12 @@ var LibraryDatasetView = Backbone.View.extend({ <% } %> + <% if (ldda.get("update_time")) { %> + + + + + <% } %> <% if (ldda.get("date_uploaded")) { %> @@ -1006,6 +1018,10 @@ var LibraryDatasetView = Backbone.View.extend({ + + + + diff --git a/client/galaxy/scripts/mvc/library/library-folderlist-view.js b/client/galaxy/scripts/mvc/library/library-folderlist-view.js index 1b6c271f99c..cedc161f341 100644 --- a/client/galaxy/scripts/mvc/library/library-folderlist-view.js +++ b/client/galaxy/scripts/mvc/library/library-folderlist-view.js @@ -517,7 +517,7 @@ var FolderListView = Backbone.View.extend({
<%= _.escape(item.get("file_size")) %>
Date last updated (UTC)<%= _.escape(item.get("update_time")) %>
Date uploaded (UTC)<%= _.escape(ldda.get("file_size")) %>
Date last updated (UTC)<%= _.escape(ldda.get("update_time")) %>
Date uploaded (UTC)Size <%= _.escape(item.get("file_size")) %>
Date last updated (UTC)<%= _.escape(item.get("update_time")) %>
Date uploaded (UTC) <%= _.escape(item.get("date_uploaded")) %> - Time Updated (UTC) + Date Updated (UTC) diff --git a/lib/galaxy/managers/library_datasets.py b/lib/galaxy/managers/library_datasets.py index 6cdf791fd3a..7afd706a7cc 100644 --- a/lib/galaxy/managers/library_datasets.py +++ b/lib/galaxy/managers/library_datasets.py @@ -101,6 +101,7 @@ class LibraryDatasetsManager(datasets.DatasetAssociationManager): ldda.dbkey = new_genome_build changed = True if changed: + ldda.updateParentFolderUpdateTimes() trans.sa_session.add(ldda) trans.sa_session.flush() return changed @@ -223,6 +224,7 @@ class LibraryDatasetsManager(datasets.DatasetAssociationManager): rval['full_path'] = full_path rval['file_size'] = util.nice_size(int(ldda.get_size())) rval['date_uploaded'] = ldda.create_time.strftime("%Y-%m-%d %I:%M %p") + rval['update_time'] = ldda.update_time.strftime("%Y-%m-%d %I:%M %p") rval['can_user_modify'] = trans.user_is_admin or trans.app.security_agent.can_modify_library_item(current_user_roles, ld) rval['is_unrestricted'] = trans.app.security_agent.dataset_is_public(ldda.dataset) rval['tags'] = self.tag_handler.get_tags_str(ldda.tags) From c2f71cf4d880444b08fdea464d735dbd70bed3b5 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 11:15:48 -0400 Subject: [PATCH 089/141] propagates updates to library items up the folder tree --- lib/galaxy/model/__init__.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 6ad851608f2..78b67b4a1e1 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -31,6 +31,7 @@ from sqlalchemy import ( not_, or_, select, + text, true, type_coerce, types) @@ -3424,6 +3425,7 @@ class LibraryDataset(RepresentById): uploaded_by=ldda.user.email, message=ldda.message, date_uploaded=ldda.create_time.isoformat(), + update_time=ldda.update_time.isoformat(), file_size=int(ldda.get_size()), file_ext=ldda.ext, data_type=ldda.datatype.__class__.__module__ + '.' + ldda.datatype.__class__.__name__, @@ -3592,6 +3594,26 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): rval['metadata_' + name] = val return rval + def updateParentFolderUpdateTimes(self): + # sets the update_time for all continaing folders up the tree + ldda = self + db_session = object_session(ldda) + + sql = text( + ''' + with recursive + parent_folders_of(folder_id) as ( + select folder_id from library_dataset where id = :library_dataset_id + union all + select library_folder.parent_id from library_folder, parent_folders_of + where library_folder.id = parent_folders_of.folder_id + ) + update library_folder + set update_time = (select update_time from library_dataset_dataset_association where id = :ldda_id) + from parent_folders_of + where library_folder.id = parent_folders_of.folder_id + ''') + db_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) class ExtendedMetadata(RepresentById): def __init__(self, data): From 1cabf49f0e246eb56cfcec3b8da7ab34cb43f07a Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 11:16:24 -0400 Subject: [PATCH 090/141] Folders should also sort so we can find out which one was most recently updated --- .../scripts/mvc/library/library-util.js | 60 +++++++++---------- 1 file changed, 27 insertions(+), 33 deletions(-) diff --git a/client/galaxy/scripts/mvc/library/library-util.js b/client/galaxy/scripts/mvc/library/library-util.js index c4d546c4b25..7bb864a0407 100644 --- a/client/galaxy/scripts/mvc/library/library-util.js +++ b/client/galaxy/scripts/mvc/library/library-util.js @@ -1,45 +1,39 @@ /** - * Create alphabetical based two-argument comparator - * that takes into account that Folder comes before Dataset. + * Create alphabetical based two-argument comparator to handle library items (including folders) * If sort_key is not present it is set to ''. * @param {str} sort_key key to sort by * @param {str} sort_order order to sort by (asc, desc) * @return {function} two-argument comparator function */ var generateComparator = (sort_key, sort_order) => (itemA, itemB) => { - if (itemA.get("type") === itemB.get("type")) { - if (!itemA.has(sort_key) && !itemB.has(sort_key)) { - return 0; - } else if (!itemA.has(sort_key)) { - return 1; - } else if (!itemB.has(sort_key)) { - return -1; - } - var comparable_itemA_key; - var comparable_itemB_key; - if (typeof itemA.get(sort_key) === "number") { - comparable_itemA_key = itemA.get(sort_key); - comparable_itemB_key = itemB.get(sort_key); - } - else - { - comparable_itemA_key = itemA.get(sort_key).toLowerCase(); - comparable_itemB_key = itemB.get(sort_key).toLowerCase(); - } - if ( comparable_itemA_key > comparable_itemB_key) { - return sort_order === "asc" ? 1 : -1; - } - if (comparable_itemB_key > comparable_itemA_key) { - return sort_order === "asc" ? -1 : 1; - } - - return 0; // equal - } else { - if (itemA.get("type") === "folder") { - return -1; // folder is always before dataset - } + if (!itemA.has(sort_key) && !itemB.has(sort_key)) { + return 0; + } else if (!itemA.has(sort_key)) { return 1; + } else if (!itemB.has(sort_key)) { + return -1; } + var folder_bonus = 0.5; + var comparable_itemA_key; + var comparable_itemB_key; + if (typeof itemA.get(sort_key) === "number") { + comparable_itemA_key = itemA.get(sort_key); + comparable_itemB_key = itemB.get(sort_key); + } + else + { + comparable_itemA_key = itemA.get(sort_key).toLowerCase(); + comparable_itemB_key = itemB.get(sort_key).toLowerCase(); + } + + if ( comparable_itemA_key > comparable_itemB_key) { + return sort_order === "asc" ? 1 : -1; + } + if (comparable_itemB_key > comparable_itemA_key) { + return sort_order === "asc" ? -1 : 1; + } + + return 0; // equal }; export default { generateComparator: generateComparator From d65e3c904e9af9b1816db607319944286e01a3c4 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Sun, 7 Jul 2019 18:23:49 +0200 Subject: [PATCH 091/141] Fix galaxy-main running from source now that setup,py is no longer in the root --- scripts/galaxy-main | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/galaxy-main b/scripts/galaxy-main index c65dcf66f91..1d649f2ffad 100755 --- a/scripts/galaxy-main +++ b/scripts/galaxy-main @@ -47,7 +47,7 @@ log = logging.getLogger(__name__) real_file = os.path.realpath(__file__) GALAXY_ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(real_file), os.pardir)) -if not os.path.exists(os.path.join(GALAXY_ROOT_DIR, 'setup.py')): +if not os.path.exists(os.path.join(GALAXY_ROOT_DIR, 'run.sh')): # Galaxy is installed GALAXY_ROOT_DIR = None else: From 20ba54eecd874ad291676e5d2ffd13b848c54f10 Mon Sep 17 00:00:00 2001 From: dglaetzer Date: Sun, 7 Jul 2019 18:55:51 +0200 Subject: [PATCH 092/141] linked maf_utilities.py back to it's original place (now, finally) --- lib/galaxy/tools/util/maf_utilities.py | 1 + 1 file changed, 1 insertion(+) create mode 120000 lib/galaxy/tools/util/maf_utilities.py diff --git a/lib/galaxy/tools/util/maf_utilities.py b/lib/galaxy/tools/util/maf_utilities.py new file mode 120000 index 00000000000..07bafe2d1a5 --- /dev/null +++ b/lib/galaxy/tools/util/maf_utilities.py @@ -0,0 +1 @@ +../../datatypes/util/maf_utilities.py \ No newline at end of file From a9f6c0cd1af4f31fea2ac4e55aaa91983826d738 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sun, 7 Jul 2019 19:05:59 +0200 Subject: [PATCH 093/141] Refactor config_watchers out of webapps so can be in galaxy-app package. --- lib/galaxy/app.py | 2 +- lib/galaxy/{webapps/galaxy => }/config_watchers.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename lib/galaxy/{webapps/galaxy => }/config_watchers.py (100%) diff --git a/lib/galaxy/app.py b/lib/galaxy/app.py index 03d56cac84b..f704bd72bb0 100644 --- a/lib/galaxy/app.py +++ b/lib/galaxy/app.py @@ -11,6 +11,7 @@ import galaxy.queues import galaxy.quota import galaxy.security from galaxy import config, job_metrics, jobs +from galaxy.config_watchers import ConfigWatchers from galaxy.containers import build_container_interfaces from galaxy.managers.collections import DatasetCollectionManager from galaxy.managers.folders import FolderManager @@ -40,7 +41,6 @@ from galaxy.visualization.plugins.registry import VisualizationsRegistry from galaxy.web import url_for from galaxy.web.proxy import ProxyManager from galaxy.web_stack import application_stack_instance -from galaxy.webapps.galaxy.config_watchers import ConfigWatchers from galaxy.webhooks import WebhooksRegistry from tool_shed.galaxy_install import ( installed_repository_manager, diff --git a/lib/galaxy/webapps/galaxy/config_watchers.py b/lib/galaxy/config_watchers.py similarity index 100% rename from lib/galaxy/webapps/galaxy/config_watchers.py rename to lib/galaxy/config_watchers.py From e682d100e20a8358be7da1a796aaffb3607f57ab Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 13:17:55 -0400 Subject: [PATCH 094/141] More logging to figure out why updates are not sticking --- lib/galaxy/model/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 78b67b4a1e1..edb7cc88868 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3608,12 +3608,15 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): select library_folder.parent_id from library_folder, parent_folders_of where library_folder.id = parent_folders_of.folder_id ) - update library_folder - set update_time = (select update_time from library_dataset_dataset_association where id = :ldda_id) + update library_folder set update_time = + (select update_time from library_dataset_dataset_association where id = :ldda_id) from parent_folders_of where library_folder.id = parent_folders_of.folder_id ''') - db_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) + log.debug('Updating parent folder update_time: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) + ret = db_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) + log.debug('execute returns: {0}'.format(ret.rowcount)) + db_session.flush() class ExtendedMetadata(RepresentById): def __init__(self, data): From ac1a7c5593b00f4fae8f0a03c77811113f6c0b6c Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 13:18:42 -0400 Subject: [PATCH 095/141] calls time update during import to library too --- lib/galaxy/webapps/base/controller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/galaxy/webapps/base/controller.py b/lib/galaxy/webapps/base/controller.py index 41c1d66722e..418ebc842db 100644 --- a/lib/galaxy/webapps/base/controller.py +++ b/lib/galaxy/webapps/base/controller.py @@ -546,6 +546,7 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): # I don't see a reason why hdas copied into libraries should not be visible. # If there is, refactor `ldda.visible = True` to do this only when adding HDCAs. ldda.visible = True + ldda.updateParentFolderUpdateTimes() trans.sa_session.flush() ldda_dict = ldda.to_dict() rval = trans.security.encode_dict_ids(ldda_dict) From 084cceffe393ee8834188f7716465a4a4d8cc3e2 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Sun, 7 Jul 2019 13:39:47 -0400 Subject: [PATCH 096/141] tried passing in trans to avoid an additional session (Still not sticking) --- lib/galaxy/managers/library_datasets.py | 2 +- lib/galaxy/model/__init__.py | 6 ++---- lib/galaxy/webapps/base/controller.py | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/galaxy/managers/library_datasets.py b/lib/galaxy/managers/library_datasets.py index 7afd706a7cc..1a78e7d3883 100644 --- a/lib/galaxy/managers/library_datasets.py +++ b/lib/galaxy/managers/library_datasets.py @@ -101,7 +101,7 @@ class LibraryDatasetsManager(datasets.DatasetAssociationManager): ldda.dbkey = new_genome_build changed = True if changed: - ldda.updateParentFolderUpdateTimes() + ldda.updateParentFolderUpdateTimes(trans) trans.sa_session.add(ldda) trans.sa_session.flush() return changed diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index edb7cc88868..fea7700a497 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3594,10 +3594,9 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): rval['metadata_' + name] = val return rval - def updateParentFolderUpdateTimes(self): + def updateParentFolderUpdateTimes(self,trans): # sets the update_time for all continaing folders up the tree ldda = self - db_session = object_session(ldda) sql = text( ''' @@ -3614,9 +3613,8 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): where library_folder.id = parent_folders_of.folder_id ''') log.debug('Updating parent folder update_time: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) - ret = db_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) + ret = trans.sa_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) log.debug('execute returns: {0}'.format(ret.rowcount)) - db_session.flush() class ExtendedMetadata(RepresentById): def __init__(self, data): diff --git a/lib/galaxy/webapps/base/controller.py b/lib/galaxy/webapps/base/controller.py index 418ebc842db..29174958a1e 100644 --- a/lib/galaxy/webapps/base/controller.py +++ b/lib/galaxy/webapps/base/controller.py @@ -546,7 +546,7 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): # I don't see a reason why hdas copied into libraries should not be visible. # If there is, refactor `ldda.visible = True` to do this only when adding HDCAs. ldda.visible = True - ldda.updateParentFolderUpdateTimes() + ldda.updateParentFolderUpdateTimes(trans) trans.sa_session.flush() ldda_dict = ldda.to_dict() rval = trans.security.encode_dict_ids(ldda_dict) From 1815a6547a2f796430c68764a59b2bae7aa2ad79 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sun, 7 Jul 2019 19:09:34 +0200 Subject: [PATCH 097/141] Bring top-level galaxy Python files into galaxy-app. --- packages/app/galaxy/app.py | 1 + packages/app/galaxy/config.py | 1 + packages/app/galaxy/config_watchers.py | 1 + packages/app/galaxy/main.py | 1 + packages/app/galaxy/queue_worker.py | 1 + packages/app/galaxy/queues.py | 1 + packages/app/galaxy/version.py | 1 + test/unit/tools/test_toolbox.py | 2 +- 8 files changed, 8 insertions(+), 1 deletion(-) create mode 120000 packages/app/galaxy/app.py create mode 120000 packages/app/galaxy/config.py create mode 120000 packages/app/galaxy/config_watchers.py create mode 120000 packages/app/galaxy/main.py create mode 120000 packages/app/galaxy/queue_worker.py create mode 120000 packages/app/galaxy/queues.py create mode 120000 packages/app/galaxy/version.py diff --git a/packages/app/galaxy/app.py b/packages/app/galaxy/app.py new file mode 120000 index 00000000000..61ec0a3dd4d --- /dev/null +++ b/packages/app/galaxy/app.py @@ -0,0 +1 @@ +../../../lib/galaxy/app.py \ No newline at end of file diff --git a/packages/app/galaxy/config.py b/packages/app/galaxy/config.py new file mode 120000 index 00000000000..7e61acb3d31 --- /dev/null +++ b/packages/app/galaxy/config.py @@ -0,0 +1 @@ +../../../lib/galaxy/config.py \ No newline at end of file diff --git a/packages/app/galaxy/config_watchers.py b/packages/app/galaxy/config_watchers.py new file mode 120000 index 00000000000..ffd3e6bd109 --- /dev/null +++ b/packages/app/galaxy/config_watchers.py @@ -0,0 +1 @@ +../../../lib/galaxy/config_watchers.py \ No newline at end of file diff --git a/packages/app/galaxy/main.py b/packages/app/galaxy/main.py new file mode 120000 index 00000000000..6b458fd3ff8 --- /dev/null +++ b/packages/app/galaxy/main.py @@ -0,0 +1 @@ +../../../lib/galaxy/main.py \ No newline at end of file diff --git a/packages/app/galaxy/queue_worker.py b/packages/app/galaxy/queue_worker.py new file mode 120000 index 00000000000..7fcb68fbea9 --- /dev/null +++ b/packages/app/galaxy/queue_worker.py @@ -0,0 +1 @@ +../../../lib/galaxy/queue_worker.py \ No newline at end of file diff --git a/packages/app/galaxy/queues.py b/packages/app/galaxy/queues.py new file mode 120000 index 00000000000..a5afab45290 --- /dev/null +++ b/packages/app/galaxy/queues.py @@ -0,0 +1 @@ +../../../lib/galaxy/queues.py \ No newline at end of file diff --git a/packages/app/galaxy/version.py b/packages/app/galaxy/version.py new file mode 120000 index 00000000000..42d972d9994 --- /dev/null +++ b/packages/app/galaxy/version.py @@ -0,0 +1 @@ +../../../lib/galaxy/version.py \ No newline at end of file diff --git a/test/unit/tools/test_toolbox.py b/test/unit/tools/test_toolbox.py index f16b565e693..e592f8e43d2 100644 --- a/test/unit/tools/test_toolbox.py +++ b/test/unit/tools/test_toolbox.py @@ -9,11 +9,11 @@ import routes from six import string_types from galaxy import model +from galaxy.config_watchers import ConfigWatchers from galaxy.model import tool_shed_install from galaxy.model.tool_shed_install import mapping from galaxy.tools import ToolBox from galaxy.tools.cache import ToolCache -from galaxy.webapps.galaxy.config_watchers import ConfigWatchers from .test_tool_loader import ( SIMPLE_MACRO, SIMPLE_TOOL_WITH_MACRO From 7e3ef30719c810121df830153dd011c425c2a2a8 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Sun, 7 Jul 2019 19:57:10 +0200 Subject: [PATCH 098/141] Add ability to strip whitespace from tool environment_variables. --- lib/galaxy/tool_util/parser/xml.py | 1 + lib/galaxy/tool_util/xsd/galaxy.xsd | 5 +++++ lib/galaxy/tools/evaluation.py | 6 ++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/tool_util/parser/xml.py b/lib/galaxy/tool_util/parser/xml.py index 1182fac116c..ffd78281903 100644 --- a/lib/galaxy/tool_util/parser/xml.py +++ b/lib/galaxy/tool_util/parser/xml.py @@ -141,6 +141,7 @@ class XmlToolSource(ToolSource): definition = { "name": environment_variable_el.get("name"), "template": environment_variable_el.text, + "strip": string_as_bool(environment_variable_el.get("strip", False)), } environment_variables.append( definition diff --git a/lib/galaxy/tool_util/xsd/galaxy.xsd b/lib/galaxy/tool_util/xsd/galaxy.xsd index 2f4e839d557..2512ed1228f 100644 --- a/lib/galaxy/tool_util/xsd/galaxy.xsd +++ b/lib/galaxy/tool_util/xsd/galaxy.xsd @@ -4583,6 +4583,11 @@ variable instead of shell variable. define. + + + Whether to strip whitespace. + + diff --git a/lib/galaxy/tools/evaluation.py b/lib/galaxy/tools/evaluation.py index 9d95987e8cf..aae27f8d4c9 100644 --- a/lib/galaxy/tools/evaluation.py +++ b/lib/galaxy/tools/evaluation.py @@ -519,7 +519,7 @@ class ToolEvaluator(object): environment_variable_template = environment_variable_def["template"] fd, config_filename = tempfile.mkstemp(dir=directory) os.close(fd) - self.__write_workdir_file(config_filename, environment_variable_template, param_dict) + self.__write_workdir_file(config_filename, environment_variable_template, param_dict, strip=environment_variable_def["strip"]) config_file_basename = os.path.basename(config_filename) environment_variable["value"] = "`cat %s`" % config_file_basename environment_variable["raw"] = True @@ -573,11 +573,13 @@ class ToolEvaluator(object): return json.dumps(wrapped_json.json_wrap(self.tool.inputs, self.param_dict, handle_files=handle_files)), False - def __write_workdir_file(self, config_filename, content, context, is_template=True): + def __write_workdir_file(self, config_filename, content, context, is_template=True, strip=False): if is_template: value = fill_template(content, context=context, python_template_version=self.tool.python_template_version) else: value = unicodify(content) + if strip: + value = value.strip() with io.open(config_filename, "w", encoding='utf-8') as f: f.write(value) # For running jobs as the actual user, ensure the config file is globally readable From 6cde398e6287207a7f3652fee43fcdf6d1c63bd7 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Sun, 7 Jul 2019 20:06:37 +0200 Subject: [PATCH 099/141] add autocommit --- lib/galaxy/model/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index fea7700a497..03fa0429d35 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3611,7 +3611,7 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): (select update_time from library_dataset_dataset_association where id = :ldda_id) from parent_folders_of where library_folder.id = parent_folders_of.folder_id - ''') + ''').execution_options(autocommit=True) log.debug('Updating parent folder update_time: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) ret = trans.sa_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) log.debug('execute returns: {0}'.format(ret.rowcount)) From 2f1b120e317aadb7241996431e235f55a86cbf3f Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Mon, 8 Jul 2019 04:00:56 -0400 Subject: [PATCH 100/141] =?UTF-8?q?Passing=20the=20trans=20was=20a=20bad?= =?UTF-8?q?=20idea=E2=80=A6=20commit=20on=20that=20Caused=20user=20edits?= =?UTF-8?q?=20not=20to=20be=20saved?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/galaxy/managers/library_datasets.py | 2 +- lib/galaxy/model/__init__.py | 8 ++++---- lib/galaxy/webapps/base/controller.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/galaxy/managers/library_datasets.py b/lib/galaxy/managers/library_datasets.py index 1a78e7d3883..7afd706a7cc 100644 --- a/lib/galaxy/managers/library_datasets.py +++ b/lib/galaxy/managers/library_datasets.py @@ -101,7 +101,7 @@ class LibraryDatasetsManager(datasets.DatasetAssociationManager): ldda.dbkey = new_genome_build changed = True if changed: - ldda.updateParentFolderUpdateTimes(trans) + ldda.updateParentFolderUpdateTimes() trans.sa_session.add(ldda) trans.sa_session.flush() return changed diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 03fa0429d35..161fb42d4b8 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3594,7 +3594,7 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): rval['metadata_' + name] = val return rval - def updateParentFolderUpdateTimes(self,trans): + def updateParentFolderUpdateTimes(self): # sets the update_time for all continaing folders up the tree ldda = self @@ -3612,9 +3612,9 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): from parent_folders_of where library_folder.id = parent_folders_of.folder_id ''').execution_options(autocommit=True) - log.debug('Updating parent folder update_time: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) - ret = trans.sa_session.execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) - log.debug('execute returns: {0}'.format(ret.rowcount)) + log.debug('Updating parent folder update_times: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) + ret = object_session(self).execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) + log.debug('updated parent folders: {0}'.format(ret.rowcount)) class ExtendedMetadata(RepresentById): def __init__(self, data): diff --git a/lib/galaxy/webapps/base/controller.py b/lib/galaxy/webapps/base/controller.py index 29174958a1e..418ebc842db 100644 --- a/lib/galaxy/webapps/base/controller.py +++ b/lib/galaxy/webapps/base/controller.py @@ -546,7 +546,7 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): # I don't see a reason why hdas copied into libraries should not be visible. # If there is, refactor `ldda.visible = True` to do this only when adding HDCAs. ldda.visible = True - ldda.updateParentFolderUpdateTimes(trans) + ldda.updateParentFolderUpdateTimes() trans.sa_session.flush() ldda_dict = ldda.to_dict() rval = trans.security.encode_dict_ids(ldda_dict) From 3535efe20c369c4044292e1badbcc67d9e0b5b2d Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Mon, 8 Jul 2019 04:01:20 -0400 Subject: [PATCH 101/141] minor cleanup --- client/galaxy/scripts/mvc/library/library-util.js | 1 - lib/galaxy/webapps/galaxy/api/folder_contents.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/client/galaxy/scripts/mvc/library/library-util.js b/client/galaxy/scripts/mvc/library/library-util.js index 7bb864a0407..bb174a7cb56 100644 --- a/client/galaxy/scripts/mvc/library/library-util.js +++ b/client/galaxy/scripts/mvc/library/library-util.js @@ -13,7 +13,6 @@ var generateComparator = (sort_key, sort_order) => (itemA, itemB) => { } else if (!itemB.has(sort_key)) { return -1; } - var folder_bonus = 0.5; var comparable_itemA_key; var comparable_itemB_key; if (typeof itemA.get(sort_key) === "number") { diff --git a/lib/galaxy/webapps/galaxy/api/folder_contents.py b/lib/galaxy/webapps/galaxy/api/folder_contents.py index f0e2bdf2e9b..da81e0229d8 100644 --- a/lib/galaxy/webapps/galaxy/api/folder_contents.py +++ b/lib/galaxy/webapps/galaxy/api/folder_contents.py @@ -106,8 +106,8 @@ class FolderContentsController(BaseAPIController, UsesLibraryMixin, UsesLibraryM # Can user manage the permissions on the dataset? can_manage = is_admin or (trans.user and trans.app.security_agent.can_manage_dataset(current_user_roles, content_item.library_dataset_dataset_association.dataset)) raw_size = int(content_item.library_dataset_dataset_association.get_size()) - update_time = content_item.library_dataset_dataset_association.update_time.strftime("%Y-%m-%d %I:%M %p") nice_size = util.nice_size(raw_size) + update_time = content_item.library_dataset_dataset_association.update_time.strftime("%Y-%m-%d %I:%M %p") library_dataset_dict = content_item.to_dict() encoded_ldda_id = trans.security.encode_id(content_item.library_dataset_dataset_association.id) From b6358f53335028ae6182f251d2dca6743d4b199f Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 8 Jul 2019 10:19:11 +0200 Subject: [PATCH 102/141] Move remaining sample configs to lib/galaxy/config/sample --- {config => lib/galaxy/config/sample}/build_sites.yml.sample | 0 .../galaxy/config/sample}/container_resolvers_conf.xml.sample | 0 {config => lib/galaxy/config/sample}/containers_conf.yml.sample | 0 .../galaxy/config/sample}/environment_modules_mapping.yml.sample | 0 {config => lib/galaxy/config/sample}/error_report.yml.sample | 0 {config => lib/galaxy/config/sample}/galaxy.yml.sample | 0 .../galaxy/config/sample}/lmod_modules_mapping.yml.sample | 0 .../galaxy/config/sample}/local_conda_mapping.yml.sample | 0 .../galaxy/config/sample}/oidc_backends_config.xml.sample | 0 {config => lib/galaxy/config/sample}/oidc_config.xml.sample | 0 {config => lib/galaxy/config/sample}/reports.yml.sample | 0 .../galaxy/config/sample}/swarm_manager_conf.yml.sample | 0 {config => lib/galaxy/config/sample}/tool_destinations.yml.sample | 0 {config => lib/galaxy/config/sample}/tool_shed.yml.sample | 0 .../galaxy/config/sample}/user_preferences_extra_conf.yml.sample | 0 .../config/sample}/workflow_resource_mapper_conf.yml.sample | 0 .../config/sample}/workflow_resource_params_conf.xml.sample | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename {config => lib/galaxy/config/sample}/build_sites.yml.sample (100%) rename {config => lib/galaxy/config/sample}/container_resolvers_conf.xml.sample (100%) rename {config => lib/galaxy/config/sample}/containers_conf.yml.sample (100%) rename {config => lib/galaxy/config/sample}/environment_modules_mapping.yml.sample (100%) rename {config => lib/galaxy/config/sample}/error_report.yml.sample (100%) rename {config => lib/galaxy/config/sample}/galaxy.yml.sample (100%) rename {config => lib/galaxy/config/sample}/lmod_modules_mapping.yml.sample (100%) rename {config => lib/galaxy/config/sample}/local_conda_mapping.yml.sample (100%) rename {config => lib/galaxy/config/sample}/oidc_backends_config.xml.sample (100%) rename {config => lib/galaxy/config/sample}/oidc_config.xml.sample (100%) rename {config => lib/galaxy/config/sample}/reports.yml.sample (100%) rename {config => lib/galaxy/config/sample}/swarm_manager_conf.yml.sample (100%) rename {config => lib/galaxy/config/sample}/tool_destinations.yml.sample (100%) rename {config => lib/galaxy/config/sample}/tool_shed.yml.sample (100%) rename {config => lib/galaxy/config/sample}/user_preferences_extra_conf.yml.sample (100%) rename {config => lib/galaxy/config/sample}/workflow_resource_mapper_conf.yml.sample (100%) rename {config => lib/galaxy/config/sample}/workflow_resource_params_conf.xml.sample (100%) diff --git a/config/build_sites.yml.sample b/lib/galaxy/config/sample/build_sites.yml.sample similarity index 100% rename from config/build_sites.yml.sample rename to lib/galaxy/config/sample/build_sites.yml.sample diff --git a/config/container_resolvers_conf.xml.sample b/lib/galaxy/config/sample/container_resolvers_conf.xml.sample similarity index 100% rename from config/container_resolvers_conf.xml.sample rename to lib/galaxy/config/sample/container_resolvers_conf.xml.sample diff --git a/config/containers_conf.yml.sample b/lib/galaxy/config/sample/containers_conf.yml.sample similarity index 100% rename from config/containers_conf.yml.sample rename to lib/galaxy/config/sample/containers_conf.yml.sample diff --git a/config/environment_modules_mapping.yml.sample b/lib/galaxy/config/sample/environment_modules_mapping.yml.sample similarity index 100% rename from config/environment_modules_mapping.yml.sample rename to lib/galaxy/config/sample/environment_modules_mapping.yml.sample diff --git a/config/error_report.yml.sample b/lib/galaxy/config/sample/error_report.yml.sample similarity index 100% rename from config/error_report.yml.sample rename to lib/galaxy/config/sample/error_report.yml.sample diff --git a/config/galaxy.yml.sample b/lib/galaxy/config/sample/galaxy.yml.sample similarity index 100% rename from config/galaxy.yml.sample rename to lib/galaxy/config/sample/galaxy.yml.sample diff --git a/config/lmod_modules_mapping.yml.sample b/lib/galaxy/config/sample/lmod_modules_mapping.yml.sample similarity index 100% rename from config/lmod_modules_mapping.yml.sample rename to lib/galaxy/config/sample/lmod_modules_mapping.yml.sample diff --git a/config/local_conda_mapping.yml.sample b/lib/galaxy/config/sample/local_conda_mapping.yml.sample similarity index 100% rename from config/local_conda_mapping.yml.sample rename to lib/galaxy/config/sample/local_conda_mapping.yml.sample diff --git a/config/oidc_backends_config.xml.sample b/lib/galaxy/config/sample/oidc_backends_config.xml.sample similarity index 100% rename from config/oidc_backends_config.xml.sample rename to lib/galaxy/config/sample/oidc_backends_config.xml.sample diff --git a/config/oidc_config.xml.sample b/lib/galaxy/config/sample/oidc_config.xml.sample similarity index 100% rename from config/oidc_config.xml.sample rename to lib/galaxy/config/sample/oidc_config.xml.sample diff --git a/config/reports.yml.sample b/lib/galaxy/config/sample/reports.yml.sample similarity index 100% rename from config/reports.yml.sample rename to lib/galaxy/config/sample/reports.yml.sample diff --git a/config/swarm_manager_conf.yml.sample b/lib/galaxy/config/sample/swarm_manager_conf.yml.sample similarity index 100% rename from config/swarm_manager_conf.yml.sample rename to lib/galaxy/config/sample/swarm_manager_conf.yml.sample diff --git a/config/tool_destinations.yml.sample b/lib/galaxy/config/sample/tool_destinations.yml.sample similarity index 100% rename from config/tool_destinations.yml.sample rename to lib/galaxy/config/sample/tool_destinations.yml.sample diff --git a/config/tool_shed.yml.sample b/lib/galaxy/config/sample/tool_shed.yml.sample similarity index 100% rename from config/tool_shed.yml.sample rename to lib/galaxy/config/sample/tool_shed.yml.sample diff --git a/config/user_preferences_extra_conf.yml.sample b/lib/galaxy/config/sample/user_preferences_extra_conf.yml.sample similarity index 100% rename from config/user_preferences_extra_conf.yml.sample rename to lib/galaxy/config/sample/user_preferences_extra_conf.yml.sample diff --git a/config/workflow_resource_mapper_conf.yml.sample b/lib/galaxy/config/sample/workflow_resource_mapper_conf.yml.sample similarity index 100% rename from config/workflow_resource_mapper_conf.yml.sample rename to lib/galaxy/config/sample/workflow_resource_mapper_conf.yml.sample diff --git a/config/workflow_resource_params_conf.xml.sample b/lib/galaxy/config/sample/workflow_resource_params_conf.xml.sample similarity index 100% rename from config/workflow_resource_params_conf.xml.sample rename to lib/galaxy/config/sample/workflow_resource_params_conf.xml.sample From e75f2b089528e362a6587eb41ce4cd9c3d883ff0 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 8 Jul 2019 10:20:01 +0200 Subject: [PATCH 103/141] Symlink sample configs back to config/ --- config/auth_conf.xml.sample | 1 + config/build_sites.yml.sample | 1 + config/container_resolvers_conf.xml.sample | 1 + config/containers_conf.yml.sample | 1 + config/datatypes_conf.xml.sample | 1 + config/dependency_resolvers_conf.xml.sample | 1 + config/disposable_email_blacklist.conf.sample | 1 + config/environment_modules_mapping.yml.sample | 1 + config/error_report.yml.sample | 1 + config/galaxy.yml.sample | 1 + config/job_conf.xml.sample_advanced | 1 + config/job_conf.xml.sample_basic | 1 + config/job_metrics_conf.xml.sample | 1 + config/job_resource_params_conf.xml.sample | 1 + config/lmod_modules_mapping.yml.sample | 1 + config/local_conda_mapping.yml.sample | 1 + config/object_store_conf.xml.sample | 1 + config/oidc_backends_config.xml.sample | 1 + config/oidc_config.xml.sample | 1 + config/reports.yml.sample | 1 + config/swarm_manager_conf.yml.sample | 1 + config/tool_conf.xml.main | 1 + config/tool_conf.xml.sample | 1 + config/tool_data_table_conf.xml.sample | 1 + config/tool_destinations.yml.sample | 1 + config/tool_shed.yml.sample | 1 + config/tool_sheds_conf.xml.sample | 1 + config/user_preferences_extra_conf.yml.sample | 1 + config/workflow_resource_mapper_conf.yml.sample | 1 + config/workflow_resource_params_conf.xml.sample | 1 + config/workflow_schedulers_conf.xml.sample | 1 + 31 files changed, 31 insertions(+) create mode 120000 config/auth_conf.xml.sample create mode 120000 config/build_sites.yml.sample create mode 120000 config/container_resolvers_conf.xml.sample create mode 120000 config/containers_conf.yml.sample create mode 120000 config/datatypes_conf.xml.sample create mode 120000 config/dependency_resolvers_conf.xml.sample create mode 120000 config/disposable_email_blacklist.conf.sample create mode 120000 config/environment_modules_mapping.yml.sample create mode 120000 config/error_report.yml.sample create mode 120000 config/galaxy.yml.sample create mode 120000 config/job_conf.xml.sample_advanced create mode 120000 config/job_conf.xml.sample_basic create mode 120000 config/job_metrics_conf.xml.sample create mode 120000 config/job_resource_params_conf.xml.sample create mode 120000 config/lmod_modules_mapping.yml.sample create mode 120000 config/local_conda_mapping.yml.sample create mode 120000 config/object_store_conf.xml.sample create mode 120000 config/oidc_backends_config.xml.sample create mode 120000 config/oidc_config.xml.sample create mode 120000 config/reports.yml.sample create mode 120000 config/swarm_manager_conf.yml.sample create mode 120000 config/tool_conf.xml.main create mode 120000 config/tool_conf.xml.sample create mode 120000 config/tool_data_table_conf.xml.sample create mode 120000 config/tool_destinations.yml.sample create mode 120000 config/tool_shed.yml.sample create mode 120000 config/tool_sheds_conf.xml.sample create mode 120000 config/user_preferences_extra_conf.yml.sample create mode 120000 config/workflow_resource_mapper_conf.yml.sample create mode 120000 config/workflow_resource_params_conf.xml.sample create mode 120000 config/workflow_schedulers_conf.xml.sample diff --git a/config/auth_conf.xml.sample b/config/auth_conf.xml.sample new file mode 120000 index 00000000000..3ccdb59f68e --- /dev/null +++ b/config/auth_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/auth_conf.xml.sample \ No newline at end of file diff --git a/config/build_sites.yml.sample b/config/build_sites.yml.sample new file mode 120000 index 00000000000..7bcce830feb --- /dev/null +++ b/config/build_sites.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/build_sites.yml.sample \ No newline at end of file diff --git a/config/container_resolvers_conf.xml.sample b/config/container_resolvers_conf.xml.sample new file mode 120000 index 00000000000..ba8480ebb15 --- /dev/null +++ b/config/container_resolvers_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/container_resolvers_conf.xml.sample \ No newline at end of file diff --git a/config/containers_conf.yml.sample b/config/containers_conf.yml.sample new file mode 120000 index 00000000000..8653169c427 --- /dev/null +++ b/config/containers_conf.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/containers_conf.yml.sample \ No newline at end of file diff --git a/config/datatypes_conf.xml.sample b/config/datatypes_conf.xml.sample new file mode 120000 index 00000000000..76fe1cddeb6 --- /dev/null +++ b/config/datatypes_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/datatypes_conf.xml.sample \ No newline at end of file diff --git a/config/dependency_resolvers_conf.xml.sample b/config/dependency_resolvers_conf.xml.sample new file mode 120000 index 00000000000..7a876ca5938 --- /dev/null +++ b/config/dependency_resolvers_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/dependency_resolvers_conf.xml.sample \ No newline at end of file diff --git a/config/disposable_email_blacklist.conf.sample b/config/disposable_email_blacklist.conf.sample new file mode 120000 index 00000000000..2f93afd3c22 --- /dev/null +++ b/config/disposable_email_blacklist.conf.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/disposable_email_blacklist.conf.sample \ No newline at end of file diff --git a/config/environment_modules_mapping.yml.sample b/config/environment_modules_mapping.yml.sample new file mode 120000 index 00000000000..65a187aa867 --- /dev/null +++ b/config/environment_modules_mapping.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/environment_modules_mapping.yml.sample \ No newline at end of file diff --git a/config/error_report.yml.sample b/config/error_report.yml.sample new file mode 120000 index 00000000000..b702938128c --- /dev/null +++ b/config/error_report.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/error_report.yml.sample \ No newline at end of file diff --git a/config/galaxy.yml.sample b/config/galaxy.yml.sample new file mode 120000 index 00000000000..221c6850ffd --- /dev/null +++ b/config/galaxy.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/galaxy.yml.sample \ No newline at end of file diff --git a/config/job_conf.xml.sample_advanced b/config/job_conf.xml.sample_advanced new file mode 120000 index 00000000000..19297cf6cfe --- /dev/null +++ b/config/job_conf.xml.sample_advanced @@ -0,0 +1 @@ +../lib/galaxy/config/sample/job_conf.xml.sample_advanced \ No newline at end of file diff --git a/config/job_conf.xml.sample_basic b/config/job_conf.xml.sample_basic new file mode 120000 index 00000000000..9a38a78a624 --- /dev/null +++ b/config/job_conf.xml.sample_basic @@ -0,0 +1 @@ +../lib/galaxy/config/sample/job_conf.xml.sample_basic \ No newline at end of file diff --git a/config/job_metrics_conf.xml.sample b/config/job_metrics_conf.xml.sample new file mode 120000 index 00000000000..a5e81247f4c --- /dev/null +++ b/config/job_metrics_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/job_metrics_conf.xml.sample \ No newline at end of file diff --git a/config/job_resource_params_conf.xml.sample b/config/job_resource_params_conf.xml.sample new file mode 120000 index 00000000000..0d48fc27826 --- /dev/null +++ b/config/job_resource_params_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/job_resource_params_conf.xml.sample \ No newline at end of file diff --git a/config/lmod_modules_mapping.yml.sample b/config/lmod_modules_mapping.yml.sample new file mode 120000 index 00000000000..6625e71d2b4 --- /dev/null +++ b/config/lmod_modules_mapping.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/lmod_modules_mapping.yml.sample \ No newline at end of file diff --git a/config/local_conda_mapping.yml.sample b/config/local_conda_mapping.yml.sample new file mode 120000 index 00000000000..40383fa1381 --- /dev/null +++ b/config/local_conda_mapping.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/local_conda_mapping.yml.sample \ No newline at end of file diff --git a/config/object_store_conf.xml.sample b/config/object_store_conf.xml.sample new file mode 120000 index 00000000000..71edcdea144 --- /dev/null +++ b/config/object_store_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/object_store_conf.xml.sample \ No newline at end of file diff --git a/config/oidc_backends_config.xml.sample b/config/oidc_backends_config.xml.sample new file mode 120000 index 00000000000..0379005f51f --- /dev/null +++ b/config/oidc_backends_config.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/oidc_backends_config.xml.sample \ No newline at end of file diff --git a/config/oidc_config.xml.sample b/config/oidc_config.xml.sample new file mode 120000 index 00000000000..fabc8f8037a --- /dev/null +++ b/config/oidc_config.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/oidc_config.xml.sample \ No newline at end of file diff --git a/config/reports.yml.sample b/config/reports.yml.sample new file mode 120000 index 00000000000..dbc4f3720da --- /dev/null +++ b/config/reports.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/reports.yml.sample \ No newline at end of file diff --git a/config/swarm_manager_conf.yml.sample b/config/swarm_manager_conf.yml.sample new file mode 120000 index 00000000000..9118a9aa59f --- /dev/null +++ b/config/swarm_manager_conf.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/swarm_manager_conf.yml.sample \ No newline at end of file diff --git a/config/tool_conf.xml.main b/config/tool_conf.xml.main new file mode 120000 index 00000000000..221f0e6b05c --- /dev/null +++ b/config/tool_conf.xml.main @@ -0,0 +1 @@ +../lib/galaxy/config/sample/tool_conf.xml.main \ No newline at end of file diff --git a/config/tool_conf.xml.sample b/config/tool_conf.xml.sample new file mode 120000 index 00000000000..021c0404b98 --- /dev/null +++ b/config/tool_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/tool_conf.xml.sample \ No newline at end of file diff --git a/config/tool_data_table_conf.xml.sample b/config/tool_data_table_conf.xml.sample new file mode 120000 index 00000000000..ae59f07f32b --- /dev/null +++ b/config/tool_data_table_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/tool_data_table_conf.xml.sample \ No newline at end of file diff --git a/config/tool_destinations.yml.sample b/config/tool_destinations.yml.sample new file mode 120000 index 00000000000..31315829644 --- /dev/null +++ b/config/tool_destinations.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/tool_destinations.yml.sample \ No newline at end of file diff --git a/config/tool_shed.yml.sample b/config/tool_shed.yml.sample new file mode 120000 index 00000000000..02f3652c56d --- /dev/null +++ b/config/tool_shed.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/tool_shed.yml.sample \ No newline at end of file diff --git a/config/tool_sheds_conf.xml.sample b/config/tool_sheds_conf.xml.sample new file mode 120000 index 00000000000..5eb636b0370 --- /dev/null +++ b/config/tool_sheds_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/tool_sheds_conf.xml.sample \ No newline at end of file diff --git a/config/user_preferences_extra_conf.yml.sample b/config/user_preferences_extra_conf.yml.sample new file mode 120000 index 00000000000..73884f1b7fe --- /dev/null +++ b/config/user_preferences_extra_conf.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/user_preferences_extra_conf.yml.sample \ No newline at end of file diff --git a/config/workflow_resource_mapper_conf.yml.sample b/config/workflow_resource_mapper_conf.yml.sample new file mode 120000 index 00000000000..921cc9b39b7 --- /dev/null +++ b/config/workflow_resource_mapper_conf.yml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/workflow_resource_mapper_conf.yml.sample \ No newline at end of file diff --git a/config/workflow_resource_params_conf.xml.sample b/config/workflow_resource_params_conf.xml.sample new file mode 120000 index 00000000000..1b4ac008309 --- /dev/null +++ b/config/workflow_resource_params_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/workflow_resource_params_conf.xml.sample \ No newline at end of file diff --git a/config/workflow_schedulers_conf.xml.sample b/config/workflow_schedulers_conf.xml.sample new file mode 120000 index 00000000000..000190a25de --- /dev/null +++ b/config/workflow_schedulers_conf.xml.sample @@ -0,0 +1 @@ +../lib/galaxy/config/sample/workflow_schedulers_conf.xml.sample \ No newline at end of file From a8deae2404a8f37a9cd53b38191014a0d0bc46a9 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Mon, 8 Jul 2019 10:23:54 +0200 Subject: [PATCH 104/141] format sql statement for readibility --- lib/galaxy/model/__init__.py | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 161fb42d4b8..744fee40083 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3600,17 +3600,21 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): sql = text( ''' - with recursive - parent_folders_of(folder_id) as ( - select folder_id from library_dataset where id = :library_dataset_id - union all - select library_folder.parent_id from library_folder, parent_folders_of - where library_folder.id = parent_folders_of.folder_id - ) - update library_folder set update_time = - (select update_time from library_dataset_dataset_association where id = :ldda_id) - from parent_folders_of - where library_folder.id = parent_folders_of.folder_id + WITH RECURSIVE parent_folders_of(folder_id) AS + (SELECT folder_id + FROM library_dataset + WHERE id = :library_dataset_id + UNION ALL SELECT library_folder.parent_id + FROM library_folder, + parent_folders_of + WHERE library_folder.id = parent_folders_of.folder_id ) + UPDATE library_folder + SET update_time = + (SELECT update_time + FROM library_dataset_dataset_association + WHERE id = :ldda_id) + FROM parent_folders_of + WHERE library_folder.id = parent_folders_of.folder_id ''').execution_options(autocommit=True) log.debug('Updating parent folder update_times: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) ret = object_session(self).execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) From 705ad4b21c7fd599d57c0a22838da582ca5141f3 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Mon, 8 Jul 2019 04:42:26 -0400 Subject: [PATCH 105/141] Linting fixes --- lib/galaxy/model/__init__.py | 37 ++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 744fee40083..3cc5ef7506a 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3599,27 +3599,28 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): ldda = self sql = text( - ''' - WITH RECURSIVE parent_folders_of(folder_id) AS - (SELECT folder_id - FROM library_dataset - WHERE id = :library_dataset_id - UNION ALL SELECT library_folder.parent_id - FROM library_folder, - parent_folders_of - WHERE library_folder.id = parent_folders_of.folder_id ) - UPDATE library_folder - SET update_time = - (SELECT update_time - FROM library_dataset_dataset_association - WHERE id = :ldda_id) - FROM parent_folders_of - WHERE library_folder.id = parent_folders_of.folder_id - ''').execution_options(autocommit=True) - log.debug('Updating parent folder update_times: {0} {1} {2}'.format(sql,ldda.library_dataset_id,ldda.id)) + ''' + WITH RECURSIVE parent_folders_of(folder_id) AS + (SELECT folder_id + FROM library_dataset + WHERE id = :library_dataset_id + UNION ALL SELECT library_folder.parent_id + FROM library_folder, + parent_folders_of + WHERE library_folder.id = parent_folders_of.folder_id ) + UPDATE library_folder + SET update_time = + (SELECT update_time + FROM library_dataset_dataset_association + WHERE id = :ldda_id) + FROM parent_folders_of + WHERE library_folder.id = parent_folders_of.folder_id + ''').execution_options(autocommit=True) + log.debug('Updating parent folder update_times: {0} {1} {2}'. format(sql, ldda.library_dataset_id, ldda.id)) ret = object_session(self).execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) log.debug('updated parent folders: {0}'.format(ret.rowcount)) + class ExtendedMetadata(RepresentById): def __init__(self, data): self.data = data From dc26a388bbbabea917580faeb9f637a02b5812fd Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Mon, 8 Jul 2019 04:48:13 -0400 Subject: [PATCH 106/141] removes noisy debug output --- lib/galaxy/model/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 3cc5ef7506a..5084de09e2b 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3616,9 +3616,9 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): FROM parent_folders_of WHERE library_folder.id = parent_folders_of.folder_id ''').execution_options(autocommit=True) - log.debug('Updating parent folder update_times: {0} {1} {2}'. format(sql, ldda.library_dataset_id, ldda.id)) ret = object_session(self).execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) - log.debug('updated parent folders: {0}'.format(ret.rowcount)) + if ret.rowcount < 1: + log.warn('Attempt to updated parent folder times failed: {0} records updated.'.format(ret.rowcount)) class ExtendedMetadata(RepresentById): From 751503958fabda0aae278918b37466fd560ec2cb Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 8 Jul 2019 11:28:04 +0200 Subject: [PATCH 107/141] Fixes from PR review --- Makefile | 8 -------- lib/tool_shed/galaxy_install/migrate/check.py | 1 - .../{project_galaxy_util.py => project_galaxy_meta.py} | 2 +- packages/meta/setup.py | 2 +- 4 files changed, 2 insertions(+), 11 deletions(-) rename packages/meta/galaxy/{project_galaxy_util.py => project_galaxy_meta.py} (86%) diff --git a/Makefile b/Makefile index b19a30553d2..777f587abf9 100644 --- a/Makefile +++ b/Makefile @@ -171,14 +171,6 @@ client-eslint: node-deps ## Run client linting client-test-watch: client ## Watch and run qunit tests on changes via Karma cd client && yarn run test-watch -wheels: wheel-galaxy - -# FIXME: it'd be great if client time could be compared against the wheel and -# not rebuild client if unnecessary. But it's really only a problem in dev. -# When this stuff goes into production it won't be as big of a deal. -wheel-galaxy: client - python setup.py bdist_wheel - # Release Targets release-create-rc: release-ensure-upstream ## Create a release-candidate branch git checkout dev diff --git a/lib/tool_shed/galaxy_install/migrate/check.py b/lib/tool_shed/galaxy_install/migrate/check.py index f7a9c8747a6..b7b8582e18f 100644 --- a/lib/tool_shed/galaxy_install/migrate/check.py +++ b/lib/tool_shed/galaxy_install/migrate/check.py @@ -56,7 +56,6 @@ def verify_tools(app, url, galaxy_config_file=None, engine_options={}): if not app.config.running_functional_tests: if tool_shed_accessible: # Automatically update the value of the migrate_tools.version database table column. - # FIXME: this doesn't seem right. manage_tools = os.path.abspath(os.path.join(os.path.dirname(__file__), 'scripts', 'manage_tools.py')) cmd = [executable, manage_tools, 'upgrade', 'tools'] if galaxy_config_file: diff --git a/packages/meta/galaxy/project_galaxy_util.py b/packages/meta/galaxy/project_galaxy_meta.py similarity index 86% rename from packages/meta/galaxy/project_galaxy_util.py rename to packages/meta/galaxy/project_galaxy_meta.py index ade2b2ef107..96958e8d653 100644 --- a/packages/meta/galaxy/project_galaxy_util.py +++ b/packages/meta/galaxy/project_galaxy_meta.py @@ -7,7 +7,7 @@ PROJECT_OWNER = PROJECT_USERAME = "galaxyproject" PROJECT_URL = "https://github.com/galaxyproject/galaxy" PROJECT_AUTHOR = 'Galaxy Project and Community' PROJECT_DESCRIPTION = 'Galaxy Server Metapackage' -PROJECT_EMAIL = 'jmchilton@gmail.com' +PROJECT_EMAIL = 'galaxy-committers@lists.galaxyproject.org' RAW_CONTENT_URL = "https://raw.github.com/%s/%s/master/" % ( PROJECT_USERAME, PROJECT_NAME ) diff --git a/packages/meta/setup.py b/packages/meta/setup.py index 0edfd7a4e2d..ba0cd02ba7b 100644 --- a/packages/meta/setup.py +++ b/packages/meta/setup.py @@ -13,7 +13,7 @@ SOURCE_DIR = "galaxy" _version_re = re.compile(r'__version__\s+=\s+(.*)') -with open('%s/project_galaxy_util.py' % SOURCE_DIR, 'rb') as f: +with open('%s/project_galaxy_meta.py' % SOURCE_DIR, 'rb') as f: init_contents = f.read().decode('utf-8') def get_var(var_name): From 906413d07b033a7f796c1e2c7e550ac5902f15b4 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 8 Jul 2019 11:28:31 +0200 Subject: [PATCH 108/141] Rework config locating logic (it was reading the sample again). --- lib/galaxy/config/__init__.py | 45 ++++++++++++++--------------- scripts/manage_tool_dependencies.py | 12 ++++---- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 8894846e5b2..0b004ed9a74 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -35,7 +35,7 @@ from galaxy.util import ( ) from galaxy.util.dbkeys import GenomeBuilds from galaxy.util.logging import LOGLV_TRACE -from galaxy.util.properties import running_from_source +from galaxy.util.properties import find_config_file, running_from_source from galaxy.web.formatting import expand_pretty_datetime_format from galaxy.web_stack import ( get_stack_facts, @@ -105,21 +105,22 @@ def find_root(kwargs): class BaseAppConfiguration(object): def _set_config_base(self, config_kwargs): self.sample_config_dir = os.path.join(os.path.dirname(__file__), 'sample') - global_conf = config_kwargs.get('global_conf', None) - self.config_file = None - if global_conf and "__file__" in global_conf: - self.config_file = global_conf['__file__'] - elif running_from_source: - for f in ('config/%s.ini' % self.__class__.default_config_file_name, - os.path.join(self.sample_config_dir, '%s.sample' % self.__class__.default_config_file_name)): - if os.path.exists(f): - self.config_file = f - break - else: - log.warning("global_conf unset or __file__ not in global_conf and not running from source, unable to " - "determine config file, global_conf is: %s", global_conf) + self.config_file = find_config_file('galaxy') + # Parse global_conf and save the parser + self.global_conf = config_kwargs.get('global_conf', None) + self.global_conf_parser = configparser.ConfigParser() + if not self.config_file and self.global_conf and "__file__" in self.global_conf: + self.config_file = self.global_conf['__file__'] if self.config_file is None: log.warning("No Galaxy config file found, running from current working directory: %s", os.getcwd()) + else: + try: + self.global_conf_parser.read(self.config_file) + except (IOError, OSError): + raise + except Exception: + # Not an INI file + pass self.config_dir = config_kwargs.get('config_dir', os.path.dirname(self.config_file or os.getcwd())) self.data_dir = config_kwargs.get('data_dir', None) # mutable_config_dir is intentionally not configurable. You can @@ -129,9 +130,11 @@ class BaseAppConfiguration(object): if running_from_source: if self.data_dir is None: self.data_dir = os.path.join(self.root, 'database') + if self.config_file is None: + self.config_dir = os.path.join(self.root, 'config') self.mutable_config_dir = self.config_dir # TODO: do we still need to support ../shed_tools? - self.shed_tools_dir = "database/shed_tools" + self.shed_tools_dir = os.path.join(self.data_dir, 'shed_tools') else: if self.data_dir is None: self.data_dir = os.path.join(self.config_dir, 'data') @@ -608,15 +611,9 @@ class GalaxyAppConfiguration(BaseAppConfiguration): self.distributed_object_store_config_file = resolve_path(self.distributed_object_store_config_file, self.root) self.irods_root_collection_path = kwargs.get('irods_root_collection_path', None) self.irods_default_resource = kwargs.get('irods_default_resource', None) - # Parse global_conf and save the parser - global_conf = kwargs.get('global_conf', None) - global_conf_parser = configparser.ConfigParser() - self.global_conf_parser = global_conf_parser - if self.config_file is not None: - global_conf_parser.read(self.config_file) # Heartbeat log file name override - if global_conf is not None and 'heartbeat_log' in global_conf: - self.heartbeat_log = global_conf['heartbeat_log'] + if self.global_conf is not None and 'heartbeat_log' in self.global_conf: + self.heartbeat_log = self.global_conf['heartbeat_log'] if self.heartbeat_log is None: self.heartbeat_log = 'heartbeat_{server_name}.log' # Determine which 'server:' this is @@ -633,7 +630,7 @@ class GalaxyAppConfiguration(BaseAppConfiguration): self.config_dict['base_server_name'] = self.base_server_name = self.server_name # Store all configured server names for the message queue routing self.server_names = [] - for section in global_conf_parser.sections(): + for section in self.global_conf_parser.sections(): if section.startswith('server:'): self.server_names.append(section.replace('server:', '', 1)) diff --git a/scripts/manage_tool_dependencies.py b/scripts/manage_tool_dependencies.py index 57175f4837f..72dba77e92f 100644 --- a/scripts/manage_tool_dependencies.py +++ b/scripts/manage_tool_dependencies.py @@ -3,12 +3,9 @@ import sys sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, 'lib'))) -from galaxy.config import ( - configure_logging, - find_path, - find_root, -) +from galaxy.config import configure_logging from galaxy.tool_util.deps import build_dependency_manager +from galaxy.util.properties import find_config_file from galaxy.util.script import main_factory DESCRIPTION = "Script to manage tool dependencies (with focus on a Conda environments)." @@ -26,8 +23,9 @@ def _build_dependency_manager_no_config(kwargs): which we do not have available in this script (an optimization). """ configure_logging(kwargs) - root = find_root(kwargs) - dependency_resolvers_config_file = find_path(kwargs, "dependency_resolvers_config_file", root) + base, ext = os.path.splitext(kwargs.get('dependency_resolvers_config_file', 'dependency_resolvers_conf.xml')) + dependency_resolvers_config_file = find_config_file(base, exts=[ext.lstrip('.')]) + # FIXME: default is wrong for installed Galaxy dependency_manager = build_dependency_manager(app_config_dict=kwargs, conf_file=dependency_resolvers_config_file, default_tool_dependency_dir="database/dependencies") return dependency_manager From d187b289518288eb595ccc777bf67bce716defd6 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Mon, 8 Jul 2019 11:43:11 +0200 Subject: [PATCH 109/141] Stop trying to guess a web port from the config since most configs are not INI anymore anyway. --- lib/galaxy/config/__init__.py | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 0b004ed9a74..739da1e2551 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -645,7 +645,7 @@ class GalaxyAppConfiguration(BaseAppConfiguration): # so dependending on the context a better default can be used ( # request url in a web thread, Docker parent in IE stuff, etc...) galaxy_infrastructure_url = "http://localhost" - web_port = self.galaxy_infrastructure_web_port or self.guess_galaxy_port() + web_port = self.galaxy_infrastructure_web_port if web_port: galaxy_infrastructure_url += ":%s" % (web_port) galaxy_infrastructure_url_set = False @@ -955,19 +955,6 @@ class GalaxyAppConfiguration(BaseAppConfiguration): """ return resolve_path(path, self.root) - def guess_galaxy_port(self): - # Code derived from Jupyter work ie.mako - config = configparser.SafeConfigParser({'port': '8080'}) - if self.config_file: - config.read(self.config_file) - - try: - port = config.getint('server:%s' % self.server_name, 'port') - except Exception: - # uWSGI galaxy installations don't use paster and only speak uWSGI not http - port = None - return port - @staticmethod def _parse_allowed_origin_hostnames(kwargs): """ From 3255284fb03cf8bc3a2b36d4694c02659d583112 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Mon, 8 Jul 2019 12:17:38 +0200 Subject: [PATCH 110/141] Fix for fetching strip if not defined --- lib/galaxy/tools/evaluation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tools/evaluation.py b/lib/galaxy/tools/evaluation.py index aae27f8d4c9..fb1a6ebd7cc 100644 --- a/lib/galaxy/tools/evaluation.py +++ b/lib/galaxy/tools/evaluation.py @@ -519,7 +519,7 @@ class ToolEvaluator(object): environment_variable_template = environment_variable_def["template"] fd, config_filename = tempfile.mkstemp(dir=directory) os.close(fd) - self.__write_workdir_file(config_filename, environment_variable_template, param_dict, strip=environment_variable_def["strip"]) + self.__write_workdir_file(config_filename, environment_variable_template, param_dict, strip=environment_variable_def.get("strip", False)) config_file_basename = os.path.basename(config_filename) environment_variable["value"] = "`cat %s`" % config_file_basename environment_variable["raw"] = True From 4f99db9d3fed3e2f94cee7c9f859c6e036b9339d Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Mon, 8 Jul 2019 06:29:57 -0400 Subject: [PATCH 111/141] =?UTF-8?q?starting=20point=20for=20a=20test?= =?UTF-8?q?=E2=80=A6=20Failing=20on=20sqlite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/api/test_libraries.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/test/api/test_libraries.py b/test/api/test_libraries.py index a9f8d5f4f05..671753c5eb2 100644 --- a/test/api/test_libraries.py +++ b/test/api/test_libraries.py @@ -232,6 +232,27 @@ class LibrariesApiTestCase(api.ApiTestCase, TestsDatasets): self._assert_status_code_is(create_response, 200) self._assert_has_keys(create_response.json(), "name", "id") + def test_create_dataset_in_subfolder(self): + library = self.library_populator.new_private_library("ForCreateDatasets") + folder_response = self._create_folder(library) + self._assert_status_code_is(folder_response, 200) + folder_id = folder_response.json()[0]['id'] + subfolder_response = self._create_subfolder(folder_id) + self._assert_status_code_is(folder_response, 200) + print(subfolder_response.json()) + subfolder_id = subfolder_response.json()['id'] + history_id = self.dataset_populator.new_history() + hda_id = self.dataset_populator.new_dataset(history_id, content="1 2 3 sub")['id'] + payload = {'from_hda_id': hda_id} + create_response = self._post("folders/%s/contents" % subfolder_id, payload) + self._assert_status_code_is(create_response, 200) + self._assert_has_keys(create_response.json(), "name", "id") + dataset_update_time = create_response.json()['update_time'] + container_fetch_response = self.galaxy_interactor.get("folders/%s/contents" % folder_id ) + container_update_time = container_fetch_response.json()['folder_contents'][0]['update_time'] + assert dataset_update_time == container_update_time, container_fetch_response + + def test_update_dataset_in_folder(self): ld = self._create_dataset_in_folder_in_library("ForUpdateDataset") data = {'name': 'updated_name', 'file_ext': 'fastq', 'misc_info': 'updated_info', 'genome_build': 'updated_genome_build'} @@ -301,6 +322,13 @@ class LibrariesApiTestCase(api.ApiTestCase, TestsDatasets): ) return self._post("libraries/%s/contents" % library["id"], data=create_data) + def _create_subfolder(self, containing_folder_id): + create_data = dict( + description="new subfolder desc", + name="New Subfolder", + ) + return self._post("folders/%s" % containing_folder_id, data=create_data) + def _create_dataset_in_folder_in_library(self, library_name): library = self.library_populator.new_private_library(library_name) folder_response = self._create_folder(library) From 8704fc5648219a09b255b0ac46c35aecaba56287 Mon Sep 17 00:00:00 2001 From: guerler Date: Mon, 8 Jul 2019 12:32:48 +0200 Subject: [PATCH 112/141] Fix search template in workflow editor --- client/galaxy/scripts/mvc/workflow/workflow-view.js | 3 +++ templates/webapps/galaxy/workflow/editor.mako | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view.js b/client/galaxy/scripts/mvc/workflow/workflow-view.js index eb5449e4268..f4a29b16cf1 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -47,6 +47,7 @@ function reset_tool_search(initValue) { // Reset search input. tool_menu_frame.find("#search-spinner").hide(); + tool_menu_frame.find("#search-clear-btn").show(); if (initValue) { var search_input = tool_menu_frame.find("#tool-search-query"); search_input.val("search tools"); @@ -155,6 +156,7 @@ export default Backbone.View.extend({ } // Start a new ajax-request in X ms $("#search-spinner").show(); + $("#search-clear-btn").hide(); this.timer = window.setTimeout(() => { $.get( self.urls.tool_search, @@ -209,6 +211,7 @@ export default Backbone.View.extend({ $("#search-no-results").show(); } $("#search-spinner").hide(); + $("#search-clear-btn").show(); }, "json" ); diff --git a/templates/webapps/galaxy/workflow/editor.mako b/templates/webapps/galaxy/workflow/editor.mako index 09f66de636d..f5872a6c4cc 100644 --- a/templates/webapps/galaxy/workflow/editor.mako +++ b/templates/webapps/galaxy/workflow/editor.mako @@ -146,10 +146,10 @@
- From 84fd69faba1aa4bf18b6d1d2413534e8a899c5be Mon Sep 17 00:00:00 2001 From: dglaetzer Date: Mon, 8 Jul 2019 12:54:55 +0200 Subject: [PATCH 113/141] dummy tests for containers --- packages/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test.sh b/packages/test.sh index 43c4f70550c..43bee12d850 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -31,7 +31,7 @@ PACKAGE_DIRS=( ) # containers has no tests, tool_util not yet working 100%, # data has many problems quota, tool shed install database, etc.. -RUN_TESTS=(1 1 1 0 1 1 1 0 1 0 0 0 0) +RUN_TESTS=(1 1 1 1 1 1 1 0 1 0 0 0 0) for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do package_dir=${PACKAGE_DIRS[$i]} From 2a42853bfac0c6239d610338a366878b9e59c451 Mon Sep 17 00:00:00 2001 From: dglaetzer Date: Mon, 8 Jul 2019 12:55:43 +0200 Subject: [PATCH 114/141] add tests --- packages/containers/tests/test_containers.py | 1 + test/unit/test_containers.py | 7 +++++++ 2 files changed, 8 insertions(+) create mode 120000 packages/containers/tests/test_containers.py create mode 100644 test/unit/test_containers.py diff --git a/packages/containers/tests/test_containers.py b/packages/containers/tests/test_containers.py new file mode 120000 index 00000000000..2fb68299fa1 --- /dev/null +++ b/packages/containers/tests/test_containers.py @@ -0,0 +1 @@ +../../../test/unit/test_containers.py \ No newline at end of file diff --git a/test/unit/test_containers.py b/test/unit/test_containers.py new file mode 100644 index 00000000000..e2d559b0b02 --- /dev/null +++ b/test/unit/test_containers.py @@ -0,0 +1,7 @@ +import galaxy.containers + +def test_dummy(): + t = galaxy.containers.parse_containers_config('') + assert t == {'_default_': {'type': 'docker'}} + s = galaxy.containers.docker_model.DockerAttributeContainer() + assert s.members == frozenset([]) From 4a6ecd0b6151b49f6e43c528d44c1bdb727d19b7 Mon Sep 17 00:00:00 2001 From: dglaetzer Date: Mon, 8 Jul 2019 13:07:56 +0200 Subject: [PATCH 115/141] linting --- test/unit/test_containers.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/unit/test_containers.py b/test/unit/test_containers.py index e2d559b0b02..02e30a462e0 100644 --- a/test/unit/test_containers.py +++ b/test/unit/test_containers.py @@ -1,7 +1,8 @@ import galaxy.containers + def test_dummy(): - t = galaxy.containers.parse_containers_config('') - assert t == {'_default_': {'type': 'docker'}} - s = galaxy.containers.docker_model.DockerAttributeContainer() - assert s.members == frozenset([]) + t = galaxy.containers.parse_containers_config('') + assert t == {'_default_': {'type': 'docker'}} + s = galaxy.containers.docker_model.DockerAttributeContainer() + assert s.members == frozenset([]) From a5b3308a8947023ad5921ed7c23f18f8e5054164 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Mon, 8 Jul 2019 13:34:54 +0200 Subject: [PATCH 116/141] Update lib/galaxy/tool_util/xsd/galaxy.xsd Co-Authored-By: Nicola Soranzo --- lib/galaxy/tool_util/xsd/galaxy.xsd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tool_util/xsd/galaxy.xsd b/lib/galaxy/tool_util/xsd/galaxy.xsd index 2512ed1228f..482a71a795e 100644 --- a/lib/galaxy/tool_util/xsd/galaxy.xsd +++ b/lib/galaxy/tool_util/xsd/galaxy.xsd @@ -4585,7 +4585,7 @@ define. - Whether to strip whitespace. + Whether to strip leading and trailing whitespace from the calculated value before exporting the environment variable. From 8876f165d17e785d9a6b23a35621447f7fceddc9 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Mon, 8 Jul 2019 12:44:59 +0100 Subject: [PATCH 117/141] Use temporary file for tests Remove `lib/galaxy/datatypes/test/temp2.txt` which was added by mistake in commit 54d2ca01f879b19222edf538205b48e2fc55fa3b . --- lib/galaxy/datatypes/test/temp2.txt | 2 -- test/unit/datatypes/test_sniff.py | 9 ++++----- 2 files changed, 4 insertions(+), 7 deletions(-) delete mode 100644 lib/galaxy/datatypes/test/temp2.txt diff --git a/lib/galaxy/datatypes/test/temp2.txt b/lib/galaxy/datatypes/test/temp2.txt deleted file mode 100644 index 2c3f803432c..00000000000 --- a/lib/galaxy/datatypes/test/temp2.txt +++ /dev/null @@ -1,2 +0,0 @@ -1 2 -3 4 diff --git a/test/unit/datatypes/test_sniff.py b/test/unit/datatypes/test_sniff.py index faf75443281..3217ae6aaf6 100644 --- a/test/unit/datatypes/test_sniff.py +++ b/test/unit/datatypes/test_sniff.py @@ -18,11 +18,10 @@ def assert_converts_to_1234_convert_sep2tabs(content, expected='1\t2\n3\t4\n'): def assert_converts_to_1234_convert(content, block_size=1024): - fname = get_test_fname('temp2.txt') - with open(fname, 'w') as fh: - fh.write(content) - rval = convert_newlines(fname, tmp_prefix="gxtest", tmp_dir=tempfile.gettempdir(), block_size=block_size) - actual_contents = open(fname).read() + with tempfile.NamedTemporaryFile(delete=False, mode='w') as tf: + tf.write(content) + rval = convert_newlines(tf.name, tmp_prefix="gxtest", tmp_dir=tempfile.gettempdir(), block_size=block_size) + actual_contents = open(tf.name).read() assert '1 2\n3 4\n' == actual_contents, actual_contents assert rval == (2, None), "rval != %s for %s" % (rval, content) From b7da06e1fcf0f9796d6c8099a482cef5dc00e688 Mon Sep 17 00:00:00 2001 From: James Taylor Date: Mon, 8 Jul 2019 14:22:22 +0200 Subject: [PATCH 118/141] Tool menu styles: restore indent and fix tools not in sections. --- client/galaxy/style/scss/base.scss | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/client/galaxy/style/scss/base.scss b/client/galaxy/style/scss/base.scss index 8e69136845d..74b47b27bcb 100644 --- a/client/galaxy/style/scss/base.scss +++ b/client/galaxy/style/scss/base.scss @@ -1500,11 +1500,7 @@ div.toolPanelLabel { text-transform: uppercase; } -div.toolSectionWrapper div.toolPanelLabel { - font-size: inherit; -} - -div.toolSectionTitle, div.toolTitle { +div.toolSectionTitle, div.toolTitle, div.toolTitleNoSection { display: block; .labels { float: right; @@ -1515,10 +1511,6 @@ div.toolSectionTitle, div.toolTitle { @extend .py-1; text-decoration: none; display: block; - span.tool-old-link { - font-weight: 500; - // text-decoration: underline; - } &:hover { background: darken($panel-bg-color, 5%); } @@ -1530,13 +1522,14 @@ div.toolSectionTitle, div.toolTitle { } } } - -div.toolTitleNoSection { - @extend .pb-1; - font-weight: bold; + +div.toolSectionWrapper { + div.toolTitle a, div.toolPanelLabel { + @extend .pl-4; + font-size: inherit; + } } -// Dataset Display Styles #loading_indicator { position: fixed; right: 10px; From 8a327db74dcd1b818c895d70a7b9786bc6f782f4 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 8 Jul 2019 14:52:13 +0200 Subject: [PATCH 119/141] Remove log_tempfile. Simplify packaging - @natefoo said I could. --- lib/log_tempfile.py | 30 ------------------------------ scripts/paster.py | 4 ---- 2 files changed, 34 deletions(-) delete mode 100644 lib/log_tempfile.py diff --git a/lib/log_tempfile.py b/lib/log_tempfile.py deleted file mode 100644 index 3cbb90dd33b..00000000000 --- a/lib/log_tempfile.py +++ /dev/null @@ -1,30 +0,0 @@ -# override tempfile methods for debugging -import logging -import tempfile -import traceback - -log = logging.getLogger(__name__) - - -class TempFile(object): - def __init__(self): - tempfile._NamedTemporaryFile = tempfile.NamedTemporaryFile - tempfile._mkstemp = tempfile.mkstemp - tempfile.NamedTemporaryFile = self.NamedTemporaryFile - tempfile.mkstemp = self.mkstemp - - def NamedTemporaryFile(self, *args, **kwargs): - f = tempfile._NamedTemporaryFile(*args, **kwargs) - try: - log.debug(("Opened tempfile %s with NamedTemporaryFile:\n" % f.name) + "".join(traceback.format_stack())) - except AttributeError: - pass - return f - - def mkstemp(self, *args, **kwargs): - f = tempfile._mkstemp(*args, **kwargs) - try: - log.debug(("Opened tempfile %s with mkstemp:\n" % f[1]) + "".join(traceback.format_stack())) - except TypeError: - pass - return f diff --git a/scripts/paster.py b/scripts/paster.py index bcd2080724c..90fb608d940 100755 --- a/scripts/paster.py +++ b/scripts/paster.py @@ -20,8 +20,4 @@ try: except Exception: sys.exit(1) -if 'LOG_TEMPFILES' in os.environ: - from log_tempfile import TempFile - _log_tempfile = TempFile() - serve.run() From 1bed6c4931164f8ccb8f838912aa4a1f01a21018 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 8 Jul 2019 14:59:52 +0200 Subject: [PATCH 120/141] Remove psyco_full.py - unused as far as I can tell. @natefoo didn't object. --- lib/psyco_full.py | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 lib/psyco_full.py diff --git a/lib/psyco_full.py b/lib/psyco_full.py deleted file mode 100644 index f18ba8e0758..00000000000 --- a/lib/psyco_full.py +++ /dev/null @@ -1,5 +0,0 @@ -try: - import psyco - psyco.full() -except Exception: - pass From d34142e4203880393431d471a43b87e95980579e Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 8 Jul 2019 12:13:41 +0200 Subject: [PATCH 121/141] Skip migrations on entirely clean new databases This should be a very nice speedup for ansible tutorials, tests, planemo etc. --- lib/galaxy/config/__init__.py | 15 +++++---------- lib/galaxy/model/migrate/check.py | 13 ++++++++++++- .../model/tool_shed_install/migrate/check.py | 9 +++++++++ 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 739da1e2551..8c434600497 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -26,6 +26,8 @@ from six.moves import configparser from galaxy.containers import parse_containers_config from galaxy.exceptions import ConfigurationError +from galaxy.model import mapping +from galaxy.model.tool_shed_install.migrate.check import create_or_verify_database as tsi_create_or_verify_database from galaxy.tool_util.deps.container_resolvers.mulled import DEFAULT_CHANNELS from galaxy.util import ( ExecutionTimer, @@ -1014,7 +1016,6 @@ def get_database_url(config): def init_models_from_config(config, map_install_models=False, object_store=None, trace_logger=None): db_url = get_database_url(config) - from galaxy.model import mapping model = mapping.init( config.file_path, db_url, @@ -1199,6 +1200,7 @@ class ConfiguresGalaxyMixin(object): # database file under the hood. combined_install_database = not(install_db_url and install_db_url != db_url) install_db_url = install_db_url or db_url + install_database_options = self.config.database_engine_options if combined_install_database else self.config.install_database_engine_options if self.config.database_wait: self._wait_for_database(db_url) @@ -1212,17 +1214,11 @@ class ConfiguresGalaxyMixin(object): # is a new installation, we'll restrict the tool migration messaging. from galaxy.model.migrate.check import create_or_verify_database create_or_verify_database(db_url, config_file, self.config.database_engine_options, app=self) - if not combined_install_database: - from galaxy.model.tool_shed_install.migrate.check import create_or_verify_database as tsi_create_or_verify_database - tsi_create_or_verify_database(install_db_url, self.config.install_database_engine_options, app=self) + tsi_create_or_verify_database(install_db_url, install_database_options, app=self) if check_migrate_tools: # Alert the Galaxy admin to tools that have been moved from the distribution to the tool shed. from tool_shed.galaxy_install.migrate.check import verify_tools - if combined_install_database: - install_database_options = self.config.database_engine_options - else: - install_database_options = self.config.install_database_engine_options verify_tools(self, install_db_url, config_file, install_database_options) self.model = init_models_from_config( @@ -1238,9 +1234,8 @@ class ConfiguresGalaxyMixin(object): from galaxy.model.tool_shed_install import mapping as install_mapping install_db_url = self.config.install_database_connection log.info("Install database using its own connection %s" % install_db_url) - install_db_engine_options = self.config.install_database_engine_options self.install_model = install_mapping.init(install_db_url, - install_db_engine_options) + install_database_options) def _configure_signal_handlers(self, handlers): for sig, handler in handlers.items(): diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py index 3fe5f987446..e095bfc6675 100644 --- a/lib/galaxy/model/migrate/check.py +++ b/lib/galaxy/model/migrate/check.py @@ -11,6 +11,8 @@ from sqlalchemy import ( from sqlalchemy.exc import NoSuchTableError from sqlalchemy_utils import create_database, database_exists +from galaxy.model import mapping + log = logging.getLogger(__name__) # path relative to galaxy @@ -60,7 +62,16 @@ def create_or_verify_database(url, galaxy_config_file, engine_options={}, app=No migrate_to_current_version(engine, db_schema) meta = MetaData(bind=engine) - if new_database or (app and getattr(app.config, 'database_auto_migrate', False)): + if new_database and app: + log.info("Creating new database from scratch, skipping migrations") + current_version = migrate_repository.version().version + mapping.init(file_path=app.config.file_path, url=url, create_tables=True) + schema.ControlledSchema.create(engine, migrate_repository, version=current_version) + db_schema = schema.ControlledSchema(engine, migrate_repository) + assert db_schema.version == current_version + migrate() + return + elif app and getattr(app.config, 'database_auto_migrate', False): migrate() return diff --git a/lib/galaxy/model/tool_shed_install/migrate/check.py b/lib/galaxy/model/tool_shed_install/migrate/check.py index 7773146965e..a7fffd7381a 100644 --- a/lib/galaxy/model/tool_shed_install/migrate/check.py +++ b/lib/galaxy/model/tool_shed_install/migrate/check.py @@ -13,6 +13,9 @@ from sqlalchemy import ( ) from sqlalchemy.exc import NoSuchTableError +from galaxy.model.tool_shed_install import mapping + + log = logging.getLogger(__name__) # path relative to galaxy @@ -48,6 +51,12 @@ def create_or_verify_database(url, engine_options={}, app=None): # No table means a completely uninitialized database. If we # have an app, we'll set its new_installation setting to True # so the tool migration process will be skipped. + log.info("Creating install database from scratch, skipping migrations") + mapping.init(url=url, create_tables=True) + current_version = migrate_repository.version().version + schema.ControlledSchema.create(engine, migrate_repository, version=current_version) + db_schema = schema.ControlledSchema(engine, migrate_repository) + assert db_schema.version == current_version migrate() return From ea0688146d74b0d60ce3d5e7bbc6392b54598b95 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 8 Jul 2019 13:24:57 +0200 Subject: [PATCH 122/141] Use correct install db url --- lib/galaxy/config/__init__.py | 2 +- lib/galaxy/model/migrate/check.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 8c434600497..1848cc0957f 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -1199,7 +1199,7 @@ class ConfiguresGalaxyMixin(object): # TODO: Consider more aggressive check here that this is not the same # database file under the hood. combined_install_database = not(install_db_url and install_db_url != db_url) - install_db_url = install_db_url or db_url + install_db_url = db_url if combined_install_database else install_db_url install_database_options = self.config.database_engine_options if combined_install_database else self.config.install_database_engine_options if self.config.database_wait: diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py index e095bfc6675..8e00fcd1b9c 100644 --- a/lib/galaxy/model/migrate/check.py +++ b/lib/galaxy/model/migrate/check.py @@ -71,7 +71,7 @@ def create_or_verify_database(url, galaxy_config_file, engine_options={}, app=No assert db_schema.version == current_version migrate() return - elif app and getattr(app.config, 'database_auto_migrate', False): + elif getattr(app.config, 'database_auto_migrate', False): migrate() return From a01adf6da23ce524e5fcedd1166ad68e13cd33be Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Mon, 8 Jul 2019 14:11:43 +0200 Subject: [PATCH 123/141] Do actually initialize tool shed mapping --- lib/galaxy/config/__init__.py | 7 ++++--- lib/galaxy/model/mapping.py | 1 + lib/galaxy/model/migrate/check.py | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/config/__init__.py b/lib/galaxy/config/__init__.py index 1848cc0957f..a7d0b98f974 100644 --- a/lib/galaxy/config/__init__.py +++ b/lib/galaxy/config/__init__.py @@ -1199,7 +1199,7 @@ class ConfiguresGalaxyMixin(object): # TODO: Consider more aggressive check here that this is not the same # database file under the hood. combined_install_database = not(install_db_url and install_db_url != db_url) - install_db_url = db_url if combined_install_database else install_db_url + install_db_url = install_db_url or db_url install_database_options = self.config.database_engine_options if combined_install_database else self.config.install_database_engine_options if self.config.database_wait: @@ -1213,8 +1213,9 @@ class ConfiguresGalaxyMixin(object): # Initialize database / check for appropriate schema version. # If this # is a new installation, we'll restrict the tool migration messaging. from galaxy.model.migrate.check import create_or_verify_database - create_or_verify_database(db_url, config_file, self.config.database_engine_options, app=self) - tsi_create_or_verify_database(install_db_url, install_database_options, app=self) + create_or_verify_database(db_url, config_file, self.config.database_engine_options, app=self, map_install_models=combined_install_database) + if not combined_install_database: + tsi_create_or_verify_database(install_db_url, install_database_options, app=self) if check_migrate_tools: # Alert the Galaxy admin to tools that have been moved from the distribution to the tool shed. diff --git a/lib/galaxy/model/mapping.py b/lib/galaxy/model/mapping.py index 251c2695d17..0024ce1d84a 100644 --- a/lib/galaxy/model/mapping.py +++ b/lib/galaxy/model/mapping.py @@ -2776,6 +2776,7 @@ def init(file_path, url, engine_options=None, create_tables=False, map_install_m if map_install_models: import galaxy.model.tool_shed_install.mapping # noqa: F401 from galaxy.model import tool_shed_install + galaxy.model.tool_shed_install.mapping.init(url=url, engine_options=engine_options, create_tables=create_tables) model_modules.append(tool_shed_install) result = ModelMapping(model_modules, engine=engine) diff --git a/lib/galaxy/model/migrate/check.py b/lib/galaxy/model/migrate/check.py index 8e00fcd1b9c..07849a64a7f 100644 --- a/lib/galaxy/model/migrate/check.py +++ b/lib/galaxy/model/migrate/check.py @@ -20,7 +20,7 @@ migrate_repository_directory = os.path.abspath(os.path.dirname(__file__)).replac migrate_repository = repository.Repository(migrate_repository_directory) -def create_or_verify_database(url, galaxy_config_file, engine_options={}, app=None): +def create_or_verify_database(url, galaxy_config_file, engine_options={}, app=None, map_install_models=False): """ Check that the database is use-able, possibly creating it if empty (this is the only time we automatically create tables, otherwise we force the @@ -65,7 +65,7 @@ def create_or_verify_database(url, galaxy_config_file, engine_options={}, app=No if new_database and app: log.info("Creating new database from scratch, skipping migrations") current_version = migrate_repository.version().version - mapping.init(file_path=app.config.file_path, url=url, create_tables=True) + mapping.init(file_path=app.config.file_path, url=url, map_install_models=map_install_models, create_tables=True) schema.ControlledSchema.create(engine, migrate_repository, version=current_version) db_schema = schema.ControlledSchema(engine, migrate_repository) assert db_schema.version == current_version From ec454313eafbfe25c15c48a75037e6b1f1de99a8 Mon Sep 17 00:00:00 2001 From: dglaetzer Date: Mon, 8 Jul 2019 17:28:32 +0200 Subject: [PATCH 124/141] dummy tests for auth package --- packages/auth/tests/test_auth.py | 1 + packages/test.sh | 3 +-- test/unit/test_auth.py | 17 +++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) create mode 120000 packages/auth/tests/test_auth.py create mode 100644 test/unit/test_auth.py diff --git a/packages/auth/tests/test_auth.py b/packages/auth/tests/test_auth.py new file mode 120000 index 00000000000..58ff6f86bf1 --- /dev/null +++ b/packages/auth/tests/test_auth.py @@ -0,0 +1 @@ +../../../test/unit/test_auth.py \ No newline at end of file diff --git a/packages/test.sh b/packages/test.sh index 43bee12d850..b7efc0fa9b0 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -31,8 +31,7 @@ PACKAGE_DIRS=( ) # containers has no tests, tool_util not yet working 100%, # data has many problems quota, tool shed install database, etc.. -RUN_TESTS=(1 1 1 1 1 1 1 0 1 0 0 0 0) - +RUN_TESTS=(1 1 1 1 1 1 1 1 1 0 0 0 0) for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do package_dir=${PACKAGE_DIRS[$i]} run_tests=${RUN_TESTS[$i]} diff --git a/test/unit/test_auth.py b/test/unit/test_auth.py new file mode 100644 index 00000000000..18a128b1107 --- /dev/null +++ b/test/unit/test_auth.py @@ -0,0 +1,17 @@ +from galaxy.auth.providers.alwaysreject import AlwaysReject +from galaxy.auth.providers.localdb import LocalDB +from galaxy.model import User + + +def test_alwaysreject(): + t = AlwaysReject() + assert t.authenticate('testmail', 'testuser', 'secret', dict()) == (None, '', '') + +def test_localdb(): + user = User(email='testmail', username='tester') + user.set_password_cleartext('test') + t = LocalDB() + reject = t.authenticate_user(user, 'wrong', {'redact_username_in_logs': False}) + accept = t.authenticate_user(user, 'test', {'redact_username_in_logs': False}) + assert reject is False + assert accept is True From 2a1dd4b1a69cdd8ac3ee70821b78c6106a0a254f Mon Sep 17 00:00:00 2001 From: dglaetzer <35349535+dglaetzer@users.noreply.github.com> Date: Mon, 8 Jul 2019 17:52:36 +0200 Subject: [PATCH 125/141] Update test_auth.py --- test/unit/test_auth.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/unit/test_auth.py b/test/unit/test_auth.py index 18a128b1107..557de59cb13 100644 --- a/test/unit/test_auth.py +++ b/test/unit/test_auth.py @@ -7,6 +7,7 @@ def test_alwaysreject(): t = AlwaysReject() assert t.authenticate('testmail', 'testuser', 'secret', dict()) == (None, '', '') + def test_localdb(): user = User(email='testmail', username='tester') user.set_password_cleartext('test') From d35df5eca71318b92b6519c37b7b0eb504d7a3fe Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Mon, 8 Jul 2019 13:10:35 -0400 Subject: [PATCH 126/141] Sqlite3 compatible syntax --- lib/galaxy/model/__init__.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 5084de09e2b..0d93ec7ba44 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3601,20 +3601,20 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): sql = text( ''' WITH RECURSIVE parent_folders_of(folder_id) AS - (SELECT folder_id - FROM library_dataset - WHERE id = :library_dataset_id - UNION ALL SELECT library_folder.parent_id - FROM library_folder, - parent_folders_of - WHERE library_folder.id = parent_folders_of.folder_id ) + (SELECT folder_id + FROM library_dataset + WHERE id = :library_dataset_id + UNION ALL + SELECT library_folder.parent_id + FROM library_folder, parent_folders_of + WHERE library_folder.id = parent_folders_of.folder_id ) UPDATE library_folder SET update_time = - (SELECT update_time - FROM library_dataset_dataset_association - WHERE id = :ldda_id) - FROM parent_folders_of - WHERE library_folder.id = parent_folders_of.folder_id + (SELECT update_time + FROM library_dataset_dataset_association + WHERE id = :ldda_id) + WHERE exists (SELECT 1 FROM parent_folders_of + WHERE library_folder.id = parent_folders_of.folder_id) ''').execution_options(autocommit=True) ret = object_session(self).execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) if ret.rowcount < 1: From ae11aaa5ecbddf3dd7f1ed205d5e9b571579e656 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Mon, 8 Jul 2019 16:08:20 -0400 Subject: [PATCH 127/141] Drop psyco_full docs --- doc/source/lib/modules.rst | 1 - doc/source/lib/psyco_full.rst | 7 ------- 2 files changed, 8 deletions(-) delete mode 100644 doc/source/lib/psyco_full.rst diff --git a/doc/source/lib/modules.rst b/doc/source/lib/modules.rst index fc89779cef0..1d21ae74cb3 100644 --- a/doc/source/lib/modules.rst +++ b/doc/source/lib/modules.rst @@ -8,5 +8,4 @@ lib galaxy_ext log_tempfile mimeparse - psyco_full tool_shed diff --git a/doc/source/lib/psyco_full.rst b/doc/source/lib/psyco_full.rst deleted file mode 100644 index 8be871ed767..00000000000 --- a/doc/source/lib/psyco_full.rst +++ /dev/null @@ -1,7 +0,0 @@ -psyco\_full module -================== - -.. automodule:: psyco_full - :members: - :undoc-members: - :show-inheritance: From f5f15e2dfc86b04531ad7dbf0dbebfaae5a7db6b Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Mon, 8 Jul 2019 20:04:03 -0400 Subject: [PATCH 128/141] Drop log_tempfile docs --- doc/source/lib/log_tempfile.rst | 7 ------- doc/source/lib/modules.rst | 1 - 2 files changed, 8 deletions(-) delete mode 100644 doc/source/lib/log_tempfile.rst diff --git a/doc/source/lib/log_tempfile.rst b/doc/source/lib/log_tempfile.rst deleted file mode 100644 index a1dfd15db15..00000000000 --- a/doc/source/lib/log_tempfile.rst +++ /dev/null @@ -1,7 +0,0 @@ -log\_tempfile module -==================== - -.. automodule:: log_tempfile - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/lib/modules.rst b/doc/source/lib/modules.rst index fc89779cef0..399f383b1c6 100644 --- a/doc/source/lib/modules.rst +++ b/doc/source/lib/modules.rst @@ -6,7 +6,6 @@ lib galaxy galaxy_ext - log_tempfile mimeparse psyco_full tool_shed From 50011c1e98348f323c2c1e78c4a63efc26bca4a3 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Tue, 9 Jul 2019 04:09:11 -0400 Subject: [PATCH 129/141] linting fixes --- lib/galaxy/model/__init__.py | 4 ++-- test/api/test_libraries.py | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index 0d93ec7ba44..d90101036b5 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3604,7 +3604,7 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): (SELECT folder_id FROM library_dataset WHERE id = :library_dataset_id - UNION ALL + UNION ALL SELECT library_folder.parent_id FROM library_folder, parent_folders_of WHERE library_folder.id = parent_folders_of.folder_id ) @@ -3613,7 +3613,7 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): (SELECT update_time FROM library_dataset_dataset_association WHERE id = :ldda_id) - WHERE exists (SELECT 1 FROM parent_folders_of + WHERE exists (SELECT 1 FROM parent_folders_of WHERE library_folder.id = parent_folders_of.folder_id) ''').execution_options(autocommit=True) ret = object_session(self).execute(sql, {'library_dataset_id': ldda.library_dataset_id, 'ldda_id': ldda.id}) diff --git a/test/api/test_libraries.py b/test/api/test_libraries.py index 671753c5eb2..11454c23695 100644 --- a/test/api/test_libraries.py +++ b/test/api/test_libraries.py @@ -248,11 +248,10 @@ class LibrariesApiTestCase(api.ApiTestCase, TestsDatasets): self._assert_status_code_is(create_response, 200) self._assert_has_keys(create_response.json(), "name", "id") dataset_update_time = create_response.json()['update_time'] - container_fetch_response = self.galaxy_interactor.get("folders/%s/contents" % folder_id ) + container_fetch_response = self.galaxy_interactor.get("folders/%s/contents" % folder_id) container_update_time = container_fetch_response.json()['folder_contents'][0]['update_time'] assert dataset_update_time == container_update_time, container_fetch_response - def test_update_dataset_in_folder(self): ld = self._create_dataset_in_folder_in_library("ForUpdateDataset") data = {'name': 'updated_name', 'file_ext': 'fastq', 'misc_info': 'updated_info', 'genome_build': 'updated_genome_build'} From 079b9f076d6126f1a4db7a1018195d172bb72fc4 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 9 Jul 2019 11:32:04 +0200 Subject: [PATCH 130/141] Pass $CI in to tox envs --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index 0aec466cf97..f06e5e66ab7 100644 --- a/tox.ini +++ b/tox.ini @@ -10,6 +10,7 @@ commands = lint: bash .ci/flake8_wrapper.sh unit: bash run_tests.sh -u whitelist_externals = bash +passenv = CI setenv = py{35,36,37}-first_startup: GALAXY_VIRTUAL_ENV=.venv3 unit: GALAXY_VIRTUAL_ENV={envdir} From adc496eae36b3d8ad49ce2f2503a13e04928e24c Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Tue, 9 Jul 2019 11:59:44 +0200 Subject: [PATCH 131/141] Disable progress bar when testing package builds in CI --- packages/test.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/test.sh b/packages/test.sh index ae6c0d33704..b4773a0bc1e 100755 --- a/packages/test.sh +++ b/packages/test.sh @@ -2,6 +2,10 @@ set -e +# Don't display the pip progress bar when running under CI +PIP_PROGRESS_BAR= +[ "$CI" = "true" ] && PIP_PROGRESS_BAR='--progress-bar off' + # Change to packages directory. cd "$(dirname "$0")" @@ -11,7 +15,7 @@ TEST_ENV_DIR=${TEST_ENV_DIR:-$(mktemp -d -t gxpkgtestenvXXXXXX)} virtualenv -p "$TEST_PYTHON" "$TEST_ENV_DIR" . "${TEST_ENV_DIR}/bin/activate" -pip install pytest +pip install ${PIP_PROGRESS_BAR} pytest # ensure ordered by dependency dag PACKAGE_DIRS=( @@ -35,9 +39,9 @@ for ((i=0; i<${#PACKAGE_DIRS[@]}; i++)); do run_tests=${RUN_TESTS[$i]} cd "$package_dir" - pip install -e . + pip install ${PIP_PROGRESS_BAR} -e . if [ "$package_dir" = "util" ]; then - pip install -e '.[template,jstree]' + pip install ${PIP_PROGRESS_BAR} -e '.[template,jstree]' fi if [[ "$run_tests" == "1" ]]; then From 4359029ef9cb6b092f99d2ebba14bf8e91497b31 Mon Sep 17 00:00:00 2001 From: guerler Date: Tue, 9 Jul 2019 13:59:46 +0200 Subject: [PATCH 132/141] Remove legacy toolshed activation flag in config --- lib/galaxy/config/sample/galaxy.yml.sample | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/galaxy/config/sample/galaxy.yml.sample b/lib/galaxy/config/sample/galaxy.yml.sample index 5b38d4832d6..79ba81fb9d6 100644 --- a/lib/galaxy/config/sample/galaxy.yml.sample +++ b/lib/galaxy/config/sample/galaxy.yml.sample @@ -1342,10 +1342,6 @@ galaxy: # the special topics area of the admin documentation. #enable_beta_gdpr: false - # Enable the new interface for installing tools from Tool Shed via the - # API. Admin menu will list both if enabled. - #enable_beta_ts_api_install: true - # Enable the new container interface for Interactive Environments #enable_beta_containers_interface: false From 7fa24b191b9b9f5ae1fb826935df4492fff1c23f Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 8 Jul 2019 15:04:16 +0200 Subject: [PATCH 133/141] Remove mimeparse package in lib/ root. Was added for trackster in 985f7c63fa8e66f33cfff4a2a29d80b45f659c85 for a tracks controller that no longer exists. Cannot find any references to this module. --- lib/mimeparse.py | 192 ----------------------------------------------- 1 file changed, 192 deletions(-) delete mode 100755 lib/mimeparse.py diff --git a/lib/mimeparse.py b/lib/mimeparse.py deleted file mode 100755 index f38ee04dbae..00000000000 --- a/lib/mimeparse.py +++ /dev/null @@ -1,192 +0,0 @@ -"""MIME-Type Parser - -This module provides basic functions for handling mime-types. It can handle -matching mime-types against a list of media-ranges. See section 14.1 of -the HTTP specification [RFC 2616] for a complete explanation. - - http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 - -Contents: - - parse_mime_type(): Parses a mime-type into its component parts. - - parse_media_range(): Media-ranges are mime-types with wild-cards and a 'q' quality parameter. - - quality(): Determines the quality ('q') of a mime-type when compared against a list of media-ranges. - - quality_parsed(): Just like quality() except the second parameter must be pre-parsed. - - best_match(): Choose the mime-type with the highest quality ('q') from a list of candidates. -""" -from functools import reduce - -__version__ = "0.1.2" -__author__ = 'Joe Gregorio' -__email__ = "joe@bitworking.org" -__credits__ = "" - - -def parse_mime_type(mime_type): - """Carves up a mime-type and returns a tuple of the - (type, subtype, params) where 'params' is a dictionary - of all the parameters for the media range. - For example, the media range 'application/xhtml;q=0.5' would - get parsed into: - - ('application', 'xhtml', {'q', '0.5'}) - """ - parts = mime_type.split(";") - params = dict([tuple([s.strip() for s in param.split("=")]) for param in parts[1:]]) - full_type = parts[0].strip() - # Java URLConnection class sends an Accept header that includes a single "*" - # Turn it into a legal wildcard. - if full_type == '*': - full_type = '*/*' - (type, subtype) = full_type.split("/") - return (type.strip(), subtype.strip(), params) - - -def parse_media_range(range): - r""" - Carves up a media range and returns a tuple of the - (type, subtype, params) where 'params' is a dictionary - of all the parameters for the media range. - For example, the media range 'application/*;q=0.5' would - get parsed into: - - .. raw:: text - - ('application', '*', {'q', '0.5'}) - - In addition this function also guarantees that there - is a value for 'q' in the params dictionary, filling it - in with a proper default if necessary. - """ - (type, subtype, params) = parse_mime_type(range) - if 'q' not in params or not params['q'] or \ - not float(params['q']) or float(params['q']) > 1\ - or float(params['q']) < 0: - params['q'] = '1' - return (type, subtype, params) - - -def fitness_and_quality_parsed(mime_type, parsed_ranges): - """Find the best match for a given mime-type against - a list of media_ranges that have already been - parsed by parse_media_range(). Returns a tuple of - the fitness value and the value of the 'q' quality - parameter of the best match, or (-1, 0) if no match - was found. Just as for quality_parsed(), 'parsed_ranges' - must be a list of parsed media ranges. """ - best_fitness = -1 - best_fit_q = 0 - (target_type, target_subtype, target_params) =\ - parse_media_range(mime_type) - for (type, subtype, params) in parsed_ranges: - if (type == target_type or type == '*' or target_type == '*') and \ - (subtype == target_subtype or subtype == '*' or target_subtype == '*'): - param_matches = reduce(lambda x, y: x + y, [1 for (key, value) in - target_params.items() if key != 'q' and - key in params and value == params[key]], 0) - fitness = (type == target_type) and 100 or 0 - fitness += (subtype == target_subtype) and 10 or 0 - fitness += param_matches - if fitness > best_fitness: - best_fitness = fitness - best_fit_q = params['q'] - - return best_fitness, float(best_fit_q) - - -def quality_parsed(mime_type, parsed_ranges): - """Find the best match for a given mime-type against - a list of media_ranges that have already been - parsed by parse_media_range(). Returns the - 'q' quality parameter of the best match, 0 if no - match was found. This function bahaves the same as quality() - except that 'parsed_ranges' must be a list of - parsed media ranges. """ - return fitness_and_quality_parsed(mime_type, parsed_ranges)[1] - - -def quality(mime_type, ranges): - """Returns the quality 'q' of a mime-type when compared - against the media-ranges in ranges. For example: - - >>> quality('text/html','text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5') - 0.7 - - """ - parsed_ranges = [parse_media_range(r) for r in ranges.split(",")] - return quality_parsed(mime_type, parsed_ranges) - - -def best_match(supported, header): - """Takes a list of supported mime-types and finds the best - match for all the media-ranges listed in header. The value of - header must be a string that conforms to the format of the - HTTP Accept: header. The value of 'supported' is a list of - mime-types. - - >>> best_match(['application/xbel+xml', 'text/xml'], 'text/*;q=0.5,*/*; q=0.1') - 'text/xml' - """ - parsed_header = [parse_media_range(r) for r in header.split(",")] - weighted_matches = [(fitness_and_quality_parsed(mime_type, parsed_header), mime_type) - for mime_type in supported] - weighted_matches.sort() - return weighted_matches[-1][0][1] and weighted_matches[-1][1] or '' - - -if __name__ == "__main__": - import unittest - - class TestMimeParsing(unittest.TestCase): - - def test_parse_media_range(self): - self.assert_(('application', 'xml', {'q': '1'}) == parse_media_range('application/xml;q=1')) - self.assertEqual(('application', 'xml', {'q': '1'}), parse_media_range('application/xml')) - self.assertEqual(('application', 'xml', {'q': '1'}), parse_media_range('application/xml;q=')) - self.assertEqual(('application', 'xml', {'q': '1'}), parse_media_range('application/xml ; q=')) - self.assertEqual(('application', 'xml', {'q': '1', 'b': 'other'}), parse_media_range('application/xml ; q=1;b=other')) - self.assertEqual(('application', 'xml', {'q': '1', 'b': 'other'}), parse_media_range('application/xml ; q=2;b=other')) - # Java URLConnection class sends an Accept header that includes a single * - self.assertEqual(('*', '*', {'q': '.2'}), parse_media_range(" *; q=.2")) - - def test_rfc_2616_example(self): - accept = "text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5" - self.assertEqual(1, quality("text/html;level=1", accept)) - self.assertEqual(0.7, quality("text/html", accept)) - self.assertEqual(0.3, quality("text/plain", accept)) - self.assertEqual(0.5, quality("image/jpeg", accept)) - self.assertEqual(0.4, quality("text/html;level=2", accept)) - self.assertEqual(0.7, quality("text/html;level=3", accept)) - - def test_best_match(self): - mime_types_supported = ['application/xbel+xml', 'application/xml'] - # direct match - self.assertEqual(best_match(mime_types_supported, 'application/xbel+xml'), 'application/xbel+xml') - # direct match with a q parameter - self.assertEqual(best_match(mime_types_supported, 'application/xbel+xml; q=1'), 'application/xbel+xml') - # direct match of our second choice with a q parameter - self.assertEqual(best_match(mime_types_supported, 'application/xml; q=1'), 'application/xml') - # match using a subtype wildcard - self.assertEqual(best_match(mime_types_supported, 'application/*; q=1'), 'application/xml') - # match using a type wildcard - self.assertEqual(best_match(mime_types_supported, '*/*'), 'application/xml') - - mime_types_supported = ['application/xbel+xml', 'text/xml'] - # match using a type versus a lower weighted subtype - self.assertEqual(best_match(mime_types_supported, 'text/*;q=0.5,*/*; q=0.1'), 'text/xml') - # fail to match anything - self.assertEqual(best_match(mime_types_supported, 'text/html,application/atom+xml; q=0.9'), '') - - # common AJAX scenario - mime_types_supported = ['application/json', 'text/html'] - self.assertEqual(best_match(mime_types_supported, 'application/json, text/javascript, */*'), 'application/json') - # verify fitness ordering - self.assertEqual(best_match(mime_types_supported, 'application/json, text/html;q=0.9'), 'application/json') - - def test_support_wildcards(self): - mime_types_supported = ['image/*', 'application/xml'] - # match using a type wildcard - self.assertEqual(best_match(mime_types_supported, 'image/png'), 'image/*') - # match using a wildcard for both requested and supported - self.assertEqual(best_match(mime_types_supported, 'image/*'), 'image/*') - - unittest.main() From 3072975897792870714b7bdad43b114e09cb15fc Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Mon, 8 Jul 2019 20:05:15 -0400 Subject: [PATCH 134/141] Drop mimeparse docs --- doc/source/lib/mimeparse.rst | 7 ------- doc/source/lib/modules.rst | 1 - 2 files changed, 8 deletions(-) delete mode 100644 doc/source/lib/mimeparse.rst diff --git a/doc/source/lib/mimeparse.rst b/doc/source/lib/mimeparse.rst deleted file mode 100644 index afcdfa0c86b..00000000000 --- a/doc/source/lib/mimeparse.rst +++ /dev/null @@ -1,7 +0,0 @@ -mimeparse module -================ - -.. automodule:: mimeparse - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/lib/modules.rst b/doc/source/lib/modules.rst index 4e3ca7d29bd..448752bc959 100644 --- a/doc/source/lib/modules.rst +++ b/doc/source/lib/modules.rst @@ -6,5 +6,4 @@ lib galaxy galaxy_ext - mimeparse tool_shed From d0c28f669bd36b0581043a2eb7cbafc1cc0ab64e Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Tue, 9 Jul 2019 18:48:35 +0100 Subject: [PATCH 135/141] Use lowercase true/false in config_schema.yml since these are the only allowed values for booleans in YAML 1.2: https://yaml.org/spec/1.2/spec.html#id2803629 make config-rebuild --- doc/source/admin/galaxy_options.rst | 149 +++++++++++--------- lib/galaxy/config/sample/galaxy.yml.sample | 147 ++++++++++--------- lib/galaxy/webapps/galaxy/config_schema.yml | 84 +++++------ 3 files changed, 202 insertions(+), 178 deletions(-) diff --git a/doc/source/admin/galaxy_options.rst b/doc/source/admin/galaxy_options.rst index 30f04e85099..30f737c82e3 100644 --- a/doc/source/admin/galaxy_options.rst +++ b/doc/source/admin/galaxy_options.rst @@ -222,7 +222,7 @@ functionality is largely untested in modern Galaxy releases and has serious issues such as #7273 and the possibility of slowing down Galaxy startup, so the default and recommended value is - False. + false. :Default: ``false`` :Type: bool @@ -271,14 +271,13 @@ ~~~~~~~~~~~~~~~~~~~~~~~ :Description: - Path to the directory in which tool dependencies are placed. This - is used by the Tool Shed to install dependencies and can also be - used by administrators to manually install or link to - dependencies. For details, see: - https://galaxyproject.org/admin/config/tool-dependencies Set the + Various dependency resolver configuration parameters will have + defaults set relative to this path, such as the default conda + prefix, default Galaxy packages path, legacy tool shed + dependencies path, and the dependency cache directory. Set the string to None to explicitly disable tool dependency handling. If this option is set to none or an invalid path, installing tools - with dependencies from the Tool Shed will fail. + with dependencies from the Tool Shed or in Conda will fail. :Default: ``database/dependencies`` :Type: str @@ -360,7 +359,7 @@ ~~~~~~~~~~~~~~~~~~~~~~ :Description: - Set to True to instruct Galaxy to look for and install missing + Set to true to instruct Galaxy to look for and install missing tool dependencies before each job runs. :Default: ``false`` :Type: bool @@ -371,7 +370,7 @@ ~~~~~~~~~~~~~~~~~~~ :Description: - Set to True to instruct Galaxy to install Conda from the web + Set to true to instruct Galaxy to install Conda from the web automatically if it cannot find a local copy and conda_exec is not configured. :Default: ``true`` @@ -383,7 +382,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Description: - You must set this to True if conda_prefix and + You must set this to true if conda_prefix and job_working_directory are not on the same volume, or some conda dependencies will fail to execute at job runtime. Conda will copy packages content instead of creating hardlinks or symlinks. This @@ -402,10 +401,12 @@ Certain dependency resolvers (namely Conda) take a considerable amount of time to build an isolated job environment in the job_working_directory if the job working directory is on a network - share. Set the following option to True to cache the dependencies - in a folder. This option is beta and should only be used if you + share. Set this option to true to cache the dependencies in a + folder. This option is beta and should only be used if you experience long waiting times before a job is actually submitted - to your cluster. + to your cluster. This only affects tools where some requirements + can be resolved but not others, most modern best practice tools + can use prebuilt environments in the Conda directory. :Default: ``false`` :Type: bool @@ -428,7 +429,7 @@ :Description: By default, when using a cached dependency manager, the dependencies are cached when installing new tools and when using - tools for the first time. Set this to False if you prefer + tools for the first time. Set this to false if you prefer dependencies to be cached only when installing new tools. :Default: ``true`` :Type: bool @@ -451,7 +452,7 @@ ~~~~~~~~~~~~~~~ :Description: - Set to True to enable monitoring of tools and tool directories + Set to true to enable monitoring of tools and tool directories listed in any tool config file specified in tool_config_file option. If changes are found, tools are automatically reloaded. Watchdog ( https://pypi.org/project/watchdog/ ) must be installed @@ -469,7 +470,7 @@ ~~~~~~~~~~~~~~~~~~~ :Description: - Set to True to enable monitoring of dynamic job rules. If changes + Set to true to enable monitoring of dynamic job rules. If changes are found, rules are automatically reloaded. Takes the same values as the 'watch_tools' option. :Default: ``false`` @@ -535,7 +536,7 @@ `requirement`s. The following path is the location of involucro on the Galaxy host. This is ignored if the relevant container resolver isn't enabled, and will install on demand unless - involucro_auto_init is set to False. + involucro_auto_init is set to false. :Default: ``database/dependencies/involucro`` :Type: str @@ -660,7 +661,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~ :Description: - Set to True to enable monitoring of the tool_data and + Set to true to enable monitoring of the tool_data and shed_tool_data_path directories. If changes in tool data table files are found, the tool data tables for that data manager are automatically reloaded. Watchdog ( @@ -716,7 +717,7 @@ :Description: Enable sniffing of compressed datatypes. This can be configured/overridden on a per-datatype basis in the - datatypes_conf.xml file. With this option set to False the + datatypes_conf.xml file. With this option set to false the compressed datatypes will be unpacked before sniffing. :Default: ``true`` :Type: bool @@ -767,7 +768,7 @@ :Description: To run interactive environment containers in Docker Swarm mode (on - an existing swarm), set this option to True and set + an existing swarm), set this option to true and set `docker_connect_port` in the IE plugin config (ini) file(s) of any IE plugins you have enabled and ensure that you are not using any `docker run`-specific options in your plugins' `command_inject` @@ -1099,9 +1100,9 @@ ~~~~~~~~~~~~~~~~~~~~~~ :Description: - User account activation feature global flag. If set to "False", - the rest of the Account activation configuration is ignored and - user activation is disabled (i.e. accounts are active since + User account activation feature global flag. If set to false, the + rest of the Account activation configuration is ignored and user + activation is disabled (i.e. accounts are active since registration). The activation is also not working in case the SMTP server is not defined. :Default: ``false`` @@ -1176,9 +1177,9 @@ Galaxy can display data at various external browsers. These options specify which browsers should be available. URLs and builds available at these browsers are defined in the specified - files. If use_remote_user = True, display application servers - will be denied access to Galaxy and so displaying datasets in - these sites will fail. display_servers contains a list of + files. If use_remote_user is set to true, display application + servers will be denied access to Galaxy and so displaying datasets + in these sites will fail. display_servers contains a list of hostnames which should be allowed to bypass security to display datasets. Please be aware that there are security implications if this is allowed. More details (including required changes to the @@ -1197,15 +1198,15 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Description: - To disable the old-style display applications that are hardcoded - into datatype classes, set enable_old_display_applications = - False. This may be desirable due to using the new-style, XML- - defined, display applications that have been defined for many of - the datatypes that have the old-style. There is also a potential - security concern with the old-style applications, where a - malicious party could provide a link that appears to reference the - Galaxy server, but contains a redirect to a third-party server, - tricking a Galaxy user to access said site. + Set this to false to disable the old-style display applications + that are hardcoded into datatype classes. This may be desirable + due to using the new-style, XML-defined, display applications that + have been defined for many of the datatypes that have the old- + style. There is also a potential security concern with the old- + style applications, where a malicious party could provide a link + that appears to reference the Galaxy server, but contains a + redirect to a third-party server, tricking a Galaxy user to access + said site. :Default: ``true`` :Type: bool @@ -1576,7 +1577,7 @@ For help on configuring the Advanced proxy features, see: https://docs.galaxyproject.org/en/master/admin/production.html Apache can handle file downloads (Galaxy-to-user) via - mod_xsendfile. Set this to True to inform Galaxy that + mod_xsendfile. Set this to true to inform Galaxy that mod_xsendfile is enabled upstream. :Default: ``false`` :Type: bool @@ -1697,9 +1698,9 @@ other services based on Galaxy's session cookie. It will attempt to do this by default though you do need to install node+npm and do an npm install from `lib/galaxy/web/proxy/js`. It is generally - more robust to configure this externally, managing it however - Galaxy is managed. If True, Galaxy will only launch the proxy if - it is actually going to be used (e.g. for Jupyter). + more robust to configure this externally, managing it in the same + way Galaxy itself is managed. If true, Galaxy will only launch + the proxy if it is actually going to be used (e.g. for Jupyter). :Default: ``true`` :Type: bool @@ -1733,7 +1734,8 @@ :Description: Set the port and IP for the dynamic proxy to bind to, this must - match the external configuration if dynamic_proxy_manage is False. + match the external configuration if dynamic_proxy_manage is set to + false. :Default: ``8800`` :Type: int @@ -1744,7 +1746,8 @@ :Description: Set the port and IP for the dynamic proxy to bind to, this must - match the external configuration if dynamic_proxy_manage is False. + match the external configuration if dynamic_proxy_manage is set to + false. :Default: ``0.0.0.0`` :Type: str @@ -1837,7 +1840,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~ :Description: - If True, Galaxy will attempt to configure a simple root logger if + If true, Galaxy will attempt to configure a simple root logger if a "loggers" section does not appear in this configuration file. :Default: ``true`` :Type: bool @@ -1984,8 +1987,7 @@ By default Galaxy will serve non-HTML tool output that may potentially contain browser executable JavaScript content as plain text. This will for instance cause SVG datasets to not render - properly and so may be disabled by setting the following option to - True. + properly and so may be disabled by setting this option to true. :Default: ``false`` :Type: bool @@ -2011,12 +2013,11 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Description: - Set the following to True to use Jupyter nbconvert to build HTML - from Jupyter notebooks in Galaxy histories. This process may - allow users to execute arbitrary code or serve arbitrary HTML. If - enabled, Jupyter must be available and on Galaxy's PATH, to do - this run `pip install jinja2 pygments jupyter` in Galaxy's - virtualenv. + Set to true to use Jupyter nbconvert to build HTML from Jupyter + notebooks in Galaxy histories. This process may allow users to + execute arbitrary code or serve arbitrary HTML. If enabled, + Jupyter must be available and on Galaxy's PATH, to do this run + `pip install jinja2 pygments jupyter` in Galaxy's virtualenv. :Default: ``false`` :Type: bool @@ -2294,7 +2295,7 @@ allowing admins to paste filesystem paths to files and directories in a box, and these paths will be added to a library. For history uploads, this allows pasting in paths as URIs. (i.e. prefixed with - file://). Set to True to enable. Please note the security + file://). Set to true to enable. Please note the security implication that this will give Galaxy Admins access to anything your Galaxy user has access to. :Default: ``false`` @@ -2559,8 +2560,8 @@ :Description: If your proxy and/or authentication source does not normalize - e-mail addresses or user names being passed to Galaxy - set the - following option to True to force these to lower case. + e-mail addresses or user names being passed to Galaxy - set this + option to true to force these to lower case. :Default: ``false`` :Type: bool @@ -2609,7 +2610,7 @@ :Description: Show the site's welcome page (see welcome_url) alongside the login - page (even if require_login is True) + page (even if require_login is true). :Default: ``false`` :Type: bool @@ -2641,7 +2642,7 @@ :Description: Allow administrators to log in as other users (useful for - debugging) + debugging). :Default: ``false`` :Type: bool @@ -2674,7 +2675,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Description: - By default, users' data will be public, but setting this to True + By default, users' data will be public, but setting this to true will cause it to be private. Does not affect existing users and data, only ones created after this option is set. Users may still change their default back to public. @@ -2687,14 +2688,14 @@ ~~~~~~~~~~~~~~~~~~~~ :Description: - Expose user list. Setting this to True will expose the user list + Expose user list. Setting this to true will expose the user list to authenticated users. This makes sharing datasets in smaller galaxy instances much easier as they can type a name/email and have the correct user show up. This makes less sense on large public Galaxy instances where that data shouldn't be exposed. For semi-public Galaxies, it may make sense to expose just the username and not email, or vice versa. If enable_beta_gdpr is set - to True, then this option will be overridden and set to False. + to true, then this option will be overridden and set to false. :Default: ``false`` :Type: bool @@ -2704,14 +2705,14 @@ ~~~~~~~~~~~~~~~~~~~~~ :Description: - Expose user list. Setting this to True will expose the user list + Expose user list. Setting this to true will expose the user list to authenticated users. This makes sharing datasets in smaller galaxy instances much easier as they can type a name/email and have the correct user show up. This makes less sense on large public Galaxy instances where that data shouldn't be exposed. For semi-public Galaxies, it may make sense to expose just the username and not email, or vice versa. If enable_beta_gdpr is set - to True, then this option will be overridden and set to False. + to true, then this option will be overridden and set to false. :Default: ``false`` :Type: bool @@ -3000,9 +3001,9 @@ datasets are selected for "Set at Runtime" inputs from the history such that the same input will not be selected twice, unless there are more inputs than compatible datasets in the history. When - False, the most recently added compatible item in the history will + false, the most recently added compatible item in the history will be used for each "Set at Runtime" input, independent of others in - the Workflow + the workflow. :Default: ``false`` :Type: bool @@ -3013,7 +3014,7 @@ :Description: The URL to the myExperiment instance being used (omit scheme but - include port) + include port). :Default: ``www.myexperiment.org:80`` :Type: str @@ -3073,8 +3074,8 @@ ~~~~~~~~~~~~~~~~~~~~ :Description: - This should be set to False to prevent Galaxy from deleting - uploaded FTP files as it imports them. + Set to false to prevent Galaxy from deleting uploaded FTP files as + it imports them. :Default: ``true`` :Type: bool @@ -3210,6 +3211,20 @@ :Type: seq +~~~~~~~~~~~~~~~~~~~~~~~~~ +``dependency_resolution`` +~~~~~~~~~~~~~~~~~~~~~~~~~ + +:Description: + Alternative representation of various dependency resolution + parameters. Takes the dictified version of a DependencyManager + object - so this is ideal for automating the configuration of + dependency resolution from one application that uses a + DependencyManager to another. +:Default: ``None`` +:Type: map + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``default_job_resubmission_condition`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -3290,7 +3305,7 @@ fail. In these instances, you can choose to retry setting it internally or leave it in a failed state (since retrying internally may cause the Galaxy process to be unresponsive). If - this option is set to False, the user will be given the option to + this option is set to false, the user will be given the option to retry externally, or set metadata manually (when possible). :Default: ``true`` :Type: bool @@ -3510,7 +3525,7 @@ several extra database queries must be performed to determine the number of jobs a user has dispatched to a given destination. By default, these queries will happen for every job that is waiting - to run, but if cache_user_job_count is set to True, it will only + to run, but if cache_user_job_count is set to true, it will only happen once per iteration of the handler queue. Although better for performance due to reduced queries, the trade-off is a greater possibility that jobs will be dispatched past the configured diff --git a/lib/galaxy/config/sample/galaxy.yml.sample b/lib/galaxy/config/sample/galaxy.yml.sample index 5b38d4832d6..8ff2ac17ebf 100644 --- a/lib/galaxy/config/sample/galaxy.yml.sample +++ b/lib/galaxy/config/sample/galaxy.yml.sample @@ -194,7 +194,7 @@ galaxy: # Galaxy code distribution to the Tool Shed. This functionality is # largely untested in modern Galaxy releases and has serious issues # such as #7273 and the possibility of slowing down Galaxy startup, so - # the default and recommended value is False. + # the default and recommended value is false. #check_migrate_tools: false # Tool config maintained by tool migration scripts. If you use the @@ -215,14 +215,13 @@ galaxy: # an attribute in the tag. #tool_path: tools - # Path to the directory in which tool dependencies are placed. This - # is used by the Tool Shed to install dependencies and can also be - # used by administrators to manually install or link to dependencies. - # For details, see: https://galaxyproject.org/admin/config/tool- - # dependencies Set the string to None to explicitly disable tool - # dependency handling. If this option is set to none or an invalid - # path, installing tools with dependencies from the Tool Shed will - # fail. + # Various dependency resolver configuration parameters will have + # defaults set relative to this path, such as the default conda + # prefix, default Galaxy packages path, legacy tool shed dependencies + # path, and the dependency cache directory. Set the string to None to + # explicitly disable tool dependency handling. If this option is set + # to none or an invalid path, installing tools with dependencies from + # the Tool Shed or in Conda will fail. #tool_dependency_dir: database/dependencies # The dependency resolvers config file specifies an ordering and @@ -254,16 +253,16 @@ galaxy: # Use locally-built conda packages. #conda_use_local: false - # Set to True to instruct Galaxy to look for and install missing tool + # Set to true to instruct Galaxy to look for and install missing tool # dependencies before each job runs. #conda_auto_install: false - # Set to True to instruct Galaxy to install Conda from the web + # Set to true to instruct Galaxy to install Conda from the web # automatically if it cannot find a local copy and conda_exec is not # configured. #conda_auto_init: true - # You must set this to True if conda_prefix and job_working_directory + # You must set this to true if conda_prefix and job_working_directory # are not on the same volume, or some conda dependencies will fail to # execute at job runtime. Conda will copy packages content instead of # creating hardlinks or symlinks. This will prevent problems with some @@ -274,10 +273,12 @@ galaxy: # Certain dependency resolvers (namely Conda) take a considerable # amount of time to build an isolated job environment in the # job_working_directory if the job working directory is on a network - # share. Set the following option to True to cache the dependencies - # in a folder. This option is beta and should only be used if you + # share. Set this option to true to cache the dependencies in a + # folder. This option is beta and should only be used if you # experience long waiting times before a job is actually submitted to - # your cluster. + # your cluster. This only affects tools where some requirements can + # be resolved but not others, most modern best practice tools can use + # prebuilt environments in the Conda directory. #use_cached_dependency_manager: false # By default the tool_dependency_cache_dir is the _cache directory of @@ -286,7 +287,7 @@ galaxy: # By default, when using a cached dependency manager, the dependencies # are cached when installing new tools and when using tools for the - # first time. Set this to False if you prefer dependencies to be + # first time. Set this to false if you prefer dependencies to be # cached only when installing new tools. #precache_dependencies: true @@ -295,7 +296,7 @@ galaxy: # not exist). #tool_sheds_config_file: config/tool_sheds_conf.xml - # Set to True to enable monitoring of tools and tool directories + # Set to true to enable monitoring of tools and tool directories # listed in any tool config file specified in tool_config_file option. # If changes are found, tools are automatically reloaded. Watchdog ( # https://pypi.org/project/watchdog/ ) must be installed and available @@ -306,7 +307,7 @@ galaxy: # scenarios than the watchdog default. #watch_tools: 'false' - # Set to True to enable monitoring of dynamic job rules. If changes + # Set to true to enable monitoring of dynamic job rules. If changes # are found, rules are automatically reloaded. Takes the same values # as the 'watch_tools' option. #watch_job_rules: 'false' @@ -344,7 +345,7 @@ galaxy: # `requirement`s. The following path is the location of involucro on # the Galaxy host. This is ignored if the relevant container resolver # isn't enabled, and will install on demand unless involucro_auto_init - # is set to False. + # is set to false. #involucro_path: database/dependencies/involucro # Install involucro as needed to build Docker or Singularity @@ -399,7 +400,7 @@ galaxy: # installed from a ToolShed. Defaults to tool_data_path. #shed_tool_data_path: tool-data - # Set to True to enable monitoring of the tool_data and + # Set to true to enable monitoring of the tool_data and # shed_tool_data_path directories. If changes in tool data table files # are found, the tool data tables for that data manager are # automatically reloaded. Watchdog ( @@ -427,7 +428,7 @@ galaxy: # Enable sniffing of compressed datatypes. This can be # configured/overridden on a per-datatype basis in the - # datatypes_conf.xml file. With this option set to False the + # datatypes_conf.xml file. With this option set to false the # compressed datatypes will be unpacked before sniffing. #sniff_compressed_dynamic_datatypes_default: true @@ -450,7 +451,7 @@ galaxy: #interactive_environment_plugins_directory: null # To run interactive environment containers in Docker Swarm mode (on - # an existing swarm), set this option to True and set + # an existing swarm), set this option to true and set # `docker_connect_port` in the IE plugin config (ini) file(s) of any # IE plugins you have enabled and ensure that you are not using any # `docker run`-specific options in your plugins' `command_inject` @@ -599,7 +600,7 @@ galaxy: # instance. If no message specified the warning box will not be shown. #registration_warning_message: Please register only one account - we provide this service free of charge and have limited computational resources. Multi-accounts are tracked and will be subjected to account termination and data deletion. - # User account activation feature global flag. If set to "False", the + # User account activation feature global flag. If set to false, the # rest of the Account activation configuration is ignored and user # activation is disabled (i.e. accounts are active since # registration). The activation is also not working in case the SMTP @@ -633,10 +634,10 @@ galaxy: # Galaxy can display data at various external browsers. These options # specify which browsers should be available. URLs and builds # available at these browsers are defined in the specified files. If - # use_remote_user = True, display application servers will be denied - # access to Galaxy and so displaying datasets in these sites will - # fail. display_servers contains a list of hostnames which should be - # allowed to bypass security to display datasets. Please be aware + # use_remote_user is set to true, display application servers will be + # denied access to Galaxy and so displaying datasets in these sites + # will fail. display_servers contains a list of hostnames which should + # be allowed to bypass security to display datasets. Please be aware # that there are security implications if this is allowed. More # details (including required changes to the proxy server config) are # available in the Apache proxy documentation on the Galaxy Community @@ -646,15 +647,14 @@ galaxy: # uncomment the line below to allow them). #display_servers: hgw1.cse.ucsc.edu,hgw2.cse.ucsc.edu,hgw3.cse.ucsc.edu,hgw4.cse.ucsc.edu,hgw5.cse.ucsc.edu,hgw6.cse.ucsc.edu,hgw7.cse.ucsc.edu,hgw8.cse.ucsc.edu,lowepub.cse.ucsc.edu - # To disable the old-style display applications that are hardcoded - # into datatype classes, set enable_old_display_applications = False. - # This may be desirable due to using the new-style, XML-defined, - # display applications that have been defined for many of the - # datatypes that have the old-style. There is also a potential - # security concern with the old-style applications, where a malicious - # party could provide a link that appears to reference the Galaxy - # server, but contains a redirect to a third-party server, tricking a - # Galaxy user to access said site. + # Set this to false to disable the old-style display applications that + # are hardcoded into datatype classes. This may be desirable due to + # using the new-style, XML-defined, display applications that have + # been defined for many of the datatypes that have the old-style. + # There is also a potential security concern with the old-style + # applications, where a malicious party could provide a link that + # appears to reference the Galaxy server, but contains a redirect to a + # third-party server, tricking a Galaxy user to access said site. #enable_old_display_applications: true # Show a message box under the masthead. @@ -804,7 +804,7 @@ galaxy: # For help on configuring the Advanced proxy features, see: # https://docs.galaxyproject.org/en/master/admin/production.html # Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. - # Set this to True to inform Galaxy that mod_xsendfile is enabled + # Set this to true to inform Galaxy that mod_xsendfile is enabled # upstream. #apache_xsendfile: false @@ -862,9 +862,9 @@ galaxy: # other services based on Galaxy's session cookie. It will attempt to # do this by default though you do need to install node+npm and do an # npm install from `lib/galaxy/web/proxy/js`. It is generally more - # robust to configure this externally, managing it however Galaxy is - # managed. If True, Galaxy will only launch the proxy if it is - # actually going to be used (e.g. for Jupyter). + # robust to configure this externally, managing it in the same way + # Galaxy itself is managed. If true, Galaxy will only launch the + # proxy if it is actually going to be used (e.g. for Jupyter). #dynamic_proxy_manage: true # As of 16.04 Galaxy supports multiple proxy types. The original @@ -877,11 +877,13 @@ galaxy: #dynamic_proxy_session_map: database/session_map.sqlite # Set the port and IP for the dynamic proxy to bind to, this must - # match the external configuration if dynamic_proxy_manage is False. + # match the external configuration if dynamic_proxy_manage is set to + # false. #dynamic_proxy_bind_port: 8800 # Set the port and IP for the dynamic proxy to bind to, this must - # match the external configuration if dynamic_proxy_manage is False. + # match the external configuration if dynamic_proxy_manage is set to + # false. #dynamic_proxy_bind_ip: 0.0.0.0 # Enable verbose debugging of Galaxy-managed dynamic proxy. @@ -918,7 +920,7 @@ galaxy: # if you are managing the proxy manually. #dynamic_proxy_golang_api_key: '' - # If True, Galaxy will attempt to configure a simple root logger if a + # If true, Galaxy will attempt to configure a simple root logger if a # "loggers" section does not appear in this configuration file. #auto_configure_logging: true @@ -980,8 +982,7 @@ galaxy: # By default Galaxy will serve non-HTML tool output that may # potentially contain browser executable JavaScript content as plain # text. This will for instance cause SVG datasets to not render - # properly and so may be disabled by setting the following option to - # True. + # properly and so may be disabled by setting this option to true. #serve_xss_vulnerable_mimetypes: false # Return a Access-Control-Allow-Origin response header that matches @@ -993,11 +994,11 @@ galaxy: # https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS #allowed_origin_hostnames: '' - # Set the following to True to use Jupyter nbconvert to build HTML - # from Jupyter notebooks in Galaxy histories. This process may allow - # users to execute arbitrary code or serve arbitrary HTML. If - # enabled, Jupyter must be available and on Galaxy's PATH, to do this - # run `pip install jinja2 pygments jupyter` in Galaxy's virtualenv. + # Set to true to use Jupyter nbconvert to build HTML from Jupyter + # notebooks in Galaxy histories. This process may allow users to + # execute arbitrary code or serve arbitrary HTML. If enabled, Jupyter + # must be available and on Galaxy's PATH, to do this run `pip install + # jinja2 pygments jupyter` in Galaxy's virtualenv. #trust_jupyter_notebook_conversion: false # Debug enables access to various config options useful for @@ -1127,7 +1128,7 @@ galaxy: # to paste filesystem paths to files and directories in a box, and # these paths will be added to a library. For history uploads, this # allows pasting in paths as URIs. (i.e. prefixed with file://). Set - # to True to enable. Please note the security implication that this + # to true to enable. Please note the security implication that this # will give Galaxy Admins access to anything your Galaxy user has # access to. #allow_path_paste: false @@ -1250,8 +1251,8 @@ galaxy: #remote_user_logout_href: '' # If your proxy and/or authentication source does not normalize e-mail - # addresses or user names being passed to Galaxy - set the following - # option to True to force these to lower case. + # addresses or user names being passed to Galaxy - set this option to + # true to force these to lower case. #normalize_remote_user_email: false # If an e-mail address is specified here, it will hijack remote user @@ -1272,7 +1273,7 @@ galaxy: #require_login: false # Show the site's welcome page (see welcome_url) alongside the login - # page (even if require_login is True) + # page (even if require_login is true). #show_welcome_with_login: false # Allow unregistered users to create new accounts (otherwise, they @@ -1282,7 +1283,8 @@ galaxy: # Allow administrators to delete accounts. #allow_user_deletion: false - # Allow administrators to log in as other users (useful for debugging) + # Allow administrators to log in as other users (useful for + # debugging). #allow_user_impersonation: false # When using LDAP for authentication, allow administrators to pre- @@ -1294,30 +1296,30 @@ galaxy: # by an administrator in the cleanup scripts run via cron) #allow_user_dataset_purge: true - # By default, users' data will be public, but setting this to True + # By default, users' data will be public, but setting this to true # will cause it to be private. Does not affect existing users and # data, only ones created after this option is set. Users may still # change their default back to public. #new_user_dataset_access_role_default_private: false - # Expose user list. Setting this to True will expose the user list to + # Expose user list. Setting this to true will expose the user list to # authenticated users. This makes sharing datasets in smaller galaxy # instances much easier as they can type a name/email and have the # correct user show up. This makes less sense on large public Galaxy # instances where that data shouldn't be exposed. For semi-public # Galaxies, it may make sense to expose just the username and not - # email, or vice versa. If enable_beta_gdpr is set to True, then this - # option will be overridden and set to False. + # email, or vice versa. If enable_beta_gdpr is set to true, then this + # option will be overridden and set to false. #expose_user_name: false - # Expose user list. Setting this to True will expose the user list to + # Expose user list. Setting this to true will expose the user list to # authenticated users. This makes sharing datasets in smaller galaxy # instances much easier as they can type a name/email and have the # correct user show up. This makes less sense on large public Galaxy # instances where that data shouldn't be exposed. For semi-public # Galaxies, it may make sense to expose just the username and not - # email, or vice versa. If enable_beta_gdpr is set to True, then this - # option will be overridden and set to False. + # email, or vice versa. If enable_beta_gdpr is set to true, then this + # option will be overridden and set to false. #expose_user_email: false # Whitelist for local network addresses for "Upload from URL" dialog. @@ -1450,14 +1452,14 @@ galaxy: # Enable a feature when running workflows. When enabled, default # datasets are selected for "Set at Runtime" inputs from the history # such that the same input will not be selected twice, unless there - # are more inputs than compatible datasets in the history. When False, + # are more inputs than compatible datasets in the history. When false, # the most recently added compatible item in the history will be used # for each "Set at Runtime" input, independent of others in the - # Workflow + # workflow. #enable_unique_workflow_defaults: false # The URL to the myExperiment instance being used (omit scheme but - # include port) + # include port). #myexperiment_url: www.myexperiment.org:80 # Enable Galaxy's "Upload via FTP" interface. You'll need to install @@ -1482,8 +1484,8 @@ galaxy: # a particular user. #ftp_upload_dir_template: ${ftp_upload_dir}/${ftp_upload_dir_identifier - # This should be set to False to prevent Galaxy from deleting uploaded - # FTP files as it imports them. + # Set to false to prevent Galaxy from deleting uploaded FTP files as + # it imports them. #ftp_upload_purge: true # Enable enforcement of quotas. Quotas can be set from the Admin @@ -1540,6 +1542,13 @@ galaxy: # dependency_resolvers_config_file is used. #dependency_resolvers: null + # Alternative representation of various dependency resolution + # parameters. Takes the dictified version of a DependencyManager + # object - so this is ideal for automating the configuration of + # dependency resolution from one application that uses a + # DependencyManager to another. + #dependency_resolution: null + # When jobs fail due to job runner problems, Galaxy can be configured # to retry these or reroute the jobs to new destinations. Very fine # control of this is available with resubmit declarations in @@ -1580,7 +1589,7 @@ galaxy: # fail. In these instances, you can choose to retry setting it # internally or leave it in a failed state (since retrying internally # may cause the Galaxy process to be unresponsive). If this option is - # set to False, the user will be given the option to retry externally, + # set to false, the user will be given the option to retry externally, # or set metadata manually (when possible). #retry_metadata_internally: true @@ -1700,7 +1709,7 @@ galaxy: # several extra database queries must be performed to determine the # number of jobs a user has dispatched to a given destination. By # default, these queries will happen for every job that is waiting to - # run, but if cache_user_job_count is set to True, it will only happen + # run, but if cache_user_job_count is set to true, it will only happen # once per iteration of the handler queue. Although better for # performance due to reduced queries, the trade-off is a greater # possibility that jobs will be dispatched past the configured limits diff --git a/lib/galaxy/webapps/galaxy/config_schema.yml b/lib/galaxy/webapps/galaxy/config_schema.yml index 0a586fd22be..6f2cc6f7473 100644 --- a/lib/galaxy/webapps/galaxy/config_schema.yml +++ b/lib/galaxy/webapps/galaxy/config_schema.yml @@ -185,7 +185,7 @@ mapping: tool_config_files (i.e., tool_conf.xml) have been migrated from the Galaxy code distribution to the Tool Shed. This functionality is largely untested in modern Galaxy releases and has serious issues such as #7273 and the possibility - of slowing down Galaxy startup, so the default and recommended value is False. + of slowing down Galaxy startup, so the default and recommended value is false. migrated_tools_config: type: str @@ -283,7 +283,7 @@ mapping: default: false required: false desc: | - Set to True to instruct Galaxy to look for and install missing tool + Set to true to instruct Galaxy to look for and install missing tool dependencies before each job runs. conda_auto_init: @@ -291,7 +291,7 @@ mapping: default: true required: false desc: | - Set to True to instruct Galaxy to install Conda from the web automatically + Set to true to instruct Galaxy to install Conda from the web automatically if it cannot find a local copy and conda_exec is not configured. conda_copy_dependencies: @@ -299,7 +299,7 @@ mapping: default: false required: false desc: | - You must set this to True if conda_prefix and job_working_directory are not on the same + You must set this to true if conda_prefix and job_working_directory are not on the same volume, or some conda dependencies will fail to execute at job runtime. Conda will copy packages content instead of creating hardlinks or symlinks. This will prevent problems with some specific packages (perl, R), at the cost @@ -312,7 +312,7 @@ mapping: desc: | Certain dependency resolvers (namely Conda) take a considerable amount of time to build an isolated job environment in the job_working_directory if the - job working directory is on a network share. Set the following option to True + job working directory is on a network share. Set this option to true to cache the dependencies in a folder. This option is beta and should only be used if you experience long waiting times before a job is actually submitted to your cluster. @@ -336,7 +336,7 @@ mapping: desc: | By default, when using a cached dependency manager, the dependencies are cached when installing new tools and when using tools for the first time. - Set this to False if you prefer dependencies to be cached only when installing new tools. + Set this to false if you prefer dependencies to be cached only when installing new tools. tool_sheds_config_file: type: str @@ -351,7 +351,7 @@ mapping: default: 'false' required: false desc: | - Set to True to enable monitoring of tools and tool directories + Set to true to enable monitoring of tools and tool directories listed in any tool config file specified in tool_config_file option. If changes are found, tools are automatically reloaded. Watchdog ( https://pypi.org/project/watchdog/ ) must be installed and @@ -366,7 +366,7 @@ mapping: default: 'false' required: false desc: | - Set to True to enable monitoring of dynamic job rules. If changes are + Set to true to enable monitoring of dynamic job rules. If changes are found, rules are automatically reloaded. Takes the same values as the 'watch_tools' option. @@ -416,7 +416,7 @@ mapping: dependencies referenced in tools as `requirement`s. The following path is the location of involucro on the Galaxy host. This is ignored if the relevant container resolver isn't enabled, and will install on demand unless - involucro_auto_init is set to False. + involucro_auto_init is set to false. involucro_auto_init: type: bool @@ -505,7 +505,7 @@ mapping: default: 'false' required: false desc: | - Set to True to enable monitoring of the tool_data and shed_tool_data_path + Set to true to enable monitoring of the tool_data and shed_tool_data_path directories. If changes in tool data table files are found, the tool data tables for that data manager are automatically reloaded. Watchdog ( https://pypi.org/project/watchdog/ ) must be installed and @@ -546,7 +546,7 @@ mapping: desc: | Enable sniffing of compressed datatypes. This can be configured/overridden on a per-datatype basis in the datatypes_conf.xml file. - With this option set to False the compressed datatypes will be unpacked + With this option set to false the compressed datatypes will be unpacked before sniffing. @@ -585,7 +585,7 @@ mapping: required: false desc: | To run interactive environment containers in Docker Swarm mode (on an - existing swarm), set this option to True and set `docker_connect_port` in the + existing swarm), set this option to true and set `docker_connect_port` in the IE plugin config (ini) file(s) of any IE plugins you have enabled and ensure that you are not using any `docker run`-specific options in your plugins' `command_inject` options (swarm mode services run using `docker service @@ -823,7 +823,7 @@ mapping: default: false required: false desc: | - User account activation feature global flag. If set to "False", the rest of + User account activation feature global flag. If set to false, the rest of the Account activation configuration is ignored and user activation is disabled (i.e. accounts are active since registration). The activation is also not working in case the SMTP server is not defined. @@ -881,7 +881,7 @@ mapping: which browsers should be available. URLs and builds available at these browsers are defined in the specified files. - If use_remote_user = True, display application servers will be denied access + If use_remote_user is set to true, display application servers will be denied access to Galaxy and so displaying datasets in these sites will fail. display_servers contains a list of hostnames which should be allowed to bypass security to display datasets. Please be aware that there are security @@ -899,8 +899,8 @@ mapping: default: true required: false desc: | - To disable the old-style display applications that are hardcoded into - datatype classes, set enable_old_display_applications = False. + Set this to false to disable the old-style display applications that + are hardcoded into datatype classes. This may be desirable due to using the new-style, XML-defined, display applications that have been defined for many of the datatypes that have the old-style. @@ -1182,7 +1182,7 @@ mapping: https://docs.galaxyproject.org/en/master/admin/production.html Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set - this to True to inform Galaxy that mod_xsendfile is enabled upstream. + this to true to inform Galaxy that mod_xsendfile is enabled upstream. nginx_x_accel_redirect_base: type: str @@ -1273,7 +1273,7 @@ mapping: services based on Galaxy's session cookie. It will attempt to do this by default though you do need to install node+npm and do an npm install from `lib/galaxy/web/proxy/js`. It is generally more robust to configure this - externally, managing it however Galaxy is managed. If True, Galaxy will only + externally, managing it in the same way Galaxy itself is managed. If true, Galaxy will only launch the proxy if it is actually going to be used (e.g. for Jupyter). dynamic_proxy: @@ -1299,7 +1299,7 @@ mapping: required: false desc: | Set the port and IP for the dynamic proxy to bind to, this must match - the external configuration if dynamic_proxy_manage is False. + the external configuration if dynamic_proxy_manage is set to false. dynamic_proxy_bind_ip: type: str @@ -1307,7 +1307,7 @@ mapping: required: false desc: | Set the port and IP for the dynamic proxy to bind to, this must match - the external configuration if dynamic_proxy_manage is False. + the external configuration if dynamic_proxy_manage is set to false. dynamic_proxy_debug: type: bool @@ -1375,7 +1375,7 @@ mapping: default: true required: false desc: | - If True, Galaxy will attempt to configure a simple root logger if a + If true, Galaxy will attempt to configure a simple root logger if a "loggers" section does not appear in this configuration file. log_level: @@ -1389,7 +1389,7 @@ mapping: logging: type: map - allowempty: True + allowempty: true desc: | Controls where and how the server logs messages. If unset, the default is to log all messages to standard output at the level defined by the `log_level` configuration option. Configuration is described in the @@ -1478,7 +1478,7 @@ mapping: By default Galaxy will serve non-HTML tool output that may potentially contain browser executable JavaScript content as plain text. This will for instance cause SVG datasets to not render properly and so may be disabled - by setting the following option to True. + by setting this option to true. allowed_origin_hostnames: type: str @@ -1497,7 +1497,7 @@ mapping: default: false required: false desc: | - Set the following to True to use Jupyter nbconvert to build HTML from Jupyter + Set to true to use Jupyter nbconvert to build HTML from Jupyter notebooks in Galaxy histories. This process may allow users to execute arbitrary code or serve arbitrary HTML. If enabled, Jupyter must be available and on Galaxy's PATH, to do this run @@ -1706,7 +1706,7 @@ mapping: adds an option to the admin library upload tool allowing admins to paste filesystem paths to files and directories in a box, and these paths will be added to a library. For history uploads, this allows pasting in paths as URIs. - (i.e. prefixed with file://). Set to True to enable. Please note the security + (i.e. prefixed with file://). Set to true to enable. Please note the security implication that this will give Galaxy Admins access to anything your Galaxy user has access to. @@ -1902,8 +1902,8 @@ mapping: required: false desc: | If your proxy and/or authentication source does not normalize e-mail - addresses or user names being passed to Galaxy - set the following option - to True to force these to lower case. + addresses or user names being passed to Galaxy - set this option + to true to force these to lower case. single_user: type: str @@ -1939,7 +1939,7 @@ mapping: required: false desc: | Show the site's welcome page (see welcome_url) alongside the login page - (even if require_login is True) + (even if require_login is true). allow_user_creation: type: bool @@ -1961,7 +1961,7 @@ mapping: default: false required: false desc: | - Allow administrators to log in as other users (useful for debugging) + Allow administrators to log in as other users (useful for debugging). show_user_prepopulate_form: type: bool @@ -1985,7 +1985,7 @@ mapping: default: false required: false desc: | - By default, users' data will be public, but setting this to True will cause + By default, users' data will be public, but setting this to true will cause it to be private. Does not affect existing users and data, only ones created after this option is set. Users may still change their default back to public. @@ -1995,30 +1995,30 @@ mapping: default: false required: false desc: | - Expose user list. Setting this to True will expose the user list to + Expose user list. Setting this to true will expose the user list to authenticated users. This makes sharing datasets in smaller galaxy instances much easier as they can type a name/email and have the correct user show up. This makes less sense on large public Galaxy instances where that data shouldn't be exposed. For semi-public Galaxies, it may make sense to expose just the username and not email, or vice versa. - If enable_beta_gdpr is set to True, then this option will be - overridden and set to False. + If enable_beta_gdpr is set to true, then this option will be + overridden and set to false. expose_user_email: type: bool default: false required: false desc: | - Expose user list. Setting this to True will expose the user list to + Expose user list. Setting this to true will expose the user list to authenticated users. This makes sharing datasets in smaller galaxy instances much easier as they can type a name/email and have the correct user show up. This makes less sense on large public Galaxy instances where that data shouldn't be exposed. For semi-public Galaxies, it may make sense to expose just the username and not email, or vice versa. - If enable_beta_gdpr is set to True, then this option will be - overridden and set to False. + If enable_beta_gdpr is set to true, then this option will be + overridden and set to false. fetch_url_whitelist: type: str @@ -2235,15 +2235,15 @@ mapping: are selected for "Set at Runtime" inputs from the history such that the same input will not be selected twice, unless there are more inputs than compatible datasets in the history. - When False, the most recently added compatible item in the history will - be used for each "Set at Runtime" input, independent of others in the Workflow + When false, the most recently added compatible item in the history will + be used for each "Set at Runtime" input, independent of others in the workflow. myexperiment_url: type: str default: www.myexperiment.org:80 required: false desc: | - The URL to the myExperiment instance being used (omit scheme but include port) + The URL to the myExperiment instance being used (omit scheme but include port). ftp_upload_dir: type: str @@ -2287,7 +2287,7 @@ mapping: default: true required: false desc: | - This should be set to False to prevent Galaxy from deleting uploaded FTP files + Set to false to prevent Galaxy from deleting uploaded FTP files as it imports them. enable_quotas: @@ -2462,7 +2462,7 @@ mapping: Although it is fairly reliable, setting metadata can occasionally fail. In these instances, you can choose to retry setting it internally or leave it in a failed state (since retrying internally may cause the Galaxy process to be - unresponsive). If this option is set to False, the user will be given the + unresponsive). If this option is set to false, the user will be given the option to retry externally, or set metadata manually (when possible). max_metadata_value_size: @@ -2628,7 +2628,7 @@ mapping: extra database queries must be performed to determine the number of jobs a user has dispatched to a given destination. By default, these queries will happen for every job that is waiting to run, but if cache_user_job_count is - set to True, it will only happen once per iteration of the handler queue. + set to true, it will only happen once per iteration of the handler queue. Although better for performance due to reduced queries, the trade-off is a greater possibility that jobs will be dispatched past the configured limits if running many handlers. From 95d69146be609913d591ace31e24e72c629773c1 Mon Sep 17 00:00:00 2001 From: guerler Date: Wed, 10 Jul 2019 08:21:38 +0200 Subject: [PATCH 136/141] Restore tool metadata endpoint for old tool management grid --- .../galaxy/controllers/admin_toolshed.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py index 01c28329dc8..00653846147 100644 --- a/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py +++ b/lib/galaxy/webapps/galaxy/controllers/admin_toolshed.py @@ -268,6 +268,41 @@ class AdminToolshed(AdminGalaxy): """Return an svg image representation of a workflow dictionary created when the workflow was exported.""" return workflow_util.generate_workflow_image(trans, workflow_name, repository_metadata_id=None, repository_id=repository_id) + @web.expose + @web.require_admin + def view_tool_metadata(self, trans, repository_id, tool_id, **kwd): + message = escape(kwd.get('message', '')) + status = kwd.get('status', 'done') + repository = repository_util.get_installed_tool_shed_repository(trans.app, repository_id) + repository_metadata = repository.metadata + shed_config_dict = repository.get_shed_config_dict(trans.app) + tool_metadata = {} + tool_lineage = [] + tool = None + if 'tools' in repository_metadata: + for tool_metadata_dict in repository_metadata['tools']: + if tool_metadata_dict['id'] == tool_id: + tool_metadata = tool_metadata_dict + tool_config = tool_metadata['tool_config'] + if shed_config_dict and shed_config_dict.get('tool_path'): + tool_config = os.path.join(shed_config_dict.get('tool_path'), tool_config) + tool = trans.app.toolbox.get_tool(tool_id=tool_metadata['guid'], exact=True) + if not tool: + tool = trans.app.toolbox.load_tool(os.path.abspath(tool_config), guid=tool_metadata['guid']) + if tool: + tool._lineage = trans.app.toolbox._lineage_map.register(tool) + if tool: + tool_lineage = tool.lineage.get_version_ids(reverse=True) + break + return trans.fill_template("/admin/tool_shed_repository/view_tool_metadata.mako", + repository=repository, + repository_metadata=repository_metadata, + tool=tool, + tool_metadata=tool_metadata, + tool_lineage=tool_lineage, + message=message, + status=status) + @web.json @web.require_admin def get_file_contents(self, trans, file_path, repository_id): From 485e0043a7e25c0002765669a1bfc792ad895ea2 Mon Sep 17 00:00:00 2001 From: Brad Langhorst Date: Wed, 10 Jul 2019 05:22:27 -0400 Subject: [PATCH 137/141] implements nicola's suggestion -> snakecase --- lib/galaxy/managers/library_datasets.py | 2 +- lib/galaxy/model/__init__.py | 2 +- lib/galaxy/webapps/base/controller.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/managers/library_datasets.py b/lib/galaxy/managers/library_datasets.py index 7afd706a7cc..20b76a1bf50 100644 --- a/lib/galaxy/managers/library_datasets.py +++ b/lib/galaxy/managers/library_datasets.py @@ -101,7 +101,7 @@ class LibraryDatasetsManager(datasets.DatasetAssociationManager): ldda.dbkey = new_genome_build changed = True if changed: - ldda.updateParentFolderUpdateTimes() + ldda.update_parent_folder_update_times() trans.sa_session.add(ldda) trans.sa_session.flush() return changed diff --git a/lib/galaxy/model/__init__.py b/lib/galaxy/model/__init__.py index d90101036b5..41a8f8ef5bd 100644 --- a/lib/galaxy/model/__init__.py +++ b/lib/galaxy/model/__init__.py @@ -3594,7 +3594,7 @@ class LibraryDatasetDatasetAssociation(DatasetInstance, HasName, RepresentById): rval['metadata_' + name] = val return rval - def updateParentFolderUpdateTimes(self): + def update_parent_folder_update_times(self): # sets the update_time for all continaing folders up the tree ldda = self diff --git a/lib/galaxy/webapps/base/controller.py b/lib/galaxy/webapps/base/controller.py index 418ebc842db..f08c3b81d0b 100644 --- a/lib/galaxy/webapps/base/controller.py +++ b/lib/galaxy/webapps/base/controller.py @@ -546,7 +546,7 @@ class UsesLibraryMixinItems(SharableItemSecurityMixin): # I don't see a reason why hdas copied into libraries should not be visible. # If there is, refactor `ldda.visible = True` to do this only when adding HDCAs. ldda.visible = True - ldda.updateParentFolderUpdateTimes() + ldda.update_parent_folder_update_times() trans.sa_session.flush() ldda_dict = ldda.to_dict() rval = trans.security.encode_dict_ids(ldda_dict) From 888c03877df21eb779557f042f1039020ff3a1e9 Mon Sep 17 00:00:00 2001 From: mvdbeek Date: Wed, 10 Jul 2019 13:49:50 +0200 Subject: [PATCH 138/141] Fix kubernetes runner on py3 instance_id is a string, so this can't be compared to an integer on python 3. Broken in ac1b25ed4c069abf1c8d810ba26d5be43717766d, prior to that the comparison was `len(self._galaxy_instance_id) > 0:` --- lib/galaxy/jobs/runners/util/pykube_util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/jobs/runners/util/pykube_util.py b/lib/galaxy/jobs/runners/util/pykube_util.py index a86601c324f..0203b9f5046 100644 --- a/lib/galaxy/jobs/runners/util/pykube_util.py +++ b/lib/galaxy/jobs/runners/util/pykube_util.py @@ -47,7 +47,7 @@ def produce_unique_k8s_job_name(app_prefix=None, instance_id=None, job_id=None): if app_prefix: job_name += "%s-" % app_prefix - if instance_id and instance_id > 0: + if instance_id and len(instance_id) > 0: job_name += "%s-" % instance_id return job_name + job_id From d2789add97bea1add3b2760ea08c9894ef8d1e08 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Wed, 10 Jul 2019 16:01:26 +0100 Subject: [PATCH 139/141] Restore docs building Broken in commit 42cf61fd3608e24e74837da6706d506dd276db36 . --- doc/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Makefile b/doc/Makefile index c4589e50479..644c424d8a0 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -57,7 +57,7 @@ source/api/ts_api.rst: source/lib/galaxy.webapps.tool_shed.api.rst sed -i.bak -e 's/^galaxy\\\.webapps\\\.tool\\_shed\\\.api\\\.//' $@ rm -f $@.bak -source/admin/config_logging_default_yaml.rst: ../lib/galaxy/config.py +source/admin/config_logging_default_yaml.rst: ../lib/galaxy/config/__init__.py printf '.. code-block:: yaml\n\n' > $@ printf ' galaxy:\n' >> $@ printf ' logging:\n ' >> $@ From 40fe0a3e86d00c07e8afad995bd4d88024d8ffeb Mon Sep 17 00:00:00 2001 From: Vahid Date: Wed, 10 Jul 2019 12:51:52 -0700 Subject: [PATCH 140/141] Enable user1 & user2 resolve to different usernames --- lib/galaxy/tools/verify/interactor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tools/verify/interactor.py b/lib/galaxy/tools/verify/interactor.py index 168931157f3..11b15751e15 100644 --- a/lib/galaxy/tools/verify/interactor.py +++ b/lib/galaxy/tools/verify/interactor.py @@ -579,7 +579,7 @@ class GalaxyInteractorApi(object): try: test_user = [user for user in all_users if user["email"] == email][0] except IndexError: - username = re.sub('[^a-z-]', '--', email.lower()) + username = re.sub('[^a-z-\d]', '--', email.lower()) password = password or 'testpass' # If remote user middleware is enabled - this endpoint consumes # ``remote_user_email`` otherwise it requires ``email``, ``password`` From 731b3eb8d215a3048806b4e272819fdc1504f346 Mon Sep 17 00:00:00 2001 From: Vahid Date: Wed, 10 Jul 2019 13:49:33 -0700 Subject: [PATCH 141/141] add `r` to regexp to escape `\d` & satisfy lint. --- lib/galaxy/tools/verify/interactor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/tools/verify/interactor.py b/lib/galaxy/tools/verify/interactor.py index 11b15751e15..54d1442577d 100644 --- a/lib/galaxy/tools/verify/interactor.py +++ b/lib/galaxy/tools/verify/interactor.py @@ -579,7 +579,7 @@ class GalaxyInteractorApi(object): try: test_user = [user for user in all_users if user["email"] == email][0] except IndexError: - username = re.sub('[^a-z-\d]', '--', email.lower()) + username = re.sub(r"[^a-z-\d]", '--', email.lower()) password = password or 'testpass' # If remote user middleware is enabled - this endpoint consumes # ``remote_user_email`` otherwise it requires ``email``, ``password``