Commit Graph
88806 Commits
Author SHA1 Message Date
Nicola Soranzo 720fae9afd Merge branch 'release_25.1' into release_26.0 2026-02-24 13:12:42 +00:00
Nicola Soranzo 60f6185138 Merge branch 'release_25.0' into release_25.1 2026-02-24 13:11:18 +00:00
Marius van den Beek 00ef37e48b Merge pull request #21882 from davelopez/26.0_fix_omero_tiff_metadata
[26.0] Adds ImageJ metadata support to TIFF export
2026-02-24 13:58:58 +01:00
Marius van den Beek a991f9bc39 Merge pull request #21190 from bernt-matthias/config-enable_beta_formats
[25.0] Add missing enable_beta_tool_formats config option
2026-02-24 13:48:50 +01:00
Marius van den Beek 8565421408 Merge pull request #21892 from jmchilton/ts_email_fix
[26.0] Fix missing sharable link URL in TS2.0 emails
2026-02-24 13:20:07 +01:00
John Chilton cb852d5981 Merge pull request #21908 from ahmedhamidawan/prevent_unlimited_dataset_fetch_in_report
[25.1] Ensure markdown elements do not render if argument is undefined
2026-02-23 19:31:53 -05:00
Ahmed Awan bc7c0fc7c7 [25.1] Ensure markdown elements do not render if argument is undefined
Added undefined checks to markdown elements. For example, in the `DatasetAsImage.vue` component, we had an unlimited fetch for `/api/datasets/%7Bdataset_id%7D/extra_files` because the `dataset_id` can potentially be undefined; if we have an problematic request for, say:

```
history_dataset_as_image(invocation_id=b7c1d0811979026c, output="Output Name")
```

