97459 Commits
Author SHA1 Message Date
Marius van den Beek 1cf970ed1a Merge pull request #24045 from jmchilton/client_test_fixture_cleanup
Clean up shared job fixtures and duplicate collection progress coverage
2026-10-13 10:41:25 +02:00
David López 614271c405 Merge pull request #24008 from itisAliRH/fix/bulk-tags-modal
Fix keyboard use and layout of the bulk "Add tags" dialogs
2026-10-13 10:19:50 +02:00
Marius van den Beek 760c43576b Merge pull request #23922 from jmchilton/workbook_import
Add browser tests for importing from workbooks
2026-10-13 10:02:53 +02:00
Marius van den Beek cb78236638 Merge pull request #24080 from mvdbeek/merge-release_26.1-into-dev-2026-10-13
Merge release_26.1 into dev
2026-10-13 08:27:44 +02:00
mvdbeek 8df75a2169 Merge branch 'release_26.1' into dev 2026-10-13 06:02:15 +02:00
mvdbeek 525c719af0 Merge branch 'release_26.0' into release_26.1 2026-10-13 06:01:08 +02:00
mvdbeek 4191653a00 Merge branch 'release_25.1' into release_26.0 2026-10-13 06:00:47 +02:00
John Chilton 4ba9953539 Merge pull request #24074 from guerler/remove_echarts.000
Remove the unused echarts and vue-echarts client dependencies
2026-10-12 21:01:17 -04:00
John Chilton a73c5067b3 Merge pull request #24066 from itisAliRH/backport/26.1-workflow-list-current-user
[26.1] Fix empty "My workflows" list when workflows load before the user
2026-10-12 20:59:48 -04:00
John Chilton a3740d2117 Merge pull request #24064 from itisAliRH/refactor/tool-link-popover-trigger
Share the "Tool details" trigger of ToolLinkPopover
2026-10-12 20:59:12 -04:00
John Chilton 19eb0e621a Merge pull request #24068 from itisAliRH/fix/card-title-tooltips
Show the full card title in a tooltip when it is cut off
2026-10-12 20:58:13 -04:00
John Chilton 46ddb95dea Merge pull request #24067 from itisAliRH/fix/histories-plural-add-tags
Fix "historys" in the bulk Add tags dialog title
2026-10-12 20:57:15 -04:00
guerler 6c9f7e085e Remove the unused echarts and vue-echarts client dependencies 2026-10-12 22:44:51 +03:00
Marius van den Beek 5bb7933374 Merge pull request #24059 from mvdbeek/merge-release_26.0-into-release_26.1-2026-10-12
[26.1] Merge release_26.0 into release_26.1
2026-10-12 18:58:50 +02:00
Marius van den Beek 0ae364eb9c Merge pull request #24058 from mvdbeek/merge-release_25.1-into-release_26.0-2026-10-12
[26.0] Merge release_25.1 into release_26.0
2026-10-12 18:58:13 +02:00
Alireza Heidari 07c95019b9 Say what clicking a workflow card title does
The workflow card title hint read "Preview Workflow", which names the action but does not tell that the title itself is clickable. It now reads "Click to preview workflow", matching the wording history cards used for their title.
2026-10-12 17:19:09 +02:00
Alireza Heidari 92d67be307 Show the full name in clickable card title tooltips when cut off
Clickable card titles (workflow cards) are cut off after two lines, and their tooltip only named the click action, so a long name could not be read anywhere. When the title is cut off, the tooltip now shows the click hint first and the full name below it, with a gap between them; titles that fit keep the hint alone.

The tooltip moves from v-g-tooltip to GTooltip, which takes slot content for the two blocks and only describes the link. v-g-tooltip also set the hint as the link's aria-label, so screen readers announced "Preview Workflow" instead of the workflow name; the link text is now its accessible name and the tooltip its description, shown on hover and on keyboard focus.
2026-10-12 17:00:57 +02:00
Alireza Heidari 40420756df Show history card titles as plain text
The title link of an owned history set it as current, which the "Set as Current" button on the same card already does. A plain-text title gets the shared GCard behaviour instead: the full name in a tooltip only when the title is cut off after two lines. The HistoryCard titleClick listener was never fired by GCard, so it goes too.

