commit/galaxy-central: greg: Restrict the use of "orphan tool dependencies" in the Tool Shed. The designation of a ToolDependency into the "orphan" category has evolved over time, and is significantly restricted since the introduction of the TOOL_DEPENDENCY_DEFINITION repository type. This designation is still critical, however, in that it handles the case where a repository contains both tools and a tool_dependencies.xml file, but the definition in the tool_dependencies.xml file is in no w
1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/48b18d8fd24e/ Changeset: 48b18d8fd24e User: greg Date: 2013-10-25 21:35:18 Summary: Restrict the use of "orphan tool dependencies" in the Tool Shed. The designation of a ToolDependency into the "orphan" category has evolved over time, and is significantly restricted since the introduction of the TOOL_DEPENDENCY_DEFINITION repository type. This designation is still critical, however, in that it handles the case where a repository contains both tools and a tool_dependencies.xml file, but the definition in the tool_dependencies.xml file is in no way related to anything defined by any of the contained tool's requirements tag sets. This is important in that it is often a result of a typo (e.g., dependency name or version) that differs between the tool dependency definition within the tool_dependencies.xml file and what is defined in the tool config's <requirements> tag sets. In these cases, the user should be presented with a warning message, and this warning message is is in fact displayed if the following is_orphan attribute is True. This is tricky because in some cases it may be intentional, and tool dependencies that are categorized as "orphan" are in fact valid. From here on, orphan tool dependencies are not stored in a separate container in repository metadata, nor are they labeled as such in any page containers in the tool shed. Only appropriate warning messages are now displayed when new change sets are committed or when visiting the repository in the tool shed. Affected #: 11 files diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/galaxy/webapps/tool_shed/api/repositories.py --- a/lib/galaxy/webapps/tool_shed/api/repositories.py +++ b/lib/galaxy/webapps/tool_shed/api/repositories.py @@ -1,6 +1,6 @@ -import logging, os +import logging +import os from time import strftime - from galaxy import eggs from galaxy import util from galaxy import web diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/galaxy/webapps/tool_shed/controllers/repository.py --- a/lib/galaxy/webapps/tool_shed/controllers/repository.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py @@ -2980,6 +2980,12 @@ key_rd_dicts_to_be_processed=None, all_repository_dependencies=None, handled_key_rd_dicts=None ) + if str( repository.type ) != rt_util.TOOL_DEPENDENCY_DEFINITION: + # Handle messaging for orphan tool dependency definitions. + orphan_message = tool_dependency_util.generate_message_for_orphan_tool_dependencies( trans, repository, metadata ) + if orphan_message: + message += orphan_message + status = 'warning' else: metadata = None is_malicious = suc.changeset_is_malicious( trans, id, repository.tip( trans.app ) ) diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/galaxy/webapps/tool_shed/controllers/upload.py --- a/lib/galaxy/webapps/tool_shed/controllers/upload.py +++ b/lib/galaxy/webapps/tool_shed/controllers/upload.py @@ -227,7 +227,6 @@ # or some other problem. Tool dependency definitions can define orphan tool dependencies (no relationship to any tools contained in the repository), # so warning messages are important because orphans are always valid. The repository owner must be warned in case they did not intend to define an # orphan dependency, but simply provided incorrect information (tool shed, name owner, changeset_revision) for the definition. - # Handle messaging for orphan tool dependencies. orphan_message = tool_dependency_util.generate_message_for_orphan_tool_dependencies( trans, repository, metadata_dict ) if orphan_message: message += orphan_message diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/tool_shed/galaxy_install/install_manager.py --- a/lib/tool_shed/galaxy_install/install_manager.py +++ b/lib/tool_shed/galaxy_install/install_manager.py @@ -597,6 +597,8 @@ def __has_tool_dependencies( self, metadata_dict ): '''Determine if the provided metadata_dict specifies tool dependencies.''' + # The use of the orphan_tool_dependencies category in metadata has been deprecated, but we still need to check in case + # the metadata is out of date. if 'tool_dependencies' in metadata_dict or 'orphan_tool_dependencies' in metadata_dict: return True return False diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/tool_shed/util/container_util.py --- a/lib/tool_shed/util/container_util.py +++ b/lib/tool_shed/util/container_util.py @@ -5,6 +5,7 @@ from galaxy.web.framework.helpers import time_ago from tool_shed.util import common_util from tool_shed.util import readme_util +from tool_shed.util.tool_dependency_util import tool_dependency_is_orphan import tool_shed.util.shed_util_common as suc log = logging.getLogger( __name__ ) @@ -278,6 +279,14 @@ self.installation_status = installation_status self.repository_id = repository_id self.tool_dependency_id = tool_dependency_id + # The designation of a ToolDependency into the "orphan" category has evolved over time, and is significantly restricted since the + # introduction of the TOOL_DEPENDENCY_DEFINITION repository type. This designation is still critical, however, in that it handles + # the case where a repository contains both tools and a tool_dependencies.xml file, but the definition in the tool_dependencies.xml + # file is in no way related to anything defined by any of the contained tool's requirements tag sets. This is important in that it + # is often a result of a typo (e.g., dependency name or version) that differs between the tool dependency definition within the + # tool_dependencies.xml file and what is defined in the tool config's <requirements> tag sets. In these cases, the user should be + # presented with a warning message, and this warning message is is in fact displayed if the following is_orphan attribute is True. + # This is tricky because in some cases it may be intentional, and tool dependencies that are categorized as "orphan" are in fact valid. self.is_orphan = is_orphan @property @@ -310,32 +319,29 @@ self.repository_metadata_id = repository_metadata_id self.repository_id = repository_id -def add_orphan_settings_to_tool_dependencies( tool_dependencies, orphan_tool_dependencies ): +def add_orphan_settings_to_tool_dependencies( tool_dependencies, tools ): """Inspect all received tool dependencies and label those that are orphans within the repository.""" - orphan_env_dependencies = orphan_tool_dependencies.get( 'set_environment', None ) + #orphan_env_dependencies = orphan_tool_dependencies.get( 'set_environment', None ) new_tool_dependencies = {} - if tool_dependencies: - for td_key, requirements_dict in tool_dependencies.items(): - if td_key in [ 'set_environment' ]: - # "set_environment": [{"name": "R_SCRIPT_PATH", "type": "set_environment"}] - if orphan_env_dependencies: - new_set_environment_dict_list = [] - for set_environment_dict in requirements_dict: - if set_environment_dict in orphan_env_dependencies: - set_environment_dict[ 'is_orphan' ] = True - else: - set_environment_dict[ 'is_orphan' ] = False - new_set_environment_dict_list.append( set_environment_dict ) - new_tool_dependencies[ td_key ] = new_set_environment_dict_list - else: - new_tool_dependencies[ td_key ] = requirements_dict - else: - # {"R/2.15.1": {"name": "R", "readme": "some string", "type": "package", "version": "2.15.1"} - if td_key in orphan_tool_dependencies: - requirements_dict[ 'is_orphan' ] = True - else: - requirements_dict[ 'is_orphan' ] = False - new_tool_dependencies[ td_key ] = requirements_dict + for td_key, requirements_dict in tool_dependencies.items(): + if td_key in [ 'set_environment' ]: + # "set_environment": [{"name": "R_SCRIPT_PATH", "type": "set_environment"}] + new_set_environment_dict_list = [] + for env_requirements_dict in requirements_dict: + name = env_requirements_dict[ 'name' ] + type = env_requirements_dict[ 'type' ] + if tool_dependency_is_orphan( type, name, None, tools ): + env_requirements_dict[ 'is_orphan' ] = True + new_set_environment_dict_list.append( env_requirements_dict ) + new_tool_dependencies[ td_key ] = new_set_environment_dict_list + else: + # {"R/2.15.1": {"name": "R", "readme": "some string", "type": "package", "version": "2.15.1"} + name = requirements_dict[ 'name' ] + type = requirements_dict[ 'type' ] + version = requirements_dict[ 'version'] + if tool_dependency_is_orphan( type, name, version, tools ): + requirements_dict[ 'is_orphan' ] = True + new_tool_dependencies[ td_key ] = requirements_dict return new_tool_dependencies def build_data_managers_folder( trans, folder_id, data_managers, label=None ): @@ -802,8 +808,16 @@ tool_dependencies = metadata[ 'tool_dependencies' ] if trans.webapp.name == 'tool_shed': if 'orphan_tool_dependencies' in metadata: + # The use of the orphan_tool_dependencies category in metadata has been deprecated, but we still need to check in case + # the metadata is out of date. orphan_tool_dependencies = metadata[ 'orphan_tool_dependencies' ] - tool_dependencies = add_orphan_settings_to_tool_dependencies( tool_dependencies, orphan_tool_dependencies ) + tool_dependencies.update( orphan_tool_dependencies ) + # Tool dependencies can be categorized as orphans only if the repository contains tools. + if 'tools' not in exclude: + tools = metadata.get( 'tools', [] ) + tools.extend( metadata.get( 'invalid_tools', [] ) ) + if tools: + tool_dependencies = add_orphan_settings_to_tool_dependencies( tool_dependencies, tools ) folder_id, tool_dependencies_root_folder = build_tool_dependencies_folder( trans, folder_id, tool_dependencies, @@ -967,8 +981,7 @@ readme=None, installation_status='Installation status', repository_id=None, - tool_dependency_id=None, - is_orphan=None ) + tool_dependency_id=None ) else: tool_dependency = ToolDependency( id=tool_dependency_id, name='Name', @@ -977,8 +990,7 @@ readme=None, installation_status=None, repository_id=None, - tool_dependency_id=None, - is_orphan='Orphan' ) + tool_dependency_id=None ) folder.tool_dependencies.append( tool_dependency ) not_used_by_local_tools_description = "these dependencies may not be required by tools in this repository" for dependency_key, requirements_dict in tool_dependencies.items(): @@ -988,7 +1000,7 @@ if trans.webapp.name == 'tool_shed': is_orphan = set_environment_dict.get( 'is_orphan', False ) else: - # TODO: handle this is Galaxy + # This is probably not necessary to display in Galaxy. is_orphan = False if is_orphan: folder.description = not_used_by_local_tools_description diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/tool_shed/util/metadata_util.py --- a/lib/tool_shed/util/metadata_util.py +++ b/lib/tool_shed/util/metadata_util.py @@ -99,7 +99,6 @@ no_datatypes = not ancestor_datatypes and not current_datatypes no_readme_files = not ancestor_readme_files and not current_readme_files no_repository_dependencies = not ancestor_repository_dependencies and not current_repository_dependencies - # Tool dependencies can define orphan dependencies in the tool shed. no_tool_dependencies = not ancestor_tool_dependencies and not current_tool_dependencies no_tools = not ancestor_guids and not current_guids no_workflows = not ancestor_workflows and not current_workflows @@ -544,8 +543,8 @@ def generate_environment_dependency_metadata( elem, valid_tool_dependencies_dict ): """ - The value of env_var_name must match the value of the "set_environment" type in the tool config's <requirements> tag set, or the tool dependency - will be considered an orphan. Tool dependencies of type set_environment are always defined as valid, but may be orphans. + The value of env_var_name must match the value of the "set_environment" type in the tool config's <requirements> tag set, + or the tool dependency will be considered an orphan. """ # The value of the received elem looks something like this: # <set_environment version="1.0"> @@ -900,7 +899,6 @@ invalid_repository_dependency_tups.append( repository_dependency_tup ) error_message = '%s %s' % ( error_message, message ) elif elem.tag == 'set_environment': - # Tool dependencies of this type are always considered valid, but may be orphans. valid_tool_dependencies_dict = generate_environment_dependency_metadata( elem, valid_tool_dependencies_dict ) if valid_tool_dependencies_dict: if original_valid_tool_dependencies_dict: @@ -920,18 +918,6 @@ repository_dependency_tups=invalid_repository_dependency_tups, is_valid=False, description=description ) - # We need to continue to restrict the behavior for defining orphan tool dependencies, possibly eliminating them altoghether at some point. - check_for_orphan_tool_dependencies = False - if app.name == 'tool_shed': - if repository.type != rt_util.TOOL_DEPENDENCY_DEFINITION and not repository.can_change_type_to( app, rt_util.TOOL_DEPENDENCY_DEFINITION ): - check_for_orphan_tool_dependencies = True - elif 'tools' in metadata_dict: - check_for_orphan_tool_dependencies = True - if check_for_orphan_tool_dependencies: - # Determine and store orphan tool dependencies. - orphan_tool_dependencies = get_orphan_tool_dependencies( metadata_dict ) - if orphan_tool_dependencies: - metadata_dict[ 'orphan_tool_dependencies' ] = orphan_tool_dependencies return metadata_dict, error_message def generate_tool_metadata( tool_config, tool, repository_clone_url, metadata_dict ): @@ -1007,34 +993,6 @@ changeset_revision = suc.get_latest_changeset_revision( trans, repository, repo ) return suc.get_repository_metadata_by_changeset_revision( trans, trans.security.encode_id( repository.id ), changeset_revision ) -def get_orphan_tool_dependencies( metadata ): - """Inspect tool dependencies included in the received metadata and determine if any of them are orphans within the repository.""" - orphan_tool_dependencies_dict = {} - if metadata: - tools = metadata.get( 'tools', None ) - tool_dependencies = metadata.get( 'tool_dependencies', None ) - if tool_dependencies: - for td_key, requirements_dict in tool_dependencies.items(): - if td_key in [ 'set_environment' ]: - for set_environment_dict in requirements_dict: - type = 'set_environment' - name = set_environment_dict.get( 'name', None ) - version = None - if name: - if tool_dependency_is_orphan( type, name, version, tools ): - if td_key in orphan_tool_dependencies_dict: - orphan_tool_dependencies_dict[ td_key ].append( set_environment_dict ) - else: - orphan_tool_dependencies_dict[ td_key ] = [ set_environment_dict ] - else: - type = requirements_dict.get( 'type', None ) - name = requirements_dict.get( 'name', None ) - version = requirements_dict.get( 'version', None ) - if type and name: - if tool_dependency_is_orphan( type, name, version, tools ): - orphan_tool_dependencies_dict[ td_key ] = requirements_dict - return orphan_tool_dependencies_dict - def get_parent_id( trans, id, old_id, version, guid, changeset_revisions ): parent_id = None # Compare from most recent to oldest. @@ -1929,33 +1887,6 @@ message=error_message, status='error' ) ) -def tool_dependency_is_orphan( type, name, version, tools ): - """ - Determine if the combination of the received type, name and version is defined in the <requirement> tag for at least one tool in the received list of tools. - If not, the tool dependency defined by the combination is considered an orphan in it's repository in the tool shed. - """ - if tools: - if type == 'package': - if name and version: - for tool_dict in tools: - requirements = tool_dict.get( 'requirements', [] ) - for requirement_dict in requirements: - req_name = requirement_dict.get( 'name', None ) - req_version = requirement_dict.get( 'version', None ) - req_type = requirement_dict.get( 'type', None ) - if req_name == name and req_version == version and req_type == type: - return False - elif type == 'set_environment': - if name: - for tool_dict in tools: - requirements = tool_dict.get( 'requirements', [] ) - for requirement_dict in requirements: - req_name = requirement_dict.get( 'name', None ) - req_type = requirement_dict.get( 'type', None ) - if req_name == name and req_type == type: - return False - return True - def update_existing_tool_dependency( app, repository, original_dependency_dict, new_dependencies_dict ): """ Update an exsiting tool dependency whose definition was updated in a change set pulled by a Galaxy administrator when getting updates diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb lib/tool_shed/util/tool_dependency_util.py --- a/lib/tool_shed/util/tool_dependency_util.py +++ b/lib/tool_shed/util/tool_dependency_util.py @@ -102,9 +102,9 @@ def generate_message_for_invalid_tool_dependencies( metadata_dict ): """ - Due to support for orphan tool dependencies (which are always valid) tool dependency definitions can only be invalid if they include a definition for a complex - repository dependency and the repository dependency definition is invalid. This method retrieves the error message associated with the invalid tool dependency - for display in the caller. + Tool dependency definitions can only be invalid if they include a definition for a complex repository dependency and the repository + dependency definition is invalid. This method retrieves the error message associated with the invalid tool dependency for display + in the caller. """ message = '' if metadata_dict: @@ -118,38 +118,63 @@ def generate_message_for_orphan_tool_dependencies( trans, repository, metadata_dict ): """ - The introduction of the support for orphan tool dependency definitions in tool shed repositories has resulted in the inability - to define an improperly configured tool dependency definition / tool config requirements tag combination as an invalid tool - dependency. This is certainly a weakness which cannot be correctly handled since now the only way to categorize a tool dependency - as invalid is if it consists of a complex repository dependency that is invalid. Any tool dependency definition other than those - is considered valid but perhaps an orphan due to it's actual invalidity. + The designation of a ToolDependency into the "orphan" category has evolved over time, and is significantly restricted since the + introduction of the TOOL_DEPENDENCY_DEFINITION repository type. This designation is still critical, however, in that it handles + the case where a repository contains both tools and a tool_dependencies.xml file, but the definition in the tool_dependencies.xml + file is in no way related to anything defined by any of the contained tool's requirements tag sets. This is important in that it + is often a result of a typo (e.g., dependency name or version) that differs between the tool dependency definition within the + tool_dependencies.xml file and what is defined in the tool config's <requirements> tag sets. In these cases, the user should be + presented with a warning message, and this warning message is is in fact displayed if the following is_orphan attribute is True. + This is tricky because in some cases it may be intentional, and tool dependencies that are categorized as "orphan" are in fact valid. """ + has_orphan_package_dependencies = False + has_orphan_set_environment_dependencies = False message = '' + package_orphans_str = '' + set_environment_orphans_str = '' + # Tool dependencies are categorized as orphan only if the repository contains tools. if metadata_dict: - orphan_tool_dependencies = metadata_dict.get( 'orphan_tool_dependencies', None ) - if orphan_tool_dependencies: - if 'tools' in metadata_dict or 'invalid_tools' in metadata_dict: - for td_key, requirements_dict in orphan_tool_dependencies.items(): - if td_key == 'set_environment': - # "set_environment": [{"name": "R_SCRIPT_PATH", "type": "set_environment"}] - message += "The settings for <b>name</b> and <b>type</b> from a contained tool configuration file's <b>requirement</b> tag " - message += "does not match the information for the following tool dependency definitions in the <b>tool_dependencies.xml</b> " - message += "file, so these tool dependencies have no relationship with any tools within this repository.<br/>" - for env_requirements_dict in requirements_dict: - name = env_requirements_dict[ 'name' ] - type = env_requirements_dict[ 'type' ] - message += "<b>* name:</b> %s, <b>type:</b> %s<br/>" % ( str( name ), str( type ) ) - else: - # "R/2.15.1": {"name": "R", "readme": "some string", "type": "package", "version": "2.15.1"} - message += "The settings for <b>name</b>, <b>version</b> and <b>type</b> from a contained tool configuration file's " - message += "<b>requirement</b> tag does not match the information for the following tool dependency definitions in the " - message += "<b>tool_dependencies.xml</b> file, so these tool dependencies have no relationship with any tools within " - message += "this repository.<br/>" - name = requirements_dict[ 'name' ] - type = requirements_dict[ 'type' ] - version = requirements_dict[ 'version' ] - message += "<b>* name:</b> %s, <b>type:</b> %s, <b>version:</b> %s<br/>" % ( str( name ), str( type ), str( version ) ) - message += "<br/>" + tools = metadata_dict.get( 'tools', [] ) + invalid_tools = metadata_dict.get( 'invalid_tools', [] ) + tool_dependencies = metadata_dict.get( 'tool_dependencies', {} ) + # The use of the orphan_tool_dependencies category in metadata has been deprecated, but we still need to check in case + # the metadata is out of date. + orphan_tool_dependencies = metadata_dict.get( 'orphan_tool_dependencies', {} ) + # Updating should cause no problems here since a tool dependency cannot be included in both dictionaries. + tool_dependencies.update( orphan_tool_dependencies ) + if tool_dependencies and ( tools or invalid_tools ): + for td_key, requirements_dict in tool_dependencies.items(): + if td_key == 'set_environment': + # "set_environment": [{"name": "R_SCRIPT_PATH", "type": "set_environment"}] + for env_requirements_dict in requirements_dict: + name = env_requirements_dict[ 'name' ] + type = env_requirements_dict[ 'type' ] + if tool_dependency_is_orphan( type, name, None, tools ): + if not has_orphan_set_environment_dependencies: + has_orphan_set_environment_dependencies = True + set_environment_orphans_str += "<b>* name:</b> %s, <b>type:</b> %s<br/>" % ( str( name ), str( type ) ) + else: + # "R/2.15.1": {"name": "R", "readme": "some string", "type": "package", "version": "2.15.1"} + name = requirements_dict[ 'name' ] + type = requirements_dict[ 'type' ] + version = requirements_dict[ 'version' ] + if tool_dependency_is_orphan( type, name, version, tools ): + if not has_orphan_package_dependencies: + has_orphan_package_dependencies = True + package_orphans_str += "<b>* name:</b> %s, <b>type:</b> %s, <b>version:</b> %s<br/>" % \ + ( str( name ), str( type ), str( version ) ) + message += "<br/>" + if has_orphan_package_dependencies: + message += "The settings for <b>name</b>, <b>version</b> and <b>type</b> from a contained tool configuration file's " + message += "<b>requirement</b> tag does not match the information for the following tool dependency definitions in the " + message += "<b>tool_dependencies.xml</b> file, so these tool dependencies have no relationship with any tools within " + message += "this repository.<br/>" + message += package_orphans_str + if has_orphan_set_environment_dependencies: + message += "The settings for <b>name</b> and <b>type</b> from a contained tool configuration file's <b>requirement</b> tag " + message += "does not match the information for the following tool dependency definitions in the <b>tool_dependencies.xml</b> " + message += "file, so these tool dependencies have no relationship with any tools within this repository.<br/>" + message += set_environment_orphans_str return message def generate_message_for_repository_type_change( trans, repository ): @@ -413,3 +438,30 @@ tool_dependency.status = status trans.sa_session.add( tool_dependency ) trans.sa_session.flush() + +def tool_dependency_is_orphan( type, name, version, tools ): + """ + Determine if the combination of the received type, name and version is defined in the <requirement> tag for at least one tool in the + received list of tools. If not, the tool dependency defined by the combination is considered an orphan in it's repository in the tool + shed. + """ + if type == 'package': + if name and version: + for tool_dict in tools: + requirements = tool_dict.get( 'requirements', [] ) + for requirement_dict in requirements: + req_name = requirement_dict.get( 'name', None ) + req_version = requirement_dict.get( 'version', None ) + req_type = requirement_dict.get( 'type', None ) + if req_name == name and req_version == version and req_type == type: + return False + elif type == 'set_environment': + if name: + for tool_dict in tools: + requirements = tool_dict.get( 'requirements', [] ) + for requirement_dict in requirements: + req_name = requirement_dict.get( 'name', None ) + req_type = requirement_dict.get( 'type', None ) + if req_name == name and req_type == type: + return False + return True diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb templates/webapps/tool_shed/repository/common.mako --- a/templates/webapps/tool_shed/repository/common.mako +++ b/templates/webapps/tool_shed/repository/common.mako @@ -891,18 +891,6 @@ <${cell_type}> %if trans.webapp.name == 'galaxy': ${tool_dependency.installation_status | h} - %else: - %if row_is_header: - ${tool_dependency.is_orphan | h} - %else: - <% - if string_as_bool( str( tool_dependency.is_orphan ) ): - is_orphan = 'yes' - else: - is_orphan = 'no' - %> - ${is_orphan | h} - %endif %endif </${cell_type}></tr> diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb test/tool_shed/functional/test_0440_deleting_dependency_definitions.py --- a/test/tool_shed/functional/test_0440_deleting_dependency_definitions.py +++ b/test/tool_shed/functional/test_0440_deleting_dependency_definitions.py @@ -30,14 +30,14 @@ 5. Delete repository_dependencies.xml from convert_chars_0440, and make sure convert_chars_0440 now has two installable revisions: 1 and 2 Complex repository dependencies: -1. Create and populate bwa_package_0440 so that it has a valid orphan tool dependency definition and an installable revision 0. +1. Create and populate bwa_package_0440 so that it has a valid tool dependency definition and an installable revision 0. 2. Create and populate bwa_base_0440 so that it has an installable revision 0. 3. Add a valid complex repository dependency tool_dependencies.xml to bwa_base_0440 that points to the installable revision 0 of bwa_package_0440. 4. Make sure that bwa_base_0440 installable revision is now revision 1 instead of revision 0. 5. Delete tool_dependencies.xml from bwa_base_0440, and make sure bwa_base_0440 now has two installable revisions: 1 and 2 Tool dependencies: -1. Create and populate bwa_tool_dependency_0440 so that it has a valid orphan tool dependency definition and an installable revision 0. +1. Create and populate bwa_tool_dependency_0440 so that it has a valid tool dependency definition and an installable revision 0. 2. Delete tool_dependencies.xml from bwa_tool_dependency_0440, and make sure that bwa_tool_dependency_0440 still has a single installable revision 0. 3. Add the same tool_dependencies.xml file to bwa_tool_dependency_0440, and make sure that bwa_tool_dependency_0440 @@ -176,7 +176,7 @@ def test_0030_create_bwa_package_repository( self ): '''Create and populate the bwa_package_0440 repository.''' ''' - We are at complex repository dependencies, step 1 - Create and populate bwa_package_0440 so that it has a valid orphan + We are at complex repository dependencies, step 1 - Create and populate bwa_package_0440 so that it has a valid tool dependency definition and an installable revision 0. ''' category = test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' ) @@ -285,7 +285,7 @@ def test_0055_create_bwa_tool_dependency_repository( self ): '''Create and populate the bwa_tool_dependency_0440 repository.''' ''' - We are at tool dependencies, step 1 - Create and populate bwa_tool_dependency_0440 so that it has a valid orphan tool + We are at tool dependencies, step 1 - Create and populate bwa_tool_dependency_0440 so that it has a valid tool dependency definition and an installable revision 0. ''' category = test_db_util.get_category_by_name( 'Test 0440 Deleted Dependency Definitions' ) diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb test/tool_shed/functional/test_0460_upload_to_repository.py --- a/test/tool_shed/functional/test_0460_upload_to_repository.py +++ b/test/tool_shed/functional/test_0460_upload_to_repository.py @@ -30,7 +30,7 @@ 6) Upload a tarball to complex_dependency_test_3_0460 with a tool_dependencies.xml in a subfolder within the tarball. -7) Create hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460 and populate with orphan tool dependencies. +7) Create hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460 and populate with tool dependencies. 8) Upload to complex_dependency_test_4_0460 using the url hg://<tool shed url>/repos/user1/hg_tool_dependency_0460. @@ -117,7 +117,7 @@ valid_tools_only=True, uncompress_file=False, remove_repo_files_not_in_tar=False, - commit_message='Populate package_bwa_0_5_9_0460 with an orphan tool dependency definition.', + commit_message='Populate package_bwa_0_5_9_0460 with a tool dependency definition.', strings_displayed=[], strings_not_displayed=[] ) @@ -218,7 +218,7 @@ def test_0035_create_repositories_for_url_upload( self ): '''Create and populate hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460.''' ''' - This is step 7 - Create hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460 and populate with orphan tool dependencies. + This is step 7 - Create hg_tool_dependency_0460 and hg_subfolder_tool_dependency_0460 and populate with tool dependencies. ''' category = test_db_util.get_category_by_name( category_name ) repository = self.get_or_create_repository( name='hg_tool_dependency_0460', @@ -233,7 +233,7 @@ valid_tools_only=True, uncompress_file=False, remove_repo_files_not_in_tar=False, - commit_message='Populate hg_tool_dependency_0460 with an orphan tool dependency definition.', + commit_message='Populate hg_tool_dependency_0460 with a tool dependency definition.', strings_displayed=[], strings_not_displayed=[] ) repository = self.get_or_create_repository( name='hg_subfolder_tool_dependency_0460', @@ -248,7 +248,7 @@ valid_tools_only=True, uncompress_file=False, remove_repo_files_not_in_tar=False, - commit_message='Populate hg_subfolder_tool_dependency_0460 with an orphan tool dependency definition.', + commit_message='Populate hg_subfolder_tool_dependency_0460 with a tool dependency definition.', strings_displayed=[], strings_not_displayed=[] ) @@ -414,7 +414,7 @@ valid_tools_only=True, uncompress_file=False, remove_repo_files_not_in_tar=False, - commit_message='Populate hg_repository_dependency_0460 with an orphan tool dependency definition.', + commit_message='Populate hg_repository_dependency_0460 with a tool dependency definition.', strings_displayed=[], strings_not_displayed=[] ) repository = self.get_or_create_repository( name='hg_subfolder_repository_dependency_0460', @@ -429,7 +429,7 @@ valid_tools_only=True, uncompress_file=False, remove_repo_files_not_in_tar=False, - commit_message='Populate hg_subfolder_repository_dependency_0460 with an orphan tool dependency definition.', + commit_message='Populate hg_subfolder_repository_dependency_0460 with a tool dependency definition.', strings_displayed=[], strings_not_displayed=[] ) diff -r 9de9f6e5ded2a9ac5ace423564e76a6b20f694d4 -r 48b18d8fd24ecca3e2607811d5a75925e355cccb test/tool_shed/functional/test_1100_install_repository_with_complex_dependencies.py --- a/test/tool_shed/functional/test_1100_install_repository_with_complex_dependencies.py +++ b/test/tool_shed/functional/test_1100_install_repository_with_complex_dependencies.py @@ -276,7 +276,7 @@ def test_0060_verify_tool_dependency_uninstallation( self ): '''Uninstall the package_bwa_0_5_9_0100 repository.''' ''' - Uninstall the repository that defines an orphan tool dependency on BWA 0.5.9, and verify + Uninstall the repository that defines a tool dependency relationship on BWA 0.5.9, and verify that this results in the compiled binary package also being removed. ''' base_repository = test_db_util.get_installed_repository_by_name_owner( bwa_base_repository_name, common.test_user_1_name ) Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.
participants (1)
-
commits-noreply@bitbucket.org