where this can sometimes return arguments without a `history_dataset_id` key (e.g.: the output is a collection, not a dataset).
2026-02-23 17:19:51 -06:00
Dannon 921b0d77eb Merge pull request #21902 from davelopez/26.0_backport_#21678
[26.0] Backports: Return redirection instead of a JSON with the redirect URI
2026-02-23 08:08:40 -05:00
Enol Fernández 18d847f2a6 Make the arg explicit 2026-02-23 13:43:20 +01:00
Enol Fernández f8cc02a9c8 Return redirection instead of a JSON with the redirect URI
In order to keep all existing functionality, adds a new param `redirect` that
if set to `true` it will return a HTTP redirect 302 with the expected URI to
start the authentication process. This is useful to get users authenticated
directly without the need to go through clicking the button
2026-02-23 13:43:10 +01:00
Marius van den Beek 4da5a5f5ee Merge pull request #21821 from arash77/fix-21715-tool-credentials-containerized-destinations
[25.1] Fix tool credentials on containerized (Singularity/Docker) destinations
2026-02-20 14:22:57 +01:00
Marius van den Beek 734a2c88f7 Merge pull request #21881 from dannon/fix/dataset-preview-request-loop
[26.0] Fix infinite request loop on dataset preview fetch failure
2026-02-20 11:34:45 +01:00
John Chilton dfdb14ca17 Merge pull request #21891 from davelopez/26.0_fix_more_optionals_in_templates
[26.0] Fixes some more optional fields in templates
2026-02-19 14:10:10 -05:00
John ChiltonandClaude Opus 4.6 e7400469c6 Fix missing sharable link URL in TS2.0 emails (#21871)
Use configured tool_shed_url instead of deprecated web.url_for() which
returns a placeholder string in ASGI/FastAPI mode.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:06:52 -05:00
David López 650f559210 Merge pull request #21889 from itisAliRH/fix-tool-with-optional-credentials-run-error
[25.1] Fix credential validation logic in tool form component
2026-02-19 17:16:57 +01:00
davelopez bad34d01a8 Fixes some more optional fields in templates
These repositories allow access to the contents that are public without having to specify a token or set a publication name if we are going to use them just for read-only purposes.
2026-02-19 15:55:52 +01:00
Alireza Heidari 8041f65e14 Fix credential validation logic in ToolForm component
Updated the hasCredentialsErrors computed property to include a check for toolHasRequiredServiceCredentials. This ensures that the validation correctly reflects whether all required service for a required credentials are provided by the user.
2026-02-19 15:41:51 +01:00
Arash e84e5ba700 Adds regression test for workflow credential forwarding 2026-02-19 14:37:55 +01:00
Arash 32752a90ee Refactors containerized job tests for credential management 2026-02-19 14:37:55 +01:00
Arash bb53ed5bdb Adds credential resolution for workflow tool execution 2026-02-19 14:37:54 +01:00
Arash 03e0bc25a4 Refactors credential test suite to use CredentialsPopulator 2026-02-19 14:37:53 +01:00
Arash f7d9a1ed4f Adds BaseCredentialsPopulator for credential management in tests 2026-02-19 14:37:52 +01:00
mvdbeek 4daf1f037a Merge branch 'release_25.1' into release_26.0 2026-02-18 16:06:14 +01:00
John Chilton 32e33716a1 Merge pull request #21880 from mvdbeek/limit_quick_load
[25.1] Fix loading non-tool files from watched tool directories
2026-02-18 09:34:56 -05:00
Dannon Baker a239a091c7 Allow retries for transient errors (429, 5xx) in useKeyedCache
Adds an ApiError class that preserves HTTP status codes from API
responses. The keyedCache now distinguishes transient errors (429, 5xx)
from permanent ones (403, 404) -- transient errors get up to 3 retry
attempts while permanent errors stop immediately. Updated
fetchDatasetDetails to use rethrowSimpleWithStatus so the status code
propagates through to the cache layer.
2026-02-18 08:44:10 -05:00
davelopez 05f27ad20a Adds ImageJ metadata support to TIFF export
Switches TIFF writer to use ImageJ metadata, enabling richer
metadata and improved compatibility with downstream tools.
2026-02-18 14:12:50 +01:00
Dannon Baker d296432684 Fix infinite request loop when dataset fetch fails
When navigating to a dataset preview for a dataset you don't have
access to (or with an invalid ID), the useKeyedCache composable would
retry the failed fetch indefinitely. On error, nothing was written to
storedItems, so the next reactive evaluation of getItemById would see
undefined and trigger another fetch. Now getItemById skips re-fetching
when a loadError is already recorded for that ID. Also updated
DatasetView to show an error message instead of spinning forever.

Fixes #21863
2026-02-18 08:06:15 -05:00
Dannon Baker b8dd0b2a19 Add test for keyedCache not re-fetching after error 2026-02-18 08:06:14 -05:00
mvdbeek 020fcfcb25 Fix loading non-tool XML files from watched tool directories
The quick_load callback in __watch_directory is used both during the
initial directory scan (where _looks_like_a_tool is checked beforehand)
and as a callback for the ToolWatcher (where no such check occurs).
When the watcher detects a file system event for any .xml file in a
watched directory, it calls quick_load directly without verifying the
file is actually a tool. This causes files like macros.xml to be loaded
as tools and fail with "Missing tool 'id'" errors.

Add a _looks_like_a_tool guard inside quick_load itself so the check
is always applied regardless of the caller.
2026-02-18 13:59:49 +01:00
mvdbeek d8de517135 Merge branch 'release_25.1' into release_26.0 2026-02-18 09:55:23 +01:00
David López c9436a5cab Merge pull request #21862 from mvdbeek/fix_permission_guessing
[25.1] Fix output dataset permission guessing
2026-02-18 09:38:45 +01:00
Dannon 455e1babd0 Merge pull request #21797 from mvdbeek/claude/diagnose-galaxy-21777-pZ28X
[25.1] Fix tag dropdown not closing on outside click, and not selecting in Safari
2026-02-17 14:10:11 -05:00
mvdbeek 0673d1f91b Fix tool output sharing when inputs come from public sources (#21802)
When a user's history is configured with private default permissions,
running a tool on a dataset imported from a public library would fail
with "Job attempted to create sharable output datasets in a storage
location with sharing disabled". This happened because output permissions
were derived solely from input datasets — public inputs produced outputs
with no DATASET_ACCESS restrictions, which conflicted with the private
object store.

The fix ensures that the history's default DATASET_ACCESS restrictions
are applied to tool outputs when the derived permissions from inputs lack
them. This respects the user's privacy intent (expressed via history
defaults) regardless of input origin.
2026-02-17 17:04:23 +01:00
mvdbeek 4e7b0cda56 Add integration test for tool output sharing with library imports (#21802)
Reproduces the bug where running a tool on a dataset imported from a
public library fails with "Job attempted to create sharable output
datasets in a storage location with sharing disabled" when the history
uses a private preferred object store. The output permissions are
incorrectly derived from the public input's access roles instead of
respecting the history's private store configuration.

https://claude.ai/code/session_011Fb9QHh1giP6etETQ3AbEE
2026-02-17 17:04:22 +01:00
Marius van den Beek aaa2805575 Merge pull request #21849 from ksuderman/fix-docker-login
[26.0] Replaced deprecated actions with modern equivalents
2026-02-17 16:19:36 +01:00
Marius van den Beek 5556bd4615 Merge pull request #21859 from mvdbeek/sample_sheet_editor_mapping
[26.0] Allow connecting sample sheet inputs to compatible collection inputs in editor
2026-02-17 15:43:59 +01:00
David López 93bcef786c Merge pull request #21856 from davelopez/26.0_fix_omero_fs_download_multi_channel_tiff
[26.0] Fix OMERO file source download multi channel TIFF
2026-02-17 15:08:35 +01:00
Marius van den Beek 029e741432 Merge pull request #21857 from mvdbeek/ascp_filesource_fixes
[26.0] Fix ascp download retries
2026-02-17 14:56:44 +01:00
Nicola Soranzo 41062372cb mypy fix 2026-02-17 11:31:37 +00:00
David LópezandNicola Soranzo 0f8d22a675 Add type ignore
Co-authored-by: Nicola Soranzo <nicola.soranzo@gmail.com>
2026-02-17 10:02:45 +01:00
mvdbeek f3a7b41689 Use -k flag from first transfer
In line with docs at
https://download.asperasoft.com/download/docs/ascp/3.5.2/html/dita/ascp_usage.html:

```
Enable resuming partially transferred files at the specified resume level (default: 0). Note that this must be specified for your first transfer; otherwise, it will not work for subsequent transfers. Resume levels:
0 - Always retransfer the entire file.
1 - Check file attributes and resume if the current and original attributes match.
2 - Check file attributes and do a sparse file checksum; resume if the current and original attributes/checksums match.
3 - Check file attributes and do a full file checksum; resume if the current and original attributes/checksums match.
Note that when a complete file exists at the destination (no .aspx), the source file size is compared with the destination file size. When a partial file and a valid .aspx file exist at the destination, the source file size is compared with the file size recorded inside the .aspx file.
```

Should fix https://github.com/galaxyproject/galaxy/issues/21854
2026-02-16 19:11:19 +01:00
davelopez 233237c895 Make tifffile import conditional 2026-02-16 18:49:42 +01:00
mvdbeek 21f21cf8b8 Fix sample_sheet collection type mapping in workflow editor
sample_sheet collections should behave like list for mapping/matching
purposes: sample_sheet matches list, sample_sheet:paired matches
list:paired, sample_sheet:paired_or_unpaired matches
list:paired_or_unpaired, etc.

Add normalizeCollectionType functions (frontend TS and backend Python)
that convert sample_sheet to list for comparison in canMatch, canMapOver,
effectiveMapOver, has_subcollections_of_type, and can_match_type. The
actual collection_type string is preserved in results so sample_sheet
identity is maintained.

Enforce asymmetry: sample_sheet output can satisfy list input, but list
output cannot satisfy sample_sheet input. This is guarded at the terminal
level in InputCollectionTerminal.attachable() for both canMatch and
canMapOver paths.
2026-02-16 17:27:48 +01:00
mvdbeek 882bf7bfd6 Add session stop and ssh error to retryable ascp errors 2026-02-16 16:27:23 +01:00
davelopez 9b70e2b8ee Streamlines OME-TIFF export to reduce memory usage
Replaces full image array allocation with a generator-based streaming approach for exporting multi-dimensional OME-TIFF files. This minimizes memory consumption by writing planes one at a time.
2026-02-16 13:39:48 +01:00
davelopez 128bc03ec8 Removes fallback to thumbnail export on TIFF failure
The thumbnail is not useful for analysis anyway.
2026-02-16 13:39:47 +01:00
davelopez 5371b69c3a Exports multi-channel, multi-z TIFFs for OMERO files
Preserves all channels and z-planes at the first timepoint when exporting images, storing data in a ZCYX axis order for compatibility with downstream tools. Ensures multichannel information is retained, addressing limitations with sources that restrict original file access.
2026-02-16 13:39:46 +01:00
mvdbeek 40892c474d Merge branch 'release_25.1' into release_26.0 2026-02-16 10:35:28 +01:00
Marius van den Beek e54c5df657 Merge pull request #21829 from bernt-matthias/amnis-cif
[25.1] add amnis cif flow cytometry data type
2026-02-16 10:05:26 +01:00
Marius van den Beek 203fb65cc2 Merge pull request #21830 from davelopez/26.0_add_upload_current_history_badge
[26.0] Adds badge to show if upload target history is current
2026-02-13 20:38:19 +01:00