Merge branch 'release_26.0' into dev

This commit is contained in:
Nicola Soranzo
2026-04-10 18:08:40 +01:00
38 changed files with 79 additions and 34 deletions
+1
View File
@@ -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
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@galaxyproject/galaxy-client",
"version": "25.0.4",
"version": "26.1.dev0",
"description": "Galaxy client application build system",
"keywords": [
"galaxy"
+1 -1
View File
@@ -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
@@ -123,6 +123,9 @@ Visualizations Updates
===========================================================
.. visualizations
* Update openlayers plugin
(thanks to `@guerler <https://github.com/guerler>`__).
`Pull Request 22435`_
* Bump tiffviewer visualization to v0.0.4
(thanks to `@davelopez <https://github.com/davelopez>`__).
`Pull Request 22168`_
+8
View File
@@ -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
+1
View File
@@ -4,6 +4,7 @@ Releases
.. toctree::
:maxdepth: 1
26.0_announce_user
25.1_announce_user
25.0_announce_user
24.2_announce_user
+4
View File
@@ -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:
+14 -3
View File
@@ -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",
@@ -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.
"""
@@ -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.")
+17
View File
@@ -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 .
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 =
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -4,7 +4,7 @@ History
.. to_doc
---------
23.2.dev0
26.1.dev0
---------
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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