From 784d76d3db0a6ff0674dc84a1329e21eabf56d32 Mon Sep 17 00:00:00 2001 From: guerler Date: Thu, 7 May 2015 15:59:56 -0400 Subject: [PATCH 01/30] Remove redundant versions from version selector --- lib/galaxy/tools/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index ee70e2b97f3..c131a42f349 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -2550,7 +2550,8 @@ class Tool( object, Dictifiable ): tool_versions = [] tools = self.app.toolbox.get_loaded_tools_by_lineage(self.id) for t in tools: - tool_versions.append(t.version) + if not t.version in tool_versions: + tool_versions.append(t.version) # add information with underlying requirements and their versions tool_requirements = [] From 7483b043f6cdf1afc4783b60a50e4622fdd0dffc Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Thu, 7 May 2015 16:41:43 -0400 Subject: [PATCH 02/30] Allow a tool data table to declare that duplicate entries are not allowed. --- lib/galaxy/tools/data/__init__.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/tools/data/__init__.py b/lib/galaxy/tools/data/__init__.py index c90b188027c..fe965b6b575 100644 --- a/lib/galaxy/tools/data/__init__.py +++ b/lib/galaxy/tools/data/__init__.py @@ -185,6 +185,7 @@ class ToolDataTable( object ): self.comment_char = config_element.get( 'comment_char' ) self.empty_field_value = config_element.get( 'empty_field_value', '' ) self.empty_field_values = {} + self.allow_duplicate_entries = util.asbool( config_element.get( 'allow_duplicate_entries', True ) ) self.here = filename and os.path.dirname(filename) self.filenames = odict() self.tool_data_path = tool_data_path @@ -354,6 +355,11 @@ class TabularToolDataTable( ToolDataTable, Dictifiable ): self.filenames[ filename ] = info #save info about table self._merged_load_info.append( ( other_table.__class__, other_table._load_info ) ) + # If we are merging in a data table that does not allow duplicates, enforce that upon the data table + if self.allow_duplicate_entries and not other_table.allow_duplicate_entries: + log.debug( 'While attempting to merge tool data table "%s", the other instance of the table specified that duplicate entries are not allowed, now deduplicating all previous entries.', self.name ) + self.allow_duplicate_entries = False + self._deduplicate_data() #add data entries and return current data table version return self.add_entries( other_table.data, allow_duplicates=allow_duplicates, persist=persist, persist_on_error=persist_on_error, entry_source=entry_source, **kwd ) @@ -426,6 +432,8 @@ class TabularToolDataTable( ToolDataTable, Dictifiable ): def extend_data_with( self, filename, errors=None ): here = os.path.dirname(os.path.abspath(filename)) self.data.extend( self.parse_file_fields( open( filename ), errors=errors, here=here ) ) + if not self.allow_duplicate_entries: + self._deduplicate_data() def parse_file_fields( self, reader, errors=None, here="__HERE__" ): """ @@ -536,7 +544,7 @@ class TabularToolDataTable( ToolDataTable, Dictifiable ): is_error = False if self.largest_index < len( fields ): fields = self._replace_field_separators( fields ) - if fields not in self.get_fields() or allow_duplicates: + if fields not in self.get_fields() or ( allow_duplicates and self.allow_duplicate_entries ): self.data.append( fields ) else: log.debug( "Attempted to add fields (%s) to data table '%s', but this entry already exists and allow_duplicates is False.", fields, self.name ) @@ -624,6 +632,20 @@ class TabularToolDataTable( ToolDataTable, Dictifiable ): replace = " " return map( lambda x: x.replace( separator, replace ), fields ) + def _deduplicate_data( self ): + # Remove duplicate entries, without recreating self.data object + dup_lines = [] + hash_list = [] + for i, fields in enumerate( self.data ): + fields_hash = hash( self.separator.join( fields ) ) + if fields_hash in hash_list: + dup_lines.append( i ) + log.debug( 'Found duplicate entry in tool data table "%s", but duplicates are not allowed, removing additional entry for: "%s"', self.name, fields ) + else: + hash_list.append( fields_hash ) + for i in reversed( dup_lines ): + self.data.pop( i ) + @property def xml_string( self ): return util.xml_to_string( self.config_element ) From a3d694de70a58cfc553a6e2fff4df37ce4870a55 Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Fri, 8 May 2015 09:30:04 -0400 Subject: [PATCH 03/30] Fixes for BaseURLToolParameter. Data source tools will now work again. Restores consistency to various ways that one might get the parameter value. --- lib/galaxy/tools/__init__.py | 8 +++++--- lib/galaxy/tools/parameters/basic.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/tools/__init__.py b/lib/galaxy/tools/__init__.py index c131a42f349..88af8170c98 100755 --- a/lib/galaxy/tools/__init__.py +++ b/lib/galaxy/tools/__init__.py @@ -1890,10 +1890,12 @@ class Tool( object, Dictifiable ): """ args = dict() for key, param in self.inputs.iteritems(): - if isinstance( param, HiddenToolParameter ): + # BaseURLToolParameter is now a subclass of HiddenToolParameter, so + # we must check if param is a BaseURLToolParameter first + if isinstance( param, BaseURLToolParameter ): + args[key] = param.get_initial_value( trans, None ) + elif isinstance( param, HiddenToolParameter ): args[key] = model.User.expand_user_properties( trans.user, param.value ) - elif isinstance( param, BaseURLToolParameter ): - args[key] = param.get_value( trans ) else: raise Exception( "Unexpected parameter type" ) return args diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 03cbcc31dcb..adbd85890ee 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -652,6 +652,7 @@ class HiddenToolParameter( ToolParameter ): def get_label( self ): return None + class ColorToolParameter( ToolParameter ): """ Parameter that stores a color. @@ -682,9 +683,23 @@ class BaseURLToolParameter( HiddenToolParameter ): super( BaseURLToolParameter, self ).__init__( tool, input_source ) self.value = input_source.get( 'value', '' ) + def get_initial_value( self, trans, context, history=None ): + return self._get_value() + + def get_html_field( self, trans=None, value=None, other_values={} ): + return form_builder.HiddenField( self.name, self._get_value() ) + def from_html( self, value=None, trans=None, context={} ): + return self._get_value() + + def _get_value( self ): return url_for( self.value, qualified=True ) + def to_dict( self, trans, view='collection', value_mapper=None, other_values={} ): + d = super( BaseURLToolParameter, self ).to_dict( trans ) + d[ 'value' ] = self._get_value() + return d + DEFAULT_VALUE_MAP = lambda x: x From 593d38fcf0b68417e9d9cd75f71af17797082dc5 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 11 May 2015 10:39:02 -0400 Subject: [PATCH 04/30] Fix a variety of tool shed tests broken with PR #75. --- test/base/twilltestcase.py | 2 +- test/tool_shed/base/twilltestcase.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/base/twilltestcase.py b/test/base/twilltestcase.py index 2575b03e515..84ce588c2b6 100644 --- a/test/base/twilltestcase.py +++ b/test/base/twilltestcase.py @@ -1513,7 +1513,7 @@ class TwillTestCase( unittest.TestCase ): # HACK: don't use panels because late_javascripts() messes up the twill browser and it # can't find form fields (and hence user can't be logged in). self.visit_url( "/user/login?use_panels=False" ) - self.submit_form( 'login', 'login_button', email=email, redirect=redirect, password=password ) + self.submit_form( 'login', 'login_button', login=email, redirect=redirect, password=password ) def logout( self ): self.visit_url( "%s/user/logout" % self.url ) diff --git a/test/tool_shed/base/twilltestcase.py b/test/tool_shed/base/twilltestcase.py index 9138212692d..68ba9df7744 100644 --- a/test/tool_shed/base/twilltestcase.py +++ b/test/tool_shed/base/twilltestcase.py @@ -573,7 +573,7 @@ class ShedTwillTestCase( TwillTestCase ): self.create_user_in_galaxy( email=email, password=password, username=username, redirect=redirect ) if previously_created: self.visit_galaxy_url( "/user/login?use_panels=False" ) - self.submit_form( '1', 'login_button', email=email, redirect=redirect, password=password ) + self.submit_form( '1', 'login_button', login=email, redirect=redirect, password=password ) def galaxy_logout( self ): self.visit_galaxy_url( "/user/logout" ) From 4d69f2e8c08806cd6ecf57a9a9599c7f097387f0 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 11 May 2015 11:54:35 -0400 Subject: [PATCH 05/30] Fix a variety of tool shed tests broken with a24e206. --- test/tool_shed/base/twilltestcase.py | 6 ++++++ .../functional/test_0000_basic_repository_features.py | 3 +-- ..._0120_simple_repository_dependency_multiple_owners.py | 6 ++---- .../functional/test_0400_repository_component_reviews.py | 3 +-- ...st_0410_repository_component_review_access_control.py | 3 +-- .../test_0420_citable_urls_for_repositories.py | 9 ++++----- test/tool_shed/functional/test_0430_browse_utilities.py | 9 +++------ test/tool_shed/functional/test_0450_skip_tool_tests.py | 3 +-- ..._1120_simple_repository_dependency_multiple_owners.py | 6 ++---- 9 files changed, 21 insertions(+), 27 deletions(-) diff --git a/test/tool_shed/base/twilltestcase.py b/test/tool_shed/base/twilltestcase.py index 68ba9df7744..3b77a38d924 100644 --- a/test/tool_shed/base/twilltestcase.py +++ b/test/tool_shed/base/twilltestcase.py @@ -539,6 +539,12 @@ class ShedTwillTestCase( TwillTestCase ): string = string.replace( character, replacement ) return string + def expect_repo_created_strings( self, name ): + return [ + 'Repository %s' % name, + 'Repository %s has been created' % name, + ] + def export_capsule( self, repository ): url = '/repository/export?repository_id=%s&changeset_revision=%s' % \ ( self.security.encode_id( repository.id ), self.get_repository_tip( repository ) ) diff --git a/test/tool_shed/functional/test_0000_basic_repository_features.py b/test/tool_shed/functional/test_0000_basic_repository_features.py index 036e3232335..072c0d89237 100644 --- a/test/tool_shed/functional/test_0000_basic_repository_features.py +++ b/test/tool_shed/functional/test_0000_basic_repository_features.py @@ -42,8 +42,7 @@ class TestBasicRepositoryFeatures( ShedTwillTestCase ): self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) category = self.test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' ) - strings_displayed = [ 'Repository %s' % "'%s'" % repository_name, - 'Repository %s has been created' % "%s" % repository_name ] + strings_displayed = self.expect_repo_created_strings(repository_name) self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, diff --git a/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py b/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py index f092c439031..abf7c21aa70 100644 --- a/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py +++ b/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py @@ -54,8 +54,7 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ): category = self.create_category( name='Test 0120', description='Description of test 0120' ) self.logout() self.login( email=common.test_user_2_email, username=common.test_user_2_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name, - 'Repository %s has been created' % "%s" % datatypes_repository_name ] + strings_displayed = self.expect_repo_created_strings(datatypes_repository_name) repository = self.get_or_create_repository( name=datatypes_repository_name, description=datatypes_repository_description, long_description=datatypes_repository_long_description, @@ -94,8 +93,7 @@ class TestRepositoryMultipleOwners( ShedTwillTestCase ): category = self.create_category( name='Test 0120', description='Description of test 0120' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % tool_repository_name, - 'Repository %s has been created' % "%s" % tool_repository_name ] + strings_displayed = self.expect_repo_created_strings(tool_repository_name) repository = self.get_or_create_repository( name=tool_repository_name, description=tool_repository_description, long_description=tool_repository_long_description, diff --git a/test/tool_shed/functional/test_0400_repository_component_reviews.py b/test/tool_shed/functional/test_0400_repository_component_reviews.py index 08ba29b9679..b91a534d18d 100644 --- a/test/tool_shed/functional/test_0400_repository_component_reviews.py +++ b/test/tool_shed/functional/test_0400_repository_component_reviews.py @@ -91,8 +91,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ): category = self.create_category( name='Test 0400 Repository Component Reviews', description='Test 0400 Repository Component Reviews' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % repository_name, - 'Repository %s has been created' % "%s" % repository_name ] + strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, diff --git a/test/tool_shed/functional/test_0410_repository_component_review_access_control.py b/test/tool_shed/functional/test_0410_repository_component_review_access_control.py index 68701a59e5b..4369c70313a 100644 --- a/test/tool_shed/functional/test_0410_repository_component_review_access_control.py +++ b/test/tool_shed/functional/test_0410_repository_component_review_access_control.py @@ -70,8 +70,7 @@ class TestRepositoryComponentReviews( ShedTwillTestCase ): category = self.create_category( name='Test 0400 Repository Component Reviews', description='Test 0400 Repository Component Reviews' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % repository_name, - 'Repository %s has been created' % "%s" % repository_name ] + strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, diff --git a/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py b/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py index 4c4e0709167..df2efa15755 100644 --- a/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py +++ b/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py @@ -53,8 +53,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ): description='Test 0400 Repository Citable URLs category' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % repository_name, - 'Repository %s has been created' % "%s" % repository_name ] + strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, @@ -128,7 +127,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ): strings_displayed = [ '/repository', 'view_repository', 'id=', encoded_repository_id ] strings_displayed_in_iframe = [ 'user1', 'filtering_0420', 'Galaxy filtering tool for test 0420' ] strings_displayed_in_iframe.append( self.get_repository_tip( repository ) ) - strings_displayed_in_iframe.append( 'Sharable link to this repository:' ) + strings_displayed_in_iframe.append( 'Link to this repository:' ) strings_displayed_in_iframe.append( '%s/view/user1/filtering_0420' % self.url ) self.load_citable_url( username='user1', repository_name='filtering_0420', @@ -154,7 +153,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ): # The iframe should point to /repository/view_repository?id= strings_displayed = [ '/repository', 'view_repository', 'id=' + encoded_repository_id ] strings_displayed_in_iframe = [ 'user1', 'filtering_0420', 'Galaxy filtering tool for test 0420', first_changeset_hash ] - strings_displayed_in_iframe.append( 'Sharable link to this repository revision:' ) + strings_displayed_in_iframe.append( 'Link to this repository revision:' ) strings_displayed_in_iframe.append( '%s/view/user1/filtering_0420/%s' % ( self.url, first_changeset_hash ) ) strings_not_displayed_in_iframe = [] self.load_citable_url( username='user1', @@ -179,7 +178,7 @@ class TestRepositoryCitableURLs( ShedTwillTestCase ): strings_displayed = [ '/repository', 'view_repository', 'id=' + encoded_repository_id ] strings_displayed.extend( [ 'The+change+log', 'does+not+include+revision', invalid_changeset_hash, 'status=error' ] ) strings_displayed_in_iframe = [ 'user1', 'filtering_0420', 'Galaxy filtering tool for test 0420' ] - strings_displayed_in_iframe.append( 'Sharable link to this repository revision:' ) + strings_displayed_in_iframe.append( 'Link to this repository revision:' ) strings_displayed_in_iframe.append( '%s/view/user1/filtering_0420/%s' % ( self.url, invalid_changeset_hash ) ) strings_not_displayed_in_iframe = [] self.load_citable_url( username='user1', diff --git a/test/tool_shed/functional/test_0430_browse_utilities.py b/test/tool_shed/functional/test_0430_browse_utilities.py index d5ce96e037f..1c26668dcd3 100644 --- a/test/tool_shed/functional/test_0430_browse_utilities.py +++ b/test/tool_shed/functional/test_0430_browse_utilities.py @@ -54,8 +54,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ): description='Description of Test 0430 Galaxy Utilities category' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name, - 'Repository %s has been created' % "%s" % datatypes_repository_name ] + strings_displayed = self.expect_repo_created_strings(datatypes_repository_name) repository = self.get_or_create_repository( name=datatypes_repository_name, description=datatypes_repository_description, long_description=datatypes_repository_long_description, @@ -82,8 +81,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ): description='Description of Test 0430 Galaxy Utilities category' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % emboss_repository_name, - 'Repository %s has been created' % "%s" % emboss_repository_name ] + strings_displayed = self.expect_repo_created_strings(emboss_repository_name) emboss_repository = self.get_or_create_repository( name=emboss_repository_name, description=emboss_repository_description, long_description=emboss_repository_long_description, @@ -119,8 +117,7 @@ class TestToolShedBrowseUtilities( ShedTwillTestCase ): description='Description of Test 0430 Galaxy Utilities category' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % freebayes_repository_name, - 'Repository %s has been created' % "%s" % freebayes_repository_name ] + strings_displayed = self.expect_repo_created_strings(freebayes_repository_name) repository = self.get_or_create_repository( name=freebayes_repository_name, description=freebayes_repository_description, long_description=freebayes_repository_long_description, diff --git a/test/tool_shed/functional/test_0450_skip_tool_tests.py b/test/tool_shed/functional/test_0450_skip_tool_tests.py index a5d60e6f9f1..ceb3f3821e8 100644 --- a/test/tool_shed/functional/test_0450_skip_tool_tests.py +++ b/test/tool_shed/functional/test_0450_skip_tool_tests.py @@ -75,8 +75,7 @@ class TestSkipToolTestFeature( ShedTwillTestCase ): self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) category = self.test_db_util.get_category_by_name( category_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % repository_name, - 'Repository %s has been created' % "%s" % repository_name ] + strings_displayed = self.expect_repo_created_strings(repository_name) repository = self.get_or_create_repository( name=repository_name, description=repository_description, long_description=repository_long_description, diff --git a/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py b/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py index 5eb19662bce..15167026c2c 100644 --- a/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py +++ b/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py @@ -57,8 +57,7 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ): category = self.create_category( name='Test 0120', description='Description of test 0120' ) self.logout() self.login( email=common.test_user_2_email, username=common.test_user_2_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name, - 'Repository %s has been created' % "%s" % datatypes_repository_name ] + strings_displayed = self.expect_repo_created_strings(datatypes_repository_name) repository = self.get_or_create_repository( name=datatypes_repository_name, description=datatypes_repository_description, long_description=datatypes_repository_long_description, @@ -99,8 +98,7 @@ class TestInstallRepositoryMultipleOwners( ShedTwillTestCase ): category = self.create_category( name='Test 0120', description='Description of test 0120' ) self.logout() self.login( email=common.test_user_1_email, username=common.test_user_1_name ) - strings_displayed = [ 'Repository %s' % "'%s'" % tool_repository_name, - 'Repository %s has been created' % "%s" % tool_repository_name ] + strings_displayed = self.expect_repo_created_strings(tool_repository_name) repository = self.get_or_create_repository( name=tool_repository_name, description=tool_repository_description, long_description=tool_repository_long_description, From 830b9f4d3567b090e00224f5891a0c50b16ee6bd Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Mon, 11 May 2015 15:04:09 -0400 Subject: [PATCH 06/30] Supress pysam binary incompatibility warning when using datatypes in binary.py. --- lib/galaxy/datatypes/binary.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/datatypes/binary.py b/lib/galaxy/datatypes/binary.py index 3d6f6e0e1e4..724fcaf16e8 100644 --- a/lib/galaxy/datatypes/binary.py +++ b/lib/galaxy/datatypes/binary.py @@ -12,6 +12,7 @@ import struct import subprocess import tempfile import re +import warnings import zipfile from galaxy import eggs @@ -24,8 +25,11 @@ from galaxy.datatypes.metadata import MetadataElement, MetadataParameter, ListPa from galaxy.datatypes import metadata import dataproviders -eggs.require( "pysam" ) -from pysam import csamtools +with warnings.catch_warnings(): + warnings.simplefilter( "ignore" ) + eggs.require( "pysam" ) + from pysam import csamtools + log = logging.getLogger(__name__) From bb7fb089fe93b3e30444793d1a8015e9c7be0e4f Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 11 May 2015 18:13:49 -0400 Subject: [PATCH 07/30] First crack at release notes for 15.05. --- doc/source/releases/15.05.rst | 342 ++++++++++++++++++++++++++++++++++ scripts/bootstrap_history.py | 82 ++++++++ 2 files changed, 424 insertions(+) create mode 100644 doc/source/releases/15.05.rst create mode 100644 scripts/bootstrap_history.py diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst new file mode 100644 index 00000000000..b46ebe29299 --- /dev/null +++ b/doc/source/releases/15.05.rst @@ -0,0 +1,342 @@ +.. to_doc + +------------------------------- +15.05 +------------------------------- + + +Enhancements +------------------------------- + +* Pluggable framework to custom authentication (including new LDAP/Active + Directory integration). Thanks to many including Andrew Robinson, + Nicola Soranzo, and David Trudgian. `Pull Request 1`_, `Pull Request 33`_, + `Pull Request 51`_, `Pull Request 74`_, `Pull Request 98`_, + `Pull Request 216`_ +* Implement a new ``section`` tag for tools. `Pull Request 35`_, + `Trello `__ +* New UI widgets allowing much more flexibility when creating simple dataset + pair and list collections. `Pull Request 134`_ +* Improved JavaScript build system for client code and libraries (now + using uglify_ and featuring `Source Maps`_). 72c876c_, 9a7f5fc_, 648a623_, + 22f280f_ +* Add an `External Display Application`_ for viewing GFF/GTF files with IGV_. + `Pull Request 70`_ +* Use TravisCI_ and Tox_ for continuous integration testing. + `Pull Request 40`_, `Pull Request 62`_, `Pull Request 97`_, + `Pull Request 99`_, `Pull Request 123`_, `Pull Request 222`_, + `Pull Request 235`_, +* Infrastructure for improved toolbox and Tool Shed searching. + `Pull Request 9`_, `Pull Request 116`_, `Pull Request 142`_, + `Pull Request 226`_, c2eb74c_, 2bf52fe_, ec549db_ +* Enhance UI to allow renaming dataset collections. 21d1d6b_ +* Improve highlighting of current/active content history panel. + `Pull Request 126`_ +* Improvements to UI and API for histories and collections. e36e51e_, + 1e55206_, 0c79680_ +* Update history dataset API to account for job re-submission. b4cf49a_ +* Allow recalculating user disk usage from the admin interface. 964e081_ +* Collect significantly more metadata for BAM files. `Pull Request 107`_, + `Pull Request 108`_ +* Implement ``detect_errors`` attribute on command of tool XML. + `Pull Request 117`_ +* Allow setting ``auto_format="True"`` on tool ``output`` tags. + `Pull Request 130`_ +* Allow testing tool outputs based on MD5 hashes. `Pull Request 125`_ +* Improved Cheetah type casting for int/float values. `Pull Request 121`_ +* Add option to pass arbitrary parameters to gem install as part of + the tool shed ``setup_ruby_environment`` Tool Shed install action - + thanks to Björn Grüning. `Pull Request 118`_ +* Improve link and message that appears after workflows are run. + `Pull Request 143`_ +* Add NCBI SRA datatype - thanks to Matt Shirley. `Pull Request 87`_ +* Stronger toolbox filtering. `Pull Request 119`_ +* Allow updating Tool Shed repositories via the API - thanks to Eric Rasche. + `Pull Request 30`_ +* Expose category list in show call for Tool Shed repositories - thanks to + Eric Rasche. `Pull Request 29`_ +* Add API endpoint to create Tool Shed repositories. `Pull Request 2`_ +* Do not configure Galaxy to use the test Tool Shed by default. + `Pull Request 38`_ +* Add fields and improve display of Tool Shed repositories. + a24e206_, d6d61bc_ +* Enhance multi-selection widgets to allow key combinations ``Ctrl-A`` + and ``Ctrl-X``. e8564d7_ +* New, consistent button for displaying citation BibTeX. `Pull Request 19`_ +* Improved ``README`` reflecting move to Github - thanks in part to Eric + Rasche. `PR #2 (old repo) + `__, + 226e826_, 2650d09_, 7d5dde8_ +* Update application to use new logo. 2748f9d_, `Pull Request 187`_, + `Pull Request 206`_ +* Update many documentation links to use https sites - thanks to + Nicola Soranzo. 8254cab_ +* Sync report options config with ``galaxy.ini`` - thanks to Björn Grüning. + `Pull Request 12`_ +* Eliminate need to use API key to list tools via API. cd7abe8_ +* Restore function necessary for splitting sequence datatypes - thanks to + Roberto Alonso. `Pull Request 5`_ +* Suppress filenames in SAM merge using ``egrep`` - thanks to Peter Cock + and Roberto Alonso. `Pull Request 4`_ +* Option to sort counts in ``Count1`` tool (``tools/filters/uniq.xml``) - + thanks to Peter Cock. `Pull Request 16`_ +* Preserve spaces in ``Count1`` tool (``tools/filters/uniq.xml``) - thanks to + Peter Cock. `Pull Request 13`_ +* `Interactive Environments`_ improvements and fixes from multiple + developers including Eric Rasche and Björn Grüning. `Pull Request 69`_, + `Pull Request 73`_, `Pull Request 131`_, `Pull Request 135`_, + `Pull Request 152`_, `Pull Request 197`_ +* Enable multi-part upload for exporting files with the GenomeSpace export + tool. `Pull Request 74`_ +* Large refactoring, expansion, and increase in test coverage for "managers". + `Pull Request 76`_ +* Improved display of headers in tool help. 157eba6_, + `Biostar `__ +* Uniform configuration of "From" field for sent emails - thanks to Nicola + Soranzo. `Pull Request 23`_ +* Allow setting ``job_conf.xml`` params via environment variables & + ``galaxy.ini``. dde2fc9_ +* Add verbose test error flag option in run_tests.sh. 62f0495_ +* Update ``.gitignore`` to include ``run_api_tests.html``. b52cc98_ +* Add experimental options to run tests in Docker. e99adb5_ +* Improve ``run_test.sh --help`` documentation to detail running specific + tests. `Pull Request 86`_ +* Remove older, redundant history tests. `Pull Request 120`_ +* Add test tool demonstrating citing a Github repository. 65def71_ +* Add option to track all automated changes to the integrated tool panel. + 10bb492_ +* Make tool version explicit in all distribution tool - thanks to Peter Cock. + `Pull Request 14`_. +* Relocate the external metadata setting script. `Pull Request 7`_ +* Parameterize script used to pull new builds from the UCSC Browser. + e4e5df0_ +* Enhance jobs and workflow logging to report timings. 06346a4_ +* Add debug message for dynamic options exceptions. `Pull Request 91`_ +* Remove demo sequencer app. 3af3bf5_ +* Tweaks to the Pulsar's handling of async messages. `Pull Request 109`_ +* Return more specific API authentication errors. 71a64ca_ +* Upgrade Python dependency sqlalchemy to 1.0.0. d725aab_ +* Upgrade Python dependency amqp to 1.4.6. e09761e_ +* Upgrade Python dependency kombu to 3.0.24. 8d3c531_ +* Upgrade JavaScript dependency raven.js to 1.1.17. bcd1701_ + +Fixes +------------------------------- + +* During the 15.05 development cycle dozens of fixes were pushed to the + ``release_15.03`` branch of Galaxy. These are all included in 15.05 and + summarized `here + `__ + (with special thanks to Björn Grüning and Marius van den Beek). +* Fix race condition that would occasionally prevent Galaxy from starting + properly. `Pull Request 198`_ +* Fix scatter plot API communications for certain proxied Galaxy instances - + thanks to @yhoogstrate. `Pull Request 89`_ +* Fix bug in collectl job metrics plugin - thanks to Carrie Ganote. + `Pull Request 231`_ +* Fix late validation of tool parameters. `Pull Request 115`_ +* Fix ``fasta_to_tabular_converter.py`` (for implicit conversion) - thanks to + Peter Cock. `Pull Request 11`_ +* Fix to eliminate race condition by collecting extra files before declaring + dataset's OK. `Pull Request 48`_ +* Fix setting current history for certain proxied Galaxy instances - thanks + to @wezen. 6946e46_. +* Fix typo in tool failure testing example - thanks to Peter Cock. + `Pull Request 18`_. +* Fix Galaxy to default to using SSL for communicating with Tool Sheds. + 0b037a2_ +* Fix data source tools that do not have SSL to open in ``_blank`` window. + `Pull Request 17`_ +* Fix to fallback to name for tool parameters without labels. + `Pull Request 189`_ +* Fix to remove redundant version ids in tool version selector. + `Pull Request 244`_ +* Fix for downloading metadata files. `Pull Request 234`_ +* Fix for history failing to render if it contains more exotic dataset + collection types. `Pull Request 196`_ +* Fixes for BaseURLToolParameter. `Pull Request 247`_ +* Fix to suppress pysam binary incompatibility warning when using datatypes + in ``binary.py``. `Pull Request 252`_ +* Allow a tool data table to declare that duplicate entries are not + allowed. `Pull Request 245`_ +* Fix for library UI duplication bug. `Pull Request 179`_ +* Fix for Backbone loading as AMD. 4e5218f_ +* Other small Tool Shed fixes. 815f86f_, 76e0915_ +* Fix file closing in ``lped_to_pbed_converter``. 182b67f_ +* Fix undefined variables in Tool Shed ``add_repository_entry`` API script. + 47e6f08_ +* Fix user registration to respect use_panels when in the Galaxy app. + 7ac8631_ +* Fix bug in scramble exception, incorrect reference to source_path 79d50d8_ +* Fix error handling in ``pbed_to_lped``. 7aecd7a_ +* Fix error handling in Tool Shed step handler for ``chmod`` action. 1454396_ +* Fix ``__safe_string_wrapper`` in tool evaluation object_wrapper. ab6f13e_ +* Fixes for data types and data providers. c1d2d1f_, 8da70bb_, 0b83b1e_ +* Fixes for Tool Shed commit and mercurial handling modules. 6102edf_, + b639bc0_, debea9d_ +* Fix to clean working directory during job re-submission. `Pull Request 236`_ +* Fix bug when task splitting jobs fail. `Pull Request 214`_ +* Fix some minor typos in comment docs in ``config/galaxy.ini.sample``. + `Pull Request 210`_ +* Fix admin disk usage message. `Pull Request 205`_ +* Fix to sessionStorage Model to suppress QUOTA DOMExceptions when Safari + users are in private browsing mode. 0c94f04_ + +.. _IGV: https://www.broadinstitute.org/igv/ +.. _External Display Application: https://wiki.galaxyproject.org/Admin/Tools/External%20Display%20Applications%20Tutorial +.. _Interactive Environments: https://wiki.galaxyproject.org/Admin/IEs +.. _TravisCI: https://travis-ci.org/ +.. _Tox: https://testrun.org/tox/latest/ +.. _Source Maps: https://developer.chrome.com/devtools/docs/javascript-debugging#source-maps +.. _uglify: https://developer.chrome.com/devtools/docs/javascript-debugging#source-maps + +.. github_links +.. _Pull Request 2: https://github.com/galaxyproject/galaxy/pull/2 +.. _Pull Request 247: https://github.com/galaxyproject/galaxy/pull/247 +.. _Pull Request 252: https://github.com/galaxyproject/galaxy/pull/252 +.. _Pull Request 245: https://github.com/galaxyproject/galaxy/pull/245 +.. _Pull Request 244: https://github.com/galaxyproject/galaxy/pull/244 +.. _Pull Request 236: https://github.com/galaxyproject/galaxy/pull/236 +.. _Pull Request 235: https://github.com/galaxyproject/galaxy/pull/235 +.. _Pull Request 222: https://github.com/galaxyproject/galaxy/pull/222 +.. _Pull Request 234: https://github.com/galaxyproject/galaxy/pull/234 +.. _Pull Request 231: https://github.com/galaxyproject/galaxy/pull/231 +.. _Pull Request 226: https://github.com/galaxyproject/galaxy/pull/226 +.. _Pull Request 216: https://github.com/galaxyproject/galaxy/pull/216 +.. _Pull Request 215: https://github.com/galaxyproject/galaxy/pull/215 +.. _Pull Request 214: https://github.com/galaxyproject/galaxy/pull/214 +.. _Pull Request 198: https://github.com/galaxyproject/galaxy/pull/198 +.. _Pull Request 210: https://github.com/galaxyproject/galaxy/pull/210 +.. _Pull Request 206: https://github.com/galaxyproject/galaxy/pull/206 +.. _Pull Request 205: https://github.com/galaxyproject/galaxy/pull/205 +.. _Pull Request 197: https://github.com/galaxyproject/galaxy/pull/197 +.. _Pull Request 196: https://github.com/galaxyproject/galaxy/pull/196 +.. _Pull Request 189: https://github.com/galaxyproject/galaxy/pull/189 +.. _Pull Request 187: https://github.com/galaxyproject/galaxy/pull/187 +.. _Pull Request 179: https://github.com/galaxyproject/galaxy/pull/179 +.. _Pull Request 153: https://github.com/galaxyproject/galaxy/pull/153 +.. _Pull Request 152: https://github.com/galaxyproject/galaxy/pull/152 +.. _5abb8ad: https://github.com/galaxyproject/galaxy/commit/5abb8ad +.. _Pull Request 130: https://github.com/galaxyproject/galaxy/pull/130 +.. _Pull Request 146: https://github.com/galaxyproject/galaxy/pull/146 +.. _Pull Request 135: https://github.com/galaxyproject/galaxy/pull/135 +.. _Pull Request 143: https://github.com/galaxyproject/galaxy/pull/143 +.. _Pull Request 142: https://github.com/galaxyproject/galaxy/pull/142 +.. _Pull Request 131: https://github.com/galaxyproject/galaxy/pull/131 +.. _d725aab: https://github.com/galaxyproject/galaxy/commit/d725aab +.. _Pull Request 126: https://github.com/galaxyproject/galaxy/pull/126 +.. _e09761e: https://github.com/galaxyproject/galaxy/commit/e09761e +.. _8d3c531: https://github.com/galaxyproject/galaxy/commit/8d3c531 +.. _Pull Request 125: https://github.com/galaxyproject/galaxy/pull/125 +.. _Pull Request 123: https://github.com/galaxyproject/galaxy/pull/123 +.. _Pull Request 121: https://github.com/galaxyproject/galaxy/pull/121 +.. _Pull Request 120: https://github.com/galaxyproject/galaxy/pull/120 +.. _Pull Request 119: https://github.com/galaxyproject/galaxy/pull/119 +.. _Pull Request 117: https://github.com/galaxyproject/galaxy/pull/117 +.. _Pull Request 118: https://github.com/galaxyproject/galaxy/pull/118 +.. _Pull Request 134: https://github.com/galaxyproject/galaxy/pull/134 +.. _Pull Request 116: https://github.com/galaxyproject/galaxy/pull/116 +.. _Pull Request 109: https://github.com/galaxyproject/galaxy/pull/109 +.. _647cf55: https://github.com/galaxyproject/galaxy/commit/647cf55 +.. _Pull Request 108: https://github.com/galaxyproject/galaxy/pull/108 +.. _Pull Request 107: https://github.com/galaxyproject/galaxy/pull/107 +.. _8254cab: https://github.com/galaxyproject/galaxy/commit/8254cab +.. _Pull Request 99: https://github.com/galaxyproject/galaxy/pull/99 +.. _Pull Request 98: https://github.com/galaxyproject/galaxy/pull/98 +.. _Pull Request 115: https://github.com/galaxyproject/galaxy/pull/115 +.. _Pull Request 97: https://github.com/galaxyproject/galaxy/pull/97 +.. _Pull Request 91: https://github.com/galaxyproject/galaxy/pull/91 +.. _Pull Request 89: https://github.com/galaxyproject/galaxy/pull/89 +.. _Pull Request 86: https://github.com/galaxyproject/galaxy/pull/86 +.. _Pull Request 87: https://github.com/galaxyproject/galaxy/pull/87 +.. _Pull Request 73: https://github.com/galaxyproject/galaxy/pull/73 +.. _Pull Request 74: https://github.com/galaxyproject/galaxy/pull/74 +.. _Pull Request 75: https://github.com/galaxyproject/galaxy/pull/75 +.. _Pull Request 70: https://github.com/galaxyproject/galaxy/pull/70 +.. _Pull Request 69: https://github.com/galaxyproject/galaxy/pull/69 +.. _Pull Request 62: https://github.com/galaxyproject/galaxy/pull/62 +.. _Pull Request 51: https://github.com/galaxyproject/galaxy/pull/51 +.. _Pull Request 76: https://github.com/galaxyproject/galaxy/pull/76 +.. _2650d09: https://github.com/galaxyproject/galaxy/commit/2650d09 +.. _7d5dde8: https://github.com/galaxyproject/galaxy/commit/7d5dde8 +.. _2748f9d: https://github.com/galaxyproject/galaxy/commit/2748f9d +.. _d6d61bc: https://github.com/galaxyproject/galaxy/commit/d6d61bc +.. _815f86f: https://github.com/galaxyproject/galaxy/commit/815f86f +.. _76e0915: https://github.com/galaxyproject/galaxy/commit/76e0915 +.. _bce8171: https://github.com/galaxyproject/galaxy/commit/bce8171 +.. _06346a4: https://github.com/galaxyproject/galaxy/commit/06346a4 +.. _b4cf49a: https://github.com/galaxyproject/galaxy/commit/b4cf49a +.. _Pull Request 40: https://github.com/galaxyproject/galaxy/pull/40 +.. _Pull Request 38: https://github.com/galaxyproject/galaxy/pull/38 +.. _a24e206: https://github.com/galaxyproject/galaxy/commit/a24e206 +.. _Pull Request 35: https://github.com/galaxyproject/galaxy/pull/35 +.. _e36e51e: https://github.com/galaxyproject/galaxy/commit/e36e51e +.. _1e55206: https://github.com/galaxyproject/galaxy/commit/1e55206 +.. _0c79680: https://github.com/galaxyproject/galaxy/commit/0c79680 +.. _Pull Request 1: https://github.com/galaxyproject/galaxy/pull/1 +.. _Pull Request 33: https://github.com/galaxyproject/galaxy/pull/33 +.. _Pull Request 48: https://github.com/galaxyproject/galaxy/pull/48 +.. _21d1d6b: https://github.com/galaxyproject/galaxy/commit/21d1d6b +.. _Pull Request 30: https://github.com/galaxyproject/galaxy/pull/30 +.. _Pull Request 29: https://github.com/galaxyproject/galaxy/pull/29 +.. _c0e5509: https://github.com/galaxyproject/galaxy/commit/c0e5509 +.. _157eba6: https://github.com/galaxyproject/galaxy/commit/157eba6 +.. _72c876c: https://github.com/galaxyproject/galaxy/commit/72c876c +.. _9a7f5fc: https://github.com/galaxyproject/galaxy/commit/9a7f5fc +.. _648a623: https://github.com/galaxyproject/galaxy/commit/648a623 +.. _59028c0: https://github.com/galaxyproject/galaxy/commit/59028c0 +.. _bcd1701: https://github.com/galaxyproject/galaxy/commit/bcd1701 +.. _22f280f: https://github.com/galaxyproject/galaxy/commit/22f280f +.. _6946e46: https://github.com/galaxyproject/galaxy/commit/6946e46 +.. _65def71: https://github.com/galaxyproject/galaxy/commit/65def71 +.. _4e5218f: https://github.com/galaxyproject/galaxy/commit/4e5218f +.. _Pull Request 16: https://github.com/galaxyproject/galaxy/pull/16 +.. _Pull Request 13: https://github.com/galaxyproject/galaxy/pull/13 +.. _e8564d7: https://github.com/galaxyproject/galaxy/commit/e8564d7 +.. _Pull Request 23: https://github.com/galaxyproject/galaxy/pull/23 +.. _Pull Request 22: https://github.com/galaxyproject/galaxy/pull/22 +.. _10bb492: https://github.com/galaxyproject/galaxy/commit/10bb492 +.. _Pull Request 19: https://github.com/galaxyproject/galaxy/pull/19 +.. _Pull Request 18: https://github.com/galaxyproject/galaxy/pull/18 +.. _0b037a2: https://github.com/galaxyproject/galaxy/commit/0b037a2 +.. _Pull Request 17: https://github.com/galaxyproject/galaxy/pull/17 +.. _b29a5e9: https://github.com/galaxyproject/galaxy/commit/b29a5e9 +.. _Pull Request 14: https://github.com/galaxyproject/galaxy/pull/14 +.. _7aecd7a: https://github.com/galaxyproject/galaxy/commit/7aecd7a +.. _Pull Request 12: https://github.com/galaxyproject/galaxy/pull/12 +.. _cd7abe8: https://github.com/galaxyproject/galaxy/commit/cd7abe8 +.. _62f0495: https://github.com/galaxyproject/galaxy/commit/62f0495 +.. _Pull Request 11: https://github.com/galaxyproject/galaxy/pull/11 +.. _Pull Request 9: https://github.com/galaxyproject/galaxy/pull/9 +.. _632ec4e: https://github.com/galaxyproject/galaxy/commit/632ec4e +.. _Pull Request 7: https://github.com/galaxyproject/galaxy/pull/7 +.. _b52cc98: https://github.com/galaxyproject/galaxy/commit/b52cc98 +.. _1454396: https://github.com/galaxyproject/galaxy/commit/1454396 +.. _8da70bb: https://github.com/galaxyproject/galaxy/commit/8da70bb +.. _b639bc0: https://github.com/galaxyproject/galaxy/commit/b639bc0 +.. _ab6f13e: https://github.com/galaxyproject/galaxy/commit/ab6f13e +.. _debea9d: https://github.com/galaxyproject/galaxy/commit/debea9d +.. _6102edf: https://github.com/galaxyproject/galaxy/commit/6102edf +.. _c1d2d1f: https://github.com/galaxyproject/galaxy/commit/c1d2d1f +.. _0b83b1e: https://github.com/galaxyproject/galaxy/commit/0b83b1e +.. _216fb95: https://github.com/galaxyproject/galaxy/commit/216fb95 +.. _182b67f: https://github.com/galaxyproject/galaxy/commit/182b67f +.. _47e6f08: https://github.com/galaxyproject/galaxy/commit/47e6f08 +.. _7ac8631: https://github.com/galaxyproject/galaxy/commit/7ac8631 +.. _2bf52fe: https://github.com/galaxyproject/galaxy/commit/2bf52fe +.. _e4e5df0: https://github.com/galaxyproject/galaxy/commit/e4e5df0 +.. _6e17bf4: https://github.com/galaxyproject/galaxy/commit/6e17bf4 +.. _0c94f04: https://github.com/galaxyproject/galaxy/commit/0c94f04 +.. _Pull Request 1: https://github.com/galaxyproject/galaxy/pull/1 +.. _ec549db: https://github.com/galaxyproject/galaxy/commit/ec549db +.. _226e826: https://github.com/galaxyproject/galaxy/commit/226e826 +.. _79d50d8: https://github.com/galaxyproject/galaxy/commit/79d50d8 +.. _964e081: https://github.com/galaxyproject/galaxy/commit/964e081 +.. _Pull Request 5: https://github.com/galaxyproject/galaxy/pull/5 +.. _1f1bb29: https://github.com/galaxyproject/galaxy/commit/1f1bb29 +.. _Pull Request 4: https://github.com/galaxyproject/galaxy/pull/4 +.. _dde2fc9: https://github.com/galaxyproject/galaxy/commit/dde2fc9 +.. _c2eb74c: https://github.com/galaxyproject/galaxy/commit/c2eb74c +.. _71a64ca: https://github.com/galaxyproject/galaxy/commit/71a64ca +.. _3af3bf5: https://github.com/galaxyproject/galaxy/commit/3af3bf5 +.. _e99adb5: https://github.com/galaxyproject/galaxy/commit/e99adb5 diff --git a/scripts/bootstrap_history.py b/scripts/bootstrap_history.py new file mode 100644 index 00000000000..4ec935909cd --- /dev/null +++ b/scripts/bootstrap_history.py @@ -0,0 +1,82 @@ +#!/usr/bin/env python +# Little script to make HISTORY.rst more easy to format properly, lots TODO +# pull message down and embed, use arg parse, handle multiple, etc... +import os +import sys +import requests +import urlparse +import textwrap + + +PROJECT_DIRECTORY = os.path.join(os.path.dirname(__file__), "..") +PROJECT_OWNER = "galaxyproject" +PROJECT_NAME = "galaxy" +PROJECT_URL = "https://github.com/%s/%s" % (PROJECT_OWNER, PROJECT_NAME) +PROJECT_API = "https://api.github.com/repos/%s/%s/" % (PROJECT_OWNER, PROJECT_NAME) + + +def main(argv): + releases_path = os.path.join(PROJECT_DIRECTORY, "doc", "source", "releases") + newest_release = sorted(os.listdir(releases_path))[-1] + history_path = os.path.join(releases_path, newest_release) + history = open(history_path, "r").read().decode("utf-8") + + def extend(from_str, line): + from_str += "\n" + return history.replace(from_str, from_str + line + "\n" ) + + ident = argv[1] + + message = "" + if len(argv) > 2: + message = argv[2] + elif not (ident.startswith("pr") or ident.startswith("issue")): + api_url = urlparse.urljoin(PROJECT_API, "commits/%s" % ident) + req = requests.get(api_url).json() + commit = req["commit"] + message = commit["message"] + message = get_first_sentence(message) + elif ident.startswith("pr"): + pull_request = ident[len("pr"):] + api_url = urlparse.urljoin(PROJECT_API, "pulls/%s" % pull_request) + req = requests.get(api_url).json() + message = req["title"] + else: + message = "" + + to_doc = message + " " + + if ident.startswith("pr"): + pull_request = ident[len("pr"):] + text = ".. _Pull Request {0}: {1}/pull/{0}".format(pull_request, PROJECT_URL) + history = extend(".. github_links", text) + to_doc += "`Pull Request {0}`_".format(pull_request) + elif ident.startswith("issue"): + issue = ident[len("issue"):] + text = ".. _Issue {0}: {1}/issues/{0}".format(issue, PROJECT_URL) + history = extend(".. github_links", text) + to_doc += "`Issue {0}`_".format(issue) + else: + short_rev = ident[:7] + text = ".. _{0}: {1}/commit/{0}".format(short_rev, PROJECT_URL) + history = extend(".. github_links", text) + to_doc += "{0}_".format(short_rev) + + to_doc = wrap(to_doc) + history = extend(".. to_doc", to_doc) + open(history_path, "w").write(history.encode("utf-8")) + + +def get_first_sentence(message): + first_line = message.split("\n")[0] + return first_line + + +def wrap(message): + wrapper = textwrap.TextWrapper(initial_indent="* ") + wrapper.subsequent_indent = ' ' + wrapper.width = 78 + return "\n".join(wrapper.wrap(message)) + +if __name__ == "__main__": + main(sys.argv) From 3e5b5e93d8b21ccf3a3687c70114f65cfab060b6 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 12 May 2015 09:17:39 -0400 Subject: [PATCH 08/30] Add more links to 15.05 release notes - Trello and otherwise. --- doc/source/releases/15.05.rst | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index b46ebe29299..858ec0345c8 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -16,19 +16,20 @@ Enhancements * Implement a new ``section`` tag for tools. `Pull Request 35`_, `Trello `__ * New UI widgets allowing much more flexibility when creating simple dataset - pair and list collections. `Pull Request 134`_ + pair and list collections. `Pull Request 134`_, + `Trello `__ * Improved JavaScript build system for client code and libraries (now using uglify_ and featuring `Source Maps`_). 72c876c_, 9a7f5fc_, 648a623_, - 22f280f_ + 22f280f_, `Trello `__ * Add an `External Display Application`_ for viewing GFF/GTF files with IGV_. - `Pull Request 70`_ + `Pull Request 70`_, `Trello `__ * Use TravisCI_ and Tox_ for continuous integration testing. `Pull Request 40`_, `Pull Request 62`_, `Pull Request 97`_, `Pull Request 99`_, `Pull Request 123`_, `Pull Request 222`_, `Pull Request 235`_, * Infrastructure for improved toolbox and Tool Shed searching. `Pull Request 9`_, `Pull Request 116`_, `Pull Request 142`_, - `Pull Request 226`_, c2eb74c_, 2bf52fe_, ec549db_ + `Pull Request 226`_, c2eb74c_, 2bf52fe_, ec549db_, `Trello `__ * Enhance UI to allow renaming dataset collections. 21d1d6b_ * Improve highlighting of current/active content history panel. `Pull Request 126`_ @@ -61,7 +62,7 @@ Enhancements * Add fields and improve display of Tool Shed repositories. a24e206_, d6d61bc_ * Enhance multi-selection widgets to allow key combinations ``Ctrl-A`` - and ``Ctrl-X``. e8564d7_ + and ``Ctrl-X``. e8564d7_, `Trello `__ * New, consistent button for displaying citation BibTeX. `Pull Request 19`_ * Improved ``README`` reflecting move to Github - thanks in part to Eric Rasche. `PR #2 (old repo) @@ -87,7 +88,7 @@ Enhancements `Pull Request 73`_, `Pull Request 131`_, `Pull Request 135`_, `Pull Request 152`_, `Pull Request 197`_ * Enable multi-part upload for exporting files with the GenomeSpace export - tool. `Pull Request 74`_ + tool. `Pull Request 74`_, `Trello `__ * Large refactoring, expansion, and increase in test coverage for "managers". `Pull Request 76`_ * Improved display of headers in tool help. 157eba6_, @@ -101,7 +102,8 @@ Enhancements * Add experimental options to run tests in Docker. e99adb5_ * Improve ``run_test.sh --help`` documentation to detail running specific tests. `Pull Request 86`_ -* Remove older, redundant history tests. `Pull Request 120`_ +* Remove older, redundant history tests. `Pull Request 120`_, + `Trello `__ * Add test tool demonstrating citing a Github repository. 65def71_ * Add option to track all automated changes to the integrated tool panel. 10bb492_ @@ -129,10 +131,10 @@ Fixes `__ (with special thanks to Björn Grüning and Marius van den Beek). * Fix race condition that would occasionally prevent Galaxy from starting - properly. `Pull Request 198`_ + properly. `Pull Request 198`_, `Trello `__ * Fix scatter plot API communications for certain proxied Galaxy instances - thanks to @yhoogstrate. `Pull Request 89`_ -* Fix bug in collectl job metrics plugin - thanks to Carrie Ganote. +* Fix bug in collectl_ job metrics plugin - thanks to Carrie Ganote. `Pull Request 231`_ * Fix late validation of tool parameters. `Pull Request 115`_ * Fix ``fasta_to_tabular_converter.py`` (for implicit conversion) - thanks to @@ -148,7 +150,7 @@ Fixes * Fix data source tools that do not have SSL to open in ``_blank`` window. `Pull Request 17`_ * Fix to fallback to name for tool parameters without labels. - `Pull Request 189`_ + `Pull Request 189`_, `Trello `__ * Fix to remove redundant version ids in tool version selector. `Pull Request 244`_ * Fix for downloading metadata files. `Pull Request 234`_ @@ -160,13 +162,13 @@ Fixes * Allow a tool data table to declare that duplicate entries are not allowed. `Pull Request 245`_ * Fix for library UI duplication bug. `Pull Request 179`_ -* Fix for Backbone loading as AMD. 4e5218f_ +* Fix for `Backbone.js`_ loading as AMD_. 4e5218f_ * Other small Tool Shed fixes. 815f86f_, 76e0915_ * Fix file closing in ``lped_to_pbed_converter``. 182b67f_ * Fix undefined variables in Tool Shed ``add_repository_entry`` API script. 47e6f08_ * Fix user registration to respect use_panels when in the Galaxy app. - 7ac8631_ + 7ac8631_, `Trello `__ * Fix bug in scramble exception, incorrect reference to source_path 79d50d8_ * Fix error handling in ``pbed_to_lped``. 7aecd7a_ * Fix error handling in Tool Shed step handler for ``chmod`` action. 1454396_ @@ -178,7 +180,8 @@ Fixes * Fix bug when task splitting jobs fail. `Pull Request 214`_ * Fix some minor typos in comment docs in ``config/galaxy.ini.sample``. `Pull Request 210`_ -* Fix admin disk usage message. `Pull Request 205`_ +* Fix admin disk usage message. `Pull Request 205`_, + `Trello `__ * Fix to sessionStorage Model to suppress QUOTA DOMExceptions when Safari users are in private browsing mode. 0c94f04_ @@ -189,6 +192,9 @@ Fixes .. _Tox: https://testrun.org/tox/latest/ .. _Source Maps: https://developer.chrome.com/devtools/docs/javascript-debugging#source-maps .. _uglify: https://developer.chrome.com/devtools/docs/javascript-debugging#source-maps +.. _collectl: http://collectl.sourceforge.net/ +.. _Backbone.js: http://backbonejs.org/ +.. _AMD: http://requirejs.org/docs/whyamd.html .. github_links .. _Pull Request 2: https://github.com/galaxyproject/galaxy/pull/2 From 6ac018ef2236a87b2290f8073c4405ff659cdbe7 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 12 May 2015 10:29:51 -0400 Subject: [PATCH 09/30] Suggestions for release notes 15.05 from @nsoranzo. --- doc/source/releases/15.05.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index 858ec0345c8..6a89cec6512 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -11,9 +11,9 @@ Enhancements * Pluggable framework to custom authentication (including new LDAP/Active Directory integration). Thanks to many including Andrew Robinson, Nicola Soranzo, and David Trudgian. `Pull Request 1`_, `Pull Request 33`_, - `Pull Request 51`_, `Pull Request 74`_, `Pull Request 98`_, + `Pull Request 51`_, `Pull Request 75`_, `Pull Request 98`_, `Pull Request 216`_ -* Implement a new ``section`` tag for tools. `Pull Request 35`_, +* Implement a new ``section`` tag for tool parameters. `Pull Request 35`_, `Trello `__ * New UI widgets allowing much more flexibility when creating simple dataset pair and list collections. `Pull Request 134`_, From 671ea37b2094432c2ae68637f1857408b4193fd8 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 12 May 2015 11:05:09 -0400 Subject: [PATCH 10/30] More updates to release 15.05 notes based on @nsoranzo's comments. --- doc/source/releases/15.05.rst | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index 6a89cec6512..f41f73717b0 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -97,6 +97,8 @@ Enhancements Soranzo. `Pull Request 23`_ * Allow setting ``job_conf.xml`` params via environment variables & ``galaxy.ini``. dde2fc9_ +* Allow a tool data table to declare that duplicate entries are not + allowed. `Pull Request 245`_ * Add verbose test error flag option in run_tests.sh. 62f0495_ * Update ``.gitignore`` to include ``run_api_tests.html``. b52cc98_ * Add experimental options to run tests in Docker. e99adb5_ @@ -117,9 +119,9 @@ Enhancements * Remove demo sequencer app. 3af3bf5_ * Tweaks to the Pulsar's handling of async messages. `Pull Request 109`_ * Return more specific API authentication errors. 71a64ca_ -* Upgrade Python dependency sqlalchemy to 1.0.0. d725aab_ -* Upgrade Python dependency amqp to 1.4.6. e09761e_ -* Upgrade Python dependency kombu to 3.0.24. 8d3c531_ +* Upgrade Python dependency sqlalchemy to 1.0.0. d725aab_, `Pull Request 129`_ +* Upgrade Python dependency amqp to 1.4.6. e09761e_, `Pull Request 128`_ +* Upgrade Python dependency kombu to 3.0.24. 8d3c531_, `Pull Request 128`_ * Upgrade JavaScript dependency raven.js to 1.1.17. bcd1701_ Fixes @@ -159,8 +161,6 @@ Fixes * Fixes for BaseURLToolParameter. `Pull Request 247`_ * Fix to suppress pysam binary incompatibility warning when using datatypes in ``binary.py``. `Pull Request 252`_ -* Allow a tool data table to declare that duplicate entries are not - allowed. `Pull Request 245`_ * Fix for library UI duplication bug. `Pull Request 179`_ * Fix for `Backbone.js`_ loading as AMD_. 4e5218f_ * Other small Tool Shed fixes. 815f86f_, 76e0915_ @@ -197,6 +197,8 @@ Fixes .. _AMD: http://requirejs.org/docs/whyamd.html .. github_links +.. _Pull Request 129: https://github.com/galaxyproject/galaxy/pull/129 +.. _Pull Request 128: https://github.com/galaxyproject/galaxy/pull/128 .. _Pull Request 2: https://github.com/galaxyproject/galaxy/pull/2 .. _Pull Request 247: https://github.com/galaxyproject/galaxy/pull/247 .. _Pull Request 252: https://github.com/galaxyproject/galaxy/pull/252 From 6766e47244fc6089fbb8a0a43d08c0744ff9c17d Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Tue, 12 May 2015 11:16:31 -0400 Subject: [PATCH 11/30] add some trello card links --- doc/source/releases/15.05.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index f41f73717b0..ddc4f8f1c3f 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -29,7 +29,8 @@ Enhancements `Pull Request 235`_, * Infrastructure for improved toolbox and Tool Shed searching. `Pull Request 9`_, `Pull Request 116`_, `Pull Request 142`_, - `Pull Request 226`_, c2eb74c_, 2bf52fe_, ec549db_, `Trello `__ + `Pull Request 226`_, c2eb74c_, 2bf52fe_, ec549db_, + `Trello `__, `Trello `__ * Enhance UI to allow renaming dataset collections. 21d1d6b_ * Improve highlighting of current/active content history panel. `Pull Request 126`_ @@ -60,7 +61,7 @@ Enhancements * Do not configure Galaxy to use the test Tool Shed by default. `Pull Request 38`_ * Add fields and improve display of Tool Shed repositories. - a24e206_, d6d61bc_ + a24e206_, d6d61bc_, `Trello `__ * Enhance multi-selection widgets to allow key combinations ``Ctrl-A`` and ``Ctrl-X``. e8564d7_, `Trello `__ * New, consistent button for displaying citation BibTeX. `Pull Request 19`_ From 4e1324e432fa2fa7391c6f4a6df608fa5b5e59dd Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 12 May 2015 12:14:20 -0400 Subject: [PATCH 12/30] Add PR7 to release notes (caught by @bgruening). ... small updates to bootstrap history script for reuse in planemo. --- doc/source/releases/15.05.rst | 6 ++++-- scripts/bootstrap_history.py | 12 ++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index ddc4f8f1c3f..5421b0158d3 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -49,6 +49,7 @@ Enhancements * Add option to pass arbitrary parameters to gem install as part of the tool shed ``setup_ruby_environment`` Tool Shed install action - thanks to Björn Grüning. `Pull Request 118`_ +* Add ``argument`` attribute to tool parameters. `Pull Request 8`_ * Improve link and message that appears after workflows are run. `Pull Request 143`_ * Add NCBI SRA datatype - thanks to Matt Shirley. `Pull Request 87`_ @@ -121,8 +122,8 @@ Enhancements * Tweaks to the Pulsar's handling of async messages. `Pull Request 109`_ * Return more specific API authentication errors. 71a64ca_ * Upgrade Python dependency sqlalchemy to 1.0.0. d725aab_, `Pull Request 129`_ -* Upgrade Python dependency amqp to 1.4.6. e09761e_, `Pull Request 128`_ -* Upgrade Python dependency kombu to 3.0.24. 8d3c531_, `Pull Request 128`_ +* Upgrade Python dependency amqp to 1.4.6. `Pull Request 128`_ +* Upgrade Python dependency kombu to 3.0.24. `Pull Request 128`_ * Upgrade JavaScript dependency raven.js to 1.1.17. bcd1701_ Fixes @@ -318,6 +319,7 @@ Fixes .. _Pull Request 11: https://github.com/galaxyproject/galaxy/pull/11 .. _Pull Request 9: https://github.com/galaxyproject/galaxy/pull/9 .. _632ec4e: https://github.com/galaxyproject/galaxy/commit/632ec4e +.. _Pull Request 8: https://github.com/galaxyproject/galaxy/pull/8 .. _Pull Request 7: https://github.com/galaxyproject/galaxy/pull/7 .. _b52cc98: https://github.com/galaxyproject/galaxy/commit/b52cc98 .. _1454396: https://github.com/galaxyproject/galaxy/commit/1454396 diff --git a/scripts/bootstrap_history.py b/scripts/bootstrap_history.py index 4ec935909cd..53ffe963b0f 100644 --- a/scripts/bootstrap_history.py +++ b/scripts/bootstrap_history.py @@ -3,7 +3,10 @@ # pull message down and embed, use arg parse, handle multiple, etc... import os import sys -import requests +try: + import requests +except ImportError: + requests = None import urlparse import textwrap @@ -36,11 +39,16 @@ def main(argv): commit = req["commit"] message = commit["message"] message = get_first_sentence(message) - elif ident.startswith("pr"): + elif requests is not None and ident.startswith("pr"): pull_request = ident[len("pr"):] api_url = urlparse.urljoin(PROJECT_API, "pulls/%s" % pull_request) req = requests.get(api_url).json() message = req["title"] + elif requests is not None and ident.startswith("issue"): + issue = ident[len("issue"):] + api_url = urlparse.urljoin(PROJECT_API, "issues/%s" % pull_request) + req = requests.get(api_url).json() + message = req["title"] else: message = "" From 92362dcc071204d059fc7694d1b89b2e811fefbe Mon Sep 17 00:00:00 2001 From: Daniel Blankenberg Date: Tue, 12 May 2015 16:39:23 -0400 Subject: [PATCH 13/30] all data source tools go to _top --- doc/source/releases/15.05.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index 5421b0158d3..30ca51a927d 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -151,7 +151,7 @@ Fixes `Pull Request 18`_. * Fix Galaxy to default to using SSL for communicating with Tool Sheds. 0b037a2_ -* Fix data source tools that do not have SSL to open in ``_blank`` window. +* Fix data source tools to open in ``_top`` window. `Pull Request 17`_ * Fix to fallback to name for tool parameters without labels. `Pull Request 189`_, `Trello `__ From d1c14bd1a1bf10bb8a6bc7969027fc4d0dd26a9e Mon Sep 17 00:00:00 2001 From: Carl Eberhard Date: Tue, 12 May 2015 16:57:17 -0400 Subject: [PATCH 14/30] Histories, API: do not consider deleted datasets when calculating history state; test --- lib/galaxy/managers/histories.py | 8 +-- test/unit/managers/test_HistoryManager.py | 72 +++++++++++++++++++++++ 2 files changed, 76 insertions(+), 4 deletions(-) diff --git a/lib/galaxy/managers/histories.py b/lib/galaxy/managers/histories.py index b167e07a0e6..14e53aa230d 100644 --- a/lib/galaxy/managers/histories.py +++ b/lib/galaxy/managers/histories.py @@ -282,21 +282,21 @@ class HistorySerializer( sharable.SharableModelSerializer, deletable.PurgableSer state = states.ERROR # TODO: history_state and state_counts are classically calc'd at the same time # so this is rel. ineff. - if we keep this... - hda_state_counts = self.serialize_state_counts( history, 'counts', exclude_deleted=False, **context ) + hda_state_counts = self.serialize_state_counts( history, 'counts', exclude_deleted=True, **context ) num_hdas = sum( hda_state_counts.values() ) if num_hdas == 0: state = states.NEW else: if ( hda_state_counts[ states.RUNNING ] > 0 - or hda_state_counts[ states.SETTING_METADATA ] > 0 - or hda_state_counts[ states.UPLOAD ] > 0 ): + or hda_state_counts[ states.SETTING_METADATA ] > 0 + or hda_state_counts[ states.UPLOAD ] > 0 ): state = states.RUNNING # TODO: this method may be more useful if we *also* polled the histories jobs here too elif hda_state_counts[ states.QUEUED ] > 0: state = states.QUEUED elif ( hda_state_counts[ states.ERROR ] > 0 - or hda_state_counts[ states.FAILED_METADATA ] > 0 ): + or hda_state_counts[ states.FAILED_METADATA ] > 0 ): state = states.ERROR elif hda_state_counts[ states.OK ] == num_hdas: state = states.OK diff --git a/test/unit/managers/test_HistoryManager.py b/test/unit/managers/test_HistoryManager.py index c55c25e4f0e..7b3a1818c6f 100644 --- a/test/unit/managers/test_HistoryManager.py +++ b/test/unit/managers/test_HistoryManager.py @@ -441,6 +441,78 @@ class HistorySerializerTestCase( BaseTestCase ): self.log( 'serialized should jsonify well' ) self.assertIsJsonifyable( serialized ) + def _history_state_from_states_and_deleted( self, user, hda_state_and_deleted_tuples ): + history = self.history_manager.create( name='name', user=user ) + for state, deleted in hda_state_and_deleted_tuples: + hda = self.hda_manager.create( history=history ) + hda = self.hda_manager.update( hda, dict( state=state, deleted=deleted ) ) + history_state = self.history_serializer.serialize( history, [ 'state' ] )[ 'state' ] + return history_state + + def test_state( self ): + dataset_states = model.Dataset.states + user2 = self.user_manager.create( **user2_data ) + + ready_states = [ ( state, False ) for state in [ dataset_states.OK, dataset_states.OK ] ] + + self.log( 'a history\'s serialized state should be running if any of its datasets are running' ) + self.assertEqual( 'running', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.RUNNING, False )] )) + self.assertEqual( 'running', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.SETTING_METADATA, False )] )) + self.assertEqual( 'running', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.UPLOAD, False )] )) + + self.log( 'a history\'s serialized state should be queued if any of its datasets are queued' ) + self.assertEqual( 'queued', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.QUEUED, False )] )) + + self.log( 'a history\'s serialized state should be error if any of its datasets are errored' ) + self.assertEqual( 'error', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.ERROR, False )] )) + self.assertEqual( 'error', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.FAILED_METADATA, False )] )) + + self.log( 'a history\'s serialized state should be ok if *all* of its datasets are ok' ) + self.assertEqual( 'ok', self._history_state_from_states_and_deleted( user2, ready_states )) + + self.log( 'a history\'s serialized state should be not be affected by deleted datasets' ) + self.assertEqual( 'ok', self._history_state_from_states_and_deleted( user2, + ready_states + [( dataset_states.RUNNING, True )] )) + + def test_contents( self ): + user2 = self.user_manager.create( **user2_data ) + history1 = self.history_manager.create( name='history1', user=user2 ) + + self.log( 'a history with no contents should be properly reflected in empty, etc.' ) + keys = [ 'empty', 'count', 'state_ids', 'state_details', 'state', 'hdas' ] + serialized = self.history_serializer.serialize( history1, keys ) + self.assertEqual( serialized[ 'state' ], 'new' ) + self.assertEqual( serialized[ 'empty' ], True ) + self.assertEqual( serialized[ 'count' ], 0 ) + self.assertEqual( sum( serialized[ 'state_details' ].values() ), 0 ) + self.assertEqual( serialized[ 'state_ids' ][ 'ok' ], [] ) + self.assertIsInstance( serialized[ 'hdas' ], list ) + + self.log( 'a history with contents should be properly reflected in empty, etc.' ) + hda1 = self.hda_manager.create( history=history1, hid=1 ) + self.hda_manager.update( hda1, dict( state='ok' ) ) + + serialized = self.history_serializer.serialize( history1, keys ) + self.assertEqual( serialized[ 'state' ], 'ok' ) + self.assertEqual( serialized[ 'empty' ], False ) + self.assertEqual( serialized[ 'count' ], 1 ) + self.assertEqual( serialized[ 'state_details' ][ 'ok' ], 1 ) + self.assertIsInstance( serialized[ 'state_ids' ][ 'ok' ], list ) + self.assertIsInstance( serialized[ 'hdas' ], list ) + self.assertIsInstance( serialized[ 'hdas' ][0], basestring ) + + serialized = self.history_serializer.serialize( history1, [ 'contents' ] ) + self.assertHasKeys( serialized[ 'contents' ][0], [ 'id', 'name', 'peek', 'create_time' ]) + + self.log( 'serialized should jsonify well' ) + self.assertIsJsonifyable( serialized ) + # # ============================================================================= # class HistoryDeserializerTestCase( BaseTestCase ): From 5a2eed349b957c6769066478211b9966154a50c3 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Wed, 13 May 2015 11:09:49 -0400 Subject: [PATCH 15/30] WIP: Experiment porting release announcement to rST/RTD. --- doc/source/_static/style.css | 3 ++ doc/source/_templates/layout.html | 5 +++ doc/source/index.rst | 2 + doc/source/releases/15.05.rst | 5 +++ doc/source/releases/15.05_announce.rst | 54 ++++++++++++++++++++++++++ doc/source/releases/index.rst | 7 ++++ 6 files changed, 76 insertions(+) create mode 100644 doc/source/_static/style.css create mode 100644 doc/source/_templates/layout.html create mode 100644 doc/source/releases/15.05_announce.rst create mode 100644 doc/source/releases/index.rst diff --git a/doc/source/_static/style.css b/doc/source/_static/style.css new file mode 100644 index 00000000000..ae29519975b --- /dev/null +++ b/doc/source/_static/style.css @@ -0,0 +1,3 @@ +div.floatright { + float: right; +} diff --git a/doc/source/_templates/layout.html b/doc/source/_templates/layout.html new file mode 100644 index 00000000000..324da72b53b --- /dev/null +++ b/doc/source/_templates/layout.html @@ -0,0 +1,5 @@ +{# layout.html #} +{# Import the theme's layout. #} +{% extends "!layout.html" %} + +{% set css_files = css_files + ['_static/style.css'] %} diff --git a/doc/source/index.rst b/doc/source/index.rst index 52e5032c8a1..02142d04c86 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -46,6 +46,8 @@ Contents Application Documentation + Releases + Indices and tables ================== diff --git a/doc/source/releases/15.05.rst b/doc/source/releases/15.05.rst index 30ca51a927d..7e5aea7fbdb 100644 --- a/doc/source/releases/15.05.rst +++ b/doc/source/releases/15.05.rst @@ -4,10 +4,12 @@ 15.05 ------------------------------- +.. enhancements Enhancements ------------------------------- +.. starthighlight * Pluggable framework to custom authentication (including new LDAP/Active Directory integration). Thanks to many including Andrew Robinson, Nicola Soranzo, and David Trudgian. `Pull Request 1`_, `Pull Request 33`_, @@ -18,6 +20,7 @@ Enhancements * New UI widgets allowing much more flexibility when creating simple dataset pair and list collections. `Pull Request 134`_, `Trello `__ +.. endhighlight * Improved JavaScript build system for client code and libraries (now using uglify_ and featuring `Source Maps`_). 72c876c_, 9a7f5fc_, 648a623_, 22f280f_, `Trello `__ @@ -126,6 +129,8 @@ Enhancements * Upgrade Python dependency kombu to 3.0.24. `Pull Request 128`_ * Upgrade JavaScript dependency raven.js to 1.1.17. bcd1701_ +.. fixes + Fixes ------------------------------- diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst new file mode 100644 index 00000000000..67f9e2f3ddd --- /dev/null +++ b/doc/source/releases/15.05_announce.rst @@ -0,0 +1,54 @@ +====================================== +May 2015 Galaxy Release (v 15.05) +====================================== + +.. container:: floatright + + .. image:: https://wiki.galaxyproject.org/Images/Logos?action=AttachFile&do=get&target=GetGalaxyOrg.png + +`Get the Galaxy Release Your Way `__ + +Highlights +====================================== + +* Galaxy now has native support for LDAP and Active Directory via a new + community developed authentication plugin system. +* Tool parameters may now be groupped into collapsable sections. +* New widgets have been added that allow much more flexibility when creating + simple dataset pair and list collections. + +Github +====================================== + +* New:: + + % git clone -b master https://github.com/galaxyproject/galaxy.git + +* Update to latest stable release:: + + % git checkout master && pull --ff-only origin master + +* Update to exact version:: + + % git checkout v15.05 + +See `getgalaxy.org `__ for additional details regarding Git branches. + + +BitBucket +====================================== + +* Upgrade:: + + % hg pull + % hg update latest_15.05 + +Release Notes +====================================== + +.. include:: 15.05.rst + :start-after: enhancements + +*Thanks for using Galaxy!* + +`The Galaxy Team `__ diff --git a/doc/source/releases/index.rst b/doc/source/releases/index.rst new file mode 100644 index 00000000000..f19617e2415 --- /dev/null +++ b/doc/source/releases/index.rst @@ -0,0 +1,7 @@ +Releases +======== + +.. toctree:: + :maxdepth: 4 + + 15.05_announce From e5d19d9999b721c7b7324ca7f84b2b50aab6d4e4 Mon Sep 17 00:00:00 2001 From: guerler Date: Wed, 13 May 2015 11:24:32 -0400 Subject: [PATCH 16/30] Accept 'None' as valid value --- client/galaxy/scripts/utils/utils.js | 2 +- static/maps/utils/utils.js.map | 2 +- static/scripts/utils/utils.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/galaxy/scripts/utils/utils.js b/client/galaxy/scripts/utils/utils.js index 827cbb5e1c8..97e04855493 100644 --- a/client/galaxy/scripts/utils/utils.js +++ b/client/galaxy/scripts/utils/utils.js @@ -39,7 +39,7 @@ function validate (value) { return false; } for (var i in value) { - if (['__null__', '__undefined__', 'None', null, undefined].indexOf(value[i]) > -1) { + if (['__null__', '__undefined__', null, undefined].indexOf(value[i]) > -1) { return false; } } diff --git a/static/maps/utils/utils.js.map b/static/maps/utils/utils.js.map index b1ed897ee02..d84a0f42923 100644 --- a/static/maps/utils/utils.js.map +++ b/static/maps/utils/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sources":["../../src/utils/utils.js"],"names":["define","_","deepeach","dict","callback","i","d","sanitize","content","$","text","html","validate","value","Array","length","undefined","indexOf","textify","lst","toString","replace","pos","lastIndexOf","substr","get","options","top","__utils__get__","cache","url","success","console","debug","request","data","response","error","ajaxConfig","contentType","type","param","dataType","JSON","stringify","ajax","done","jQuery","parseJSON","e","fail","response_text","responseText","cssGetAttribute","classname","name","el","appendTo","css","remove","cssLoadFile","galaxy_config","root","merge","optionsDefault","defaults","bytesToString","size","normal_font","unit","rounded","Math","round","uid","__utils__uid__","time","Date","hours","getHours","minutes","getMinutes","datetime","getDate","getMonth","getFullYear"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"utils.js","sources":["../../src/utils/utils.js"],"names":["define","_","deepeach","dict","callback","i","d","sanitize","content","$","text","html","validate","value","Array","length","undefined","indexOf","textify","lst","toString","replace","pos","lastIndexOf","substr","get","options","top","__utils__get__","cache","url","success","console","debug","request","data","response","error","ajaxConfig","contentType","type","param","dataType","JSON","stringify","ajax","done","jQuery","parseJSON","e","fail","response_text","responseText","cssGetAttribute","classname","name","el","appendTo","css","remove","cssLoadFile","galaxy_config","root","merge","optionsDefault","defaults","bytesToString","size","normal_font","unit","rounded","Math","round","uid","__utils__uid__","time","Date","hours","getHours","minutes","getMinutes","datetime","getDate","getMonth","getFullYear"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/utils/utils.js b/static/scripts/utils/utils.js index d3d7397d897..e1c565c4f15 100644 --- a/static/scripts/utils/utils.js +++ b/static/scripts/utils/utils.js @@ -1,2 +1,2 @@ -define(["libs/underscore"],function(a){function b(a,c){for(var d in a){var e=a[d];e&&"object"==typeof e&&(c(e),b(e,c))}}function c(a){return $("
").text(a).html()}function d(a){if(a instanceof Array||(a=[a]),0===a.length)return!1;for(var b in a)if(["__null__","__undefined__","None",null,void 0].indexOf(a[b])>-1)return!1;return!0}function e(a){var a=a.toString();if(a){a=a.replace(/,/g,", ");var b=a.lastIndexOf(", ");return-1!=b&&(a=a.substr(0,b)+" or "+a.substr(b+1)),a}return""}function f(a){top.__utils__get__=top.__utils__get__||{},a.cache&&top.__utils__get__[a.url]?(a.success&&a.success(top.__utils__get__[a.url]),console.debug("utils.js::get() - Fetching from cache ["+a.url+"].")):g({url:a.url,data:a.data,success:function(b){top.__utils__get__[a.url]=b,a.success&&a.success(b)},error:function(b){a.error&&a.error(b)}})}function g(a){var b={contentType:"application/json",type:a.type||"GET",data:a.data||{},url:a.url};"GET"==b.type||"DELETE"==b.type?(b.url+=-1==b.url.indexOf("?")?"?":"&",b.url=b.url+$.param(b.data,!0),b.data=null):(b.dataType="json",b.url=b.url,b.data=JSON.stringify(b.data)),$.ajax(b).done(function(b){if("string"==typeof b)try{b=b.replace("Infinity,",'"Infinity",'),b=jQuery.parseJSON(b)}catch(c){console.debug(c)}a.success&&a.success(b)}).fail(function(b){var c=null;try{c=jQuery.parseJSON(b.responseText)}catch(d){c=b.responseText}a.error&&a.error(c,b)})}function h(a,b){var c=$('
');c.appendTo(":eq(0)");var d=c.css(b);return c.remove(),d}function i(a){$('link[href^="'+a+'"]').length||$('').appendTo("head")}function j(b,c){return b?a.defaults(b,c):c}function k(a,b){var c="";if(a>=1e11)a/=1e11,c="TB";else if(a>=1e8)a/=1e8,c="GB";else if(a>=1e5)a/=1e5,c="MB";else if(a>=100)a/=100,c="KB";else{if(!(a>0))return"-";a=10*a,c="b"}var d=Math.round(a)/10;return b?d+" "+c:""+d+" "+c}function l(){return top.__utils__uid__=top.__utils__uid__||0,"uid-"+top.__utils__uid__++}function m(){var a=new Date,b=(a.getHours()<10?"0":"")+a.getHours(),c=(a.getMinutes()<10?"0":"")+a.getMinutes(),d=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear()+", "+b+":"+c;return d}return{cssLoadFile:i,cssGetAttribute:h,get:f,merge:j,bytesToString:k,uid:l,time:m,request:g,sanitize:c,textify:e,validate:d,deepeach:b}}); +define(["libs/underscore"],function(a){function b(a,c){for(var d in a){var e=a[d];e&&"object"==typeof e&&(c(e),b(e,c))}}function c(a){return $("
").text(a).html()}function d(a){if(a instanceof Array||(a=[a]),0===a.length)return!1;for(var b in a)if(["__null__","__undefined__",null,void 0].indexOf(a[b])>-1)return!1;return!0}function e(a){var a=a.toString();if(a){a=a.replace(/,/g,", ");var b=a.lastIndexOf(", ");return-1!=b&&(a=a.substr(0,b)+" or "+a.substr(b+1)),a}return""}function f(a){top.__utils__get__=top.__utils__get__||{},a.cache&&top.__utils__get__[a.url]?(a.success&&a.success(top.__utils__get__[a.url]),console.debug("utils.js::get() - Fetching from cache ["+a.url+"].")):g({url:a.url,data:a.data,success:function(b){top.__utils__get__[a.url]=b,a.success&&a.success(b)},error:function(b){a.error&&a.error(b)}})}function g(a){var b={contentType:"application/json",type:a.type||"GET",data:a.data||{},url:a.url};"GET"==b.type||"DELETE"==b.type?(b.url+=-1==b.url.indexOf("?")?"?":"&",b.url=b.url+$.param(b.data,!0),b.data=null):(b.dataType="json",b.url=b.url,b.data=JSON.stringify(b.data)),$.ajax(b).done(function(b){if("string"==typeof b)try{b=b.replace("Infinity,",'"Infinity",'),b=jQuery.parseJSON(b)}catch(c){console.debug(c)}a.success&&a.success(b)}).fail(function(b){var c=null;try{c=jQuery.parseJSON(b.responseText)}catch(d){c=b.responseText}a.error&&a.error(c,b)})}function h(a,b){var c=$('
');c.appendTo(":eq(0)");var d=c.css(b);return c.remove(),d}function i(a){$('link[href^="'+a+'"]').length||$('').appendTo("head")}function j(b,c){return b?a.defaults(b,c):c}function k(a,b){var c="";if(a>=1e11)a/=1e11,c="TB";else if(a>=1e8)a/=1e8,c="GB";else if(a>=1e5)a/=1e5,c="MB";else if(a>=100)a/=100,c="KB";else{if(!(a>0))return"-";a=10*a,c="b"}var d=Math.round(a)/10;return b?d+" "+c:""+d+" "+c}function l(){return top.__utils__uid__=top.__utils__uid__||0,"uid-"+top.__utils__uid__++}function m(){var a=new Date,b=(a.getHours()<10?"0":"")+a.getHours(),c=(a.getMinutes()<10?"0":"")+a.getMinutes(),d=a.getDate()+"/"+(a.getMonth()+1)+"/"+a.getFullYear()+", "+b+":"+c;return d}return{cssLoadFile:i,cssGetAttribute:h,get:f,merge:j,bytesToString:k,uid:l,time:m,request:g,sanitize:c,textify:e,validate:d,deepeach:b}}); //# sourceMappingURL=../../maps/utils/utils.js.map \ No newline at end of file From c7650dd2094e876590fff95669cab7dee57a443e Mon Sep 17 00:00:00 2001 From: John Chilton Date: Wed, 13 May 2015 11:51:48 -0400 Subject: [PATCH 17/30] WIP: Announcement updates. --- doc/source/releases/15.05_announce.rst | 56 +++++++++++++++----------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index 67f9e2f3ddd..5e375fba1c7 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -1,50 +1,57 @@ -====================================== +=========================================================== May 2015 Galaxy Release (v 15.05) -====================================== +=========================================================== -.. container:: floatright - - .. image:: https://wiki.galaxyproject.org/Images/Logos?action=AttachFile&do=get&target=GetGalaxyOrg.png - -`Get the Galaxy Release Your Way `__ +.. image:: https://wiki.galaxyproject.org/Images/Logos?action=AttachFile&do=get&target=GetGalaxyOrg.png + :alt: Get the Galaxy Release Your Way + :target: http://getgalaxy.org Highlights -====================================== +=========================================================== -* Galaxy now has native support for LDAP and Active Directory via a new +**Authentication Plugins** + Galaxy now has native support for LDAP and Active Directory via a new community developed authentication plugin system. -* Tool parameters may now be groupped into collapsable sections. -* New widgets have been added that allow much more flexibility when creating + +**Tool Sections** + Tool parameters may now be groupped into collapsable sections. + +**Collection Creators** + New widgets have been added that allow much more flexibility when creating simple dataset pair and list collections. -Github -====================================== - -* New:: +`Github `__ +=========================================================== +New + .. code-block:: shell + % git clone -b master https://github.com/galaxyproject/galaxy.git -* Update to latest stable release:: - +Update to latest stable release + .. code-block:: shell + % git checkout master && pull --ff-only origin master -* Update to exact version:: - +Update to exact version + .. code-block:: shell + % git checkout v15.05 See `getgalaxy.org `__ for additional details regarding Git branches. -BitBucket -====================================== - -* Upgrade:: +`BitBucket `__ +=========================================================== +Upgrade + .. code-block:: shell + % hg pull % hg update latest_15.05 Release Notes -====================================== +=========================================================== .. include:: 15.05.rst :start-after: enhancements @@ -52,3 +59,4 @@ Release Notes *Thanks for using Galaxy!* `The Galaxy Team `__ + From 770863945843f0bf023dc524eed167e6492d2d0a Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Wed, 13 May 2015 12:45:40 -0400 Subject: [PATCH 18/30] update logo --- doc/source/releases/15.05_announce.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index 5e375fba1c7..d91bf29733f 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -2,7 +2,7 @@ May 2015 Galaxy Release (v 15.05) =========================================================== -.. image:: https://wiki.galaxyproject.org/Images/Logos?action=AttachFile&do=get&target=GetGalaxyOrg.png +.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_project_logo.jpg :alt: Get the Galaxy Release Your Way :target: http://getgalaxy.org From bb3126faa3644c06ab6425719c2a64a6f5f818f0 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Wed, 13 May 2015 12:50:45 -0400 Subject: [PATCH 19/30] link to wiki SourceCode instead of getgalaxy.org --- doc/source/releases/15.05_announce.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index 5e375fba1c7..daf1fe1a56f 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -38,8 +38,6 @@ Update to exact version % git checkout v15.05 -See `getgalaxy.org `__ for additional details regarding Git branches. - `BitBucket `__ =========================================================== @@ -50,6 +48,9 @@ Upgrade % hg pull % hg update latest_15.05 + +See `our wiki `__ for additional details regarding the source code locations. + Release Notes =========================================================== From 30557c0705d27c87912debcc690650fe3bc06ef8 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Wed, 13 May 2015 12:57:23 -0400 Subject: [PATCH 20/30] Fix display regression from overzealous sanitzation in c8a71c7e8988d80bf406f11bfb9b8d3ed815e97e --- templates/webapps/galaxy/workflow/run.mako | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/templates/webapps/galaxy/workflow/run.mako b/templates/webapps/galaxy/workflow/run.mako index 8d780be2f94..abe9b86116c 100644 --- a/templates/webapps/galaxy/workflow/run.mako +++ b/templates/webapps/galaxy/workflow/run.mako @@ -583,9 +583,10 @@ if wf_parms: <% pja_ss_all = [] for pja_ss in [ActionBox.get_short_str(pja) for pja in step.post_job_actions]: - pja_ss = h.escape( pja_ss ) for rematch in re.findall('\$\{.+?\}', pja_ss): - pja_ss = pja_ss.replace(rematch, '%s' % (wf_parms[rematch[2:-1]], rematch[2:-1], rematch[2:-1])) + pja_ss = pja_ss.replace(rematch, '%s' % (h.escape(wf_parms[rematch[2:-1]]), + h.escape(rematch[2:-1]), + h.escape(rematch[2:-1]))) pja_ss_all.append(pja_ss) %> ${'
'.join(pja_ss_all)} From b64da97e1b8c3e3c1efb3171fb6caa60bdae8ef7 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Wed, 13 May 2015 13:11:42 -0400 Subject: [PATCH 21/30] shrink to 25%; switch to projectless version --- doc/source/releases/15.05_announce.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index d91bf29733f..ceed6a9f89c 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -2,7 +2,7 @@ May 2015 Galaxy Release (v 15.05) =========================================================== -.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_project_logo.jpg +.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_logo_25percent.png :alt: Get the Galaxy Release Your Way :target: http://getgalaxy.org From ee0b405268ad6a1f15e6f07d2222ac23394649f5 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Wed, 13 May 2015 13:38:49 -0400 Subject: [PATCH 22/30] add some ads --- doc/source/releases/15.05_announce.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index 2f46d592ac1..2f6cba6ded9 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -57,6 +57,9 @@ Release Notes .. include:: 15.05.rst :start-after: enhancements +To stay up to date with Galaxy's progress you can watch `screencasts `__, +read our `wiki `__, and follow `@galaxyproject `__ + *Thanks for using Galaxy!* `The Galaxy Team `__ From 7bd8a20cb05bd74e25ba61763d1d9e2c62977517 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Wed, 13 May 2015 13:43:21 -0400 Subject: [PATCH 23/30] Refactor thanks from annoucements out. --- doc/source/releases/15.05_announce.rst | 8 +------- doc/source/releases/_thanks.rst | 7 +++++++ 2 files changed, 8 insertions(+), 7 deletions(-) create mode 100644 doc/source/releases/_thanks.rst diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index 2f6cba6ded9..58d6aa733df 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -57,10 +57,4 @@ Release Notes .. include:: 15.05.rst :start-after: enhancements -To stay up to date with Galaxy's progress you can watch `screencasts `__, -read our `wiki `__, and follow `@galaxyproject `__ - -*Thanks for using Galaxy!* - -`The Galaxy Team `__ - +.. include:: _thanks.rst diff --git a/doc/source/releases/_thanks.rst b/doc/source/releases/_thanks.rst new file mode 100644 index 00000000000..388a44e4c50 --- /dev/null +++ b/doc/source/releases/_thanks.rst @@ -0,0 +1,7 @@ +To stay up to date with Galaxy's progress watch our `screencasts `__, +read our `wiki `__, and follow +`@galaxyproject `__ on Twitter. + +*Thanks for using Galaxy!* + +`The Galaxy Team `__ From b1e67000874ad6432df0684c08501dcc6ac5ff3f Mon Sep 17 00:00:00 2001 From: John Chilton Date: Wed, 13 May 2015 14:26:56 -0400 Subject: [PATCH 24/30] Fill out doc stubs for releases through 13.01. These pages have the header and footer and links to the relevant pages on the wiki. These are the ones on github and the ones that got at least a couple of the most serious bug fixes announced over the last year. --- doc/source/releases/13.01_announce.rst | 11 +++++++++++ doc/source/releases/13.02_announce.rst | 11 +++++++++++ doc/source/releases/13.04_announce.rst | 11 +++++++++++ doc/source/releases/13.06_announce.rst | 11 +++++++++++ doc/source/releases/13.08_announce.rst | 11 +++++++++++ doc/source/releases/13.11_announce.rst | 11 +++++++++++ doc/source/releases/14.02_announce.rst | 11 +++++++++++ doc/source/releases/14.04_announce.rst | 11 +++++++++++ doc/source/releases/14.06_announce.rst | 11 +++++++++++ doc/source/releases/14.08_announce.rst | 11 +++++++++++ doc/source/releases/14.10_announce.rst | 11 +++++++++++ doc/source/releases/15.01_announce.rst | 11 +++++++++++ doc/source/releases/15.03_announce.rst | 11 +++++++++++ doc/source/releases/15.05_announce.rst | 4 +--- doc/source/releases/_header.rst | 3 +++ doc/source/releases/index.rst | 14 +++++++++++++- 16 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 doc/source/releases/13.01_announce.rst create mode 100644 doc/source/releases/13.02_announce.rst create mode 100644 doc/source/releases/13.04_announce.rst create mode 100644 doc/source/releases/13.06_announce.rst create mode 100644 doc/source/releases/13.08_announce.rst create mode 100644 doc/source/releases/13.11_announce.rst create mode 100644 doc/source/releases/14.02_announce.rst create mode 100644 doc/source/releases/14.04_announce.rst create mode 100644 doc/source/releases/14.06_announce.rst create mode 100644 doc/source/releases/14.08_announce.rst create mode 100644 doc/source/releases/14.10_announce.rst create mode 100644 doc/source/releases/15.01_announce.rst create mode 100644 doc/source/releases/15.03_announce.rst create mode 100644 doc/source/releases/_header.rst diff --git a/doc/source/releases/13.01_announce.rst b/doc/source/releases/13.01_announce.rst new file mode 100644 index 00000000000..1f6ad49c71c --- /dev/null +++ b/doc/source/releases/13.01_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +January 2013 Galaxy Release (v 13.01) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2013_01_11_DistributionNewsBrief + +.. include:: _thanks.rst diff --git a/doc/source/releases/13.02_announce.rst b/doc/source/releases/13.02_announce.rst new file mode 100644 index 00000000000..09a67d50e33 --- /dev/null +++ b/doc/source/releases/13.02_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +February 2013 Galaxy Release (v 13.02) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2013_02_08_GalaxyNewsBrief + +.. include:: _thanks.rst diff --git a/doc/source/releases/13.04_announce.rst b/doc/source/releases/13.04_announce.rst new file mode 100644 index 00000000000..e2f93782b34 --- /dev/null +++ b/doc/source/releases/13.04_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +April 2013 Galaxy Release (v 13.04) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2013_04_01_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/13.06_announce.rst b/doc/source/releases/13.06_announce.rst new file mode 100644 index 00000000000..58afa3846a1 --- /dev/null +++ b/doc/source/releases/13.06_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +June 2013 Galaxy Release (v 13.06) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2013_06_03_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/13.08_announce.rst b/doc/source/releases/13.08_announce.rst new file mode 100644 index 00000000000..44c8ad154fc --- /dev/null +++ b/doc/source/releases/13.08_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +August 2013 Galaxy Release (v 13.08) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2013_08_12_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/13.11_announce.rst b/doc/source/releases/13.11_announce.rst new file mode 100644 index 00000000000..4fb4c7c48ba --- /dev/null +++ b/doc/source/releases/13.11_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +November 2013 Galaxy Release (v 13.11) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2013_11_04_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/14.02_announce.rst b/doc/source/releases/14.02_announce.rst new file mode 100644 index 00000000000..94462d732b6 --- /dev/null +++ b/doc/source/releases/14.02_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +February 2014 Galaxy Release (v 14.02) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2014_02_10_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/14.04_announce.rst b/doc/source/releases/14.04_announce.rst new file mode 100644 index 00000000000..22e02c8993e --- /dev/null +++ b/doc/source/releases/14.04_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +April 2014 Galaxy Release (v 14.04) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2014_04_14_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/14.06_announce.rst b/doc/source/releases/14.06_announce.rst new file mode 100644 index 00000000000..5b690ef3d60 --- /dev/null +++ b/doc/source/releases/14.06_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +June 2014 Galaxy Release (v 14.06) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2014_06_02_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/14.08_announce.rst b/doc/source/releases/14.08_announce.rst new file mode 100644 index 00000000000..7052e85c8f1 --- /dev/null +++ b/doc/source/releases/14.08_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +August 2014 Galaxy Release (v 14.08) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2014_08_11_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/14.10_announce.rst b/doc/source/releases/14.10_announce.rst new file mode 100644 index 00000000000..e6aaf567d39 --- /dev/null +++ b/doc/source/releases/14.10_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +October 2014 Galaxy Release (v 14.10) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2014_10_06_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/15.01_announce.rst b/doc/source/releases/15.01_announce.rst new file mode 100644 index 00000000000..f670f3ced21 --- /dev/null +++ b/doc/source/releases/15.01_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +January 2015 Galaxy Release (v 15.01) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2015_01_13_Galaxy_Distribution + +.. include:: _thanks.rst diff --git a/doc/source/releases/15.03_announce.rst b/doc/source/releases/15.03_announce.rst new file mode 100644 index 00000000000..7206175f6a1 --- /dev/null +++ b/doc/source/releases/15.03_announce.rst @@ -0,0 +1,11 @@ +=========================================================== +March 2015 Galaxy Release (v 15.03) +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/News/2015_03_GalaxyRelease + +.. include:: _thanks.rst diff --git a/doc/source/releases/15.05_announce.rst b/doc/source/releases/15.05_announce.rst index 58d6aa733df..db98dc32bdc 100644 --- a/doc/source/releases/15.05_announce.rst +++ b/doc/source/releases/15.05_announce.rst @@ -2,9 +2,7 @@ May 2015 Galaxy Release (v 15.05) =========================================================== -.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_logo_25percent.png - :alt: Get the Galaxy Release Your Way - :target: http://getgalaxy.org +.. include:: _header.rst Highlights =========================================================== diff --git a/doc/source/releases/_header.rst b/doc/source/releases/_header.rst new file mode 100644 index 00000000000..6ecd9ed1cb9 --- /dev/null +++ b/doc/source/releases/_header.rst @@ -0,0 +1,3 @@ +.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_logo_25percent.png + :alt: Get the Galaxy Release Your Way + :target: http://getgalaxy.org diff --git a/doc/source/releases/index.rst b/doc/source/releases/index.rst index f19617e2415..e005d00100b 100644 --- a/doc/source/releases/index.rst +++ b/doc/source/releases/index.rst @@ -2,6 +2,18 @@ Releases ======== .. toctree:: - :maxdepth: 4 + :maxdepth: 1 15.05_announce + 15.03_announce + 15.01_announce + 14.10_announce + 14.08_announce + 14.06_announce + 14.04_announce + 14.02_announce + 13.11_announce + 13.08_announce + 13.06_announce + 13.04_announce + 13.01_announce From 7f2922f9e221ef07afed5a80c71267d6dfed30f8 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Wed, 13 May 2015 14:43:21 -0400 Subject: [PATCH 25/30] update to transparent logo --- doc/source/releases/_header.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/releases/_header.rst b/doc/source/releases/_header.rst index 6ecd9ed1cb9..c982e72796d 100644 --- a/doc/source/releases/_header.rst +++ b/doc/source/releases/_header.rst @@ -1,3 +1,3 @@ -.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_logo_25percent.png +.. image:: https://wiki.galaxyproject.org/Images/GalaxyLogo?action=AttachFile&do=get&target=galaxy_logo_25percent_transparent.png :alt: Get the Galaxy Release Your Way :target: http://getgalaxy.org From 5111e43b9afe3738c194fc3f4e50218402da7cac Mon Sep 17 00:00:00 2001 From: John Chilton Date: Wed, 13 May 2015 14:49:54 -0400 Subject: [PATCH 26/30] Add missing release to doc index. --- doc/source/releases/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/source/releases/index.rst b/doc/source/releases/index.rst index e005d00100b..d9bd697c400 100644 --- a/doc/source/releases/index.rst +++ b/doc/source/releases/index.rst @@ -16,4 +16,5 @@ Releases 13.08_announce 13.06_announce 13.04_announce + 13.02_announce 13.01_announce From 959660f5c2585c9ce007278b11e2904c75840cd4 Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 13 May 2015 15:17:47 -0400 Subject: [PATCH 27/30] Add a stub for older release announcements. --- doc/source/releases/index.rst | 1 + doc/source/releases/older_releases.rst | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 doc/source/releases/older_releases.rst diff --git a/doc/source/releases/index.rst b/doc/source/releases/index.rst index d9bd697c400..388893091ac 100644 --- a/doc/source/releases/index.rst +++ b/doc/source/releases/index.rst @@ -18,3 +18,4 @@ Releases 13.04_announce 13.02_announce 13.01_announce + older_releases diff --git a/doc/source/releases/older_releases.rst b/doc/source/releases/older_releases.rst new file mode 100644 index 00000000000..98aebbe9745 --- /dev/null +++ b/doc/source/releases/older_releases.rst @@ -0,0 +1,11 @@ +=========================================================== +Galaxy Releases older than v 13.01 +=========================================================== + +.. include:: _header.rst + +Please see the `Galaxy wiki`_ for announcement and release notes. + +.. _Galaxy wiki: https://wiki.galaxyproject.org/DevNewsBriefs + +.. include:: _thanks.rst From 0a7f50dbaa9c9c72d6fedbaee58697587f7301c7 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Wed, 13 May 2015 15:45:01 -0400 Subject: [PATCH 28/30] Change sanitization of workflow pja's for display in workflow/run to happen in get_short_str, trusting that output. This is probably still overzealous, and we should check if there's a way to exploit tool.output_names (and if not, pull back on that sanitization). --- lib/galaxy/jobs/actions/post.py | 16 +++++++++++----- templates/webapps/galaxy/workflow/run.mako | 6 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/galaxy/jobs/actions/post.py b/lib/galaxy/jobs/actions/post.py index eff28baf095..4985d91dd49 100644 --- a/lib/galaxy/jobs/actions/post.py +++ b/lib/galaxy/jobs/actions/post.py @@ -8,6 +8,9 @@ import logging import socket from galaxy.util import send_mail from galaxy.util.json import dumps +from galaxy import eggs +eggs.require( "MarkupSafe" ) +from markupsafe import escape log = logging.getLogger( __name__ ) @@ -50,7 +53,7 @@ class DefaultJobAction(object): @classmethod def get_short_str(cls, pja): if pja.action_arguments: - return "%s -> %s" % (pja.action_type, pja.action_arguments) + return "%s -> %s" % (pja.action_type, escape(pja.action_arguments)) else: return "%s" % pja.action_type @@ -91,7 +94,7 @@ class EmailAction(DefaultJobAction): @classmethod def get_short_str(cls, pja): if pja.action_arguments and 'host' in pja.action_arguments: - return "Email the current user from server %s when this job is complete." % pja.action_arguments['host'] + return "Email the current user from server %s when this job is complete." % escape(pja.action_arguments['host']) else: return "Email the current user when this job is complete." @@ -127,7 +130,8 @@ class ChangeDatatypeAction(DefaultJobAction): @classmethod def get_short_str(cls, pja): - return "Set the datatype of output '%s' to '%s'" % (pja.output_name, pja.action_arguments['newtype']) + return "Set the datatype of output '%s' to '%s'" % (escape(pja.output_name), + escape(pja.action_arguments['newtype'])) class RenameDatasetAction(DefaultJobAction): @@ -235,7 +239,8 @@ class RenameDatasetAction(DefaultJobAction): def get_short_str(cls, pja): # Prevent renaming a dataset to the empty string. if pja.action_arguments and pja.action_arguments.get('newname', ''): - return "Rename output '%s' to '%s'." % (pja.output_name, pja.action_arguments['newname']) + return "Rename output '%s' to '%s'." % (escape(pja.output_name), + escape(pja.action_arguments['newname'])) else: return "Rename action used without a new name specified. Output name will be unchanged." @@ -455,7 +460,8 @@ class TagDatasetAction(DefaultJobAction): @classmethod def get_short_str(cls, pja): if pja.action_arguments and pja.action_arguments.get('tags', ''): - return "Add tag(s) '%s' to '%s'." % (pja.action_arguments['tags'], pja.output_name) + return "Add tag(s) '%s' to '%s'." % (escape(pja.action_arguments['tags']), + escape(pja.output_name)) else: return "Tag addition action used without a tag specified. No tag will be added." diff --git a/templates/webapps/galaxy/workflow/run.mako b/templates/webapps/galaxy/workflow/run.mako index abe9b86116c..4e60faad487 100644 --- a/templates/webapps/galaxy/workflow/run.mako +++ b/templates/webapps/galaxy/workflow/run.mako @@ -584,9 +584,9 @@ if wf_parms: pja_ss_all = [] for pja_ss in [ActionBox.get_short_str(pja) for pja in step.post_job_actions]: for rematch in re.findall('\$\{.+?\}', pja_ss): - pja_ss = pja_ss.replace(rematch, '%s' % (h.escape(wf_parms[rematch[2:-1]]), - h.escape(rematch[2:-1]), - h.escape(rematch[2:-1]))) + pja_ss = pja_ss.replace(rematch, '%s' % (wf_parms[rematch[2:-1]], + rematch[2:-1], + rematch[2:-1])) pja_ss_all.append(pja_ss) %> ${'
'.join(pja_ss_all)} From cfea0386f4105df7ebbb20e0bdc51c09b7c7522e Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Wed, 13 May 2015 15:47:56 -0400 Subject: [PATCH 29/30] Missed one. --- lib/galaxy/jobs/actions/post.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/galaxy/jobs/actions/post.py b/lib/galaxy/jobs/actions/post.py index 4985d91dd49..da867d47aa6 100644 --- a/lib/galaxy/jobs/actions/post.py +++ b/lib/galaxy/jobs/actions/post.py @@ -265,7 +265,7 @@ class HideDatasetAction(DefaultJobAction): @classmethod def get_short_str(cls, pja): - return "Hide output '%s'." % pja.output_name + return "Hide output '%s'." % escape(pja.output_name) class DeleteDatasetAction(DefaultJobAction): @@ -341,7 +341,7 @@ class ColumnSetAction(DefaultJobAction): @classmethod def get_short_str(cls, pja): - return "Set the following metadata values:
" + "
".join(['%s : %s' % (k, v) for k, v in pja.action_arguments.iteritems()]) + return "Set the following metadata values:
" + "
".join(['%s : %s' % (escape(k), escape(v)) for k, v in pja.action_arguments.iteritems()]) class SetMetadataAction(DefaultJobAction): From 0090d9a8cd499ef6daf1309873fa1bf123497faf Mon Sep 17 00:00:00 2001 From: Nate Coraor Date: Wed, 13 May 2015 17:09:38 -0400 Subject: [PATCH 30/30] Bump verison to 15.05 --- lib/galaxy/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/version.py b/lib/galaxy/version.py index ec84a93d115..16ae8e473f4 100644 --- a/lib/galaxy/version.py +++ b/lib/galaxy/version.py @@ -1,3 +1,3 @@ VERSION_MAJOR = "15.05" -VERSION_MINOR = "rc1" +VERSION_MINOR = None VERSION = VERSION_MAJOR + ('.' + VERSION_MINOR if VERSION_MINOR else '')