The Selenium helper that selects history cards by name now reads the plain-text title.
2026-10-12 17:00:57 +02:00
Alireza Heidari c0cccc9ee2 Use ToolDetailsButton in the Markdown workflow display
The tool step's GLink and ToolLinkPopover pair becomes ToolDetailsButton with the step's tool icon in its slot. The popover now targets the button through its ref instead of looking up its id, and the button keeps its per-instance id, so the rendered markup only loses the display's unused scoped-style attribute on the button and popover host.
2026-10-12 16:22:13 +02:00
John Chilton 9ac3cd2eb3 Merge pull request #24060 from mvdbeek/merge-release_26.1-into-dev-2026-10-12
Merge release_26.1 into dev
2026-10-12 10:22:11 -04:00
Alireza Heidari 1d19f7956c Test the rendered tool step button of the Markdown workflow display
Mount the real ToolLinkPopover instead of shallow stubs and assert the markup users get: the button before the step title, its id, classes and tool icon, the dialog it controls, the popover host beside it and that keyboard focus opens it. The checks pass on the current markup, so moving the button into a shared component has to keep it as is.
2026-10-12 16:21:22 +02:00
John Chilton 5e65c09bdf Merge pull request #24039 from mvdbeek/ci-docker-hub-mirror-25.1
[25.1] Pull Docker Hub images through mirror.gcr.io in integration tests
2026-10-12 10:20:52 -04:00
Alireza Heidari 96bacb8924 Use ToolDetailsButton in the Markdown job metrics and parameters
Both elements carried the same GLink, info icon and ToolLinkPopover block. The rendered button, its name and the dialog it controls are unchanged, as the element tests check.
2026-10-12 16:20:32 +02:00
John Chilton f5f5eb8e6d Merge pull request #24049 from mvdbeek/fix-migration-test-head-order
Compare alembic heads as a set in the migration round-trip test
2026-10-12 10:20:17 -04:00
Alireza Heidari c98c1d6c98 Test the rendered tool details button of the Markdown job elements
Mount the real ToolLinkPopover instead of a stub and assert the markup users get: the button's place after the title, its classes and icon, the dialog it controls, the popover host beside it and that keyboard focus opens it. The checks pass on the current markup, so moving the button into a shared component has to keep it as is.
2026-10-12 16:20:11 +02:00
Alireza Heidari 806cefc2ef Add a shared "Tool details" button for ToolLinkPopover
JobMetrics, JobParameters and WorkflowDisplay each render the same GLink trigger and interactive ToolLinkPopover pair. ToolDetailsButton renders that pair once, with the localized "Tool details" name, an info icon the caller can replace, and an optional id for the button.
2026-10-12 16:19:30 +02:00
John Chilton 661905b370 Merge pull request #23989 from ksuderman/gcp-batch-gpu-support
Add NVIDIA L4 GPU support to the GCP Batch job runner
2026-10-12 10:19:18 -04:00
John Chilton fe18fd8b8b Merge pull request #24004 from davelopez/fix_yaml_runtime_implicit_conversion
[26.1] Resolve implicitly converted inputs in the YAML tool runtime
2026-10-12 10:14:30 -04:00
Alireza Heidari 24cf50c6e4 Fix "historys" in the bulk Add tags dialog title
The title built the plural by appending "s" to "history". Use "histories" when more than one history is selected.
2026-10-12 16:13:37 +02:00
Alireza Heidari 620f302aea Keep the My workflows tab loading until the user is known
With the computed owner filter, the tab showed "No workflows found" until the user arrived. It now keeps its loading state instead.

(cherry picked from commit 8488c0dbf7)
2026-10-12 16:13:34 +02:00
Alireza Heidari ed0ceab423 Filter My workflows by the current user reactively
Keep the fetched page and filter it by owner in a computed instead of awaiting the shared user load, so the list updates whenever the user arrives and no longer waits on App's history load. This replaces the await and the rejection handling from the previous two commits.

(cherry picked from commit 1e795c75e1)
2026-10-12 16:13:34 +02:00
Alireza Heidari 49e8e909cc Ignore shared user load failures in the workflow list
The shared promise also loads histories, and either can fail independently of the user already being set (e.g. only histories fail after the user resolved). Swallow that rejection: App.vue already reports it, so re-throwing here would only drop an otherwise-loadable list and duplicate the toast.

(cherry picked from commit 2192376e02)
2026-10-12 16:13:34 +02:00
Alireza Heidari 401a954385 Wait for the current user before filtering the workflow list
On a fresh page load, App.vue starts loading the current user while WorkflowList requests /api/workflows. When the workflows response arrives first, the "My workflows" owner filter runs with no user and drops every workflow, so the list shows "No workflows found" until the user navigates away and back. Await the shared user load promise before filtering.

