diff --git a/.github/workflows/publish_artifacts.yaml b/.github/workflows/publish_artifacts.yaml index 192710e62a6..610bd4115d8 100644 --- a/.github/workflows/publish_artifacts.yaml +++ b/.github/workflows/publish_artifacts.yaml @@ -67,6 +67,7 @@ jobs: path: dist/ pypi-publish: + if: always() && needs.build-python-packages.result == 'success' needs: [build-python-packages] name: Upload packages to PyPI runs-on: ubuntu-latest diff --git a/client/package.json b/client/package.json index d80add5cde2..4ad48c0476e 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "@galaxyproject/galaxy-client", - "version": "25.0.4", + "version": "26.1.dev0", "description": "Galaxy client application build system", "keywords": [ "galaxy" diff --git a/client/visualizations.yml b/client/visualizations.yml index 9db3485a4f7..4c72599c237 100644 --- a/client/visualizations.yml +++ b/client/visualizations.yml @@ -71,7 +71,7 @@ nora: version: 1.2.4 openlayers: package: "@galaxyproject/openlayers" - version: 0.0.6 + version: 0.0.8 openseadragon: package: "@galaxyproject/openseadragon" version: 0.0.2 diff --git a/doc/source/releases/26.0_announce_user.rst b/doc/source/releases/26.0_announce_user.rst index 6c5bc119042..d5bfab4f3cb 100644 --- a/doc/source/releases/26.0_announce_user.rst +++ b/doc/source/releases/26.0_announce_user.rst @@ -123,6 +123,9 @@ Visualizations Updates =========================================================== .. visualizations +* Update openlayers plugin + (thanks to `@guerler `__). + `Pull Request 22435`_ * Bump tiffviewer visualization to v0.0.4 (thanks to `@davelopez `__). `Pull Request 22168`_ diff --git a/doc/source/releases/26.0_prs.rst b/doc/source/releases/26.0_prs.rst index 0c16939faea..bfdec4ecec8 100644 --- a/doc/source/releases/26.0_prs.rst +++ b/doc/source/releases/26.0_prs.rst @@ -1,5 +1,13 @@ .. github_links +.. _Pull Request 21870: https://github.com/galaxyproject/galaxy/pull/21870 +.. _Pull Request 22411: https://github.com/galaxyproject/galaxy/pull/22411 +.. _Pull Request 22413: https://github.com/galaxyproject/galaxy/pull/22413 +.. _Pull Request 22414: https://github.com/galaxyproject/galaxy/pull/22414 +.. _Pull Request 22421: https://github.com/galaxyproject/galaxy/pull/22421 +.. _Pull Request 22431: https://github.com/galaxyproject/galaxy/pull/22431 +.. _Pull Request 22435: https://github.com/galaxyproject/galaxy/pull/22435 +.. _Pull Request 22441: https://github.com/galaxyproject/galaxy/pull/22441 .. _Pull Request 22386: https://github.com/galaxyproject/galaxy/pull/22386 .. _Pull Request 22383: https://github.com/galaxyproject/galaxy/pull/22383 .. _Pull Request 22405: https://github.com/galaxyproject/galaxy/pull/22405 diff --git a/doc/source/releases/index.rst b/doc/source/releases/index.rst index 2b6908c8b39..c74631d3668 100644 --- a/doc/source/releases/index.rst +++ b/doc/source/releases/index.rst @@ -4,6 +4,7 @@ Releases .. toctree:: :maxdepth: 1 + 26.0_announce_user 25.1_announce_user 25.0_announce_user 24.2_announce_user diff --git a/lib/galaxy/managers/genomes.py b/lib/galaxy/managers/genomes.py index 66fc2833e4f..1915a23f144 100644 --- a/lib/galaxy/managers/genomes.py +++ b/lib/galaxy/managers/genomes.py @@ -46,12 +46,16 @@ class GenomesManager: ) -> Any: if reference: region = self.genomes.reference(trans, dbkey=id, chrom=chrom, low=low, high=high) + if region is None: + raise ReferenceDataError(f"No reference data for {id}") return {"dataset_type": "refseq", "data": region.sequence} else: return self.genomes.chroms(trans, dbkey=id, num=num, chrom=chrom, low=low) def get_sequence(self, trans: ProvidesUserContext, id: str, chrom: str, low: int, high: int) -> Any: region = self.genomes.reference(trans, dbkey=id, chrom=chrom, low=low, high=high) + if region is None: + raise ReferenceDataError(f"No reference data for {id}") return region.sequence def get_indexes(self, id: str, index_type: str) -> Any: diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 17f89ed304a..faecdfd574d 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -2162,7 +2162,9 @@ class DataToolParameter(BaseDataToolParameter): if self.default_object: return raw_to_galaxy(trans.app, trans.history, self.default_object) return None + batch_wrapper = False if isinstance(value, MutableMapping) and "values" in value: + batch_wrapper = bool(value.get("batch")) value = self.to_python(value, trans.app) if isinstance(value, str) and value.find(",") > 0: value = [int(value_part) for value_part in value.split(",")] @@ -2276,15 +2278,24 @@ class DataToolParameter(BaseDataToolParameter): if len(rval) > 0: single_value = rval[0] if isinstance(single_value, HistoryDatasetCollectionAssociation): + if batch_wrapper: + # A batch wrapper ({"batch": true, "values": [...]}) + # only reaches ``from_json`` during tool form building + # (``/api/tools/{id}/build``); at execution time + # ``expand_meta_parameters`` has already replaced the + # wrapper with per-element values. Returning the HDCA + # lets the form re-render and preserves the user's + # map-over selection. + return single_value # A non-multiple data parameter cannot reduce a dataset # collection. Without this check the HDCA is silently # accepted here, then ``collect_input_dataset_collections`` # rewrites the state to a list of the collection's HDAs and # ``wrap_values`` later crashes with a raw ``TypeError`` # (https://github.com/galaxyproject/galaxy/issues/22401). - # Map-over remains supported via ``{"batch": true, ...}``, - # which is expanded to per-element jobs before reaching - # ``from_json``. + # Map-over is still supported via ``{"batch": true, ...}``; + # at execution time that wrapper is expanded to per-element + # jobs before reaching ``from_json``. raise ParameterValueError( "dataset collection supplied to single input dataset parameter; " "to run the tool over each element of the collection, use the map-over option", diff --git a/lib/galaxy/webapps/galaxy/controllers/history.py b/lib/galaxy/webapps/galaxy/controllers/history.py index f32ebfa898e..be859074627 100644 --- a/lib/galaxy/webapps/galaxy/controllers/history.py +++ b/lib/galaxy/webapps/galaxy/controllers/history.py @@ -53,7 +53,7 @@ class HistoryController(BaseUIController, SharableMixin, UsesAnnotations, UsesIt return "" @expose_api_anonymous - def view(self, trans, id=None, show_deleted=False, show_hidden=False, use_panels=True): + def view(self, trans, id=None, show_deleted=False, show_hidden=False, use_panels=True, **kwargs): """ View a history. If a history is importable, then it is viewable by any user. """ diff --git a/lib/galaxy/webapps/galaxy/controllers/tool_runner.py b/lib/galaxy/webapps/galaxy/controllers/tool_runner.py index 04d1c5816e2..5f1fdac9300 100644 --- a/lib/galaxy/webapps/galaxy/controllers/tool_runner.py +++ b/lib/galaxy/webapps/galaxy/controllers/tool_runner.py @@ -173,7 +173,7 @@ class ToolRunner(BaseUIController): tool = self.__get_tool(tool_id) # No tool matching the tool id, display an error (shouldn't happen) if not tool: - log.error("data_source_redirect called with tool id '%s' but no such tool exists", tool_id) + log.debug("data_source_redirect called with tool id '%s' but no such tool exists", tool_id) trans.log_event(f"Tool id '{tool_id}' does not exist") trans.response.status = 404 return trans.show_error_message(f"Tool '{escape(tool_id)}' does not exist.") diff --git a/lib/galaxy_test/api/test_tools.py b/lib/galaxy_test/api/test_tools.py index e93affbd8be..77d2e78698e 100644 --- a/lib/galaxy_test/api/test_tools.py +++ b/lib/galaxy_test/api/test_tools.py @@ -2550,6 +2550,23 @@ class TestToolsApi(ApiTestCase, TestsTools): collection.assert_has_dataset_element("forward").with_contents_stripped("forward") collection.assert_has_dataset_element("reverse").with_contents_stripped("reverse") + @skip_without_tool("identifier_in_conditional") + def test_hdca_accepted_via_batch_for_single_data_param_in_conditional(self, history_id): + # Regression test: tool form building (/api/tools/{id}/build) must + # accept a batch-wrapped HDCA for a non-multiple ``data`` parameter. + # The reject-HDCA check added for + # https://github.com/galaxyproject/galaxy/issues/22401 only applies at + # execution time; at build time the batch wrapper has not yet been + # expanded and reaches ``DataToolParameter.from_json`` intact. + hdca_id = self._build_pair(history_id, ["123", "456"]) + inputs = { + "outer_cond|multi_input": False, + "outer_cond|input1": {"batch": True, "values": [{"src": "hdca", "id": hdca_id}]}, + } + # ``build_tool_state`` calls ``raise_for_status`` internally, so any + # non-2xx response (e.g. the 400 this test guards against) fails loudly. + self.dataset_populator.build_tool_state("identifier_in_conditional", history_id, inputs) + @skip_without_tool("identifier_in_conditional") def test_hdca_rejected_for_single_data_param_in_conditional(self, history_id): # Regression test for https://github.com/galaxyproject/galaxy/issues/22401 . diff --git a/packages/app/setup.cfg b/packages/app/setup.cfg index aa633cf0d9a..26be6d20716 100644 --- a/packages/app/setup.cfg +++ b/packages/app/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-app url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/auth/setup.cfg b/packages/auth/setup.cfg index 2e26c40f52b..7ab18e968ac 100644 --- a/packages/auth/setup.cfg +++ b/packages/auth/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-auth url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/config/setup.cfg b/packages/config/setup.cfg index 6ffeee7bbaa..2d7e62e8e51 100644 --- a/packages/config/setup.cfg +++ b/packages/config/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-config url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/data/setup.cfg b/packages/data/setup.cfg index 4533bebc580..b0785db1efa 100644 --- a/packages/data/setup.cfg +++ b/packages/data/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-data url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/files/setup.cfg b/packages/files/setup.cfg index 885a5d2e38c..0a1949142fb 100644 --- a/packages/files/setup.cfg +++ b/packages/files/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-files url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/job_execution/setup.cfg b/packages/job_execution/setup.cfg index d92848830cd..7ab7ad5c70f 100644 --- a/packages/job_execution/setup.cfg +++ b/packages/job_execution/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-job-execution url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/job_metrics/setup.cfg b/packages/job_metrics/setup.cfg index 5b83bd3ad47..01b62314945 100644 --- a/packages/job_metrics/setup.cfg +++ b/packages/job_metrics/setup.cfg @@ -28,7 +28,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-job-metrics url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/meta/setup.cfg b/packages/meta/setup.cfg index 5c000816d58..da82cbac530 100644 --- a/packages/meta/setup.cfg +++ b/packages/meta/setup.cfg @@ -28,7 +28,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/navigation/setup.cfg b/packages/navigation/setup.cfg index 6019998750a..55df624e9db 100644 --- a/packages/navigation/setup.cfg +++ b/packages/navigation/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-navigation url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options.extras_require] test = diff --git a/packages/objectstore/setup.cfg b/packages/objectstore/setup.cfg index f5d8f4e747d..769db5f6ce9 100644 --- a/packages/objectstore/setup.cfg +++ b/packages/objectstore/setup.cfg @@ -28,7 +28,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-objectstore url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/schema/setup.cfg b/packages/schema/setup.cfg index 7d97b718723..f9af8c85d9a 100644 --- a/packages/schema/setup.cfg +++ b/packages/schema/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-schema url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/selenium/setup.cfg b/packages/selenium/setup.cfg index 7a4299f1eb7..41d5d18960e 100644 --- a/packages/selenium/setup.cfg +++ b/packages/selenium/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-selenium url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/test_api/setup.cfg b/packages/test_api/setup.cfg index 1aff5510df9..73c004b0296 100644 --- a/packages/test_api/setup.cfg +++ b/packages/test_api/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-test-api url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/test_base/setup.cfg b/packages/test_base/setup.cfg index 81d38b817af..ea24c090845 100644 --- a/packages/test_base/setup.cfg +++ b/packages/test_base/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-test-base url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/test_driver/setup.cfg b/packages/test_driver/setup.cfg index 0fd1b5ffa6b..35a1edfa8d2 100644 --- a/packages/test_driver/setup.cfg +++ b/packages/test_driver/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-test-driver url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/test_selenium/HISTORY.rst b/packages/test_selenium/HISTORY.rst index a47664bd7ea..a77d0d86d43 100644 --- a/packages/test_selenium/HISTORY.rst +++ b/packages/test_selenium/HISTORY.rst @@ -4,7 +4,7 @@ History .. to_doc --------- -23.2.dev0 +26.1.dev0 --------- diff --git a/packages/test_selenium/setup.cfg b/packages/test_selenium/setup.cfg index 649a2b6d4dd..052ef274188 100644 --- a/packages/test_selenium/setup.cfg +++ b/packages/test_selenium/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-test-selenium url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/tool_shed/setup.cfg b/packages/tool_shed/setup.cfg index c4a98d7e54e..ac424a98469 100644 --- a/packages/tool_shed/setup.cfg +++ b/packages/tool_shed/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-tool-shed url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/tool_shed_schema/setup.cfg b/packages/tool_shed_schema/setup.cfg index 0e9687c8584..c0b3ef615ff 100644 --- a/packages/tool_shed_schema/setup.cfg +++ b/packages/tool_shed_schema/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-tool-shed-schema url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/tool_util/setup.cfg b/packages/tool_util/setup.cfg index 17949171f35..170000ea7c1 100644 --- a/packages/tool_util/setup.cfg +++ b/packages/tool_util/setup.cfg @@ -28,7 +28,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-tool-util url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/tool_util_models/setup.cfg b/packages/tool_util_models/setup.cfg index bb8603dfb34..744fdd28eb3 100644 --- a/packages/tool_util_models/setup.cfg +++ b/packages/tool_util_models/setup.cfg @@ -28,7 +28,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-tool-util-models url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/tours/setup.cfg b/packages/tours/setup.cfg index eafd1b54792..865354f1c88 100644 --- a/packages/tours/setup.cfg +++ b/packages/tours/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-tours url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/util/setup.cfg b/packages/util/setup.cfg index 9d4b8d23b27..0e64a1f9765 100644 --- a/packages/util/setup.cfg +++ b/packages/util/setup.cfg @@ -28,7 +28,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-util url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/web_apps/setup.cfg b/packages/web_apps/setup.cfg index 64efc4ce46f..af33d6a02d2 100644 --- a/packages/web_apps/setup.cfg +++ b/packages/web_apps/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-web-apps url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/web_client/setup.cfg b/packages/web_client/setup.cfg index 92fad7ea766..1083c20b1f9 100644 --- a/packages/web_client/setup.cfg +++ b/packages/web_client/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-web-client url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/web_framework/setup.cfg b/packages/web_framework/setup.cfg index 8672bfdd2c7..6e78d02c0f1 100644 --- a/packages/web_framework/setup.cfg +++ b/packages/web_framework/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-web-framework url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True diff --git a/packages/web_stack/setup.cfg b/packages/web_stack/setup.cfg index 84a77ef8e5c..84d5f17ac1b 100644 --- a/packages/web_stack/setup.cfg +++ b/packages/web_stack/setup.cfg @@ -26,7 +26,7 @@ long_description = file: README.rst, HISTORY.rst long_description_content_type = text/x-rst name = galaxy-web-stack url = https://github.com/galaxyproject/galaxy -version = 25.1.dev0 +version = 26.1.dev0 [options] include_package_data = True