commit/galaxy-central: Dave Bouvier: Tool shed functional tests for the $ENV[] environment variable inheritance feature.
1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/b42dfe74e237/ Changeset: b42dfe74e237 User: Dave Bouvier Date: 2013-07-24 19:39:47 Summary: Tool shed functional tests for the $ENV[] environment variable inheritance feature. Affected #: 14 files diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/base/twilltestcase.py --- a/test/tool_shed/base/twilltestcase.py +++ b/test/tool_shed/base/twilltestcase.py @@ -578,12 +578,8 @@ return None def get_env_sh_path( self, tool_dependency_name, tool_dependency_version, repository ): - env_sh_path = os.path.join( self.galaxy_tool_dependency_dir, - tool_dependency_name, - tool_dependency_version, - repository.owner, - repository.name, - repository.installed_changeset_revision, + '''Return the absolute path to an installed repository's env.sh file.''' + env_sh_path = os.path.join( self.get_tool_dependency_path( tool_dependency_name, tool_dependency_version, repository ), 'env.sh' ) return env_sh_path @@ -604,6 +600,15 @@ else: last_review = None return last_review + + def get_tool_dependency_path( self, tool_dependency_name, tool_dependency_version, repository ): + '''Return the absolute path for an installed tool dependency.''' + return os.path.join( self.galaxy_tool_dependency_dir, + tool_dependency_name, + tool_dependency_version, + repository.owner, + repository.name, + repository.installed_changeset_revision ) def get_or_create_repository( self, owner=None, strings_displayed=[], strings_not_displayed=[], **kwd ): repository = test_db_util.get_repository_by_name_and_owner( kwd[ 'name' ], owner ) diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/functional/test_1420_tool_dependency_environment_inheritance.py --- /dev/null +++ b/test/tool_shed/functional/test_1420_tool_dependency_environment_inheritance.py @@ -0,0 +1,320 @@ +from tool_shed.base.twilltestcase import ShedTwillTestCase, common, os +import tool_shed.base.test_db_util as test_db_util + +import logging +log = logging.getLogger( __name__ ) + +category_name = 'Test 1420 Tool dependency environment variable inheritance' +category_description = 'Test script 1420 for interpolation of inherited environment variables.' +package_atlas_repository_name = 'package_atlas_3_10_1420' +package_bzlib_repository_name = 'package_bzlib_1_0_1420' +package_boost_repository_name = 'package_boost_1_53_1420' +package_numpy_repository_name = 'package_numpy_1_7_1420' +package_rdkit_repository_name = 'package_rdkit_2012_12_1420' +package_lapack_repository_name = 'package_lapack_3_4_1420' +package_atlas_repository_description = 'Automatically Tuned Linear Algebra Software' +package_bzlib_repository_description = 'Contains a tool dependency definition that downloads and compiles version 1.0 of the bzlib library.' +package_boost_repository_description = 'Contains a tool dependency definition that downloads and compiles version 1.53 of the boost C++ libraries' +package_numpy_repository_description = 'Contains a tool dependency definition that downloads and compiles version 1.7 of the the python numpy package' +package_rdkit_repository_description = 'Contains a tool dependency definition that downloads and compiles version 2012-12 of the RDKit cheminformatics and machine-learning package.' +package_lapack_repository_description = 'Linear Algebra PACKage' +package_atlas_repository_long_description = '%s: %s' % ( package_atlas_repository_name, package_atlas_repository_description ) +package_bzlib_repository_long_description = '%s: %s' % ( package_bzlib_repository_name, package_bzlib_repository_description ) +package_boost_repository_long_description = '%s: %s' % ( package_boost_repository_name, package_boost_repository_description ) +package_numpy_repository_long_description = '%s: %s' % ( package_numpy_repository_name, package_numpy_repository_description ) +package_rdkit_repository_long_description = '%s: %s' % ( package_rdkit_repository_name, package_rdkit_repository_description ) +package_lapack_repository_long_description = '%s: %s' % ( package_lapack_repository_name, package_lapack_repository_description ) + +''' +1. Create repository package_lapack_3_4_1420 + +2. Create repository package_atlas_3_10_1420 + +3. Create repository package_bzlib_1_0_1420 + +4. Create repository package_boost_1_53_1420 + +5. Create repository package_numpy_1_7_1420 + +6. Create repository package_rdkit_2012_12_1420 + +Repository dependency structure should be as follows: + Repository package_rdkit_2012_12_1420 + Repository package_boost_1_53_1420 (prior install required) + Repository package_bzlib_1_0_1420 (prior install required) + Repository package_numpy_1_7_1420 (prior install required) + Repository package_lapack_3_4_1420 (prior install required) + Repository package_atlas_3_10_1420 (prior install required) + +8. Install package_rdkit_2012_12 into Galaxy. + +9. Verify that the env.sh file for package_rdkit_2012_12_1420 also defines the variables inherited from package_numpy_1_7_1420 and package_boost_1_53_1420. +''' + +class TestEnvironmentInheritance( ShedTwillTestCase ): + '''Test referencing environment variables that were defined in a separate tool dependency.''' + + def test_0000_initiate_users_and_category( self ): + """Create necessary user accounts and login as an admin user.""" + self.logout() + self.login( email=common.admin_email, username=common.admin_username ) + admin_user = test_db_util.get_user( common.admin_email ) + assert admin_user is not None, 'Problem retrieving user with email %s from the database' % common.admin_email + admin_user_private_role = test_db_util.get_private_role( admin_user ) + self.create_category( name=category_name, description=category_description ) + self.logout() + self.login( email=common.test_user_2_email, username=common.test_user_2_name ) + test_user_2 = test_db_util.get_user( common.test_user_2_email ) + assert test_user_2 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_2_email + test_user_2_private_role = test_db_util.get_private_role( test_user_2 ) + self.logout() + self.login( email=common.test_user_1_email, username=common.test_user_1_name ) + test_user_1 = test_db_util.get_user( common.test_user_1_email ) + assert test_user_1 is not None, 'Problem retrieving user with email %s from the database' % common.test_user_1_email + test_user_1_private_role = test_db_util.get_private_role( test_user_1 ) + + def test_0005_create_lapack_repository( self ): + '''Create and populate package_lapack_3_4_1420.''' + ''' + This is step 1 - Create repository package_lapack_3_4_1420. + + All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local + filesystem and install them into the path specified by $INSTALL_DIR. + ''' + category = test_db_util.get_category_by_name( category_name ) + repository = self.get_or_create_repository( name=package_lapack_repository_name, + description=package_lapack_repository_description, + long_description=package_lapack_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id( category.id ), + strings_displayed=[] ) + # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the + # actual system path where the binary tarball is found. + tool_dependency_path = self.generate_temp_path( '1420_tool_dependency', additional_paths=[ 'package_lapack_3_4_1420' ] ) + precompiled_binary_tarball = self.get_filename( '1420_files/binary_tarballs/lapack.tar' ) + edited_tool_dependency_filename = self.get_filename( filepath=tool_dependency_path, filename='tool_dependencies.xml' ) + original_tool_dependency = self.get_filename( '1420_files/package_lapack_3_4_1420/tool_dependencies.xml' ) + tool_dependency_definition = file( original_tool_dependency, 'r' ).read().replace( '__PATH__', precompiled_binary_tarball ) + file( edited_tool_dependency_filename, 'w' ).write( tool_dependency_definition ) + # Upload the edited tool dependency definition to the package_lapack_3_4_1420 repository. + self.upload_file( repository, + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_lapack_3_4_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[] ) + + def test_0010_create_atlas_repository( self ): + '''Create and populate package_atlas_3_10_1420.''' + ''' + This is step 1 - Create repository package_atlas_3_10_1420. + + All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local + filesystem and install them into the path specified by $INSTALL_DIR. + ''' + category = test_db_util.get_category_by_name( category_name ) + repository = self.get_or_create_repository( name=package_atlas_repository_name, + description=package_atlas_repository_description, + long_description=package_atlas_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id( category.id ), + strings_displayed=[] ) + # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the + # actual system path where the binary tarball is found. + tool_dependency_path = self.generate_temp_path( '1420_tool_dependency', additional_paths=[ 'package_atlas_3_10_1420' ] ) + precompiled_binary_tarball = self.get_filename( '1420_files/binary_tarballs/atlas.tar' ) + edited_tool_dependency_filename = self.get_filename( filepath=tool_dependency_path, filename='tool_dependencies.xml' ) + original_tool_dependency = self.get_filename( '1420_files/package_atlas_3_10_1420/tool_dependencies.xml' ) + tool_dependency_definition = file( original_tool_dependency, 'r' ).read().replace( '__PATH__', precompiled_binary_tarball ) + file( edited_tool_dependency_filename, 'w' ).write( tool_dependency_definition ) + # Upload the edited tool dependency definition to the package_atlas_3_10_1420 repository. + self.upload_file( repository, + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_atlas_3_10_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[] ) + + def test_0015_create_bzlib_repository( self ): + '''Create and populate package_bzlib_1_0_1420.''' + ''' + This is step 1 - Create repository package_bzlib_1_0_1420. + + All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local + filesystem and install them into the path specified by $INSTALL_DIR. + ''' + category = test_db_util.get_category_by_name( category_name ) + repository = self.get_or_create_repository( name=package_bzlib_repository_name, + description=package_bzlib_repository_description, + long_description=package_bzlib_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id( category.id ), + strings_displayed=[] ) + # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the + # actual system path where the binary tarball is found. + tool_dependency_path = self.generate_temp_path( '1420_tool_dependency', additional_paths=[ 'package_bzlib_1_0_1420' ] ) + precompiled_binary_tarball = self.get_filename( '1420_files/binary_tarballs/bzlib.tar' ) + edited_tool_dependency_filename = self.get_filename( filepath=tool_dependency_path, filename='tool_dependencies.xml' ) + original_tool_dependency = self.get_filename( '1420_files/package_bzlib_1_0_1420/tool_dependencies.xml' ) + tool_dependency_definition = file( original_tool_dependency, 'r' ).read().replace( '__PATH__', precompiled_binary_tarball ) + file( edited_tool_dependency_filename, 'w' ).write( tool_dependency_definition ) + # Upload the edited tool dependency definition to the package_bzlib_1_0_1420 repository. + self.upload_file( repository, + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_bzlib_1_0_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[] ) + + def test_0020_create_boost_repository( self ): + '''Create and populate package_boost_1_53_1420.''' + ''' + This is step 1 - Create repository package_boost_1_53_1420. + + All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local + filesystem and install them into the path specified by $INSTALL_DIR. + ''' + category = test_db_util.get_category_by_name( category_name ) + repository = self.get_or_create_repository( name=package_boost_repository_name, + description=package_boost_repository_description, + long_description=package_boost_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id( category.id ), + strings_displayed=[] ) + # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the + # actual system path where the binary tarball is found. + tool_dependency_path = self.generate_temp_path( '1420_tool_dependency', additional_paths=[ 'package_boost_1_53_1420' ] ) + precompiled_binary_tarball = self.get_filename( '1420_files/binary_tarballs/boost.tar' ) + edited_tool_dependency_filename = self.get_filename( filepath=tool_dependency_path, filename='tool_dependencies.xml' ) + original_tool_dependency = self.get_filename( '1420_files/package_boost_1_53_1420/tool_dependencies.xml' ) + tool_dependency_definition = file( original_tool_dependency, 'r' ).read().replace( '__PATH__', precompiled_binary_tarball ) + file( edited_tool_dependency_filename, 'w' ).write( tool_dependency_definition ) + # Upload the edited tool dependency definition to the package_boost_1_53_1420 repository. + self.upload_file( repository, + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_boost_1_53_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[] ) + + def test_0025_create_numpy_repository( self ): + '''Create and populate package_numpy_1_7_1420.''' + ''' + This is step 1 - Create repository package_numpy_1_7_1420. + + All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local + filesystem and install them into the path specified by $INSTALL_DIR. + ''' + category = test_db_util.get_category_by_name( category_name ) + repository = self.get_or_create_repository( name=package_numpy_repository_name, + description=package_numpy_repository_description, + long_description=package_numpy_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id( category.id ), + strings_displayed=[] ) + # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the + # actual system path where the binary tarball is found. + tool_dependency_path = self.generate_temp_path( '1420_tool_dependency', additional_paths=[ 'package_numpy_1_7_1420' ] ) + precompiled_binary_tarball = self.get_filename( '1420_files/binary_tarballs/numpy.tar' ) + edited_tool_dependency_filename = self.get_filename( filepath=tool_dependency_path, filename='tool_dependencies.xml' ) + original_tool_dependency = self.get_filename( '1420_files/package_numpy_1_7_1420/tool_dependencies.xml' ) + tool_dependency_definition = file( original_tool_dependency, 'r' ).read().replace( '__PATH__', precompiled_binary_tarball ) + file( edited_tool_dependency_filename, 'w' ).write( tool_dependency_definition ) + # Upload the edited tool dependency definition to the package_numpy_1_7_1420 repository. + self.upload_file( repository, + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_numpy_1_7_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[] ) + + def test_0030_create_rdkit_repository( self ): + '''Create and populate package_rdkit_2012_12_1420.''' + ''' + This is step 1 - Create repository package_rdkit_2012_12_1420. + + All tool dependency definitions should download and extract a tarball containing precompiled binaries from the local + filesystem and install them into the path specified by $INSTALL_DIR. + ''' + category = test_db_util.get_category_by_name( category_name ) + repository = self.get_or_create_repository( name=package_rdkit_repository_name, + description=package_rdkit_repository_description, + long_description=package_rdkit_repository_long_description, + owner=common.test_user_1_name, + category_id=self.security.encode_id( category.id ), + strings_displayed=[] ) + # Load the original tool dependency definition into memory, then fill in the __PATH__ placeholder with the + # actual system path where the binary tarball is found. + tool_dependency_path = self.generate_temp_path( '1420_tool_dependency', additional_paths=[ 'package_rdkit_2012_12_1420' ] ) + precompiled_binary_tarball = self.get_filename( '1420_files/binary_tarballs/rdkit.tar' ) + edited_tool_dependency_filename = self.get_filename( filepath=tool_dependency_path, filename='tool_dependencies.xml' ) + original_tool_dependency = self.get_filename( '1420_files/package_rdkit_2012_12_1420/tool_dependencies.xml' ) + tool_dependency_definition = file( original_tool_dependency, 'r' ).read().replace( '__PATH__', precompiled_binary_tarball ) + file( edited_tool_dependency_filename, 'w' ).write( tool_dependency_definition ) + # Upload the edited tool dependency definition to the package_rdkit_2012_12_1420 repository. + self.upload_file( repository, + filename='tool_dependencies.xml', + filepath=tool_dependency_path, + valid_tools_only=True, + uncompress_file=False, + remove_repo_files_not_in_tar=False, + commit_message='Populate package_rdkit_2012_12_1420 with tool dependency definitions.', + strings_displayed=[], + strings_not_displayed=[] ) + + def test_0035_install_rdkit_2012_12_repository( self ): + '''Install the package_rdkit_2012_12_1420 repository into Galaxy.''' + ''' + This is step 4 - Install package_rdkit_2012_12_1420 into Galaxy. + + Install package_rdkit_2012_12_1420 with tool dependencies selected to be installed. The result of this should be + package_atlas_3_10_1420, package_bzlib_1_0_1420, package_boost_1_53_1420, package_numpy_1_7_1420, package_rdkit_2012_12_1420, + and package_lapack_3_4_1420 being installed, and an env.sh generated for package_rdkit_2012_12_1420 that + contains environment variables defined in package_boost_1_53_1420 and package_numpy_1_7_1420. + ''' + self.galaxy_logout() + self.galaxy_login( email=common.admin_email, username=common.admin_username ) + post_submit_strings_displayed = [ 'package_rdkit_2012_12_1420', 'package_atlas_3_10_1420', 'package_bzlib_1_0_1420', + 'package_numpy_1_7_1420', 'package_lapack_3_4_1420', 'package_boost_1_53_1420' ] + self.install_repository( 'package_rdkit_2012_12_1420', + common.test_user_1_name, + category_name, + install_tool_dependencies=True, + post_submit_strings_displayed=post_submit_strings_displayed ) + + def test_0040_verify_env_sh_contents( self ): + '''Check the env.sh file for the appropriate contents.''' + ''' + This is step 5 - Verify that the env.sh file for package_rdkit_2012_12_1420 also defines the variables inherited from package_numpy_1_7_1420 + and package_boost_1_53_1420. Test for the numpy and boost tool dependency paths. + ''' + package_rdkit_repository = test_db_util.get_installed_repository_by_name_owner( 'package_rdkit_2012_12_1420', common.test_user_1_name ) + package_numpy_repository = test_db_util.get_installed_repository_by_name_owner( 'package_numpy_1_7_1420', common.test_user_1_name ) + package_boost_repository = test_db_util.get_installed_repository_by_name_owner( 'package_boost_1_53_1420', common.test_user_1_name ) + rdkit_env_sh = self.get_env_sh_path( tool_dependency_name='rdkit', + tool_dependency_version='2012_12_1', + repository=package_rdkit_repository ) + numpy_tool_dependency_path = self.get_tool_dependency_path( tool_dependency_name='numpy', + tool_dependency_version='1.7.1', + repository=package_numpy_repository ) + boost_tool_dependency_path = self.get_tool_dependency_path( tool_dependency_name='boost', + tool_dependency_version='1.53.0', + repository=package_boost_repository ) + rdkit_env_file_contents = file( rdkit_env_sh, 'r' ).read() + assert numpy_tool_dependency_path in rdkit_env_file_contents, 'Environment file for package_rdkit_2012_12_1420 does not contain numpy path.' + assert boost_tool_dependency_path in rdkit_env_file_contents, 'Environment file for package_rdkit_2012_12_1420 does not contain boost path.' diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/binary_tarballs/atlas.tar Binary file test/tool_shed/test_data/1420_files/binary_tarballs/atlas.tar has changed diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/binary_tarballs/boost.tar Binary file test/tool_shed/test_data/1420_files/binary_tarballs/boost.tar has changed diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/binary_tarballs/bzlib.tar Binary file test/tool_shed/test_data/1420_files/binary_tarballs/bzlib.tar has changed diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/binary_tarballs/lapack.tar Binary file test/tool_shed/test_data/1420_files/binary_tarballs/lapack.tar has changed diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/binary_tarballs/numpy.tar Binary file test/tool_shed/test_data/1420_files/binary_tarballs/numpy.tar has changed diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/binary_tarballs/rdkit.tar Binary file test/tool_shed/test_data/1420_files/binary_tarballs/rdkit.tar has changed diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/package_atlas_3_10_1420/tool_dependencies.xml --- /dev/null +++ b/test/tool_shed/test_data/1420_files/package_atlas_3_10_1420/tool_dependencies.xml @@ -0,0 +1,22 @@ +<tool_dependency> + <package name="atlas" version="3.10.1"> + <install version="1.0"> + <actions> + <!-- first action is always downloading --> + <action type="download_file">file://__PATH__</action> + <action type="move_directory_files"> + <source_directory>.</source_directory> + <destination_directory>$INSTALL_DIR</destination_directory> + </action> + <action type="set_environment"> + <environment_variable name="ATLAS_LIB_DIR" action="set_to">$INSTALL_DIR/atlas/lib</environment_variable> + <environment_variable name="ATLAS_INCLUDE_DIR" action="set_to">$INSTALL_DIR/atlas/include</environment_variable> + </action> + </actions> + </install> + <readme>ATLAS_LIB_DIR and ATLAS_INCLUDE_DIR (including libatlas.a) will be exported for later use. + During ATLAS library compilation, ATLAS performs code efficiency checks. These checks can only provide optimal results, if "frequency scaling" is disabled on the CPU, and no other load-intense processes are running. + Ideally, you should compile on an empty cluster node with CPU frequency scaling disabled (see "cpufreq-selector" or "cpufreq-set"). + </readme> + </package> +</tool_dependency> diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/package_boost_1_53_1420/tool_dependencies.xml --- /dev/null +++ b/test/tool_shed/test_data/1420_files/package_boost_1_53_1420/tool_dependencies.xml @@ -0,0 +1,29 @@ +<?xml version='1.0' encoding='utf-8'?> +<tool_dependency> + <package name="bzlib" version="1.0.6"> + <repository name="package_bzlib_1_0_1420" owner="user1" prior_installation_required="True" /> + </package> + <package name="boost" version="1.53.0"> + <install version="1.0"> + <actions> + <action type="download_by_url">file://__PATH__</action> + + <!-- populate the environment variables from the dependend repos --> + <action type="set_environment_for_install"> + <repository name="package_bzlib_1_0_1420" owner="user1"> + <package name="bzlib" version="1.0.6" /> + </repository> + </action> + <action type="move_directory_files"> + <source_directory>.</source_directory> + <destination_directory>$INSTALL_DIR</destination_directory> + </action> + <action type="set_environment"> + <environment_variable action="set_to" name="BOOST_ROOT_DIR">$INSTALL_DIR/boost</environment_variable> + <environment_variable action="append_to" name="LD_LIBRARY_PATH">$INSTALL_DIR/boost/lib/</environment_variable> + </action> + </actions> + </install> + <readme>Compiling boost requires a C++ compiler (typically gcc). You can access the boost root directory through the $BOOST_ROOT_DIR system variable. All modules will be build.</readme> + </package> +</tool_dependency> diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/package_bzlib_1_0_1420/tool_dependencies.xml --- /dev/null +++ b/test/tool_shed/test_data/1420_files/package_bzlib_1_0_1420/tool_dependencies.xml @@ -0,0 +1,21 @@ + <tool_dependency> + <package name="bzlib" version="1.0.6"> + <install version="1.0"> + <actions> + <!-- first action is always downloading --> + <action type="download_by_url">file://__PATH__</action> + <action type="move_directory_files"> + <source_directory>.</source_directory> + <destination_directory>$INSTALL_DIR</destination_directory> + </action> + <action type="set_environment"> + <environment_variable name="PATH" action="prepend_to">$INSTALL_DIR/bzlib/bin</environment_variable> + <environment_variable name="BZLIB_LIB_DIR" action="set_to">$INSTALL_DIR/bzlib/lib</environment_variable> + <environment_variable name="BZLIB_INCLUDE_DIR" action="set_to">$INSTALL_DIR/bzlib/include</environment_variable> + <environment_variable name="BZLIB_SOURCE_DIR" action="set_to">$INSTALL_DIR/bzlib/source</environment_variable> + </action> + </actions> + </install> + <readme>Compiling bzlib requires make and a C compiler. You can access bzlib with $BZLIB_LIB_DIR and $BZLIB_INCLUDE_DIR.</readme> + </package> +</tool_dependency> diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/package_lapack_3_4_1420/tool_dependencies.xml --- /dev/null +++ b/test/tool_shed/test_data/1420_files/package_lapack_3_4_1420/tool_dependencies.xml @@ -0,0 +1,18 @@ +<tool_dependency> + <package name="lapack" version="3.4.2"> + <install version="1.0"> + <actions> + <!-- first action is always downloading --> + <action type="download_by_url">file://__PATH__</action> + <action type="move_directory_files"> + <source_directory>.</source_directory> + <destination_directory>$INSTALL_DIR</destination_directory> + </action> + <action type="set_environment"> + <environment_variable name="LAPACK_LIB_DIR" action="set_to">$INSTALL_DIR/lapack/lib</environment_variable> + </action> + </actions> + </install> + <readme>LAPACK requires gcc and gfortran. LAPACK_LIB_DIR will be set (including liblapack.a and libblas.a). </readme> + </package> +</tool_dependency> diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/package_numpy_1_7_1420/tool_dependencies.xml --- /dev/null +++ b/test/tool_shed/test_data/1420_files/package_numpy_1_7_1420/tool_dependencies.xml @@ -0,0 +1,35 @@ +<?xml version='1.0' encoding='utf-8'?> +<tool_dependency> + <package name="lapack" version="3.4.2"> + <repository name="package_lapack_3_4_1420" owner="user1" prior_installation_required="True" /> + </package> + <package name="atlas" version="3.10.1"> + <repository name="package_atlas_3_10_1420" owner="user1" prior_installation_required="True" /> + </package> + <package name="numpy" version="1.7.1"> + <install version="1.0"> + <actions> + <action type="download_by_url">file://__PATH__</action> + <action type="set_environment_for_install"> + <repository name="package_atlas_3_10_1420" owner="user1"> + <package name="atlas" version="3.10.1" /> + </repository> + <repository name="package_lapack_3_4_1420" owner="user1"> + <package name="lapack" version="3.4.2" /> + </repository> + </action> + <action type="move_directory_files"> + <source_directory>.</source_directory> + <destination_directory>$INSTALL_DIR</destination_directory> + </action> + <action type="set_environment"> + <environment_variable action="append_to" name="PYTHONPATH">$INSTALL_DIR/lib/python</environment_variable> + <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/bin</environment_variable> + <environment_variable action="set_to" name="PYTHONPATH_NUMPY">$INSTALL_DIR/lib/python</environment_variable> + <environment_variable action="set_to" name="PATH_NUMPY">$INSTALL_DIR/bin</environment_variable> + </action> + </actions> + </install> + <readme>Compiling numpy requires a C and Fortran compiler (typically gcc and gfortran). The PYTHONPATH for numpy can be accessed through PYTHONPATH_NUMPY and the binaries with PATH_NUMPY.</readme> + </package> +</tool_dependency> diff -r b9bd309b4b72cce4f5bd277cd628b3855934d1f1 -r b42dfe74e237ea7f9c77059e427db92d9859bc67 test/tool_shed/test_data/1420_files/package_rdkit_2012_12_1420/tool_dependencies.xml --- /dev/null +++ b/test/tool_shed/test_data/1420_files/package_rdkit_2012_12_1420/tool_dependencies.xml @@ -0,0 +1,43 @@ +<?xml version='1.0' encoding='utf-8'?> +<tool_dependency> + <package name="numpy" version="1.7.1"> + <repository name="package_numpy_1_7_1420" owner="user1" prior_installation_required="True" /> + </package> + <package name="boost" version="1.53.0"> + <repository name="package_boost_1_53_1420" owner="user1" prior_installation_required="True" /> + </package> + + <package name="rdkit" version="2012_12_1"> + <install version="1.0"> + <actions> + <!-- first action is always downloading --> + <action type="download_by_url">file://__PATH__</action> + + <!-- populate the environment variables from the dependend repos --> + <action type="set_environment_for_install"> + <repository name="package_numpy_1_7_1420" owner="user1"> + <package name="numpy" version="1.7.1" /> + </repository> + <repository name="package_boost_1_53_1420" owner="user1"> + <package name="boost" version="1.53.0" /> + </repository> + </action> + + <!-- PYTHONPATH_NUMPY is set in the numpy package --> + <action type="move_directory_files"> + <source_directory>.</source_directory> + <destination_directory>$INSTALL_DIR</destination_directory> + </action> + <action type="set_environment"> + <environment_variable action="set_to" name="RDBASE">$INSTALL_DIR/rdkit</environment_variable> + <environment_variable action="append_to" name="LD_LIBRARY_PATH">$INSTALL_DIR/rdkit/lib/</environment_variable> + <environment_variable action="prepend_to" name="PATH">$INSTALL_DIR/rdkit/bin</environment_variable> + <environment_variable action="prepend_to" name="PYTHONPATH">$INSTALL_DIR/rdkit/lib/python2.7/site-packages/</environment_variable> + <environment_variable action="prepend_to" name="PYTHONPATH">$ENV[PYTHONPATH_NUMPY]</environment_variable> + <environment_variable action="append_to" name="LD_LIBRARY_PATH">$ENV[BOOST_ROOT_DIR]/lib/</environment_variable> + </action> + </actions> + </install> + <readme>Compiling rdkit requires cmake, python headers, sqlite3, flex and bison.</readme> + </package> +</tool_dependency> 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