(cherry picked from commit 0909e80648)
2026-10-12 16:13:33 +02:00
John Chilton 2671a6d5d6 Merge pull request #24042 from mvdbeek/issue-24002-optimise-pgcleanup-for-s3-purge-datasets
Batch S3 extra-file cleanup with a compatibility fallback
2026-10-12 10:12:59 -04:00
Alireza Heidari 9798b74dc1 Check the rendered suggestion list in the history bulk tag dialogs
The old test only read the listInFlow and inline props of the stubbed tag editor. Mount the real dialog and tag editor instead, open the editor and assert that the suggestion list is in the dialog body, before Cancel and Ok. Teleport is unstubbed so the list lands where the app puts it; with the list teleported to the dialog element the test fails.
2026-10-12 15:39:30 +02:00
Alireza Heidari abd3794a69 Check that the list tag dialog keeps the suggestions in its body
The old class check on the tag editor passed with and without the in-flow list, so it proved nothing. Assert instead that the suggestion list is inside the dialog body, after the tag input; with the list teleported to the dialog element the test fails.
2026-10-12 15:37:30 +02:00
Alireza Heidari 2af0e3761e Keep the native Tab on the tag editor close button in the page flow
With the suggestions in the page flow the options already follow the close button in the DOM, so the browser's Tab order is right and the manual focus move is not needed. Return early like the option Tab handler does.
2026-10-12 15:36:53 +02:00
Alireza Heidari 6831f768a6 Merge pull request #24007 from itisAliRH/dataset-popover-link-review-followup
Address review comments on the DatasetPopoverLink width fix
2026-10-12 14:50:06 +02:00
David López a55e55426e Merge pull request #24040 from mvdbeek/remove-ghcr-build-26.0
[26.0] Remove GHCR container build job
2026-10-12 14:46:20 +02:00
David López d18df4a65c Merge pull request #24052 from jmchilton/activity_settings_availability
Offer only available optional activities in Activity Settings
2026-10-12 14:32:03 +02:00
David López 9c94d1ad60 Merge pull request #24054 from jmchilton/script_setup_polling_unmount
Stop Tool Shed install and download polling for good on unmount
2026-10-12 14:01:17 +02:00
mvdbeek c9c7e803e0 Resolve each data parameter to the dataset the job received for it
When one dataset feeds a parameter that accepts it as is and another
that needs an implicit conversion, the request names the same id for
both. runtimeify now passes each parameter's extensions to the
adapters, and the lookup picks the input whose datatype the parameter
accepts, checking the dataset itself before its conversions as the
tool action does.
2026-10-12 13:36:20 +02:00
mvdbeek 5855938137 Record data parameter formats in tool parameter models
DataParameterModel and DataCollectionParameterModel have an extensions
field, but the factory never set it, so every model reported ["data"].
2026-10-12 13:36:19 +02:00
mvdbeek e4eec5536b Access implicitly_converted_parent_datasets directly
DatasetInstance declares the relationship and both HDA and LDDA map it
as a list.
2026-10-12 13:36:18 +02:00
davelopez 82d1a942e1 Fix types in the implicit conversion runtime test
Dataset.file_size is a Decimal, and the test passes stand-ins for the app and compute environment, which mypy rejected in the package tests.
2026-10-12 13:36:18 +02:00
davelopezandClaude Opus 5.5 2504ebcada Resolve implicitly converted inputs in the YAML tool runtime
When a job input needs an implicit conversion, the job runs on the
converted dataset while the validated tool request still names the
dataset the user picked. setup_for_runtimeify only indexed the job's
input datasets, so adapt_dataset failed with "Could not find HDA for
dataset id ...". Index each input under the dataset it was converted
from as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 13:36:17 +02:00
mvdbeek 4f30e09e15 Merge branch 'release_26.1' into dev 2026-10-12 10:57:03 +02:00
mvdbeek 4f2f4f642d Merge branch 'release_26.0' into release_26.1 2026-10-12 10:49:21 +02:00
mvdbeek 25f642390b Merge branch 'release_25.1' into release_26.0 2026-10-12 10:45:37 +02:00
Marius van den Beek f9de3ed352 Merge pull request #24029 from mvdbeek/flaky-history-export-tracking-26.0
[26.0] Fix flaky test_history_export_tracking selenium test
2026-10-12 10:14:22 +02:00